Blueprint API Reference
Overview
Section titled “Overview”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 UMageItWorldMarkersSubsystem.
Right-click in any Event Graph and search for Get MageItWorldMarkersSubsystem. Drag off the return value to access these functions:
Queries
Section titled “Queries”Get Visible Markers
Returns an array ofUMageItWorldMarkerComponentthat 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.
Runtime Configuration
Section titled “Runtime Configuration”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.
⚓ 2. Component Nodes (The 3D Anchor)
Section titled “⚓ 2. Component Nodes (The 3D Anchor)”These nodes and events belong to the UMageItWorldMarkerComponent attached to your Actors.
Lifecycle & State
Section titled “Lifecycle & State”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.
Distance & Spatial Utilities
Section titled “Distance & Spatial Utilities”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.Set Max Visible Distance(NewDistance: Float)
Changes the visibility distance at runtime, useful for upgrades, buffs, or scopes that should reveal markers from farther away.Get Marker Subsystem(ReturnsUMageItWorldMarkersSubsystem)
A shortcut available directly on the component to fetch the owning player’s marker subsystem, instead of searching for the separate “Get MageItWorldMarkersSubsystem” node.
Overridable Functions (Native Events)
Section titled “Overridable Functions (Native Events)”IsVisibleForPlayer(Returns Boolean)
Override in Blueprint to inject custom visibility logic (e.g., check inventory items or team visibility).IsAlwaysVisibleForPlayer(Returns Boolean)
Override to returntrueto skip distance and conditional visibility tests for this marker.GetTargetPlayerController(Returns APlayerController)
Override to route marker ownership to a specific player controller for splitscreen or spectator modes.
🎨 3. Widget Events (UI Logic)
Section titled “🎨 3. Widget Events (UI Logic)”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.
State Change Events
Section titled “State Change Events”Event On Screen Visibility Changed(bNewIsVisible: Boolean)
Fires when the marker transitions between visible and obscured (or disabled). Great for triggering fade animations.Event On Crosshair Focus Changed(bNewIsUnderCrosshair: Boolean)
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 In Focus Radius Changed(bNewIsInFocusRadius: Boolean)
Fires when the marker enters or leaves the broader screen-center focus area.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: FVector2D)
Fires when the 2D screen coordinates update.Event On Created
Fires once when the widget is fully initialized by the subsystem.Event On Updated
Fires every time the widget receives a general data update from the subsystem.
Overridable Functions
Section titled “Overridable Functions”Update(Position, bNewIsOnScreen, Angle, NewScreenSide, bNewIsInFocusRadius)
Override to intercept and alter raw update data before the widget applies screen positioning.Event Destroy Widget
Fires right before the widget is deleted. You can override this to play a destruction animation before calling the parent node.
🧮 4. Math & Utilities Library
Section titled “🧮 4. Math & Utilities Library”These nodes are static utilities provided by UMageItWorldMarkersLibrary, accessible anywhere in your project without needing an object reference.
Projection
Section titled “Projection”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 theAngleto the target.
KD-Tree Optimization
Section titled “KD-Tree Optimization”Build Markers Tree
Takes an array of Marker Components and generates a highly optimized KD-Tree (UMageItMarkersTree) for spatial queries.Radius Search
(Called from the generated Tree object). Instantly finds all markers inside 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).