We have a Niagara system (NSY_Fire_Zone), which uses parent static mesh to distribute the particles:
[Image Removed]This setup works as expected unless we try to clone the object. I am using Alt+Drag on gizmo with actor selected, but it’s not 100% related to gizmo, regular Copy-Paste can crash too.
Apparently that behavior if not crashing the editor can leave actors in “broken” state, so Editor will crash on Level Load with same callstack.
We noted that on some PCs with more performant hardware crash occurs less. On my Ryzen 7950X + RTX 4080 it crashes almost always. Sometimes crash occurs after couple of frames after clone is performed, so I could assume it’s some kind of timing issue.
Crash does not occur when Niagara is set to CPU sim, but we need to use GPU sim because of performance considerations.
Crash does not occur when Niagara System is standalone (e.g. not a part of a Blueprint).
Crash seems to not occur in UE 5.8.1. At least I was able to clone & reload level ~ 20 times with no issues. Sadly we cannot upgrade our project to UE 5.8.1 now and I was not able to spot the CL which mentions such a problem.
Appreciate if you can point me out to CL to cherry-pick. If you spot another problems with our setup, please let me know as well
Apologies for the delay. The fix for the crash involves a couple changelists:
CL#50361227 (d0851e) Be sure to destroy simulation instances in PostApplyToComponent to reflect the fact that the instance parameters could be changed out from under us and our DI bindings could go stale
CL#51269735 (6c6f89) - Add optional reactivate to PostApplyToComponent
- Add optional reactivate to PostApplyToComponent
- When inside the BP window activating a component that isn’t activated by default in the parent blueprint will go inactivate after the first frame due to PostToApply
- The new reactivation can be disabled with fx.Niagara.Rollback.AllowReactivateInPostApplyToComponent in case we run into issues with parameter stores and dirty data
After moving the BP there’s an error LogNiagara: StaticMesh data interface has no valid mesh, because no mesh is assigned inside BP_ActorWithFX