mwg API
    Preparing search index...

    Class RandomStreams

    Named, independent random streams over one base seed: streams.stream('loot') and streams.stream('ai:goblin-3') each get their own MT19937 position, so one consumer drawing more numbers never shifts another's results - the property a replay and a per-entity stream both need, and one a single shared generator cannot give.

    A stream is created on first use, from baseSeed ^ FNV-1a(name), and then kept. Creating a stream later therefore does not disturb an existing one, which is what makes adding a new consumer reproducible rather than a change to every draw after it.

    import { RandomStreams } from '@datamoc/mw_games/core';

    const streams = new RandomStreams(12345);
    streams.stream('loot').int(100); // one stream
    streams.stream('ai:goblin-3').int(6); // an unrelated one, unaffected by the loot draw

    const saved = streams.getState(); // every stream's engine state, for a save file
    Index
    • the names that have been asked for, in creation order

      Returns string[]

    • drops every stream and re-bases future ones; existing streams are gone, not reset

      Parameters

      • seed: number

      Returns void

    • the seed a stream was created from; undefined for one that has never been asked for

      Parameters

      • name: string

      Returns number | undefined