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.