VFX Handler
The Axiom VFX Handler is a unified framework for defining and triggering all in-game visual effects — including particles, sounds, decals, camera shakes, post-processes, and more — through a single, data-driven system. Artists define effects using modular VFX Actions inside a VFX Data Asset, while engineers trigger them through one consistent interface. The result: faster iteration, cleaner code, and perfectly synchronized visuals across gameplay, animation, and audio.
Real Time
2024
Real Time VFX
VFX Handler
The Axiom VFX Handler is a unified framework for defining and triggering all in-game visual effects — including particles, sounds, decals, camera shakes, post-processes, and more — through a single, data-driven system. Artists define effects using modular VFX Actions inside a VFX Data Asset, while engineers trigger them through one consistent interface. The result: faster iteration, cleaner code, and perfectly synchronized visuals across gameplay, animation, and audio.
Real Time
2024
Real Time VFX
VFX Handler
The Axiom VFX Handler is a unified framework for defining and triggering all in-game visual effects — including particles, sounds, decals, camera shakes, post-processes, and more — through a single, data-driven system. Artists define effects using modular VFX Actions inside a VFX Data Asset, while engineers trigger them through one consistent interface. The result: faster iteration, cleaner code, and perfectly synchronized visuals across gameplay, animation, and audio.
Real Time
2024
Real Time VFX
Introduction - Why We Needed the VFX Handler
Building and synchronizing abilities in Unreal is usually complex.
Designers, animators, engineers, audio, and VFX artists all work in separate Blueprints — each adding timelines, variables, and logic — which quickly leads to duplicated code, bloated graphs, poor reusability, and maintenance issues.
The Axiom VFX Handler solves this by centralizing every visual, audio, and post-process effect into clean, data-driven assets.
Engineers set it up once; from then on, artists and designers trigger effects directly from Gameplay Cues, Blueprints, or AnimNotifies — no installation or manual setup needed.
Running in C++, it’s fast, lightweight, and fully modular, giving artists unified controls for timing, curves, and parameters.
In short, the VFX Handler replaces fragmented Blueprint workflows with a scalable, consistent, and high-performance system that keeps teams aligned and production efficient.
Introduction - Why We Needed the VFX Handler
Building and synchronizing abilities in Unreal is usually complex.
Designers, animators, engineers, audio, and VFX artists all work in separate Blueprints — each adding timelines, variables, and logic — which quickly leads to duplicated code, bloated graphs, poor reusability, and maintenance issues.
The Axiom VFX Handler solves this by centralizing every visual, audio, and post-process effect into clean, data-driven assets.
Engineers set it up once; from then on, artists and designers trigger effects directly from Gameplay Cues, Blueprints, or AnimNotifies — no installation or manual setup needed.
Running in C++, it’s fast, lightweight, and fully modular, giving artists unified controls for timing, curves, and parameters.
In short, the VFX Handler replaces fragmented Blueprint workflows with a scalable, consistent, and high-performance system that keeps teams aligned and production efficient.
Introduction - Why We Needed the VFX Handler
Building and synchronizing abilities in Unreal is usually complex.
Designers, animators, engineers, audio, and VFX artists all work in separate Blueprints — each adding timelines, variables, and logic — which quickly leads to duplicated code, bloated graphs, poor reusability, and maintenance issues.
The Axiom VFX Handler solves this by centralizing every visual, audio, and post-process effect into clean, data-driven assets.
Engineers set it up once; from then on, artists and designers trigger effects directly from Gameplay Cues, Blueprints, or AnimNotifies — no installation or manual setup needed.
Running in C++, it’s fast, lightweight, and fully modular, giving artists unified controls for timing, curves, and parameters.
In short, the VFX Handler replaces fragmented Blueprint workflows with a scalable, consistent, and high-performance system that keeps teams aligned and production efficient.
Implementation
Data-Driven Architecture — Each effect is defined step-by-step through VFX Actions (e.g., spawn Niagara, trigger sound, apply decal, blend post-process).
Separation of Art & Code — Source code stays fixed; artists edit Data Assets to update or expand effects.
Native Integration — Works directly with Unreal Engine’s native systems (Niagara, Audio, Camera, etc.) and supports asynchronous loading and event-based triggers.
Extensible Framework — New custom Action classes can be added without reworking the core system.
Implementation
Data-Driven Architecture — Each effect is defined step-by-step through VFX Actions (e.g., spawn Niagara, trigger sound, apply decal, blend post-process).
Separation of Art & Code — Source code stays fixed; artists edit Data Assets to update or expand effects.
Native Integration — Works directly with Unreal Engine’s native systems (Niagara, Audio, Camera, etc.) and supports asynchronous loading and event-based triggers.
Extensible Framework — New custom Action classes can be added without reworking the core system.
Implementation
Data-Driven Architecture — Each effect is defined step-by-step through VFX Actions (e.g., spawn Niagara, trigger sound, apply decal, blend post-process).
Separation of Art & Code — Source code stays fixed; artists edit Data Assets to update or expand effects.
Native Integration — Works directly with Unreal Engine’s native systems (Niagara, Audio, Camera, etc.) and supports asynchronous loading and event-based triggers.
Extensible Framework — New custom Action classes can be added without reworking the core system.
Key Advantages:
Unified Workflow: One consistent process for every type of effect.
Artist Empowerment: New effects require no engineering time.
Synchronization: Visuals, audio, and camera events remain perfectly in sync.
Performance & Scalability: Proven in production with soft async loading.
Clean Code: Minimizes communication overhead between art and engineering.
Key Advantages:
Unified Workflow: One consistent process for every type of effect.
Artist Empowerment: New effects require no engineering time.
Synchronization: Visuals, audio, and camera events remain perfectly in sync.
Performance & Scalability: Proven in production with soft async loading.
Clean Code: Minimizes communication overhead between art and engineering.
Key Advantages
Unified Workflow: One consistent process for every type of effect.
Artist Empowerment: New effects require no engineering time.
Synchronization: Visuals, audio, and camera events remain perfectly in sync.
Performance & Scalability: Proven in production with soft async loading.
Clean Code: Minimizes communication overhead between art and engineering.
System Architecture
The Axiom VFX Handler Component is the core of the framework. Each Data Asset contains multiple groups of VFX Actions. Each Action performs one single task, such as spawning a Niagara, modifying a material, or triggering audio events.
Example: DA_VFX_Dash may contain groups such as Dash Cast, Dash Start Loop, Dash End Loop, Dash Sword Attack, and Dash AOE. Each group consists of several VFX Actions that define the complete effect.
This architecture ensures modularity, consistency, and cross-department synchronization across gameplay, animation, and sound.
System Architecture
The Axiom VFX Handler Component is the core of the framework. Each Data Asset contains multiple groups of VFX Actions. Each Action performs one single task, such as spawning a Niagara, modifying a material, or triggering audio events.
Example: DA_VFX_Dash may contain groups such as Dash Cast, Dash Start Loop, Dash End Loop, Dash Sword Attack, and Dash AOE. Each group consists of several VFX Actions that define the complete effect.
This architecture ensures modularity, consistency, and cross-department synchronization across gameplay, animation, and sound.
System Architecture
The Axiom VFX Handler Component is the core of the framework. Each Data Asset contains multiple groups of VFX Actions. Each Action performs one single task, such as spawning a Niagara, modifying a material, or triggering audio events.
Example: DA_VFX_Dash may contain groups such as Dash Cast, Dash Start Loop, Dash End Loop, Dash Sword Attack, and Dash AOE. Each group consists of several VFX Actions that define the complete effect.
This architecture ensures modularity, consistency, and cross-department synchronization across gameplay, animation, and sound.


