# Commonwealth Online Roadmap ## Current Status: Working Internal Vertical Slice Commonwealth Online currently supports real Fallout 4 clients connecting through an external relay server, synchronizing player transforms, representing remote players with proxy actors, using the multiplayer browser UI, discovering LAN servers, saving recent servers, and syncing basic world state such as time and weather. The roadmap now tracks playable vertical slices rather than early technical bootstrap milestones. --- ## Slice 0: Vault 109 Onboarding ### Goal A first-time player joining a Commonwealth Online server is placed into Vault 109, creates their character, sets SPECIAL stats, receives basic server context, and exits into the Commonwealth as a valid multiplayer character. ### Player Experience 1. Player opens Multiplayer from the main menu. 2. Player joins a server. 3. If the player has no character/save for that server, a new character is created. 4. Player spawns in Vault 109. 5. Player customizes appearance. 6. Player completes the Vault 109 SPECIAL setup process. 7. Player receives basic lore/context for the server. 8. Player exits the vault. 9. The server/client marks onboarding as complete. 10. Future joins spawn the player from their saved multiplayer state instead of restarting Vault 109. ### Includes - Vault 109 interior - First-join detection - New multiplayer character creation flow - Appearance setup - SPECIAL setup - Intro quest or onboarding state - Vault exit sequence - Save/profile persistence - “Cannot return after leaving” rule if desired ### Internal Milestones - [ ] Create Vault 109 start cell - [ ] Add first-spawn marker - [ ] Route first-time server players to Vault 109 - [ ] Open appearance customization - [ ] Build SPECIAL allocation flow - [ ] Save onboarding completion state - [ ] Move player to Commonwealth exit point - [ ] Prevent repeat onboarding for existing server characters - [ ] Test joining same server again - [ ] Test joining a different server for the first time ### Done When A player can join a server with no existing multiplayer save, create a character in Vault 109, assign SPECIAL stats, leave the vault, reconnect later, and continue as the same character. --- ## Slice 1: Same-Cell Multiplayer Foundation ### Goal Two or more players can join the same controlled test cell and see each other moving reliably. ### Includes - Server relay - Player IDs - Transform sync - Remote proxy actors - Movement smoothing - Disconnect cleanup - Fake client testing tools - Dev server GUI ### Internal Milestones - [x] Plugin connects to server - [x] Server assigns player IDs - [x] Transform packets relay between clients - [x] Remote player state is stored safely - [x] Proxy actors represent remote players - [x] Movement smoothing works - [x] Disconnect removes or holds remote representation correctly - [x] Fake clients can simulate remote players - [x] Dev server GUI can start/stop server and manage fake clients ### Done When A two-client test in `F4TTestCell01` works repeatedly without manual recovery. --- ## Slice 2: Multiplayer Menu and Join Flow ### Goal Players can access Commonwealth Online from Fallout 4’s main menu using a native-feeling multiplayer browser. ### Includes - Main menu Multiplayer button - PrismaUI / Ultralight browser - Direct Connect - Local servers tab - LAN discovery - Recent servers - Controller navigation - Mouse/controller cursor handling - UI scaling for different resolutions ### Internal Milestones - [x] Multiplayer menu opens from main menu - [x] Direct Connect works - [x] Local tab scans LAN servers - [x] Recent servers persist - [x] Controller can navigate browser - [x] Mouse/controller mode switching works - [x] UI scales correctly at 1080p, 1440p, and 4K ### Done When A player can launch Fallout 4, open Multiplayer, find or enter a server, connect, disconnect, and reconnect without console commands. --- ## Slice 3: Player State and Animation MVP ### Goal Remote players feel more like players rather than sliding markers. ### Includes - Movement state sync - Walk/run/sprint state - Sneak state - Jump state - Weapon drawn state - Proxy animation or animation-adjacent visual behavior - Fake-client animation test scripts ### Internal Milestones - [x] Movement state fields are sent - [x] Fake clients can walk, circle, jump, sneak, teleport, leave cell, and return - [x] Proxy actors respond to synced movement state - [x] Animation graph and AI behavior experiments are documented - [x] Working in-game behavior is confirmed ### Done When A remote player can move around the test cell and visually communicate their main state clearly enough for internal playtesting. --- ## Slice 4: World-State Sync MVP ### Goal Connected players share basic world conditions so the session feels consistent. ### Includes - Host-authoritative world state - Time sync - Weather sync - Host reassignment - Fake-client world-state visibility - Protocol documentation ### Internal Milestones - [x] First client becomes world-state host - [x] Host sends time/weather state - [x] Server validates host-only world-state packets - [x] Non-host clients apply world state - [x] Host disconnect promotes next lowest player ID - [x] Promoted host seeds state from local synced values ### Done When Three clients can connect, share time/weather, lose the host, promote a new host, and continue without a visible world-state jump. --- ## Slice 5: Internal Playtest Package ### Goal The project can be packaged, deployed, and tested by someone other than the developer. ### Includes - Build scripts - Deploy scripts - Proper Fallout 4 `Data` layout - ESP staging - Mesh/material/texture staging - PrismaUI staging - Setup documentation - Troubleshooting documentation - Known-good test profile ### Internal Milestones - [x] Build output stages to `build/Fallout 4/Data` - [x] ESPs are included - [x] Assets are included - [x] PrismaUI and Ultralight files are included - [x] Fallout 4 path resolver works - [x] Clean install test - [x] Mod Organizer 2 install test - [x] Second-machine install test - [x] Steam Deck or LAN client test package ### Done When A fresh machine can install the package, start the server, join from Fallout 4, and complete the test-cell playtest checklist. --- ## Slice 6: Small Multiplayer Session ### Goal Commonwealth Online supports a small structured session with several players in a controlled area. ### Includes - 2 to 4 real clients - Stable proxy assignment - Join/rejoin handling - Disconnect handling - LAN and direct connect support - World-state sync - Basic session rules - Debug logging for failures ### Internal Milestones - [ ] 2 real clients stable for 15 minutes - [ ] 3 real clients stable for 15 minutes - [ ] 4 real clients stable for 15 minutes - [ ] Host disconnect test - [ ] Client reconnect test - [ ] Cell leave/return test - [ ] Server restart recovery behavior documented ### Done When A small group can complete a repeatable test session without developer intervention. --- ## Slice 7: Gameplay Sync Experiments ### Goal Start testing actual gameplay interactions after the multiplayer foundation is stable. ### Candidate Systems - Basic health sync - Basic damage events - Weapon fire events - Simple interaction events - Power armor enter/exit - Settlement placement experiments - Chat or player identity - Enemy sync research ### Rules These are not added until the earlier vertical slices are stable. Each gameplay system must be tested as an isolated experiment before becoming part of the main branch. --- ## Later Slices ### Wider World Support - Exterior worldspace testing - Interior/exterior transitions - Multiple cells - Fast travel policy - Reconnect position handling ### Session UX - Player names - Server metadata - Favorites - Passwords or private sessions - Server browser polish - Error messages ### Gameplay Layer - Combat - Damage - Inventory policy - Quest policy - Settlement sync - NPC/enemy strategy