Release EDDI 3.3 - Bring your cockpit to life

Hmm, it should't read out the full report, unless your last visit was more than an hour ago. :unsure: I'm going to have to take a trip over to Robigo and try it out.

In the mean time, could you possibly enable 'writing text copies to speechresponder.out' on the Speech Responder tab (if you don't already have it enabled), then do 3-4 jumps between the systems? Then could you send me a copy of the speechresponder.out file? It should be in the %APPDATA%\EDDI\ directory. If I can see what is being spoken, then I may be able to work out what's going on. Don't forget to disable the 'write text copies...' when you've finished.
I will do that

Seems that EDDI is working as you say and it is Ad Astra that is spamming me. Just trying to work out how to tone her down a bit. Attached the file you requested, but pretty sure it is not EDDI. I must say I DO prefer EDDI's spiel to Ad Astra's, just that both at once is pretty hard to handle. Ha Ha. The speechresponder.out file is in a format not allowed? So I sent these text files that were generated instead. EDDI now has a good old Aussie accent so I can tell the difference.
 

Attachments

  • eddi.log
    8.1 KB · Views: 51
  • eddi1.log
    9 KB · Views: 53
  • eddi2.log
    6.1 KB · Views: 41
  • eddi3.log
    8.9 KB · Views: 42
  • eddi4.log
    5.7 KB · Views: 45
  • eddi5.log
    9.3 KB · Views: 36
  • eddi6.log
    13.2 KB · Views: 43
  • eddi7.log
    5.7 KB · Views: 38
  • eddi8.log
    6 KB · Views: 51
  • eddi9.log
    6.2 KB · Views: 38
Last edited:
I will do that

Seems that EDDI is working as you say and it is Ad Astra that is spamming me. Just trying to work out how to tone her down a bit. Attached the file you requested, but pretty sure it is not EDDI. I must say I DO prefer EDDI's spiel to Ad Astra's, just that both at once is pretty hard to handle. Ha Ha. The speechresponder.out file is in a format not allowed? So I sent these text files that were generated instead. EDDI now has a good old Aussie accent so I can tell the difference.
Ahh, ok. That makes sense then. Thank you for the files. Unfortunately though, they are just EDDI's logs of internal things, like start up, setup, shutdown, etc., they don't contain the speech text that I needed, that is only in the speechresponder.out file. You could zip it up in a ZIP file, that would be allowed on here, as the forums only allow certain file types (like .log and .zip).

Well, if you've traced it to being Ad Astra, then there's no need to send me the file anymore, and I hope you can figure out how to make Ad Astra just a little less verbose! 😄
 
Ahh, ok. That makes sense then. Thank you for the files. Unfortunately though, they are just EDDI's logs of internal things, like start up, setup, shutdown, etc., they don't contain the speech text that I needed, that is only in the speechresponder.out file. You could zip it up in a ZIP file, that would be allowed on here, as the forums only allow certain file types (like .log and .zip).

Well, if you've traced it to being Ad Astra, then there's no need to send me the file anymore, and I hope you can figure out how to make Ad Astra just a little less verbose! 😄
Thanks for the help. I attached that file anyway as I notice EDDI does the whole bit when I log on and on my first jumps. Not normally a drama, except that Frontier Servers have played up with me and I have been booted off at least half a dozen times each session in the past. (Not this week and not since I turned on the speechresponderout) That is when EDDi could become a problem perhaps? However, as I HAVE managed to tone down ADd Astra, and I quite like EDDI's lovely female Aussie voice, I can probably live with it.
 

Attachments

  • speechresponder.zip
    8.2 KB · Views: 68
Last edited:
Thanks for the help. I attached that file anyway as I notice EDDI does the whole bit when I log on and on my first jumps. Not normally a drama, except that Frontier Servers have played up with me and I have been booted off at least half a dozen times each session in the past. (Not this week and not since I turned on the speechresponderout) That is when EDDi could become a problem perhaps? However, as I HAVE managed to tone down ADd Astra, and I quite like EDDI's lovely female Aussie voice, I can probably live with it.
Thanks. I've had a quick look over the file, and I don't immediately see anything out of the ordinary. Maybe a bit of speech here and there I don't recognise, but I assume you've made some of your own changes, and I see you're doing Powerplay too, something I've not done in years.

I must say, I admire your dedication to doing the Robigo runs. Over 400 visits to the Sothis system! I don't think I've ever been to any system that many times. 😅

It's funny you should mention the startup speech, because I've added some functionality to reduce that when logging on/off in quick succession. It was from an idea by Cmdr Parduz, who also helped me fine tune it and get it working in a way we both liked, and hopefully others will like too.

Considering it's now four months since my last release, I think it's about time I made another one of the current state I have it in. I'm a little busy this week, but I'll see what I can do about getting it ready, so maybe sometime early next week or so.
 
"I must say, I admire your dedication to doing the Robigo runs. Over 400 visits to the Sothis system! I don't think I've ever been to any system that many times. 😅"
When you put it that way it seems a bit excessive. But, in my defense, and to not appear a total loser😅 I find it is the best way to get Engineering Grade 5 Mats AND accumulating credits at the same time.. The old trick of relogging onto a HG instance never seems to work for me and it take forever hunting them in-game. Also, that 400 trips is over 1600 hours of gameplay and five years, so, not so much. Ask anybody who has gone on the engineering grind how many relogs they have done?
 
I've written my first EDDI script, written a VA script to call it and it works, but............ Cos it isn't triggered by an actual event, I've had to hijack the "speech" context to get it working.

Now, I want to pass it a boolean parameter, but I'm not sure how. Is there some way I can create a new context and associate it with a variable just for use with my own scripts? If not, any idea how I do it? I'd like to do it as neatly as possible. Once a programmer..........

Cheers.
 
OK, it's that time again for a new version of my EDDI & VA personality. 😊

I had wanted to release this earlier in the week, but life got in the way, as it tends to do far too often.

Here's the latest changes:
Released 06-05-22
=================

VoiceAttack
===========
((EDDI docked))
- Changed the keypress function calls for automatically entering the hangar to 'one left' instead of 'three right'. This is faster, and should stop instances of keypresses being messed up by the game (it sometimes lagged and ended up doing four right and clicking 'refuel' instead).

((EDDI npc interdiction commenced))
- Changed the name of this to use lowercase 'npc' as that is the correct format, so this should work as intended now.
- Added unblocking mouse and keyboard, in case this cancels 'Autoroute' halfway through, while the mouse and keyboard are blocked.

((EDDI shutdown))
- Copied the write to file code from the 'Update Mission Route' command. This makes things bit simpler than what I had originally.
- Removed setting [gameshutdown] as no longer needed.
- Added a 2 second pause to ensure that the 'missionsdata' variable is correctly set first.

((EDDI undocked))
- Changed setting to allow other commands to execute while this is running. This should stop the log spam when targetting other ships just after takeoff.
- Updated the launch speech section. Because there is no way to know if your Advanced Docking computer is set to work on launch, I've added a check for controls being used to take off. It's not 100% perfect, but close enough to work almost all of the time.
* Note: make sure your VA is set to use Joysticks if you use a joystick/flight stick. This is in Settings -> General -> Joystick Options button.

Update Mission Route
- Removed the [gameshutdown] check as no longer needed.

EDDI
====
General
- Updated all instances of 'ship.role' to 'ship.Role.invariantName' to be language independent.
This applies to the following scripts:
- Body mapped
- Discovery scan
- Location
- Market information updated
- Ring mapped
- Star scanned
- System scan complete

- New 'feature': Log off/on speech reduction.
For those farming materials who log off and on again quickly to respawn material sites, I have added some code in several events that should help to reduce the amount of speech done when loading a game. This was done at the request of (and with help from) CMDR Parduz from the ED forums.
Full speech will be performed when you first start a game, but be reduced when logging off/on. The full speech will be re-enabled if you enter supercruise/FSD, or be performed a single time when a 10 minute timer expires.
It mainly involves setting State variables, then checking them: state.eddi_logoff, state.eddi_relog, and state.eddi_logoff_time.
New code in:
- FSD engaged
- Location
- Mission check galaxy
- Music
- Shutdown
- Surface signals detected

Bodies to map
- Added full description of the mappable bodies, as suggested by Cmdr PHORO on the ED forums.
- Added two new variables for reporting: mapDistance and mapHighVal. Set in 'Body Mapping Preferences', see below.
- Rearranged the order items are reported in the full report. Makes it sound a bit better.
- Added the ability to give a short report or a fully detailed report. This uses a new configuration option for the report type: mapReportType. Set in 'Body Mapping Preferences', see below.
- Updated the check for "not yet scanned" in the 'reportNoBodies' section. This was occasionally being spoken even when all bodies had been scanned in systems with only stars in.
- Added the same checks to the speech in the "all bodies mapped" section. Sometimes there is no Journal event to say a body has been scanned, so EDDI doesn't know about it and thinks some bodies have not been scanned yet, even though they have. Proposed possible fix raised on Github #2315. (This should now be fixed in v4.0.2)
- Added a check for the 'Location' event, so that the short verison will be spoken on game start.
- Added Humanise() to the body's distance from arrival, if it's more than 800 Ls.

Body Mapping Preferences
- Added new configuration options:
mapDistance - Maximum distance in Ls from main star, to report bodies (default: 9999999)
mapHighVal - High value threshold for always reporting a mappable body (for overriding mapDistance) (default: 800000)
mapReportType
0 - Basic body report only (original EDDI default setting)
1 - Full body report first time and basic after that (new default setting)
2 - Full body report at all times

Community goal
- Updated the duration section to use the 'Time Remaining' function.
- Updated the reward section to report based on if the event has ended or not, and if Tier 1 has been reached or not.

Entered normal space
- Updated script to specify Community Goals as separate from normal missions.
- Updated the 'Station' section to add the word "the" if it is not already part of a megaship name, and not for starports also.
- Updated to use 'model' to store the '.invariant' station model names.

FSD engaged
- Updated 'not scoopable' section to only speak if a scoop is fitted to the ship (if you don't have one, you don't care if a star is scoopable).

Location
- Added a check for the last log off time, to skip speech if it's less than 10 minutes. See 'Music' below.

Market information updated
- Added code to prevent repeated speech in quick succession.

Material collected
- Removed the added (and unnecessary) hyphen from 'Obtained'.

Mission accepted
- Added a section near the end to report when all passenger cabins are now occupied.

Mission check station
- Added code to specify Community Goals as separate from normal missions.
- Updated the 'mission.status' variables to use 'mission.statusEDName' like the other 'Mission check...' scripts.

Mission completed
- Fixed initial check for 'active' missions in the last code block (line 138). If 'active' is void (can happen when taking missions from comms messages) this was triggering the wrong part, and would incorrectly say you still had "-1 missions".

Mission redirected
- Added code to set 'miss_name' from 'MissionDetails()', and check/use this instead of 'event.name'. 'event.name' seems to be bugged and never set (always void). Reported on Github #2296 (This should now be fixed in v4.0.2).

Missions Route Fast
- Updated the section reporting how many light years away your destination is. This should ignore '0' (zero) at the end of any distance less than 100 LY, for example "59.0" will be said as "59".
- Updated initial IF check in the missions FOR loop to ignore Community Goals.

Music
- Added a check for logging out to the main menu, and setting a State variable of the timestamp. This is then used to check for a relog in the 'Location' and 'Surface signals detected' events, allowing them to skip speech. This is useful when doing quick relogs. Thanks to CMDR Parduz from the forums for the idea.

Repair drone
- Updated script to use List() for reporting, instead of the loop at the end.

Shields down
- Returned "vun-erable" to the correct spelling of "vulnerable" as using a lexicon for my TTS makes this unnecessary.
- Corrected "shield" to "Shield" in the check for a shield generator.

Ship interdicted
- Corrected setting 'ship', instead of 'shiptype', to 'event.interdictor'.
- Updated to correct how 'Indepenent' pilots are described.

Ship repaired
- Removed the full stops from the 'paint' section near the beginning, as they are unnecessary.
- Updated script to collate same type items together, greatly shortening the report. No more 'Shield Booster' being repeated a dozen times! ;)
- Fixed broken weapon check. 'module.localizedname' was invalid, so this didn't work.
- Updated to check item/module health and only report if it is less than 100. This should stop it reporting all items/modules, when only a few were damaged.
Removed, as this does not work. Modules are usually back to 100 health from the repair, before this event triggers.
Additionally, I found that module health isn't always recorded when damage is taken.
- Added 'hull' to the repaired systems section.
- Removed the ship name from the repaired systems section, and added it to the report at the end. This shortens the code and makes the report a little shorter when there are multiple 'repaired systems'.

