Release EDDI Scripts and EDDI enabled VA Commands Thread

Sorry to hear you're having such misfortune.

Suggest you might test the HDMI monitor as the primary and only monitor to determine if it's the monitor or the graphics card.

Let's hope you're due for some positives on the horizon... and Odyssey as well.
Thank you. 🙂

Well, I also tried it on my old backup PC, and it's the same. It could be the HDMI cable, but I don't have a spare to test with. At least, I don't think I do. Spare cables are also in the loft, so... :confused: 🤦‍♂️ I'll work something out, I always do in the end!
 
They say bad things happen in threes...
Ow, man!

Really sorry to hear this.
Get well soon, my friend. And when it will be time for the rehabilitation of your wrist, really put everything you have on it as if it was a life or death situation; your wrist will never be more functional as you can get it in the first 15 days of rehab ;)

My best wishes!
 
Hello @Darkcyde, reading from you has always been very nice and informative, lots of tips and info. Your last message was unfortunately not to your and our sorrow.
I wish you in any case good and fast recovery. With a little distance to the game, you have a completely different view on the same and find for the one or the other problem also again completely different solutions. You should always draw the positive from negative situations. I hope you can do that.
All the best and fast recovery wishes you @nepomuk
 
Hello @Darkcyde, reading from you has always been very nice and informative, lots of tips and info. Your last message was unfortunately not to your and our sorrow.
I wish you in any case good and fast recovery. With a little distance to the game, you have a completely different view on the same and find for the one or the other problem also again completely different solutions. You should always draw the positive from negative situations. I hope you can do that.
All the best and fast recovery wishes you @nepomuk

Thank you for your kind words. 😊

I really hope I can get back to EDDI soon. I was in the middle of a trying to make some changes to the missions route plotting part, so I need to get that finished. I also have some new things for on-foot conflict zones, that I hope people will like. 🙂
 
Sorry to hear that Darkcyde. My wife who doesn't play EDO suffered that exact same break in her right wrist around seven weeks ago after a fall. Unfortunately as her immune system is low at present due to her undergoing chemo for breast cancer the plate in her wrist caused an infection on that side and had to be removed resulting in a two week stay in hospital on an intravenous drip with fluoxacylin. She is home now and on the same antibiotic in pill form for the next two weeks. I really hope your wrist heals well without any problems like that, take care.
 
Sorry to hear that Darkcyde. My wife who doesn't play EDO suffered that exact same break in her right wrist around seven weeks ago after a fall. Unfortunately as her immune system is low at present due to her undergoing chemo for breast cancer the plate in her wrist caused an infection on that side and had to be removed resulting in a two week stay in hospital on an intravenous drip with fluoxacylin. She is home now and on the same antibiotic in pill form for the next two weeks. I really hope your wrist heals well without any problems like that, take care.
May your wife be healed and restored to good health.
 
Sorry to hear that Darkcyde. My wife who doesn't play EDO suffered that exact same break in her right wrist around seven weeks ago after a fall. Unfortunately as her immune system is low at present due to her undergoing chemo for breast cancer the plate in her wrist caused an infection on that side and had to be removed resulting in a two week stay in hospital on an intravenous drip with fluoxacylin. She is home now and on the same antibiotic in pill form for the next two weeks. I really hope your wrist heals well without any problems like that, take care.
Wow, I'm so sorry to hear that. Makes my little injury seem almost insignificant in comparison. I really hope she gets back to full health as soon as possible! 🤗
The Big C is an awful thing for anyone to go through, and I hope she can fight it and beat it!
 
It's Christmas Eve, so what better gift to give everyone than a new version of my EDDI personality! 😁

It's been a long time (far too long if I'm honest), so I wanted to get this out now, for Christmas. It's been an interesting year, some good points and some bad ones, but I'm still here, and still (constantly) modding my personality. The player numbers have been dwindling in Elite, but I hope there are still CMDR's out there who will enjoy this update to my EDDI/VA package.

Two notable changes in this release are:
1. Autoroute, and autosetting GalMap destination, have been updated so that you need to use VA and ask for the GalMap destination to be set.
2. Unreal Tournament kill streak speech/sounds added to the FPS conflict zones.

So, here is the change log since the last release all the way back in January(!):
Released 24-12-23
=================
General
-------
- Added a new ReadMe file for the new Unreal Tournament style on-foot combat kills (also see Bond awarded below).

- VA Autoroute System
Updated the VA Autoroute system to only be voice activated. I was never 100% satisfied with how the automation worked. Sometimes it would activate at an inopportune moment, which could cause problems for the CMDR. Sometimes it would de-select an already plotted route. Making it voice only now, should eliminate those kinds of difficulties. There is already a voice command to activate it ('Plot Missions Route'), so I've just removed the calls from certain VA commands, and updated some speech in EDDI scripts, as noted below. A route will still be calculated by the EDDI scripts as before, but now you'll need to ask for it to be plotted on the Galaxy Map.
* This is still a work-in-progress. I just wanted to get this release out in time for Christmas. It should be mostly working as intended, but you may experience a glitch or two here and there. *

- 'missions...' State variables (abandoned/accepted/completed/expired/failed/redirected)
Changed these to Boolean values (true/false) where necessary in the following scripts:
Carrier jumped
Commander continued
Docked
Entered normal space
Jumped
Mission abandoned
Mission accepted
Mission completed
Mission expired
Mission failed
Mission redirected
Missions Route Clear
Missions Route Update
Missions Route Variable Report
Missions Save VA Data


Voice Attack
------------
Configure EDDI
- Added some activation speech. I seem to remember doing this before, and I'm still not sure about it...

((EDDI entered supercruise))
- Removed call to 'Autoroute' VA command.

((EDDI jumped))
((EDDI mission abandoned))
((EDDI mission accepted))
((EDDI mission completed))
((EDDI mission redirected))
((EDDI undocked))
- Removed these commands. They only had a call to 'Update Missions Route' VA command, and are no longer needed
after the missions routing changes.

