andrew 0b73b1eff1 Add Walk To Player script and GUI controls
Add developer tooling to make GUI-managed fake clients run a Walk To Player script and provide UI controls.

Changes:
- server/fake_player.py: implement SCRIPT_WALK_TO_PLAYER, thread-safe script switching, pose/angle tracking, walk-to-player movement (straight-line, +150 X offset), target selection via a walk target provider, configurable send rates/speed/stop distance, and robust parsing of server client snapshots. Sends moving transforms ~10 Hz and falls back to idle keep-alives. Logs when no target is available.
- server/dev_server_app.py: add Set Idle and Walk To Player buttons, safe selected-client handling, and pass a client snapshot provider callback (server.get_clients()) to the fake player manager.
- server/README.md & docs/dev-log.md: document the new controls, behavior, testing notes, known limitations, and next steps.

Notes:
- Walk To Player picks the lowest non-fake playerId with a valid lastTransform and targets that player's last transform +150 X.
- Movement is simple straight-line stepping (no pathfinding/navmesh/obstacle avoidance).
- No protocol, plugin, server core, or existing fake_client networking behavior was changed.
- Quick static check: py_compile ran for relevant modules; manual GUI and in-game validation are still required.
2026-06-02 15:19:32 +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%