Miniloader

by therax

Compact and UPS-friendly 1x1 loaders. Works with train cargo wagons, circuits, filters, and modded belts from Bob's, Krastorio, FactorioExtended Plus, Space Exploration, and Ultimate Belts.

Content
1 year, 3 months ago
0.15 - 1.1
192K
Logistics

g Multiplayer - unable to join the game. Module handler does not agree with the server.

3 years ago

Multiplayer - unable to join the game. Module handler does not agree with the server.
Thank you. Have never seen such a strange question?

3 years ago

This is a rare problem I have not been able to track down. Restarting the server almost always fixes it.

3 years ago
(updated 3 years ago)

Thank you for reply.
yes!But every time to restart the server! Really too bad!
And some modules have conflict?

3 years ago
(updated 3 years ago)

thanks

3 years ago

How often do you see the problem? I have received I think 2 reports of this problem in the last year.

3 years ago
(updated 3 years ago)

I have the same issue right now in a Krastorio 2 + Space Exploration game:

  60.462 Checksum for script __miniloader__/control.lua: 2263722597
  60.986 Error ClientMultiplayerManager.cpp:1119: mod-miniloader was registered for the following events when the map was saved but has not re-registered them as a result of loading: on_tick (ID 0)
  60.986 Error ClientMultiplayerManager.cpp:100: MultiplayerManager failed: "" + multiplayer.script-event-mismatch + "
" + "
mod-miniloader"
  60.986 Info ClientMultiplayerManager.cpp:591: UpdateTick(27452066) changing state from(ConnectedLoadingMap) to(Failed)
  68.352 Info ClientMultiplayerManager.cpp:207: Quitting multiplayer connection.

The server saves the map, client downloads it, then gets disconnected. Verified it by trying to connect multiple times with multiple clients, same result. At the time, nobody was on the server, i.e. it was paused/idle.

I've just quickly browsed through the code (although I don't really do Factorio modding) and noticed that there's no persistent event handler for on_tick, but rather subscriptions/unsubscriptions that happen somewhat dynamically. What if there's a subscription for on_tick (to evaluate things for the next tick), but since the server is paused after the current tick has been processed (e.g. because all players have disconnected), the next tick isn't evaluated (and the event handler therefore not removed)? On the server, the mod would be registered for on_tick, but on the clients (which have no idea of the previous frame or its actions), it wouldn't be - hence creating the desync.

New response