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 ExtraResetButtons v2.1.1
Mods/ExtraResetButtons.dll
Decompiled 3 weeks agousing System; using System.Collections; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using ExtraResetButtons; using Il2CppInterop.Runtime.InteropTypes.Arrays; using Il2CppPhoton.Pun; using Il2CppRUMBLE.Environment; using Il2CppRUMBLE.Interactions.InteractionBase; using Il2CppRUMBLE.MoveSystem; using Il2CppSystem; using Il2CppTMPro; using MelonLoader; using RumbleModdingAPI; using UnityEngine; using UnityEngine.Events; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("a simple RUMBLE mod, adds more reset session buttons")] [assembly: AssemblyDescription("a simple RUMBLE mod, adds more reset session buttons")] [assembly: AssemblyCompany(null)] [assembly: AssemblyProduct("ExtraResetButtons")] [assembly: AssemblyCopyright("Created by elmish")] [assembly: AssemblyTrademark(null)] [assembly: AssemblyFileVersion("2.1.1")] [assembly: MelonInfo(typeof(global::ExtraResetButtons.ExtraResetButtons), "ExtraResetButtons", "2.1.1", "elmish", null)] [assembly: MelonColor] [assembly: MelonGame(null, null)] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("2.1.1.0")] [module: UnverifiableCode] namespace ExtraResetButtons; public static class BuildInfo { public const string Name = "ExtraResetButtons"; public const string Description = "a simple RUMBLE mod, adds more reset session buttons"; public const string Author = "elmish"; public const string Company = null; public const string Version = "2.1.1"; public const string DownloadLink = null; } public class ExtraResetButtons : MelonMod { public GameObject dummy; public GameObject gymDummy; public bool gymInitialized; public GameObject parkDummy; public bool parkInitialized; public PhotonView parkPV; private GameObject[] pools = (GameObject[])(object)new GameObject[8]; private string[] poolPaths = new string[8]; private GameObject resetScoreboardButton; private GameObject newResetSessionButton; private GameObject buttonDisplayPlate; private GameObject buttonDisplayText; private GameObject originalButton; private GameObject gymButton1; private GameObject gymButton2; private GameObject regionText; private GameObject gymButtonText1; private GameObject gymButtonText2; private string currentscene = ""; private void PoolStructures() { try { for (int i = 0; i < pools.Length; i++) { pools[i] = GameObject.Find(poolPaths[i]).gameObject; } } catch { } } public void DestroyStructures() { //IL_0077: 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 && ((Object)gameObject.transform).name != "BoulderBall" && ((Object)gameObject.transform).name != "LargeRock" && ((Object)gameObject.transform).name != "SmallRock") { gameObject.GetComponent<Structure>().Kill(Vector3.zero, false, false, true); } } } } private void SetupPark() { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Expected O, but got Unknown //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: 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) resetScoreboardButton = ResetButton.GetGameObject(); newResetSessionButton = Object.Instantiate<GameObject>(resetScoreboardButton); newResetSessionButton.transform.SetParent(parkDummy.transform); newResetSessionButton.transform.position = resetScoreboardButton.transform.position + resetScoreboardButton.transform.right * 0.41f; newResetSessionButton.transform.rotation = resetScoreboardButton.transform.rotation; ((Component)newResetSessionButton.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate { if (PhotonNetwork.IsMasterClient) { parkPV.RPC("RPC_CleanScene", (RpcTarget)0, (Il2CppReferenceArray<Object>)null); } })); GameObject gameObject = ResetScoreBoard.GetGameObject(); buttonDisplayPlate = Object.Instantiate<GameObject>(gameObject); buttonDisplayPlate.transform.SetParent(parkDummy.transform); buttonDisplayPlate.transform.position = new Vector3(-13.0193f, -4.9947f, 5.6951f); buttonDisplayPlate.transform.rotation = gameObject.transform.rotation; GameObject val = new GameObject(); val.AddComponent<Canvas>(); val.transform.SetParent(parkDummy.transform); GameObject gameObject2 = Text.GetGameObject(); buttonDisplayText = Object.Instantiate<GameObject>(gameObject2); buttonDisplayText.transform.SetParent(val.transform); buttonDisplayText.transform.position = new Vector3(-12.9019f, -4.9947f, 5.876f); buttonDisplayText.transform.rotation = gameObject2.transform.rotation; buttonDisplayText.transform.localScale = Vector3.one * 0.35f; ((TMP_Text)buttonDisplayText.GetComponent<TextMeshProUGUI>()).text = "Reset Session"; buttonDisplayText.GetComponent<RectTransform>().sizeDelta = Vector2.one; parkPV = ((Component)ParkInstance.instance).gameObject.GetComponent<PhotonView>(); parkInitialized = true; MelonLogger.Msg("successfully completed ExtraResetButtons Park setup"); } private void SetupGym() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Expected O, but got Unknown //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_02ff: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) dummy = new GameObject("ExtraResetButtons objects"); Object.DontDestroyOnLoad((Object)(object)dummy); gymDummy = new GameObject("Gym"); Object.DontDestroyOnLoad((Object)(object)gymDummy); gymDummy.transform.SetParent(dummy.transform); parkDummy = new GameObject("Park"); Object.DontDestroyOnLoad((Object)(object)parkDummy); parkDummy.transform.SetParent(dummy.transform); originalButton = Create.NewButton(); gymButton1 = Object.Instantiate<GameObject>(originalButton); gymButton1.transform.SetParent(gymDummy.transform); gymButton1.transform.position = new Vector3(4.4542f, -2.0399f, -10.106f); gymButton1.transform.rotation = Quaternion.Euler(270f, 350f, 0f); ((Object)gymButton1.transform).name = "Howard Area Destroy structures button"; ((Component)gymButton1.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate { DestroyStructures(); })); gymButton2 = Object.Instantiate<GameObject>(originalButton); gymButton2.transform.SetParent(gymDummy.transform); gymButton2.transform.position = new Vector3(-41.8807f, 4.6797f, 2.3603f); gymButton2.transform.rotation = Quaternion.Euler(90f, 130f, 0f); ((Object)gymButton2.transform).name = "Training Area Destroy structures button"; ((Component)gymButton2.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate { DestroyStructures(); })); regionText = TitleText.GetGameObject(); gymButtonText1 = Object.Instantiate<GameObject>(regionText); gymButtonText1.transform.SetParent(gymDummy.transform); gymButtonText1.transform.position = new Vector3(4.4592f, -2.1949f, -10.1115f); gymButtonText1.transform.rotation = Quaternion.Euler(0f, 350f, 0f); ((TMP_Text)gymButtonText1.GetComponent<TextMeshPro>()).text = "Destroy Structures"; ((Object)gymButtonText1.transform).name = "Howard Area Destroy structures text"; gymButtonText2 = Object.Instantiate<GameObject>(regionText); gymButtonText2.transform.SetParent(gymDummy.transform); gymButtonText2.transform.position = new Vector3(-41.8807f, 4.5497f, 2.3603f); gymButtonText2.transform.rotation = Quaternion.Euler(0f, 310f, 0f); ((TMP_Text)gymButtonText2.GetComponent<TextMeshPro>()).text = "Destroy Structures"; ((Object)gymButtonText2.transform).name = "Training Area Destroy structures text"; Object.Destroy((Object)(object)originalButton); gymInitialized = true; MelonLogger.Msg("successfully completed ExtraResetButtons Gym setup"); } public override void OnLateInitializeMelon() { ((MelonBase)this).OnLateInitializeMelon(); poolPaths[0] = "Game Instance/Pre-Initializable/PoolManager/Pool: Pillar (RUMBLE.MoveSystem.Structure)"; poolPaths[1] = "Game Instance/Pre-Initializable/PoolManager/Pool: Wall (RUMBLE.MoveSystem.Structure)"; poolPaths[2] = "Game Instance/Pre-Initializable/PoolManager/Pool: Disc (RUMBLE.MoveSystem.Structure)"; poolPaths[3] = "Game Instance/Pre-Initializable/PoolManager/Pool: RockCube (RUMBLE.MoveSystem.Structure)"; poolPaths[4] = "Game Instance/Pre-Initializable/PoolManager/Pool: Ball (RUMBLE.MoveSystem.Structure)"; poolPaths[5] = "Game Instance/Pre-Initializable/PoolManager/Pool: LargeRock (RUMBLE.MoveSystem.Structure)"; poolPaths[6] = "Game Instance/Pre-Initializable/PoolManager/Pool: SmallRock (RUMBLE.MoveSystem.Structure)"; poolPaths[7] = "Game Instance/Pre-Initializable/PoolManager/Pool: BoulderBall (RUMBLE.MoveSystem.Structure)"; } private void Disable() { gymDummy.SetActive(false); if (parkInitialized) { parkDummy.SetActive(false); } } private void EnableGym() { gymDummy.SetActive(true); } private void EnablePark() { parkDummy.SetActive(true); parkPV = ((Component)ParkInstance.instance).gameObject.GetComponent<PhotonView>(); } public override void OnSceneWasLoaded(int buildindex, string sceneName) { currentscene = sceneName; MelonCoroutines.Start(OnSceneWasLoadedSlower(buildindex, sceneName)); } public IEnumerator OnSceneWasLoadedSlower(int buildindex, string sceneName) { yield return (object)new WaitForSeconds(3f); if (gymInitialized) { Disable(); } if (sceneName == "Loader") { PoolStructures(); } if (sceneName == "Park" && !parkInitialized) { SetupPark(); } else if (sceneName == "Gym" && !gymInitialized) { SetupGym(); } else if (sceneName == "Park" && parkInitialized) { EnablePark(); } else if (sceneName == "Gym" && gymInitialized) { EnableGym(); } } }