Release EDDI Scripts and EDDI enabled VA Commands Thread

Hi Tulextreme,

Congrats for the first working script!

Great idea to follow your account at undocking! I am wondering, how it would sound, if we'd check the relative increment/decrease compared to the account state at docking, and making some comments based on that, like "Man, are you burning money?" if credits are less at undocking than docking, and "Business is running well, commander!" at the opposite state, or something like this. You could use SetState to store the account state when entering a station (if cmdr.credits is available there too). Darkcyde made a very good description about the usage of SetState earlier in this thread somewhere.

Best regards!

Sounded like a nice thing, so I wrote this up.
Add this to your 'Docked' script:
{SetState('eddi_context_docked_credits', cmdr.credits)}
And this to your undocked script:
{if cmdr.credits != state.eddi_context_docked_credits && state.eddi_context_docked_credits:


{_ Set bigpercent to a multiplier that represents the percent gain or loss where you would like EDDI to make a comment about a big change. I chose 1.005 initially to represent a change in my wealth of 0.5% _}
{set bigpercent to 1.005}


{_ Set smallpercent to a multiplier that represents the minimum percent gain or loss where you would like EDDI to make a comment. I chose 1.001 initially to represent a change in my wealth of 0.1%. If you choose exactly 1, EDDI should always comment on gains & losses, no matter how small. _}
{set smallpercent to 1.001}


{Pause(5000)}


{if cmdr.credits > state.eddi_context_docked_credits:
{if cmdr.credits - (state.eddi_context_docked_credits)*(smallpercent) > 0:
{set smallearn to 1}
}
{if cmdr.credits - (state.eddi_context_docked_credits)*(bigpercent) > 0:
{set bigearn to 1}
}
|elif cmdr.credits < state.eddi_context_docked_credits:
{if state.eddi_context_docked_credits - (cmdr.credits)*(smallpercent) > 0:
{set smallloss to 1}
}
{if state.eddi_context_docked_credits - (cmdr.credits)*(bigpercent) > 0:
{set bigloss to 1}
}
}


{OneOf("You", "We")}
{if smallearn:
{OneOf("earned", "cashed in")}
{Occasionally(2, "a profit of")}
{Humanise(cmdr.credits-state.eddi_context_docked_credits)} credits
|elif smallloss:
lost
{Humanise(abs(state.eddi_context_docked_credits-cmdr.credits))} credits
}
{OneOf("on", "with")}
that visit.


{Pause(100)}


{if bigearn:
{OneOf("Business is running well, {F('Honorific')}!", "Keep up the good work!")}
|elif bigloss:
{OneOf("Careful {F('Honorific')}, you are really burning money!", "Careful about the insurance rebuys!", "Careful with your cash reserves!")}
{F("Insurance check")}
}
}

Note that you can adjust how often EDDI comments by adjusting the variables 'bigpercent' and 'smallpercent'.
 
There are pages of code blocks , referring to different tasks EDDI can do .. is this been update with the latest http://snafets.de/elite/eddi_scripts/index.php

Example Hoodathunk script above refers to Darkcyde's scripts

"Here's my latest on a 'Shortest Path Missions Route Finder', to work in conjunction with Darkcyde's Mission Store System!

This script is based on a modified 'Repetitive Nearest Neighbor Algorithm'."


Unless you've been following the conversation from where ever it started , it's impossible to workout what's the beginning, the improvement , or still a work in progress

I understand its all a work in progress , but what to download first / last ( overwriting ) ?


PS , just looked a Darkcyde's signature been YELLOW , I never saw that download, until I highlighted it over with the mouse ( invisible to me ) but it's an old version.
 
Last edited:
Hi Tkael,

Thanks :) ! I'm proud to be a member of this Exclusive Club!

Sounded like a nice thing, so I wrote this up.
Add this to your 'Docked' script:
{SetState('eddi_context_docked_credits', cmdr.credits)}
And this to your undocked script:
{if cmdr.credits != state.eddi_context_docked_credits && state.eddi_context_docked_credits:


{_ Set bigpercent to a multiplier that represents the percent gain or loss where you would like EDDI to make a comment about a big change. I chose 1.005 initially to represent a change in my wealth of 0.5% _}
{set bigpercent to 1.005}


{_ Set smallpercent to a multiplier that represents the minimum percent gain or loss where you would like EDDI to make a comment. I chose 1.001 initially to represent a change in my wealth of 0.1%. If you choose exactly 1, EDDI should always comment on gains & losses, no matter how small. _}
{set smallpercent to 1.001}


{Pause(5000)}


{if cmdr.credits > state.eddi_context_docked_credits:
{if cmdr.credits - (state.eddi_context_docked_credits)*(smallpercent) > 0:
{set smallearn to 1}
}
{if cmdr.credits - (state.eddi_context_docked_credits)*(bigpercent) > 0:
{set bigearn to 1}
}
|elif cmdr.credits < state.eddi_context_docked_credits:
{if state.eddi_context_docked_credits - (cmdr.credits)*(smallpercent) > 0:
{set smallloss to 1}
}
{if state.eddi_context_docked_credits - (cmdr.credits)*(bigpercent) > 0:
{set bigloss to 1}
}
}


{OneOf("You", "We")}
{if smallearn:
{OneOf("earned", "cashed in")}
{Occasionally(2, "a profit of")}
{Humanise(cmdr.credits-state.eddi_context_docked_credits)} credits
|elif smallloss:
lost
{Humanise(abs(state.eddi_context_docked_credits-cmdr.credits))} credits
}
{OneOf("on", "with")}
that visit.


{Pause(100)}


{if bigearn:
{OneOf("Business is running well, {F('Honorific')}!", "Keep up the good work!")}
|elif bigloss:
{OneOf("Careful {F('Honorific')}, you are really burning money!", "Careful about the insurance rebuys!", "Careful with your cash reserves!")}
{F("Insurance check")}
}
}

Note that you can adjust how often EDDI comments by adjusting the variables 'bigpercent' and 'smallpercent'.
 
There are pages of code blocks , referring to different tasks EDDI can do .. is this been update with the latest http://snafets.de/elite/eddi_scripts/index.php

Example Hoodathunk script above refers to Darkcyde's scripts

"Here's my latest on a 'Shortest Path Missions Route Finder', to work in conjunction with Darkcyde's Mission Store System!

This script is based on a modified 'Repetitive Nearest Neighbor Algorithm'."


Unless you've been following the conversation from where ever it started , it's impossible to workout what's the beginning, the improvement , or still a work in progress

I understand its all a work in progress , but what to download first / last ( overwriting ) ?


PS , just looked a Darkcyde's signature been YELLOW , I never saw that download, until I highlighted it over with the mouse ( invisible to me ) but it's an old version.

Hi sutex,

I'm afraid that's just the nature of this thread, people post ideas, some of them complete, others just a WIP.

I gave up on snafets because I kept forgetting to upload there. It's also difficult to add comments or readme files. Basically, it's too restrictive for my needs.

I'm sorry if the link in my signature below was a problem for you. I have changed the colour slightly, so hopefully this will be better for you and others.

The version in my sig is only a couple of days old, so it's quite up-to-date. However, I'm almost constantly tinkering with scripts, so whatever version I post will be "old" within a few days. That version doesn't have the Route Finder in yet as I've only just started to integrate it into my EDDI profile, and I haven't completed that yet. I'm a perfectionist, and I try not to release things for general use until I'm satisfied that it's ready and won't cause problems for people.

If you are ever unsure of what to do with a script in this thread, just reference it in a post and ask. We are a friendly group, and someone will be more than willing to guide you through what you need to do. :)

Oh, and welcome to the best damned EDDI thread in the 'verse! ;)

Best regards,

