Quick answer: Godot GPUParticles3D stopping mid-game? emitting resets to false after lifetime if one_shot = true. Set emitting = true again or disable one_shot.
A continuous fire effect dies after about a second. The GPUParticles3D node has one_shot enabled, so it stops after one lifetime.
one_shot Behavior
With one_shot = true, the system emits for one full lifetime then stops. Setting emitting = true restarts; toggling each frame creates jitter.
Continuous Emission
Set one_shot = false and emitting = true. Particles emit constantly at the configured rate. Toggle emitting to start/stop without lifetime resets.
Restart on Demand
particles.restart()Cleanly resets internal state — better than emitting = false; emitting = true, which can drop the first frame.
Verifying
The effect emits continuously when expected, stops cleanly on demand, and resumes without delay.
“one_shot stops after lifetime. For continuous effects, set it false.”
For burst effects (explosions, hits), prefer restart() — instantaneous and deterministic.