((EDDI ship fsd))
- Removed as no longer used.

Autoroute
- Disabled setting the clipboard to the destination, as EDDI handles this now.
- Updated to work around the Galaxy Map bug, and fix autorouting. Removed blocking mouse actions to make this work.
- Removed most of the 'waiting for speech' loops. As this is called by voice command now, there is no need to wait for any EDDI speech at the beginning.
- Removed 'Stand by' speech.
- Added a section at the start to check and report is destination has already been set, skipping the rest of this command if it has.
- Updated the pause while the GalMap is moving to the target system, to use a logarithmic scale.

Update Mission Route
- Updated to ???
I've forgotten what I've done to this, as I had my wrist injury and left it for a while. It still seems to work though, so maybe I did what I needed to do...?

Disengage autoroute (and variations in the command)
Enable autoroute (and variations in the command)
- Removed these as EDDI/VA no longer automatically plots a GalMap route.

Plot missions route
- Updated to add acknowledge speech.

Quote of the day
- Updated variable names to 'wisdomstrings' (added an s at the end) to match the updated EDDI script.

Tell me about the [current; selected; target] system
- Added speech if report type not recognised.



EDDI
----
Bodies to map
- Rebuilt the setup code to be a little more efficient, and put the 'adding' code into a function so it's not repeated.
- Overhauled the script to add new features after a discussion on GitHub #2490:
-- Added a check for a DSS (Detailed Surface Scanner). The script will now only make new recommendations if one is installed.
-- Added a new option for reporting bodies that have already been mapped by other players, 'recommendMappedBodies'. This has three settings, described in the preferences section at the top of the script.
-- Setup code rebuilt again to make use of this new setting.
-- Updated some reporting sections to better use the setting.
-- Added new reporting sections to mention pre-mapped bodies (by other players) in certain situations.
- Fixed bodyTerraform check in the reporting section.
- Updated the report section dealing with 'no DSS installed', to actually explain this.
- Slightly updated the speech for the two 'potential' report sections, to sound better on game load.

Bond awarded
- Rebuilt this script in order to add an 'Unreal Tournament' style multi-kill speech section. This plays various WAV files from the UT game series when killing on-foot combatants in quick succession (within 5 seconds). There is a setting at the top to easily disable this if you don't like it.
See the easy to follow help file on how to get this working. Can you reach 'Unstoppable'? ;)
- Added a tally of kills per faction. This is reported & reset when you hand them in. This is not saved if you log out though.

Bond redeemed
- Added code to report your total kills for this redemption.
- Updated kill report to remark how good the kill count is (subjectively).

Book transport
- Added a State variable to store the transport type for use in other scripts.
- Removed setup of '..._combatzone_depart' State variable, as this is no longer used.

Bounty awarded
- Updated to include Scientist (seems I missed this one).
- Also included Researcher and Technician, as 'Scientist' and 'Worker' are supposed to be updated to these in-game names in the next EDDI release. (v4.0.3?)

Carrier bank transfer
- Added a script to report deposits and withdrawals.

Carrier jumped
- Updated initial IF check to match new default from v4.0.3-b1.

Commander continued
- Put the missions data section inside and IF check, to make sure data exists first.
- Updated 'missions_destination_locked' to a Boolean value.
- Removed code that set a State variable for using autoroute, as this is no longer needed.

Commander started
- Removed code that set a State variable for using autoroute, as this is no longer needed.

Crime check station
- Updated to account for settlements.

Died
- Updated to account for 'killers[<index>].equipment' sometimes being empty.

Discovery scan
- Added an additional check for reporting system materials, in case they were already reported after the jump (see 'Jumped' below).

Disembark
- Set State variable for transport type to 'void'.
- Set State variable for 'eddi_context_last_action' to 'disembark'. Used in the 'Market information updated' event script.

Docked
- Updated to use the 'state' property code from the v4.0.3-b1 default, but moved it to near the end, as I feel it sounds better there. Also added a 'Caution' if the station is under attack.
- Added the limpet check from v4.0.3-b1.
- Moved the canopy check to before the 'crime check', as that's slightly more important. ;)
- Added new State variable 'eddi_context_docked_name' to store the station name. And because of this, I've changed the '...docked_at' state variable to '...docked_type'.
- Updated 'missions_destination_locked' to a Boolean value.
- Updated 'eddi_context_missions_completed' to a Boolean value.

Dropship deployment
- Set State variable for transport type to 'void'.

Engineer report
- Updated to account for loading your game while docked at an Engineer base.

Entered normal space
- Added a section for dropping at a nav beacon.
- Updated the settlement section to only report when near after leaving it. Removed 'approaching' speech as that is now handled by 'Settlement approached' (see below).
- Updated the settlment section to say 'Surface' when appropriate.
- Added a section for dropping at a compromised nav beacon.
- Updated intro speach to use State variable for transport type.
- Updated SetState for last location to be an empty string, and not 'void'. Fixes not speaking any 'final approach' speech.
- Updated use of 'event.bodytype' with 'reportBody.bodytype' to match the default. The Journal reports moons as planets, so this corrects that error.
- Added resetting the State variable for bodytype if it's a planet or moon, as setting it to the event data at the start will be wrong for moons.
- Updated to remove system name from body shortname instances, as this doens't seem to be working for stars.
(Could be related to main star data being nulled bug).
(Update: Yes, it was related, and now fixed in v4.0.3-b4. So removed this change).

Entered supercruise
- Updated intro speech to use State variable for transport type.
- Added check and call to 'Missions Route Update'.

FSD engaged
- Updated intro speach to use State variable for transport type.
- ... and then changed it to use the new 'taxijump' variable in v4.0.3-b1.
- Removed hazardous and scoopable star reporting, to match the new v4.0.3-b1 default.
- Updated the initial Pause() check I added a while ago, to use 'status.hyperspace' instead of 'state.fsd_pause'.
- Updated the number of visits report section. It now randomly reports the number if it's greater than 5, or reports 'several' (6 to 10), or 'many' (11+) visits if the random report isn't used.

