Unreal Engine 5 Niagara VFX Advanced Tutorial
Take a Niagara burst that already sits in your level, expose its particle size as a single user parameter, and change it from the details panel and from Blueprint.
This is a different slice from our earlier Niagara post: that one built a spark burst from an empty system and exposed its burst count, while this one starts with the burst already placed and exposes only one number, particle size, then drives it from Blueprint.
You will not add emitters, modules, or renderers. You will not touch spawn count, velocity, or color. One input on one module becomes one user parameter, and that is the whole change.
Epic’s Niagara documentation describes a Niagara System as the thing you place in the world, and says systems expose User Parameters so an effect can be configured at runtime. Epic’s Blueprint reference also documents a node called Set Niagara Variable (Float), with a Niagara Particle System Component as its target. Those two pieces are what this article relies on.
Unreal moves panels and renames menu entries between versions. When a step below says to look for something, check the Niagara docs for your installed engine if it is not where you expect.
What you should already have
Before you start, confirm these:
- A Niagara System asset with a burst emitter in it. Sparks, dust puffs, or a hit flash all work.
- That system placed in a test level, either as a Niagara component on an actor or dropped in directly.
- The burst plays when you press Play or when you activate it.
If any of those is missing, build the burst first. This slice does not cover it.
Pick a camera position in the level where you can see the burst clearly. You will come back to that spot after every change.
Why size
Size is a good first parameter because the change is easy to see. A burst that is too small for a close-up and too big for a distant hit is a common problem. Exposing size lets you reuse one system in both places instead of duplicating it.
Spawn rate would be the other choice. A burst usually spawns all at once rather than at a rate, so size is the number that fits this effect.
Find the size input
Open the Niagara System asset, not the emitter asset on its own. Forum answers from Epic’s community point out that user parameters cannot be added to a single emitter. They belong to the system.
In the emitter stack, find the module that sets particle size when particles spawn. In many versions, this is the Initialize Particle module, with a sprite size input. The exact label and the size mode options differ between versions. You are looking for the input that sets a particle’s size at spawn.
If the size is set as a two-part value, switch it to a uniform mode if your version offers one. One number is easier to drive than two. If there is no uniform option, check the docs for your version before you continue, since a vector parameter needs a different Blueprint node.
Write down the current size value. You will use it as the default so nothing changes until you want it to.
Make it a user parameter
Each module input has a dropdown that lets you change where the value comes from. One of the options links the input to a parameter instead of a typed number. In recent versions, this choice is often labeled along the lines of reading from a new user parameter. Confirm the wording in the Niagara docs for your engine.
Pick that option and create a float user parameter. Name it something plain, such as SparkSize.
You can also create the parameter first in the system’s user parameters list and then link the input to it. Community answers mention a User Parameters panel reachable from the Window menu in recent versions. If you cannot find it, the Niagara docs for your version will show where the parameter panel lives.
Set the parameter’s default to the size you wrote down. Save and compile the system.
Play the level and look at the burst from your camera spot. It should look the same as before. If it changed, the default does not match the old value, or the input is linked to the wrong parameter.
Change it from the details panel
Select the Niagara component in your level. In the details panel, find the section that lists the system’s user parameters. Community answers call this section Override Parameters in several versions. Your version may group it differently.
Change SparkSize to twice the default. Play. The burst should look bigger. Change it to half. Play again. It should look smaller.
This is the change you came for. One system, two looks, and no edits inside the stack.
If nothing changes, check two things. First, that you saved and compiled the system after linking the input. Second, that the component in the level is using the same system asset you edited.
Drive it from Blueprint
Now set the same number from gameplay. Open the Blueprint of the actor that owns the Niagara component, or the level Blueprint if the system was dropped directly into the level.
Get a reference to the Niagara component. Drag off it and add the Set Niagara Variable (Float) node. Epic’s reference lists its inputs as the target component, an In Variable Name, and an In Value.
Fill them in:
- In Variable Name. The name of your parameter. Community answers disagree on whether to include the User namespace prefix, so check the current node docs and test with your exact name.
- In Value. The size you want, as a float.
Hook the node to an event you can trigger easily. A key press or Begin Play is fine for testing.
Order matters for a burst. A burst reads its size when particles spawn. If you set the value after the burst has already fired, the particles in the air will not change. Set the parameter first, then activate or reset the component so a fresh burst spawns with the new size. Look up the current activate and reset nodes for the Niagara component in Epic’s docs if you are not sure which to use.
Test it
Play the level and trigger your event. Check each case:
- The default value gives the original look.
- A larger value gives a visibly larger burst.
- A smaller value gives a visibly smaller burst.
- Setting the value and then resetting the component shows the new size right away.
- The value in the details panel still works when the Blueprint is not running.
If the Blueprint call does nothing, the most common causes are a misspelled parameter name, a type mismatch such as a float node on a vector parameter, or setting the value after the burst already fired.
Stop here
You now have one existing burst with one exposed number that both the details panel and Blueprint can set. Save the system and commit.
A second parameter, such as color or lifetime, can follow the same steps later. Add one at a time and test each the same way before you add the next.