Triangle.js Docs
    Preparing search index...

    Interface Game

    interface Game {
        "game.abort": null | undefined;
        "game.advance": {
            scoreboard: {
                active: boolean;
                alive: boolean;
                id: string;
                lifetime: number;
                naturalorder: number;
                shadowedBy: [null, null];
                shadows: [];
                stats: {
                    altitude: number;
                    apm: number;
                    btb: number;
                    garbagereceived: number;
                    garbagesent: number;
                    kills: number;
                    pps: number;
                    rank: number;
                    revives: number;
                    targetingfactor: number;
                    targetinggrace: number;
                    vsscore: number;
                };
                username: string;
            }[];
        };
        "game.end": {
            leaderboard: Types.Game.Leaderboard[];
            scoreboard: Scoreboard[];
            winners: {
                active: boolean;
                id: string;
                naturalorder: number;
                shadowedBy: any[];
                shadows: any[];
                username: string;
            }[];
            xpPerUser: number;
        };
        "game.match": {
            gamemode: GameMode;
            modename: string;
            rb: {
                leaderboard: Types.Game.Leaderboard[];
                options: { ft: number; gp: number; wb: number };
                type: string;
            };
            rrb: {
                options: Record<string, unknown>;
                scoreboard: {
                    active: boolean;
                    alive: boolean;
                    id: string;
                    lifetime: number;
                    naturalorder: number;
                    shadowedBy: (string | null)[];
                    shadows: any[];
                    stats: {
                        altitude: number;
                        apm: number | null;
                        blockrationing_app: number;
                        blockrationing_final: number;
                        btb: number;
                        escapeartist: number;
                        garbagereceived: number;
                        garbagesent: number;
                        kills: number;
                        pps: number | null;
                        rank: number;
                        revives: number;
                        targetingfactor: number;
                        targetinggrace: number;
                        vsscore: number | null;
                    };
                    username: string;
                }[];
                type: string;
            };
        };
        "game.ready": Ready;
        "game.replay": { frames: Frame[]; gameid: number; provisioned: number };
        "game.replay.board": {
            boards: {
                board: {
                    b: BoardSquare[][];
                    f: number;
                    g: number;
                    h: number;
                    w: number;
                };
                gameid: number;
            }[];
        };
        "game.replay.end": {
            data: {
                gameoverreason: GameOverReason;
                killer: { gameid: number; type: "sizzle"; username?: string
                | null };
            };
            gameid: number;
        };
        "game.replay.ige": { gameid: number; iges: IGE[] };
        "game.replay.state": {
            data:
                | "early"
                | "wait"
                | {
                    frame: number;
                    game: Types.Game.State;
                    overrides: Record<string, unknown>;
                };
            gameid: number;
        };
        "game.score": { match: MatchData; scoreboard: Scoreboard[] };
        "game.spectate": {
            match: MatchData;
            players: {
                alive: boolean;
                gameid: number;
                naturalorder: number;
                options: ReadyOptions;
                userid: string;
            }[];
        };
        "game.start": null
        | undefined;
    }
    Index

    Properties

    "game.abort": null | undefined
    "game.advance": {
        scoreboard: {
            active: boolean;
            alive: boolean;
            id: string;
            lifetime: number;
            naturalorder: number;
            shadowedBy: [null, null];
            shadows: [];
            stats: {
                altitude: number;
                apm: number;
                btb: number;
                garbagereceived: number;
                garbagesent: number;
                kills: number;
                pps: number;
                rank: number;
                revives: number;
                targetingfactor: number;
                targetinggrace: number;
                vsscore: number;
            };
            username: string;
        }[];
    }
    "game.end": {
        leaderboard: Types.Game.Leaderboard[];
        scoreboard: Scoreboard[];
        winners: {
            active: boolean;
            id: string;
            naturalorder: number;
            shadowedBy: any[];
            shadows: any[];
            username: string;
        }[];
        xpPerUser: number;
    }
    "game.match": {
        gamemode: GameMode;
        modename: string;
        rb: {
            leaderboard: Types.Game.Leaderboard[];
            options: { ft: number; gp: number; wb: number };
            type: string;
        };
        rrb: {
            options: Record<string, unknown>;
            scoreboard: {
                active: boolean;
                alive: boolean;
                id: string;
                lifetime: number;
                naturalorder: number;
                shadowedBy: (string | null)[];
                shadows: any[];
                stats: {
                    altitude: number;
                    apm: number | null;
                    blockrationing_app: number;
                    blockrationing_final: number;
                    btb: number;
                    escapeartist: number;
                    garbagereceived: number;
                    garbagesent: number;
                    kills: number;
                    pps: number | null;
                    rank: number;
                    revives: number;
                    targetingfactor: number;
                    targetinggrace: number;
                    vsscore: number | null;
                };
                username: string;
            }[];
            type: string;
        };
    }
    "game.ready": Ready
    "game.replay": { frames: Frame[]; gameid: number; provisioned: number }
    "game.replay.board": {
        boards: {
            board: {
                b: BoardSquare[][];
                f: number;
                g: number;
                h: number;
                w: number;
            };
            gameid: number;
        }[];
    }
    "game.replay.end": {
        data: {
            gameoverreason: GameOverReason;
            killer: { gameid: number; type: "sizzle"; username?: string | null };
        };
        gameid: number;
    }
    "game.replay.ige": { gameid: number; iges: IGE[] }
    "game.replay.state": {
        data:
            | "early"
            | "wait"
            | {
                frame: number;
                game: Types.Game.State;
                overrides: Record<string, unknown>;
            };
        gameid: number;
    }
    "game.score": { match: MatchData; scoreboard: Scoreboard[] }
    "game.spectate": {
        match: MatchData;
        players: {
            alive: boolean;
            gameid: number;
            naturalorder: number;
            options: ReadyOptions;
            userid: string;
        }[];
    }
    "game.start": null | undefined