Jumped
- Added a reset for 'eddi_context_material_report' state variable.
- Updated SetState for last location to be an empty string, and not 'void'. Fixes not speaking any 'final approach' speech.
- Fixed missing full stop (period) to end of 'distance from' report for Carriers.

Liftoff
- Added check and call to 'Missions Route Update'.

Location
- Replaced use of '..._combatzone_depart' State variable, with a '..._transport_type' check.
- Removed section that recommended launching/supercruise to autoset map route.
- Removed 'eddi_context_mission_accepted'. No longer needed after 'Autoroute' change.
- Added new State variable 'eddi_context_docked_name' to store the station name. And because of this, I've changed the '...docked_at' state variable to '...docked_type' and set it to the station model.
- Moved the mission destination report at the end, up into the ELSE of the pervious IF check. This prevents it from being spoken twice if the first part of the IF check was run.
- Updated 'missions_destination_locked' to a Boolean value.

Market information updated
- Removed the 'limpet check', to match the new v4.0.3-b1 default.
- Removed the hyphen from the 'Multipurpose' ship role, to match the default.
- Updated the IF check used to start speaking, to use the new '...docked_name' State variable in order to prevent speaking at Engineer stations, as they do not provide market or legal facilities. Also added setting 'reportEngineer' to enable checking for an Engineer station.
- Updated IF check again, to include the 'eddi_context_last_action' for 'disembark' (set in the Disembark event). This prevents the market information being spoken every time you step off your ship or a transport (taxi or dropship).

Material Desired On Body (credit to Ultra Fluffy on the Forums)
- New script, called from 'Touchdown'. Requires material 'desired' levels being set in Material Monitor.
- Checks the contextual body for materials below your 'desired' level, and reports them.
- Updated to be a little more efficient, and also use List() for reporting.

Message received
- Fixed the "send:" still being spoken. No, really this time. For sure...
- Rebased on new version from v4.0.3-b1.
- Added 'Erich' NPC name. I'm not sure if it's worth adding every one that I find isn't present in the list...
- Made some minor formatting changes. Nothing that affect functionality.
- Made the 'sort available voices' code a little more efficient.
- Added back some of my previous changes:
-- Added 'Microsoft Zira Desktop' back to the voice exclusions.
-- Reworked the end of the player message section, to better use 'sends' and voices depending on the message.
(If it is only a salute emote, then no need to use 'sends' or use a random voice.)
-- Added back my checks for being on foot and/or in stations, for NPC messages.
-- Added back the check for 'Security' in the sender name.
- Updated the 'Security' check to see if the 'from' contains the 'source' instead. Should cover more duplication possibilities now.
- Added back speaking "from", as it sounded odd without it.
- Updated NPC section to account for emotes, as they seem to use $CHAT_System; as the sender.

Mission abandoned
- Updated to rename on-foot collection/delivery missions as 'courier missions'.

Mission accepted
- Updated check for delivery missions, to prevent speech if it's an on-foot mission.
- Updated to rename on-foot collection/delivery missions as 'courier missions'.
- Updated the last IF block to account for the 'Autoroute' changes.

Mission check station
- Updated to account for on-foot courier type missions.
- Updated to account for settlements.
- Fixed report speech to correctly report included mission types.

Mission check system
- Updated to account for on-foot courier type missions.

Mission completed
- Updated to rename on-foot collection/delivery missions as 'courier missions'.
- Updated 'eddi_context_missions_completed' to a Boolean value.

Mission expired
- Updated to rename on-foot collection/delivery missions as 'courier missions'.

Mission failed
- Updated to rename on-foot collection/delivery missions as 'courier missions'.

Mission redirected
- Updated to rename on-foot collection/delivery missions as 'courier missions'.
- Updated last IF block to account for 'Autoroute' changes.

Missions
- Added a check for transport type to prevent mission reports when leaving a conflict zone in a dropship.

Missions Route Clear
- Removed 'eddi_context_mission_accepted'. No longer needed after 'Autoroute' change.
- Updated 'missions_destination_locked' to a Boolean value.

Missions Route Fast
- Added code to copy the destination to the clipboard.
- Updated report section to calculate route to check if a route is possible, before reporting missions need to be located.

Missions Route Update
- Updated to not say "still" when taking your first mission and it's in your current system.
- Removed the speech sections for launching and entering supercruise to replot route, after 'Autoroute' change.
- Updated 'missions_destination_locked' to a Boolean value.

Near surface
- Updated SetState for last location to be an empty string, and not 'void'. Fixes not speaking any 'final approach' speech.
- Updated to only set 'last_location' if leaving the surface.

Next jump
- Updated context to match the new v4.0.3-b1 default.

Ring hotspots detected
- Tweaked speech a little to make it sound a bit better.

Route details
- Updated to add Scorpion SRV search, to match the new v4.0.3-b1 default.

Settlement approached
- Added a check for approaching a settlement that is your selected destination, including appropriate speech. This replaces the section in 'Entered normal space'. EDDI will now correctly report 'on approach', even if you exit supercruise too far from the settlement. This should trigger about 85-90Km from the settlement.
- Moved 'last_subject' context to the end, as it is used in this script.
- Updated the check to account for arriving at a settlement after landing on the body rather than docking at the settlement (in cases where there are no suitable landing pads).
- Updated to report missions and crimes.
- Updated to report approach to combat zones if in a Dropship.

Ship fsd
- Reset to the new default from v4.0.3-b1, as this now does what mine did, with additional functionality.
- Removed erroneous '{set scoop_present to true}'. Looks like this was left behind from EDDI testing. ;)
- Moved the 'hazardous stars' setup into an IF block that checks the distance first, as this was part of all checks anyway.

Ship interdicted
- Moved the 'evaded' speech to the end, like the default.
- Updated the 'interdictor' speech to account for Federal or Imperial Navy vessels.
- Updated to make use of the new 'isthargoid' variable from v4.0.3-b1. Similar speech options to the default, and a large part of the script will not be spoken if interdicted by a Thargoid.

