Skip to content

v0.2.0-pre.1 — storage + flood sync, one installer for players and host

Pre-release
Pre-release

Choose a tag to compare

@TheGeeks0424 TheGeeks0424 released this 10 Jun 01:49

SyncOrSwim 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

  1. 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.
  2. 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 (server subfolder → 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 via SpawnEntities.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 upstream 1.8.1.0 tag: 3bc0a0dd, c9abfef6, 2989034f).

Install

Everyone — both players and the server host — runs the same installer on their own Nitrox 1.8.1.0 folder:

  1. Close Subnautica, the Nitrox launcher, and the Nitrox server.
  2. Extract SyncOrSwim-Installer.zip into one folder (keep the server subfolder).
  3. 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

GPL-3.0, derivative of SubnauticaNitrox/Nitrox. Intended to be offered upstream once play-tested.