-=] Darkcyde [=-
 
Oh, and welcome to the best damned EDDI thread in the 'verse! ;)
Best regards, -=] Darkcyde [=-


Cheers and I'll wait a bit until the everyone's had time to look at the new offering in the latest EDDI , there's most likely some bug fixes coming to , given what I'm reading on the EDDI main page.

As for the signature , sorry its still yellow and unreadable , wonder if it the same for others
 
Small changes to scripts

Hi guys, huge fan of this thread and all of its contributors. Whilst my scripts are basically copy-pasted from all the hard work you guys have done, I have done a bit of playing around and made some very small additions / tweaks.

The BodyReport script has definately held my interest the most, and with the help of the legendary DarkCyde have added a small part that compares the Radius of a body to that of Earth so that you have some kind of reference point for how big the body is that you're looking at. It also then goes on to compare the Mass of the body to that of Earth, which leads into the gravity (high mass -> high gravity etc). I changed the order from default, and I also like my script read out a little slower so I can take it all in, so feel free to take what you like from it.

Small point: I found that removing the hyphen from the "Suitable for water-based life" in the atmosphere section made this part of the script work in that particular instance, which is included in the below script.

Full credit goes to DarkCyde for turning my steaming pile of conceptual garbage into a succinct and workable script, and to anyone else who's code makes up part of this one.


Code:
{_ Fetch from context }
{set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}


{set compare(stat) to:


    {if stat > 0.95 && stat < 1.05:
        {OneOf("approximately","roughly","nearly")} equal to 
    |elif stat > 1:
        {Humanise(stat)} times
    |elif stat < 1:
        {if stat > 0.89: {OneOf("fractionally","just")}}
        less than
    }


    {if stat < 0.01:
        one percent of
    |elif stat < 0.1:
        ten percent of
    |elif stat < 0.2:
        one fifth of
    |elif stat < 0.3:
        one third of
    |elif stat < 0.4:
        forty percent of
    |elif stat < 0.5:
        half of
    |elif stat < 0.6:
        two thirds of
    |elif stat < 0.7:
        seventy percent of
    |elif stat < 0.8:
        eighty percent of
    |elif stat < 0.9:
        ninety percent of
    }
}


{_ General overview of the scanned body}


{if !reportbody.name || reportbody.name = "":
   I'm {OneOf("not sure","unsure","not certain","uncertain")} which body you are 
       {OneOf("asking about","referring to","referrencing")}.
|else:
   {Occasionally(4, "{P(reportbody.name)} is")} a


   {if reportbody.tidallylocked:
      tidally-locked
   }


   {if reportbody.terraformstate = "Terraformable":
      terraformable
   |elif reportbody.terraformstate = "Terraformed":
      terraformed
   }


   {if len(reportbody.rings) > 0:
      ringed
   }


{if reportbody.planettype:
   {reportbody.planettype}
|else:
, undefined planet
}




   {if reportbody.terraformstate = "Terraforming":
      in the process of being terraformed
   }


{Pause(400)}


    {_ Radius}
    {if reportbody.radius:
      {OneOf("It has a radius of","Its radius is")} {reportbody.radius} kilometers.


      {set compare_radius to reportbody.radius / 6371}


      {if compare_radius != 0:
        {compare(compare_radius)}
        the {OneOf("size","radius")} of Earth.
      }
    }


{Pause(200)}


   {OneOf("it","this body")} is


   {if reportbody.landable:
      suitable for landing.
 
    {_ Earth Mass}
    {if reportbody.earthmass:
        and {Occasionally(2, "it")} is 
        {compare(reportbody.earthmass)}
        {OneOf("Earths mass","the mass of Earth")}
}
      {Pause(200)}


      with 


      {if reportbody.gravity < 0.5:
         a low-gravity, 
      |elif reportbody.gravity <2:
         a medium-gravity
      |elif reportbody.gravity <4:
         a high-gravity
      |else:
         an extremely high-gravity
      }


      of {Humanise(reportbody.gravity)} G's.


   |else:
      {OneOf("unsuitable","not suitable")} for landing.
   }




   {_ Atmosphere section for when atmospheric planets become landable}


{if reportbody.atmosphere = "No atmosphere" || reportbody.atmosphere = None || !reportbody.atmosphere:
   {OneOf("It has no atmosphere", "It is devoid of any atmosphere")}.
|elif reportbody.atmosphere = "Suitable for water based life":
   It is an ocean world suitable for water-based life.
|elif reportbody.atmosphere = "Ammonia and oxygen":
   The atmosphere is a mixture of
   {OneOf("Oxygen and ammonia", "Ammonia and oxygen")}.
|elif reportbody.atmosphere = "Water":
   It is an ocean world.
|elif reportbody.atmosphere = "Water-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in water vapor", "The atmosphere contains high levels of water vapor")}.
|elif reportbody.atmosphere = "Methane-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in methane", "The atmosphere contains high levels of methane")}.
|elif reportbody.atmosphere = "Ammonia-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in ammonia", "The atmosphere contains high levels of ammonia")}.
|elif reportbody.atmosphere = "Carbon dioxide-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in carbon dioxide", "The atmosphere contains high levels of carbon dioxide")}.
|elif reportbody.atmosphere = "Silicate vapour":
   {OneOf("The atmosphere is composed of {reportbody.atmosphere}s", "The atmosphere is rich in silicate vapours", "The atmosphere contains high levels of silicate vapours")}.
|elif reportbody.atmosphere = "Metallic vapour":
   {OneOf("The atmosphere is composed of {reportbody.atmosphere}s", "The atmosphere is rich in metallic vapours", "The atmosphere contains high levels of metallic vapours")}.
|elif reportbody.atmosphere = "Neon-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in neon", "The atmosphere contains high levels of neon")}.
|elif reportbody.atmosphere = "Argon-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in argon", "The atmosphere contains high levels of argon")}.
else:
   The atmosphere is composed 
   {OneOf("primarily", "mainly")}
   of {reportbody.atmosphere}.
}


{if reportbody.temperature:
   {OneOf("with","and has","it has","and")} an average surface temperature of {Humanise(reportbody.temperature)} degrees kelvin.
}


   {Pause(300)}


   {_ Volcanism}


   {if reportbody.volcanism:
      This planet shows signs of volcanism, with
      {if reportbody.volcanism.type = 'Geysers':
         {if reportbody.volcanism.amount = 'Major':
            high numbers of
         |elif reportbody.volcanism.amount = 'Minor':
            low numbers of
         }
         active {reportbody.volcanism.composition} geysers
      |else:
         {if reportbody.volcanism.amount = 'Major':
            high levels of
         |elif reportbody.volcanism.amount = 'Minor':
            low levels of
         }
         active {reportbody.volcanism.composition} magma flows
      }.
   }


   {Pause(300)}


   {_ Rotation period is exceptional}


   {if reportbody.landable :
      {OneOf("It","This body")} has a
      {if reportbody.rotationalperiod < -20.0:
         slow retrograde
      |elif reportbody.rotationalperiod < -0.5:
         retrograde
      |elif reportbody.rotationalperiod < 0:
         fast retrograde
      |elif reportbody.rotationalperiod <= 0.5:
         fast
      |elif reportbody.rotationalperiod > 20.0:
         slow
      }
      rotational period of {Humanise(reportbody.rotationalperiod)}
      day{if Humanise(reportbody.rotationalperiod) != "1":s}.


      {set goodmaterials to []}
      {set greatmaterials to []}
      {for material in reportbody.materials:
         {if material.percentage >= MaterialDetails(material.material).greatpctbody:
            {set greatmaterials to cat(greatmaterials, [material])}
         |elif material.percentage >= MaterialDetails(material.material).goodpctbody:
            {set goodmaterials to cat(goodmaterials, [material])}
         }
      }


      {if len(greatmaterials) > 0:
         This body contains very high levels of
         {if len(greatmaterials) = 1:
            {greatmaterials[0].material}
         |elif len(greatmaterials) = 2:
            {greatmaterials[0].material} and {greatmaterials[1].material}
         |else:
            {set cur to 0}
            {while cur < len(greatmaterials):
               {if cur = 0:
                  {greatmaterials[cur].material}
               |elif cur < len(greatmaterials) - 1:
                  , {greatmaterials[cur].material}
               |else:
                  , and {greatmaterials[cur].material}
               }
               {set cur to cur + 1}
            }
         }
      }


      {if len(goodmaterials) > 0:
         {if len(greatmaterials) > 0:
            and high levels of
         |else:
            This body contains high levels of
         }
         {if len(goodmaterials) = 1:
            {goodmaterials[0].material}
         |elif len(goodmaterials) = 2:
            {goodmaterials[0].material} and {goodmaterials[1].material}
         |else:
            {set cur to 0}
            {while cur < len(goodmaterials):
               {if cur = 0:
                  {goodmaterials[cur].material}
               |elif cur < len(goodmaterials) - 1:
                  , {goodmaterials[cur].material}
               |else:
                  , and {goodmaterials[cur].material}
               }
               {set cur to cur + 1}
            }
         }
      }


      {if len(greatmaterials) > 0 || len(goodmaterials) > 0:
      .
      }
   }
}

