- Animation ROI maps: lazily built and cached, invalidated on world change
- Room full UX: toast style with sessionStorage to survive page reload
- Rename Sneaky walk animation to Leaning
- Three animation categories: walking (6 options), idle (3 options), one-off emotes (2 options)
- Walk/idle selections carried as uint8_t indices in PlayerStateMsg (auto-sync on join)
- Emotes remain one-shot MSG_EMOTE messages with emoji popup for local player
- WASM exports: mp_set_walk_animation, mp_set_idle_animation, mp_trigger_emote (index-based)
- Identified all CNs###xx animations with UI labels and descriptions
- Remote player state machine: walk → stationary → idle timeout → emote support
- CNs004xx excluded (duplicate of CNs001xx)
- Configurable room size with relay-enforced ceiling (MAX_PLAYERS_CEILING)
- Room config written to isle.ini via OPFS (same pattern as existing settings)
- Multiplayer extension disabled in INI for solo play (zero overhead)
- Hash-based routing (#r/name) consistent with existing isle.pizza navigation
- Three-word Lego Island-themed room names (brave-red-brick style)
- Collapsible in-game overlay
- Animation research: identified CNs###xx generic animations, click body flip,
disassemble/reassemble, and procedural flip; documented playback mechanisms
and which are portable to remote players
- Animations broadcast-only (not played on local player)
- String-based animation names in protocol (matches internal lookup)
- Room full: game exits, frontend shows error modal on reload
- Removed future layers reference
- Tier 1 (plants + buildings): marked as implemented
- Tier 2 (NPC customization): downgraded to low value because NPCs are
randomly spawned and pathed per-session, so players never see the same
NPCs in the same locations
- Tier 4 (vehicles): corrected to account for autonomous vehicle coasting
after exit (m_worldSpeed is never reset), split into Tier 4a (visibility
only) and 4b (coasting position sync), increased effort estimate
- Updated priority order, effort summary, and opinion sections
Add serialization framework using C++ templates and table-driven lookup
to sync plant and building state between players. Includes world snapshot
routing to requesting peer, relay server Docker support, and fixes for
building color sync, ride vehicle visibility, and ARM compilation.
- WebSocket relay server (Cloudflare Worker + Durable Object)
- Remote player character cloning with walk/idle/ride animations
- Vehicle support for remote players
- INI config for relay URL
- Extension hook for world transition ROI management