Add isCrouching to network, state and animation systems; enable proxy jump syncing with a jump-hold debounce and update animation descriptor and server tooling. Key changes: - Networking: F4TNetworking.h/cpp: added a_isCrouching, include "isCrouching" in transform packets and parsing, and logging. - Remote state: F4TRemotePlayerState.h: added isCrouching field. - Proxy animation: F4TProxyAnimationSync.*: added crouch fields, enabled jump sync, implemented ApplyJumpHoldState and jump hold timing, wrote crouch/jump bools into descriptors when available, updated event firing and logs. - Animation descriptor: F4AnimationDescriptor.cpp: added isJumping and isCrouching to bool variable list. - Local detection: main.cpp: added isCrouching in movement state, stubbed GetCrouchState(), adjusted jump hold timing and included crouch in outgoing transform calls. - Server/dev tooling: server/dev_server_app.py, fake_client.py, fake_player.py, README.md: added crouch reporting, toggle UI/control and fake client support for crouch, and updated docs/logging. - Docs: docs/dev-log.md updated with notes on jump/crouch fixes and testing. Rationale: ensure remote players can report crouch state and make jump animations transition reliably by debouncing jump state on proxies and writing available graph bools; also provide dev-server controls and fake-client support for testing.
Fallout 4 Together
Fallout 4 Together is an experimental research project exploring the possibility of adding basic multiplayer-style networking to Fallout 4.
The goal is not to create a full co-op campaign mod immediately. The first goal is much smaller:
Two Fallout 4 clients in a controlled test environment, with each player visible as a synced remote actor.
This project is currently in the research and prototype stage.
Project Goals
First Prototype
- Load a native Fallout 4 plugin through F4SE
- Connect to a local test server
- Send local player position data
- Receive remote player transform data
- Represent another connected player using a placeholder actor
- Restrict all testing to a custom test cell
Long-Term Ideas
- Basic LAN multiplayer test mode
- Remote player movement sync
- Basic animation state sync
- Basic chat or debug messages
- Host-controlled test cell
- Simple co-op combat arena
Non-Goals
This project is not currently trying to support:
- Full Fallout 4 campaign co-op
- Quest synchronization
- Settlement synchronization
- Full NPC/world state synchronization
- VATS synchronization
- Public server/MMO gameplay
- Compatibility with large modlists
Those systems are extremely complex and are outside the scope of the first prototype.
Repository Layout
docs/ Project documentation and research notes
plugin/ Native F4SE/CommonLibF4 plugin work
creation-kit/ Creation Kit plugin files, Papyrus scripts, and test cell notes
server/ External multiplayer test server
protocol/ Network packet design and sync documentation
tools/ Helper scripts and utilities
test-data/ Example packets and test data
screenshots/ Development screenshots
Requirements
This project is expected to require:
- Fallout 4 on PC
- Fallout 4 Script Extender, F4SE
- Fallout 4 Creation Kit
- Visual Studio 2022 or newer
- CMake or another supported C++ build system
- A CommonLibF4-based plugin template
- Git
- A clean Fallout 4 test profile
Recommended Development Setup
Use a separate Fallout 4 installation or a dedicated modding profile for testing.
Recommended setup:
Fallout 4
F4SE
Creation Kit
Mod Organizer 2 or Vortex
Visual Studio
Git
Use a clean test save and avoid testing with a full personal modlist.
Legal Notice
This repository does not include Fallout 4 game files, Bethesda assets, F4SE binaries, or any proprietary game code.
Users are responsible for owning Fallout 4 and installing required external tools themselves.
Status
Current status:
Research phase
Repository structure setup
Protocol planning
No playable multiplayer build yet
License
To be decided.