mwg API
    Preparing search index...

    Interface MessageBoxOptions

    interface MessageBoxOptions {
        anchor?: "center" | "bottom" | "top";
        announce?: boolean;
        autoAdvance?: number;
        blocker?: boolean;
        choices?: Choice[];
        dims?: boolean;
        height: number;
        mode?: "adv" | "nvl";
        onDone?: (chosen: unknown) => void;
        onSound?: (path: string) => void;
        pages: (string | MessagePage)[];
        speed?: number;
        width: number;
    }
    Index
    anchor?: "center" | "bottom" | "top"

    where the stack puts the box

    announce?: boolean

    Announce each page, and the choices once they appear, to a screen reader through ui.screenReader. Default true; the calls are no-ops where there is no DOM.

    autoAdvance?: number

    Seconds after a page's text finishes revealing before it advances on its own, as if confirm had been pressed. Never applies once choices are on screen - a choice always waits for a real answer. Omit to require confirm for every page, the default.

    blocker?: boolean

    Whether a click under the box is swallowed rather than reaching the map or the toolbar behind it. On by default: a box with a page still to read, or a choice to answer, is not something a stray click on the world should be able to act past. Turn it off only for a box the player is meant to click past, which is the same case dims: false is for.

    choices?: Choice[]

    offered after the last page

    dims?: boolean

    dim the world behind; false when the scene behind is the point, as in a dialogue

    height: number
    mode?: "adv" | "nvl"

    'adv' (the default) clears and redraws the box for each page, the way this class has always worked. 'nvl' is Ren'Py's other display mode: every page's text stays on screen, accumulating into one growing block instead of being replaced - the same script data, presented as a page of prose instead of a strip of speech bubbles.

    onDone?: (chosen: unknown) => void

    called with the chosen value, or undefined when there were no choices

    onSound?: (path: string) => void

    called when {sound:path} reaches the visible typewriter position

    pages: (string | MessagePage)[]
    speed?: number

    characters revealed per second; 0 shows each page at once

    width: number