Files
Commonwealth-Online-Public/.cursor/rules/project-overview.mdc
T
andrew 8c09e91534 Add basic movement state to transform packets
Add optional movement-state fields (isMoving, isSprinting, isSneaking, isJumping, weaponDrawn, movementSpeed) to transform packets and wire them end-to-end. Plugin changes: extend F4TNetworking API and RemotePlayerState, derive movement speed/jump state on the game-thread, validate values, include fields when formatting transform JSON, and add throttled remote movement-state logging. main.cpp adds sampling, speed/vertical calculations, jump hold logic, and change-detection to avoid extra sends. Networking parsing (F4TNetworking.cpp) reads optional booleans/floats safely, preserves backwards compatibility, and clears movement-state logs on disconnect. Proxy controller includes a TODO note for future animation use. Server and docs: update protocol and packet docs, dev-log, server README, and fake_client.py to parse/display optional fields safely. Also add several .cursor rule files for coding, documentation, protocol, project overview, and testing guidance. This milestone prepares the data model for later animation/behavior work while keeping existing relay behavior unchanged.
2026-06-02 13:27:40 +12:00

30 lines
1.6 KiB
Plaintext

---
description: Fallout 4 Together project architecture and goals
alwaysApply: true
---
# Project Overview
Fallout 4 Together is an experimental Fallout 4 multiplayer mod. It uses a C++ F4SE plugin, a Python relay server, fake clients for protocol testing, and project documentation in `docs/`.
The goal is to sync players across separate Fallout 4 instances by sending player transform and state data through a server, then representing remote players in-game with proxy actors.
The current sync model includes player transforms, cell/worldspace IDs, heading, and movement state such as moving, speed, sprinting, sneaking, jumping, and weapon drawn.
Preserve the existing server-authoritative relay architecture unless specifically told otherwise. The project is not trying to fully merge game worlds: each player runs their own local Fallout 4 instance, and the server distributes state updates between clients.
Important project areas:
- `plugin/src/main.cpp`: C++ F4SE plugin entry point and game integration.
- `server/server.py`: Python relay server.
- `server/fake_client.py`: fake testing client for protocol and relay checks.
- `docs/`: architecture, setup, protocol, testing, and milestone documentation.
- `docs/dev-log.md`: running project history and development log.
Cursor workflow:
- Read relevant files before editing.
- Make minimal focused changes.
- Avoid breaking already-working transform sync.
- Avoid speculative rewrites or unrelated feature work.
- Keep changes understandable for an iterative prototype.
- Explain changes after applying them and mention assumptions made.