Surface signals detected
- Added a check for the last log off time, to skip speech if it's less than 10 minutes. See 'Music' above.
- Updated script to only say 'surface signals' at the end, removing all the repeats.

Swapout check
- Updated the module price check to be similar to the default. Fixes rare error when the price is set as 'void'.

System Exploration Report
- Updated the IF check that sets 'scannedBodies' to use 'max()' so the higher of 'prescannedBodies' or 'totalBodies' will be used. This is more efficient.
- Updated IF check for the 'physical characteristics' section. This should now report if you've visited 5 or fewer times, or if your last visit was more than 10 hours ago. This stops frequent repeating when doing short runs between the same systems.
- Updated check for the initial speech when listing the bodies in a system, so that it says "This system" when there are bodies to map.
- Added an override variable for the 'Bodies to map' function call, so that will always give a full detailed report.
- Added a fallback section to the 'remaining bodies to scan' section, for the rare occasions where this value could be zero or less than zero due to reportSystem having incomplete data.

System state report
- Added a second full stop in the conflicts section. I found faction names that end in an abreviation (like Inc.) would not consider the single full stop as an end of sentence pause. Adding a second one fixes this.

Time Remaining
- Updated script to use an array and List(). This improves the output and fixes a rare problem that didn't use 'and' before the last element.
- Update initial IF check to make sure 't_remaining' actually exists.
- Added initialising all the timer variables to 0, so they will not be 'void' when checking them (I know, noob mistake!).
- Updated the seconds section to add 'just over' at the start of the time report, instead of speaking the seconds in certain situations. This makes it sound better for longer timers.

