UNiagaraComponent does not override IsReadyForOwnerToAutoDestroy, so it always returns true. This gets checked every tick if an actor is set to auto destroy, so actors with Niagara Components do not wait for the system to finish before being auto destroyed. 

Steps to Reproduce
  1. Create a new Blueprint Actor Class
  2. Add a Niagara Component to the actor
  3. Drag the Niagara Component onto the Scene Root, to make the Niagara Component the only component
  4. Edit the actor's event tick to print a string, (Get Auto Destroy When Finished can be helpful for verification)
  5. Set up the level blueprint to spawn an actor of that class
  6. After spawning, call Set Auto Destroy When Finished on the actor, setting it to true.
  7. Play in editor

The actor will not appear in the level, because it will destroy itself as soon as it ticks. The actor's event tick will not log a message either.

The actor should stay in the level indefinitely because the particle system will never finish.

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-72141 in the post.

Login to Vote

ComponentRendering - Niagara
Affects Versions4.214.22
Target Fix4.25
CreatedMar 29, 2019
ResolvedMar 16, 2020
UpdatedMar 30, 2020