Quick answer: Niagara System → User Parameters → expose. BP Set Niagara Variable Float → In Variable Name = User.SpawnRate. Emitter samples each frame.
BP node runs on tick. Particle count doesn’t change. Parameter wasn’t marked User; the emitter holds its own copy.
The Symptom
Set Niagara Variable returns success but emitter behavior unchanged.
The Fix
Niagara System editor:
User Parameters tab:
+ Float "SpawnRate" default 100
Particle Spawn module → Spawn Rate:
Plug User.SpawnRate into the rate input
Blueprint:
NiagaraComponent → Set Niagara Variable Float
In Variable Name: "User.SpawnRate"
In Value: 200
User parameters are the public surface of a Niagara System. Internal Particle/Emitter scope params can’t be set from outside.
Verifying
Tick BP node setting User.SpawnRate. Observe particle density change in real time. Niagara Debugger shows the live parameter value.
“User scope. Same name. BP writes through.”
Related Issues
For Niagara collision event, see collision event. For Niagara spawn rate curve, see spawn curve.
User. prefix. Param exposed. Driver works.