Touchdown
- Added section to warn of high/low surface temperatures if playing in Odyssey, for on-foot activities. Set the desired temperature scale in Preferences at the top. (Temperature limits may need tweaking)

Undocked
- Added an additional check for missions to the route recalc check. On rare occasions this was activating when it should not.

Once again, I had over 90 'views' of my last version, so thanks to all who chose to use this. As always, if you find any bugs, or have any suggestions, please let me know! 😁

 
I've written my first EDDI script, written a VA script to call it and it works, but............ Cos it isn't triggered by an actual event, I've had to hijack the "speech" context to get it working.

Now, I want to pass it a boolean parameter, but I'm not sure how. Is there some way I can create a new context and associate it with a variable just for use with my own scripts? If not, any idea how I do it? I'd like to do it as neatly as possible. Once a programmer..........

Cheers.
You can use setstate in VA to set a state variable in EDDI, much like you can within EDDI normally. Use that to set the variable you want, then call the EDDI script, and you can then use the state variable in your EDDI script.

See the help here on how to use setstate in VA:
 
OK, it's that time again for a new version of my EDDI & VA personality. 😊

I had wanted to release this earlier in the week, but life got in the way, as it tends to do far too often.

Here's the latest changes:
Released 06-05-22
=================

VoiceAttack
===========
((EDDI docked))
- Changed the keypress function calls for automatically entering the hangar to 'one left' instead of 'three right'. This is faster, and should stop instances of keypresses being messed up by the game (it sometimes lagged and ended up doing four right and clicking 'refuel' instead).

