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 MoveRestrictor v2.1.1
Mods/MoveRestrictor.dll
Decompiled a year agousing System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using Il2CppRUMBLE.Managers; using Il2CppRUMBLE.Players.Subsystems; using Il2CppRUMBLE.Poses; using Il2CppRUMBLE.Utilities; using Il2CppSystem.Collections.Generic; using MelonLoader; using MoveRestrictor; using RumbleModUI; using UnityEngine; [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), "MoveRestrictor", "2.1.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("MoveRestrictor")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("MoveRestrictor")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("b10c94a1-8a40-4701-bc5b-98eabb44dfea")] [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 MoveRestrictor; public class main : MelonMod { private bool sceneChanged = false; private string currentScene = "Loader"; private int sceneChangeCount = 0; private UI UI = UI.instance; public static Mod MoveRestrictor = new Mod(); private bool movesSettable = false; private static bool timeToReadFile = true; private static List<PoseInputSource> storedMoves = new List<PoseInputSource>(); private bool twitchModFound = false; public override void OnLateInitializeMelon() { //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Expected O, but got Unknown //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Expected O, but got Unknown //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Expected O, but got Unknown //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Expected O, but got Unknown //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Expected O, but got Unknown //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Expected O, but got Unknown //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Expected O, but got Unknown //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Expected O, but got Unknown //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Expected O, but got Unknown //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Expected O, but got Unknown //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Expected O, but got Unknown //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Expected O, but got Unknown //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Expected O, but got Unknown //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Expected O, but got Unknown //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Expected O, but got Unknown //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Expected O, but got Unknown //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Expected O, but got Unknown //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Expected O, but got Unknown MoveRestrictor.ModName = "MoveRestrictor"; MoveRestrictor.ModVersion = "2.1.1"; MoveRestrictor.SetFolder("MoveRestrictor"); MoveRestrictor.AddDescription("Description", "Description", "Disables Specific Moves", new Tags { IsSummary = true }); MoveRestrictor.AddToList("Sprint", true, 0, "Grey Box Turns Off Sprint", new Tags()); MoveRestrictor.AddToList("Disc", true, 0, "Grey Box Turns Off Disc", new Tags()); MoveRestrictor.AddToList("Pillar", true, 0, "Grey Box Turns Off Pillar", new Tags()); MoveRestrictor.AddToList("Straight", true, 0, "Grey Box Turns Off Straight", new Tags()); MoveRestrictor.AddToList("Ball", true, 0, "Grey Box Turns Off Ball", new Tags()); MoveRestrictor.AddToList("Kick", true, 0, "Grey Box Turns Off Kick", new Tags()); MoveRestrictor.AddToList("Stomp", true, 0, "Grey Box Turns Off Stomp", new Tags()); MoveRestrictor.AddToList("Wall", true, 0, "Grey Box Turns Off Wall", new Tags()); MoveRestrictor.AddToList("Jump", true, 0, "Grey Turns Off Jump", new Tags()); MoveRestrictor.AddToList("Uppercut", true, 0, "Grey Box Turns Off Uppercut", new Tags()); MoveRestrictor.AddToList("Cube", true, 0, "Grey Box Turns Off Cube", new Tags()); MoveRestrictor.AddToList("Dash", true, 0, "Grey Box Turns Off Dash", new Tags()); MoveRestrictor.AddToList("Parry", true, 0, "Grey Box Turns Off Parry", new Tags()); MoveRestrictor.AddToList("Hold Left", true, 0, "Grey Box Turns Off Left Hand Hold", new Tags()); MoveRestrictor.AddToList("Hold Right", true, 0, "Grey Box Turns Off Right Hand Hold", new Tags()); MoveRestrictor.AddToList("Explode", true, 0, "Grey Box Turns Off Explode", new Tags()); MoveRestrictor.AddToList("Flick", true, 0, "Grey Box Turns Off Flick", new Tags()); MoveRestrictor.GetFromFile(); MoveRestrictor.ModSaved += Save; UI.instance.UI_Initialized += UIInit; } public override void OnSceneWasLoaded(int buildIndex, string sceneName) { currentScene = sceneName; sceneChanged = true; movesSettable = false; storedMoves.Clear(); sceneChangeCount++; } public override void OnFixedUpdate() { if (sceneChanged) { if (twitchModFound) { return; } if (currentScene != "Loader") { MelonCoroutines.Start(WaitThenCheckPoses(sceneChangeCount)); } else { MelonCoroutines.Start(LookForTwitchMod()); } sceneChanged = false; } if (movesSettable && timeToReadFile) { Save(); } } public void UIInit() { UI.AddMod(MoveRestrictor); } public static void Save() { timeToReadFile = false; ChangeAvailableMoveSets(); } private IEnumerator LookForTwitchMod() { foreach (MelonMod registeredMelon in MelonBase.RegisteredMelons) { MelonMod mod = registeredMelon; if (((MelonBase)mod).Info.Name == "MoveRestrictorTwitchIntegration") { twitchModFound = true; MelonLogger.Msg("Mod Found"); yield break; } } } public IEnumerator WaitThenCheckPoses(int sceneCount) { yield return (object)new WaitForSeconds(6f); while ((Object)(object)Singleton<PlayerManager>.instance.localPlayer.Controller == (Object)null) { yield return (object)new WaitForFixedUpdate(); } bool enabled = ((Behaviour)((Component)((Component)Singleton<PlayerManager>.instance.localPlayer.Controller).gameObject.transform).GetComponentInChildren<PlayerPoseSystem>()).enabled; while (!enabled && sceneCount == sceneChangeCount) { enabled = ((Behaviour)((Component)((Component)Singleton<PlayerManager>.instance.localPlayer.Controller).gameObject.transform).GetComponentInChildren<PlayerPoseSystem>()).enabled; yield return (object)new WaitForFixedUpdate(); } if (enabled) { movesSettable = true; } MoveRestrictor.GetFromFile(); timeToReadFile = true; } public static void ChangeAvailableMoveSets() { List<string> list = new List<string>(); for (int i = 1; i < MoveRestrictor.Settings.Count; i++) { if ((bool)MoveRestrictor.Settings[i].SavedValue) { switch (i) { case 1: list.Add("SprintingPoseSet"); break; case 2: list.Add("PoseSetDisc"); break; case 3: list.Add("PoseSetSpawnPillar"); break; case 4: list.Add("PoseSetStraight"); break; case 5: list.Add("PoseSetBall"); break; case 6: list.Add("PoseSetKick"); break; case 7: list.Add("PoseSetStomp"); break; case 8: list.Add("PoseSetWall_Grounded"); break; case 9: list.Add("PoseSetRockjump"); break; case 10: list.Add("PoseSetUppercut"); break; case 11: list.Add("PoseSetSpawnCube"); break; case 12: list.Add("PoseSetDash"); break; case 13: list.Add("PoseSetParry"); break; case 14: list.Add("PoseSetHoldLeft"); break; case 15: list.Add("PoseSetHoldRight"); break; case 16: list.Add("PoseSetExplode"); break; case 17: list.Add("PoseSetFlick"); break; } } } List<PoseInputSource> currentInputPoses = ((Component)((Component)Singleton<PlayerManager>.instance.localPlayer.Controller).gameObject.transform).GetComponentInChildren<PlayerPoseSystem>().currentInputPoses; string text = ""; for (int j = 0; j < currentInputPoses.Count; j++) { bool flag = false; for (int k = 0; k < list.Count; k++) { if (((Object)currentInputPoses[j].poseSet).name == list[k]) { flag = true; break; } } if (!flag) { if (text != "") { text += ", "; } text += ((Object)currentInputPoses[j].poseSet).name; storedMoves.Add(currentInputPoses[j]); currentInputPoses.RemoveAt(j); j--; } } if (text != "") { MelonLogger.Msg("Poses Removed: " + text); } text = ""; for (int l = 0; l < storedMoves.Count; l++) { bool flag2 = false; for (int m = 0; m < list.Count; m++) { if (((Object)storedMoves[l].poseSet).name == list[m]) { flag2 = true; break; } } if (flag2) { if (text != "") { text += ", "; } text += ((Object)storedMoves[l].poseSet).name; currentInputPoses.Add(storedMoves[l]); storedMoves.RemoveAt(l); l--; } } if (text != "") { MelonLogger.Msg("Poses Added: " + text); } } }