Quick answer: Create the particle system as persistent. Or store globally and emit at the instance position; instance destroy doesn’t kill the global system.
Explosion sets up particles inside its Destroy event. Particles vanish with the instance. Persistent flag wasn’t set.
The Fix
// Global setup
global.fx_layer = layer_get_id("FX");
global.fx_sys = part_system_create_layer(global.fx_layer, false);
part_system_persistent(global.fx_sys, true);
// In instance Destroy event
part_particles_create(global.fx_sys, x, y, global.fx_explosion, 20);
// On room/level cleanup
part_system_destroy(global.fx_sys);
Persistent + global system survives instance lifetimes. Emit one-shot bursts; clean up at scene end.
Verifying
Destroy explosion: particles continue and fade. Without persistent: vanish on the same frame.
“Persistent system. Emit then destroy. Particles fade out.”
Related Issues
For draw_text color, see draw color. For tilemap cache, see tilemap cache.
Persistent. Detached. Particles outlive.