((EDDI npc interdiction commenced))
- Changed the name of this to use lowercase 'npc' as that is the correct format, so this should work as intended now.
- Added unblocking mouse and keyboard, in case this cancels 'Autoroute' halfway through, while the mouse and keyboard are blocked.

((EDDI shutdown))
- Copied the write to file code from the 'Update Mission Route' command. This makes things bit simpler than what I had originally.
- Removed setting [gameshutdown] as no longer needed.
- Added a 2 second pause to ensure that the 'missionsdata' variable is correctly set first.

((EDDI undocked))
- Changed setting to allow other commands to execute while this is running. This should stop the log spam when targetting other ships just after takeoff.
- Updated the launch speech section. Because there is no way to know if your Advanced Docking computer is set to work on launch, I've added a check for controls being used to take off. It's not 100% perfect, but close enough to work almost all of the time.
* Note: make sure your VA is set to use Joysticks if you use a joystick/flight stick. This is in Settings -> General -> Joystick Options button.

Update Mission Route
- Removed the [gameshutdown] check as no longer needed.

EDDI
====
General
- Updated all instances of 'ship.role' to 'ship.Role.invariantName' to be language independent.
This applies to the following scripts:
- Body mapped
- Discovery scan
- Location
- Market information updated
- Ring mapped
- Star scanned
- System scan complete

