Release EDDI 3.3 - Bring your cockpit to life

What does this means? I mean: what should i do?

Code:
2023-08-30T18:35:24 [Info] Files:FromSavedGames Unable to open Elite DangerousShipLocker.jsonfile
It means that EDDI was alerted about a change to shiplocker.json and tried to read the file but was not able to do so (probably because the game hasn't yet released its hold on the file). There's nothing for the end user to do. We'll just pick up the changes on the next read.
 
More questions:
1) When i make a mistake in the script, and the result is EDDI speaking nonsense for 20 minutes (like: "equal equal equal dot dot 21 equal equal equal underscore underscore dot dot ..." :rolleyes:) how can i stop it other than closing EDDI?
2) In the "file header" event i set a state variable to the path of a folders containing some .wav files i play in other scripts. When i open EDDI with the game already running, that variable isn't set anymore, so EDDI complains about non finding the file to play. There's a script which is always executed, no matter what? ... maybe even if the game is closed?
 
More questions:
1) When i make a mistake in the script, and the result is EDDI speaking nonsense for 20 minutes (like: "equal equal equal dot dot 21 equal equal equal underscore underscore dot dot ..." :rolleyes:) how can i stop it other than closing EDDI?
2) In the "file header" event i set a state variable to the path of a folders containing some .wav files i play in other scripts. When i open EDDI with the game already running, that variable isn't set anymore, so EDDI complains about non finding the file to play. There's a script which is always executed, no matter what? ... maybe even if the game is closed?
For 1, you can try clicking the 'Test' button of any event script. This should stop any speech currently being spoken.

As for 2, I don't think there is any script like you are asking for. You could try adding your code to the 'Music' event script though. Even if you don't have the game music playing, it will still trigger from the Journal, so anytime the music changes (or would change), your code will run. The music script is the only one I can think of that would reliably trigger most often.
 
2) In the "file header" event i set a state variable to the path of a folders containing some .wav files i play in other scripts. When i open EDDI with the game already running, that variable isn't set anymore, so EDDI complains about non finding the file to play. There's a script which is always executed, no matter what? ... maybe even if the game is closed?
It's typically not desirable for EDDI to trigger speech from non-current events. 😉 But Darkcyde's suggestion to use the music event is a good one... it triggers quite often and especially if you change your state or location. Which script is using the variables you want to set? Knowing that could make it easier to suggest a preceding event where the variables could be set.
 
Knowing that could make it easier to suggest a preceding event where the variables could be set
Being me a lazy person, i've put the variable in the "file header" to have only one place to edit when/if i change it; if i have to scatter that around, i may just write the whole path+file name in the Play call ;)

Unless the .WAV file is located in EDDI's install folder, full paths are currently required. We could look into supporting paths relative to EDDI's configuration folder in the future if there is sufficient interest.
I'm still hoping for this :)

Anyway I'll follow the @Darkcyde suggestion. Thanks guys :)
 
In a script, I'm looping thru all the materials of a body, but i'm not able to the the invariant (non localized) strings:

Code:
DebugMaterial.name     
DebugMaterial.category
DebugMaterial.rarity
This code returns (as example) "Ferro", "Elemento" and "Molto Comune": how do i get "Iron", "Element" (?) and "Pretty Common" (??) ?
 
In a script, I'm looping thru all the materials of a body, but i'm not able to the the invariant (non localized) strings:

Code:
DebugMaterial.name    
DebugMaterial.category
DebugMaterial.rarity
This code returns (as example) "Ferro", "Elemento" and "Molto Comune": how do i get "Iron", "Element" (?) and "Pretty Common" (??) ?
It looks like there is an .invariantName to get the invariant name, but it doesn't look like there are invariant versions of category or rarity, unless I'm missing something somewhere.
 
It looks like there is an .invariantName to get the invariant name, but it doesn't look like there are invariant versions of category or rarity, unless I'm missing something somewhere.
Thanks mate.

I finally made a copy of the default personality and searched the json file for "rarity"... and when i've removed the case sensitivity i finally found "m.definition.Rarity" in the System Material report.

I don't know why, as in the sources the "material definition" is labeled as "// Not intended to be user facing" but seems that "Material.definition" is the class we have to use for that three properties, if we want the "invariant" strings.
 
1) Is it expected that abody.atmosphereclass.invariantName for a star is "No atmosphere" while for a planet/moon without atmosphere is null (or "", i don't know)?
2) There's a way to get the stellarclass of the parent star of a body? If the body is a moon, have i to loop all the parent, parent's parent, etc?
 
