andrew abef899505 Add proxy puppet hook and graph speed sync
Introduce a puppet vtable hook to preserve networked locomotion Speed and fix proxy cadence. Added F4TProxyPuppet (header + impl) which installs an Actor::Update hook that writes the desired graph Speed and calls UpdateNoAI for proxy actors so the engine does not recompute/zero Speed from controller velocity. Publish active proxy FormIDs and per-proxy desired speeds so the hook targets only proxy actors.

Wire animationGraphSpeed through networking: parse/send a new "animationGraphSpeed" field and store it on RemotePlayerState. Proxy animation sync now prefers the authoritative animationGraphSpeed when present, otherwise maps movementSpeed ~1:1 to graph Speed (with sprint floor and clamping). Added graph variables speedSampled/speedDamped alongside Speed and updated snapshot population and diagnostics. Removed character-controller velocity injection (was causing physics/animation conflicts) and adjusted proxy movement logic to rely on graph variables plus kinematic SetPosition.

Also: Publish puppet diagnostics from the controller, add sender-side local graph speed read diagnostic, update fake_player to compute and send animationGraphSpeed, and append detailed dev-log entries describing the root cause, diagnostics, and fixes. Build and runtime diagnostics added to verify hook behavior and cadence changes.
2026-06-04 20:18:34 +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%