模组简介
Multiplayer Reconnect is a mod that allows you to reconnect to people mid game. includes a custom save manager that lets you make and load mid run saves. Rich Discord presence, with join lobby button. Both Host and rejoining client require the mod to be installed. This mod does NOT require all people in the lobby to have the mod installed. i have done 2 months worth of testing to make sure it does not cause any desyncs with unmodded clients. meaning you can have this mod installed 24/7 it should not cause problems unless the game updates and breaks something. Should be comaptbile with a wide range of mods aslong as they don't change the game too much. character additoin mods, new cards, new events should all work? Bug Fixes included in this mod. disabled checksum happening between turns, to prevent false multiplayer desync trigger due to async processing of block related relics. the fix is host side, only host needs the mod to prevent this desync. Notes for the Devs Multiplayer desync at end of turn — v0.111.0 In co-op the host kicks the client for StateDivergence at a turn boundary. The only field that differs is a player's block. Both machines calculate the same block values in the same order. One has just applied fewer of them than the other at the moment the checksum is taken, and the next checksum matches again. The cause is where the checksum fires. Hook.BeforeSideTurnEnd walks the relics and powers on the combat turn loop, not inside the action queue, so the block they grant lands with no action running. If one of those hooks pauses for a player choice, the game creates a GenericHookGameAction, and RunManager.SendPostActionChecksum takes a checksum when that action finishes — while the relic walk is still going. So each machine gets sampled at a different point in it. How we reproduced it Two players in co-op, relics that grant block at end of turn (Ripple Basin, Horn Cleat, Regalite), plus a power that asks the player a from-hand question during a turn-end hook. End the turn. It diverges on turn 1, at checksum ID 11, with block 8 vs 4 — three runs out of three with identical numbers. Worth noting the relics alone weren't enough. We ran 40 turns with just the block relics and it never diverged once. It needs the choice-pausing hook as well, because that's what creates the action the checksum hangs off. What fixed it A Harmony patch that skips the post-action checksum when the action is a GenericHookGameAction. That action finishing tells you nothing about how far the relic walk has got, so it isn't a valid point to compare state. That's the same thing SendPostActionChecksum already does for EndPlayerTurnAction and ReadyToBeginEnemyTurnAction — two action types you already skip because their completion isn't a safe sample point. We deliberately didn't make it wait for the hooks to drain instead. That's a timing condition, so the two machines could skip different checksums and their checksum IDs would drift out of step, which is worse than the original bug. Keying on action type gives the same answer on both machines every time. It costs very little coverage — card plays, console commands, turn starts and both turn-end phases still checksum, and "after player turn phase two end" runs once the relic walk has settled. With the patch, the same repro runs 40 turns clean, no divergence, and block still changes 242 times across the run, so the relics are all still firing.
详情图片
条目信息
- 所属游戏
- 杀戮尖塔 2 (Slay the Spire 2)
- 创意工坊 ID
- 3789018826
- 文件名
- 3789018826.bin
- 文件大小
- 315.7 KB
- 最后更新
- 2026/10/31
- 内容版本
- v1793390189-e63773492c322ed4
- 作者与来源
- 由原作者发布于 Steam 创意工坊。本站不改变署名,作者信息与原始内容请以 Steam 原始页面 为准。
