Release EDDI Scripts and EDDI enabled VA Commands Thread

Here is my script for: Market information Updated.

News Flash from Doomberg business-and-finance News. The commodity markets prices have Fluctuated. The price of some units have gone up, yet the price of others have Fallen, and it's difficult to predict which way this Market is Heading. Doomberg Advise Traders to re-check Prices at the commodities Market.

Note the use of Capitol letters, They seem to change emphasis on the voices and can be used to make stuff sound better!
 
Anybody worked out how to do a Script to tell you how far away you are from a Home station/system and Destination station & System?

Like when I'm exploring I like to put in my final destination and after every jump it calculates the distance to go like the distance from the home station and system.
 
I don't think that destination station is a set variable, but your home station as set in the EDDI config is a variable. I have the below line in my jumping script to tell me how far I'm from home every once and a while:
Code:
  {if system.distancefromhome:
        {Occasionally(7, "{OneOf(\"You are\", \"Current location is\", \"You are now\")} {Humanise(system.distancefromhome)} lightyears from {OneOf(\"home\", \"{P(homesystem.name)}\")}.")}
    }
 
The script read after docking granted confused me with the pad number, then the clock position. I saw in the EDDI main thread that someone had edited it to say directions instead of clock positions. I edited a bit more to add pad size:
Code:
{set station to StationDetails(event.station)}
{if station.model = "Coriolis Starport" || station.model = "Orbis Starport" || station.model = "Ocellus Starport" || station.model = "Unknown Starport":
    {Pause(8000)}
    Landing pad {event.landingpad} is 
    {if event.landingpad = 1:
        a small pad close to the entrance, in the center.
    |elif event.landingpad = 2:
        a large pad in the mid section of the station, in the center.
    |elif event.landingpad = 3:
        a medium pad in the far section of the station, in the center.
    |elif event.landingpad = 4:
        a small pad in the far section of the station, in the center.
    |elif event.landingpad = 5:
        a medium pad close to the entrance, on the left.
    |elif event.landingpad = 6:
        a small pad in the mid section of the station, on the left.
    |elif event.landingpad = 7:
        a medium pad in the mid section of the station, on the left.
    |elif event.landingpad = 8:
        a medium pad in the far section of the station, on the left.
    |elif event.landingpad = 9:
        a large pad close to the entrance, on the left.
    |elif event.landingpad = 10:
        a large pad in the far section of the station, on the left.
    |elif event.landingpad = 11:
        a medium pad close to the entrance, on the far left.
    |elif event.landingpad = 12:
        a small pad in the mid section of the station, on the far left.
    |elif event.landingpad = 13:
        a small pad in the mid section of the station, on the far left.
    |elif event.landingpad = 14:
        a small pad in the far section of the station, on the far left.
    |elif event.landingpad = 15:
        a medium pad in the far section of the station, on the far left.
    |elif event.landingpad = 16:
        a small pad close to the entrance, on the left.
    |elif event.landingpad = 17:
        a large pad in the mid section of the station, on the left.
    |elif event.landingpad = 18:
        a medium pad in the far section of the station, on the left.
    |elif event.landingpad = 19:
        a small pad in the far section of the station, on the left.
    |elif event.landingpad = 20:
        a medium pad close to the entrance, on the left.
    |elif event.landingpad = 21:
        a small pad in the mid section of the station, on the left.
    |elif event.landingpad = 22:
        a medium pad in the mid section of the station, on the left.
    |elif event.landingpad = 23:
        a medium pad in the far section of the station, on the left.
    |elif event.landingpad = 24:
        a large pad close to the entrance, in the center.
    |elif event.landingpad = 25:
        a large pad in the far section of the station, in the center.
    |elif event.landingpad = 26:
        a medium pad close to the entrance, on the right.
    |elif event.landingpad = 27:
        a small pad in the mid section of the station, on the right.
    |elif event.landingpad = 28:
        a small pad in the mid section of the station, on the right.
    |elif event.landingpad = 29:
        a small pad in the far section of the station, on the right.
    |elif event.landingpad = 30:
        a medium pad in the far section of the station, on the right.
    |elif event.landingpad = 31:
        a small pad close to the entrance, on the right.
    |elif event.landingpad = 32:
        a large pad in the mid section of the station, on the right.
    |elif event.landingpad = 33:
        a medium pad in the far section of the station, on the right.
    |elif event.landingpad = 34:
        a small pad in the far section of the station, on the right.
    |elif event.landingpad = 35:
        a medium pad close to the entrance, on the far right.
    |elif event.landingpad = 36:
        a small pad in the mid section of the station, on the far right.
    |elif event.landingpad = 37:
        a medium pad in the mid section of the station, on the far right.
    |elif event.landingpad = 38:
        a medium pad in the far section of the station, on the far right.
    |elif event.landingpad = 39:
        a large pad close to the entrance, on the right.
    |elif event.landingpad = 40:
       a large pad in the far section of the station, on the right.
    |elif event.landingpad = 41:
        a medium pad close to the entrance, on the right.
    |elif event.landingpad = 42:
        a small pad in the mid section of the station, on the right.
    |elif event.landingpad = 43:
        a small pad in the mid section of the station, on the right.
    |elif event.landingpad = 44:
        a small pad in the far section of the station, on the right.
    |elif event.landingpad = 45:
        a medium pad in the far section of the station, on the right.
    }
    , as you enter with the green lights on your right.
}
 
