Release EDDI Scripts and EDDI enabled VA Commands Thread

Asking here before opening a ticket on Github 'cause i'm unsure if this is a bug or not.

Problem: the Sol system object names are not localized.

Doubt: should they be? i see how eerything else is not, and that localizing them could open an exception, but on the other side these are "common names" in each language, so perhaps they should be localized.... i really dunno.

What do you think?
So we're talking about the Sun, the Moon, Jupiter, Mars, etc.? We typically wouldn't localize proper names - particularly if they weren't localized by the in-game UI. Are Sol system objects localized in-game?
 
I can't answer, as the game have no italian localization.
No worries, there's probably someone in the community that can answer. I've also asked other devs (several of whom likely play in Elite's localized languages) for their input.

EDIT: I've been told that they are not localized in Russian.
 
Last edited:
Cottle scripters, opinions sought re this ticket to add better names for certain custom Cottle functions, while keeping the old names for backward compatibility.
Sounds like a good idea. You could depreciate the existing ones, then say six months later give a warning that they will be removed in another 6 months. That gives people plenty of time to update their personalities to the new command nomenclature. By removing the old ones, it will stop new users getting confused over which command they need to be using. Well, it's just a thought anyway. :)
 
Yes, I suppose we could note in the documentation of the old forms that they are deprecated ("depreciated" is another word BTW, they are often confused because they are so similar).
 
Fun fact, when I first saw Spacialise(), way way before I joined the dev team, my first thought was that it was a sound effect, like a guitar pedal :LOL:🎸
 
Last edited:
Good start to my Easter Weekend; helping the author of Cottle (the scripting language EDDI uses) to fix an error. 😁

Hi Jason,

Thanks a lot for your report! You're very right there was something wrong there, and it's impressive you found your way through this website to send your message. I really appreciate you did so :)

I just fixed the error and applied your suggestion so it will be included in the documentation for next release.

Thanks again and have a great week-end!

Regards,
Rémi
 
I know that this has been asked before, but that was at the start of last year, so things might have changed.

I'm looking for a way to find out how many heatsinks/chaffs you have remaining. I know that I have to use counters referencing what's used in the ship loadout event, but I have no idea how to check which "compartment" holds the launchers and how much ammo is left.

My understanding is that it can't be done in Voiceattack, but possibly could be in an EDDI script. I've never written an EDDI script, but I'm more than prepared to give it a go.

Can anyone give me more information, please.

Cheers.
 
I know that this has been asked before, but that was at the start of last year, so things might have changed.

I'm looking for a way to find out how many heatsinks/chaffs you have remaining. I know that I have to use counters referencing what's used in the ship loadout event, but I have no idea how to check which "compartment" holds the launchers and how much ammo is left.

My understanding is that it can't be done in Voiceattack, but possibly could be in an EDDI script. I've never written an EDDI script, but I'm more than prepared to give it a go.

Can anyone give me more information, please.

Cheers.
I'm afraid that I'm not aware of any reliable method for obtaining that info programatically. We can obtain the ammo capacity and ammo levels during a Loadout event (after you exit outfitting, log in, or swap ships). After that, we don't have any way to know whether the ammo has been consumed.

If you use VoiceAttack to track key presses when you consume the ammo then you might be able to keep an accurate count that way.
 
That's what I was thinking. I'll try to write something for the EDDI ship loadout event that passes it to VA and then go from there. Going to be interesting to try to find a way to store the numbers for each ship persistently across sessions.

Cheers.
 
That's what I was thinking. I'll try to write something for the EDDI ship loadout event that passes it to VA and then go from there. Going to be interesting to try to find a way to store the numbers for each ship persistently across sessions.

Cheers.
I wrote something to test if a Chaff Launcher was fitted to the ship .... and had a similar thought ... ;)
Code:
-- Loop over all the utility mounts looking for a chaff launcher
Start Loop While : [~loop.count] Is Less Than Or Equals [~ship.utility]
    Begin Boolean Compare : [>ed.chaff.debug] Equals True
        Write [Yellow] '{TXT:Ship tiny hardpoint {INT:~loop.count} module}' to log
    End Condition
    -- The tiny hardpoints are the utility slots, shame no way to test how much ammo is left.
    Begin Text Compare : [Ship tiny hardpoint {INT:~loop.count} module] Contains 'Chaff'
        Set integer [~chaff.launcher] to [~chaff.launcher] plus 1
    End Condition
    Set integer [~loop.count] to [~loop.count] plus 1
End Loop
 
I know you can access info on whether the module is engineered or not, so it may be possible to see whether the ammo count has been increased. After that, I think it's a case of counting how many you use and deducting it from the starting number.
 
I have some scripting questions:
  1. There's an internal variable containing what script is being executed (either the index or the "name" field)? Like the C FUNCTION macro
  2. Are the script being executed as fast as they can, while the voice is speaking the "text queue", or each script execution starts after all the previous text is already spoken?
  3. Somewhat related to the previous question: there's a way to avoid having the very same test more than once in the speak queue? I mean: either executing a script only for the last one occourence of his trigger event, or avoid launching it if it's already on the queue...
  4. There's a way to "stop" a script speaking?
 
2. Are the script being executed as fast as they can, while the voice is speaking the "text queue", or each script execution starts after all the previous text is already spoken?
I believe that each script is run as fast as it can, and the next script will run immediately, even if the previous one is still speaking. As far as I can tell, the speech is added to the queue to be spoken, so multiple scripts can all run, before the first one has finished speaking.

I'm not sure about the rest. As I understand it, EDDI runs each script in it's entirety, building what needs to be said, then sends the output to the speech queue in Windows. I don't think EDDI has much control over it after that (other than to stop all the speech, see below), so I'm not sure if there would be a way to tell what is being spoken at any moment.

3. Somewhat related to the previous question: there's a way to avoid having the very same test more than once in the speak queue? I mean: either executing a script only for the last one occourence of his trigger event, or avoid launching it if it's already on the queue...
The only way I've got around this is to create a timer in a script. If the script runs again, and the timer is still less than a certain amount (say, 1 or 2 seconds) then it will skip the rest of the script. So basically, put the whole thing in an IF statement that checks the timer. I used to use this method for the 'Settlement approached' script when there were multiple Journal entries when approaching a planetary base. I added a timer to prevent anything after the first one from running.

4. There's a way to "stop" a script speaking?
If you use Voice Attack, there is a command in the default EDDI profile called "Shut up". It contains the following command:
Execute external plugin, 'EDDI 3.7.3' using context 'shutup' which will stop all speech (I think it empties the speech queue, but I'm not sure about that).
 
Top Bottom