- New 'feature': Log off/on speech reduction.
For those farming materials who log off and on again quickly to respawn material sites, I have added some code in several events that should help to reduce the amount of speech done when loading a game. This was done at the request of (and with help from) CMDR Parduz from the ED forums.
Full speech will be performed when you first start a game, but be reduced when logging off/on. The full speech will be re-enabled if you enter supercruise/FSD, or be performed a single time when a 10 minute timer expires.
It mainly involves setting State variables, then checking them: state.eddi_logoff, state.eddi_relog, and state.eddi_logoff_time.
New code in:
- FSD engaged
- Location
- Mission check galaxy
- Music
- Shutdown
- Surface signals detected

Bodies to map
- Added full description of the mappable bodies, as suggested by Cmdr PHORO on the ED forums.
- Added two new variables for reporting: mapDistance and mapHighVal. Set in 'Body Mapping Preferences', see below.
- Rearranged the order items are reported in the full report. Makes it sound a bit better.
- Added the ability to give a short report or a fully detailed report. This uses a new configuration option for the report type: mapReportType. Set in 'Body Mapping Preferences', see below.
- Updated the check for "not yet scanned" in the 'reportNoBodies' section. This was occasionally being spoken even when all bodies had been scanned in systems with only stars in.
- Added the same checks to the speech in the "all bodies mapped" section. Sometimes there is no Journal event to say a body has been scanned, so EDDI doesn't know about it and thinks some bodies have not been scanned yet, even though they have. Proposed possible fix raised on Github #2315. (This should now be fixed in v4.0.2)
- Added a check for the 'Location' event, so that the short verison will be spoken on game start.
- Added Humanise() to the body's distance from arrival, if it's more than 800 Ls.

Body Mapping Preferences
- Added new configuration options:
mapDistance - Maximum distance in Ls from main star, to report bodies (default: 9999999)
mapHighVal - High value threshold for always reporting a mappable body (for overriding mapDistance) (default: 800000)
mapReportType
0 - Basic body report only (original EDDI default setting)
1 - Full body report first time and basic after that (new default setting)
2 - Full body report at all times

Community goal
- Updated the duration section to use the 'Time Remaining' function.
- Updated the reward section to report based on if the event has ended or not, and if Tier 1 has been reached or not.

Entered normal space
- Updated script to specify Community Goals as separate from normal missions.
- Updated the 'Station' section to add the word "the" if it is not already part of a megaship name, and not for starports also.
- Updated to use 'model' to store the '.invariant' station model names.

FSD engaged
- Updated 'not scoopable' section to only speak if a scoop is fitted to the ship (if you don't have one, you don't care if a star is scoopable).

