public static void exit() { if (Level.onLevelExited != null) { Level.onLevelExited(); } if (!Level.isEditor && Player.player != null && PlayerUI.window != null && Level.info != null && PlayerUI.window.totalTime > 60f) { int fpsMin = PlayerUI.window.fpsMin; int fpsMax = PlayerUI.window.fpsMax; int num = (int)((float)PlayerUI.window.totalFrames / PlayerUI.window.totalTime); string value = (!Level.info.canAnalyticsTrack) ? "Workshop" : Level.info.name; Dictionary<string, object> dictionary = new Dictionary<string, object> { { "FPS_Min", fpsMin }, { "FPS_Max", fpsMax }, { "FPS_Avg", num }, { "Map", value }, { "Network", Provider.clients.Count > 1 } }; Analytics.CustomEvent("Perf", dictionary); } Level._isEditor = false; Level._isDevkit = false; Level.isExiting = true; Level._info = null; LoadingUI.updateScene(); SceneManager.LoadScene("Menu"); Provider.updateRichPresence(); DevkitTransactionManager.resetTransactions(); }