Blueprint API Reference
Overview
Section titled “Overview”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 forEvent.DamageTagand 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) -> UMageItCombatTextRendererBaseLazily 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 Eventcalls 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.
🎯 2. Building the Event Payload
Section titled “🎯 2. Building the Event Payload”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 toHitInfo.GetActor()ifTarget Actorisn’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 ShutdownFires when the local player subsystem is deinitialized (e.g. on logout or PIE end).
🖼️ 4. UMG Renderer Nodes
Section titled “🖼️ 4. UMG Renderer Nodes”Available on Blueprint children of UMageItCombatTextRendererUMG:
Return Widget To Pool(Widget: MageItCombatTextWidget)Returns a widget to the pool for reuse. Called automatically byUMageItCombatTextWidget::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 setsDamageand 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 toDamage(accumulation) and restarts the fade-out timer.Event Fade OutFires when the fade-out timer elapses with no new hits. The default implementation resetsDamageto0, hides the widget, and returns it to the pool.
✨ 5. Niagara Renderer Nodes
Section titled “✨ 5. Niagara Renderer Nodes”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 convertsDamageAmountinto its individual base-10 digits.Event Find Damage Style(EventData: FMageItCombatTextEvent) -> IntegerOverride to pass a style index into the Niagara system (e.g. to trigger a different color/shape for critical hits). Defaults to0.Event Find Scale(EventData: FMageItCombatTextEvent) -> FloatOverride to scale numbers per-event (e.g. bigger text for bigger hits). Defaults to1.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 customFind Sprite Indexoverride can render words like “MISS” or “BLOCK” from the same SDF atlas used for digits.
🎨 6. Slate Renderer Nodes
Section titled “🎨 6. Slate Renderer Nodes”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() -> Vector2DOverride to change how the random lateral drift direction/speed is generated. Defaults to a random angle withinVelocityHalfConeAngleof straight up, at a speed betweenMinVelocityandMaxVelocity.Event Extract Combat Text(EventData: FMageItCombatTextEvent) -> StringOverride to change how the displayed string is derived from the event (e.g. add a+prefix for healing). Defaults to the roundedDamageAmount.Event Extract Text Color/Event Extract Shadow Color(EventData: FMageItCombatTextEvent) -> LinearColorOverride 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.