Skip to content

Blueprint API Reference

The MageIt World Markers plugin is designed to be fully usable within Unreal Engine’s Blueprint visual scripting system. All core logic, math operations, and UI updates are exposed as easy-to-use nodes.

This reference page categorizes the most commonly used Blueprint nodes and events by their context.


🌐 1. Subsystem Nodes (Global Management)

Section titled “🌐 1. Subsystem Nodes (Global Management)”

To use these nodes, you first need to get a reference to the subsystem. Right-click in any Event Graph and search for Get MageItWorldMarkersSubsystem. Drag off the return value to access these functions:

  • Get Visible Markers Returns an array of UMageItWorldMarkerComponent that are currently rendered on the screen (passed the visibility/occlusion checks).
  • Get Registered Markers Returns an array of all markers currently tracked by the system, regardless of whether they are on-screen or off-screen.
  • Get Conditional Visibility Markers Returns an array of markers that have special custom visibility logic applied to them.
  • Set Crosshair Interaction Radius (NewRadius: Float) Dynamically changes how close the crosshair needs to be to a marker to trigger hover events. Useful for changing interaction sizes when the player aims down sights (ADS).
  • Set Focus Radius (NewRadius: Float) Changes the broader screen-center focus area.
  • Update Marker Visibility (MarkerComponent: Target, bVisible: Boolean) Force-updates the visibility state of a specific marker, overriding default occlusion checks.

These nodes are called directly from a MageItWorldMarkerComponent attached to your Actors.

  • Enable Marker / Disable Marker Turns the marker on or off. Disabled markers are removed from the subsystem’s processing queue to save performance.
  • Get Marker Widget Returns the 2D UI Widget (UMageItWorldMarkerWidget) instantiated for this component. You can cast this to your specific Blueprint class to update health bars, names, or icons.
  • Has Valid Marker Widget Returns true if the UI widget has been successfully created. Always check this before trying to update UI data to prevent Null Pointer errors.
  • Get Distance To Player (Returns Float) Returns the exact distance in Unreal Units (cm) to the player’s camera.
  • Get Distance To Player Squared (Returns Float) Returns the squared distance. Highly recommended for performance-heavy checks (like sorting arrays) as it skips the expensive Square Root calculation.

These events are available inside any Blueprint Widget that inherits from UMageItWorldMarkerWidget. They are Event-Driven, meaning they only fire when data actually changes, saving you from using the heavy Event Tick.

  • Event On Screen Visibility Changed (bNewIsVisible) Fires when the marker goes behind a wall or comes into view. Great for triggering fade-in/fade-out UI animations.
  • Event On Crosshair Focus Changed (bNewIsUnderCrosshair) Fires when the player looks directly at (or away from) the marker. Use this to highlight the marker, show a tooltip, or play a sound.
  • Event On Screen Side Changed (NewScreenSide: ETargetScreenSide) Fires when an off-screen marker moves from one edge to another (Top, Bottom, Left, Right). Perfect for updating directional arrows.
  • Event On Position Changed (NewPosition) Fires when the 2D screen coordinates update.
  • Event Destroy Widget Fires right before the widget is deleted. You can override this to play a destruction animation before calling the parent node.

These nodes are static utilities accessible anywhere in your project without needing a reference. Search for them directly in the right-click menu.

  • Project Marker To Screen The core math function. Translates a 3D world position into a 2D screen coordinate. Handles screen-edge clamping (bStickToViewport) and calculates the Angle to the target.
  • Build Markers Tree Takes an array of Marker Components and generates a highly optimized KD-Tree (UMageItMarkersTree) for spatial queries.
  • Radius Search / Radius Outside Search (Called from the generated Tree object). Instantly finds all markers inside or outside a specific 3D sphere without looping through every marker in the game.
  • Range Search (Called from the generated Tree object). Finds all markers within a specific 3D bounding box (FBox).