#
Quick Start Guide
APStatusFX Suite | Version 1.0
Engine: Unreal Engine 5.7+
Support: https://discord.gg/n5HxmrkpC4
#
1. Installation
- Copy the
APStatusFX/folder into your project'sPlugins/directory. - Regenerate Visual Studio project files (right-click your
.uproject→ Generate Visual Studio project files). - Build the project (Ctrl+B).
- Open the editor — confirm the plugin is enabled under Edit → Plugins → AfterPrime.
#
2. Add the Component
The StatusFX Suite is a single component you add to any replicated actor.
- Open your Character or Pawn Blueprint.
- Click Add Component → search for "AP StatusFX Suite" → add it.
- The component handles all replication automatically — no additional setup required.
That's it. Your actor can now receive, track, and replicate status effects.
#
3. Implement the Interface (Optional but Recommended)
The IAP_StatusFXSuiteTarget interface lets other systems find the component on your actor without hard references.
- Open your actor Blueprint → Class Settings.
- Under Interfaces → Add → search for "StatusFX Suite Target".
- Compile the Blueprint.
- In My Blueprint → Interfaces, double-click GetStatusEffectComponent.
- Drag your AP_StatusFXSuite component from the Components panel → connect it to the Return Value pin.
- Compile.
Now any system can call GetStatusEffectComponent() on your actor to find the component.
#
4. Create an Effect Definition
Status effects are defined as Data Assets — no code required.
- In the Content Browser: Right-click → Miscellaneous → Data Asset.
- Select AP_StatusEffectDefinition as the class.
- Name it with the
SFX_Def_prefix (e.g.,SFX_Def_Poison).
#
Configure the Definition
#
Example: A Simple Poison DoT
#
5. Apply an Effect
#
Method A: Using the Blueprint Library (Recommended)
In any Blueprint graph, search for "Apply Effect to Actor" (under AP > StatusFX > Helpers):
- Target Actor: The actor to apply the effect to (defaults to Self).
- Definition: Your StatusEffectDefinition asset (e.g.,
SFX_Def_Poison). - Instigator: The actor that caused the effect (optional, for tracking).
- Duration Override: Set to -1.0 to use the definition's default duration.
#
Method B: Using the Component Directly
If you have a direct reference to the component:
- Get the AP_StatusFXSuite component reference.
- Call Apply Effect.
- Pass the Definition, Instigator, Duration Override, and Initial Stacks.
Important: All mutation methods (Apply, Remove, Refresh) are server-authoritative. Call them on the server or use Server RPCs from clients.
#
6. Listen for Events
The component provides 6 delegates you can bind in Blueprint:
#
Binding in Blueprint
- Get your AP_StatusFXSuite component reference.
- Drag off it → type "Assign On Effect Applied".
- This creates a bound event node — add your logic (Print String, UI update, gameplay response, etc.).
#
The Snapshot
Most delegates provide an FAP_StatusEffectSnapshot containing:
- EffectTag — The Gameplay Tag identifying the effect.
- InstanceId — Unique ID for this effect instance.
- DefinitionPath — Soft path to the definition asset.
- StackCount — Current number of stacks.
- RemainingDuration — Seconds remaining (-1.0 for infinite).
- TotalDuration — Original duration from the definition.
- ServerTimeApplied — Server timestamp of application.
- Instigator — The actor that applied the effect.
- bIsTimed — Whether this effect has a duration.
- bIsTicking — Whether this effect has periodic ticks.
#
7. Query Active Effects
All query methods work on both server and client (they read replicated state).
#
8. Stacking Policies
Each definition specifies how reapplication behaves:
#
9. Interaction Rules
Effects can interact with each other in two ways:
#
Per-Definition (on the Data Asset)
Removes Effects with Tags: When this effect is applied, remove any active effects matching these tags.
Example: Applying Frozen removes Burning.Blocked by Effects with Tags: This effect cannot be applied while any of these effects are active.
Example: Fortify is blocked while ShieldBreak is active.
#
DataTable Rules (Project Settings)
For complex interactions with immunity grants:
- Create a DataTable using
FAP_EffectInteractionRuleas the row struct. - Each row defines: SourceTag, TargetTagsToRemove, bGrantImmunityToRemoved, ImmunityDuration.
- Assign the DataTable in Project Settings → Plugins → AP StatusFX Suite → Interaction Rules DataTable.
#
10. Immunity System
Effects can grant temporary immunity:
- On the Definition: Check
bGrantImmunityOnExpireand setImmunityDuration. When the effect expires naturally, the target becomes immune to that effect tag for the specified duration. - Via Interaction Rules: DataTable rules can grant immunity to the removed effect tag (e.g., after Burning is removed by Frozen, immune to Burning for 3 seconds).
- Manual: Call
GrantImmunity(Tag, Duration)on the component for custom immunity logic.
#
11. Project Settings
Project Settings → Plugins → AP StatusFX Suite
#
12. Multiplayer Notes
- All mutation methods (Apply, Remove, Refresh, GrantImmunity) are server-authoritative.
- The active effects array replicates to clients via FastArray delta serialization (bandwidth-efficient).
- Clients receive full effect state on late-join — no missed effects.
- Client query methods (HasEffect, GetRemainingDuration, etc.) read replicated state and are always up to date.
- For client-initiated effects, use Server RPCs to request application on the server.
#
13. Demo Content
The plugin ships with a complete demo in Content/Demo/:
- 31 Effect Definitions covering buffs, debuffs, DoTs, CCs, cleanses, and interactions.
- 3 Demo Blueprints: DemoCharacter (keyboard input + buff bar), EffectTrigger (overlap volumes), EffectDispenser (interactable shrines).
- 2 UI Widgets: BuffBar and EffectIcon with countdown timers and icon support.
- 1 Demo Map: Interactive showcase of all features with labeled zones.
- DataTable: Example interaction rules (Frozen/Burning mutual cancellation with immunity).
To test: Open MAP_StatusFX_Demo, set the number of players to 2 (Listen Server), and press Play. Use keys 1–6 to apply effects, 0 to remove all.
All demo content uses the SFX_ prefix and lives in the Demo/ subfolder for easy deletion after evaluation.
#
Next Steps
- Read the API Reference for the complete list of methods, delegates, and types.
- Explore the demo definitions to understand how interactions, stacking, and immunity work together.
- Check the CHANGELOG for version history and planned features.
AfterPrime Systems — Building the Gameplay Foundation