Skip to content

BaseLib modifies ModelDb despite "affects_gameplay=false", causing multiplayer hash mismatch #172

@CapePisces

Description

@CapePisces

BaseLib v3.0.6 has compatibility issues with Slay the Spire 2 v0.103.2 in multiplayer

Environment

Game :Slay the Spire 2 v0.103.2
Platform: Steam
BaseLib version: v3.0.6
OS: Windows 10 22H2 x64

Issue Description

Problem:
This mod is configured to not affect multiplayer gameplay, but it still modifies the ModelDb, causing a hash mismatch and preventing multiplayer connections.
Details:
The mod’s "affects_gameplay" flag is set to false. However, after installing the mod, the ModelDb hash changes from 1357847701 to 4093699297 on the game version mentioned above, which results in a failed multiplayer validation.
Error Logs:
[INFO] [JoinFlow] Got initial game info message. Version: v0.103.2 Hash: 1357847701 Type: Standard State: InLobby
[WARN] [JoinFlow] Our version v0.103.2 matches the host's, but our Model ID hash does not! Disconnecting
[DEBUG] [SteamClient] Disconnecting from host (now: False reason: AppInternalError debug: )
[INFO] [JoinFlow] Disconnected during join flow, reason: InternalError. Failing with an exception
[ERROR] Received connection failed exception while joining game: MegaCrit.Sts2.Core.Multiplayer.Connection.ClientConnectionFailedException: ModelDb hash mismatch. Host: 1357847701 Ours: 4093699297

Steps to Reproduce

Install Slay the Spire 2 via Steam on Windows
Install only BaseLib v3.0.6 into the mods folder
Launch the game and join a multiplayer session
Attempt to connect to another player using the same game version but without BaseLib installed

Expected Behavior

If a mod is marked as not affecting multiplayer (i.e., "affects_gameplay": false), it should not change the ModelDb hash, or at least should not cause multiplayer connection failures.

Actual Behavior

Even with the ignore setting enabled:
The ModelDb hash differs from other players
The connection fails with the error:
"ModelDb hash mismatch"

Additional Notes

It appears that BaseLib, despite being excluded from multiplayer checks, still modifies the ModelDb. As a result, it is effectively incompatible with multiplayer in practice.
This may indicate that:
The mod is still modifying core game data structures
Or the "affects_gameplay" flag does not fully prevent ModelDb changes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions