No longer Working in EDO try EDH3.8
Galaxymap Supercharged!
After getting some inquiries, I'll try to explain here how to find just about any body generated by the game using the Galaxy Map Search Bar.
This includes bodys that are not in Game like Comets, well at least were they should be.
The problem is this:
If you scan a system and look at the log file, consecutive bodies often do not have consecutive body IDs.
Some can be explained by the fact that barycentres and stations also have their own body ID.
So far, however, some of these missing bodies have remained a mystery.
How to assign these bodies I want to explain here. To do this, however, we have to Supercharge the galaxy map.
System Names:
System names in ED have different forms.They can come from a catalog, a star survey, or just the imagination from a developer or writer.
Some have a very specific form: e.g. Wregoe AC-D d12-0
SystemID
For now we will focus on the last Number. The SystemID.Systems in ED belong to a so called Boxel. The size of that boxel depends on its layer which is the small letter.
The first System in a boxel gets the Number 0 the second the Number 1, and so on, till the boxel runs out of mass or there is no more SystemID free.
You can try and change this Number. As long there is a System whit this ID the Galaxy Map will focus to it.
Wregoe AC-D d12 this is the System whit ID 155 alias Ongerinja.
Body#
So far, nothing new to most CMDR's.Also the Body# is a familiar thing to most of you.
Once you scan a Body, or drop in it's SOI, there wil be an entry about thet event in the Logfile.
In that event is a Body# included. For the closest Body a 1 and so on.
And here the trick. (!!WARNING!! to high values will overflow the ID64 and Crash the Game!!)
If you take the SystemID and add the Body# * 2^x (where x depends on the layer) e.g. 0 + 21 * 2^20 = 22020096 => Wregoe AC-D d12-22020096and put this Number as SystemID, like that Wregoe AC-D d12-22020096 the Galaxymap will focus on the initial System.
The Galaxymap has now not found a System for you but a Body whit that Body#.
Its much the same as searching for a Station Name or a Planet Name.
But it will find also barycenters and even Comets.
If you happen to already be in that System:
Well have u ever tryed to target the System you are currently in via the GalMap, no luck right.
If u search like this you will be able to set the result as target.
Seting target and leave the Galmap. it will show the thing as a SignalSource.
If you drop here Wregoe AC-D d12-22020096 you will see it's Named "Halley's Comet"
How you can do this, even if the System has no Name of this specific from
To find the ProcedurallyGeneratedSystemName of any System you need to find its ID64 first.
You can get The ID64 by just setting any System as your Target via the GalMap, and check the Log entry for "SystemAddress". Or you can go to EDSM each System reported there has also its ID
The ID64 will be called SystemAddress there. Since the MainStar of a System happens to get the Body# 0. the SystemAddress and the ID64 are the same.
The ID64 consists of 9 parts:
Part | Body# | SystemID | SectorX | BoxelX | SectorY | BoxelY | SectorZ | BoxelZ | Cube Layer |
bit lenght | 9 | (11 - 32) | 7 | (0-7) | 6 | (0-7) | 7 | (0-7) | 3 |
The ProcedurallSectorName comes frome the SectorXYZ parts of the ID64.
Since the Sector Names are an ongoing research, and it has may unkowns as of now. There is a File attached here to use as a Lookup.
The Keys in this Files is:
Search for that key in the files and it will have the corresponding sector name to it.
here whit SOL: SystemAddress: 10477373803_dez = ID64 = 000000000 00000000000000000000 0100111 0000 100000 0000 0010010 1101 011_bin
Base:2 | 000000000 | 00000000000000000000 | 0100111 | 0000 | 100000 | 0000 | 0010010 | 1101 | 011 |
Base:10 | 0 | 0 | 39 | 0 | 32 | 0 | 18 | 13 | 3 |
So we have a SectorX = 39, SectorY = 32, SectorZ = 18; reults in the Key: 39 + 4096 + 16384 = 299047 in the table you find
Wregoe
for this key.
Now for the Lettercode it works much the same but we need to confert in Base 26 at the end.
Calculate as whit the SectorKey:
so we get: 0 + 0 + 212992 = 212992
this we convert in base26 whit the letters A-Z = 0-25 so A = 0, B=1, ... Z=25
- (212992 / 26) = 8192 remainder 0 -> A
- (8192 / 26) = 315 remainder 2 -> C
- (315/ 26) = 12 remainder 4 -> D
- remember this 12 (it will be the number after the layer. it stays in base 10)
followed by a space and the layer
3 -> d
now depending of the last quotient (that 12) we have two options eighter this was 0 then we just append the SystemID.
Or it was not 0 then we append this value (12) followed by a dash and then the SystemID.
However the second option will always also work. So there is no differenc between Wregoe AA-A h5 and Wregoe AA-Ah0-5
The 0- can be implied if the last quotient is 0.
In our example it was not 0 and we get 12-0
All in all
Wregoe AC-D d12-0
Why it works:
The GalaxySearchBar first trys to find an Alias e.g. if u type SOL it will find in some tabel this name and gives the Map the ID64 for SOL.
But if there is no entry for what you typed, it will convert the string in to its ID64 repesentation.
for the parser the SystemID has to be a number and given as a number the parser is happy and does his job.
Nevertheless, is this number bigger as the SystemID has bits, the other bits just go right to were the Body# is.
And as far as the GalMap is concerned this ID64 is different from the ID64 of ur current System and thus lets you target it.
What to add to the SystemID deppends on the Layer:
Layer | Letter | SystemID + Body# * 2^x |
0 | a | 11 |
1 | b | 14 |
2 | c | 17 |
3 | d | 20 |
4 | e | 23 |
5 | f | 26 |
6 | g | 29 |
7 | h | 32 |
You can also just add to the SystemAddress Body# * 2^55 but then you will have to convert this big number in to a Searchable String and calulating whit 64bit... well haven't found a table calculation program that can handle 64bit nativly.
Looking for Systems at a specific Position:
SOL is not at the Center of the Octree.
The Sector whit SectorX = 0; SectorY = 0 and SectorZ = 0, would be far outside the GalaxyMaps bounds.
to be specific: (0;0;0) "[SectorNULL] AA-A h0-0" LowerButtomLeft Corner is at
-49985 | -40985 | -24105 |
Since each Boxel has a specific Size you can make up a SystemName for any Position in the Galaxy and try if in that Boxel is a system.
If not move one Layer up and try again. each time it get less acurate but it helps if you ever have a direction but no system to aim at.
e.g.
Try Sector
1. "Sector AB-C a15-0" (10ly acuracy)
2. "Sector NA-O B7-0" (20ly acuracy)
3. "Sector UX-T C3-0" (40ly acuracy)
4. "Sector LW-W D1-0" (80ly acuracy)
5. "Sector FL-Y E0-0" (160ly acuracy)
6. "Sector BA-A F0-0" (320ly acuracy)
7. "Sector AA-A G0-0" (640ly acuracy)
8. "Sector AA-A H0-0" (1280ly acuracy)
each time half the BoxelKey (sort of) may be later in more dept.
Here i have updated my little GoogleSheet for some of the calculations
DarkStarSword has done some great work to easily get a Search String into the clipboard
I hope i could answer the questions i got from some CMDR's and will be happy for any feedback and sugesstions to make this better to understand.
Ride on!
Attachments
Last edited: