Separate normal transform send cadence from movement logging and improve proxy smoothing. Key changes: - Polling/send logic (plugin/src/main.cpp): introduced distinct send vs log intervals (100ms send, 1s log), lowered send thresholds (≈3.0 units position, 0.02 rad rotation), renamed/clarified functions, and added special movement types (worldspace_change, cell_change, teleport) that bypass the send gate and are logged immediately. Normal movement targets roughly 10 Hz while moving to avoid packet-per-frame traffic. - Proxy controller (plugin/src/F4TProxyActorController.cpp): tuned proxy position lerp alpha to 0.15 for smoother motion, renamed movement-interval variables for clarity, and removed the generic per-update movement gate so normal proxy visual updates are applied each game update while only the safety-offset path is throttled. - Documentation updates (docs/architecture.md, docs/dev-log.md, protocol/player-sync.md): describe the new send/log separation, cadence and thresholds, smoothing behavior, and recorded dev-log about smoothing tests and results. These changes reduce network noise, produce smoother remote visuals, and keep readable local movement logs while preserving immediate sends for large/categorical movement changes.
Fallout4Together Plugin
This is the native Fallout4Together plugin using CommonLibF4.
Requirements
- XMake [3.0.0+]
- C++23 Compiler (MSVC or Clang-CL)
Getting Started
git clone --recurse-submodules https://github.com/libxse/Fallout4Together
cd Fallout4Together
Build
To build the project, run the following command:
xmake build
Note: This will generate a
build/windows/directory in the project's root directory with the build output.
Build Output (Optional)
If you want to redirect the build output, set one of the following environment variables:
-
Path to a Mod Manager mods folder:
XSE_FO4_MODS_PATHor
-
Path to a Fallout 4 install folder:
XSE_FO4_GAME_PATH
Project Generation (Optional)
If you use Visual Studio, run the following command:
xmake project -k vsxmake
Note: This will generate a
vsxmakeXXXX/directory in the project's root directory using the latest version of Visual Studio installed on the system.
Alternatively, if you do not use Visual Studio, you can generate a compile_commands.json file for use with a laguage server like clangd in any code editor that supports it, like vscode:
xmake project -k compile_commands
Note: You must have a language server extension installed to make use of this file. I recommend
clangd. Do not have more than one installed at a time as they will conflict with each other. I also recommend installing thexmakeextension if available to make building the project easier.
Upgrading Packages (Optional)
If you want to upgrade the project's dependencies, run the following commands:
xmake repo --update
xmake require --upgrade
Documentation
Please refer to the Wiki for more advanced topics.