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.