Saxonberg Server API
    Preparing search index...

    Interface EventPayloads

    Optional per-event payload shapes. Subscribers calling EventApi.on<T>(name, listener) may supply a type parameter matching one of these.

    Intentionally loose at the type-system level — emitters and subscribers coordinate on shapes by convention. A stricter mapping (e.g. discriminated union on event name) can land if the looseness causes drift.

    interface EventPayloads {
        "connection.attached": { holderId?: string; interactiveId: string };
        "module.reloaded": ReloadEvent;
        "module.reloadFailed": ReloadEvent;
        "module.rolledBack": ReloadEvent;
        "module.unloaded": ReloadEvent;
        "player.disconnected": { playerId: string };
        "player.loggedIn": { playerId: string; userId: string };
        "player.loggedOut": { playerId: string };
        "player.reconnected": { playerId: string; userId: string };
        "stream.stateChanged": StreamStateSnapshot;
        "stuff.created": { stuffId: string; templatePath?: string };
        "stuff.destructed": { stuffId: string };
        "stuff.fieldChanged": {
            field: string;
            newValue: unknown;
            oldValue: unknown;
            target: string;
        };
        "stuff.propertyChanged": {
            newValue: unknown;
            oldValue: unknown;
            property: string;
            target: string;
        };
        "stuff.shadowChanged": {
            cause: "attach"
            | "detach"
            | "mutate";
            shadow: string;
            target: string;
        };
    }
    Index

    Properties

    "connection.attached": { holderId?: string; interactiveId: string }
    "module.reloaded": ReloadEvent
    "module.reloadFailed": ReloadEvent
    "module.rolledBack": ReloadEvent
    "module.unloaded": ReloadEvent
    "player.disconnected": { playerId: string }
    "player.loggedIn": { playerId: string; userId: string }
    "player.loggedOut": { playerId: string }
    "player.reconnected": { playerId: string; userId: string }
    "stream.stateChanged": StreamStateSnapshot

    Full overlay-state snapshot, fired whenever StreamState mutates (the stream verb is the v1 emitter). The BroadcastFeed projection listens and re-pushes to broadcast connections. Carries the whole snapshot so the listener never has to re-read the singleton.

    "stuff.created": { stuffId: string; templatePath?: string }
    "stuff.destructed": { stuffId: string }
    "stuff.fieldChanged": {
        field: string;
        newValue: unknown;
        oldValue: unknown;
        target: string;
    }
    "stuff.propertyChanged": {
        newValue: unknown;
        oldValue: unknown;
        property: string;
        target: string;
    }
    "stuff.shadowChanged": {
        cause: "attach" | "detach" | "mutate";
        shadow: string;
        target: string;
    }