From a shared code to the right raider #
A creator opens or reuses their community room and shares its expiring code. Resolve checks the code; viewer authorization grants access to that room. Knowing a room ID or code alone is not player identity or creator authority.
- Create / share
Owning creator opens the community room.
- Resolve / authorize
Server resolves a valid code and verifies the Twitch viewer.
- Join
The room selects its community; reuse or create the player's scoped starter.
- Synchronize
Accepted presence, snapshots and movement; close/expiry ends admission.
Association without cross-community leakage #
Join atomically validates active room/access/identity, loads the player's raider in the room's community or creates the documented fully clothed level1/XP0 starter with empty inventory. Shared appearance is reused; another community's XP or equipment is not copied. The resulting association appears in the community selector and persists after room closure.
raiderville-presence/1 #
Transport is full HTTP snapshots, not WebSocket or combat simulation. A snapshot contains protocol, revision, server_time, room, self actor/sequence, actors and authoritative world layout. Clients ignore stale snapshots and reject a changed layout identity until reload.
| Operation | Default client behavior |
|---|---|
| State read | Poll every1.5seconds |
| Heartbeat | Every8seconds; active presence timeout30seconds |
| Movement | 200ms client tick; page client_id, increasing sequence, layout_id and proposed x/y |
| Validation | Access/controller lease, presence, world bounds, speed and ordering; exact duplicate accepted movement is idempotent |
Reconnect, leave and closure #
Rejoin preserves actor identity and position. A replacement page takes the movement lease; the old controller's heartbeat/movement is rejected. Stale presence requires reconnect. Host closure stops admission and returns closed snapshots; it does not revive the room.
Same-browser tab teardown has a known limitation: a delayed old-tab leave can retire replacement presence sharing the session. Do not promise perfect tab-isolated unload behavior; reconnect is the recovery path.
Technical limits, not battle balance #
Defaults are24 active social participants, a4-hour room and a30-second presence timeout. These are provisional technical settings, not measured capacity claims and not the local battler's separate ten-player admission rule. Expired room/access/presence cleanup does not delete player raiders.
Current world is3840×2160, still-character movement and a decorative campfire with no interior collision obstacles. The forest perimeter is screen-edge scenery; it is not a navigable boundary or a combat system. Browser fullscreen requires a gesture and has a window-filling fallback.
