Thanks for that,much appreciatedIf I understand you correctly, the 'terraformed' parts of 'Bodies to map' are only there to check if that particular body should be added to the "to map" list, and not to tell you if it is terraformed.
If you want it to do that, you need to make a few changes to the script so that it remembers the terraform state of each body it recommends to map. To make this easier for you, I have added your preferences to my version of the 'Bodies to map' script (and made a couple of other edits to tidy it up a bit). My version is quite different to the default, but gives the same results with extra information. So try this and see what you think:
Code:{_ Preferences: _} {set reportTerraformables to true} {_ Reports all terraformable and terraformed bodies _} {set highValueThreshold to 50000} {_ The minimum threshold for estimated exploration value worth mapping _} {set reportPlanetTypes to [ "Ammonia world": true, "Earth-like world": true, "Gas giant with ammonia based life": false, "Gas giant with water based life": false, "Helium gas giant": false, "Helium-rich gas giant": false, "High metal content world": true, "Icy body": false, "Metal-rich body": true, "Rocky body": false, "Rocky ice world": false, "Class I gas giant": false, "Class II gas giant": true, "Class III gas giant": false, "Class IV gas giant": false, "Class V gas giant": false, "Water giant": false, "Water giant with life": false, "Water world": true, ]} {_ Fetch from Context, if a context is set _} {if state.eddi_context_system_name: {set reportSystem to SystemDetails(state.eddi_context_system_name)} |else: {set reportSystem to SystemDetails(system.systemname)} } {_ Identify bodies worth mapping _} {set totalBodies to reportSystem.totalbodies} {set scannedBodies to reportSystem.scannedbodies} {set toMapList to []} {set mappedBodies to 0} {set scannedStars to 0} {set bodyDistance to []} {set bodyType to []} {set planetType to []} {set bodyTerraform to []} {set bodyValue to []} {_ Collect system data _} {for body in reportSystem.bodies: {_ Check if system name is at the beginning of the body name _} {if find(body.name, reportSystem.name) = 0: {set shortname to body.shortname} |else: {set shortname to body.name} } {if body.mapped: {set mappedBodies to mappedBodies + 1} |elif body.bodyType.invariantName = "Star": {set scannedStars to scannedStars + 1} |elif body.terraformState.invariantName != "Not terraformable": {if reportTerraformables && !toMapList[body.shortname]: {if body.distance <= mapDistance || body.estimatedvalue >= mapHighVal: {set toMapList to cat(toMapList, [shortname])} {set bodyDistance to cat(bodyDistance, [round(body.distance, 0)])} {set bodyType to cat(bodyType, [body.bodytype])} {set planetType to cat(planetType, [body.planettype])} {set bodyTerraform to cat(bodyTerraform, [body.terraformstate])} {set bodyValue to cat(bodyValue, [body.estimatedvalue])} } } |elif reportPlanetTypes[body.planetClass.invariantName] || body.estimatedvalue > highValueThreshold: {if (body.distance <= mapDistance || body.estimatedvalue >= mapHighVal) && !toMapList[body.shortname]: {set toMapList to cat(toMapList, [shortname])} {set bodyDistance to cat(bodyDistance, [round(body.distance, 0)])} {set bodyType to cat(bodyType, [body.bodytype])} {set planetType to cat(planetType, [body.planettype])} {if body.terraformState.invariantName != "Not terraformable": {set bodyTerraform to cat(bodyTerraform, [body.terraformstate])} |else: {set bodyTerraform to cat(bodyTerraform, [""])} } {set bodyValue to cat(bodyValue, [body.estimatedvalue])} } } } {set toMapCount to len(toMapList)} {_ Begin speaking _} {set worthy to OneOf("worthwhile", "interesting", "notable", "noteworthy")} {if toMapCount > 0: {if hasSRV && ((system.isgold && reportGoldSystems) || (system.isgreen && reportGreenSystems)): {OneOf("Additionally", "Also")}, |elif len(toMapList) = 1 && mappedBodies = 0: Only } {toMapCount} {if event.type = "Body mapped": other} {if toMapCount = 1: Body |else: Bodies} {if toMapCount = 1: is |else: are} {if event.type = "Body mapped": also} {if toMapCount = 1: a} {OneOf("recommended", "good", "viable")} {set candidates to when(toMapCount = 1, "candidate", "candidates")} {OneOf("{candidates} for mapping", "{candidates} to map", "mapping {candidates}")}: {set cur to 0} {set length to toMapCount - 1} {while cur < toMapCount: {char(10)} {bodyType[cur]} {P(toMapList[cur], "body")}, {if bodyTerraform != "Not terraformable": {if StartsWithVowel(bodyTerraform[cur]): an |else: a} {bodyTerraform[cur]} |else: {if StartsWithVowel(planetType[cur]): an |else: a} } {planetType[cur]} {if bodyDistance[cur] > 800: {Humanise(bodyDistance[cur])} |else: {bodyDistance[cur]} } light seconds from arrival, currently estimated at {Humanise(bodyValue[cur])} credits {set cur to cur + 1} {if cur = length:, and |elif cur < length:, } } |elif mappedBodies > 0: {OneOf("You have mapped all {if mappedBodies < (totalBodies - scannedStars): {worthy}} bodies scanned {if (scannedBodies < totalBodies) && (scannedStars < totalBodies): so far |else: in this system}.", "All {OneOf('{if mappedBodies < (totalBodies - scannedStars): {worthy}} bodies', 'bodies {if mappedBodies < (totalBodies - scannedStars): of interest}')} {if (scannedBodies < totalBodies) && (scannedStars < totalBodies): scanned so far |else: in this system} {OneOf('have been mapped', 'are now mapped')}." )} |elif reportNoBodiesToMap = true: {if (scannedBodies < totalBodies) && (scannedStars < totalBodies): You have {OneOf("not yet scanned", "yet to scan")} any {worthy} bodies in this system |else: {if hasSRV && ((system.isgold && reportGoldSystems) || (system.isgreen && reportGreenSystems)): However, } {OneOf("There are no", "You have not found any")} {if totalBodies - scannedStars > 0: {Occasionally(2, "{worthy}")} bodies {OneOf("to map", "worth mapping")} |else: mappable bodies } {if hasSRV && ((system.isgold && reportGoldSystems) || (system.isgreen && reportGreenSystems)): here |else: in this system } }. }
It will give a report like this (the system is Myrbat in this example):
I think you can ignore where it says 'zero credits' as I'm not in game at the moment, or at that system.
Let me know what you think. I can change it if you want less information spoken.![]()
brilliant work,the credit thing is brilliant as it auto updates after fss and then dss,so you can see if it’s worth the time to travel to
If I do want less info spoken what would I change
e.g if I wanted the distance not reporting?as The distance doesn’t seem to change if I get nearer or farther after each honk,but if this could be changed to real-time that would be fantastic
thanks
Last edited: