{"id":23453673,"url":"https://github.com/tautomer/universalcartographicshistory","last_synced_at":"2025-08-29T21:39:57.811Z","repository":{"id":170434004,"uuid":"358997420","full_name":"tautomer/UniversalCartographicsHistory","owner":"tautomer","description":"Find out the bodies you have discovered/mapped in Elite: Dangerous!","archived":false,"fork":false,"pushed_at":"2021-04-20T01:53:39.000Z","size":193,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T00:30:09.780Z","etag":null,"topics":["elite-dangerous","elitedangerous","universal-cartographics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tautomer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-17T22:45:08.000Z","updated_at":"2022-03-24T22:42:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"db2bec73-ed41-481b-bc78-3ab60672b280","html_url":"https://github.com/tautomer/UniversalCartographicsHistory","commit_stats":null,"previous_names":["tautomer/universalcartographicshistory"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/tautomer/UniversalCartographicsHistory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tautomer%2FUniversalCartographicsHistory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tautomer%2FUniversalCartographicsHistory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tautomer%2FUniversalCartographicsHistory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tautomer%2FUniversalCartographicsHistory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tautomer","download_url":"https://codeload.github.com/tautomer/UniversalCartographicsHistory/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tautomer%2FUniversalCartographicsHistory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272766956,"owners_count":24989408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-29T02:00:10.610Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elite-dangerous","elitedangerous","universal-cartographics"],"created_at":"2024-12-24T02:19:39.327Z","updated_at":"2025-08-29T21:39:57.790Z","avatar_url":"https://github.com/tautomer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Elite: Dangerous Universal Cartographics History\r\n\r\nAs an explorer, I often find it's sad that we can't have a list of all the\r\nstar systems and the bodies we discovered or mapped before. I have been\r\nthinking of writing a script like this for quite a long time. Unfortunately, I\r\ncouldn't find a way to know whether the bodies had been discovered before.\r\n\r\n[Thanks to user `aggasalk` on reddit for the hint!](https://www.reddit.com/r/EliteDangerous/comments/mq50zf/daily_qa_ask_and_answer_any_questions_you_have/guf3tkt?utm_source=share\u0026utm_medium=web2x\u0026context=3)\r\nI can finally finish this script.\r\n\r\nThe script should be fully functional, but I have only tested the code on my\r\nown computer. It would be great if you can try the script out and tell me if it\r\nworks or not and how it breaks if it doesn't work!\r\n\r\n## How to use\r\n\r\nMake sure you have [Python 3](https://www.python.org/downloads/) installed on\r\nyour Windows. Alternatively, type `python3` in `cmd` or `PowerShell` to install\r\na copy via Microsoft Store. Any version of Python 3 should work. No 3rd party\r\npackage required.\r\n\r\nDownload the script [here](https://raw.githubusercontent.com/tautomer/UniversalCartographicsHistory/master/uchistory/uchistory.py)\r\nand save it to your computer. Double click or run the script in CLI.\r\n\r\nAlternatively, I have packed a standalone executable with PyInstaller which\r\nbehaves exactly like the script. The exe can be downloaded from the\r\n[releases page](https://github.com/tautomer/UniversalCartographicsHistory/releases).\r\n\r\nNote: if your Python isn't the Microsoft Store version, typing `python3` or\r\n`python3.exe` will only lead you to the Store. Make sure type `python` or\r\n`python.exe` instead.\r\n\r\nAlso note: this script should also work on Linux, as I can test it runs on my\r\nWSL2. However, I'm not sure if the default log path is\r\n`~/Saved Games/Frontier Developments/Elite Dangerous` on Linux.\r\n\r\nSome config options are provided via CLI:\r\n\r\n```text\r\nUsage:\r\n  python.exe uchistory.py [OPTION...]\r\n\r\nHelp Option:\r\n  -h, --help              Show this message\r\n\r\nE:D Log Path:\r\n  -l, --log-path=         Path to the E:D log files\r\n                          Make sure the path is quoted if there are spaces within the path. See the default below\r\n                          Defaults to 'C:\\Users\\username\\Saved Games\\Frontier Developments\\Elite Dangerous'\r\n\r\nOutput File:\r\n  -o, --output=           Output filename and path to save the scan results\r\n                          Defaults to 'Universal Cartographics Histroy Scan.txt' in the current folder\r\n\r\nOutput Level:\r\n  -v, --verbose=          Output verbose level\r\n                          Level 1 lists only the number of bodies discovered/mapped in the system\r\n                          Level 2 lists the body names as well\r\n                          Defaults to 2\r\n```\r\n\r\nExample output\r\n\r\n```text\r\nCommander Name: Qualcomm\r\nTotal Number of First Discovery + First Mapped: 239\r\nTotal Number of First Discovery: 9632\r\nTotal Number of First Mapped: 119\r\n\r\nSystem Name: Sharur\r\n  First Discovery: 4 Bodies\r\n    Sharur A\r\n    Sharur B\r\n    Sharur B A Belt Cluster 1\r\n    Sharur B A Belt Cluster 4\r\n\r\nSystem Name: Col 285 Sector ZZ-Y d57\r\n  First Mapped: 1 Body\r\n    Col 285 Sector ZZ-Y d57 4\r\n\r\nSystem Name: Praea Euq UQ-X b1-6\r\n  First Mapped: 15 Bodies\r\n    Praea Euq UQ-X b1-6 A 1\r\n    Praea Euq UQ-X b1-6 A 2\r\n    Praea Euq UQ-X b1-6 A 3\r\n    Praea Euq UQ-X b1-6 A 4\r\n    Praea Euq UQ-X b1-6 A 5\r\n    Praea Euq UQ-X b1-6 A 6\r\n    Praea Euq UQ-X b1-6 B 1\r\n    Praea Euq UQ-X b1-6 B 2\r\n    Praea Euq UQ-X b1-6 B 3\r\n    Praea Euq UQ-X b1-6 B 3 a\r\n    Praea Euq UQ-X b1-6 B 4\r\n    Praea Euq UQ-X b1-6 B 5\r\n    Praea Euq UQ-X b1-6 B 6\r\n    Praea Euq UQ-X b1-6 B 7\r\n    Praea Euq UQ-X b1-6 B 8\r\n```\r\n\r\n## How it works\r\n\r\nWell, basically finding events like `FSDJump`, `Scan`, `SAAScanComplete` in all\r\nthe journal files. Currently the path to the log files are assumed to be the\r\ndefault path, i.e., `C:\\Users\\username\\Saved Games\\Frontier Developments\\Elite Dangerous`.\r\nAn summary called `Universal Cartographics Histroy Scan.txt` will be saved in\r\nthe same folder as the script.\r\n\r\n## Known issues\r\n\r\n* There some well-known systems (the ones with a unique name, not something like\r\n  `Col balabala`) where the bodies are shown as undiscovered, or say not\r\n  discovered by any one.\r\n\r\n  For example, the first ever system I ever \"honked\", `Sharur` in the starting\r\n  space.\r\n\r\n  ![Sharur](assets/Sharur.jpg)\r\n\r\n  In the journal, these bodies are shown as\r\n\r\n  ```text\r\n  {\r\n   \"timestamp\":\"2020-11-25T21:44:23Z\",\r\n   \"event\":\"Scan\",\r\n   \"ScanType\":\"NavBeaconDetail\",\r\n   \"BodyName\":\"Sharur B A Belt Cluster 4\",\r\n   \"BodyID\":16,\r\n   \"Parents\":[\r\n      {\r\n         \"Ring\":12\r\n      },\r\n      {\r\n         \"Star\":2\r\n      },\r\n      {\r\n         \"Null\":0\r\n      }\r\n   ],\r\n   \"StarSystem\":\"Sharur\",\r\n   \"SystemAddress\":1733187048154,\r\n   \"DistanceFromArrivalLS\":41381.868618,\r\n   \"WasDiscovered\":false,\r\n   \"WasMapped\":false\r\n  }\r\n  ```\r\n\r\n  No one discovered these bodies and the stars and belt clusters are not\r\n  mappable, which means I can't distinguish whether they are first discovered\r\n  by you or not.\r\n\r\n  On the other hand, the planets in these systems are mappable, so for any\r\n  bodies with status of `\"WasDiscovered\":false` and `\"WasMapped\":true` are\r\n  completely ignored.\r\n\r\n  If you happen to be the one who actually mapped these bodies... I'm sorry.\r\n\r\n## TODO List\r\n\r\n* A simple GUI probably?\r\n\r\n* Add an optional config file?\r\n\r\n* Add CI.\r\n\r\n## Find a bug?\r\n\r\nReport it to me over GitHub. It will be great if you can attach some ED logs so\r\nthat it can be easier for me to look into the problem.\r\n\r\nDisclaimer: I'm very busy IRL recently so that I can't guarantee a fix for the\r\nissue you might have, but I'll try my best.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftautomer%2Funiversalcartographicshistory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftautomer%2Funiversalcartographicshistory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftautomer%2Funiversalcartographicshistory/lists"}