A launcher for Space Station 13 servers, using Tauri and managing BYOND versions internally.
| CM-SS13 Game Servers | Authentication Options (Steam only available in Steam builds) | Automatic Relay Selection |
|---|---|---|
![]() |
![]() |
![]() |
- Automatically installs the correct version for the game server you are connecting to.
- Private WebView2 install location to avoid conflicts with system BYOND.
- CM-SS13 Authentication via web browser authentication flow
- Handles tokens refresh to stay logged in indefinitely
- BYOND Authentication via pager
- Steam Authentication via Authentication ticket flow/Authentik backend
- Supports Steam and Discord rich presence
- Displays currently launched server, as well as the number of players online
- Allows friends to join directly from the friends list
- Automatically deploys tagged versions to GitHub Releases and Steam
- Steam releases are pushed to a
latestbranch for manual deployment todefault.
Install frontend dependencies first:
npm installThe launcher has two variants controlled by Cargo features and Tauri config overlays:
| Variant | Feature flag | Config overlay | Description |
|---|---|---|---|
| SS13 (generic) | (none) | (none) | Generic SS13 server browser |
| CM-SS13 | cm_ss13 |
--config src-tauri/tauri.cm.conf.json |
CM-SS13 specific launcher |
Both variants can optionally include Steam support by adding the steam feature.
# SS13 (generic)
npm run tauri -- dev
# CM-SS13
npm run tauri -- dev --features cm_ss13 --config src-tauri/tauri.cm.conf.json
# Either variant with Steam support
npm run tauri -- dev --features steam
npm run tauri -- dev --features cm_ss13,steam --config src-tauri/tauri.cm.conf.jsonTo run a Steam build in development, place a file named steam_appid.txt in src-tauri/ containing 4313790. Otherwise, the app will immediately close and attempt to reopen via Steam.
# SS13 (generic)
npm run tauri -- build
# CM-SS13
npm run tauri -- build --features cm_ss13 --config src-tauri/tauri.cm.conf.jsonDownload the WebView2 fixed runtime (bundled into the installer so users don't need system WebView2):
./scripts/download-webview2.ps1No other platform-specific setup is needed on Windows.
Install system dependencies (Ubuntu 24.04):
sudo apt-get install -y \
libwebkit2gtk-4.1-0 libwebkit2gtk-4.1-dev \
libjavascriptcoregtk-4.1-0 libjavascriptcoregtk-4.1-dev \
gir1.2-javascriptcoregtk-4.1 gir1.2-webkit2-4.1 \
libappindicator3-dev librsvg2-dev \
patchelf musl-tools cabextractLinux builds require bundled sidecars (Wine, WebView2, cabextract) for running BYOND.
-
Download Wine, winetricks, and cabextract (bundles Wine so Linux users can run BYOND via Wine):
./scripts/download-wine.sh
-
Download the WebView2 fixed runtime:
./scripts/download-webview2.sh
-
Prepare the sidecar directory for AppImage bundling. The directory name must match the
productNamein tauri.conf.json:# For SS13 (generic) — productName is "SS13 Launcher" mkdir -p "/tmp/lib/SS13 Launcher" cp src-tauri/wine.tar.zst "/tmp/lib/SS13 Launcher/" cp src-tauri/winetricks "/tmp/lib/SS13 Launcher/" cp src-tauri/cabextract "/tmp/lib/SS13 Launcher/" chmod +x "/tmp/lib/SS13 Launcher/winetricks" "/tmp/lib/SS13 Launcher/cabextract" cp -r src-tauri/webview2-runtime "/tmp/lib/SS13 Launcher/webview2-runtime" # For CM-SS13 — productName is "CM-SS13 Launcher" mkdir -p "/tmp/lib/CM-SS13 Launcher" cp src-tauri/wine.tar.zst "/tmp/lib/CM-SS13 Launcher/" cp src-tauri/winetricks "/tmp/lib/CM-SS13 Launcher/" cp src-tauri/cabextract "/tmp/lib/CM-SS13 Launcher/" chmod +x "/tmp/lib/CM-SS13 Launcher/winetricks" "/tmp/lib/CM-SS13 Launcher/cabextract" cp -r src-tauri/webview2-runtime "/tmp/lib/CM-SS13 Launcher/webview2-runtime"
-
Linux AppImage builds also require a custom tauri-cli fork and the linux config overlay:
cargo install tauri-cli --git https://github.com/tauri-apps/tauri --branch feat/truly-portable-appimage --force
-
Build with the linux config overlay and the
ADD_DIRenv var:# SS13 (generic) ADD_DIR="/tmp/lib/SS13 Launcher" cargo tauri build --config src-tauri/tauri.linux.conf.json # CM-SS13 ADD_DIR="/tmp/lib/CM-SS13 Launcher" cargo tauri build --features cm_ss13 \ --config src-tauri/tauri.cm.conf.json --config src-tauri/tauri.linux.conf.json
When Tauri commands or types change, regenerate the TS bindings:
cd src-tauri && cargo test --features steam --lib export_bindingsThe steam feature is required so that Steam-specific bindings are included.
Use tools/release.sh [semver] to change the version in Cargo.toml, create a commit changing the version, and tag that commit with the semver. When this is pushed, GitHub Actions will push new builds to both GitHub Releases and Steam.
Manually download the .msi and .exe and upload these to Microsoft to /try/ and avoid SmartScreen when installed via GitHub Releases.
See issues tagged with https://github.com/cmss13-devs/cm-launcher/labels/feature-request or https://github.com/cmss13-devs/cm-launcher/labels/bug as an easy place to start contributing.


