Mod Mash Splinter for Undergrounds + Subways, Now you can go underground and expand your base in multiple dimensions
Mods introducing new content into the game.
Map generation and terrain modification.
Hello, after traveling underground using the underground shaft all other players besides the host get instantly desynced and kicked out of the game. When they rejoin the game the mod runs into an unrecoverable error. Is there any workaround or fix to make this mod usable in multiplayer? Everything works just fine in singleplayer.
Im not sure. I have never played multiplayer it may be due to tge underground surface taking time to generate. I'll have a look at the inner code and see if there is anything that stands out but testing is not really somthing i can do. It may be size only way to test us create a small ish world and see if that issue stilm happens.
Thank you for the quick reply. Next time we play I'll try creating the subterranean level in singleplayer mode before hosting multiplayer to see if it has any effect, the initial underground shaft placement lag might be the culprit for causing the desyncs, it's just the non-recoverable error I'm more worried about code wise. Other cause that might have affected the desync was that two players were simultaneously entering the shaft.
Thanks sounds like the lag was experienced and didn't kill it so may be somthing simpler. Hopefully
Ok, the underground shafts will always cause desync when someone else than host tries to enter them, after which the game crashes with the following error when they attempt to rejoin the session.
The mod ModMash Splinter, Underground (1.1.11) caused a non-recoverable error. Please report this error to the mod author.
Error while running event modmashsplinterunderground,on_tick (ID 0) ...splinterunderground_ _/prototypes/scripts/undergroundlua:532: attempt to index field 'character' (a nil value)
stack traceback: ...splinterunderground_ /prototypes/scripts/underground.lua:532: in function 'local access_ process' ...splinterunderground_ /prototypes/scripts/underground.lua:667: in function ,..splinterunderground Jprototypes/scripts/underground.lua:637>
Thank you that atleast points me in the right direction i will se what i can do
adding a check that the player is valid and character is not nil
testing what i can now
fingers crossed
fingers crossed
Bad news unfortunately, now the desync for other players happens as soon as I attempt to place an underground shaft anywhere, before the desync happened only after someone other than host attempted to enter one.
Other players keep getting desynced forever if they enter the underground level but the game no longer runs into a non-recoverable error when they rejoin the game while their character's last known position was underground, so the update must have fixed something, it's now just the desyncing that's a problem.
I'm going to see if I can get two instances running in hopes to be able to test
Unfortunately I cannot seem to replicate. A log or step by step or something may help.
I got to instances running and hosted a Lan game and connected.
I went with both players above below and even tried dying to see if there would be an issue respawning.
not sure what to do.
Yeah I tried the same thing. Hosted a LAN game with 2 instances of the game running and neither the client nor the host had any trouble entering the shafts. Does this help to pinpoint the problem at all? As in it's not desyncing over LAN but in actual Multiplayer the client does desync.
Should be same thing just different way of connecting.
The only other thing i could try is make a mods to reset any spawn to nauvis origin point. I cant include that in undergrounds. Do you have an earlier save before the desync
hmm i just checked. i do check spawns and the location. if it was in the middle of nowhere then that area is corrected so shouldn't be an issue either
Hello,
I would like to second this issue. My friend and I also experienced this problem as soon as I put the underground shaft down. I managed to see the underground for like 5 seconds before getting desynced and having to redownload the map. When the redownload is done it kicks me out with a desync report. After that if I try to login to the same game I get desynced instantly or in a matter of seconds.
I don't seem to be able to drop files on this site so maybe I could send you the relevant logs through your discord which I have just joined.
Regards,
Actually I have taken a look at the logs and I feel like what I'm sending here should contain the relevant information (this is a log of what happens after I try connecting to the game after being desynced) :
31.190 Info ClientMultiplayerManager.cpp:592: UpdateTick(4294967295) changing state from(Ready) to(Connecting)
33.456 Info ClientSynchronizer.cpp:34: Initialized Synchronizer local peer(1) latency(32).
33.458 Info ClientMultiplayerManager.cpp:592: UpdateTick(4294967295) changing state from(Connecting) to(ConnectedWaitingForMap)
33.459 Info ClientRouter.cpp:222: ConnectionAccepted
33.540 Downloading file C:\Users\user\AppData\Roaming\Factorio\temp\auxiliary-data (123 B, 1 blocks)
33.727 Finished download (0 s, 123 B, 661 B/s)
33.745 Warning ClientMultiplayerManager.cpp:709: Couldn't remove C:\Users\user\AppData\Roaming\Factorio\temp\auxiliary-data: The process cannot access the file because it is being used by another process.
33.939 Info ClientMultiplayerManager.cpp:768: Received mapReadyForDownload
33.939 Downloading file C:\Users\user\AppData\Roaming\Factorio\temp\mp-download.zip (5645754 B, 11225 blocks)
33.945 Info ClientMultiplayerManager.cpp:592: UpdateTick(4294967295) changing state from(ConnectedWaitingForMap) to(ConnectedDownloadingMap)
46.823 Finished download (12 s, 5.6 MB, 438 kB/s)
46.855 Info ClientMultiplayerManager.cpp:748: updateTick(4294967295) map download finished creating scenario
46.856 Info ClientMultiplayerManager.cpp:592: UpdateTick(4294967295) changing state from(ConnectedDownloadingMap) to(ConnectedLoadingMap)
46.856 Loading map C:\Users\user\AppData\Roaming\Factorio\temp\mp-download.zip: 5645754 bytes.
46.962 Loading level.dat: 15843348 bytes.
46.965 Info Scenario.cpp:197: Map version 1.1.30-0
47.276 Loading script.dat: 558122 bytes.
47.281 Checksum for script C:/Users/user/AppData/Roaming/Factorio/temp/currently-playing/control.lua: 1735894310
47.283 Checksum for script modmashsplinter/control.lua: 1510300625
47.286 Checksum for script modmashsplinterairpurifier/control.lua: 1556577153
47.289 Checksum for script modmashsplinterboom/control.lua: 3126939346
47.291 Checksum for script modmashsplinterexplosivemining/control.lua: 3365196747
47.294 Checksum for script modmashsplintergold/control.lua: 2828898486
47.297 Checksum for script modmashsplinterloot/control.lua: 2308996971
47.300 Checksum for script modmashsplinterrecycling/control.lua: 1241077601
47.302 Checksum for script modmashsplinterrefinement/control.lua: 358594603
47.304 Checksum for script modmashsplinterregenerative/control.lua: 3305864749
47.306 Checksum for script modmashsplinterresources/control.lua: 1378943716
47.313 Checksum for script modmashsplinterthem/control.lua: 3984724513
47.316 Checksum for script modmashsplintervalkyries/control.lua: 2660303158
47.319 Checksum for script modmashsplinterassembling/control.lua: 4126837870
47.321 Checksum for script modmashsplinterdefense/control.lua: 2648000252
47.324 Checksum for script modmashsplinterfishing/control.lua: 2789923530
47.327 Checksum for script modmashsplinterfluid/control.lua: 3975080325
47.330 Checksum for script modmashsplinterlogistics/control.lua: 3354715753
47.333 Checksum for script modmashsplintersubspacelogistics/control.lua: 3357048275
47.338 Checksum for script modmashsplinterunderground/control.lua: 3631302463
47.342 Checksum for script modmashsplinternewworlds/control.lua: 3670948390
47.424 Info ClientMultiplayerManager.cpp:592: UpdateTick(1561949) changing state from(ConnectedLoadingMap) to(TryingToCatchUp)
48.810 Info ClientMultiplayerManager.cpp:592: UpdateTick(1562844) changing state from(TryingToCatchUp) to(WaitingForCommandToStartSendingTickClosures)
49.039 Info ClientMultiplayerManager.cpp:592: UpdateTick(1562844) changing state from(WaitingForCommandToStartSendingTickClosures) to(InGame)
49.190 Info GameActionHandler.cpp:4982: UpdateTick (1562853) processed PlayerJoinGame peerID(2) playerIndex(1) mode(connect)
61.390 Info ClientSynchronizer.cpp:331: Latency changed to (23)
66.489 Info ClientSynchronizer.cpp:331: Latency changed to (17)
82.239 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564844) serverCRC(4020230363) localCRC(3570820268)
82.239 Info ClientMultiplayerManager.cpp:592: UpdateTick(1564845) changing state from(InGame) to(DesyncedWaitingForMap)
82.256 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564845) serverCRC(1463256415) localCRC(1820211496)
82.273 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564846) serverCRC(4049729388) localCRC(3391638299)
82.290 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564847) serverCRC(1719373410) localCRC(1563570709)
82.305 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564848) serverCRC(3687585403) localCRC(3766856204)
82.322 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564849) serverCRC(4182222360) localCRC(3255704175)
82.340 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564850) serverCRC(3204717611) localCRC(2219679836)
82.355 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564851) serverCRC(1477173232) localCRC(1665295239)
82.372 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564852) serverCRC(2155930423) localCRC(3150536512)
82.389 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564853) serverCRC(523915504) localCRC(611576967)
82.406 Info ClientMultiplayerManager.cpp:762: updateTick(1564855) received player (2) desynced
82.406 Downloading file C:\Users\user\AppData\Roaming\Factorio\temp\auxiliary-data (123 B, 1 blocks)
82.407 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564854) serverCRC(4243900606) localCRC(3351082185)
82.423 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564855) serverCRC(2024846552) localCRC(1140394159)
82.440 Error GameActionHandler.cpp:3533: Multiplayer desynchronisation: crc test (heuristic) failed for crcTick(1564856) serverCRC(4001500938) localCRC(3586896765)
82.442 Finished download (0 s, 123 B, 3.5 kB/s)
82.459 Warning ClientMultiplayerManager.cpp:709: Couldn't remove C:\Users\user\AppData\Roaming\Factorio\temp\auxiliary-data: The process cannot access the file because it is being used by another process.
84.273 Info ClientMultiplayerManager.cpp:768: Received mapReadyForDownload
84.273 Info ClientMultiplayerManager.cpp:592: UpdateTick(1564858) changing state from(DesyncedWaitingForMap) to(DesyncedCatchingUpWithMapReadyForDownload)
84.278 Info ClientMultiplayerManager.cpp:592: UpdateTick(4294967295) changing state from(DesyncedCatchingUpWithMapReadyForDownload) to(DesyncedSavingLocalVariantOfMap)
86.072 Downloading file C:\Users\user\AppData\Roaming\Factorio\temp\mp-download.zip (20577998 B, 40911 blocks)
86.076 Info ClientMultiplayerManager.cpp:592: UpdateTick(4294967295) changing state from(DesyncedSavingLocalVariantOfMap) to(DesyncedDownloadingMap)
135.650 Finished download (49 s, 20.5 MB, 415 kB/s)
135.714 Info ClientMultiplayerManager.cpp:748: updateTick(4294967295) map download finished creating scenario
135.715 Info ClientMultiplayerManager.cpp:592: UpdateTick(4294967295) changing state from(DesyncedDownloadingMap) to(DesyncedCreatingReport)
Best of luck, loving the mod so far :)
Trying to solve,
loaded possible fix
Thanks!
May be the desync is caused by global variable last_pos, line 543 underground.lua
hmm odd. Good spotting. I have just posted an update but will look at this too.
Looks like something that got semi removed ages ago