World Marker System is a high-performance plugin that brings a robust, out-of-the-box UI marker system to Unreal Engine. Designed with an uncompromising focus on performance, it is highly customizable, incredibly user-friendly, and drops seamlessly into any UE project.
🔗 Preview Video | Demo Builds | Documentation
🔧 How It Works
There are three key components to the marker display system:
1. Marker Manager Subsystem The plugin introduces a subsystem responsible for:
Updating marker coordinates in the UI (X, Y, Z-order based on distance to the player).
Determining marker states (on-screen / off-screen / within the focus area).
Handling interaction with the marker under the cursor (optional).
Automatically enabling and disabling markers that have a specified maximum visibility distance.
2. UMG Marker Widget Any marker can be implemented as a UMG widget inheriting from the plugin's base class, UMageItWorldMarkerWidget (see documentation for details). Widgets receive events regarding their state changes:
Object in "Focus" Radius: Can be used to hide or fade markers located within a specific radius of the crosshair.
Marker in Field of View (FOV): Allows you to change the marker's appearance depending on whether it is visible on-screen or not.
Direction to Marker: Enables the display of a directional arrow (hint) when the marker is outside the player's FOV.
Distance Change: Used to display the exact distance from the player to the marker.
Marker Under Cursor: Optional event for triggering interactions with the marker.
By utilizing these events, you can easily:
Animate the marker.
Dynamically change the marker's content and size.
Implement any custom behavior styles.
3. Marker Scene Component The MageItWorldMarkerComponent scene component handles the placement, activation, and deactivation of the marker within the 3D world. It also contains various configuration parameters, such as assigning the specific UMG widget to display. You can implement different marker activation scenarios:
Enabled by default.
Programmatically activated/deactivated via Blueprints or C++.
Distance-based visibility: Show the marker only when the player is within a certain distance. This uses either a built-in visibility test (optimized by processing a chunk of N markers per tick) or fast, built-in search algorithms (K-D Tree) for maximum performance with massive numbers of markers (detailed in the documentation).
âš¡ Plugin Advantages
High Performance: Core logic is written in pure C++.
Lightweight & User-Friendly: Designed to be clean and efficient.
Works Out-of-the-Box: Requires no complex integration or setup.
Engine-Level Installation: Can be installed directly into the engine to be shared across all your projects.
Deep Customization & Extensibility: While written in C++ for maximum performance, the plugin features a flexible event system. It is easily extendable using either C++ or entirely via Blueprints (no coding knowledge required).
🧩 Core Features
✔ Interaction with Marker Under Cursor The optimized system tracks the marker closest to the cursor, making it incredibly easy to implement:
Tooltips
Highlighting
Object selection
Contextual actions
✔ Screen-Edge Marker "Snapping" When a target goes out of view:
The marker automatically shifts to the edge of the screen.
A specific event is dispatched to the widget (allowing for custom animations or state changes), along with directional information pointing towards the object.
✔ Ready-to-Use Marker Examples The included demo project features various pre-built implementations showcasing different marker behaviors to get you started immediately.