Release EDDI - Windows app for immersion and more

Status
Thread Closed: Not open for further replies.
For anyone who is experiencing the crashes when trying 'Compare to Default' please could you download and install https://www.mcdee.net/elite/EDDI-test.exe and see if that fixes your problem? I am struggling to reproduce the issue but have put a number of guards in place that might catch whatever issue is causing this.
 
For anyone who is experiencing the crashes when trying 'Compare to Default' please could you download and install https://www.mcdee.net/elite/EDDI-test.exe and see if that fixes your problem? I am struggling to reproduce the issue but have put a number of guards in place that might catch whatever issue is causing this.

When I try to download the EDDI-test.exe, Chrome reports Failed - Virus detected. I check in Windows Defender and I find (where there wasn't anything there before), Trojan:Win32/Sprisky.D!cl

I'm hoping this is a false positive, but I get so few from Windows Defender.
 
The last parameter of slice() is a count not an index, so in this case you need to take 6 away from it.

Ah right of course, thanks a lot :D

This means that my colossal project that I've been working on all this time is now complete. For those interested, here's my complete Body Scanned script:
Code:
{Pause(1000)}

{OneOf("Scan of {P(event.name)} complete. This is", "{P(event.name)} scanned. It is", "Scan complete. {P(event.name)} is")}

{if event.bodyclass= "Sudarsky class I gas giant" || event.bodyclass= "Sudarsky class II gas giant" || event.bodyclass= "Sudarsky class III gas giant" || event.bodyclass= "Sudarsky class IV gas giant" || event.bodyclass= "Sudarsky class V gas giant":
   {if event.radius < 15000000:
       a miniscule 
   |elif event.radius < 20000000:
       a tiny 
   |elif event.radius < 30000000:
       a small 
   |elif event.radius < 55000000:
       a medium sized 
   |elif event.radius < 63000000:
       a large 
   |elif event.radius < 69000000:
       a huge 
   |elif event.radius < 71000000:
       a gigantic
   |else:
       an incredibly large 
   }
|else:
   {if event.radius < 300000:
       a miniscule 
   |elif event.radius < 1000000:
       a tiny 
   |elif event.radius < 3000000:
       a small 
   |elif event.radius < 7500000:
       a medium sized 
   |elif event.radius < 12500000:
       a large 
   |elif event.radius < 19000000:
       a huge 
   |elif event.radius < 25000000:
       a gigantic
   |else:
       an incredibly large 
   }
}
{if event.bodyclass != "Sudarsky class I gas giant" && event.bodyclass != "Sudarsky class II gas giant" && event.bodyclass != "Sudarsky class III gas giant" && event.bodyclass != "Sudarsky class IV gas giant" && event.bodyclass != "Sudarsky class V gas giant":
{if event.temperature < 123:
    frozen 
|elif event.temperature < 173:
    frigid 
|elif event.temperature < 213:
    cold 
|elif event.temperature < 243:
    arctic 
|elif event.temperature < 258:
    cool 
|elif event.temperature < 273:
    chilly 
|elif event.temperature < 300:
    temperate
|elif event.temperature < 315:
    warm 
|elif event.temperature < 375:
    heated 
|elif event.temperature < 500:
    hot 
|elif event.temperature < 700:
    sweltering 
|elif event.temperature < 1000:
    scorchingly hot 
|elif event.temperature < 1500:
    melting 
|elif event.temperature < 2300:
    molten 
|elif event.temperature < 3300:
    boiling 
|elif event.temperature < 10000:
    blazingly hot 
|else:
    incredibly hot 
}
}


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

{if event.bodyclass= "Sudarsky class I gas giant":
   Class one gas giant 
|elif event.bodyclass= "Sudarsky class II gas giant":
   Class two gas giant 
|elif event.bodyclass= "Sudarsky class III gas giant":
   Class three gas giant 
|elif event.bodyclass= "Sudarsky class IV gas giant":
   Class four gas giant 
|elif event.bodyclass= "Sudarsky class V gas giant":
   Class five gas giant 
|else:
   {event.bodyclass} 
}

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

that is 

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

{if event.landable :

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

    {if len(greatmaterials) > 0:
        I detect very high levels of
        {if len(greatmaterials) = 1:
            {greatmaterials[0].name}
        |elif len(greatmaterials) = 2:
            {greatmaterials[0].name} and {greatmaterials[1].name}
        |else:
            {set cur to 0}
            {while cur < len(greatmaterials):
                {if cur = 0:
                    {greatmaterials[cur].name}
                |elif cur < len(greatmaterials) - 1:
                    , {greatmaterials[cur].name}
                |else:
                    ,and {greatmaterials[cur].name}
                }
                {set cur to cur + 1}
            }
        }
    }
    {if len(goodmaterials) > 0:
        {if len(greatmaterials) > 0:
            and high levels of
        |else:
            I detect high levels of
        }
        {if len(goodmaterials) = 1:
            {goodmaterials[0].name}
        |elif len(goodmaterials) = 2:
            {goodmaterials[0].name} and {goodmaterials[1].name}
        |else:
            {set cur to 0}
            {while cur < len(goodmaterials):
                {if cur = 0:
                    {goodmaterials[cur].name}
                |elif cur < len(goodmaterials) - 1:
                    , {goodmaterials[cur].name}
                |else:
                    ,and {goodmaterials[cur].name}
                }
                {set cur to cur + 1}
            }
        }
    }
    {if len(goodmaterials) > 0 || len(greatmaterials) > 0:
       on the surface 
    }
    {if len(goodmaterials) = 0 && len(greatmaterials) = 0:
    I cannot detect any particular resource abundances
    }.
}

{_Atmosphere }
{SetState("eddi_atmosphere_type", 0)}
{if event.bodyclass= "Sudarsky class I gas giant":
   Class one gas giants have surface temperatures of less than 150 kelvin, thus forming a dense cloud layer of ammonia vapor.
      {SetState("eddi_atmosphere_type", 1)}
|elif event.bodyclass= "Sudarsky class II gas giant":
   Class two gas giants have surface temperatures of around 250 kelvin, thus forming a dense cloud layer of water vapor.
      {SetState("eddi_atmosphere_type", 1)}
|elif event.bodyclass= "Sudarsky class III gas giant":
   Class three gas giants have surface temperatures of around 600 kelvin, a temperature at which no gaseous elements will form any clouds.
      {SetState("eddi_atmosphere_type", 1)}
|elif event.bodyclass= "Sudarsky class IV gas giant":
   Class four gas giants have surface temperatures of around 1000 kelvin, thus forming a dense cloud layer of vapors made of alkali metals.
      {SetState("eddi_atmosphere_type", 1)}
|elif event.bodyclass= "Sudarsky class V gas giant":
   Class five gas giants have surface temperatures of over 1500 kelvin, thus forming a dense cloud layer of vapors made of silicates and iron.
      {SetState("eddi_atmosphere_type", 1)}
|elif find(event.bodyclass, "Water Giant") >= 0:
   This gas giant is mainly composed of Water vapor.
|elif find(event.bodyclass, "Ammonia World") >= 0:
   {SetState("eddi_atmosphere_type", 2)}
|else: 
   {if event.atmosphere = "ammonia atmosphere" || event.atmosphere = "argon atmosphere" || event.atmosphere = "carbon dioxide atmosphere" || event.atmosphere = "helium atmosphere" || event.atmosphere = "methane atmosphere" || event.atmosphere = "neon atmosphere" || event.atmosphere = "nitrogen atmosphere" || event.atmosphere = "silicate vapour atmosphere" || event.atmosphere = "sulfur dioxide atmosphere" || event.atmosphere = "sulphur dioxide atmosphere" || event.atmosphere = "water atmosphere":
      {SetState("eddi_atmosphere_element", slice(event.atmosphere, 0, find(event.atmosphere, " atmosphere", 0)))}
      {SetState("eddi_atmosphere_type", 0)}
   |elif event.atmosphere = "ammonia rich atmosphere" || event.atmosphere = "argon rich atmosphere" || event.atmosphere = "carbon dioxide rich atmosphere" || event.atmosphere = "helium rich atmosphere" || event.atmosphere = "methane rich atmosphere" || event.atmosphere = "neon rich atmosphere" || event.atmosphere = "nitrogen rich atmosphere" || event.atmosphere = "silicate vapour rich atmosphere" || event.atmosphere = "sulfur dioxide rich atmosphere" || event.atmosphere = "sulphur dioxide rich atmosphere" || event.atmosphere = "water rich atmosphere":
      {SetState("eddi_atmosphere_element", slice(event.atmosphere, 0, find(event.atmosphere, " rich", 0)))}
      {SetState("eddi_atmosphere_type", 0)}
   |elif event.atmosphere = "hot thick ammonia atmosphere" || event.atmosphere = "hot thick argon atmosphere" || event.atmosphere = "hot thick carbon dioxide atmosphere" || event.atmosphere = "hot thick helium atmosphere" || event.atmosphere = "hot thick methane atmosphere" || event.atmosphere = "hot thick neon atmosphere" || event.atmosphere = "hot thick nitrogen atmosphere" || event.atmosphere = "hot thick silicate vapour atmosphere" || event.atmosphere = "hot thick sulfur dioxide atmosphere" || event.atmosphere = "hot thick sulphur dioxide atmosphere" || event.atmosphere = "hot thick water atmosphere":
      {SetState("eddi_atmosphere_element", slice(event.atmosphere, 10, (find(event.atmosphere, " atmosphere", 0)-10)))}
      {SetState("eddi_atmosphere_type", 0)}
   |elif event.atmosphere = "hot thick ammonia rich atmosphere" || event.atmosphere = "hot thick argon rich atmosphere" || event.atmosphere = "hot thick carbon dioxide rich atmosphere" || event.atmosphere = "hot thick helium rich atmosphere" || event.atmosphere = "hot thick methane rich atmosphere" || event.atmosphere = "hot thick neon rich atmosphere" || event.atmosphere = "hot thick nitrogen rich atmosphere" || event.atmosphere = "hot thick silicate vapour rich atmosphere" || event.atmosphere = "hot thick sulfur dioxide rich atmosphere" || event.atmosphere = "hot thick sulphur dioxide rich atmosphere" || event.atmosphere = "hot thick water rich atmosphere":
      {SetState("eddi_atmosphere_element", slice(event.atmosphere, 10, (find(event.atmosphere, " rich", 0)-10)))}
      {SetState("eddi_atmosphere_type", 0)}
   |elif event.atmosphere = "thick ammonia atmosphere" || event.atmosphere = "thick argon atmosphere" || event.atmosphere = "thick carbon dioxide atmosphere" || event.atmosphere = "thick helium atmosphere" || event.atmosphere = "thick methane atmosphere" || event.atmosphere = "thick neon atmosphere" || event.atmosphere = "thick nitrogen atmosphere" || event.atmosphere = "thick silicate vapour atmosphere" || event.atmosphere = "thick sulfur dioxide atmosphere" || event.atmosphere = "thick sulphur dioxide atmosphere" || event.atmosphere = "thick water atmosphere":
      {SetState("eddi_atmosphere_element", slice(event.atmosphere, 6, (find(event.atmosphere, " atmosphere", 0)-6)))}
      {SetState("eddi_atmosphere_type", 0)}
   |elif event.atmosphere = "thick ammonia rich atmosphere" || event.atmosphere = "thick argon rich atmosphere" || event.atmosphere = "thick carbon dioxide rich atmosphere" || event.atmosphere = "thick helium rich atmosphere" || event.atmosphere = "thick methane rich atmosphere" || event.atmosphere = "thick neon rich atmosphere" || event.atmosphere = "thick nitrogen rich atmosphere" || event.atmosphere = "thick silicate vapour rich atmosphere" || event.atmosphere = "thick sulfur dioxide rich atmosphere" || event.atmosphere = "thick sulphur dioxide rich atmosphere" || event.atmosphere = "thick water rich atmosphere":
      {SetState("eddi_atmosphere_element", slice(event.atmosphere, 6, (find(event.atmosphere, " rich", 0)-6)))}
      {SetState("eddi_atmosphere_type", 0)}
   |elif event.atmosphere = "thin ammonia atmosphere" || event.atmosphere = "thin argon atmosphere" || event.atmosphere = "thin carbon dioxide atmosphere" || event.atmosphere = "thin helium atmosphere" || event.atmosphere = "thin methane atmosphere" || event.atmosphere = "thin neon atmosphere" || event.atmosphere = "thin nitrogen atmosphere" || event.atmosphere = "thin silicate vapour atmosphere" || event.atmosphere = "thin sulfur dioxide atmosphere" || event.atmosphere = "thin sulphur dioxide atmosphere" || event.atmosphere = "thin water atmosphere":
      {SetState("eddi_atmosphere_element", slice(event.atmosphere, 5, (find(event.atmosphere, " atmosphere", 0)-5)))}
      {SetState("eddi_atmosphere_type", 0)}
   |elif event.atmosphere = "thin ammonia rich atmosphere" || event.atmosphere = "thin argon rich atmosphere" || event.atmosphere = "thin carbon dioxide rich atmosphere" || event.atmosphere = "thin helium rich atmosphere" || event.atmosphere = "thin methane rich atmosphere" || event.atmosphere = "thin neon rich atmosphere" || event.atmosphere = "thin nitrogen rich atmosphere" || event.atmosphere = "thin silicate vapour rich atmosphere" || event.atmosphere = "thin sulfur dioxide rich atmosphere" || event.atmosphere = "thin sulphur dioxide rich atmosphere" || event.atmosphere = "thin water rich atmosphere":
      {SetState("eddi_atmosphere_element", slice(event.atmosphere, 5, (find(event.atmosphere, " rich", 0)-5)))}
      {SetState("eddi_atmosphere_type", 0)}
   |elif event.atmosphere = nil || event.atmosphere = "":
      {if event.landable:
         {SetState("eddi_atmosphere_type", 1)}
      |else:
         I am sorry, my atmosphere sensors appear to be defective: Although this body has an atmosphere, I am unable to detect its composition.
         {SetState("eddi_atmosphere_type", 1)}
      }
   |else:
      We have never scanned an atmosphere like this one before and my Atmosphere script is thus lacking the following definition: {event.atmosphere}.
      {SetState("eddi_atmosphere_type", 1)}
   }
}
{if state.eddi_atmosphere_type = 0:
   {OneOf("{event.name} has ", "I detect ", "There is ")}
   {if event.pressure < 35000:
      a trace
   |elif event.pressure < 60000:
      a very thin
   |elif event.pressure < 80000:
      a thin
   |elif event.pressure < 120000:
      an average
   |elif event.pressure < 500000:
      a thick
   |elif event.pressure < 10000000:
      a dense
   |elif event.pressure < 100000000:
      a very dense
   |else:
      a crushing
   }
   atmosphere composed mainly of {state.eddi_atmosphere_element}.
|elif state.eddi_atmosphere_type = 2:
   {OneOf("{event.name} has ", "I detect ", "There is ")}
   {if event.pressure < 35000:
      a trace
   |elif event.pressure < 60000:
      a very thin
   |elif event.pressure < 80000:
      a thin
   |elif event.pressure < 120000:
      an average
   |elif event.pressure < 500000:
      a thick
   |elif event.pressure < 10000000:
      a dense
   |elif event.pressure < 100000000:
      a very dense
   |else:
      a crushing
   }
   atmosphere composed mainly of toxic gases like methane and ammonia.
}
{SetState("eddi_atmosphere_type", 0)}

{_ Volcanism}
{if event.volcanism.type = "Magma":
   I am detecting 
   {if event.volcanism.amount = "Major":
      {OneOf("numerous", "many", "lots of")} 
   |elif event.volcanism.amount = "Minor":
      {OneOf("some", "a few", "a small amount of")} 
   } 
   lava flows consisting mostly of {event.volcanism.composition} on the surface.
|elif event.volcanism.type = "Geysers":
   {if event.volcanism.amount = "Major":
      {OneOf("numerous", "many", "lots of")} 
   |elif event.volcanism.amount = "Minor":
      {OneOf("some", "a few", "a small number of")} 
   } geysers of volcanic origin that are ejecting mostly {event.volcanism.composition} {OneOf("detected", "are present")} on the surface.
}
Most of it should work now, although I cannot be 100% sure that I have found all possible atmosphere types in the game; in case somebody scans an unknown atmosphere, EDDI will state that she has never seen one like that before and then announces what it's called in the game (that's mainly for me so I can add it to the script afterwards :p). Also, there are some bodies in the game that have an atmosphere but will not return an event.atmosphere value (don't know why this happens), EDDI says in that case that her atmosphere sensors might be defective ;)

Credits go to the person who created the ASTRA EXT personality (doesn't mention her/his name anywhere) which served as the basis for this script. Also to all the people who have helped me in this thread. And of course especially to jgm for creating this awesome ship companion for us [praise]
 
I've been having a problem for a while. I have a customized Enter Normal space script. It tells you what the gravity of the world is (or it is supposed to). Below is the code of the relevant section.

Code:
{if event.bodytype = 'Planet':
    {OneOf("near", "close to", "in the vicinity of")} planet {P(event.body)}
    {set body to BodyDetails(event.body)}
    {if body.gravity:
    {if body.landable && body.gravity > 1:
        Caution: {P(event.body)} is a high gravity world, at {Round(event.body.gravity,2)} G.
    }
    |else:
    Gravity is {Round(event.body.gravity,2)} G.
    }

It always says "Gravity is G". Any ideas why this is happening?

Sometimes EDDN does not have data on the body and all you will get are NULL's.

This is my verision which tests for that:

Code:
{if event.bodytype = 'Planet':
    {OneOf("near", "close to", "in the vicinity of")} planet {P(event.body)}.

    {Pause(1000)}
    {set body to BodyDetails(event.body, event.system)}
    {if !body.name || body.name = "":
        Planetary approach data not available.
    |else:
        {if body.landable:
            {set gravity to round(body.gravity,2)}
            {if gravity > 4:
                Danger! {P(body.name)} is an extremely high gravity world, at {gravity} G.
            |elif gravity > 2:
                Caution! {P(body.name)} is a high gravity world, at {gravity} G.
            |elif gravity > 0.5:
                Warning! {P(body.name)} is a medium gravity world, at {gravity} G.
            |else:
                {P(body.name)} is a low gravity world, at {gravity} G.
            }
        }
    }

|elif event.bodytype = 'Star':
    {OneOf("near", "close to", "in the vicinity of")} star {P(event.body)}
|elif event.bodytype = 'Station':
    {OneOf("near", "close to", "in the vicinity of")} {P(event.body)}
}.
 
Last edited:
Sometimes EDDN does not have data on the body and all you will get are NULL's.

This is my verision which tests for that:

Code:
{if event.bodytype = 'Planet':
    {OneOf("near", "close to", "in the vicinity of")} planet {P(event.body)}.

    {Pause(1000)}
    {set body to BodyDetails(event.body, event.system)}
    {if !body.name || body.name = "":
        Planetary approach data not available.
    |else:
        {if body.landable:
            {set gravity to round(body.gravity,2)}
            {if gravity > 4:
                Danger! {P(body.name)} is an extremely high gravity world, at {gravity} G.
            |elif gravity > 2:
                Caution! {P(body.name)} is a high gravity world, at {gravity} G.
            |elif gravity > 0.5:
                Warning! {P(body.name)} is a medium gravity world, at {gravity} G.
            |else:
                {P(body.name)} is a low gravity world, at {gravity} G.
            }
        }
    }

|elif event.bodytype = 'Star':
    {OneOf("near", "close to", "in the vicinity of")} star {P(event.body)}
|elif event.bodytype = 'Station':
    {OneOf("near", "close to", "in the vicinity of")} {P(event.body)}
}.

How does this test for a NULL? It looks to me like it will say "Planetname is a low gravity world at 0 G." if gravity is NULL. Should be some way for it to say "Gravity not available for Planetname" Because all worlds are going to have some gravity. It might only be .1 G or even .05G but there will be *some* gravity. For it to say "Planetname is a low gravity world at 0 G" is nonsensical.
 
How does this test for a NULL? It looks to me like it will say "Planetname is a low gravity world at 0 G." if gravity is NULL. Should be some way for it to say "Gravity not available for Planetname" Because all worlds are going to have some gravity. It might only be .1 G or even .05G but there will be *some* gravity. For it to say "Planetname is a low gravity world at 0 G" is nonsensical.

{if !body.name || body.name = "":
Planetary approach data not available.
|else:

If body.name is not set, or is "" then EDDI will say "Planetary approach data not available."

If it has a value, EDDI will check if landable and then report the gravity.
 
Last edited:
If body.name is not set, or is "" then EDDI will say "Planetary approach data not available."

I now see what was wrong in my script. I wrote it

{if (body.gravity): when it should have been, {if(event.body.gravity): Stupid mistake. Well that's programming. Leave out one word and it mucks the whole thing up.
 
How does this test for a NULL? It looks to me like it will say "Planetname is a low gravity world at 0 G." if gravity is NULL. Should be some way for it to say "Gravity not available for Planetname" Because all worlds are going to have some gravity. It might only be .1 G or even .05G but there will be *some* gravity. For it to say "Planetname is a low gravity world at 0 G" is nonsensical.

This part right here:

Code:
    {set body to BodyDetails(event.body, event.system)}
    {if !body.name || body.name = "":

After making a call to EDDI's copy of the EDDN database, if EDDN database doesn't have an entry on the requested body, then it's name is empty (NULL) and all other data (including gravity) is empty (NULL).
 
This part right here:

Code:
    {set body to BodyDetails(event.body, event.system)}
    {if !body.name || body.name = "":

After making a call to EDDI's copy of the EDDN database, if EDDN database doesn't have an entry on the requested body, then it's name is empty (NULL) and all other data (including gravity) is empty (NULL).

I've had EDDI report the name of a planet I was going to land on but still said "Gravity is G", meaning it couldn't find the gravity value.
 
For anyone who is experiencing the crashes when trying 'Compare to Default' please could you download and install https://www.mcdee.net/elite/EDDI-test.exe and see if that fixes your problem? I am struggling to reproduce the issue but have put a number of guards in place that might catch whatever issue is causing this.

I was struggling a bit with crashes on 'Compare to Default' too (since beta 3). This test .exe seems to have fixed the issue... I haven't been able to get it to crash since installing the test .exe.
 
As of latest version EDDI won't export engineer upgrades to Coriolis. Is that widespread, and can I do something about it?
 
Yeah, figured as much. I was aware of the API changes but didn't know if that was some leftover interaction with the temporary DLL to avoid the whole crashing thing. Shucks.
 
As I suspected, it was a false positive. Windows Defender definitely recognizes the EDDI-test.exe as malware and reports to chrome it is a virus. But I created a restore point and then allowed it through to an exclusion folder. It installed the test just fine. Just so you know, my windows Defender is reporting it as a Sprisky.D!cl trojan.
 
I recently installed VA and EDDI with a good bit of progress having been made I headed out for an exploration run. Everything seems to be working pretty nicely, but I am getting a bit tired of the auto reporting when a planet gets scanned.

Is there a way to turn the scan report off/on?

I've tried reading through the EDDI .vap commands and can't find anything relevant. I also opened EDDI configuration, but the "Body report" cannot be disabled as all the checkmark boxes are grayed out.

Any help appreciated.
 
I recently installed VA and EDDI with a good bit of progress having been made I headed out for an exploration run. Everything seems to be working pretty nicely, but I am getting a bit tired of the auto reporting when a planet gets scanned.

Is there a way to turn the scan report off/on?

I've tried reading through the EDDI .vap commands and can't find anything relevant. I also opened EDDI configuration, but the "Body report" cannot be disabled as all the checkmark boxes are grayed out.

Any help appreciated.

yes, create a new personality in eddi and all scripts will be editable or u can disalbe them
 
It seems the ship monitor is borked. I transfer to another ship and it doesn't pick it up. I've got to exit voice attack, delete the shipmonitor.json from the EDDI appdata folder and then start Voice Attack again. Then It doesn't pick up the name. Name is not filtered. I rename the ship to the same name as before and then it picks it up. Until the shipmonitor.json file is deleted, it refers to the ship as unknown ship and tells me I don't have enough to cover my insurance excess even though there's enough for quite a few rebuys. Also when I trade a ship in, it will sometimes keep the old ship (in addition to the new one I purchased) even though I no longer own it.
 
Last edited:
Two questions.


First, would it be possible to get a Voice attack command example on how to swap between a personality?

Reading the documentation, for someone like myself that does not understand programming unless an example is given, the explanation is clear as mud. In the image below, the text variable "Normal" which i am trying to change to, I have also tried to name it "Personality", "PersonalityNomal", "Personality Normal" all to have zero effect. I have also tried to create two personalitys, one named "personality normal" and the other "personality quiet", all using different combos of capital first letters to make sure it was not that as well.

https://github.com/cmdrmcdonald/Eli...VoiceAttack-Integration#enablespeechresponder

setspeechresponderpersonality

This function changes the speech responder's personality. The name of the personality should be a text variable with the name 'Personality'.

Note that unlike enablespeechresponder and disablespeechresponder any changes made here are persistent.

To use this function in your own commands use the 'Execute an external plugin function' command with the plugin context set to 'setspeechresponderpersonality'.

IamcEjJ.png




Second, when editing my two speech responder personalities, Normal reads off the jumping event and the scanned bodies as normal, and the included .vap command "system report" works when asked.

When I change to my Quiet personality so it is not activating on every jump and scan, because they do not do those things, the system report .vap commnds do not work, as there is nothing writing the events in the journal to variables for commands like "system report" to read off of. It just says "not set" when you ask for a system report or "tell me about that body;planet" Is there perhaps an easy way to keep things activated *except* not read them out.

Because of streaming having it interrupt every jump gets distracting quick, but losing the functionality of being able to ask "system report" and get the info about the system you just jumped into and it just replying with "not set" is the reason why a lot of my viewers do not use it, they also do not want it spamming TTS all the time, but do want functionality that gets lost when unchecking items trying to just get it to be quiet.

Note that using "disablespeechresponder" is not an option, it is still using some TTS functions, just not a few such as jumping and scanning a body.
 
Status
Thread Closed: Not open for further replies.
Back
Top Bottom