Last edited:
Thanks mate.

I finally made a copy of the default personality and searched the json file for "rarity"... and when i've removed the case sensitivity i finally found "m.definition.Rarity" in the System Material report.

I don't know why, as in the sources the "material definition" is labeled as "// Not intended to be user facing" but seems that "Material.definition" is the class we have to use for that three properties, if we want the "invariant" strings.
Basically, myself and the other people developing EDDI didn't anticipate how useful the unlocalized values would be for some commanders when we set that up. We need to do a pass on the event variables and re-evaluate whether some of them make sense to expose at this point (https://github.com/EDCD/EDDI/issues/2580).
1) Is it expected that abody.atmosphereclass.invariantName for a star is "No atmosphere" while for a planet/moon without atmosphere is null (or "", i don't know)?
2) There's a way to get the stellarclass of the parent star of a body? If the body is a moon, have i to loop all the parent, parent's parent, etc?
1) It's more of an oversight. :-D I'll correct that.
2) The best way to do that is indeed to loop though the parent objects. If you don't mind me asking, what's the use case?
 
Basically, myself and the other people developing EDDI didn't anticipate how useful the unlocalized values would be for some commanders when we set that up. We need to do a pass on the event variables and re-evaluate whether some of them make sense to expose at this point (https://github.com/EDCD/EDDI/issues/2580).
Yup... as a lot of logic tests are made against "text properties", the invariant properties are fundamental to preserve script logic across localization.
Unless creating indexes (like: 0-Iron, 1-Nickel ... or 0-Neutral, 1-Cordial, 2-Friendly...) for EACH property and allow the logic just test the indexes...

