Quick answer: Unreal Niagara CPU emitter spawn rate inconsistent at 30fps cap? Per-tick spawn count varies with deltaTime; rates not integer divisible - use ParticleSpawnRate parameter for time-based.
Author 60 particles/sec. At 60fps: 1 per frame, consistent. At 30fps: 2 per frame mostly, occasional 3 from accumulated remainder.
Use rate-based with accumulator
Emitter's SpawnRate module accumulates across frames. Total over time is consistent; per-frame varies.
Or use SpawnBurst
Discrete bursts at fixed intervals. Per-burst count is exact; spacing is timer-driven.
Profile at target framerates
Check 30, 60, 120. Inconsistent spawn count is visible.
“Spawn rate is a continuous quantity. Discrete frames need accumulation.”
For VFX visible at different framerates, test all framerates. Accumulation bugs surface here.