alvarocga - Minimap & Full Map System — Thousands of Markers Without a Widget Each (C++)

Minimap & Full Map System puts a HUD minimap and a full-screen map in your game from one registry, one coordinate system and one icon set. Add a component to an actor and it is on both maps. Place one capture actor to say how big the world is, and the map picture is taken for you.

Built for marker counts. Markers are not widgets. They live in one flat array and every map view draws them in a single batched pass, so nothing is laid out per marker. Measured with the benchmark that ships in the demo, moving markers across the full map every frame:

  • 500 markers: 0.07 ms per frame, against 0.99 ms as one UMG widget per marker

  • 2,000 markers: 0.34 ms, against 3.76 ms

  • 4,000 markers: 0.73 ms, against 7.25 ms

(UE 5.6, 1920x1080, Core i5-13400F, RTX 5070, game-thread cost of drawing and moving the markers. The comparison is a C++ Canvas Panel with one Image per marker, moved the cheapest way UMG allows.) Run ACGA.Minimap.Demo.Bench sweep on the demo map to measure your own machine.

No fog of war in this version. Discovery and map reveal are not included; see below for everything else that is not.

Drop-in and deletable. Nothing to reparent and nothing to change in your GameMode, Character or Controller. Drag the ACGA Map View widget into the HUD you already have; the plugin never adds anything to your viewport by itself. Disable the plugin and remove its components, and your project is as it was.

Features

  • One ACGA Map Marker component per actor, or a location pin with no actor behind it.

  • Minimap and full map are the same widget with different settings: circle or rectangle, north-up or turning with the player, any zoom.

  • Markers outside the minimap pin to its edge and swap to an arrow pointing the true bearing.

  • A full-screen map that opens with one node, takes the cursor and gives it back on close.

  • Click to select markers on the full map, with a limit (the oldest selection drops) and selected, unselected and changed events on the marker and the registry.

  • Map picture captured from the level (baked once or live), or your own painted texture.

  • Icon sets as Data Assets: add your own icons and pick them by name from a dropdown.

  • Every look setting in Project Settings, so one change restyles every map in the game; runtime switches for rotation, minimap on or off and full map allowed or not.

  • Per-marker update policy (static, on move, every frame) and a category filter per view.

  • A Blueprint function library for pins, world-to-map conversion, bearings and the full map.

What is not included

  • No fog of war or map reveal.

  • No multiple floors or levels per map.

  • No pathfinding or route drawing on the map.

  • No compass bar and no screen-space waypoint markers.

  • No replication. Markers follow actors your game already replicates; nothing in the plugin replicates on its own.

  • Selection on the full map is by mouse click; gamepad map navigation is not included.

  • Icons are simple placeholder art, made to be replaced with your own.

Demo map included. A walled district with five landmarks and twenty-four caches, playable as it arrives: M opens the full map, N switches the minimap off and on, and the benchmark runs from the console. A self-playing automation test checks that the demo works on each engine version.

Documentation ships inside the plugin: a step-by-step user guide (PDF) for designers and a technical README with every setting and the C++ and Blueprint API.