Surfaces Reloaded deprecated

by Danacus

Reach up to the skies or dig deep below, expand your base vertically... If you're into that kind of thing. Original by Simcra, ported to 0.14-0.16 by Erdbeerbaer. Port to 0.17 started by DeltaNedas and continued by Danacus.

3 years ago
0.17 - 1.1
589

g Surfaces Reloaded Desync

3 years ago

hello there! i ran into a problem recently that i cannot play with friends as when they join they desync and cannot join

3 years ago

I'll look into it, I never tested multiplayer.

3 years ago
(updated 3 years ago)

I've seen this as well. If there are intersurface storage tanks on the map when a player connects they will instantly desync. Removing the intersurface storage tanks allows them to join. Placing the tanks after all players has joined works fine, but if someone reconnects after the tanks are placed again they will instantly desync
Did not try the intersurface batteries or chests. The ladders work fine

3 years ago

Are there any error messages or logs you guys could send me. I didn't actually write this mod, I just ported it, so I don't really know why the desyncs are happening. The mod was originally written for 0.13, but hasn't really been changed or improved after that.

I did write a new surfaces mod from scratch, which should be functional, but I still haven't released it yet (partly due to the lack of graphics and my lack of motivation). I am curious if my new mod would be multiplayer friendly though, perhaps I should try it and upload it to the mod portal so you can maybe try it, although there will be no backwards compatibility or migration of old saves.

I'm sorry if I got a bit sidetracked.

3 years ago

Looks like my mod isn't multiplayer safe at all and I don't understand why, because the game fails to give me any meaningful error messages.

3 years ago
(updated 3 years ago)

I added in a bunch of logging in events.on_tick to see what happens, and it seems that pause_event on the client is not synced with that of the server. So for the first event of each type after the client joined that event is only executed on the server while the client skips it and instead does the pause_event[tostring(v.func)] = false

Server log snippet: https://pastebin.com/pZ12Tn7B
Client log snippet: https://pastebin.com/cxzibjA6

3 years ago

Removing pause_event completely and instead always calling eventmgrtostring(v.func) solves the issue. Replacing pause_event with a global.pause_event also solves the issue. I'm not sure which solution is best though since I'm not sure why pause_event exists in the first place

3 years ago

Thank you! I will apply your fix if it fixes the issue. I don't know why pause_event exists either, but it doesn't look useful to me either.

3 years ago

Issue fixed in version 1.1.5. I removed pause_event completely. My guess is that this would be some kind of fix for a very old bug, but I'm not sure.

3 years ago

You're welcome! And thanks for putting out an updated version so quickly! :)

3 years ago

You've motivated me to find out why my own mods were desyncing too and I figured it out. I was applying event filters after loading the map instead of during load time, which caused desyncs. I'll see if I can release these new mods soon, because fixing issues with my mods I've written myself will be a bit easier.

New response