Quick answer: Add Async — Sequence event to the listening object. Filter by message string. Verify the sequence instance is still playing when broadcast fires.

A cutscene sequence broadcasts “scene_end”. The game controller object listening for it never triggers. Async event not handled.

Add Async Sequence Event

Object → Events → Add Event → Async → Sequence. In its code:

if (async_load[? "event_type"] == "broadcast") {
    if (async_load[? "message"] == "scene_end") {
        show_debug_message("Scene ended");
        on_scene_done();
    }
}

async_load is the broadcast payload. event_type="broadcast" gates non-broadcast events.

Verify Sequence Trigger

In Sequence Editor, add a Broadcast Event keyframe at the desired moment. Set the message string. Save sequence.

Sequence Instance Lifetime

Broadcasts fire only during playback. If the sequence instance was destroyed/stopped before the keyframe, no broadcast. Audit your stop-sequence logic.

Multi-Listener

Multiple objects can listen. Each handles in its own Async event. Don’t expect “singular receive” semantics — broadcasts are fanned out.

Verifying

Play sequence. Listener object logs the message at the right moment. Skip the sequence; no spurious messages.

“Sequence broadcasts are async fan-out events. Listen via the Async Sequence event, filter by message.”

For complex cutscene logic, also broadcast at start — lets HUD hide before action begins.