106.525 Loading level.dat: 981340 bytes.
106.525 Info Scenario.cpp:154: Map version 2.0.72-0
106.880 Checksum for script __level__/control.lua: 2722821277
106.890 Script @__factorissimo-2-notnotmelon__/lib/events.lua:52: Finalized 58 events for factorissimo-2-notnotmelon
106.890 Checksum for script __factorissimo-2-notnotmelon__/control.lua: 2946075274
124.581 Script @__factorissimo-2-notnotmelon__/lib/events.lua:52: Finalized 58 events for factorissimo-2-notnotmelon
126.977 Error MainLoop.cpp
126.977 Heavy mode - tick 999 finished
129.369 Error MainLoop.cpp
131.764 Error MainLoop.cpp
132.195 Script @__factorissimo-2-notnotmelon__/lib/events.lua:52: Finalized 58 events for factorissimo-2-notnotmelon
134.640 Error MainLoop.cpp
134.640 Heavy mode - tick 1000 finished
137.121 Error MainLoop.cpp
139.588 Error MainLoop.cpp
140.001 Script @__factorissimo-2-notnotmelon__/lib/events.lua:52: Finalized 58 events for factorissimo-2-notnotmelon
142.465 Error MainLoop.cpp
142.465 Heavy mode - tick 1001 finished
144.922 Error MainLoop.cpp
147.458 Error MainLoop.cpp
154.104 Script @__factorissimo-2-notnotmelon__/lib/events.lua:52: Finalized 58 events for factorissimo-2-notnotmelon
156.565 Error MainLoop.cpp
156.565 Heavy mode - tick 1002 finished
159.017 Error MainLoop.cpp
161.503 Error MainLoop.cpp
Counterintuitively however, despite heavy mode suggesting the gamestate should immediately diverge, multiplayer works fine for days, until a secondary cause, which may or may not be Factorissimo3 related, causes an actual desync.
Since notnotmelon isn't presently around to help with the issue, I'm asking the community for some thoughts:
1) Factorio relies on replaying inputs to all players and producing a deterministic outcome on all machines, and heavy-mode presumably reruns the gamestate locally and checksums it every tick to check for consistency of outcome. But Factorissimo3 causes heavy mode detection to immediately go absolutely berzerk, without actually causing a multiplayer desync. At least, not for days.
What is the difference in the condition for detecting a multiplayer desync versus heavy mode checksum mismatch? What is the gap between heavy mode and multiplayer desync detection that Factorissmo3 skirts?
2) Am I understanding correctly that /heavy-mode is useless to debug desync issues on this world as Factorissimo3 false positives drown out any actual reproduction?
3) Is there some sort of heavy mode plus script or doodad that can I can use to pinpoint the cause of the divergence? Do I diff the desynced gamestate save files? If yes, are there tools that tell me what entity/data is under a specific offset? Is there a /ultra-heavy-mode that spits out a stack trace of what Lua function executed differently?

