Lightweight Slay the Spire 2 mod that exports completed runs and uploads them to an STS2Runs-compatible server.
Build and publish in two steps:
task build-release
task upload-releaseOutput:
dist/STS2RunsMod-v<version>.zip- Zip contents:
STS2RunsMod/mod_manifest.json,STS2RunsMod/STS2RunsMod.dll, andSTS2RunsMod/installation_instructions.txt
Upload behavior:
- GitHub release tag:
v<version>(created automatically if missing) task upload-releaseuploadsdist/STS2RunsMod-v<version>.zip
When mod_manifest.json is pushed to main/master, GitHub Actions checks whether the version field changed compared to the previous commit.
- If the version did not change, the workflow exits successfully without publishing.
- If the version changed, it runs
task build-releaseinnix develop, then creates or updates releasev<version>and uploadsdist/STS2RunsMod-v<version>.zip.
Prerequisite for upload:
gh auth loginFor a local Linux install shortcut (build + copy into your default Steam path):
./install.shIf you are coming from My Runs, install or update from the GitHub releases page.
- Build the release zip with
task build-release. - Extract it so you have a folder named
STS2RunsMod. - Copy that folder to
<Slay the Spire 2 install dir>/mods/.
Resulting path should be:
<Slay the Spire 2 install dir>/mods/STS2RunsMod/mod_manifest.json<Slay the Spire 2 install dir>/mods/STS2RunsMod/STS2RunsMod.dll
Common Steam install locations:
- Linux:
~/.local/share/Steam/steamapps/common/Slay the Spire 2 - macOS:
~/Library/Application Support/Steam/steamapps/common/Slay the Spire 2 - Windows:
C:\Program Files (x86)\Steam\steamapps\common\Slay the Spire 2
If your library is on another drive, open Steam -> Slay the Spire 2 -> Properties -> Installed Files -> Browse to get the exact install directory.
The mod writes config.cfg next to the installed DLL on first run.
config.cfg fields:
ServerUrl: Base URL for the API (example:https://your-server.example). Use HTTPS for any non-localhost endpoint.Enabled:trueto enable upload/auth behavior,falseto disable all network activity.
- Auth: Steam ID + Steamworks auth session ticket (
/api/auth/mod). - Upload: run JSON payload (base64), SHA-256 hash, and profile number (
/api/runs/upload). - No upload is attempted when gameplay-affecting mods are detected.
Auth unavailablein logs: Steamworks ticket could not be acquired (Steam not running, no session, or Steamworks unavailable).Auth request rejected: checkServerUrl, server availability, and endpoint compatibility.- Upload failures after auth: verify server API routes and that the server accepts mod-issued bearer tokens.
MIT. See LICENSE.