gameplate - v2.3.0
    Preparing search index...

    Interface Random

    A seeded random generator. Every method advances the same internal stream, so call order matters — that's the property that makes replay deterministic.

    interface Random {
        seed: string | number;
        next: () => number;
        float: (min?: number, max?: number) => number;
        int: (min: number, max: number) => number;
        bool: (p?: number) => boolean;
        sign: () => -1 | 1;
        pick: <T>(items: readonly T[]) => T;
        shuffle: <T>(items: readonly T[]) => T[];
        fork: () => Random;
        state: () => RandomState;
        setState: (state: RandomState) => void;
    }
    Index

    Properties

    seed: string | number

    The resolved seed this generator was created from. Capture it to reproduce a run.

    next: () => number

    Float in [0, 1). The primitive every other method builds on.

    float: (min?: number, max?: number) => number

    Float in [min, max). Defaults to [0, 1).

    int: (min: number, max: number) => number

    Integer in [min, max]both ends inclusive.

    bool: (p?: number) => boolean

    true with probability p (default 0.5).

    sign: () => -1 | 1

    -1 or 1, each with probability 0.5.

    pick: <T>(items: readonly T[]) => T

    A uniformly-random element of items. Throws on an empty array.

    shuffle: <T>(items: readonly T[]) => T[]

    A new array with items shuffled (Fisher–Yates). Does not mutate the input.

    fork: () => Random

    Derive an independent child generator. Advances this generator by four draws to seed the child, so the parent and child streams don't overlap — give each subsystem (loot, terrain, AI) its own fork for stable, order-independent randomness.

    state: () => RandomState

    Snapshot the current generator state (JSON-safe).

    setState: (state: RandomState) => void

    Restore a previously snapshotted state.