Ship refuelled
- Moved Pause() into the speech sections, to prevent any uneccessary pausing, like the new v4.0.3-b1 default.

Star report
- Updated to correct grammar to 'browndwarfs', from 'browndwarves', for the array variable. This reverses a previous change I made, which was incorrect.
- Updated the mainsequence/fastburning/browndwarfs checks to be more efficient.
- ... and then removed setup and check of 'browndwarfs' as this is never used in the script.
- Updated 'fastburning' setup to be the actual random speech, instead of setting to '1', and replaced relevant checks in the reporting speech.

Surface signals detected
- Redesigned a little, to make it more reliable. For some reason, body information isn't always available. Sometimes 'BodyDetails()' has missing data, like shortname and bodytype, so I've had to compensate for this.
- Updated the 'mapped' check. This fixes zero time being considered as 'false' and failing the check.
- Updated to remove the pseudo timestamps, and use the UNIX timestamps added in v4.0.3-b1.

Swapout check
- Updated to add the check for Guardian modules, like the new v4.0.3-b1 default.
- Revised to change instances of '.EDName' to '.edname' like the v4.0.3-b1 default.

System Exploration Report
- Fixed saying "is reported as" when it's your first visit to a system.

System materials report
- Added a State variable that will be set if the report says anything. Used to prevent repeating the report.

System state report
- Added the new Thargoid War information from the new v4.0.3-b1 default.
- Put the Thargoid War info in an ELIF check rather than having two ELSE statements.
- Added some additional variety to the Thargoid War speech.
- Updated the Thargoid War section to set up and use {remainingDays}. This now takes into account one day remaining, or if the property is void.

Target Module
- Added some of the new modules:
-- Enhanced AX Multi-Cannon
-- Enhanced Xeno Scanner
-- Shutdown Field Neutraliser
- Ordered 'unique' modules list alphabetically.
- Added above new modules to 'unique' list (not the weapon though).
- Added more speech to the testing tool, to tell you it's a new unrecognised module.
- Fixed missing comma after 'Bi-Weave Shield' in the 'unique' list.

TextWisdom
- Updated to be more efficient, and to use better code.
This was my first script, and I've learned a lot since then. ;)

Touchdown
- Added call to 'Material Desired On Body' if the ship is player controlled.

Undocked
- Added new State variable 'eddi_context_docked_name', and changed the '...docked_at' state variable to '...docked_type' and set them both to 'void'.
- Removed section that reported first route destination, as EDDI/VA no longer automatically plots a GalMap route, and the missions routing scripts already tell you of the first destination.

VA Initialized
- Moved the mission data setup into an IF check, to make sure the data exists first.
- Changed the word 'Mission' from an Occasionally(), to always spoken.
- Added a line to say the EDDI VA plugin is loaded.
- Updated 'missions_destination_locked' to a Boolean value.

Enjoy! And I wish everyone a wonderful Christmas and a very Happy New Year! 🎅⛄🎁🎉🎊
 

Attachments

  • Darkcydes Defaults - 24-12-23.zip
    513.5 KB · Views: 70
It's Christmas Eve, so what better gift to give everyone than a new version of my EDDI personality! 😁

It's been a long time (far too long if I'm honest), so I wanted to get this out now, for Christmas. It's been an interesting year, some good points and some bad ones, but I'm still here, and still (constantly) modding my personality. The player numbers have been dwindling in Elite, but I hope there are still CMDR's out there who will enjoy this update to my EDDI/VA package.

Two notable changes in this release are:
1. Autoroute, and autosetting GalMap destination, have been updated so that you need to use VA and ask for the GalMap destination to be set.
2. Unreal Tournament kill streak speech/sounds added to the FPS conflict zones.

So, here is the change log since the last release all the way back in January(!):
Released 24-12-23
=================
General
-------
- Added a new ReadMe file for the new Unreal Tournament style on-foot combat kills (also see Bond awarded below).

- VA Autoroute System
Updated the VA Autoroute system to only be voice activated. I was never 100% satisfied with how the automation worked. Sometimes it would activate at an inopportune moment, which could cause problems for the CMDR. Sometimes it would de-select an already plotted route. Making it voice only now, should eliminate those kinds of difficulties. There is already a voice command to activate it ('Plot Missions Route'), so I've just removed the calls from certain VA commands, and updated some speech in EDDI scripts, as noted below. A route will still be calculated by the EDDI scripts as before, but now you'll need to ask for it to be plotted on the Galaxy Map.
* This is still a work-in-progress. I just wanted to get this release out in time for Christmas. It should be mostly working as intended, but you may experience a glitch or two here and there. *

- 'missions...' State variables (abandoned/accepted/completed/expired/failed/redirected)
Changed these to Boolean values (true/false) where necessary in the following scripts:
Carrier jumped
Commander continued
Docked
Entered normal space
Jumped
Mission abandoned
Mission accepted
Mission completed
Mission expired
Mission failed
Mission redirected
Missions Route Clear
Missions Route Update
Missions Route Variable Report
Missions Save VA Data


Voice Attack
------------
Configure EDDI
- Added some activation speech. I seem to remember doing this before, and I'm still not sure about it...

((EDDI entered supercruise))
- Removed call to 'Autoroute' VA command.

((EDDI jumped))
((EDDI mission abandoned))
((EDDI mission accepted))
((EDDI mission completed))
((EDDI mission redirected))
((EDDI undocked))
- Removed these commands. They only had a call to 'Update Missions Route' VA command, and are no longer needed
after the missions routing changes.

((EDDI ship fsd))
- Removed as no longer used.

Autoroute
- Disabled setting the clipboard to the destination, as EDDI handles this now.
- Updated to work around the Galaxy Map bug, and fix autorouting. Removed blocking mouse actions to make this work.
- Removed most of the 'waiting for speech' loops. As this is called by voice command now, there is no need to wait for any EDDI speech at the beginning.
- Removed 'Stand by' speech.
- Added a section at the start to check and report is destination has already been set, skipping the rest of this command if it has.
- Updated the pause while the GalMap is moving to the target system, to use a logarithmic scale.