I don't think that destination station is a set variable, but your home station as set in the EDDI config is a variable. I have the below line in my jumping script to tell me how far I'm from home every once and a while:
Code:
  {if system.distancefromhome:
        {Occasionally(7, "{OneOf(\"You are\", \"Current location is\", \"You are now\")} {Humanise(system.distancefromhome)} lightyears from {OneOf(\"home\", \"{P(homesystem.name)}\")}.")}
    }

I saw that and using it but I'd also like to have it for the destination system too.

I got got it all set up to write a txt file for OBS to use while streaming
 
I saw that and using it but I'd also like to have it for the destination system too.

I got got it all set up to write a txt file for OBS to use while streaming

As far as I am aware route information is not available from any source. The only thing you could do would be to set it manually.
 
As far as I am aware route information is not available from any source. The only thing you could do would be to set it manually.

I could work with that. Like the same way you have it set up for home system in EDDI 2 app
 
Last edited:
Station report

A more varied station report.....


Station report

Code:
{set station to OneOf("This Station", "{station.name} {station.model}") }
{set witheconomy to OneOf("with an economy of ", "the main work here is in","most people here are involved in" ) }
{set controlledby to OneOf("is controlled by", "is ruled by","belongs to") }

{P(station.name)}, in the {P(system.name)} system {controlledby} the {P(station.faction)} {Occasionally (2,"faction")}.

{if system.state = "Boom":
   {P(station.faction)} are undergoing an economic boom.
|elif system.state = "Civil War":
   {P(station.faction)} are at war.
|elif system.state = "Famine":
   {P(station.faction)}'s people are starving.
|elif system.state = "Lockdown":
   {P(station.faction)} have imposed lockdown.
|elif system.state = "Outbreak":
   {P(station.faction)} are attempting to contain an outbreak of disease.
|elif system.state = "War":
   {P(station.faction)} are at war.
}

{station} is {Occasionally (2," {(station.distancefromstar)} light seconds from the {OneOf("Starr", "nav beacon")}, and")} aligned to {P(station.allegiance)}, 

{witheconomy}

{for economy in station.economies:
  {economy}
}

{Occasionally (3,"There is a {system.security} security level here.")}
 
A few scripts I've cobbled together:

Cargo Collected:
Code:
{event.cargo} {OneOf("now on board","collected","added to cargo hold")}.

{if event.stolen:
  Warning this cargo is marked as stolen.
}

Fuel report after jumping, Jumped Event:
Code:
{set currentfuel to (event.fuelremaining / ship.fueltanktotalcapacity)}

{Pause(2000)}

Your last Jump used up {Humanise(event.fuelused)} Tons of Fuel, leaving you with {Humanise(event.fuelremaining)} Tons remaining.
{Occasionally(5,"with a total fuel capacity of {ship.fueltanktotalcapacity} tons.")}

{if icurrentfuel < 0.08:
  Danger! {P(ShipName())}s Fueltanks depleted! Running on reserves. Shutdown of non-essential Systems is adviced!. Emergency call transmitter standing by.  
|elif currentfuel < 0.16:
  Warning! {P(ShipName())}s Fueltanks almost depleted. Refueling is strongly recommended. 
|elif currentfuel <= 0.25:
  Attention! Fuel reserves below 25%. 
|elif currentfuel <= 0.5:
  Attention! Fuel reserves below 50%. 
}

Security presence report:
Code:
{if system.security = "None":
        Warning there is no {OneOf("police", "security", "law enforcement")} presence {OneOf("here", "in this system")}.
|elif system.security = "Low":
        Caution there is {OneOf("minimal", "low", "weak")}  {OneOf("police", "security", "law enforcement")} presence {OneOf("here", "in this system")}.
|elif system.security = "Medium":
        There is {OneOf("standard", "medium", "average")}  {OneOf("police", "security", "law enforcement")} presence {OneOf("here", "in this system")}.
|elif system.security = "High":
        There is {OneOf("high", "heavy", "strong")} {OneOf("police", "security", "law enforcement")} presence {OneOf("here", "in this system")}. You should be safe.
|elif system.security = "Lawless":
        Warning this is a Anarchy system. There is no {OneOf("police", "security", "law enforcement")} presence {OneOf("here", "in this system")}.
|else:
        There is {system.security} {OneOf("police", "security", "law enforcement")} presence {OneOf("here", "in this system")}.
}

Ship Refueled, by buying fuel or scooping:
Code:
{set currentfuel to (event.total / ship.fueltanktotalcapacity)}

{if event.source = "Scoop":
   {ShipName()} refueled  by fuel scoop with {Humanise(event.amount)} Tons.
|else
   {set currentfuel to ship.fueltanktotalcapacity}
        {ShipName()} refuelled with {Humanise(event.amount)} Tons for {event.price} Credits.}

Station Report:

Code:
{P(station.name)}, in the {P(system.name)} system is controlled by the {P(station.faction)} faction, in a state of {P(station.state)}, with a {P(station.government)} government, and {system.security} security level. It is a {station.model}. This station is {(station.distancefromstar)} light seconds from the star and alligned to {P(station.allegiance)}, with an economy of 

{for economy in station.economies:
  {economy}
}

System Report read on jumping event:
Code:
{OneOf("This is", "This system is", "{P(system.name)} is")}
{if system.allegiance = "Federation":
    a Federation
|elif system.allegiance = "Empire":
    an Empire
|else:
    an independent
}
{if system.government:
    {system.government} government,
|else:
  system
}
{OneOf("of", "with a population of", "home to", "supporting")} {Humanise(system.population)} {OneOf("people", "souls")}
{if system.power:
    {P(system.powerstate)} by {P(system.power)}.
}

{if system.power="Li Yong-Rui":
  Warning, this system is hostile to you.
|elif system.power="Zachary Hudson":
  Warning, this system is hostile to you.
|elif system.power="Felicia Winters":
  Warning, this system is hostile to you.
|elif system.power="Edmund Mahon":
  Warning, this system is hostile to you.
|elif system.power="Pranav Antal":
  Warning, this system is hostile to you.
|elif system.power="Archon Delaine":
  Warning, this system is hostile to you.
|elif system.power="Yuri Grom":
  Warning, this system is hostile to you.
}

{if system.faction:
  {OneOf("The controlling faction","The primary faction")} is {P(system.faction)}.
}


{if system.primaryeconomy:
  {P(system.name)} has a {OneOf("primary","main")} economy of {P(system.primaryeconomy)}.
}




{if system.state = "Boom":
    This system is undergoing a boom; there might be good trading profits to be made here.
|elif system.state = "Civil War":
    This system is in civil war; caution is advised.
|elif system.state = "Famine":
    This system is in a state of famine; caution is advised.
|elif system.state = "Lockdown":
    This system is in lockdown; caution is advised.
|elif system.state = "Outbreak":
    This system is attempting to contain an outbreak of disease; caution is advised.
|elif system.state = "War":
    This system is at war; caution is advised.
}

{if len(system.stations) = 0:
  There are no stations
|else:
    {if len(system.orbitalstations) = 0:
        {if len(system.planetarystations) = 1:
            There is {OneOf("a single", "a lone", "just one", "one")} planetary station
        |else:
            There are {len(system.planetarystations)} planetary stations
        }
    |elif len(system.orbitalstations) = 1:
        There is {OneOf("a single", "a lone", "just one", "one")} orbital station
        {if len(system.planetarystations) = 1:
            and {OneOf("a lone", "a single", "one")} planetary station
        |elif len(system.planetarystations) > 1:
            and {len(system.planetarystations)} planetary stations
        }
    |else:
        There are {len(system.orbitalstations)} orbital stations
        {if len(system.planetarystations) = 1:
            and {OneOf("a lone", "a single", "one")} planetary station
        |elif len(system.planetarystations) > 1:
            and {len(system.planetarystations)} planetary stations
        }
{OneOf("here.", "in this system.", "in {P(system.name)}.")}
    }
}
{F("Security presence report")}


Looking at these , are they NEW as in I have to make new entries , or do I add them to the bottom or top of the ones already there in EDDI?

System Report read on jumping event: case in point.. does it go in the Jump event or the System report or just make a new one called 'System Report read on jumping event' then add the script


The OP who started this thread , may want to have a simple guide at the top , with how to add the scripts , and the Posters can use a Template so their Scripts can be seen to be

either 'Replacing a known script ' OR adding to a known Script ( which I assume is always the bottom (end) of the known scripts in EDDI)

I don't know if users Scripts are ever adding to the top (start) of a known EDDI script
 
Last edited:
These are examples of scripts that you can use to replace the built in scripts. In EDDI under the speech responder, you click on copy personality, and then find the event you want to edit and make the changes. You can't edit the default events without first copying the personality.
 
Two querys

Is there a script yet where I can say something to the effect of "Where can I find <item>" and it take the system I am in, plugs it into the find commodity page of EDDB and then shows the closest systems to me? Much like the "show current system in eddb" VA command

Second, the on jumping trigger.. is there a charging frameshift trigger too? Something that can grab the next star class before the jumpdrive is charged?
 
Two querys

Is there a script yet where I can say something to the effect of "Where can I find <item>" and it take the system I am in, plugs it into the find commodity page of EDDB and then shows the closest systems to me? Much like the "show current system in eddb" VA command

Second, the on jumping trigger.. is there a charging frameshift trigger too? Something that can grab the next star class before the jumpdrive is charged?

There should be. AER a very old Githud plugin for Voice Attack , could do something like that before the Journal was released.

In AER , you could ask , 'Where is the closest blackmarket' , and it would speak the answer.
https://github.com/SingularTier/AerSpeech
 
Last edited:
[ALSO POSTED IN Voice attack forums]
ok latest problem I seem to have found.

I noticed that at some point my counters stopped working for some reason and not saving the latest values when I shut VA down and restart it.

Here is a little test script I made for testing:
Set decimal [BEE Total Distance] value to [Saved Value] (round to 0 decimal places)
Write '[Blue] Before total distance: {DEC:BEE Total Distance} LY' to log
Set decimal [BEE Total Distance] value to 7080 (round to 0 decimal places) (save value to profile)
Write '[Green] After total distance: {DEC:BEE Total Distance} LY' to log

Log:
19:52:35 - After total distance: 7080 LY
19:52:35 - Before total distance: 6723 LY
19:52:35 - External command : 'Total Travel distance'
19:47:48 - After total distance: 7080 LY
19:47:48 - Before total distance: 7080 LY
19:47:48 - External command : 'Total Travel distance'
19:46:51 - After total distance: 7080 LY
19:46:51 - Before total distance: 7080 LY
19:46:51 - External command : 'Total Travel distance'
19:46:42 - After total distance: 7080 LY
19:46:42 - Before total distance: 6723 LY
19:46:41 - External command : 'Total Travel distance'
19:46:36 - Plugin 'EDDI 2.1.0-b3' initialized.
19:46:35 - Plugin support enabled.


but after a little time or if I restart VA the value goes back to 6723 LY

I can't figure out why this happens, is this a bug?

All my scripts that I have written relay on VA to keep count :/
 
[ALSO POSTED IN Voice attack forums]
ok latest problem I seem to have found.

I noticed that at some point my counters stopped working for some reason and not saving the latest values when I shut VA down and restart it.

Here is a little test script I made for testing:


Log:
19:52:35 - After total distance: 7080 LY
19:52:35 - Before total distance: 6723 LY
19:52:35 - External command : 'Total Travel distance'
19:47:48 - After total distance: 7080 LY
19:47:48 - Before total distance: 7080 LY
19:47:48 - External command : 'Total Travel distance'
19:46:51 - After total distance: 7080 LY
19:46:51 - Before total distance: 7080 LY
19:46:51 - External command : 'Total Travel distance'
19:46:42 - After total distance: 7080 LY
19:46:42 - Before total distance: 6723 LY
19:46:41 - External command : 'Total Travel distance'
19:46:36 - Plugin 'EDDI 2.1.0-b3' initialized.
19:46:35 - Plugin support enabled.


but after a little time or if I restart VA the value goes back to 6723 LY

I can't figure out why this happens, is this a bug?

All my scripts that I have written relay on VA to keep count :/

Each time your update the distance value, you also have to re-save {DEC:BEE Total Distance} to the profile within VA (check the 'save to profile' box).
 
Last edited:
Each time your update the distance value, you also have to re-save {DEC:BEE Total Distance} to the profile within VA (check the 'save to profile' box).

Done that but it still resets to old value after 5 mins or a restart of VA

Code:
Set decimal [BEE Total Distance] value to [Saved Value] (round to 0 decimal places) (save value to profile)
Write '[Blue] Before total distance: {DEC:BEE Total Distance} LY' to log
Set decimal [BEE Total Distance] value to 7080 (round to 0 decimal places) (save value to profile)
Write '[Green] After total distance: {DEC:BEE Total Distance} LY' to log

19:57:16 - After total distance: 7080 LY
19:57:16 - Before total distance: 6723 LY
19:57:16 - External command : 'Total Travel distance'
19:48:18 - After total distance: 7080 LY
19:48:18 - Before total distance: 7080 LY
19:48:18 - External command : 'Total Travel distance'
19:48:02 - After total distance: 7080 LY
19:48:02 - Before total distance: 6723 LY
19:48:02 - External command : 'Total Travel distance'
 
Done that but it still resets to old value after 5 mins or a restart of VA

Code:
Set decimal [BEE Total Distance] value to [Saved Value] (round to 0 decimal places) (save value to profile)
Write '[Blue] Before total distance: {DEC:BEE Total Distance} LY' to log
Set decimal [BEE Total Distance] value to 7080 (round to 0 decimal places) (save value to profile)
Write '[Green] After total distance: {DEC:BEE Total Distance} LY' to log

19:57:16 - After total distance: 7080 LY
19:57:16 - Before total distance: 6723 LY
19:57:16 - External command : 'Total Travel distance'
19:48:18 - After total distance: 7080 LY
19:48:18 - Before total distance: 7080 LY
19:48:18 - External command : 'Total Travel distance'
19:48:02 - After total distance: 7080 LY
19:48:02 - Before total distance: 6723 LY
19:48:02 - External command : 'Total Travel distance'


The state isn't interpreted until the next command, although thinking about it that's not a great way of doing things so I'll update EDDI to mirror the state variable in EDDI state as part of setstate.

jgm,

Can't be sure without looking at BumbleB's code whether Tkael's EDDI state variable update issue is related, but would it be possible to re-release 2.1.0-b3 with your fix to rule it out?
 
Last edited:
jgm,

Can't be sure without looking at BumbleB's code whether Tkael's EDDI state variable update issue is related, but would it be possible to re-release 2.1.0-b3 with your fix to rule it out?

This is a pure VoiceAttack issue, nothing to do with EDDI from what I can see.
 
This is a pure VoiceAttack issue, nothing to do with EDDI from what I can see.

I noticed you posted in VA forums about a problem back in early Dec and looked the same as what I'm experiencing right now. Did you ever fix it?
 
Last edited:
Back
Top Bottom