I've also found a small fix in the StarReport script, whereby the age of the star was giving strange results. The value returned for the age of a star is in millions of years, so I simply added +1000000 to the returned value within the {reportbody.age} which makes it sound much better, and you wont be told that every star you scan is one of the youngest in the galaxy:

Code:
{_ Fetch from context }
{set reportbody to BodyDetails(state.eddi_context_star_star, state.eddi_context_star_system)}


{if !reportbody.name || reportbody.name = "":
    I'm {OneOf("not sure","unsure","not certain","uncertain")} which star you are {OneOf("asking about","referring to","referrencing")}.
|else:
    {set mainsequence to 0}
    {if reportbody.stellarclass = "O":
        an incredibly rare main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "B":
        a very rare main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "A":
        a rare main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "F":
        an uncommon main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "G":
        a common main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "K":
        a common main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "M":
        a very common main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "L":
        a brown dwarf
    |elif reportbody.stellarclass = "T":
        a brown dwarf
    |elif reportbody.stellarclass = "Y":
        a brown dwarf
    |elif reportbody.stellarclass = "TTS":
        a T tauri star in the process of gravitational contraction
    |elif reportbody.stellarclass = "AeBe":
        a very young proto-star yet to enter main sequence {Occasionally(4, "but on the way to becoming an A or B class star")}
    |elif reportbody.stellarclass = "W":
        an old star {Occasionally(4, "nearing the end of its lifecycle and no longer burning hydrogen")}
    |elif reportbody.stellarclass = "WN":
        an old star {Occasionally(4, "nearing the end of its lifecycle and no longer burning hydrogen")}
    |elif reportbody.stellarclass = "WNC":
        an old star {Occasionally(4, "nearing the end of its lifecycle and no longer burning hydrogen")}
    |elif reportbody.stellarclass = "WC":
        an old star {Occasionally(4, "nearing the end of its lifecycle and no longer burning hydrogen")}
    |elif reportbody.stellarclass = "WO":
        an old star {Occasionally(4, "nearing the end of its lifecycle and no longer burning hydrogen")}
    |elif reportbody.stellarclass = "CS":
        a carbon star
    |elif reportbody.stellarclass = "C":
        a {Occasionally(2, "late-sequence")} carbon star {Occasionally(4, "with an atmosphere dominated by carbon")}
    |elif reportbody.stellarclass = "CN":
        a {Occasionally(2, "late-sequence")} carbon star {Occasionally(4, "with an atmosphere dominated by carbon")}
    |elif reportbody.stellarclass = "CJ":
        a {Occasionally(2, "late-sequence")} carbon star {Occasionally(2, "with high levels of carbon 13 in its atmosphere")}
    |elif reportbody.stellarclass = "CH":
        a {Occasionally(2, "late-sequence")} carbon star {Occasionally(4, "with an atmosphere dominated by carbon")}
    |elif reportbody.stellarclass = "CHd":
        a {Occasionally(2, "late-sequence")} carbon star {Occasionally(4, "with an atmosphere dominated by carbon")}
    |elif reportbody.stellarclass = "MS":
        a late sequence star {Occasionally(4, "that was once an M class star and is on the way to becoming a carbon star")}
    |elif reportbody.stellarclass = "S":
        a late sequence star {Occasionally(4, "that was once an M class star and is becoming a carbon star")}
    |elif reportbody.stellarclass = "D":
        a white dwarf
    |elif reportbody.stellarclass = "DA":
        a white dwarf {Occasionally(4, "with a hydrogen-rich atmosphere")}
    |elif reportbody.stellarclass = "DAB":
        a white dwarf {Occasionally(4, "with an atmosphere rich in hydrogen and helium")}
    |elif reportbody.stellarclass = "DAO":
        a white dwarf
    |elif reportbody.stellarclass = "DAZ":
        a white dwarf
    |elif reportbody.stellarclass = "DAV":
        a white dwarf
    |elif reportbody.stellarclass = "DB":
        a white dwarf
    |elif reportbody.stellarclass = "DBZ":
        a white dwarf
    |elif reportbody.stellarclass = "DBV":
        a white dwarf
    |elif reportbody.stellarclass = "DO":
        a white dwarf
    |elif reportbody.stellarclass = "DOV":
        a white dwarf
    |elif reportbody.stellarclass = "DQ":
        a white dwarf
    |elif reportbody.stellarclass = "DC":
        a white dwarf
    |elif reportbody.stellarclass = "DCV":
        a white dwarf
    |elif reportbody.stellarclass = "DX":
        a white dwarf
    |elif reportbody.stellarclass = "N":
        a neuutron star {Occasionally(4, "that has a dangerously high-density core")}
    |elif reportbody.stellarclass = "H":
        a black hole
    |elif reportbody.stellarclass = "X":
        an exotic stellar entity
    |elif reportbody.stellarclass = "SuperMassiveBlackHole":
         a supermassive black hole
    |elif reportbody.stellarclass = "A_BlueWhiteSuperGiant":
        a blue-white supergiant {Occasionally(4, "that is expanding towards being a red supergiant")}
    |elif reportbody.stellarclass = "F_WhiteSuperGiant":
        a yellow-white supergiant {Occasionally(4, "that is expanding towards being a red supergiant")}
    |elif reportbody.stellarclass = "M_RedSuperGiant":
        a red supergiant {Occasionally(4, "in its helium burning phase")}
    |elif reportbody.stellarclass = "M_RedGiant":
        a red giant {Occasionally(4, "that is expanding towards being a red supergiant")}
    |elif reportbody.stellarclass = "K_OrangeGiant":
        an orange giant {Occasionally(4, "that is expanding as it heads towards the end of its life")}
    |elif reportbody.stellarclass = "RoguePlanet":
        a rogue planet
    |elif reportbody.stellarclass = "Nebula":
        a nebula
    |elif reportbody.stellarclass = "StellarRemnantNebula":
        a nebula remnant
    }
    
    {OneOf("that has existed for {reportbody.age+1000000} years",
           "that is {Humanise(reportbody.age+1000000)} years old",
           "of {Humanise(reportbody.age+1000000)} years"
    )}


    {if reportbody.age < 1000000:
        making it one of the youngest stars in the galaxy
    |elif reportbody.age >14000000000:
        making it one of the oldest stars in the galaxy
    }.


    {if mainsequence = 1:


        {set notables to []}


        {if reportbody.massprobability < 0.01:
            {set notables to cat(notables, [cat("an incredibly low solar mass of ", Humanise(reportbody.solarmass))])}
        |elif reportbody.massprobability <0.1:
            {set notables to cat(notables, [cat("an extremely low solar mass of ", Humanise(reportbody.solarmass))])}
        |elif reportbody.massprobability <1:
            {set notables to cat(notables, ["an unusually low solar mass"])}
        |elif reportbody.massprobability <10:
            {set notables to cat(notables, ["lower than average solar mass"])}
        |elif reportbody.massprobability > 99.99:
            {set notables to cat(notables, [cat("an incredibly high solar mass of ", Humanise(reportbody.solarmass))])}
        |elif reportbody.massprobability > 99.9:
            {set notables to cat(notables, [cat("an extremely high solar mass of ", Humanise(reportbody.solarmass))])}
        |elif reportbody.massprobability > 99:
            {set notables to cat(notables, ["an unusually high solar mass"])}
        |elif reportbody.massprobability > 90:
            {set notables to cat(notables, ["higher than average solar mass"])}
        }


        {if reportbody.radiusprobability < 0.01:
            {set notables to cat(notables, [cat("an incredibly low solar radius of ", Humanise(reportbody.solarradius))])}
        |elif reportbody.radiusprobability <0.1:
            {set notables to cat(notables, [cat("an extremely low solar radius of ", Humanise(reportbody.solarradius))])}
        |elif reportbody.radiusprobability <1:
            {set notables to cat(notables, ["an unusually low solar radius"])}
        |elif reportbody.radiusprobability <10:
            {set notables to cat(notables, ["lower than average solar radius"])}
        |elif reportbody.radiusprobability > 99.99:
            {set notables to cat(notables, [cat("an extremely high solar radius of ", Humanise(reportbody.solarradius))])}
        |elif reportbody.radiusprobability > 99.9:
            {set notables to cat(notables, [cat("an incredibly high solar radius of ", Humanise(reportbody.solarradius))])}
        |elif reportbody.radiusprobability > 99:
            {set notables to cat(notables, ["an unusually high solar radius"])}
        |elif reportbody.radiusprobability > 90:
            {set notables to cat(notables, ["higher than average solar radius"])}
        }


        {if reportbody.tempprobability < 0.01:
            {set notables to cat(notables, [cat("an incredibly low surface temperature of ", Humanise(reportbody.temperature), " kelvin")])}
        |elif reportbody.tempprobability <0.1:
            {set notables to cat(notables, [cat("an extremely low surface temperature of ", Humanise(reportbody.temperature), " kelvin")])}
        |elif reportbody.tempprobability <1:
            {set notables to cat(notables, ["an unusually low surface temperature"])}
        |elif reportbody.tempprobability <10:
            {set notables to cat(notables, ["lower than average surface temperature"])}
        |elif reportbody.tempprobability > 99.99:
            {set notables to cat(notables, [cat("an extremely high surface temperature of ", Humanise(reportbody.temperature), " kelvin")])}
        |elif reportbody.tempprobability > 99.9:
            {set notables to cat(notables, [cat("an incredibly high surface temperature of ", Humanise(reportbody.temperature), " kelvin")])}
        |elif reportbody.tempprobability > 99:
            {set notables to cat(notables, ["an unusually high surface temperature"])}
        |elif reportbody.tempprobability > 90:
            {set notables to cat(notables, ["higher than average surface temperature"])}
        }


        {if len(notables) = 0:
            {OneOf("", "A typical example of this class of star.", "There is nothing particularly notable about this star.", "An average example for such a star.")}
        With a solar mass of {Humanise(reportbody.solarmass)}. And a surface tempurature of {Humanise(reportbody.temperature)} Kelvin.
        |else:
            {OneOf('Compared to other stars in its class', 'In comparison to other {reportbody.stellarclass}-class stars', 'Relative to other {reportbody.stellarclass}-class stars')}, this star is
            {if len(notables) = 1:
                notable for having {notables[0]}.
            |elif len(notables) = 2:
                {OneOf('interesting', 'unusual')}, with {notables[0]} and {notables[1]}.
            |elif len(notables) = 3:
                {OneOf('exceptional', 'remarkable')}, with {notables[0]}, {notables[1]} and {notables[2]}.
            }
        }
    }    
}