Pool VFX Handler Component
The Pool VFX Handler Component extends the system by maintaining a pool of reusable VFX Handler Components. It is ideal for scenarios with multiple concurrent or stateful effects, such as complex characters or destructible systems.
It keeps a list of slots, each slot managing a VFX Handler Component. Slots are defined with names, Data Assets, and an array of states (e.g., active/inactive). This enables easy triggering and stopping of effects without blueprint clutter.
Example: The Chracter Body Parts VFX uses a Pool VFX Handler to manage effects for each body part (Torso, Arms, Legs). Instead of spawning separate handlers, each slot corresponds to one part, simplifying control and performance.
Pool VFX Handler Component
The Pool VFX Handler Component extends the system by maintaining a pool of reusable VFX Handler Components. It is ideal for scenarios with multiple concurrent or stateful effects, such as complex characters or destructible systems.
It keeps a list of slots, each slot managing a VFX Handler Component. Slots are defined with names, Data Assets, and an array of states (e.g., active/inactive). This enables easy triggering and stopping of effects without blueprint clutter.
Example: The Chracter Body Parts VFX uses a Pool VFX Handler to manage effects for each body part (Torso, Arms, Legs). Instead of spawning separate handlers, each slot corresponds to one part, simplifying control and performance.
Pool VFX Handler Component
The Pool VFX Handler Component extends the system by maintaining a pool of reusable VFX Handler Components. It is ideal for scenarios with multiple concurrent or stateful effects, such as complex characters or destructible systems.
It keeps a list of slots, each slot managing a VFX Handler Component. Slots are defined with names, Data Assets, and an array of states (e.g., active/inactive). This enables easy triggering and stopping of effects without blueprint clutter.
Example: The Chracter Body Parts VFX uses a Pool VFX Handler to manage effects for each body part (Torso, Arms, Legs). Instead of spawning separate handlers, each slot corresponds to one part, simplifying control and performance.
Key Advantages:
Efficient resource reuse
Cleaner blueprints
Centralized VFX logic
Easier state transitions
Extensible through blueprint inheritance
Key Advantages:
Efficient resource reuse
Cleaner blueprints
Centralized VFX logic
Easier state transitions
Extensible through blueprint inheritance
Key Advantages:
Efficient resource reuse
Cleaner blueprints
Centralized VFX logic
Easier state transitions
Extensible through blueprint inheritance
Assets and Concepts
A full VFX usually consists of one or more of the following actions:
Assets and Concepts
A full VFX usually consists of one or more of the following actions:
Assets and Concepts
A full VFX usually consists of one or more of the following actions:
Spawn Niagara systems,
Make material instance dynamics and animate their parameters,
Spawn meshes with a stencil value,
Swap materials with a smooth transition,
And much more…
Spawn Niagara systems,
Make material instance dynamics and animate their parameters,
Spawn meshes with a stencil value,
Swap materials with a smooth transition,
And much more…
Spawn Niagara systems,
Make material instance dynamics and animate their parameters,
Spawn meshes with a stencil value,
Swap materials with a smooth transition,
And much more…
We call these individual actions VFX Action.
We can affirm that a full VFX is a Group of VFX Actions.
Usually, we don't have VFX isolated from each other. For instance, it would make sense to have all the VFX associated with a Dash Attack in a single asset.
Therefore, we have three levels:
A VFX Action, which executes a single action (single responsibility principle) like changing a material, spawning a Niagara asset, and so on.
We call these individual actions VFX Action.
We can affirm that a full VFX is a Group of VFX Actions.
Usually, we don't have VFX isolated from each other. For instance, it would make sense to have all the VFX associated with a Dash Attack in a single asset.
Therefore, we have three levels:
A VFX Action, which executes a single action (single responsibility principle) like changing a material, spawning a Niagara asset, and so on.
We call these individual actions VFX Action.
We can affirm that a full VFX is a Group of VFX Actions.
Usually, we don't have VFX isolated from each other. For instance, it would make sense to have all the VFX associated with a Dash Attack in a single asset.
Therefore, we have three levels:
A VFX Action, which executes a single action (single responsibility principle) like changing a material, spawning a Niagara asset, and so on.


