EDCD / EDDI

Companion application for Elite Dangerous
Other
451 stars 82 forks source link

"Bodies to map" function not working properly #2490

Closed JL-72 closed 1 year ago

JL-72 commented 1 year ago

What's Wrong

The "bodies to map" function in the speech responder no longer seems to work properly.

Expected

When I use a command to run the "bodies to map" script, it should tell me what planets I should map based on the default minimum value of 80,000 credits. If there are more than one planet worth mapping, it should tell me about which planets remain to be mapped after each new one I map.

Observed

When I arrive in a system, it will tell me that certain planets are worth mapping. In the last system I visited, it was planet 7. However, once I scanned the planet with the FSS, the "bodies to map" function would no longer tell me that the planet was worth mapping, though it would tell me that I had mapped all worthwhile planets after I went and mapped planet 7 with the DSS. In an earlier system, there were 4 planets that were worth mapping, two terraformable HMCs, a water world, and a terraformable water world. After mapping the first of the 4, it should have told me about the other 3 being worthwhile planets for mapping, instead, it told me I had already mapped everything of interest. This repeated until all 4 had been mapped.

Steps to reproduce

  1. Find a system with 1 or more planets worth mapping
  2. Run the "bodies to map" script to confirm that there are planets to map
  3. Scan the system with the FSS
  4. Run the "bodies to map"script again, it will no longer react at all.
  5. Go and map the planet(s) identified in steps 1 and 2. EDDI will now say you have mapped all worthwhile planets, even if there are other planets that are still worth mapping. (this might work with mapping any planet in the system, I haven't tried that).
  6. Run "bodies to map" script, for confirmation. Even if there are other planets worth mapping, it will say you have mapped everything of interest already.
  7. Repeat steps 5 and 6 until every worthwhile planet has actually been mapped.

Configuration

My Investigation

Investigation Notes

I have noticed two things, 1) the systems that this is happening in have already been discovered and mapped by other players. My initial suspicion is that this is somehow responsible for the problem, as EDDI might be confusing the fact that someone else has mapped the system/planets with me doing it, but as I've yet to find any previously undiscovered systems/planets, I cannot say for certain. 2) If I uninstall EDDI 4.0.2 and reinstall 4.0.1, this no longer happens, and the expected functionality is restored.

EDDI Logs

eddi.log

Player journals

Journal.2023-01-14T111548.01.log

(please forgive me if those aren't the correct files, I've entered and left both the game and voiceattack/eddi multiple times this morning, and so while these are the most recent ones, I'm not 100% certain that they're the right ones)

Tkael commented 1 year ago

Thank you. If you can, please provide a verbose log showing both the EDSM data before and the scan data after to help me with diagnosing this issue? Please also tell me the specific body name that failed to be estimated correctly so I can find that specific body in the verbose logs.

slippycheeze commented 1 year ago

I think I can reproduce this, too; I'm not doing much mapping right now, other than for exobiology targets, but I'm sure the last system I had mapped one of three mapping candidates, then an exobiology target, and was told "all interesting bodies mapped."

If I can repro, I'll post an appropriate log excerpt here. Can't promise timeline, but I'll do my best.

JL-72 commented 1 year ago

I'm more than willing, but I'm not sure I know how. Is the EDSM data something entirely different, or do I just need to FSS the system, exit game/EDDI, and then opten them back up to actually map the planet?

Sorry for being so dense, I don't know much about this kind of stuff.

Tkael commented 1 year ago

