Procedural minimap that i might turn into a module some day

never seen somebody make a procedural minimap without excessive use of uigradients or frames so here’s something i’ve been working on that i might turn into a module soon

i can handle around 40 of these on my screen before i start getting frame drops


Hold up thats terrain is fire + the water
second of all the minimap is actually good but my question is why does it zoom in and out?

1 Like

that was just a test to show that i can zoom without any quality loss or performance difference

in reality i was just pressing +/-

1 Like

oh i thought in the map if u standed still it would zoom in and if u moved it would zoomed out but pretty sick ain’t gonna lie

1 Like

Interesting, I am making a procedural minimal using frames and gradients, today.

It’s a bit of a pain, so maybe I should have gone with a ViewportFrame instead.

Is that what you are doing, or did you find another way to make bitmaps?

1 Like

yes, so basically how it’s done is there’s a camera that is face down in a viewport (that will never move from the base position) and there’s a big plane that has around 500 bones

those bones are adjusted to the noise of that bone’s worldposition plus the hrp position, times the zoom scale

i got different colors by making multiple transparent planes and coloring them

that is then updated every frame and you can handle a lot of them on your screen, maybe even a large map and there’s no need to move any objects in the scene either except the camera’s roll position and the bones

it’ll look something like this when you take it out of the viewportmodel so you can get a better perspective of what i’m saying:

so theoretically it could be a 3d rendered minimap, i just choose to use it as a 2d one and make the camera just top down on the plane


That looks good! Nice job on this.


But you can just use a viewport?


That looks very nice. I have no idea how you did, is it possible to create a mesh in Lua, or is it made out of parts?

This is the minimap I made, using ray casting and UI elements.

It quantizes the colors and sends to the client via strings in replicated storage.

It also looks for tags in workspace and can flag objectives on the minimap. There is a option to clamp the markers so the don’t go beyond the minimap, in a primitive way. I guess I really need to scale the vector from the player to the objective, instead of just clamping X and Y individually. :grimacing:

There is no documentation and the code is not very neat, but the place is uncopylocked if anyone is curious.

It is supposed to be used in my Zombie game. Maybe next week…