Platform Updates

PartyServer: Real-Time Multiplayer Sessions

Everyone at the table sees the same story at the same time

Dave January 30, 2026 2 min read

Solo AI play is useful. A full table is better. This release introduces PartyServer — our real-time layer built on Cloudflare Durable Objects — so every player in a session receives the same DM narration, dice results, and map updates without refreshing the page.

How a live session works

When a campaign owner starts a session, PartyServer spins up a room keyed to that session ID. Players who open the session link connect over WebSocket. When the AI DM responds to an action, the narration broadcasts to all connected clients. Dice rolls initiated by any player appear in the shared log. Initiative order and HP changes sync for everyone running combat.

The human DM role still exists in stand-in mode: you can approve AI suggestions, override rulings, or pause the AI entirely. In persistent mode, players take turns posting actions and the AI adjudicates for the group.

Configuration requirements

Multiplayer requires VITE_PARTYSERVER_HOST to point at your API worker hostname in production. JWT validation ensures only campaign members join the room. If PartyServer is misconfigured, sessions fall back to single-player mode with a console warning — play continues, but others will not see updates live.

Latency and reliability

Durable Objects keep session state in one geographic shard, which minimizes split-brain issues when two players act simultaneously. We queue conflicting actions and resolve them in arrival order with a visible activity feed so nobody wonders whose turn it is.

What syncs today

  • DM narration and player messages in the session log
  • Dice roller results and public rolls
  • Initiative tracker order and active combatant
  • Battle map token positions and fog reveals (when map is active)
  • Background image loading state during AI map generation

Voice chat is not built in — use Discord or your preferred call app alongside the session page. Speech-to-text for player actions uses Whisper when configured on the worker; each player can type instead.

We tested PartyServer with six concurrent players on a home Wi-Fi mesh. Narration arrived within a second for all clients. Your mileage varies on mobile networks.

PartyServer is live on staging and production workers. Report desync bugs with session ID and timestamp — we treat those as P0 during beta.

Dave