Location
- Added a check for the last log off time, to skip speech if it's less than 10 minutes. See 'Music' below.

Market information updated
- Added code to prevent repeated speech in quick succession.

Material collected
- Removed the added (and unnecessary) hyphen from 'Obtained'.

Mission accepted
- Added a section near the end to report when all passenger cabins are now occupied.

Mission check station
- Added code to specify Community Goals as separate from normal missions.
- Updated the 'mission.status' variables to use 'mission.statusEDName' like the other 'Mission check...' scripts.

Mission completed
- Fixed initial check for 'active' missions in the last code block (line 138). If 'active' is void (can happen when taking missions from comms messages) this was triggering the wrong part, and would incorrectly say you still had "-1 missions".

Mission redirected
- Added code to set 'miss_name' from 'MissionDetails()', and check/use this instead of 'event.name'. 'event.name' seems to be bugged and never set (always void). Reported on Github #2296 (This should now be fixed in v4.0.2).

Missions Route Fast
- Updated the section reporting how many light years away your destination is. This should ignore '0' (zero) at the end of any distance less than 100 LY, for example "59.0" will be said as "59".
- Updated initial IF check in the missions FOR loop to ignore Community Goals.

Music
- Added a check for logging out to the main menu, and setting a State variable of the timestamp. This is then used to check for a relog in the 'Location' and 'Surface signals detected' events, allowing them to skip speech. This is useful when doing quick relogs. Thanks to CMDR Parduz from the forums for the idea.

Repair drone
- Updated script to use List() for reporting, instead of the loop at the end.

Shields down
- Returned "vun-erable" to the correct spelling of "vulnerable" as using a lexicon for my TTS makes this unnecessary.
- Corrected "shield" to "Shield" in the check for a shield generator.

Ship interdicted
- Corrected setting 'ship', instead of 'shiptype', to 'event.interdictor'.
- Updated to correct how 'Indepenent' pilots are described.

Ship repaired
- Removed the full stops from the 'paint' section near the beginning, as they are unnecessary.
- Updated script to collate same type items together, greatly shortening the report. No more 'Shield Booster' being repeated a dozen times! ;)
- Fixed broken weapon check. 'module.localizedname' was invalid, so this didn't work.
- Updated to check item/module health and only report if it is less than 100. This should stop it reporting all items/modules, when only a few were damaged.
Removed, as this does not work. Modules are usually back to 100 health from the repair, before this event triggers.
Additionally, I found that module health isn't always recorded when damage is taken.
- Added 'hull' to the repaired systems section.
- Removed the ship name from the repaired systems section, and added it to the report at the end. This shortens the code and makes the report a little shorter when there are multiple 'repaired systems'.

Surface signals detected
- Added a check for the last log off time, to skip speech if it's less than 10 minutes. See 'Music' above.
- Updated script to only say 'surface signals' at the end, removing all the repeats.

Swapout check
- Updated the module price check to be similar to the default. Fixes rare error when the price is set as 'void'.

System Exploration Report
- Updated the IF check that sets 'scannedBodies' to use 'max()' so the higher of 'prescannedBodies' or 'totalBodies' will be used. This is more efficient.
- Updated IF check for the 'physical characteristics' section. This should now report if you've visited 5 or fewer times, or if your last visit was more than 10 hours ago. This stops frequent repeating when doing short runs between the same systems.
- Updated check for the initial speech when listing the bodies in a system, so that it says "This system" when there are bodies to map.
- Added an override variable for the 'Bodies to map' function call, so that will always give a full detailed report.
- Added a fallback section to the 'remaining bodies to scan' section, for the rare occasions where this value could be zero or less than zero due to reportSystem having incomplete data.

System state report
- Added a second full stop in the conflicts section. I found faction names that end in an abreviation (like Inc.) would not consider the single full stop as an end of sentence pause. Adding a second one fixes this.

