Map System

Updated May 25, 2026

The Map System provides a world map, minimap, compass, map markers, fog/undiscovered logic, world beacons, and a texture-generation workflow for top-down map captures.

For shared setup guidance, see the Migration Guide and Integration Guide. Use the System Atlas to look up functions, variables, events, components, and ownership references. Use this page for Map System-specific coordinate conversion, map elements, UI behavior, and texture generation.

Related setup: Add Your World Map.

Related Videos

Some videos may have been recorded before V4. The same principles still apply, but asset names, component names, and folder locations may differ. Treat the current written documentation and V4 names as the source of truth.

  • Worldmap, Minimap and Compass – Perfect for Open World Projects
    Play
  • World Map, Compass and Minimap System Devlog
    Play
  • How to add the Quests and Map System into MST Pro v3
    Play

Coordinate Spaces

The hard part of a map system is converting between Unreal world locations, a normalized map-world space, and UI or texture positions.

SpaceMeaning
World LocationThe actor location in Unreal Engine, such as X/Y/Z world coordinates.
Map World PositionA relative X/Y map position based on the configured map origin and map size.
Texture Map LocationThe pixel or UI position used to place markers over the generated map image.

Example: if the map origin starts at world X/Y 10000/10000, that point becomes 0/0 in map-world space. If the map texture is 1024 by 1024 and the player is 20% across the map in both X and Y, the marker should be placed around 204.8 pixels on each axis before marker-size centering is applied.

Use two reference points, such as UpperLeft and LowerRight, to define map bounds. Those points become the basis for relative world-to-map calculations even when the actual Unreal world coordinates are offset.

Map Texture and UI Principles

  • The world size and texture size do not need to match. Large worlds should be mapped down to practical texture sizes.
  • Render targets need power-of-two dimensions, so a non-square world may be captured into a square texture.
  • The scene capture component should use orthographic view for a top-down map capture.
  • The orthographic width should fit the larger world dimension so the full map is captured.
  • Use Scene Capture show flags to exclude unwanted objects from the map texture.
  • Place the capture component in the center of the map through construction logic or an editor-callable button.

In UI, place the map image under a variable SizeBox so zoom can resize it. Use overlays above the texture for markers, and account for marker size when positioning icons so the icon center aligns to the target map location.

Zoom is handled by resizing the map SizeBox and updating overlay elements. Panning is handled by translating the map overlay. When panning, clear the panning state on mouse release, focus loss, or interaction with other UI. Boundary checks should compare desired map size against the viewport size.

Map Elements

Map elements are visual markers or symbols shown on the map, minimap, or compass. They represent locations, points of interest, dynamic actors, quest targets, resources, fast travel points, or player-created waypoints.

CategoryBehaviorExamples
PassiveEvent-based updates. Can be created and stored on Begin Play because they do not require frequent location updates.Landmarks, POIs, fast travel points, shops, save points, passive quest markers, search areas, player waypoints, event locations.
Dynamic NearbyAdded and removed based on player radius.Nearby NPCs, resources, enemies, interactable points.
Dynamic Always VisibleStored and updated in real time even when not nearby.Tracked quest targets, focused waypoints, moving quest actors.

Map Element Interfaces

InterfacePurpose
BPI_Map_ElementBase interface for map element information.
BPI_Map_Element_PassiveMarks an element as passive.
BPI_Map_Element_DynamicMarks an element as dynamic.
BPI_Map_Element_AlwaysVisibleMarks an element that should always be visible, such as a focused quest marker.
BPI_Map_Element_NearbyMarks an element that should appear within player radius.
BPI_Map_Element_DiscoveryMarks an actor that can be discovered.
BPI_Map_Element_FastTravelMarks a fast travel location.
BPI_Map_Element_NPCMarks an NPC map element.
BPI_Map_Element_CompassMarks an element that should display on the compass.

Passive elements can be loaded on the world map at Begin Play. The minimap and compass work primarily by radius, with exceptions for always-visible tracked elements.

Minimap and Compass

The minimap can use the map texture through a material and update minimap location/rotation through a material parameter collection. Minimap icon positions are updated through an icon-position function. A retainer mask with a custom texture can mask square map content into the intended minimap shape.

The compass has two display groups:

  • Always show: tracked quest markers and focused player waypoints.
  • Show in radius: NPCs, resources, and normal map elements.

Radius detection uses an overlap box on the player with a custom collision channel to reduce overhead. Actors in radius are tracked, distance-checked, and displayed only when their own interface rules allow it.

Map Fog and Undiscovered Areas

Map fog is stored in a render target. The system updates and draws to it at runtime, using a timer to update the discovered radius.

BP_Map_Texture_Generator

BP_Map_Texture_Generator captures the top-down map texture. For the practical setup flow for your own project, including the layered generator, bounds setup, capture update, and region-name workflow, use Add Your World Map.

BP_Map_Texture_Generator screenshot

World Beacons

BeaconPurpose
Large Map BeaconShows high in the world, often with a particle beam for focus. Can dynamically change height based on player distance. Used for focused quest targets, custom player waypoints, or focused map elements.
Nearby BeaconShows points of interest in the world when nearby, such as a vendor icon above a blacksmith. Uses custom offset and nearby-radius logic.