v0.2.0-pre.1 — storage + flood sync, one installer for players and host
Pre-releaseSyncOrSwim v0.2.0-pre.1
Second pre-release of the co-op sync fixes for Nitrox 1.8.1.0 (Subnautica build 1.22.83031). Supersedes v0.1.0-test.1 — please update; the old build had the flood-sync serializer gap described below and included an experimental change that has been withdrawn.
⚠️ Pre-release status
Not yet soak-tested in a live two-player session. The installer backs up every file it replaces and an uninstaller is included. Issues welcome.
What it fixes
- Shared storage desync + item loss on rejoin. Deposits into any shared container (lockers, wall lockers, Prawn/Seamoth storage, …) now send the complete item to the server, which persists it and broadcasts it to everyone in range. Previously the thin "item moved" packet was silently dropped whenever the server or the receiving client didn't already know the item — deposits never appeared for the other player and could vanish entirely after a relog. Idempotent on the item's unique ID — no duplication.
- Base flooding desync. Per-room water level and hull strength now sync live (1 Hz from the simulating client) and rehydrate players who (re)join mid-flood. Previously one player could flood while the other stayed dry, and repairs only converged after a relog.
Changed since v0.1.0-test.1
- The host must now also run the installer (same zip). Flood sync ships a new metadata payload the server has to deserialize; the installer now also swaps the model DLL the server loads (
serversubfolder →lib\). The v0.1.0 claim of "no server changes" was wrong — flood sync silently failed on an unpatched host. Storage sync still works against an unpatched host. - Flood sync now works under both Nitrox serializer modes (JSON and protobuf — the new metadata type was previously never registered with the protobuf serializer, the default on most servers).
- Storage fix finalized after a full source audit: idempotency verified at every hop (server-side reparent via
EntityRegistry.AddOrUpdate, receiver-side cleanup viaSpawnEntities.ForceRespawn); an unused dependency was removed. The approach generalizes the always-recreate path upstream Nitrox already uses for planters. - Withdrawn: an experimental VR loading-screen guard that shipped inside the v0.1.0 binaries. It is under separate investigation and will return as a proper fix if warranted.
- Full modified source is now publicly browsable at TheGeeks0424/Nitrox, branch
fix/storage-and-flood-sync(3 commits on top of the upstream1.8.1.0tag:3bc0a0dd,c9abfef6,2989034f).
Install
Everyone — both players and the server host — runs the same installer on their own Nitrox 1.8.1.0 folder:
- Close Subnautica, the Nitrox launcher, and the Nitrox server.
- Extract
SyncOrSwim-Installer.zipinto one folder (keep theserversubfolder). - Double-click
Install-SyncOrSwim.bat— it auto-detects your Nitrox folder and backs up everything it replaces.
Uninstall-SyncOrSwim.bat restores the originals. Full instructions, prerequisites, and troubleshooting: INSTALL.md.
World saves are untouched and stay compatible. Unpatched players can still connect and play; they just don't get the fixes. Protocol version is unchanged (1.8.1.0).
Source
- Full tree: https://github.com/TheGeeks0424/Nitrox/tree/fix/storage-and-flood-sync
- Changed-files overlay:
syncorswim-source-v0.2.0-pre.1.zip(attached) — 7 files, 2 modified + 5 new.
GPL-3.0, derivative of SubnauticaNitrox/Nitrox. Intended to be offered upstream once play-tested.