Time Remaining
- Updated script to use an array and List(). This improves the output and fixes a rare problem that didn't use 'and' before the last element.
- Update initial IF check to make sure 't_remaining' actually exists.
- Added initialising all the timer variables to 0, so they will not be 'void' when checking them (I know, noob mistake!).
- Updated the seconds section to add 'just over' at the start of the time report, instead of speaking the seconds in certain situations. This makes it sound better for longer timers.

Touchdown
- Added section to warn of high/low surface temperatures if playing in Odyssey, for on-foot activities. Set the desired temperature scale in Preferences at the top. (Temperature limits may need tweaking)

Undocked
- Added an additional check for missions to the route recalc check. On rare occasions this was activating when it should not.

Once again, I had over 90 'views' of my last version, so thanks to all who chose to use this. As always, if you find any bugs, or have any suggestions, please let me know! 😁

That's great!
i think i'm now too deep in my own translation (derived from your personality) to be able to "integrate" most of your new stuffs, but i'll check it.

Thanks!
 
I've found ED Journal Processor, which is a nice little app. The thing that surprised me is that it reacts to the "jump initiated" (when you charge the FSD and can still abort) showing some of the destination system data, while in EDDI i only get them when the charging is complete and the jump sequence start (that is , the FSD Engaged event).

There's a way to get the same event with EDDI?
 
Hello, I had a problem with the script "Surface signals detected" and the plural of "signal" in French (aka signaux, not just an "s" to add at the end).

Actually, I got tired of hearing "4 signal biologiques détectés" and wanted to switch to "4 signaux biologiques détectés".

I did some work inside, but it seems a bit complex for the result. The script works for me like this, but if someone can make it clearer and shorter, I'll be happy and maybe it will allow me to progress on this subject.


C-like:
{set surfacesignals to []}
{for signal in event.surfacesignals:
    {if signal.amount = 1:
        {set surfacesignals_desc to:
            {signal.amount} {signal.source}{if signal.amount > 1:s}
        }
    |else: 
        {if find(lcase(signal.source), "signal") > -1:
                
                {set morceaux to split(signal.source, "Signal")}
                {set nbre_morceaux to len(morceaux)}

                 {if nbre_morceaux > 1 :
                  {set test to 1}
                  {set new_text to ""}
                  {for part in morceaux:
                   {if test = 1:
                     {set new_text to cat(part, "signaux")}
                   |elif test < nbre_morceaux:
                     {set new_text to cat(new_text, part, "signaux")}
                   |else :
                    {set new_text to cat(new_text, part)}
                  
                   }
                   {set test to (test+1)}
                  
                  }
                 |else :
                  {set new_text to signal.source}
                 }
            {set surfacesignals_desc to:
                {signal.amount} {new_text}{if signal.amount > 1:s}}
            
        |else: {set surfacesignals_desc to:
            {signal.amount} {signal.source}{if signal.amount > 1:s}}
        }
    }
    {set surfacesignals to cat(surfacesignals, [surfacesignals_desc])}
}


{List(surfacesignals)} détecté {if signal.amount > 1:s}.
 
I've found ED Journal Processor, which is a nice little app. The thing that surprised me is that it reacts to the "jump initiated" (when you charge the FSD and can still abort) showing some of the destination system data, while in EDDI i only get them when the charging is complete and the jump sequence start (that is , the FSD Engaged event).

There's a way to get the same event with EDDI?
Sure there is. Try a Ship FSD event with a script like this?
Code:
{if event.fsd_status = 'charging':
    {if len(nextsystem.systemname) > 0:
        FSD charging. Destination: {nextsystem.systemname}
    }
}
 
Last edited:
I always feel so lost:
what data the Ship FSD event contains?

My goal is to get warned about the destination star being scoopable while i still can abort the jump.
In the FSD Engaged event, i have this part of code which gives me "special advises":

Code:
        {if reportSystem.name = homesystem.name:
            Coming Home!.
        |else:
            {set scoopables to ['O', 'B', 'A', 'F', 'G', 'K', 'M']}
            {if slice(event.stellarclass, 0, 1) = 'D':
                White Dwarf.
            |elif event.stellarclass = 'N':
                Neutron Star.
            |elif event.stellarclass = 'H':
                Black Hole.
            |elif find(scoopables, event.stellarclass) = -1:
               Non scoopable star.
            }
        }


How could i get the stellarclass(es) of the nextsystem in the Ship FSD script?
 
I always feel so lost:
what data the Ship FSD event contains?

My goal is to get warned about the destination star being scoopable while i still can abort the jump.
In the FSD Engaged event, i have this part of code which gives me "special advises":

Code:
        {if reportSystem.name = homesystem.name:
            Coming Home!.
        |else:
            {set scoopables to ['O', 'B', 'A', 'F', 'G', 'K', 'M']}
            {if slice(event.stellarclass, 0, 1) = 'D':
                White Dwarf.
            |elif event.stellarclass = 'N':
                Neutron Star.
            |elif event.stellarclass = 'H':
                Black Hole.
            |elif find(scoopables, event.stellarclass) = -1:
               Non scoopable star.
            }
        }


How could i get the stellarclass(es) of the nextsystem in the Ship FSD script?
Try this...
Code:
{if event.fsd_status = "charging" && len(nextsystem.systemname) > 0:
    {set reportSystem to SystemDetails(nextsystem.systemname)}

    {for compartment in ship.compartments:
        {if compartment.module.basename = "FuelScoop":
            {set scoop to true}
        }
    }

    {if scoop && !reportSystem.scoopable: Caution.  There are no scoopable stars in the destination system.}
}
When you start to charge your FSD, and if you have a fuel scoop installed, this should tell you if the destination system does not have a scoopable star in it. I'm now going to try this out for myself... ;)

Edit: To answer the first part of your question, when you edit the script, click the Variables button and then scroll all the way to the bottom of the window that opens. The section at the end has all the variables for that particular event. In this case it is only the fsd_status variable.

Edit 2: Testing and working perfectly in the few systems I've tried it in. :)

Edit 3: Added an extra check to make sure the next system exists, otherwise this could say no scoopable stars when you charge to enter in-system supercruise. I've also noticed that if you untarget the star system, it will still be considered as selected until your next jump.
 
Last edited:
This is my curred Ship FSD script:
it SHOULD tells if there's secondary scoopable stars (if the primary is not) and if there's "special" stars.
Code:
{set MainStarScoopable to false}
{set FoundScoopable to false}

{if event.fsd_status = 'charging':
    {if len(nextsystem.systemname) > 0:
        {set reportSystem to SystemDetails(nextsystem.systemname) }
        {if reportSystem.name = homesystem.name:
            Stiamo tornando a casa.
        |else:

            {for compartment in ship.compartments:
                {if compartment.module.basename = "FuelScoop":
                    {set scoop to true}
                }
            }

            {if scoop && !reportSystem.scoopable:
                {OneOf(
                    "Non sarà possibile rifornirsi nel sistema",
                    "Rifornimento non possibile",
                    "Impossibile rifornirsi"
                )}.
            }
            {for aBody in reportSystem.bodies:
                {if aBody.bodyType.invariantName = 'Star':
                    {if slice(aBody.stellarclass, 0, 1) = 'D':        Attenzione: nana bianca rilevata.
                    |elif aBody.stellarclass = 'N':                 Attenzione: stella di neutroni rilevata.
                    |elif aBody.stellarclass = 'H':                    Attenzione: buco nero rilevato.
                    |elif scoop && aBody.scoopable:
                        {if aBody.mainstar:
                            {_ this is "normal", no speak }
                            {set MainStarScoopable to true}
                            {set FoundScoopable to true}
                        |else:
                            {set FoundScoopable to true}
                        }
                    }
                }
            }
            {if scoop && FoundScoopable && !MainStarScoopable:
                Potremo rifornirci ad una stella secondaria.
            }
        }
    } {_systemname > 0}
}


Should work, but i'm between two arms of the galaxy so it is a bit hard to debug it fully.
 
Top Bottom