Skip to content

Fix Cross OS Play Immediate Desync#623

Merged
notfood merged 2 commits intorwmt:devfrom
Tick-git:Fix-Linux-Windows-Hash-Missmatch
Aug 14, 2025
Merged

Fix Cross OS Play Immediate Desync#623
notfood merged 2 commits intorwmt:devfrom
Tick-git:Fix-Linux-Windows-Hash-Missmatch

Conversation

@Tick-git
Copy link

@Tick-git Tick-git commented Aug 14, 2025

Label: 1.6, Fix

With the Mono update in 1.6, method names now include additional build- and platform-specific details, which breaks cross-platform consistency.

This PR removes the new Mono 1.6 extra data to restore consistent cross-platform stack trace hashing.

I believe this should fix all cross-OS play. It has been tested on Linux/Windows.

Desync file example below for #621 in 1.5 and 1.6

Behavior in 1.5

In Mono 1.5, stack traces included a postfix like <0xffffffff>.

1 5

Behavior in 1.6

In Mono 1.6, the format changed to [0x00025] in <b994eb69d2df47fdb01add71b9ac29d2>:0.
This extra data maps the method to a specific assembly and changes with each build.
Because RimWorld assemblies differ between Linux and Windows, these values also differ between platforms, causing desync issues.

1 6

This fix normalizes method names by cutting this part:

at Verse.Rand.RangeInclusive (int,int) >>>>>>>>>>>>>>>>>>>>>>>>>>>>> [0x00010] in <5ad0188af7874f079052550c95a7a031>:0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<
@notfood notfood added fix Fixes for a bug or desync. high priority Important for enjoyable gameplay with the mod. 1.6 Fixes or bugs relating to 1.6 (Not Odyssey). labels Aug 14, 2025
@notfood notfood moved this to In review in 1.6 and Odyssey Aug 14, 2025
@notfood notfood merged commit 1b4f300 into rwmt:dev Aug 14, 2025
1 check passed
@github-project-automation github-project-automation bot moved this from In review to Done in 1.6 and Odyssey Aug 14, 2025
Tick-git added a commit to Tick-git/Multiplayer that referenced this pull request Aug 31, 2025
RBD probing was originally to address 1.6 issues with crossplay between Windows and Linux, as well as when players were not using the same build of the mod. This issue has now been resolved by rwmt#623.

The probing caused errors when a constructor was invoked via reflection. I don’t have an explanation for why this is happening, but it’s not worth investigating at the moment, as we are reverting the code to the state that Zetrith implemented, along with the rwmt#623 fix.
notfood pushed a commit that referenced this pull request Sep 1, 2025
RBD probing was originally to address 1.6 issues with crossplay between Windows and Linux, as well as when players were not using the same build of the mod. This issue has now been resolved by #623.

The probing caused errors when a constructor was invoked via reflection. I don’t have an explanation for why this is happening, but it’s not worth investigating at the moment, as we are reverting the code to the state that Zetrith implemented, along with the #623 fix.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.6 Fixes or bugs relating to 1.6 (Not Odyssey). fix Fixes for a bug or desync. high priority Important for enjoyable gameplay with the mod.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants