Skip to content
Lucent
Esc
↑↓navigate↵open

ProjectionEventSelector

An event-shaped partial selector. type chooses the event variant, and every other field is an exact-match constraint on a scalar field of that variant.

Omitting a field leaves it unconstrained. With exact optional property types, explicitly passing undefined is invalid; untyped callers that do so safely fail to match instead of selecting events where the field happens to be absent.

type ProjectionEventSelector = {
    readonly type: "login" | "logout";
} | {
    readonly afk?: boolean;
    readonly entityId?: number;
    readonly type: "player-afk";
    readonly username?: string;
} | {
    readonly type: "join-map";
} | {
    readonly type: "item-drop";
} | {
    readonly questId?: number;
    readonly type: "quest-complete";
} | {
    readonly monsterMapId?: number;
    readonly type: "monster-death" | "monster-respawn";
} | {
    readonly entityId?: number;
    readonly type: "player-death";
    readonly username?: string;
} | {
    readonly entityId?: number;
    readonly kind?: "cell" | "position" | "walk";
    readonly type: "player-location";
    readonly username?: string;
} | {
    readonly type: "players-changed";
} | {
    readonly duration?: number;
    readonly icon?: string;
    readonly name?: string;
    readonly sourceId?: number;
    readonly sourceType?: "monster" | "player";
    readonly targetId?: number;
    readonly targetType?: "monster" | "player";
    readonly type: "aura-added" | "aura-removed";
} | {
    readonly durationMs?: number;
    readonly monsterMapId?: number;
    readonly source?: "aura" | "message";
    readonly triggerId?: string;
    readonly triggerText?: string;
    readonly type: "counter-attack-start";
} | {
    readonly monsterMapId?: number;
    readonly source?: "aura" | "message";
    readonly triggerId?: string;
    readonly triggerText?: string;
    readonly type: "counter-attack-end";
} | {
    readonly animation?: string;
    readonly message?: string;
    readonly monsterMapId?: number;
    readonly source?: "animation" | "aura";
    readonly type: "update-message";
} | {
    readonly map?: string;
    readonly type: "zone";
    readonly zone?: string;
}

Defined in Event.ts:190

Type preview
Open page

Last updated on September 26, 2026

Was this page helpful?