A Group of VFX actions that define a full VFX In the below screenshot, the Group of VFX Actions that describes the full VFX associated to Dash AOE:
A Group of VFX actions that define a full VFX In the below screenshot, the Group of VFX Actions that describes the full VFX associated to Dash AOE:
A Group of VFX actions that define a full VFX In the below screenshot, the Group of VFX Actions that describes the full VFX associated to Dash AOE:


A Collection of Groups of VFX Actions, which contains all the VFX related to a specific aspect (for instance, all the Dash VFX). It stores in a Data Asset.
A Collection of Groups of VFX Actions, which contains all the VFX related to a specific aspect (for instance, all the Dash VFX). It stores in a Data Asset.
A Collection of Groups of VFX Actions, which contains all the VFX related to a specific aspect (for instance, all the Dash VFX). It stores in a Data Asset.


The VFX Artist makes a data asset whose type is XVActionGroupDataAsset that represents a collection of full VFX.
Each row in the above figure is a full VFX, that means a Group of Actions. Each group of action is a sequence of actions to trigger the full VFX
From the programmer’s point of view, it’s straightforward to integrate a full VFX. Just call the Trigger method with the VFX's name.
The VFX Artist makes a data asset whose type is XVActionGroupDataAsset that represents a collection of full VFX.
Each row in the above figure is a full VFX, that means a Group of Actions. Each group of action is a sequence of actions to trigger the full VFX
From the programmer’s point of view, it’s straightforward to integrate a full VFX. Just call the Trigger method with the VFX's name.
The VFX Artist makes a data asset whose type is XVActionGroupDataAsset that represents a collection of full VFX.
Each row in the above figure is a full VFX, that means a Group of Actions. Each group of action is a sequence of actions to trigger the full VFX
From the programmer’s point of view, it’s straightforward to integrate a full VFX. Just call the Trigger method with the VFX's name.


