Use the maps during play
Click the active game viewport first. Input belongs to its local player; typing a waypoint name does not toggle the map. Use the controls below with the world map open and its settings or waypoint prompt closed unless stated otherwise.
| Action | Keyboard / mouse | Controller |
|---|---|---|
| Toggle world map | M | Special Left / View |
| Close the top surface | Escape; dismiss a prompt or settings before the map | Right face button / B / Circle |
| Pan world map | Drag the map | D-pad or left stick |
| Zoom | Hover either map and scroll. Minimap: 75–200%; world map: 25–400%. | Left shoulder zooms out; right shoulder zooms in |
| Move a window | Shift-drag a map window; the standalone launcher can also be Shift-dragged | Use the settings and host UI |
| Create a waypoint | Ctrl-click inside the world map and complete the naming prompt | Create through your host Blueprint UI |
| Select a waypoint | Click an existing waypoint | Left face button cycles saved waypoints |
| Open selected waypoint actions | Use its waypoint menu | Bottom face button |
| Center on player | Use your host view command or map UI | Top face button |
| Show world waypoint indicators | Use the minimap eye button or Waypoints in world setting | Use the settings UI |
Customize appearance without losing progress
Open the gear and choose World Map or Minimap before changing appearance. Each map retains its own values. Use minimap colors / Use world map colors copies brightness and saturation once; later edits remain independent.
Appearance, marker visibility, minimap zoom and window placement save automatically through the settings path. World-map pan and zoom are session controls. A settings save is separate from a progress save; inspect the matching receipt in your Blueprint UI if you need confirmation.
| Setting | Range / behavior |
|---|---|
| Window scale, width, height | 50–150% each |
| Map image / background / border / settings back glass opacity | 0–100% each |
| Map brightness | 25–200% |
| Map saturation | 0–200% |
| Border thickness | 0–12 |
| Text scale | 60–180% |
| Marker scale | 50–200% |
| Map text / direction labels | Independent toggles |
| Map shape | Square / adjustable, rounded, circle; octagon additionally available for minimap |
| Fog reveal radius | 10–200 m; previously explored cells are retained |
| Orientation | World map: landscape or north up; changing orientation centers pan |
| Fit world map | 100% world zoom and centered pan; appearance retained |
| Fit small maps / reset minimap zoom | Minimap settings; reset zoom returns to 100% |
| Clock | Minimap local system time; 12- or 24-hour format |
| Category filters | Objectives, Quests, Vendors, Landmarks, Party, Enemies, My waypoints, Resources; applies to maps and compass |
| Reset appearance | Resets both appearances; preserves window positions, exploration and waypoints |
| Reset position | Centers the selected map window |
| Reset standalone launcher position | Restores its responsive factory anchor; does not move a shared suite holder |
Hide a category to filter its presentation; this does not delete saved markers. Remove selected waypoint deletes that selected entry. Clear my waypoints removes all user waypoints. Keep cursor visible is a standalone opt-in; a suite coordinator controls its own input.
Practical route: use an authored map image
1. Enable Show Plugin Content, duplicate BP_RMC_BuyerRegion into your game Content, and place your copy in the existing level. Keep the plugin example as a reference.
2. On MapSource, assign a north-up OverviewTexture. For fixed bounds, clear Use Owner Location as Center and enter the XY WorldCenter and positive XY half extents in centimeters. Set the source active and choose its priority deliberately when several regions overlap.
3. Call Start Buyer Navigation with the exact owning local PlayerController. Branch on readiness and operation results; wait for a valid player pose before showing a position or heading.
4. Check two known landmarks on opposite sides of the level. North is world +X, east is world +Y. UV (0.75,0.25) maps to XY (6000,4000) when center is (0,0) and half extents are (12000,8000). The ground trace determines Z when a suitable surface is found.
5. Create and rename a waypoint, retain its accepted GUID, save progress with the progress receipt, travel away and back, then restart the game. Confirm the same ID and name load. Verify settings independently through their settings receipt.
The existing Blueprint guide contains the saved wrapper wiring and result pins. The plugin includes the calibration scene and direct-caller Blueprint under RPGMapsCompass/Examples; the source validation project remains separate.
Practical route: generate a native capture
1. Place a Map Source Actor in your existing level, or create a Blueprint subclass of it. Inspect its MapSource component bounds before generating the overview.
2. Use automatic landscape discovery for loaded landscape terrain. For deliberately selected mesh terrain, tag the intended surfaces RMC.MapGeometry and the intended bounds RMC.MapBounds. Exclude unwanted scene meshes with RMC.MapIgnore. Discovery does not force-load World Partition cells.
3. Start with material base-color capture for opaque or masked surfaces. Call Capture Level Overview after changing topology, bounds or relief settings. Call Refresh Captured Image after surface material colors change without rebuilding terrain relief. Capture Live Minimap refreshes the player-centered image.
4. Check DetectionStatus, SampleCoverage and CapturedSceneMeshCount alongside the actual image. Confirm two landmarks, readable terrain colors and alignment with your markers. A nonempty render target alone is insufficient.
5. Legacy rendered terrain materials applies when material base-color mode is disabled. Tune CaptureExposureBias for this lit route; negative values darken bright capture output. Inspect the image again after the change.
Current native base-color orientation is verified against the northeast/southwest landmarks. Legacy lit exposure and world-map UI image proportions remain unapproved. No final gallery-quality claim is made.
Troubleshoot a concrete symptom
| Symptom | Check and next action |
|---|---|
| M or controller input does nothing | Focus the active game viewport; use the correct owning local controller. Finish any text prompt. Check that your host coordinator has not claimed the surface/input contract. |
| Ready is false or player appears at origin | Check local controller, spawned pawn and registered root component in the current world. Wait for readiness. The corrected raw example has passed its scoped runtime test. OwnerReady checks reference validity; check player-pose and progress readiness separately. |
| Image and markers do not align | Check north-up image orientation, XY center and half extents. Distinguish source UV calibration from landscape viewport rotation. Test opposite known landmarks. |
| Native capture is empty | Check loaded geometry, actor tags, active source and bounds, then Capture Level Overview. Inspect diagnostic fields and the actual image. |
| Lit capture is washed out | Confirm which capture mode is active. In the legacy lit route reduce CaptureExposureBias and recapture; compare landmark colors. Do not treat this as a packaged DX12 fix. |
| A waypoint is absent | Check My waypoints category filter, selected source, visibility settings and the loaded progress state. Use its stable GUID rather than its array index. |
| Settings changed but progress did not save | Read the separate settings and progress receipts. On progress write failure retain pending state and retry after the storage problem is corrected. Do not overwrite protected newer-schema or unreadable progress. |
| Exploration reveals the whole small level | Reduce the reveal radius; the settings slider spans 10–200 m. Existing explored cells remain revealed. |
| Map is off-center or oversized | Fit world map restores session zoom/pan. Reset position centers the selected window. Adjust scale, width and height rather than recapturing the map. |
| Packaged Win64 DX12 errors | Preserve the failing raw log. ONNX GetLastError 206 is a path-handling lead; compute PSO 80070057 is separately unresolved. Editor success does not establish packaged success. Do not repeat an unchanged launch as new proof. |