Essentially, just turn on verbose logging then repeat the sequence of events that triggered this (though in a fresh system you haven't scanned / mapped yet), note the body name so that I can look it up in the log, and then grab the log files from %appdata%/EDDI, zip them up, and upload the zip file here with the name of the body. Then turn off verbose logging again.

JL-72 commented 1 year ago

Okay, I think I've got it. The planet in question is the planet 2 in the Bleia Dryiae VR-H d11-35 system.

I think, however, that this proves my initial theory that this bug is caused by a confusion between someone else mapping the planet first and my own mapping efforts. This planet was previously discovered, but has no "first mapped by" credit attached to it, and the bug I described in the OP did not occur.

I will continue to look for a system where the bug does actually occur, as I'm guessing that that will provide more useful information, but figured I'd share this just in case.

eddi2.zip

JL-72 commented 1 year ago

Okay, I finally found a system where the bug occurred (being on the Colonia Highway, I didn't think it would take this long). The planet in question is Gria Drye AB-U d4-111 B 9. Unlike yesterday, this planet had already been mapped by someone else, which would seem to me to confirm that that's somehow the problem (but you're the one that actually understands this stuff, so I know I could be wrong).

EDDI.zip

Tkael commented 1 year ago

"timestamp":"2023-01-18T22:59:54Z", "event":"FSDJump" - Jumped to system Gria Drye AB-U d4-111 "timestamp":"2023-01-18T23:00:03Z","event":"FSSDiscoveryScan" - 23 bodies remained to be scanned in the system (No Bodies to map script was invoked before beginning FSS scans in this system) "timestamp":"2023-01-18T23:04:13Z", "event":"Scan" - Scanned body B 9. EDDI reported that the body was "notable, with terraformable conditions." "timestamp":"2023-01-18T23:05:38Z", "event":"FSSAllBodiesFound" - System scan complete. All bodies found. No bodies recommended for mapping. "timestamp":"2023-01-18T23:05:42" - Retrieved body data for body B 9 from EDSM. "timestamp":"2023-01-18T23:10:59Z", "event":"SAAScanComplete" - Body B 9 mapped. No other bodies found worth mapping.

According to the journal, this body had already been scanned and mapped prior to your discovery (though according to EDSM you were the first discoverer).

Since this body was identified by the journal as having already been mapped, line 45 of the current Bodies to map script was false. Consequently, EDDI did not recommend this as a body to map.

I suspect that we added that condition to prevent recommendations for mapping bodies while in the bubble but it may not be well suited to deep space exploration where you might expect to receive a recommendation regardless of whether the body has been previously mapped. If so then we would need to adjust this condition to somehow filter out bubble bodies in some other way. :thinking:

Darkcyde13 commented 1 year ago

I'm curious, why would you not want to suggest bodies to map in the bubble? They are worth just as much as bodies out in the black that have already been mapped, and in the bubble it's easy money/rank with little risk.

I looked over my version of this script, and I don't have !body.alreadymapped, so mine still works for bodies in the bubble and the ones like in this bug report. I guess it was added to the default at some point and I never noticed.

If you want it not to report mappable bodies while travelling around the bubble in a ship without a DSS, then would it not be better to just add a check for a DSS? Something like the check for an SRV in the System materials report for example:

    {for compartment in ship.compartments:
        {if compartment.module.invariantName = "Detailed Surface Scanner":
            {set hasDSS to true}
        }
    }

That way ships set up as full combat vessels won't have to worry about being told of mappable bodies. The down side to that would be if you wanted to go back and map at a later date.

I guess it comes down to personal preference in the end. For me, I want it to tell me about all mappable bodies, whether in the bubble or not. Even after 8+ years of playing, there are still many systems in the bubble I've never been to, and I'd like to scan and map them in my travels, so I still want to be told about them when I encounter them. Most of the core systems are already in the ships database (the FSS has all bodies found), but many others are still 'undiscovered' by the player and can be fully scanned with the FSS (or scan the nav beacon if available), and mapped too.

I am a completionist though, so I prefer to scan & map everything I come across... 😉

Tkael commented 1 year ago

I'm curious, why would you not want to suggest bodies to map in the bubble? They are worth just as much as bodies out in the black that have already been mapped, and in the bubble it's easy money/rank with little risk.

I looked over my version of this script, and I don't have !body.alreadymapped, so mine still works for bodies in the bubble and the ones like in this bug report. I guess it was added to the default at some point and I never noticed.

If you want it not to report mappable bodies while travelling around the bubble in a ship without a DSS, then would it not be better to just add a check for a DSS? Something like the check for an SRV in the System materials report for example:

    {for compartment in ship.compartments:
        {if compartment.module.invariantName = "Detailed Surface Scanner":
            {set hasDSS to true}
        }
    }

That way ships set up as full combat vessels won't have to worry about being told of mappable bodies. The down side to that would be if you wanted to go back and map at a later date.

I guess it comes down to personal preference in the end. For me, I want it to tell me about all mappable bodies, whether in the bubble or not. Even after 8+ years of playing, there are still many systems in the bubble I've never been to, and I'd like to scan and map them in my travels, so I still want to be told about them when I encounter them. Most of the core systems are already in the ships database (the FSS has all bodies found), but many others are still 'undiscovered' by the player and can be fully scanned with the FSS (or scan the nav beacon if available), and mapped too.

I am a completionist though, so I prefer to scan & map everything I come across... 😉

Ref. https://github.com/EDCD/EDDI/issues/1563

Darkcyde13 commented 1 year ago

Ahh I see. I had forgotten about that, but it was 3 years ago. 😉

Still, like in that discussion, some people would prefer to be told about mapping in the bubble, or already mapped bodies in general. So how about making it an option at the top of the script? Something like: {set recommendMappedBodies to 1} {_ Set to 1 to suggest bodies to map that have already been mapped by other players _} Then update line 45 to: {if body.bodyType.invariantName != "Star" && (!body.alreadymapped || (recommendMappedBodies && body.alreadymapped)):

That should satisfy all possible requirements, right? 🙂

Hmm, that's not a bad idea, I think I'll add it to my version. 😃

Edit: Hmm, rereading the comments, I realise that this wouldn't satisfy ALL requirements. You might want to recommend bodies out in the black, but not in the bubble. Yes, you could change the option when going out and coming back, that would work, but that involves remembering to make the change, and not everyone will want (or be able) to do that. Also, you can't filter by population, as there are unpopulated systems in the bubble.

I guess you could filter by distance to Sol? Maybe anything 800Ly away can be reported, and anything closer not reported? I'm not sure how far the bubble extends out from Sol, but that sounds like a reasonable distance. 🤷‍♂️

Tkael commented 1 year ago

I think the preference switch you suggested + the dss filter will probably suffice for now. But yes, if we need to revisit this then we can consider adding another preference using a distance calculation relative to some point near the center of the bubble (or perhaps relative to your home system?).