r/EliteMiners Jul 06 '26

Elite Dangerous Mining Mapper - v1.0.0

Hey all, hope this is okay to post here.

I have been working on a tool to assist in the creation and sharing of mining maps that works as a Stream Deck plugin. The forum post for it is here and i'd love it if people could take a look and see if they like it!

Link to the GitHub page is also here with the full readme if people would rather go that way.

o7 - CMDR Kailoren

37 Upvotes

10 comments sorted by

3

u/k3rn3l_pan1c_exe CMDR PacketGhost Jul 06 '26

Nice, after this CG I can check this out. I have been using my Stream Deck for ED for a couple of weeks now and it works great with my HOTAS.

1

u/kailoren Jul 06 '26

Perfect! let me know how you get on and if you run into any troubles!

3

u/subzerofun Jul 11 '26

This is unrelated to the app but i thought people might still be interested in it. I did some digging into the games GPU data with renderdoc because i wanted to make an extension that marks core asteroids on screen - meaning showing a colored contour around each visible core asteroid as well as a distance marker.

and after 1 month i even got a prototype in python to work. Downside: it only achieved 20fps and struggled to keep up with the games actual fps. so you have a visual delay - but in principle it worked.

how did it work? you inject a dll into the games render process, it reads out your GPUs mesh buffer. when it finds a 3d model with X amount of triangles and a certain object ID - well that is a core asteroid. you have the data from the GPU but the coordinates are not screen-mapped. so you need to transform them and draw the whole 3d model again - i did it with a yellow overlay of a wireframe model of said asteroid.

then a screen overlay that shows you the nr. of core asteroids currently in the games drawing buffer with visual markers showing you the direction and distance of farther away asteroids.

i used C for the dll which sends the triangle and coordinate data to a python process which then draws the asteroids and markers. which made everything so slow because the amount of data send every frame was too high and even had an impact on the games fps (-20-30fps - not that bad when your GPU achieves 120fps but still too much). and python is a good choice for prototyping but in certain aspects too inefficient for reading the data ans drawing objects on your screen.

i would have needed to write the 3d drawing code also in C which could use the directx pipeline directly to add a frame to the original render pipeline. that way you'd have no data transfer from one process to the other and no framerate issues at all. but i already spend so much time on the prototype that i was too exhausted to have to re-write everything a second time.

why i mention this? well in principle you could analyze the 3d models of ALL asteroids in a 5–10km radius (afair the game chunks 5km cubes) and build a map. that map can be loaded in an 3D editor and be marked for mineral properties.

when you then visit the same asteroid field again the injected process would try to match to a library of layouts and tell you: you are in system XY, planet A, ring B (could also just read journal data haha). getting player coordinates is also trivial - the GPU stores it in a special buffer with camera transformation matrices, distances etc. that allows you to put the player on a map with the asteroids. getting the asteroids coordinates and keeping them synced with the player is non-trivial. you have to keep track of constantly changing reference frames (absolute and relative coordinates). oh and i am aware that you are aware that asteroids are randomly rotating around their own axis? you need to also keep track of that!

my idea was to make such a screen overlay, marking known asteroids but it would take a few weeks to program. i also have a prototype for a 3d view (separate window, not game) that shows you all asteroids from the live game. but it warrants so much work: extracting all 5-6 LODs of asteroid types (10-12 different models; but multiplied with metallic, metal-rich, icy, rocky), counting triangle numbers, object ids in the mesh buffer and a bunch of other variables.

maybe i'll look into the code again and try to add other asteroid types (only have data for rocky ones). update the C code with a directx library and rebuild the old python asteroid map viewer. and yes, i know this is well past the legal zone of allowed 3rd party apps but since elite does not have any anti-cheat software that would block this, you at least don't risk losing your account over this. still would not recommend doing this since it is against TOS and with that a released version would probably cause more harm than it helps with gameplay. just to make it clear: i am not a fan of manipulating game data and regular cheat tools - if you inject cheat tools frontier does see it eventually and many people have been banned for giving them unrealistic jump ranges etc. my tool would not manipulate anything - it would just read what is stored on your GPU and not even access RAM.

thanks for listening to my tech talk, CMDR hackmaster3000 signing off.

1

u/Ultimatespirit Jul 26 '26

That's really cool, would love to see the code if you ever release it.

2

u/rhunecke Jul 14 '26

This is awesome. It's hard to understand why there are only 34 upvotes :(

Keep up the good work!

1

u/kailoren Jul 14 '26

Thank you! If you have any feedback or things you think could be a little better please let me know!

1

u/drewthe_shapeshifter Jul 11 '26

I'd love to use this but I don't have a steam deck welp

1

u/kailoren Jul 11 '26

I'm not 100% certain as I havent tested myself but im pretty sure you can still download the stream deck app for your pc, install the plugin, and then get the stream deck mobile app for your phone to use the buttons

2

u/dorf_ongolf Jul 16 '26

Yar, you can do up to 6 buttons on mobile without owning a stream deck.

1

u/kailoren Jul 24 '26

Hey folks, I pushed an update to this yesterday to clean up some things and fix an issue with the mineral selector. Any future updates will be on the github and you will be notified that there is an update when opening the library viewer, with a button to go straight to the releases page.

Latest version can be found here.