RUMBLE does not support other mod managers. If you want to use a manager, you must use the RUMBLE Mod Manager, a manager specifically designed for this game.
Decompiled source of MultiplayerMapsInSinglePlayer v2.2.1
Mods/MultiplayerMapsInSinglePlayer.dll
Decompiled 2 weeks agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using Il2Cpp; using Il2CppRUMBLE.Audio; using Il2CppRUMBLE.Interactions.InteractionBase; using Il2CppRUMBLE.Managers; using Il2CppRUMBLE.MoveSystem; using Il2CppRUMBLE.Networking.MatchFlow; using Il2CppRUMBLE.Players.Subsystems; using Il2CppRUMBLE.Utilities; using Il2CppTMPro; using MelonLoader; using MultiplayerMapsInSinglePlayer; using RumbleModdingAPI; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: MelonInfo(typeof(main), "MultiplayerMapsInSinglePlayer", "2.2.1", "UlvakSkillz", null)] [assembly: MelonGame("Buckethead Entertainment", "RUMBLE")] [assembly: MelonColor(255, 195, 0, 255)] [assembly: MelonAuthorColor(255, 195, 0, 255)] [assembly: VerifyLoaderVersion(0, 6, 2, true)] [assembly: AssemblyTitle("MultiplayerMapsInSinglePlayer")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("MultiplayerMapsInSinglePlayer")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("a1ecbc05-cfec-4a4b-ba0b-5bf9bf4f1186")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace MultiplayerMapsInSinglePlayer; public class main : MelonMod { private bool sceneChanged = false; private string currentScene = ""; private bool DDOLInit = false; private bool init = false; private bool waitedATick = false; private GameObject ddolButton; private GameObject gymButtonMap0; private GameObject gymButtonMap1; private GameObject returntoGymButton; private GameObject textPanel; private GameObject textPanelText; private GameObject gymTextPanelTitle; private GameObject gymTextPanelTitleText; private GameObject gymTextPanelRing; private GameObject gymTextPanelRingText; private GameObject gymTextPanelPit; private GameObject gymTextPanelPitText; private GameObject returnToGymPanel; private GameObject returnToGymPanelText; private GameObject modParent; private SceneManager sceneManager; private GameObject[] pools = (GameObject[])(object)new GameObject[7]; public override void OnSceneWasLoaded(int buildIndex, string sceneName) { currentScene = sceneName; sceneChanged = true; init = false; waitedATick = false; } public override void OnFixedUpdate() { //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0490: Unknown result type (might be due to invalid IL or missing references) //IL_04b5: Unknown result type (might be due to invalid IL or missing references) //IL_04da: Unknown result type (might be due to invalid IL or missing references) //IL_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_0524: Unknown result type (might be due to invalid IL or missing references) //IL_0599: Unknown result type (might be due to invalid IL or missing references) //IL_05a3: Expected O, but got Unknown //IL_065a: Unknown result type (might be due to invalid IL or missing references) //IL_0797: Unknown result type (might be due to invalid IL or missing references) //IL_07bc: Unknown result type (might be due to invalid IL or missing references) //IL_0863: Unknown result type (might be due to invalid IL or missing references) //IL_0888: Unknown result type (might be due to invalid IL or missing references) //IL_08ad: Unknown result type (might be due to invalid IL or missing references) //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_098c: Unknown result type (might be due to invalid IL or missing references) //IL_09b9: Unknown result type (might be due to invalid IL or missing references) //IL_09c0: Expected O, but got Unknown //IL_09ed: Unknown result type (might be due to invalid IL or missing references) //IL_0aee: Unknown result type (might be due to invalid IL or missing references) //IL_0b13: Unknown result type (might be due to invalid IL or missing references) //IL_0bba: Unknown result type (might be due to invalid IL or missing references) //IL_0bdf: Unknown result type (might be due to invalid IL or missing references) //IL_0c04: Unknown result type (might be due to invalid IL or missing references) //IL_0c37: Unknown result type (might be due to invalid IL or missing references) //IL_0c3e: Expected O, but got Unknown //IL_0c6b: Unknown result type (might be due to invalid IL or missing references) if (!sceneChanged) { return; } try { if (currentScene == "Gym" && !init) { if (!waitedATick) { waitedATick = true; return; } if (!DDOLInit) { sceneManager = Singleton<SceneManager>.instance; ddolButton = Object.Instantiate<GameObject>(InteractionButton.GetGameObject()); ddolButton.active = false; Object.DontDestroyOnLoad((Object)(object)ddolButton); textPanel = Object.Instantiate<GameObject>(((Component)MatchmakingSettings.GetGameObject().transform.GetChild(1)).gameObject); textPanelText = Object.Instantiate<GameObject>(((Component)MatchmakingSettings.GetGameObject().transform.GetChild(3)).gameObject); textPanelText.transform.parent = textPanel.transform; ((Object)textPanel).name = "TextPanel"; textPanel.active = false; Object.DontDestroyOnLoad((Object)(object)textPanel); pools[0] = Structures.GetPoolBall(); pools[1] = Structures.GetPoolCube(); pools[2] = Structures.GetPoolDisc(); pools[3] = Structures.GetPoolLargeRock(); pools[4] = Structures.GetPoolPillar(); pools[5] = Structures.GetPoolSmallRock(); pools[6] = Structures.GetPoolWall(); DDOLInit = true; } gymButtonMap0 = Object.Instantiate<GameObject>(ddolButton); ((Object)gymButtonMap0).name = "Teleport To Ring Button"; gymButtonMap1 = Object.Instantiate<GameObject>(ddolButton); ((Object)gymButtonMap1).name = "Teleport To Pit Button"; gymButtonMap0.transform.position = new Vector3(5.2317f, 1.4f, 10.2582f); gymButtonMap0.transform.rotation = Quaternion.Euler(1.0437f, 31.2109f, 335.5875f); ((Component)gymButtonMap0.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate { LoadMap0(); })); gymButtonMap1.transform.position = new Vector3(5.4477f, 1.4f, 10.6f); gymButtonMap1.transform.rotation = Quaternion.Euler(1.0437f, 31.2109f, 335.5875f); ((Component)gymButtonMap1.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate { LoadMap1(); })); gymButtonMap0.active = true; gymButtonMap1.active = true; gymTextPanelTitle = Object.Instantiate<GameObject>(textPanel); gymTextPanelRing = Object.Instantiate<GameObject>(textPanel); gymTextPanelPit = Object.Instantiate<GameObject>(textPanel); ((Object)gymTextPanelTitle).name = "Teleport Title"; ((Object)gymTextPanelRing).name = "Ring Plate"; ((Object)gymTextPanelPit).name = "Pit Plate"; gymTextPanelTitleText = ((Component)gymTextPanelTitle.transform.GetChild(0)).gameObject; gymTextPanelRingText = ((Component)gymTextPanelRing.transform.GetChild(0)).gameObject; gymTextPanelPitText = ((Component)gymTextPanelPit.transform.GetChild(0)).gameObject; gymTextPanelTitle.transform.position = new Vector3(5.1022f, 1.4485f, 10.2802f); gymTextPanelTitle.transform.rotation = Quaternion.Euler(344.7058f, 302.3016f, 270f); gymTextPanelTitle.transform.localScale = new Vector3(0.3548f, 0.3288f, 0.2806f); gymTextPanelRing.transform.position = new Vector3(5.2791f, 1.3159f, 10.1191f); gymTextPanelRing.transform.rotation = Quaternion.Euler(320.3004f, 302.3016f, 270f); gymTextPanelRing.transform.localScale = new Vector3(0.1548f, 0.1288f, 0.2806f); gymTextPanelRingText.transform.localScale = new Vector3(7.5414f, 3.6636f, 6.462f); gymTextPanelPit.transform.position = new Vector3(5.504f, 1.3159f, 10.4646f); gymTextPanelPit.transform.rotation = Quaternion.Euler(320.3004f, 302.3016f, 270f); gymTextPanelPit.transform.localScale = new Vector3(0.1548f, 0.1288f, 0.2806f); gymTextPanelPitText.transform.localScale = new Vector3(7.5414f, 3.6636f, 6.462f); gymTextPanelTitle.active = true; gymTextPanelRing.active = true; gymTextPanelPit.active = true; ((TMP_Text)gymTextPanelTitleText.GetComponent<TextMeshPro>()).text = "Teleport To Maps:"; ((TMP_Text)gymTextPanelRingText.GetComponent<TextMeshPro>()).text = "Ring"; ((TMP_Text)gymTextPanelPitText.GetComponent<TextMeshPro>()).text = "Pit"; modParent = new GameObject(); ((Object)modParent).name = "MultiplayerMapsInSinglePlayer"; gymButtonMap0.transform.parent = modParent.transform; gymButtonMap1.transform.parent = modParent.transform; gymTextPanelTitle.transform.parent = modParent.transform; gymTextPanelRing.transform.parent = modParent.transform; gymTextPanelPit.transform.parent = modParent.transform; gymTextPanelTitleText.transform.localScale = new Vector3(4.4f, 4f, 4f); modParent.transform.parent = MatchConsole.GetGameObject().transform; init = true; } else if (currentScene == "Map0" && !init) { if (!waitedATick) { waitedATick = true; return; } if (Singleton<PlayerManager>.instance.AllPlayers.Count != 1) { init = true; return; } GameObject gameObject = ((Component)Map0production.GetGameObject().transform.GetChild(0).GetChild(1).GetChild(0)).gameObject; gameObject.AddComponent<GroundCollider>().collider = (Collider)(object)gameObject.GetComponent<MeshCollider>(); gameObject.layer = 9; Pedestals.GetGameObject().active = false; MatchHandler component = MatchHandler.GetGameObject().GetComponent<MatchHandler>(); component.CurrentMatchPhase = (MatchPhase)2; returntoGymButton = Object.Instantiate<GameObject>(ddolButton); ((Object)returntoGymButton).name = "Return To Gym Button"; returntoGymButton.transform.position = new Vector3(1.9859f, -4.0983f, 18.9987f); returntoGymButton.transform.rotation = Quaternion.Euler(357.8411f, 272.1151f, 76.6469f); ((Component)returntoGymButton.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate { LoadGym(); })); returntoGymButton.active = true; returnToGymPanel = Object.Instantiate<GameObject>(textPanel); ((Object)returnToGymPanel).name = "Return To Gym Plate"; returnToGymPanelText = ((Component)returnToGymPanel.transform.GetChild(0)).gameObject; returnToGymPanel.transform.position = new Vector3(1.7225f, -3.9242f, 19.0338f); returnToGymPanel.transform.rotation = Quaternion.Euler(270f, 272.8807f, 0f); returnToGymPanel.transform.localScale = new Vector3(0.3548f, 0.3288f, 0.2806f); returnToGymPanel.active = true; ((TMP_Text)returnToGymPanelText.GetComponent<TextMeshPro>()).text = "Return to Gym"; GameObject val = Object.Instantiate<GameObject>(returntoGymButton); ((Object)val).name = "Respawn Player Button"; val.transform.position = new Vector3(2.5859f, -4.0983f, 18.9787f); ((Component)val.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate { ((Component)Singleton<PlayerManager>.instance.localPlayer.Controller).GetComponent<PlayerResetSystem>().ResetPlayerController(); })); GameObject val2 = Object.Instantiate<GameObject>(returnToGymPanel); ((Object)val2).name = "Respawn Player Panel"; val2.transform.position = new Vector3(2.3459f, -3.9242f, 19.0187f); ((TMP_Text)((Component)val2.transform.GetChild(0)).GetComponent<TextMeshPro>()).text = "Respawn"; GameObject val3 = new GameObject("QuickSwapper"); ShiftstoneQuickswapper.GetGameObject().transform.parent = val3.transform; val3.transform.position = new Vector3(1.2436f, -3.7218f, 16.8382f); component.FadeIn(); init = true; } else if (currentScene == "Map1" && !init) { if (!waitedATick) { waitedATick = true; return; } if (Singleton<PlayerManager>.instance.AllPlayers.Count != 1) { init = true; return; } SceneProcessors.GetGameObject().GetComponent<SceneProcessorBatch>().ExecuteBatch(); Pedestals.GetGameObject().active = false; MatchHandler component2 = MatchHandler.GetGameObject().GetComponent<MatchHandler>(); component2.CurrentMatchPhase = (MatchPhase)2; component2.FadeIn(); returntoGymButton = Object.Instantiate<GameObject>(ddolButton); ((Object)returntoGymButton).name = "Return To Gym Button"; returntoGymButton.transform.position = new Vector3(0f, 0.9909f, 10.719f); returntoGymButton.transform.rotation = Quaternion.Euler(358.2508f, 93.5928f, 274.9258f); ((Component)returntoGymButton.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate { LoadGym(); })); returntoGymButton.active = true; returnToGymPanel = Object.Instantiate<GameObject>(textPanel); ((Object)returnToGymPanel).name = "Return To Gym Plate"; returnToGymPanelText = ((Component)returnToGymPanel.transform.GetChild(0)).gameObject; returnToGymPanel.transform.position = new Vector3(-0.257f, 1.221f, 10.7388f); returnToGymPanel.transform.rotation = Quaternion.Euler(90f, 92.2793f, 0f); returnToGymPanel.transform.localScale = new Vector3(0.3548f, 0.3288f, 0.2806f); returnToGymPanel.active = true; ((TMP_Text)returnToGymPanelText.GetComponent<TextMeshPro>()).text = "Return to Gym"; GameObject val4 = new GameObject("QuickSwapper"); ShiftstoneQuickswapper.GetGameObject().transform.parent = val4.transform; val4.transform.position = new Vector3(-0.6655f, 1.4164f, 8.5891f); init = true; } } catch (Exception ex) { MelonLogger.Error((object)ex); return; } sceneChanged = false; } private void LoadGym() { DestroyStructures(); sceneManager.LoadSceneAsync(1, false, false, 2f, (LoadSceneMode)0, (AudioCall)null); } private void LoadMap0() { DestroyStructures(); sceneManager.LoadSceneAsync(3, false, false, 2f, (LoadSceneMode)0, (AudioCall)null); } private void LoadMap1() { DestroyStructures(); sceneManager.LoadSceneAsync(4, false, false, 2f, (LoadSceneMode)0, (AudioCall)null); } public void DestroyStructures() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < pools.Length; i++) { for (int j = 0; j < pools[i].transform.childCount; j++) { GameObject gameObject = ((Component)pools[i].transform.GetChild(j)).gameObject; if (gameObject.activeSelf) { gameObject.GetComponent<Structure>().Kill(Vector3.zero, false, false, true); } } } } }