Produce a list of potential systems for the upcoming colonization feature for the minor faction EDA Kunti League in the game Elite Dangerous.
This consists of three command line programs (to be run in order):
Colonisation.Systems
: This produces a list of potential colonisation systems near systems controlled by the specified minor faction. The output is CSV for easy import into Excel or a similar spreadsheet.Colonisation.Bodies
: This takes the output ofColonisation.Systems
and looks up details about the bodies on EDSM. The output is in JSON, since it has a complex structure. Inara, EDSM and similar websites also provide the same information in more accessible forms.Colonisation.Points
: This takes the output of both previous commands and produces a list of systems based on an arbitrary point system to determine the most desirable systems for colonisation. The output is in a CSV.
The separation ensures long running but infrequently changing details do not impact the likely frequent fiddling and tweaking of point values.
The programs and files involved are:
flowchart TB
swc@{ shape: doc, label: "systemsWithCoordinates.json"} --> cs["Colonisation.Systems"]
sp@{ shape: doc, label: "systemsPopulated.json"} --> cs
cs --> ct@{ shape: doc, label: "colonisationTargets.csv"}
edsm@{ shape: cyl, label: "EDSM"} --> cb["Colonisation.Bodies"]
cb --> sb@{ shape: doc, label: "systemBodies.json"}
ct --> cb["Colonisation.Points"]
ct --> cp["Colonisation.Points"]
sb --> cp
cp --> pct@{ shape: doc, label: "prioritisedColonisationTargets.csv"}
- Download and extract
systemsWithCoordinates.json
from https://www.edsm.net/dump/systemsWithCoordinates.json.gz intoColonisation.StarSystems
. Note that this is a large file (12+ GB) at the time of writing. Such a large but rarely changing file is intentionally excluded from the git repository. - Download and extract
systemsPopulated.json
from https://www.edsm.net/dump/systemsPopulated.json.gz intoColonisation.StarSystems
. This file is also excluded from the git repository. - (Optional) Change the
minorFactionName
setting inColonisation.StarSystems\applicationSettings.config
to the name of your minor faction. It must match exactly. - Build the solution.
- Run "run.bat" in the root folder of the solution. This batch file will:
- Run
Colonisation.StarSystems
. It takes about four to four and a half minutes to run. By default, output is written tocolonisationTargets.csv
. - Copy
colonisationTargets.csv
from the previous step intoColonisation.Bodies
andColonisation.Points
. You can also load this file into any spreadsheet. - Run
Colonisation.Bodies
to download relevant information about the bodies in these systems. This may take a while, mainly if https://edsm.net is busy. - Copy
systemBodies.json
from the previous step intoColonisation.Points
. - Run
Colonisation.Points
to outputprioritisedColonisationTargets.csv
.
- Run
This is a simple tool not intended for broad use. Therefore, not every parameter is stored in configuration or validated. Code is kept in a few files to keep swapping to a minimum.
- EDSM Nightly Dumps: https://www.edsm.net/en/nightly-dumps (used in the first two steps above)
- EDSM System APIs: https://www.edsm.net/en/api-system-v1 (called by
Colonisation.StarSystems
) - ED Astro dumps: https://edastro.com/mapcharts/files.html (unused but potentially useful)
- Inara API: https://inara.cz/elite/inara-api-devguide/ (unused but potentially useful)