Update Mission Route
- Updated to ???
I've forgotten what I've done to this, as I had my wrist injury and left it for a while. It still seems to work though, so maybe I did what I needed to do...?

Disengage autoroute (and variations in the command)
Enable autoroute (and variations in the command)
- Removed these as EDDI/VA no longer automatically plots a GalMap route.

Plot missions route
- Updated to add acknowledge speech.

Quote of the day
- Updated variable names to 'wisdomstrings' (added an s at the end) to match the updated EDDI script.

Tell me about the [current; selected; target] system
- Added speech if report type not recognised.



EDDI
----
Bodies to map
- Rebuilt the setup code to be a little more efficient, and put the 'adding' code into a function so it's not repeated.
- Overhauled the script to add new features after a discussion on GitHub #2490:
-- Added a check for a DSS (Detailed Surface Scanner). The script will now only make new recommendations if one is installed.
-- Added a new option for reporting bodies that have already been mapped by other players, 'recommendMappedBodies'. This has three settings, described in the preferences section at the top of the script.
-- Setup code rebuilt again to make use of this new setting.
-- Updated some reporting sections to better use the setting.
-- Added new reporting sections to mention pre-mapped bodies (by other players) in certain situations.
- Fixed bodyTerraform check in the reporting section.
- Updated the report section dealing with 'no DSS installed', to actually explain this.
- Slightly updated the speech for the two 'potential' report sections, to sound better on game load.

Bond awarded
- Rebuilt this script in order to add an 'Unreal Tournament' style multi-kill speech section. This plays various WAV files from the UT game series when killing on-foot combatants in quick succession (within 5 seconds). There is a setting at the top to easily disable this if you don't like it.
See the easy to follow help file on how to get this working. Can you reach 'Unstoppable'? ;)
- Added a tally of kills per faction. This is reported & reset when you hand them in. This is not saved if you log out though.

Bond redeemed
- Added code to report your total kills for this redemption.
- Updated kill report to remark how good the kill count is (subjectively).

Book transport
- Added a State variable to store the transport type for use in other scripts.
- Removed setup of '..._combatzone_depart' State variable, as this is no longer used.

Bounty awarded
- Updated to include Scientist (seems I missed this one).
- Also included Researcher and Technician, as 'Scientist' and 'Worker' are supposed to be updated to these in-game names in the next EDDI release. (v4.0.3?)

Carrier bank transfer
- Added a script to report deposits and withdrawals.

Carrier jumped
- Updated initial IF check to match new default from v4.0.3-b1.

Commander continued
- Put the missions data section inside and IF check, to make sure data exists first.
- Updated 'missions_destination_locked' to a Boolean value.
- Removed code that set a State variable for using autoroute, as this is no longer needed.

Commander started
- Removed code that set a State variable for using autoroute, as this is no longer needed.

Crime check station
- Updated to account for settlements.

Died
- Updated to account for 'killers[<index>].equipment' sometimes being empty.

Discovery scan
- Added an additional check for reporting system materials, in case they were already reported after the jump (see 'Jumped' below).

Disembark
- Set State variable for transport type to 'void'.
- Set State variable for 'eddi_context_last_action' to 'disembark'. Used in the 'Market information updated' event script.

Docked
- Updated to use the 'state' property code from the v4.0.3-b1 default, but moved it to near the end, as I feel it sounds better there. Also added a 'Caution' if the station is under attack.
- Added the limpet check from v4.0.3-b1.
- Moved the canopy check to before the 'crime check', as that's slightly more important. ;)
- Added new State variable 'eddi_context_docked_name' to store the station name. And because of this, I've changed the '...docked_at' state variable to '...docked_type'.
- Updated 'missions_destination_locked' to a Boolean value.
- Updated 'eddi_context_missions_completed' to a Boolean value.

Dropship deployment
- Set State variable for transport type to 'void'.

Engineer report
- Updated to account for loading your game while docked at an Engineer base.

Entered normal space
- Added a section for dropping at a nav beacon.
- Updated the settlement section to only report when near after leaving it. Removed 'approaching' speech as that is now handled by 'Settlement approached' (see below).
- Updated the settlment section to say 'Surface' when appropriate.
- Added a section for dropping at a compromised nav beacon.
- Updated intro speach to use State variable for transport type.
- Updated SetState for last location to be an empty string, and not 'void'. Fixes not speaking any 'final approach' speech.
- Updated use of 'event.bodytype' with 'reportBody.bodytype' to match the default. The Journal reports moons as planets, so this corrects that error.
- Added resetting the State variable for bodytype if it's a planet or moon, as setting it to the event data at the start will be wrong for moons.
- Updated to remove system name from body shortname instances, as this doens't seem to be working for stars.
(Could be related to main star data being nulled bug).
(Update: Yes, it was related, and now fixed in v4.0.3-b4. So removed this change).

Entered supercruise
- Updated intro speech to use State variable for transport type.
- Added check and call to 'Missions Route Update'.

FSD engaged
- Updated intro speach to use State variable for transport type.
- ... and then changed it to use the new 'taxijump' variable in v4.0.3-b1.
- Removed hazardous and scoopable star reporting, to match the new v4.0.3-b1 default.
- Updated the initial Pause() check I added a while ago, to use 'status.hyperspace' instead of 'state.fsd_pause'.
- Updated the number of visits report section. It now randomly reports the number if it's greater than 5, or reports 'several' (6 to 10), or 'many' (11+) visits if the random report isn't used.

Jumped
- Added a reset for 'eddi_context_material_report' state variable.
- Updated SetState for last location to be an empty string, and not 'void'. Fixes not speaking any 'final approach' speech.
- Fixed missing full stop (period) to end of 'distance from' report for Carriers.

Liftoff
- Added check and call to 'Missions Route Update'.

Location
- Replaced use of '..._combatzone_depart' State variable, with a '..._transport_type' check.
- Removed section that recommended launching/supercruise to autoset map route.
- Removed 'eddi_context_mission_accepted'. No longer needed after 'Autoroute' change.
- Added new State variable 'eddi_context_docked_name' to store the station name. And because of this, I've changed the '...docked_at' state variable to '...docked_type' and set it to the station model.
- Moved the mission destination report at the end, up into the ELSE of the pervious IF check. This prevents it from being spoken twice if the first part of the IF check was run.
- Updated 'missions_destination_locked' to a Boolean value.

Market information updated
- Removed the 'limpet check', to match the new v4.0.3-b1 default.
- Removed the hyphen from the 'Multipurpose' ship role, to match the default.
- Updated the IF check used to start speaking, to use the new '...docked_name' State variable in order to prevent speaking at Engineer stations, as they do not provide market or legal facilities. Also added setting 'reportEngineer' to enable checking for an Engineer station.
- Updated IF check again, to include the 'eddi_context_last_action' for 'disembark' (set in the Disembark event). This prevents the market information being spoken every time you step off your ship or a transport (taxi or dropship).

Material Desired On Body (credit to Ultra Fluffy on the Forums)
- New script, called from 'Touchdown'. Requires material 'desired' levels being set in Material Monitor.
- Checks the contextual body for materials below your 'desired' level, and reports them.
- Updated to be a little more efficient, and also use List() for reporting.

Message received
- Fixed the "send:" still being spoken. No, really this time. For sure...
- Rebased on new version from v4.0.3-b1.
- Added 'Erich' NPC name. I'm not sure if it's worth adding every one that I find isn't present in the list...
- Made some minor formatting changes. Nothing that affect functionality.
- Made the 'sort available voices' code a little more efficient.
- Added back some of my previous changes:
-- Added 'Microsoft Zira Desktop' back to the voice exclusions.
-- Reworked the end of the player message section, to better use 'sends' and voices depending on the message.
(If it is only a salute emote, then no need to use 'sends' or use a random voice.)
-- Added back my checks for being on foot and/or in stations, for NPC messages.
-- Added back the check for 'Security' in the sender name.
- Updated the 'Security' check to see if the 'from' contains the 'source' instead. Should cover more duplication possibilities now.
- Added back speaking "from", as it sounded odd without it.
- Updated NPC section to account for emotes, as they seem to use $CHAT_System; as the sender.

Mission abandoned
- Updated to rename on-foot collection/delivery missions as 'courier missions'.

Mission accepted
- Updated check for delivery missions, to prevent speech if it's an on-foot mission.
- Updated to rename on-foot collection/delivery missions as 'courier missions'.
- Updated the last IF block to account for the 'Autoroute' changes.

Mission check station
- Updated to account for on-foot courier type missions.
- Updated to account for settlements.
- Fixed report speech to correctly report included mission types.

Mission check system
- Updated to account for on-foot courier type missions.

Mission completed
- Updated to rename on-foot collection/delivery missions as 'courier missions'.
- Updated 'eddi_context_missions_completed' to a Boolean value.

Mission expired
- Updated to rename on-foot collection/delivery missions as 'courier missions'.

Mission failed
- Updated to rename on-foot collection/delivery missions as 'courier missions'.

Mission redirected
- Updated to rename on-foot collection/delivery missions as 'courier missions'.
- Updated last IF block to account for 'Autoroute' changes.

Missions
- Added a check for transport type to prevent mission reports when leaving a conflict zone in a dropship.

Missions Route Clear
- Removed 'eddi_context_mission_accepted'. No longer needed after 'Autoroute' change.
- Updated 'missions_destination_locked' to a Boolean value.

Missions Route Fast
- Added code to copy the destination to the clipboard.
- Updated report section to calculate route to check if a route is possible, before reporting missions need to be located.

Missions Route Update
- Updated to not say "still" when taking your first mission and it's in your current system.
- Removed the speech sections for launching and entering supercruise to replot route, after 'Autoroute' change.
- Updated 'missions_destination_locked' to a Boolean value.

Near surface
- Updated SetState for last location to be an empty string, and not 'void'. Fixes not speaking any 'final approach' speech.
- Updated to only set 'last_location' if leaving the surface.

Next jump
- Updated context to match the new v4.0.3-b1 default.

Ring hotspots detected
- Tweaked speech a little to make it sound a bit better.

Route details
- Updated to add Scorpion SRV search, to match the new v4.0.3-b1 default.

Settlement approached
- Added a check for approaching a settlement that is your selected destination, including appropriate speech. This replaces the section in 'Entered normal space'. EDDI will now correctly report 'on approach', even if you exit supercruise too far from the settlement. This should trigger about 85-90Km from the settlement.
- Moved 'last_subject' context to the end, as it is used in this script.
- Updated the check to account for arriving at a settlement after landing on the body rather than docking at the settlement (in cases where there are no suitable landing pads).
- Updated to report missions and crimes.
- Updated to report approach to combat zones if in a Dropship.

Ship fsd
- Reset to the new default from v4.0.3-b1, as this now does what mine did, with additional functionality.
- Removed erroneous '{set scoop_present to true}'. Looks like this was left behind from EDDI testing. ;)
- Moved the 'hazardous stars' setup into an IF block that checks the distance first, as this was part of all checks anyway.

Ship interdicted
- Moved the 'evaded' speech to the end, like the default.
- Updated the 'interdictor' speech to account for Federal or Imperial Navy vessels.
- Updated to make use of the new 'isthargoid' variable from v4.0.3-b1. Similar speech options to the default, and a large part of the script will not be spoken if interdicted by a Thargoid.

Ship refuelled
- Moved Pause() into the speech sections, to prevent any uneccessary pausing, like the new v4.0.3-b1 default.

