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.