Full credits to the authors of those scripts.

Keep up the good work !
 
Last edited:
Hi and welcome :) ,

I'm a curious guy, if I tell you the story of the 'Brigetiol' nickname, would you tell the story of yours in exchange? I can give a hint regarding mine: Brigetiol is not a famous Roman general ;) .

Best regards!


Hi guys, huge fan of this thread and all of its contributors. Whilst my scripts are basically copy-pasted from all the hard work you guys have done, I have done a bit of playing around and made some very small additions / tweaks.

The BodyReport script has definately held my interest the most, and with the help of the legendary DarkCyde have added a small part that compares the Radius of a body to that of Earth so that you have some kind of reference point for how big the body is that you're looking at. It also then goes on to compare the Mass of the body to that of Earth, which leads into the gravity (high mass -> high gravity etc). I changed the order from default, and I also like my script read out a little slower so I can take it all in, so feel free to take what you like from it.

Small point: I found that removing the hyphen from the "Suitable for water-based life" in the atmosphere section made this part of the script work in that particular instance, which is included in the below script.

Full credit goes to DarkCyde for turning my steaming pile of conceptual garbage into a succinct and workable script, and to anyone else who's code makes up part of this one.


Code:
{_ Fetch from context }
{set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}


{set compare(stat) to:


    {if stat > 0.95 && stat < 1.05:
        {OneOf("approximately","roughly","nearly")} equal to 
    |elif stat > 1:
        {Humanise(stat)} times
    |elif stat < 1:
        {if stat > 0.89: {OneOf("fractionally","just")}}
        less than
    }


    {if stat < 0.01:
        one percent of
    |elif stat < 0.1:
        ten percent of
    |elif stat < 0.2:
        one fifth of
    |elif stat < 0.3:
        one third of
    |elif stat < 0.4:
        forty percent of
    |elif stat < 0.5:
        half of
    |elif stat < 0.6:
        two thirds of
    |elif stat < 0.7:
        seventy percent of
    |elif stat < 0.8:
        eighty percent of
    |elif stat < 0.9:
        ninety percent of
    }
}


{_ General overview of the scanned body}


{if !reportbody.name || reportbody.name = "":
   I'm {OneOf("not sure","unsure","not certain","uncertain")} which body you are 
       {OneOf("asking about","referring to","referrencing")}.
|else:
   {Occasionally(4, "{P(reportbody.name)} is")} a


   {if reportbody.tidallylocked:
      tidally-locked
   }


   {if reportbody.terraformstate = "Terraformable":
      terraformable
   |elif reportbody.terraformstate = "Terraformed":
      terraformed
   }


   {if len(reportbody.rings) > 0:
      ringed
   }


{if reportbody.planettype:
   {reportbody.planettype}
|else:
, undefined planet
}




   {if reportbody.terraformstate = "Terraforming":
      in the process of being terraformed
   }


{Pause(400)}


    {_ Radius}
    {if reportbody.radius:
      {OneOf("It has a radius of","Its radius is")} {reportbody.radius} kilometers.


      {set compare_radius to reportbody.radius / 6371}


      {if compare_radius != 0:
        {compare(compare_radius)}
        the {OneOf("size","radius")} of Earth.
      }
    }


{Pause(200)}


   {OneOf("it","this body")} is


   {if reportbody.landable:
      suitable for landing.
 
    {_ Earth Mass}
    {if reportbody.earthmass:
        and {Occasionally(2, "it")} is 
        {compare(reportbody.earthmass)}
        {OneOf("Earths mass","the mass of Earth")}
}
      {Pause(200)}


      with 


      {if reportbody.gravity < 0.5:
         a low-gravity, 
      |elif reportbody.gravity <2:
         a medium-gravity
      |elif reportbody.gravity <4:
         a high-gravity
      |else:
         an extremely high-gravity
      }


      of {Humanise(reportbody.gravity)} G's.


   |else:
      {OneOf("unsuitable","not suitable")} for landing.
   }




   {_ Atmosphere section for when atmospheric planets become landable}


{if reportbody.atmosphere = "No atmosphere" || reportbody.atmosphere = None || !reportbody.atmosphere:
   {OneOf("It has no atmosphere", "It is devoid of any atmosphere")}.
|elif reportbody.atmosphere = "Suitable for water based life":
   It is an ocean world suitable for water-based life.
|elif reportbody.atmosphere = "Ammonia and oxygen":
   The atmosphere is a mixture of
   {OneOf("Oxygen and ammonia", "Ammonia and oxygen")}.
|elif reportbody.atmosphere = "Water":
   It is an ocean world.
|elif reportbody.atmosphere = "Water-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in water vapor", "The atmosphere contains high levels of water vapor")}.
|elif reportbody.atmosphere = "Methane-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in methane", "The atmosphere contains high levels of methane")}.
|elif reportbody.atmosphere = "Ammonia-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in ammonia", "The atmosphere contains high levels of ammonia")}.
|elif reportbody.atmosphere = "Carbon dioxide-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in carbon dioxide", "The atmosphere contains high levels of carbon dioxide")}.
|elif reportbody.atmosphere = "Silicate vapour":
   {OneOf("The atmosphere is composed of {reportbody.atmosphere}s", "The atmosphere is rich in silicate vapours", "The atmosphere contains high levels of silicate vapours")}.
|elif reportbody.atmosphere = "Metallic vapour":
   {OneOf("The atmosphere is composed of {reportbody.atmosphere}s", "The atmosphere is rich in metallic vapours", "The atmosphere contains high levels of metallic vapours")}.
|elif reportbody.atmosphere = "Neon-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in neon", "The atmosphere contains high levels of neon")}.
|elif reportbody.atmosphere = "Argon-rich":
   {OneOf("It is a {reportbody.atmosphere} world", "The atmosphere is {reportbody.atmosphere}", "The atmosphere is rich in argon", "The atmosphere contains high levels of argon")}.
