Quick answer: GameMaker sequence event triggers firing twice after pause-resume? Sequence engine re-fires events at the resume position - track which events have fired per sequence.
Cutscene plays SFX at 2s. Pause at 3s; resume; SFX plays again.
Track fired events
var fired = ds_map_create();
if (!ds_map_exists(fired, key)) {
play_sound(...);
ds_map_add(fired, key, true);
}Idempotent event handling. Resume re-fires; handler skips the second.
Or use start-of-sequence reset
Clear the fired map on sequence start. Each play is fresh; resume doesn't reset.
Use TimeSources instead
For deterministic event timing, TimeSources have clean pause semantics. Sequences are a different use case.
“Sequence events are time-based, not state-based. Resume hits the same time, fires the same event.”
If you ship cutscenes with audio cues, the dedup pattern is essential. Document; reuse across every cutscene.