Star report
- Updated to correct grammar to 'browndwarfs', from 'browndwarves', for the array variable. This reverses a previous change I made, which was incorrect.
- Updated the mainsequence/fastburning/browndwarfs checks to be more efficient.
- ... and then removed setup and check of 'browndwarfs' as this is never used in the script.
- Updated 'fastburning' setup to be the actual random speech, instead of setting to '1', and replaced relevant checks in the reporting speech.

Surface signals detected
- Redesigned a little, to make it more reliable. For some reason, body information isn't always available. Sometimes 'BodyDetails()' has missing data, like shortname and bodytype, so I've had to compensate for this.
- Updated the 'mapped' check. This fixes zero time being considered as 'false' and failing the check.
- Updated to remove the pseudo timestamps, and use the UNIX timestamps added in v4.0.3-b1.

Swapout check
- Updated to add the check for Guardian modules, like the new v4.0.3-b1 default.
- Revised to change instances of '.EDName' to '.edname' like the v4.0.3-b1 default.

System Exploration Report
- Fixed saying "is reported as" when it's your first visit to a system.

System materials report
- Added a State variable that will be set if the report says anything. Used to prevent repeating the report.

System state report
- Added the new Thargoid War information from the new v4.0.3-b1 default.
- Put the Thargoid War info in an ELIF check rather than having two ELSE statements.
- Added some additional variety to the Thargoid War speech.
- Updated the Thargoid War section to set up and use {remainingDays}. This now takes into account one day remaining, or if the property is void.

Target Module
- Added some of the new modules:
-- Enhanced AX Multi-Cannon
-- Enhanced Xeno Scanner
-- Shutdown Field Neutraliser
- Ordered 'unique' modules list alphabetically.
- Added above new modules to 'unique' list (not the weapon though).
- Added more speech to the testing tool, to tell you it's a new unrecognised module.
- Fixed missing comma after 'Bi-Weave Shield' in the 'unique' list.

TextWisdom
- Updated to be more efficient, and to use better code.
This was my first script, and I've learned a lot since then. ;)

Touchdown
- Added call to 'Material Desired On Body' if the ship is player controlled.

Undocked
- Added new State variable 'eddi_context_docked_name', and changed the '...docked_at' state variable to '...docked_type' and set them both to 'void'.
- Removed section that reported first route destination, as EDDI/VA no longer automatically plots a GalMap route, and the missions routing scripts already tell you of the first destination.

VA Initialized
- Moved the mission data setup into an IF check, to make sure the data exists first.
- Changed the word 'Mission' from an Occasionally(), to always spoken.
- Added a line to say the EDDI VA plugin is loaded.
- Updated 'missions_destination_locked' to a Boolean value.

Enjoy! And I wish everyone a wonderful Christmas and a very Happy New Year! 🎅⛄🎁🎉🎊
What a wonderful gift, cmdr. Thank you very much, and Merry Christmas. I'm looking forward to installing it, as I've been using your previous excellent release until now. HO HO HO 🎅
 
Hello dear CMDR, especially those who deal with EDDI (@T'kael, @Darkcyde and @Parduz ...).
I have a small problem. Maybe you can help me.
I would like to be told via a script how much of the corresponding material is already in the cargo hold or how much is still missing (e.g. mining mission). The announcement of the materials and their quantities actually works, only if the script is called from another script, one unit too little of the quantity is announced. If you call the script via the test button, the quantity is correct. What am I doing wrong? I have tried this in two ways. Way 1 via cargo.name and cargo.total, way 2 via inventory[number].name and inventory[number].total. I enclose both versions. They are not very big. Thanks in advance.

{Log("EDDI Fktn.: Raffinerie Ansage")} {Pause(1000)} {set runde to 0} {for cargo in inventory: {set runde to runde + 1} {if runde = len(inventory) : {_ Ende der Ansage _} |else: {if inventory[runde].name = state.mission_bergbau_mineral : {if inventory[runde].total > 0 : {if inventory[runde].total = 1 : eine Tonne |else: {inventory[runde].total} Tonnen } {inventory[runde].name} im Frachtraum } } } }

{Log("EDDI Fktn.: Raffinerie Ansage")} {Pause(1000)} {for cargo in inventory: {if cargo.name = state.mission_bergbau_mineral : {if cargo.total > 0 : {if cargo.total = 1 : eine Tonne |else: {cargo.total} Tonnen } {cargo.name} im Frachtraum } } }

Translated with DeepL.com (free version)
 
Hello dear CMDR, especially those who deal with EDDI (@T'kael, @Darkcyde and @Parduz ...).
I have a small problem. Maybe you can help me.
I would like to be told via a script how much of the corresponding material is already in the cargo hold or how much is still missing (e.g. mining mission). The announcement of the materials and their quantities actually works, only if the script is called from another script, one unit too little of the quantity is announced. If you call the script via the test button, the quantity is correct. What am I doing wrong? I have tried this in two ways. Way 1 via cargo.name and cargo.total, way 2 via inventory[number].name and inventory[number].total. I enclose both versions. They are not very big. Thanks in advance.

{Log("EDDI Fktn.: Raffinerie Ansage")} {Pause(1000)} {set runde to 0} {for cargo in inventory: {set runde to runde + 1} {if runde = len(inventory) : {_ Ende der Ansage _} |else: {if inventory[runde].name = state.mission_bergbau_mineral : {if inventory[runde].total > 0 : {if inventory[runde].total = 1 : eine Tonne |else: {inventory[runde].total} Tonnen } {inventory[runde].name} im Frachtraum } } } }

{Log("EDDI Fktn.: Raffinerie Ansage")} {Pause(1000)} {for cargo in inventory: {if cargo.name = state.mission_bergbau_mineral : {if cargo.total > 0 : {if cargo.total = 1 : eine Tonne |else: {cargo.total} Tonnen } {cargo.name} im Frachtraum } } }

Translated with DeepL.com (free version)
Hmm, looking at the first way, I would put the line {set runde to runde + 1} at the end, not at the beginning. Most arrays are zero based, so the first element of the array is at position 0. Your code sets runde to 0, but adds 1 as the first thing it does, so it will skip over position 0. If the length of your inventory is 1 (it has one item in it), then the FOR loop will exit straight away without doing anything, even if the item at 0 or at 1 is the item you want to do something with.

Try moving that line to the end, so it is the last line before the final } and see if that works or not.

I notice you are using 'inventory', so it may be that 'inventory' is not updated at the point you are running your code. You also don't say how your code is called, I assume from the 'Commodity collected' event? You could try using CargoDetails() instead, with event.commodity. You can then more easily check with something like this:
Code:
{set cargo to CargoDetails(event.commodity)}

{if cargo.name = state.mission_bergbau_mineral :
        {if cargo.total > 0 :
            {if cargo.total = 1 : eine Tonne
            |else: {cargo.total} Tonnen
            }
            {cargo.name} im Frachtraum
        }
    }
}