else:
   The atmosphere is composed 
   {OneOf("primarily", "mainly")}
   of {reportbody.atmosphere}.
}


{if reportbody.temperature:
   {OneOf("with","and has","it has","and")} an average surface temperature of {Humanise(reportbody.temperature)} degrees kelvin.
}


   {Pause(300)}


   {_ Volcanism}


   {if reportbody.volcanism:
      This planet shows signs of volcanism, with
      {if reportbody.volcanism.type = 'Geysers':
         {if reportbody.volcanism.amount = 'Major':
            high numbers of
         |elif reportbody.volcanism.amount = 'Minor':
            low numbers of
         }
         active {reportbody.volcanism.composition} geysers
      |else:
         {if reportbody.volcanism.amount = 'Major':
            high levels of
         |elif reportbody.volcanism.amount = 'Minor':
            low levels of
         }
         active {reportbody.volcanism.composition} magma flows
      }.
   }


   {Pause(300)}


   {_ Rotation period is exceptional}


   {if reportbody.landable :
      {OneOf("It","This body")} has a
      {if reportbody.rotationalperiod < -20.0:
         slow retrograde
      |elif reportbody.rotationalperiod < -0.5:
         retrograde
      |elif reportbody.rotationalperiod < 0:
         fast retrograde
      |elif reportbody.rotationalperiod <= 0.5:
         fast
      |elif reportbody.rotationalperiod > 20.0:
         slow
      }
      rotational period of {Humanise(reportbody.rotationalperiod)}
      day{if Humanise(reportbody.rotationalperiod) != "1":s}.


      {set goodmaterials to []}
      {set greatmaterials to []}
      {for material in reportbody.materials:
         {if material.percentage >= MaterialDetails(material.material).greatpctbody:
            {set greatmaterials to cat(greatmaterials, [material])}
         |elif material.percentage >= MaterialDetails(material.material).goodpctbody:
            {set goodmaterials to cat(goodmaterials, [material])}
         }
      }


      {if len(greatmaterials) > 0:
         This body contains very high levels of
         {if len(greatmaterials) = 1:
            {greatmaterials[0].material}
         |elif len(greatmaterials) = 2:
            {greatmaterials[0].material} and {greatmaterials[1].material}
         |else:
            {set cur to 0}
            {while cur < len(greatmaterials):
               {if cur = 0:
                  {greatmaterials[cur].material}
               |elif cur < len(greatmaterials) - 1:
                  , {greatmaterials[cur].material}
               |else:
                  , and {greatmaterials[cur].material}
               }
               {set cur to cur + 1}
            }
         }
      }


      {if len(goodmaterials) > 0:
         {if len(greatmaterials) > 0:
            and high levels of
         |else:
            This body contains high levels of
         }
         {if len(goodmaterials) = 1:
            {goodmaterials[0].material}
         |elif len(goodmaterials) = 2:
            {goodmaterials[0].material} and {goodmaterials[1].material}
         |else:
            {set cur to 0}
            {while cur < len(goodmaterials):
               {if cur = 0:
                  {goodmaterials[cur].material}
               |elif cur < len(goodmaterials) - 1:
                  , {goodmaterials[cur].material}
               |else:
                  , and {goodmaterials[cur].material}
               }
               {set cur to cur + 1}
            }
         }
      }


      {if len(greatmaterials) > 0 || len(goodmaterials) > 0:
      .
      }
   }
}

I've also found a small fix in the StarReport script, whereby the age of the star was giving strange results. The value returned for the age of a star is in millions of years, so I simply added +100000 to the returned value within the {reportbody.age} which makes it sound much better, and you wont be told that every star you scan is one of the youngest in the galaxy:

Code:
{_ Fetch from context }
{set reportbody to BodyDetails(state.eddi_context_star_star, state.eddi_context_star_system)}


