Quick answer: Normalize the curve input to [0,1] (divide by lifetime). Set curve Pre/Post Infinity to Cycle or Constant. For one-shots use Spawn Burst Instantaneous instead of curve-driven Spawn Rate.
Curve-driven Niagara emitter produces nothing. The age input was 5 seconds; curve x range was 0..1; lookup returned default (0).
The Symptom
Niagara emitter spawns nothing. Removing the curve and using a constant rate works.
The Fix
Option 1: Normalize the input.
Spawn Rate (Particle Spawn module):
Rate: SampleCurve(curve, EmitterAge / EmitterLifetime)
Or set the curve’s x range to match your unnormalized age (e.g. 0..5 for a 5s lifetime).
Option 2: Use Spawn Burst Instantaneous.
Spawn Context:
+ Spawn Burst Instantaneous
Count: 50
Spawn Time: 0
Simpler for one-shots; no curve needed.
Pre/Post Infinity
Curve panel → Pre Infinity / Post Infinity. Cycle: loops. Constant: holds last value. Linear: extrapolates. Pick based on intent; default Constant is fine for one-shot lifetimes.
Verifying
Niagara overlay shows Spawn Rate live. Should evaluate to your curve’s expected value. If 0, input or curve range is wrong.
“Normalize input. Set curve range. Or use Spawn Burst.”
Related Issues
For Niagara collision events, see collision events. For Niagara significance, see significance.
Right input. Right range. Curve fires.