Build Games Where Everyone Has A Part
Plot turns any web game into a multiplayer experience that unfolds across every player's phone or computer. Build with TypeScript or JavaScript, use any browser framework, and own every rule, screen, and surprise.
One await Plot.ready() gives every game
copy its current Plot.party, shared
Plot.gameState, per-player
Plot.playerData, typed
Plot.realtime.channels, and
synchronized Plot.time clock. Connection
and recovery stay behind the SDK.
Use Plot.onLifecycleChange() to pause during
an interruption and rebuild from complete state when connected, before retained
historical channel events. Focused state listeners handle ordinary data changes.
Your first realtime game
Each browser gets stable player identity, player-owned data, durable shared progress, targeted live events, and one shared clock. Plot keeps late joins, reloads, and reconnects synchronized.
Where to go next
- New to Plot? Start with Getting started, then read How Plot games work.
- Want to understand Plot's core APIs? Explore Party and players, Game State and Player Data, Lifecycle and recovery, Realtime channels, and Synchronized time.
- Implementing a feature? Browse the SDK Reference for exact types and failure behavior.
- Need reusable game tools? Start with Toolkit: synced audio for shared cues, seamless loops, and synchronized pause/resume.