{if !reportbody.name || reportbody.name = "":
    I'm {OneOf("not sure","unsure","not certain","uncertain")} which star you are {OneOf("asking about","referring to","referrencing")}.
|else:
    {set mainsequence to 0}
    {if reportbody.stellarclass = "O":
        an incredibly rare main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "B":
        a very rare main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "A":
        a rare main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "F":
        an uncommon main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "G":
        a common main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "K":
        a common main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "M":
        a very common main sequence star
        {set mainsequence to 1}
    |elif reportbody.stellarclass = "L":
        a brown dwarf
    |elif reportbody.stellarclass = "T":
        a brown dwarf
    |elif reportbody.stellarclass = "Y":
        a brown dwarf
    |elif reportbody.stellarclass = "TTS":
        a T tauri star in the process of gravitational contraction
    |elif reportbody.stellarclass = "AeBe":
        a very young proto-star yet to enter main sequence {Occasionally(4, "but on the way to becoming an A or B class star")}
    |elif reportbody.stellarclass = "W":
        an old star {Occasionally(4, "nearing the end of its lifecycle and no longer burning hydrogen")}
    |elif reportbody.stellarclass = "WN":
        an old star {Occasionally(4, "nearing the end of its lifecycle and no longer burning hydrogen")}
    |elif reportbody.stellarclass = "WNC":
        an old star {Occasionally(4, "nearing the end of its lifecycle and no longer burning hydrogen")}
    |elif reportbody.stellarclass = "WC":
        an old star {Occasionally(4, "nearing the end of its lifecycle and no longer burning hydrogen")}
    |elif reportbody.stellarclass = "WO":
        an old star {Occasionally(4, "nearing the end of its lifecycle and no longer burning hydrogen")}
    |elif reportbody.stellarclass = "CS":
        a carbon star
    |elif reportbody.stellarclass = "C":
        a {Occasionally(2, "late-sequence")} carbon star {Occasionally(4, "with an atmosphere dominated by carbon")}
    |elif reportbody.stellarclass = "CN":
        a {Occasionally(2, "late-sequence")} carbon star {Occasionally(4, "with an atmosphere dominated by carbon")}
    |elif reportbody.stellarclass = "CJ":
        a {Occasionally(2, "late-sequence")} carbon star {Occasionally(2, "with high levels of carbon 13 in its atmosphere")}
    |elif reportbody.stellarclass = "CH":
        a {Occasionally(2, "late-sequence")} carbon star {Occasionally(4, "with an atmosphere dominated by carbon")}
    |elif reportbody.stellarclass = "CHd":
        a {Occasionally(2, "late-sequence")} carbon star {Occasionally(4, "with an atmosphere dominated by carbon")}
    |elif reportbody.stellarclass = "MS":
        a late sequence star {Occasionally(4, "that was once an M class star and is on the way to becoming a carbon star")}
    |elif reportbody.stellarclass = "S":
        a late sequence star {Occasionally(4, "that was once an M class star and is becoming a carbon star")}
    |elif reportbody.stellarclass = "D":
        a white dwarf
    |elif reportbody.stellarclass = "DA":
        a white dwarf {Occasionally(4, "with a hydrogen-rich atmosphere")}
    |elif reportbody.stellarclass = "DAB":
        a white dwarf {Occasionally(4, "with an atmosphere rich in hydrogen and helium")}
    |elif reportbody.stellarclass = "DAO":
        a white dwarf
    |elif reportbody.stellarclass = "DAZ":
        a white dwarf
    |elif reportbody.stellarclass = "DAV":
        a white dwarf
    |elif reportbody.stellarclass = "DB":
        a white dwarf
    |elif reportbody.stellarclass = "DBZ":
        a white dwarf
    |elif reportbody.stellarclass = "DBV":
        a white dwarf
    |elif reportbody.stellarclass = "DO":
        a white dwarf
    |elif reportbody.stellarclass = "DOV":
        a white dwarf
    |elif reportbody.stellarclass = "DQ":
        a white dwarf
    |elif reportbody.stellarclass = "DC":
        a white dwarf
    |elif reportbody.stellarclass = "DCV":
        a white dwarf
    |elif reportbody.stellarclass = "DX":
        a white dwarf
    |elif reportbody.stellarclass = "N":
        a neuutron star {Occasionally(4, "that has a dangerously high-density core")}
    |elif reportbody.stellarclass = "H":
        a black hole
    |elif reportbody.stellarclass = "X":
        an exotic stellar entity
    |elif reportbody.stellarclass = "SuperMassiveBlackHole":
         a supermassive black hole
    |elif reportbody.stellarclass = "A_BlueWhiteSuperGiant":
        a blue-white supergiant {Occasionally(4, "that is expanding towards being a red supergiant")}
    |elif reportbody.stellarclass = "F_WhiteSuperGiant":
        a yellow-white supergiant {Occasionally(4, "that is expanding towards being a red supergiant")}
    |elif reportbody.stellarclass = "M_RedSuperGiant":
        a red supergiant {Occasionally(4, "in its helium burning phase")}
    |elif reportbody.stellarclass = "M_RedGiant":
        a red giant {Occasionally(4, "that is expanding towards being a red supergiant")}
    |elif reportbody.stellarclass = "K_OrangeGiant":
        an orange giant {Occasionally(4, "that is expanding as it heads towards the end of its life")}
    |elif reportbody.stellarclass = "RoguePlanet":
        a rogue planet
    |elif reportbody.stellarclass = "Nebula":
        a nebula
    |elif reportbody.stellarclass = "StellarRemnantNebula":
        a nebula remnant
    }
    
    {OneOf("that has existed for {reportbody.age+1000000} years",
           "that is {Humanise(reportbody.age+1000000)} years old",
           "of {Humanise(reportbody.age+1000000)} years"
    )}


    {if reportbody.age < 1000000:
        making it one of the youngest stars in the galaxy
    |elif reportbody.age >14000000000:
        making it one of the oldest stars in the galaxy
    }.


    {if mainsequence = 1:


        {set notables to []}


        {if reportbody.massprobability < 0.01:
            {set notables to cat(notables, [cat("an incredibly low solar mass of ", Humanise(reportbody.solarmass))])}
        |elif reportbody.massprobability <0.1:
            {set notables to cat(notables, [cat("an extremely low solar mass of ", Humanise(reportbody.solarmass))])}
        |elif reportbody.massprobability <1:
            {set notables to cat(notables, ["an unusually low solar mass"])}
        |elif reportbody.massprobability <10:
            {set notables to cat(notables, ["lower than average solar mass"])}
        |elif reportbody.massprobability > 99.99:
            {set notables to cat(notables, [cat("an incredibly high solar mass of ", Humanise(reportbody.solarmass))])}
        |elif reportbody.massprobability > 99.9:
            {set notables to cat(notables, [cat("an extremely high solar mass of ", Humanise(reportbody.solarmass))])}
        |elif reportbody.massprobability > 99:
            {set notables to cat(notables, ["an unusually high solar mass"])}
        |elif reportbody.massprobability > 90:
            {set notables to cat(notables, ["higher than average solar mass"])}
        }


        {if reportbody.radiusprobability < 0.01:
            {set notables to cat(notables, [cat("an incredibly low solar radius of ", Humanise(reportbody.solarradius))])}
        |elif reportbody.radiusprobability <0.1:
            {set notables to cat(notables, [cat("an extremely low solar radius of ", Humanise(reportbody.solarradius))])}
        |elif reportbody.radiusprobability <1:
            {set notables to cat(notables, ["an unusually low solar radius"])}
        |elif reportbody.radiusprobability <10:
            {set notables to cat(notables, ["lower than average solar radius"])}
        |elif reportbody.radiusprobability > 99.99:
            {set notables to cat(notables, [cat("an extremely high solar radius of ", Humanise(reportbody.solarradius))])}
        |elif reportbody.radiusprobability > 99.9:
            {set notables to cat(notables, [cat("an incredibly high solar radius of ", Humanise(reportbody.solarradius))])}
        |elif reportbody.radiusprobability > 99:
            {set notables to cat(notables, ["an unusually high solar radius"])}
        |elif reportbody.radiusprobability > 90:
            {set notables to cat(notables, ["higher than average solar radius"])}
        }


        {if reportbody.tempprobability < 0.01:
            {set notables to cat(notables, [cat("an incredibly low surface temperature of ", Humanise(reportbody.temperature), " kelvin")])}
        |elif reportbody.tempprobability <0.1:
            {set notables to cat(notables, [cat("an extremely low surface temperature of ", Humanise(reportbody.temperature), " kelvin")])}
        |elif reportbody.tempprobability <1:
            {set notables to cat(notables, ["an unusually low surface temperature"])}
        |elif reportbody.tempprobability <10:
            {set notables to cat(notables, ["lower than average surface temperature"])}
        |elif reportbody.tempprobability > 99.99:
            {set notables to cat(notables, [cat("an extremely high surface temperature of ", Humanise(reportbody.temperature), " kelvin")])}
        |elif reportbody.tempprobability > 99.9:
            {set notables to cat(notables, [cat("an incredibly high surface temperature of ", Humanise(reportbody.temperature), " kelvin")])}
        |elif reportbody.tempprobability > 99:
            {set notables to cat(notables, ["an unusually high surface temperature"])}
        |elif reportbody.tempprobability > 90:
            {set notables to cat(notables, ["higher than average surface temperature"])}
        }


        {if len(notables) = 0:
            {OneOf("", "A typical example of this class of star.", "There is nothing particularly notable about this star.", "An average example for such a star.")}
        With a solar mass of {Humanise(reportbody.solarmass)}. And a surface tempurature of {Humanise(reportbody.temperature)} Kelvin.
        |else:
            {OneOf('Compared to other stars in its class', 'In comparison to other {reportbody.stellarclass}-class stars', 'Relative to other {reportbody.stellarclass}-class stars')}, this star is
            {if len(notables) = 1:
                notable for having {notables[0]}.
            |elif len(notables) = 2:
                {OneOf('interesting', 'unusual')}, with {notables[0]} and {notables[1]}.
            |elif len(notables) = 3:
                {OneOf('exceptional', 'remarkable')}, with {notables[0]}, {notables[1]} and {notables[2]}.
            }
        }
    }    
}

Full credits to the authors of those scripts.

Keep up the good work !
 
Hi Brigetiol1,

Hi and welcome :) ,

I'm a curious guy, if I tell you the story of the 'Brigetiol' nickname, would you tell the story of yours in exchange? I can give a hint regarding mine: Brigetiol is not a famous Roman general ;) .

Best regards!

Hi Brigetoil, I put it in a spoiler so that people browsing through these posts can scan past it if they're not interested. Thanks for the reply [smile]
Commander Mild Butter Chicken came about as a bit of a tongue-in-cheek reference. I didn't hear about this game until it was released, in fact I thought I was taking a gamble by buying it on steam at the time, but boy did that gamble pay off :D. My house mates at the time would order Indian take-away on a regular basis, maybe even once a week if nobody felt like cooking (it was really good Indian). But all three of them would get the same thing every time, without fail... a mild butter chicken. EVERY TIME ! I must have worked my way through their entire menu at least twice over the time I lived there, I tried something different every time, and I was always telling them, "Man You have got to try this new one, it's so good". But nope, a mild butter chicken was all they wanted to order.

When I played this game, there were so many things to do in it, trading, exploring, combat, mining, different ships, different weapons, etc. and I was keen to try everything. So my name was a bit of a joke really, as in I was going to try my hand at everything there was to offer, but my name was all about just settling on the same old thing, over and over and over again. It's silly really, but it still cracks me up a little.

I changed my in-game name after I returned to playing. A change in work meant I couldn't play for about 9 months [woah] My in-game name is Commander Lupus Alpha, but this forum account is still a remnant of my original name.
 
Last edited:
I've also found a small fix in the StarReport script, whereby the age of the star was giving strange results. The value returned for the age of a star is in millions of years, so I simply added +100000 to the returned value within the {reportbody.age} which makes it sound much better, and you wont be told that every star you scan is one of the youngest in the galaxy:

Code:
{OneOf("that has existed for {reportbody.age+1000000} years",
           "that is {Humanise(reportbody.age+1000000)} years old",
           "of {Humanise(reportbody.age+1000000)} years"
    )}


    {if reportbody.age < 1000000:
        making it one of the youngest stars in the galaxy
    |elif reportbody.age >14000000000:
        making it one of the oldest stars in the galaxy
    }.

I haven't been out exploring for a while, but I never came across this problem before. Maybe it's a new thing FDev have changed in the Player Journal? Or maybe a change jgm made to EDDI?

