How can I spawn a single particle in Niagara upon input?

Hi, I would like to create a Niagara system that has one emitter, but that spawns particles based on input (like a keypress)

The end result would be, for example, a ribbon trail with particles being added to it by events, lengthening the resulting single ribbon.

I know now that the moduels offered are spawning based on time (Spawn Rate), based on amount in an instantaneous burst, or based on units moved, but i need something like an instantaneous one thhat can be retriggered from a Blueprint without resetting the emitter.

Possibly a custom spawn module is needed, but if anyone has ideas how to do this, or another way, it would be much appreciated.

So I’m noob with niagara but I think I got it working.

  1. Make a basic niagara ribbon emitter, and remove spawn modules

  2. Add user exposed parameter “SpawnCounter” int32

  3. Add emitter attributes “SpawnCounter” and “UserSpawnCounter” int32

  4. Create new scratch module in EmitterUpdate section. I copied the output node from SpawnRate module, and fiddled the following :

  1. For some reason the scratch pad cannot access user parameters, so that’s why we use UserSpawnRate at emitter level. Add a generic set module before scratch pad to retrieve the parameter :

  1. Add particle system to character

  2. Update user exposed parameter from BP

image

2 Likes

Thank you, that works a charm… I had tried something similar with copying the Spawn Info Parameters from Spawn Rate, but I think there’s a lot i don’t understand with the parameters being set at the end so best to take the whole thing from an already working module like you did. Cheers! :slight_smile:

Also, I had to make sure the Loop Behaviour on the entire particle system was set to ‘Inifinite’ as the input only works while its looping, even though the particles can persist after that, so just a heads up to anyone else looking at this solution in the future.


  • set Niagaras UserExposed SpawnCount=0 by default
  • Niagara system start living without any particles, until
  • BP set SpawnCount= desired particles count , and ResetSystem
    – resetSystem set niagaras “simulation” time=0, and doesn’t kill any living particles
2 Likes