Introduce a server-authoritative world-state packet to control weather and time from the dev server GUI. Adds protocol docs and message type (serverWorldState), a new Weather/Time tab in dev_server_app.py, server-side broadcasting in server_core.py, and preset utilities in server/world_state_presets.py. Plugin changes (F4TNetworking.cpp, F4TWorldStateSync.*) queue and apply incoming serverWorldState on the game thread, run `set gamehour` for all clients, and run `fw <8-digit-id>` on the assigned player 1 then force the host to relay a worldState snapshot. Also includes parsing/validation of hex form IDs, logging improvements, and minimal fake client handling. This ensures consistent server-driven time/weather and documents usage and presets.
36 lines
806 B
Markdown
36 lines
806 B
Markdown
# Protocol
|
|
|
|
This folder documents the planned network protocol for Commonwealth Online.
|
|
|
|
The first protocol should be simple and focused on player transform sync.
|
|
|
|
## First Packet Types
|
|
|
|
- Welcome packet
|
|
- Transform packet
|
|
- World state packet (host time and weather) — see [`world-state.md`](world-state.md)
|
|
- Server world state packet (dev GUI weather/time) — see [`server-world-state.md`](server-world-state.md)
|
|
- Disconnect packet
|
|
|
|
## Future Packet Types
|
|
|
|
- Animation state packet
|
|
- Fire weapon packet
|
|
- Health packet
|
|
- Chat packet
|
|
- Cell change packet
|
|
|
|
## Design Goals
|
|
|
|
The protocol should be:
|
|
|
|
- Simple
|
|
- Easy to debug
|
|
- Versioned
|
|
- Safe to extend
|
|
- Clear enough to test outside Fallout 4
|
|
|
|
## Early Testing
|
|
|
|
The protocol should be testable using fake clients before being connected to Fallout 4.
|