Description

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

RESULT
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.

EXPECTED
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 to Questions & Answers just mention UE-72141 in the post.

5
Login to Vote

Fixed
ComponentUE - Niagara
Affects Versions4.214.22
Target Fix4.25
Fix Commit12497837
Release Commit12497837
CreatedMar 29, 2019
ResolvedMar 31, 2020
UpdatedJul 30, 2020