So, the age is reported in Millions of years now, rather than just years? Would it not be better (and correct me if I'm wrong here) to simply take six zeros off from the check instead of adding a million to the age? As it stands, you have added the million to the age of the spoken part, but not the check in the next section, so it will still say "one of the youngest stars.." as that hasn't been changed. Or have I missed something?
 
I haven't been out exploring for a while, but I never came across this problem before. Maybe it's a new thing FDev have changed in the Player Journal? Or maybe a change jgm made to EDDI?

So, the age is reported in Millions of years now, rather than just years? Would it not be better (and correct me if I'm wrong here) to simply take six zeros off from the check instead of adding a million to the age? As it stands, you have added the million to the age of the spoken part, but not the check in the next section, so it will still say "one of the youngest stars.." as that hasn't been changed. Or have I missed something?
Hmmm, yes I see what you mean. When I first tested the script I had a couple of stars scanned spoken as "Making it one of the youngest stars..." which I confirmed as not being the case when I checked the system map panel.

I haven't had the problem since I changed that part of the script and the years are given accurately, but I think you're right, looking at it now it should still say that the star is much younger. I can't really explain why it hasn't been saying it.

I am away from home atm, can anyone confirm?

EDIT:
Ok, so I just tested it out within the script using a few forced examples ( {set reportbody to BodyDetails("Sol","Sol")} and {set reportbody to BodyDetails("Okinura","Okinura")}) which gave terribly inaccurate results, however when I jumped into the game and scanned a star EDDI spoke the correct age (ie. "approximately 5 Billion years old).

As for the rest of the script
Code:
{if reportbody.age < 1000000:
        making it one of the youngest stars in the galaxy
    |elif reportbody.age >14000000000:
        making it one of the oldest stars in the galaxy
    }.
I have no idea why it's not saying that it's one the youngest since technically it just compared a result of 5,024 million years (confirmed in the system map) which is less than 1000000. [noob]
 
Last edited:
Hmmm, yes I see what you mean. When I first tested the script I had a couple of stars scanned spoken as "Making it one of the youngest stars..." which I confirmed as not being the case when I checked the system map panel.

I haven't had the problem since I changed that part of the script and the years are given accurately, but I think you're right, looking at it now it should still say that the star is much younger. I can't really explain why it hasn't been saying it.

I am away from home atm, can anyone confirm?

EDIT:
Ok, so I just tested it out within the script using a few forced examples ( {set reportbody to BodyDetails("Sol","Sol")} and {set reportbody to BodyDetails("Okinura","Okinura")}) which gave terribly inaccurate results, however when I jumped into the game and scanned a star EDDI spoke the correct age (ie. "approximately 5 Billion years old).

As for the rest of the script
Code:
{if reportbody.age < 1000000:
        making it one of the youngest stars in the galaxy
    |elif reportbody.age >14000000000:
        making it one of the oldest stars in the galaxy
    }.
I have no idea why it's not saying that it's one the youngest since technically it just compared a result of 5,024 million years (confirmed in the system map) which is less than 1000000. [noob]

When I tried it with a forced entry for Sol the default script said Sol is over 4 and half thousand years old. Removing the Humanise gave 4792 as age. To make it give the right age (4.792.000.000 years) in my script I multiply the age EDDI reports with 1.000.000 so it now says Sol is over 4 and a half billion years old. I also changed the minimum age for a star to be considered young to 1 billion. First I tested this with 5 billion and that made Sol a young star so that seems to work OK.

Here's the part of the script I modified:
Code:
{set age to reportbody.age*1000000}
    {OneOf("that has been around for {Humanise(age)} years",
           "that is {Humanise(age)} years old",
           "of {Humanise(age)} years",
    )}.
    
    {if age < 1000000000:
        making it one of the younger stars in the galaxy
    |elif age >14000000000:
        making it one of the oldest stars in the galaxy
    }.
 
Hi Mild_Butter_Chicken,

Thanks for the story, I like irony very much, and I am always happy to meet people, who dare to be different than the mainstream :) ! I'll follow your way, here is my story:

When I bought my PS3, I had to make an account for the PS Network. All of my ideas of nicknames were already taken, and I did not wanted to be 'Chrome19752', or 'HanSolo99765'. So after running out of ideas, I said to myself, THIS one is for sure not taken: Brigetiol. Brigetiol is coming from the brand 'Brigéciol', it is an aggressive and very effective oily-dusty-dirt removal fluid, used mainly on agricultural machinery, like tractor engines. To be honest, after using this nickname for many years, it fits me quite well: simple, dirty, solves issues in a straight, effective way, by removing all the 'dirt' to show the real thing. I could say, I'm trying to remove the shiny lies, to be able to see the truth. It is a hard and dirty job, like cleaning a tractor engine :) . 'Brigetiol1' is simply, because when I tried to make an account here, the validation email didn't arrived to my Hungarian email server, so I tried a new account with my Gmail address, it worked.

Best regards!

Hi Brigetiol1,



Hi Brigetoil, I put it in a spoiler so that people browsing through these posts can scan past it if they're not interested. Thanks for the reply [smile]
Commander Mild Butter Chicken came about as a bit of a tongue-in-cheek reference. I didn't hear about this game until it was released, in fact I thought I was taking a gamble by buying it on steam at the time, but boy did that gamble pay off :D. My house mates at the time would order Indian take-away on a regular basis, maybe even once a week if nobody felt like cooking (it was really good Indian). But all three of them would get the same thing every time, without fail... a mild butter chicken. EVERY TIME ! I must have worked my way through their entire menu at least twice over the time I lived there, I tried something different every time, and I was always telling them, "Man You have got to try this new one, it's so good". But nope, a mild butter chicken was all they wanted to order.

When I played this game, there were so many things to do in it, trading, exploring, combat, mining, different ships, different weapons, etc. and I was keen to try everything. So my name was a bit of a joke really, as in I was going to try my hand at everything there was to offer, but my name was all about just settling on the same old thing, over and over and over again. It's silly really, but it still cracks me up a little.

I changed my in-game name after I returned to playing. A change in work meant I couldn't play for about 9 months [woah] My in-game name is Commander Lupus Alpha, but this forum account is still a remnant of my original name.
 
I multiply the age EDDI reports with 1.000.000

:eek: Argh, Of course... excuse my noob-ness (face-palm) :p. Thanks Josh

BodyReport ​comparing scanned bodies to Earth, for anyone who wanted it: (Credit to DarkCyde)
Code:
{_ Fetch from context }
{set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}


{set compare(stat) to:


    {if stat > 0.95 && stat < 1.05:
        {OneOf("approximately","roughly","nearly")} equal to 
    |elif stat > 1:
        {Humanise(stat)} times
    |elif stat < 1:
        {if stat > 0.89: {OneOf("fractionally","just")}}
        less than
    }


    {if stat < 0.01:
        one percent of
    |elif stat < 0.1:
        ten percent of
    |elif stat < 0.2:
        one fifth of
    |elif stat < 0.3:
        one third of
    |elif stat < 0.4:
        forty percent of
    |elif stat < 0.5:
        half of
    |elif stat < 0.6:
        two thirds of
    |elif stat < 0.7:
        seventy percent of
    |elif stat < 0.8:
        eighty percent of
    |elif stat < 0.9:
        ninety percent of
    }
}


{if !reportbody.name || reportbody.name = "":
    I'm
    {OneOf("not sure","unsure")}
    {Occasionally(2,"of")}
    which body
    {OneOf("you are","you're")}
    {OneOf("asking about","referring to")}.
|else:
    {F("BodyName")} is a
    {if reportbody.gravity < 0.5:
        low-gravity
    |elif reportbody.gravity <2:
        medium-gravity
    |elif reportbody.gravity <4:
        high-gravity
    |else:
        extremely high-gravity
    }


    {if reportbody.tidallylocked:
        tidally-locked
    }


    {if reportbody.terraformstate = "Terraformable":
        terraformable
    |elif reportbody.terraformstate = "Terraformed":
        terraformed
    }


    {if len(reportbody.rings) > 0:
        ringed
    }


    {reportbody.planettype}


    {if reportbody.terraformstate = "Terraforming":
      in the process of being terraformed
    }


    that is


    {if reportbody.landable:
        suitable
    |else:
        unsuitable
    }
    for landing.




    {_ Radius}
    It has a radius of {reportbody.radius} kilometers,


    {set compare_radius to reportbody.radius / 6371}


    {if compare_radius != 0:
        {compare(compare_radius)}
        the {OneOf("size","radius")} of Earth,
    }


    {_ Earth Mass}
    {if reportbody.earthmass:
        and
        {compare(reportbody.earthmass)}
        Earth's mass.
    }


    {_ Atmosphere? }


    {if reportbody.volcanism:
        This planet shows signs of volcanism, with
        {if reportbody.volcanism.type = 'Geysers':
            {if reportbody.volcanism.amount = 'Major':
                high numbers of
            |elif reportbody.volcanism.amount = 'Minor':
                low numbers of
            }
            active {reportbody.volcanism.composition} geysers
        |else:
            {if reportbody.volcanism.amount = 'Major':
                high levels of
            |elif reportbody.volcanism.amount = 'Minor':
                low levels  of
            }
            active {reportbody.volcanism.composition} magma flows
        }.
    }


    {if reportbody.landable :
        It has a
        {if reportbody.rotationalperiod < -20.0:
            slow retrograde
        |elif reportbody.rotationalperiod < -0.5:
            retrograde
        |elif reportbody.rotationalperiod < 0:
            fast retrograde
        |elif reportbody.rotationalperiod <= 0.5:
            fast
        |elif reportbody.rotationalperiod > 20.0:
            slow
        }
        rotational period of {Humanise(reportbody.rotationalperiod)}
        day{if Humanise(reportbody.rotationalperiod) != "1":s}.


        {set goodmaterials to []}
        {set greatmaterials to []}
        {set allmaterials to []}
        {for material in reportbody.materials:
            {if material.percentage >= MaterialDetails(material.material).greatpctbody:
                {set greatmaterials to cat(greatmaterials, [material])}
            |elif material.percentage >= MaterialDetails(material.material).goodpctbody:
                {set goodmaterials to cat(goodmaterials, [material])}
            |else
                {set allmaterials to cat(allmaterials, [material])}
            }
        }


        {if len(greatmaterials) > 0:
            This body contains very high levels of
            {set cur to 0}
            {while cur < len(greatmaterials):
               {P(greatmaterials[cur].material)} at {round(greatmaterials[cur].percentage,1)}%
               {set cur to cur + 1}
               {if cur = len(greatmaterials) - 1:
                   and
               |else:
                   ,
               }
            }
        }
        {if len(goodmaterials) > 0:
            {if len(greatmaterials) > 0:
                and
            |else:
                This body contains
            }
            high levels of
            {set cur to 0}
            {while cur < len(goodmaterials):
               {P(goodmaterials[cur].material)} at {round(goodmaterials[cur].percentage,1)}%
               {set cur to cur + 1}
               {if cur = len(goodmaterials) - 1:
                   and
               |else:
                   ,
               }
            }
        }
        {if len(allmaterials) > 0:
            {if len(greatmaterials) > 0 || len(goodmaterials) > 0:
                It is also
            |else:
                This body is
            }
            {OneOf("comprised of","made up from")}:
            {set cur to 0}
            {while cur < len(allmaterials):
               {P(allmaterials[cur].material)}
               {set cur to cur +1}
               {if cur = len(allmaterials) - 1:
                   and
               |else:
                   ,
               }
            }.
        }
    }
}
 
Last edited:
When I tried it with a forced entry for Sol the default script said Sol is over 4 and half thousand years old.

Ok, so I tested it. The default script (made by jgm) is correct, in game. The results just vary when forcing values and testing the script outside of game in EDDI script editor, which gives results in thousands. In game results are expressed in millions or billions respectively (don't know why, but I tested it, it works. I can't explain it. :S The multiplied 1000000 script was giving in-game results in the quadrillions :eek: ).

Ignore my wild-goose chase that I have created trying to fix something that ain't broken. My error came from adding 1,000,000 to the age like Joshua discovered, which kept the age ball-park in game (and hence why it sounded correct when 'humanised'). Apologies guys. I'll show myself out :eek:
 
When I tried it with a forced entry for Sol the default script said Sol is over 4 and half thousand years old. Removing the Humanise gave 4792 as age. To make it give the right age (4.792.000.000 years) in my script I multiply the age EDDI reports with 1.000.000 so it now says Sol is over 4 and a half billion years old. I also changed the minimum age for a star to be considered young to 1 billion. First I tested this with 5 billion and that made Sol a young star so that seems to work OK.

Here's the part of the script I modified:
Code:
{set age to reportbody.age*1000000}
    {OneOf("that has been around for {Humanise(age)} years",
           "that is {Humanise(age)} years old",
           "of {Humanise(age)} years",
    )}.
    
    {if age < 1000000000:
        making it one of the younger stars in the galaxy
    |elif age >14000000000:
        making it one of the oldest stars in the galaxy
    }.

Wouldn't this give star ages of over a trillion years? At present the Milky Way galaxy is 13.8 billion years old.
 
Wouldn't this give star ages of over a trillion years? At present the Milky Way galaxy is 13.8 billion years old.

I don't think it will. Sol is about 4.792.000.000 years old but EDDI reports it as 4792 years. So to get to the real age I multiply the age EDDI gives with 1.000.000 so it becomes 4.792.000.000 years.
One of the oldest stars in the Galaxy (https://en.wikipedia.org/wiki/HD_140283) is about as old as the universe so lets say it's 13.800.000.000 years old.
I just saw it is present in ED and according to the Galaxy Map it's 13.8 billion years old. I haven't been there yet but if EDDI behaves the same as with Sol it will say HD-140283 is 13800 years old so multiplying that with 1.000.000 will result is 13.800.000.000 years.
Looking over my script i've now changed the 14 billion line to 12 billion so it should report it as one of the oldest stars now too.
I'm on my way to check it now (only 155 ly to go) :)

Update: well I was there and of course that didn't work for it was an already known star so I couldn't scan it. But when I got to a star in the neighbourhood it did scan and EDDI told me that star was over 11 quadrilion years old :eek:

Now when I checked the map it said 11,326 million years so the problem might be a locale setting using the comma as decimal and full stops as divider for thousands (continental Europe) or vice versa (USA and GB ?)
So maybe that's why EDDI says Sol is only 4792 thousand years old while the map says 4,792 million years. In my locale 4,792 million translates to 4792000 years or 4792 thousand years but in USA/GB it translates to 4792000000 or 4792 million years.

Back to the drawing board :)
 
Last edited:
.Vap File

New to ED and VA would someone have a current PC EDDI 2.3.0 profile.vap file they could link and share so i would have a good starting point? I am using the full install version not the steam version.
 
New to ED and VA would someone have a current PC EDDI 2.3.0 profile.vap file they could link and share so i would have a good starting point? I am using the full install version not the steam version.

Eddi include a vap file in the install. Check the folder where it is installed.
 
I don't think it will. Sol is about 4.792.000.000 years old but EDDI reports it as 4792 years. So to get to the real age I multiply the age EDDI gives with 1.000.000 so it becomes 4.792.000.000 years.
One of the oldest stars in the Galaxy (https://en.wikipedia.org/wiki/HD_140283) is about as old as the universe so lets say it's 13.800.000.000 years old.
I just saw it is present in ED and according to the Galaxy Map it's 13.8 billion years old. I haven't been there yet but if EDDI behaves the same as with Sol it will say HD-140283 is 13800 years old so multiplying that with 1.000.000 will result is 13.800.000.000 years.
Looking over my script i've now changed the 14 billion line to 12 billion so it should report it as one of the oldest stars now too.
I'm on my way to check it now (only 155 ly to go) :)

Update: well I was there and of course that didn't work for it was an already known star so I couldn't scan it. But when I got to a star in the neighbourhood it did scan and EDDI told me that star was over 11 quadrilion years old :eek:

Now when I checked the map it said 11,326 million years so the problem might be a locale setting using the comma as decimal and full stops as divider for thousands (continental Europe) or vice versa (USA and GB ?)
So maybe that's why EDDI says Sol is only 4792 thousand years old while the map says 4,792 million years. In my locale 4,792 million translates to 4792000 years or 4792 thousand years but in USA/GB it translates to 4792000000 or 4792 million years.

Back to the drawing board :)

In the US, EDDI reports SOL in thousands of years also.
 
Back
Top Bottom