Skip to content

Corter ModSync v0.13.1-pre1 (SPT 4.1.x)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Aug 07:14
· 0 commits to main since this release

Requires SPT 4.1.x

Built against SPT 4.1.1 and declared as ~4.1.0, so it loads on any 4.1.x - including 4.1.3, which renamed the NuGet packages to SPTushonka.* but changed nothing ModSync uses. It will not load on SPT 4.0.x: the 4.1 server checks which SPTarkov.Server.Core a mod was compiled against and refuses to load it on a mismatch.

Still on SPT 4.0.x? Use v0.12.7. That line is still supported on the SPT4.0.x branch - both versions get the same features.

Changes

This brings the 4.1 line level with v0.12.7 on the 4.0 line, plus one fix that only affects 4.1.

  • Fixed: paths inside the server folder were advertised as SPT\... on 4.1. SPT 4.1 renamed its server folder to SPT_Runtime/, but ModSync still told clients that a syncPath like user/mods lived under SPT\. Nothing failed loudly - hashes matched and downloads worked - the files simply landed in <gameRoot>/SPT/, a folder 4.1 doesn't have. The folder name is now read from the server itself rather than hardcoded, so it is correct on both lines and survives any future rename.
  • New: optional per syncPath. Set "optional": true and the client gets a working checkbox for that path in the F12 menu, starting in whatever state enabled gives it. Until now the only path a player could tick or untick was an opt-IN one ("enabled": false); this adds the other half, a mod that is synced by default but can still be refused. Unticking uninstalls what ModSync installed there.
    Do not put it on the three catch-alls (../BepInEx/plugins, patchers, config) - they carry the mods your players need to connect, so one untick would strip the modset.
  • New: removing a mod from your config now removes it from clients. Delete a mod's files from the server and delete its syncPaths entry, and every client uninstalls its copy on the next sync, with the usual prompt. Previously the entry disappearing meant clients never heard about it again and kept the mod permanently.
    ModSync records what it served in .modsync-served.json next to config.jsonc, and keeps offering a removed entry as empty until you re-add it or clear that file. Deleting the entry but keeping the files still does the opposite, by design: the entry is what carves a mod out of the catch-alls, so without it they sync it to everyone.
  • Fixed: renaming a syncPath no longer resets your players' F12 choices. Each client stored its toggles under the syncPath's name, so relabelling an entry made every player's setting for that mod revert to default and left a dead line in their config. Toggles are now stored under the path and merely displayed using the name. Each client carries its existing choices over on the first launch and tidies the old lines away; nobody has to do anything.
    This mattered more once optional existed: a reset re-ticks an opt-out path, which would have silently reinstalled a mod the player had refused.

Upgrade notes

Unzip into your game/server root as usual - clients update themselves via sync, no manual steps.

Your existing config.jsonc is untouched and behaves exactly as before; optional defaults to false.

If you had a syncPath without a ../ prefix (user/mods and the like), your players have a stray <gameRoot>/SPT/ folder holding the old copy. ModSync now serves that path to the correct place and stops tracking the old one, so the leftovers are inert but will not be cleaned up automatically - delete that SPT/ folder on each client once everyone has updated.

If you already have an entry you expected players to be able to untick, it needs "optional": true adding. An "enabled": true path has never been shown in the F12 menu, and still isn't without that option.

Testing status

The three features above were tested on the 4.0 line through the v0.12.7 pre-releases, on live servers with headless and player clients, before being ported here unchanged. Both test suites are green in CI.

The SPT_Runtime path fix is new in this release and specific to 4.1. If you serve a syncPath that lives inside the server folder, that is the part worth watching - please open an issue if anything lands somewhere unexpected.

Docs

Full Changelog: v0.13.0...v0.13.1-pre1