Or using an AnimNotify:
Or using an AnimNotify:
Or using an AnimNotify:


Or executing a GameplayCue from Gameplay Ability System:
Or executing a GameplayCue from Gameplay Ability System:
Or executing a GameplayCue from Gameplay Ability System:


VFX Actions Library
Each VFX Action executes a specific function, such as spawning visual components, changing materials, or playing audio. Common examples include:
VFX Actions Library
Each VFX Action executes a specific function, such as spawning visual components, changing materials, or playing audio. Common examples include:
VFX Actions Library
Each VFX Action executes a specific function, such as spawning visual components, changing materials, or playing audio. Common examples include:
Actions can be Instant, Timed, Reversed, Looping, Ping-Pong, or Infinite, allowing fine control over timing, synchronization, and animation of parameters.
Actions can be Instant, Timed, Reversed, Looping, Ping-Pong, or Infinite, allowing fine control over timing, synchronization, and animation of parameters.
Actions can be Instant, Timed, Reversed, Looping, Ping-Pong, or Infinite, allowing fine control over timing, synchronization, and animation of parameters.
VFX Action
Description
VFX Action
Description
VFX Action
Description
Ak Event
Post an Audio Kinetic event
Ak Event
Post an Audio Kinetic event
Ak Event
Post an Audio Kinetic event
Camera Shake
Execute a camera shake
Camera Shake
Execute a camera shake
Camera Shake
Execute a camera shake
Change Mesh
Change the mesh asset of a mesh component
Change Mesh
Change the mesh asset of a mesh component
Change Mesh
Change the mesh asset of a mesh component
Change Skeletal Animation
Change the anim asset of a skeletal mesh component
Change Skeletal Animation
Change the anim asset of a skeletal mesh component
Change Skeletal Animation
Change the anim asset of a skeletal mesh component
Debug
Outputs a text on the screen
Debug
Outputs a text on the screen
Debug
Outputs a text on the screen
Detach Component
It detaches a primitive component from its parent
Detach Component
It detaches a primitive component from its parent
Detach Component
It detaches a primitive component from its parent
Dissolve VFX
It executes a full dissolving VFX
Dissolve VFX
It executes a full dissolving VFX
Dissolve VFX
It executes a full dissolving VFX
Force Feedback
Posting a haptic effect to the controller
Force Feedback
Posting a haptic effect to the controller
Force Feedback
Posting a haptic effect to the controller
Material Parameter Collection
It sets and animates parameters in a MPC
Material Parameter Collection
It sets and animates parameters in a MPC
Material Parameter Collection
It sets and animates parameters in a MPC
Material Params Lerp
It does a linear interpolation in a material dynamic instance
Material Params Lerp
It does a linear interpolation in a material dynamic instance
Material Params Lerp
It does a linear interpolation in a material dynamic instance
Material
It changes materials, makes material instance dynamics, animates parameters and more
Material
It changes materials, makes material instance dynamics, animates parameters and more
Material
It changes materials, makes material instance dynamics, animates parameters and more
Niagara User Parameters
It sets and animates user parameters
Niagara User Parameters
It sets and animates user parameters
Niagara User Parameters
It sets and animates user parameters
Niagara User Parameters Lerp
It does a linear interpolation in a Niagara
Niagara User Parameters Lerp
It does a linear interpolation in a Niagara
Niagara User Parameters Lerp
It does a linear interpolation in a Niagara
Physical Surface Switcher
It executes another VFX Action depending on the physical surface
Physical Surface Switcher
It executes another VFX Action depending on the physical surface
Physical Surface Switcher
It executes another VFX Action depending on the physical surface
Postprocess
It posts and animates the parameters of a postprocess material. It handles by a custom PP actors cheaper based on layers
Postprocess
It posts and animates the parameters of a postprocess material. It handles by a custom PP actors cheaper based on layers
Postprocess
It posts and animates the parameters of a postprocess material. It handles by a custom PP actors cheaper based on layers
Precondition Switcher
It executes an action group or others depending on some conditions
Precondition Switcher
It executes an action group or others depending on some conditions
Precondition Switcher
It executes an action group or others depending on some conditions
Predefined Dissolve
It executes a full dissolving VFX described in a data asset
Predefined Dissolve
It executes a full dissolving VFX described in a data asset
Predefined Dissolve
It executes a full dissolving VFX described in a data asset
Render Settings
It changes some render settings in a primitive component
Render Settings
It changes some render settings in a primitive component
Render Settings
It changes some render settings in a primitive component
SPSS
Scattering particles on screen space
SPSS
Scattering particles on screen space
SPSS
Scattering particles on screen space
Set Stencil
It changes the stencil values of a mesh component
Set Stencil
It changes the stencil values of a mesh component
Set Stencil
It changes the stencil values of a mesh component
Spawn
Spawn almost anything actors, lights, niagaras, skeletal and static meshes and more
Spawn
Spawn almost anything actors, lights, niagaras, skeletal and static meshes and more
Spawn
Spawn almost anything actors, lights, niagaras, skeletal and static meshes and more
Stamp Skinned Decal
It stamps a skinned decal on a skeletal mesh component
Stamp Skinned Decal
It stamps a skinned decal on a skeletal mesh component
Stamp Skinned Decal
It stamps a skinned decal on a skeletal mesh component
Meta VFX Actions
To stop, resume, trigger another group ost anything actors, lights, niagaras, skeletal and static mshes and more
Meta VFX Actions
To stop, resume, trigger another group ost anything actors, lights, niagaras, skeletal and static mshes and more
Meta VFX Actions
To stop, resume, trigger another group ost anything actors, lights, niagaras, skeletal and static mshes and more
Integration and Timing
Custom AnimNotifies, Blueprint nodes, and GameplayCues allow effortless triggering of VFX Handler Components directly from animation sequences, scripts, or gameplay events — ensuring tight synchronization between animation, gameplay logic, and visuals.
Integration Methods
Anim Notifies – trigger from animation timelines.
Gameplay Cues – integrated with Gameplay Ability.
Blueprint Function Library – trigger from logic or scripts.
Pool VFX Handler – handle multiple concurrent effects.
Spawn Policy
Spawn if not exist — Reuse existing tagged component if available.
Spawn always — Always create a new handler.
Reuse previous — Only triggers if existing component with tag is found.
Destroy Policy
Keep — The component remains after VFX ends.
Destroy after actions end — Destroys after all actions complete.
Destroy immediately — Removes component when timed event ends.
Behavior at End
Do Nothing — No change at the end.
Stop — Stops all active actions.
Trigger Another Group — Starts a new action group on completion.
Trigger Latent Action — Wakes latent actions waiting to be triggered.
Integration and Timing
Custom AnimNotifies, Blueprint nodes, and GameplayCues allow effortless triggering of VFX Handler Components directly from animation sequences, scripts, or gameplay events — ensuring tight synchronization between animation, gameplay logic, and visuals.
Integration Methods
Anim Notifies – trigger from animation timelines.
Gameplay Cues – integrated with Gameplay Ability.
Blueprint Function Library – trigger from logic or scripts.
Pool VFX Handler – handle multiple concurrent effects.
Spawn Policy
Spawn if not exist — Reuse existing tagged component if available.
Spawn always — Always create a new handler.
Reuse previous — Only triggers if existing component with tag is found.
Destroy Policy
Keep — The component remains after VFX ends.
Destroy after actions end — Destroys after all actions complete.
Destroy immediately — Removes component when timed event ends.
Behavior at End
Do Nothing — No change at the end.
Stop — Stops all active actions.
Trigger Another Group — Starts a new action group on completion.
Trigger Latent Action — Wakes latent actions waiting to be triggered.
Integration and Timing
Custom AnimNotifies, Blueprint nodes, and GameplayCues allow effortless triggering of VFX Handler Components directly from animation sequences, scripts, or gameplay events — ensuring tight synchronization between animation, gameplay logic, and visuals.
Integration Methods
Anim Notifies – trigger from animation timelines.
Gameplay Cues – integrated with Gameplay Ability.
Blueprint Function Library – trigger from logic or scripts.
Pool VFX Handler – handle multiple concurrent effects.
Spawn Policy
Spawn if not exist — Reuse existing tagged component if available.
Spawn always — Always create a new handler.
Reuse previous — Only triggers if existing component with tag is found.
Destroy Policy
Keep — The component remains after VFX ends.
Destroy after actions end — Destroys after all actions complete.
Destroy immediately — Removes component when timed event ends.
Behavior at End
Do Nothing — No change at the end.
Stop — Stops all active actions.
Trigger Another Group — Starts a new action group on completion.
Trigger Latent Action — Wakes latent actions waiting to be triggered.
Audio Integration
The Ak Event VFX Action allows triggering Wwise audio events within the same unified framework. It supports Play/Stop logic, attachment to skeletal components, and timed or instant execution modes.
Audio Integration
The Ak Event VFX Action allows triggering Wwise audio events within the same unified framework. It supports Play/Stop logic, attachment to skeletal components, and timed or instant execution modes.
Audio Integration
The Ak Event VFX Action allows triggering Wwise audio events within the same unified framework. It supports Play/Stop logic, attachment to skeletal components, and timed or instant execution modes.
Advanced use cases include:
Cage Mode – Posts AkEvents for multiple vertices (e.g., arrow impacts).
Variants – Posts different events based on tags.
Preconditions – Conditional playback rules.
Advanced use cases include:
Cage Mode – Posts AkEvents for multiple vertices (e.g., arrow impacts).
Variants – Posts different events based on tags.
Preconditions – Conditional playback rules.
Advanced use cases include:
Cage Mode – Posts AkEvents for multiple vertices (e.g., arrow impacts).
Variants – Posts different events based on tags.
Preconditions – Conditional playback rules.
The Axiom VFX Handler System provides a single, extensible framework for managing all gameplay, animation, and audio effects. Its modular architecture, pooling system, and integration tools streamline VFX development while keeping code clean and maintainable.
Unified, scalable, and data-driven — the VFX Handler defines how Axiom builds synchronized, performant effects across all projects.
The Axiom VFX Handler System provides a single, extensible framework for managing all gameplay, animation, and audio effects. Its modular architecture, pooling system, and integration tools streamline VFX development while keeping code clean and maintainable.
Unified, scalable, and data-driven — the VFX Handler defines how Axiom builds synchronized, performant effects across all projects.
The Axiom VFX Handler System provides a single, extensible framework for managing all gameplay, animation, and audio effects. Its modular architecture, pooling system, and integration tools streamline VFX development while keeping code clean and maintainable.
Unified, scalable, and data-driven — the VFX Handler defines how Axiom builds synchronized, performant effects across all projects.
Let's work
together
Let's create something beautiful together! At AXIOM VFX, we believe in collaboration to bring your unique vision to life. Get in touch and let's get started!
Let's work
together
Let's create something beautiful together! At AXIOM VFX, we believe in collaboration to bring your unique vision to life. Get in touch and let's get started!
Let's work
together
Let's create something beautiful together! At AXIOM VFX, we believe in collaboration to bring your unique vision to life. Get in touch and let's get started!
Headquarters
Austin, Texas (USA)
Valencia (ESP)
Headquarters
Austin, Texas (USA)
Valencia (ESP)
©2023 AXIOM VFX, INC
Headquarters
Austin, Texas (USA)
Valencia (ESP)
©2023 AXIOM VFX, INC


