Minimap¶
All · 10 min read
The minimap is the circle in the top right of the HUD. It shows the area around the party leader, which way the leader faces, which way the camera looks, nearby enemies, quest givers, shops and whatever the active quest needs. The area's name sits under the circle. It follows the XC1 field minimap: north-up by default, with turning the map with the camera as an option. Pressing L3 (keyboard M) fades the same map in over the whole screen, see-through and fading out toward the edges, as in XC1's Definitive Edition.
Everything you change is data: a placed actor, a data asset, a Data Table and properties on the HUD. No Blueprint graph is involved.
What you can change¶
- A minimap for a new map: Give a map its minimap.
- A new kind of marker, or a marker on your own Blueprint: Show something on the minimap.
- The legend's words and each marker's look: rows of
UserInterface/HUD/Minimap/DT_XenoCore_MapMarkers. - Size, range, north-up or rotating, colours, fonts: the
Minimapwidget's Details panel (Settings).
What it shows¶
| On the minimap | Meaning | Comes from |
|---|---|---|
| Yellow arrow, centre | The party leader, pointing the way they face | Always drawn |
| Pale wedge | Where the camera is looking: brightest at the arrow, fading out toward the rim | Always drawn |
| Soft dot | A living enemy, coloured by its danger: the same colour as the lvl.N over its head. It pulses while the enemy is fighting the party | Every XenoCore enemy, automatically |
| Ring | A living unique enemy, coloured by danger the same way | An enemy with Unique Monster ticked |
| Red ! on a white tag | An NPC with a quest to give or to take back | A XenoCore NPC whose quest is offerable or ready to hand in |
| House | An NPC who runs a shop | A XenoCore NPC with a Shop Table |
| Blue dot | Something the active quest wants | Enemies a Defeat Enemy objective still needs, the NPC of a Talk To NPC step, the Quest Location of a Reach Location step, and the quest giver once the quest is ready to hand in |
Blue dots stay pinned to the rim when they are out of range, pointing the way. Every other marker disappears beyond the edge.
The rim also carries the time of day: a sun or moon that travels round it, noon at the top and midnight at the bottom. The line under the circle reads the area name, the current weather's icon and the time, for example "Gaur Plain 21:40". See Time of day and weather.
The arrow and the wedge can point different ways
They show two different things, as in XC1: the arrow is the way the character faces, the wedge is the way the camera looks. With the camera behind the character they line up; turn the character toward the camera and the arrow points back down the wedge. Neither is a bug.
No treasure chests, by design
XC1's own manual lists no minimap icon for chests or collectables, so XenoCore draws none. To add one, see Show something on the minimap.
How it fits together¶
- The image is a picture of the whole area seen from straight above, stored on an Area
Definition data asset with the rectangle of the world it covers (
Maps/Areas/DA_XenoCore_Area_*). XenoCore bakes it from the map into an XC1-style plan: tan ground tinted olive where it is grassy and pale where it is sandy, dark rock, blue water, outlines between levels, faint contour lines every 3 m of height, higher ground casting a soft shadow to the south-east and lit along its north-west edges, all on a light paper texture. You can also paint your own in any image editor. - One XenoCore Map Area actor per map says which Area Definition the map uses. In the editor it draws that rectangle as an orange box, so you can see exactly where the image lands. Its Fit Bounds To Landscape button sizes the rectangle to the map's landscape (for a hand-painted image), and Map Check flags a missing area, a missing image or backwards bounds.
- Markers are drawn for every actor that asks to be. XenoCore enemies and NPCs ask automatically; any other actor can ask with one Blueprint node.
- What each marker looks like is one row of
UserInterface/HUD/Minimap/DT_XenoCore_MapMarkers. Each row is keyed by aXenoCore.Map.Marker.*gameplay tag. - The minimap itself is the
Minimapwidget inUserInterface/HUD/W_XenoCore_HUDLayout. The full-screen view is a second one there,MinimapOverlay.
Settings¶
Select Minimap (or MinimapOverlay) in W_XenoCore_HUDLayout's hierarchy. Everything below is in
its Details panel.
| Setting | Category | What it does |
|---|---|---|
| World Radius | Minimap | How far the map reaches from the centre to the edge, in cm. The corner minimap uses 9000 (90 m) |
| Rotate With Camera | Minimap | Off (XC1's default): north is always up and the arrow turns. On: the map turns so the camera always looks up |
| Minimap Size | Minimap | The widget's size on screen |
| Overlay | Minimap | On for MinimapOverlay only: draw only while L3 has the overlay open |
| Overlay Fade Seconds | Minimap | Overlay only: how long it takes to fade in and out (0.15) |
| Fill Widget | Minimap | Fill the whole widget, fading toward every edge, instead of a circle. On for MinimapOverlay |
| Vignette Start, Backdrop Dim | Minimap › Look | Fill Widget only: where the edge fade begins, and how much the game behind is darkened |
| Rim Width, Rim Color | Minimap › Look | The thin band round the edge |
| Edge Shade | Minimap › Look | How much the disc darkens toward its rim |
| Shadow Width, Shadow Opacity | Minimap › Look | The soft shadow outside the rim |
| Map Opacity, Map Brightness | Minimap › Look | How solid and how bright the map image is |
| Background Color | Minimap › Look | Drawn where there is no image |
| Leader Icon, Leader Icon Size, Leader Tint | Minimap › Leader | The arrow. 24 at the corner minimap's size: about a tenth of the circle, as in XC1 |
| Camera View Color, Camera View Half Angle | Minimap › Leader | The camera wedge, which lightens the map under it. Its colour's alpha is how strong it is |
| Camera View Softness, Camera View Outer Strength | Minimap › Leader | How far the wedge's sides fade out (degrees), and how strong it still is at the rim compared with the arrow. XC1's is brightest at the arrow and fades out |
| Marker Styles | Minimap › Markers | Which marker table to use |
| Rim Clamp Inset | Minimap › Markers | How far inside the rim a pinned marker sits |
| Marker Scale | Minimap › Markers | Multiplies every marker's size. 1.6 on the overlay |
| Area Name Strip | Minimap › Text | Height of the strip under the circle for the area's Display Name. 26 on the corner minimap, whose Minimap Size is 240 × 266. 0 = no name |
| Show Header And Legend | Minimap › Text | Fill Widget only: the area name across the top and a legend of marker kinds bottom-left |
| Area Name Font, Header Font, Label Font, Text Color | Minimap › Text | The name, the header, and the legend and NPC names |
| Leader Label | Minimap › Text | The legend line for the arrow (You). Empty = left out |
| Show Time And Weather, Weather Icon Size, Time Weather Separator | Minimap › Time And Weather | The weather icon and clock after the area name |
| Show Day Night Dial, Sun Icon, Moon Icon, Dial Icon Size | Minimap › Time And Weather | The sun or moon that rides the rim |
Changing the legend's words
Every other legend line is the Label column of that kind's row in
/XenoCore/UserInterface/HUD/Minimap/DT_XenoCore_MapMarkers: open the table, edit Label, save.
The shipped lines are Enemy, Unique Enemy, Shop, Quest and Objective. Clear a
Label to leave that kind out of the legend. Row names and marker tags (Monster,
XenoCore.Map.Marker.Monster) are internal and never shown to the player, so they do not need
renaming.
Under the minimap, MinimapPrompt shows the overlay button and Map: the left-stick-click glyph on a
gamepad. It draws the MinimapOverlay row of
UserInterface/Foundation/DT_XenoCore_Actions.
Both prompts have icons on every device: XenoCore ships its own keyboard keycap icons, set by Keyboard Key Icons in Project Settings › Game › XenoCore UI.
To change the overlay button:
- Edit
IA_XenoCore_MinimapOverlay's keys inInput/Mappings/IMC_XenoCore. - Set the same keys on the
MinimapOverlayrow ofDT_XenoCore_Actions.
Fails silently: the prompt shows the old button
The prompt only draws what the table row says; it never reads the input mapping. Change one without the other and the HUD tells players to press a button that does nothing. Nothing warns, so press the button in Play after every change.
L3 was Lyra's Dash
Lyra's own IMC_Default binds the left stick click to Dash, which XenoCore has no use for.
IMC_XenoCore runs at a higher priority, so the minimap overlay wins the button.
Testing from the console¶
| Command | Effect |
|---|---|
XenoCore.Minimap.Rotate 1 / 0 / -1 |
Force rotate with camera / north-up / back to the widget's setting |
XenoCore.Minimap.Hide 1 / 0 |
Hide / show the corner minimap. The L3 overlay is unaffected |
There is no options-menu entry for these yet.
Recipes¶
- Give a map its minimap: set up a new area, bake or paint its image.
- Show something on the minimap: a new kind of marker, or mark a Blueprint actor.
Why it's built this way¶
For programmers
- One native widget.
UXenoCoreMinimapis a UMG widget likeUImage, with no Blueprint. It paints the disc, every marker and the leader in oneOnPaint, so nothing re-lays out, and a marker costs one draw call. - The disc is one material.
M_XenoCore_Minimapis built in C++ byUXenoCoreMinimapTools::BuildMinimapMaterial, never by hand. One Custom HLSL node pans, zooms, rotates, masks and rims it, and draws the camera wedge clipped to the circle. - Markers are a registry, not a component.
UXenoCoreMapMarkerSubsystem(a world subsystem) holds weak pointers. Actors that implementIXenoCoreMapMarkerSourceanswer their kind every frame, which is how a dead enemy or a taken quest disappears with nothing to unregister. - One actor per map, not World Settings, because Lyra's World Settings is host code. It is not spatially loaded, so it is never streamed out.