Particle systems get retriggered on scalability setting changes

This question was created in reference to: [Niagara effects get retriggered on scalability setting [Content removed]

If we choose to not re-init the updated system as the thread suggests, then that system will be reset instead. Unfortunately resetting and re-initing the system have exactly the same effect.

As an alternative would these changes to UNiagaraSystem::UpdateScalability() cause any unforeseen issues? The reasoning is that effects that have a cull reaction of type “Deactivate” or “DeactivateImmediately” will be deactivated anyway, so we don’t really care to update their scalability anyway.

// Update components // Change start if( EffectType == nullptr || (EffectType->CullReaction != ENiagaraCullReaction::Deactivate && EffectType->CullReaction != ENiagaraCullReaction::DeactivateImmediate)) // change ends { FNiagaraSystemUpdateContext UpdateCtx; UpdateCtx.SetDestroyOnAdd(true); UpdateCtx.SetOnlyActive(true); UpdateCtx.Add(this, true); }

Steps to Reproduce
Whenever we change the scalability settings at runtime, any Niagara particle systems that are active will get restarted and play all over again.

Hello [mention removed]

This behavior persists in recent versions. I tested it in UE 5.6 and also on a recent Main build (CL 43801126) and the issue is still present.

I tried your suggested change to UNiagaraSystem::UpdateScalability() and didn’t run into any issues from 5.5 up to Main. The change seems safe and you may keep it as a workaround until the engine provides more control over this behavior.

Please let me know if this information is useful.

Best,

Francisco