2) The best way to do that is indeed to loop though the parent objects. If you don't mind me asking, what's the use case?
I'm trying to make a script which replicate the BioInsight EDMC plugin, so "guessing" if a planet can have high value Bios on it.
Beside Atmosphere and ground composition, seems that a planet orbiting a Neutron star should be worthy to take a scan of it.
So i want to know the starclass of a given planet star... which may not be the current system of the player (i mean: i could want to try to "guesstimate" system i've already visited, or the jump target).
 
I'm trying to make a script which replicate the BioInsight EDMC plugin, so "guessing" if a planet can have high value Bios on it.
Beside Atmosphere and ground composition, seems that a planet orbiting a Neutron star should be worthy to take a scan of it.
So i want to know the starclass of a given planet star... which may not be the current system of the player (i mean: i could want to try to "guesstimate" system i've already visited, or the jump target).
I thought that might be the case. But before you spend very much more time on that project please take a look at the current pull requests on Github. I've been spending most of the weekend working on a similar project. ;-)
 
My EDDI doesn't start anymore....

1694118889454.png


It is stuck at the Logo ...




... and while i was writing this post, pasting the image, etc, after the tenth time it happened, and about half an hour trying, it started :|

What should i look for for this looooooooong time to start? i fear some connection to some site/service?
 
My EDDI doesn't start anymore....

View attachment 366491

It is stuck at the Logo ...

... and while i was writing this post, pasting the image, etc, after the tenth time it happened, and about half an hour trying, it started :|

What should i look for for this looooooooong time to start? i fear some connection to some site/service?
It's hard to say from this single image I'm afraid. If the log file stayed right there for the entire period that EDDI was loading then that would suggest that it had just finished downloading the latest galactic POI data from https://edastro.com/gec/json/combined and was parsing the output (which occurs on a child thread and consequently shouldn't really affect the startup time). It looks like you had the Task Manager open - did it show high network traffic, high memory use, high CPU, etc.?

If you had been using EDDI previous to this and had been performing multiple searches across star systems using the Navigation Monitor then it's possible that you hit EDSM's API rate limit during loading? If triggered, it takes an hour for the EDSM rate limit to reset which seems like it might line up with your description.
 
If the log file stayed right there for the entire period that EDDI was loading then ...
Yup. i posted that picture 'cause it just stay there.
It looks like you had the Task Manager open - did it show high network traffic, high memory use, high CPU, etc.?
I didn't check. It was open 'cause i killed the EDDI process a couple of times, then let it alone while writing the post, cropping the attached image, etc.
If you had been using EDDI previous to this and had been performing multiple searches across star systems using the Navigation Monitor then it's possible that you hit EDSM's API rate limit during loading? If triggered, it takes an hour for the EDSM rate limit to reset which seems like it might line up with your description.
Not that day.
BUT
i launch the game with a .bat file that opens also a lot of utilities, like EDMC, EDDIscovery, Material Monitor and other stuffs, one of which uses EDSM APIs... so MAYBE they were too much in a short time? i dunno. Also, never happened before and my utilities are always the same.
 
one of which uses EDSM APIs
I know it's good practise to only use one utility to send data to EDSM and disable that function in any others you use. I guess it would also make sense to disable any functions that are the same across any utilities you use, reading or sending data, for similar reasons. Choose which one does the job best for your purposes, and disable it in any others.
 
Yup, EDDI is stuck doing something.

I won't say EDDI's using a lot of resources:
1694206893402.png


....and then, finally, EDDI showed up, after about 10 minutes of thinking.
I've attached the log, zipped.

You can see when the "pause" happened at line 46, the last one starting with "2023-09-08T20:53:34"


-EDIT-
BTW, what is EDDI doing after that pause? i see a lot of stuffs and seems to me that something is wrong?
 

Attachments

  • pardu eddi log.zip
    106.8 KB · Views: 132
Last edited:
Yup, EDDI is stuck doing something.

I won't say EDDI's using a lot of resources:
View attachment 366583

....and then, finally, EDDI showed up, after about 10 minutes of thinking.
I've attached the log, zipped.

You can see when the "pause" happened at line 46, the last one starting with "2023-09-08T20:53:34"


-EDIT-
BTW, what is EDDI doing after that pause? i see a lot of stuffs and seems to me that something is wrong?
It parses the galactic POI response then starts an asynchronous thread to synchronize your Visited? status for galactic POIs using EDSM's flight log API (which would be the last step in initializing the Navigation Monitor). That asynchronous thread doesn't need to complete before loading continues. On my PC the thread starts very quickly and the main thread is able to proceed almost instantly:
Code:
2023-09-09T03:28:52 [Debug] Net:GetResponse Response is: : {"m_HttpResponseHeaders":["RateLimit-Limit","RateLimit-Remaining","RateLimit-Reset","Keep-Alive","Connection","Transfer-Encoding","Content-Type","Date","Server"],"m_Uri":"https://edastro.com/poi/json/combined","m_Certificate":null,"m_Version":{"Major":1,"Minor":1,"Build":-1,"Revision":-1,"MajorRevision":-1,"MinorRevision":-1},"m_StatusCode":200,"m_ContentLength":-1,"m_Verb":"GET","m_StatusDescription":"OK","m_MediaType":null}
2023-09-09T03:28:53 [Info] NavigationMonitor:.ctor Initialized Navigation monitor

I'm not sure why but in your case, EDDI appears to have either idled for about 10 minutes or spent 10 minutes parsing the galactic poi data file before that asynchronous thread got started. Once it started, there seems to have been an issue retrieving any flight logs from the EDSM server (zero received).

Have you already verified that your EDSM credentials are configured correctly?
Have you tried reinstalling EDDI?
 
Have you already verified that your EDSM credentials are configured correctly?
It seems so.
I've relogged on all the sites (EDSM, edastro) just to be sure.


Have you tried reinstalling EDDI?
mmmmno. I'll take it as a last resource.


BTW, i tried also launching just EDDI, no game no other utilities, and it ALWAYS hangs on these lines (which are always line 45 and 46 of the log):
Code:
2023-09-09T13:53:53 [Debug] Net:DownloadString Reading response from https://edastro.com/poi/json/combined
2023-09-09T13:53:53 [Debug] Net:GetResponse Response is: : {"m_HttpResponseHeaders":["RateLimit-Limit","RateLimit-Remaining","RateLimit-Reset","Keep-Alive","Connection","Transfer-Encoding","Content-Type","Date","Server"],"m_Uri":"https://edastro.com/poi/json/combined","m_Certificate":null,"m_Version":{"Major":1,"Minor":1,"Build":-1,"Revision":-1,"MajorRevision":-1,"MinorRevision":-1},"m_StatusCode":200,"m_ContentLength":-1,"m_Verb":"GET","m_StatusDescription":"OK","m_MediaType":null}
The "wait" amount is somewhat between 4 to 10 minutes.

ONLY ONE TIME there's this line after:
2023-09-09T13:54:41 [Warning] Net:ReadResponseString Flusso illeggibile.

Otherwise it just goes with the next line:
2023-09-09T13:54:42 [Info] NavigationMonitor:.ctor Initialized Navigation monitor

May i know what EDDI asks to edastro, so i may check manually what's the answer?
 
Back
Top Bottom