I have been working on something similar for my EDDI personality, however, I have found some difficulties when you have more than one mission that requires the same commodity, that I'm still trying to work around. My method is using CargoDetails() instead of 'inventory', and it seems to be updated correctly when I need to use it.

If these ideas do not work for you, we can try something else. :)
 
Last edited:
Great (y), thank you very much 👏. I'll try that out right away ... well almost, I still have two things to do, but then ... ;)

Addendum:
I wanted to execute this in the "Commodity refined" script/event. Now I have put this in a separate script and call it with {F("Refined announcement")}.
I think I can only use the "Commodity refined" again.
 
Last edited:
...
Unfortunately the same problem. First of all, the commodity is not recognized without a for loop. For-loop installed again (for cargo in inventory:).
Now again the problem that a unit is missing. If you start the script via the test button, the quantity is correct again. You are right, the inventory is not updated with the executed script, unfortunately not even if you start the script via {F("xxx")}. Hmmm ... :unsure:

Addendum:
Works without a for loop and only with CargoDetails() . I must have made a typing error. But a unit is also missing when calling the cargo area.
If you start the script separately with the test button, the correct number is announced. hmmm, and now ? :rolleyes:
 
Last edited:
...
Unfortunately the same problem. First of all, the commodity is not recognized without a for loop. For-loop installed again (for cargo in inventory:).
Now again the problem that a unit is missing. If you start the script via the test button, the quantity is correct again. You are right, the inventory is not updated with the executed script, unfortunately not even if you start the script via {F("xxx")}. Hmmm ... :unsure:
Hmm, OK. It's been a couple of months since I was last looking at that code, but I'm sure it was working for me when I collected commodities from ground sites (not refining them), so maybe refining works slightly differently.
I'll have to go pick up my mining ship and try some things out, but I'm some distance from my carrier at the moment.
 
Hmm, OK. It's been a couple of months since I was last looking at that code, but I'm sure it was working for me when I collected commodities from ground sites (not refining them), so maybe refining works slightly differently.
I'll have to go pick up my mining ship and try some things out, but I'm some distance from my carrier at the moment.
Sorry, see one post above. CargoDetails() works, but the quantity is also wrong by one unit.
 
Last edited:
The problem is definitely how to call the script to announce the cargo hold. I have added a pause of 5 seconds after refining.
After the pause and the call via {F("xxx")} , the same (incorrect) quantity is announced as if the script were started immediately.
If you click on the test button within the 5 seconds, the correct quantity is announced. Wow, how can you compensate for that?
:oops:🙄 ...
 
The problem is definitely how to call the script to announce the cargo hold. I have added a pause of 5 seconds after refining.
After the pause and the call via {F("xxx")} , the same (incorrect) quantity is announced as if the script were started immediately.
If you click on the test button within the 5 seconds, the correct quantity is announced. Wow, how can you compensate for that?
:oops:🙄 ...
Sorry, I got held up helping a friend out, then I had to eat.

Anyway, I've realised what is happening and why it's not working. The 'refined' event is triggering before the commodity is transferred into your cargo. You have to understans how EDDI processes events too. The event triggers as soon as the Journal event happens, adding a Pause() makes no difference, because the event script has already triggered. The whole script is processed, to get all the variables etc., and then it is spoken. So, the Journal event happens, EDDI triggers the 'refined' event script, it gets processed, and then it is spoken, and this is the point that the Pause() has an effect. This all happens before the commodity is added to your cargo hold.

So, to fix it all, just add a +1 to the code:
Code:
{set cargo to CargoDetails(event.commodity)}

{if cargo.name = state.mission_bergbau_mineral :
    {set total to cargo.total + 1}
    {if total > 0 :
        {if total = 1 : eine Tonne
        |else: {total} Tonnen
        }
        {cargo.name} im Frachtraum
    }
}

Try that and let me know how it goes. 😊

Edit: fixed extra } in code.
 
Last edited:
ahhh, so I didn't understand how EDDI works. OK, maybe it's not that easy to see. That's why there's a forum and competent,
helpful and friendly CMDRs to explain it to you. Double thumbs up. OK, I'll change that and then we'll tidy things up.
(y)(y)😊 ...
 
ahhh, so I didn't understand how EDDI works. OK, maybe it's not that easy to see. That's why there's a forum and competent,
helpful and friendly CMDRs to explain it to you. Double thumbs up. OK, I'll change that and then we'll tidy things up.
(y)(y)😊 ...
Gah, sorry, I just realised there is a problem. As this is run before any cargo is added, if you have zero (none of the commodity), then it would still add 1. Try this version instead:
Code:
{set cargo to CargoDetails(event.commodity)}

{if cargo.name = state.mission_bergbau_mineral :
    {if cargo.total: {set total to cargo.total + 1}}
    {if total > 0 :
        {if total = 1 : eine Tonne
        |else: {total} Tonnen
        }
        {cargo.name} im Frachtraum
    }
}

There was also a mistake with the } so that is fixed too now. :)


Actually, ignore me, the first version was right (I think), except for the extra } which I have fixed in my code above.
 
Last edited:
Top Bottom