# Stardew mod-sync client

The client runs before SMAPI on receiving/player computers and synchronizes the
game's `Mods` directory from `https://stardew.thetorg.org/` by default. The
website installers put it at `<game>/.stardew-modsync` and update the managed
Steam launch path; players only need to launch Stardew normally afterward.

- macOS/Linux clients: the installer makes Steam's `StardewValley` wrapper call
  `<game>/.stardew-modsync/unix/launch-stardew`.
- Windows: the installer keeps the previous `.thors-fjord/launch.ps1` Steam
  launch option working and refreshes the Thor's Fjord desktop shortcut.

To disable remote updates on the source computer, create this file in the
Stardew game directory (beside `Mods` and `StardewModdingAPI`):

`thors-fjord-update.txt`

Set its content to:

`disable remote update`

The normal launcher will then skip all webserver access and launch the locally
installed mods. This avoids a source-to-webserver-to-source loop without a
custom launcher. Delete the file, empty it, or set it to `enable remote update`
to resume normal synchronization. The setting is case-insensitive and ignores
surrounding or repeated whitespace.

Set `STARDEW_MODSYNC_FEED` to another URL or a local staged `webserver`
directory for testing. The Python client also accepts `--feed`, `--game-dir`,
and `--dry-run`; the PowerShell client accepts `-Feed`, `-GamePath`, `-DryRun`,
and `-NoLaunch`.

The last successfully installed ZIP hashes are stored in
`<game>/.stardew-modsync-manifest.json`, outside `Mods`. A synchronization
downloads and validates all changed archives before changing any mod directory,
then applies removals and replacements transactionally.
