public static void StopMultiplayer() { if (Multiplayer.session != null) { Multiplayer.session.Stop(); Multiplayer.session = null; Prefs.Apply(); } Multiplayer.game = null; TickPatch.ClearSkipping(); TickPatch.Timer = 0; TickPatch.tickUntil = 0; TickPatch.accumulator = 0; Find.WindowStack?.WindowOfType <ServerBrowser>()?.Cleanup(true); foreach (var entry in Sync.bufferedChanges) { entry.Value.Clear(); } ClearCaches(); if (Multiplayer.arbiterInstance) { Multiplayer.arbiterInstance = false; Application.Quit(); } }