andrew 5ba440ab5d Add crouch state and fix jump sync
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.
2026-06-05 14:22:17 +12:00
2026-06-05 14:22:17 +12:00
2026-06-05 14:22:17 +12:00
2026-06-05 14:22:17 +12:00
2026-05-30 18:13:54 +12:00
2026-05-30 18:13:54 +12:00
2026-05-30 18:13:54 +12:00
2026-05-30 18:13:54 +12:00
2026-05-30 18:13:54 +12:00
2026-05-30 18:13:54 +12:00
2026-05-30 18:13:54 +12:00
2026-05-30 18:13:54 +12:00

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

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.

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.

S
Description
No description provided
Readme
1.2 GiB
Languages
C++ 94.8%
ActionScript 1.6%
Python 1.4%
JavaScript 0.8%
Papyrus 0.6%
Other 0.8%