Skip to content

[Feature] Support for Android Launcher (Handling Steamworks.NET dependencies) #38

@asdoo4069

Description

@asdoo4069

Area

Compatibility

Motivation / use case

I am trying to run Slay the Spire 2 on an Android environment using a community-made launcher (StS2-Launcher_Mod_Manager). While most other mods(include BaseLib) work perfectly fine, RitsuLib and any mods that depend on it cause a black screen crash on startup. Since RitsuLib is a core dependency for many great mods, I want to achieve compatibility so mobile launcher users can enjoy them as well.

Proposed solution

The crash is caused by the absence of libsteam_api.so on Android. I would like to propose "gating" Steamworks.NET calls when running on non-PC platforms.

Specifically, I was wondering if it would be feasible to implement a check to skip Steam-related logic. For example:

  • Using Conditional Compilation (#if, #else) to exclude Steamworks calls.
  • Or using Runtime Checks to prevent Steam API calls:
    if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {
        // Execute Steamworks.NET logic (SteamUser.GetSteamID, etc.)
    }

Or, if possible, providing a separate "mobile-aware" build that excludes Steamworks dependencies entirely.

Alternatives considered

I have consulted with the launcher developer, but they confirmed this issue cannot be fixed launcher-side because it's a direct dependency within the mod's code. The only other alternative would be for users to manually decompile and patch the mod, which is not sustainable for most players.

Additional context

According to the launcher's technical analysis, the launcher provides a "no-op stub" for libsteam_api.so to allow the app to boot, but actual API calls to Steamworks SDK functions will always fail and cause a crash on Android. As RitsuLib is a vital library for the modding ecosystem, this small compatibility fix would have a huge impact on the growing mobile modding community.

I understand your primary focus is the PC version. However, if this isn't a massive structural task that requires rewriting the core logic, would you be open to implementing a fix or providing a "mobile-aware" build? I would love to be able to use your mod and its dependents on the mobile launcher. Thank you for your consideration!

This issue was analyzed in the launcher's repo: iunius612/StS2-Launcher_Mod_Manager#8

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/compatibilityCompatibility with game versions, other mods, or runtime environments.good first issueGood for a first external contribution.status/confirmedConfirmed and actionable.type/featureFeature request or behavior improvement.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions