An unofficial Android launcher for Slay the Spire 2. Alpha builds can be found on the Cinderbox Discord server.
See the codeAn Android launcher for Slay the Spire 2, built on a custom Godot 4.5.1 engine with .NET/Mono and Harmony runtime patching.
Disclaimer: This is an unofficial community project. Slay the Spire 2 is developed and published by Mega Crit Games. A valid Steam account that owns Slay the Spire 2 is required. Game files are downloaded directly from Steam after authentication. No game assets are included in this repository.
At startup, STS2Mobile.dll is loaded via coreclr_create_delegate and applies Harmony patches to adapt the desktop game for mobile. The launcher intercepts GameStartupWrapper() to present a Steam login screen before the game starts.
bootstrap.pck and shows the launcher UI for Steam login and game download.sts2.dll and the game runs natively after authentication.Custom patches to the Godot 4.5.1 engine source for Android-specific issues:
src/STS2Mobile/
ModEntry.cs # Entry point ([UnmanagedCallersOnly] Apply())
PatchHelper.cs # Shared patch utility + logging
Patches/ # Harmony patches (one file per concern)
Launcher/ # Programmatic Godot UI (MVC)
Steam/ # SteamKit2 login, depot download, cloud saves
android/ # Godot Android gradle project
src/.../GodotApp.java # Activity, assembly setup, Keystore encryption
assets/bootstrap.pck # Minimal PCK for launcher-only mode
src/stubs/ # Native library stubs (Steam API, Sentry)
scripts/ # Build and tooling scripts
android/config.gradle for versions)make-bootstrap-pck.py and SCons)upstream/godot-export/scripts/build-godot.sh)vendor/fmod-sdk/Note: This is a WIP. There are other binaries that are required and will fail if you just run the ./build.sh script. Godot Engine can be found on their repo https://github.com/godotengine/godot. Harmony can be found here https://github.com/Ekyso/Harmony but the version used in StS2 Launcher is compiled using dotnet 9.0. FMOD can be found here https://www.fmod.com/. Spine can be found here https://esotericsoftware.com/. I plan to upload the custom fork of Godot Engine used and the dotnet 9.0 Harmony soon. However, Spine and FMOD will not be uploaded due to licensing restrictions. Information on licensing can be found in the THIRD-PARTY-NOTICES.txt of the root folder.
bash scripts/build.sh
This runs the full pipeline:
dotnet publish the patcher (outputs STS2Mobile.dll + SteamKit2 dependencies)android/assets/dotnet_bcl/libSystem.Security.Cryptography.Native.Android.so to JNI libs (for TLS)gradle.properties./gradlew assembleMonoReleaseOutput: android/build/outputs/apk/mono/release/StS2Launcher-v<version>.apk
adb install -r android/build/outputs/apk/mono/release/StS2Launcher-v*.apk
# Fresh install (clear saved credentials + cached assemblies)
adb shell pm clear com.game.sts2launcher
# Regenerate bootstrap PCK (only if project.godot changes)
python3 scripts/make-bootstrap-pck.py
# Rebuild Godot engine (only if engine source changes)
bash scripts/build-godot.sh
# Rebuild native stubs (requires Android NDK)
bash src/stubs/build_stubs.sh
Both devices must be on the same local network. The mobile app discovers nearby games via UDP broadcast, or you can enter the PC's IP address manually.
On the PC, add --fastmp to the Steam launch options:
Steam > Slay the Spire 2 > Properties > Launch Options and enter --fastmp
This enables the fast multiplayer mode that the mobile client expects.
src/stubs/) provide no-op .so files for desktop-only libraries (Steamworks SDK, Sentry) so the linker is satisfied at runtime.project.godot wrapper that enables .NET module initialization without game files.android.arm64 build, so it's disabled via PCK patching and Harmony patches.ModEntry.cs since the Godot SDK source generators aren't available.This project is licensed under the MIT License. See THIRD_PARTY_LICENSES.md for third-party dependency licenses.
FMOD requires a commercial license if your project generates revenue. Spine Runtimes require a valid Spine Editor license. See the third-party licenses file for details.
20 followers · starred Mar 2026
152 followers · starred Apr 2026
69 followers · starred Mar 2026
30 followers · starred Apr 2026
C#
73.9%
C
20.8%
Java
3.4%
An unofficial Android launcher for Slay the Spire 2. Alpha builds can be found on the Cinderbox Discord server.
See the codeAn Android launcher for Slay the Spire 2, built on a custom Godot 4.5.1 engine with .NET/Mono and Harmony runtime patching.
Disclaimer: This is an unofficial community project. Slay the Spire 2 is developed and published by Mega Crit Games. A valid Steam account that owns Slay the Spire 2 is required. Game files are downloaded directly from Steam after authentication. No game assets are included in this repository.
At startup, STS2Mobile.dll is loaded via coreclr_create_delegate and applies Harmony patches to adapt the desktop game for mobile. The launcher intercepts GameStartupWrapper() to present a Steam login screen before the game starts.
bootstrap.pck and shows the launcher UI for Steam login and game download.sts2.dll and the game runs natively after authentication.Custom patches to the Godot 4.5.1 engine source for Android-specific issues:
src/STS2Mobile/
ModEntry.cs # Entry point ([UnmanagedCallersOnly] Apply())
PatchHelper.cs # Shared patch utility + logging
Patches/ # Harmony patches (one file per concern)
Launcher/ # Programmatic Godot UI (MVC)
Steam/ # SteamKit2 login, depot download, cloud saves
android/ # Godot Android gradle project
src/.../GodotApp.java # Activity, assembly setup, Keystore encryption
assets/bootstrap.pck # Minimal PCK for launcher-only mode
src/stubs/ # Native library stubs (Steam API, Sentry)
scripts/ # Build and tooling scripts
android/config.gradle for versions)make-bootstrap-pck.py and SCons)upstream/godot-export/scripts/build-godot.sh)vendor/fmod-sdk/Note: This is a WIP. There are other binaries that are required and will fail if you just run the ./build.sh script. Godot Engine can be found on their repo https://github.com/godotengine/godot. Harmony can be found here https://github.com/Ekyso/Harmony but the version used in StS2 Launcher is compiled using dotnet 9.0. FMOD can be found here https://www.fmod.com/. Spine can be found here https://esotericsoftware.com/. I plan to upload the custom fork of Godot Engine used and the dotnet 9.0 Harmony soon. However, Spine and FMOD will not be uploaded due to licensing restrictions. Information on licensing can be found in the THIRD-PARTY-NOTICES.txt of the root folder.
bash scripts/build.sh
This runs the full pipeline:
dotnet publish the patcher (outputs STS2Mobile.dll + SteamKit2 dependencies)android/assets/dotnet_bcl/libSystem.Security.Cryptography.Native.Android.so to JNI libs (for TLS)gradle.properties./gradlew assembleMonoReleaseOutput: android/build/outputs/apk/mono/release/StS2Launcher-v<version>.apk
adb install -r android/build/outputs/apk/mono/release/StS2Launcher-v*.apk
# Fresh install (clear saved credentials + cached assemblies)
adb shell pm clear com.game.sts2launcher
# Regenerate bootstrap PCK (only if project.godot changes)
python3 scripts/make-bootstrap-pck.py
# Rebuild Godot engine (only if engine source changes)
bash scripts/build-godot.sh
# Rebuild native stubs (requires Android NDK)
bash src/stubs/build_stubs.sh
Both devices must be on the same local network. The mobile app discovers nearby games via UDP broadcast, or you can enter the PC's IP address manually.
On the PC, add --fastmp to the Steam launch options:
Steam > Slay the Spire 2 > Properties > Launch Options and enter --fastmp
This enables the fast multiplayer mode that the mobile client expects.
src/stubs/) provide no-op .so files for desktop-only libraries (Steamworks SDK, Sentry) so the linker is satisfied at runtime.project.godot wrapper that enables .NET module initialization without game files.android.arm64 build, so it's disabled via PCK patching and Harmony patches.ModEntry.cs since the Godot SDK source generators aren't available.This project is licensed under the MIT License. See THIRD_PARTY_LICENSES.md for third-party dependency licenses.
FMOD requires a commercial license if your project generates revenue. Spine Runtimes require a valid Spine Editor license. See the third-party licenses file for details.
20 followers · starred Mar 2026
152 followers · starred Apr 2026
69 followers · starred Mar 2026
30 followers · starred Apr 2026
C#
73.9%
C
20.8%
Java
3.4%