Skip to content

Blueprint API Reference

The MageIt Combat Text plugin is designed to be fully usable within Unreal Engine’s Blueprint visual scripting system. All routing logic, batching, and animation are exposed as easy-to-use nodes and overridable events.

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 a reference to the UMageItCombatTextSubsystem. Right-click in any Event Graph and search for Get MageItCombatTextSubsystem. Drag off the return value to access these functions:

  • Add Damage Event (Event: FMageItCombatTextEvent) The single entry point for spawning combat text. Looks up the renderer registered for Event.DamageTag and forwards the event to it. If no renderer resolves for the tag (or any of its parent tags), the event is dropped and a warning is logged.
  • Get Renderer (DamageTag: FGameplayTag) -> UMageItCombatTextRendererBase Lazily loads and initializes the renderer registered for the given tag (or the nearest registered parent tag), caching it for subsequent calls. You rarely need to call this directly — Add Damage Event calls it for you. Renderers registered with b Initialize At Begin Play (FMageItCombatTextRendererEntry) are already initialized by the time the subsystem exists, so this simply returns the cached instance for them.

FMageItCombatTextEvent is the struct you pass to Add Damage Event:

  • Location (Vector): World-space spawn position.
  • DamageAmount (Float): The number that gets displayed (and drives Niagara sprite/scale lookups).
  • DamageTag (GameplayTag): Determines which renderer handles this event.
  • Target Actor (Actor): The actor this number belongs to. Required by the UMG renderer for tracking and accumulation.
  • Hit Info (HitResult): Optional hit data; the UMG renderer will fall back to HitInfo.GetActor() if Target Actor isn’t set.

🧩 3. Renderer Base Events (All Renderers)

Section titled “🧩 3. Renderer Base Events (All Renderers)”

These BlueprintNativeEvents exist on UMageItCombatTextRendererBase and are inherited by all three concrete renderers. Override them in a Blueprint child class to inject custom setup/teardown logic.

  • Event Initialize (OwningSubsystem: LocalPlayerSubsystem) Fires once, the first time the renderer is lazily created. Always call the parent implementation first if you override it — it caches the owning subsystem and player controller.
  • Event Render Damage (EventData: FMageItCombatTextEvent) Fires for every event routed to this renderer.
  • Event Shutdown Fires when the local player subsystem is deinitialized (e.g. on logout or PIE end).

Available on Blueprint children of UMageItCombatTextRendererUMG:

  • Return Widget To Pool (Widget: MageItCombatTextWidget) Returns a widget to the pool for reuse. Called automatically by UMageItCombatTextWidget::FadeOut — you typically don’t need to call this yourself unless you’re implementing custom widget lifecycle logic.

Widget Events (on UMageItCombatTextWidget)

Section titled “Widget Events (on UMageItCombatTextWidget)”

These are available inside any Blueprint Widget that inherits from UMageItCombatTextWidget:

  • Event Fade In (EventData: FMageItCombatTextEvent) Fires when a widget is first assigned to a target. The default implementation sets Damage and starts the fade-out timer.
  • Event Update Damage (EventData: FMageItCombatTextEvent) Fires when a new hit lands on a target that already has an active widget. The default implementation adds to Damage (accumulation) and restarts the fade-out timer.
  • Event Fade Out Fires when the fade-out timer elapses with no new hits. The default implementation resets Damage to 0, hides the widget, and returns it to the pool.

Available on Blueprint children of UMageItCombatTextRendererNiagara:

  • Event Find Sprite Index (EventData: FMageItCombatTextEvent) -> Array<Integer> Override to control which SDF sprite is used per digit/character. The default implementation converts DamageAmount into its individual base-10 digits.
  • Event Find Damage Style (EventData: FMageItCombatTextEvent) -> Integer Override to pass a style index into the Niagara system (e.g. to trigger a different color/shape for critical hits). Defaults to 0.
  • Event Find Scale (EventData: FMageItCombatTextEvent) -> Float Override to scale numbers per-event (e.g. bigger text for bigger hits). Defaults to 1.0.
  • Convert String To Alphabet Indices (InputString: String, StartIndex: Integer) -> Array<Integer> (Blueprint Pure, static) Converts a string’s letters into sequential sprite indices, so a custom Find Sprite Index override can render words like “MISS” or “BLOCK” from the same SDF atlas used for digits.

Available on Blueprint children of UMageItCombatTextRendererSlate. These drive the built-in pop-in / pop-out / float-and-fade animation without any UMG widget cost:

  • Event Get Velocity Direction () -> Vector2D Override to change how the random lateral drift direction/speed is generated. Defaults to a random angle within VelocityHalfConeAngle of straight up, at a speed between MinVelocity and MaxVelocity.
  • Event Extract Combat Text (EventData: FMageItCombatTextEvent) -> String Override to change how the displayed string is derived from the event (e.g. add a + prefix for healing). Defaults to the rounded DamageAmount.
  • Event Extract Text Color / Event Extract Shadow Color (EventData: FMageItCombatTextEvent) -> LinearColor Override to color numbers based on event data (e.g. red for damage, green for healing).
  • Event Prepare Active Event (ActiveEvent: FMageItCombatTextActiveSlateEvent) Fires once when an event starts animating. Override to set up custom per-event animation parameters.
  • Event Process Default Animation (ActiveEvent: FMageItCombatTextActiveSlateEvent, BaseScreenPos: Vector2D, DPIScale: Float) Fires every tick for every active event. Override to completely replace the built-in pop/float/fade curve with your own.