Seems I’ve fixed the infinite loading issue!
BUT, because why not, I found more major bugs. Most are fixed, but one is a real wall:
Under unknown conditions, the host gets timed out from their own server. I’ve ensured that if the server cuts out, clients now return to the menu with an error message. The base game didn’t handle this, leaving everyone stuck on infinite loads—mind-blowing, since handling connection loss is Networking 101.
Problem is, I can’t find the cause of the host timeout yet. Limited tester availability and the bug’s random nature are slowing me down.
Other issues: Laser Triggers are totally desynced 🤷, and conveyor belts are broken even in solo…
List of fixes/patchs applied:
-
Fix #12: Simplified (removed the code causing HarmonyX warnings)
-
Fix #13:
Computer.ReceiveVirtualFunctionExecute() - Checks bounds before access
-
Fix #14:
Computer.ReceiveVirtualEventInvoke() - Checks bounds
-
Fix #15:
Computer.ReceiveVirtualObjectDestroy() - Checks bounds
-
Fix #16:
ObjectManager.ApplyAllGUS() - Absorbs NullRefs during shutdown
- Fix #17: Automatic recovery and menu return if the server crashes or disappears.
- Fix #18: Proper disconnection handling (prevents infinite loading and shows clear error reasons).
- Fix #19: Improved stability and error prevention for Spline/Curve calculations.
- Fix #20: Added safety nets to prevent crashes during control point processing.
- Fix #21: Final security layer to catch remaining errors in curve refreshing.
Sorry for the random image, I didn’t really have any ideas for a proper illustration for this devlog.