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 PoseHitboxes v1.3.2
Mods/PoseHitboxes.dll
Decompiled a week agousing System.Collections; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using Il2CppInterop.Runtime.InteropTypes.Arrays; using Il2CppRUMBLE.Poses; using Il2CppRUMBLE.Tutorial.MoveLearning; using MelonLoader; using PoseHitboxes; using RumbleModdingAPI; 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(ClassPH), "PoseHitboxes", "1.3.2", "Marcopolo1613", null)] [assembly: MelonGame("Buckethead Entertainment", "RUMBLE")] [assembly: AssemblyTitle("PoseHitboxes")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("PoseHitboxes")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("138ef4a5-245f-4c7b-a130-69645d5b6e5b")] [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 PoseHitboxes; public class ClassPH : MelonMod { private string currentScene = "Loader"; private bool sceneChanged = false; private bool loaded = false; private PoseGhost poseGhost; private Material ghosty; private Material redy; private Material glassy; private string currentPoseName = ""; private int delayCycle = 0; private GameObject LHitbox; private GameObject RHitbox; private GameObject LRotate; private GameObject RRotate; private GameObject LRotateLimit; private GameObject RRotateLimit; private GameObject LHandRef; private GameObject RHandRef; private float deg2rad = 0.01745328f; private float LThresh = 0f; private float RThresh = 0f; private Color red8 = new Color(1f, 0f, 0f, 0.8f); private Color green8 = new Color(0f, 1f, 0f, 0.8f); private Color blue8 = new Color(0f, 0f, 1f, 0.8f); private Color black8 = new Color(0f, 0f, 0f, 0.8f); private Color red1 = new Color(1f, 0f, 0f, 0.1f); private Color green1 = new Color(0f, 1f, 0f, 0.1f); private Color blue1 = new Color(0f, 0f, 1f, 0.1f); private object coroutine = null; private void BuildWireframeBox(GameObject WFParent, Material WFMat, Color WFColor) { //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) GameObject[,] array = new GameObject[3, 4]; int[,] array2 = new int[4, 2] { { 1, 1 }, { 1, -1 }, { -1, 1 }, { -1, -1 } }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { array[i, j] = GameObject.CreatePrimitive((PrimitiveType)3); array[i, j].transform.parent = WFParent.transform; array[i, j].GetComponent<Renderer>().material = WFMat; array[i, j].GetComponent<Renderer>().material.color = WFColor; switch (i) { case 0: array[i, j].transform.localScale = new Vector3(1f, 0.003f, 0.003f); array[i, j].transform.localPosition = new Vector3(0f, 0.5f * (float)array2[j, 0], 0.5f * (float)array2[j, 1]); break; case 1: array[i, j].transform.localScale = new Vector3(0.003f, 1f, 0.003f); array[i, j].transform.localPosition = new Vector3(0.5f * (float)array2[j, 0], 0f, 0.5f * (float)array2[j, 1]); break; case 2: array[i, j].transform.localScale = new Vector3(0.003f, 0.003f, 1f); array[i, j].transform.localPosition = new Vector3(0.5f * (float)array2[j, 0], 0.5f * (float)array2[j, 1], 0f); break; } } } } public override void OnSceneWasLoaded(int buildIndex, string sceneName) { currentScene = sceneName; sceneChanged = true; delayCycle = 5; loaded = false; } public override void OnFixedUpdate() { //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) if (currentScene != "Gym") { return; } if (sceneChanged) { if (delayCycle > 1) { delayCycle--; } else { if (!loaded) { try { poseGhost = MoveLearning.GetGameObject().GetComponentInChildren<PoseGhost>(); ghosty = ((Component)((Component)poseGhost.bodyRenderer).transform.parent.GetChild(1)).GetComponent<Renderer>().material; redy = ((Component)Gymarena.GetGameObject().transform.GetChild(0)).GetComponent<Renderer>().material; LHandRef = GameObject.Find("Player Controller(Clone)/Visuals/Skelington/Bone_Pelvis/Bone_Spine_A/Bone_Chest/Bone_Shoulderblade_L/Bone_Shoulder_L/Bone_Lowerarm_L/Bone_HandAlpha_L"); RHandRef = GameObject.Find("Player Controller(Clone)/Visuals/Skelington/Bone_Pelvis/Bone_Spine_A/Bone_Chest/Bone_Shoulderblade_R/Bone_Shoulder_R/Bone_Lowerarm_R/Bone_HandAlpha_R"); loaded = true; currentPoseName = ""; } catch { return; } } sceneChanged = false; } } if (loaded) { try { if (currentPoseName != ((Object)((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose).name) { if (((Component)poseGhost.bodyRenderer).transform.parent.GetChild(0).childCount > 0) { while (((Component)poseGhost.bodyRenderer).transform.parent.GetChild(0).childCount > 0 || ((Component)poseGhost.bodyRenderer).transform.parent.GetChild(1).childCount > 0) { try { Object.DestroyImmediate((Object)(object)((Component)((Component)poseGhost.bodyRenderer).transform.parent.GetChild(0).GetChild(0)).gameObject); Object.DestroyImmediate((Object)(object)((Component)((Component)poseGhost.bodyRenderer).transform.parent.GetChild(1).GetChild(0)).gameObject); Object.DestroyImmediate((Object)(object)LRotate.gameObject); Object.DestroyImmediate((Object)(object)RRotate.gameObject); } catch { return; } } } if (coroutine != null) { MelonCoroutines.Stop(coroutine); } coroutine = MelonCoroutines.Start(CreateHitboxes()); } } catch { return; } } try { if ((Object)(object)LRotate != (Object)null) { LRotate.transform.rotation = LHandRef.GetComponent<Transform>().rotation; RRotate.transform.rotation = RHandRef.GetComponent<Transform>().rotation; } } catch { } } private IEnumerator CreateHitboxes() { currentPoseName = ((Object)((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose).name; while (poseGhost.currentPoseLerp < 0.5f) { yield return null; } GameObject LCube = GameObject.CreatePrimitive((PrimitiveType)3); GameObject RCube = GameObject.CreatePrimitive((PrimitiveType)3); LCube.transform.parent = ((Component)poseGhost.bodyRenderer).transform.parent.GetChild(0); RCube.transform.parent = ((Component)poseGhost.bodyRenderer).transform.parent.GetChild(1); LCube.transform.position = poseGhost.leftHand.position; RCube.transform.position = poseGhost.rightHand.position; BuildWireframeBox(LCube.gameObject, redy, black8); BuildWireframeBox(RCube.gameObject, redy, black8); LCube.GetComponent<Renderer>().enabled = false; RCube.GetComponent<Renderer>().enabled = false; ((Component)((Component)poseGhost.bodyRenderer).transform.parent.GetChild(0)).GetComponent<Renderer>().material = redy; ((Component)((Component)poseGhost.bodyRenderer).transform.parent.GetChild(1)).GetComponent<Renderer>().material = redy; LRotate = GameObject.CreatePrimitive((PrimitiveType)3); RRotate = GameObject.CreatePrimitive((PrimitiveType)3); GameObject LYBar = GameObject.CreatePrimitive((PrimitiveType)3); GameObject LZBar = GameObject.CreatePrimitive((PrimitiveType)3); GameObject RYBar = GameObject.CreatePrimitive((PrimitiveType)3); GameObject RZBar = GameObject.CreatePrimitive((PrimitiveType)3); LRotate.transform.parent = ((Component)poseGhost.bodyRenderer).transform.parent.GetChild(0); RRotate.transform.parent = ((Component)poseGhost.bodyRenderer).transform.parent.GetChild(1); LRotate.GetComponent<Renderer>().material = redy; RRotate.GetComponent<Renderer>().material = redy; LRotate.transform.localScale = new Vector3(0.003f, 0.003f, 0.003f); RRotate.transform.localScale = new Vector3(0.003f, 0.003f, 0.003f); LYBar.transform.parent = LRotate.transform; LZBar.transform.parent = LRotate.transform; RYBar.transform.parent = RRotate.transform; RZBar.transform.parent = RRotate.transform; LYBar.transform.localScale = new Vector3(1f, 25f, 1f); LZBar.transform.localScale = new Vector3(1f, 1f, 25f); RYBar.transform.localScale = new Vector3(1f, 25f, 1f); RZBar.transform.localScale = new Vector3(1f, 1f, 25f); LYBar.GetComponent<Renderer>().material.shader = Shader.Find("Universal Render Pipeline/Lit"); LZBar.GetComponent<Renderer>().material.shader = Shader.Find("Universal Render Pipeline/Lit"); RYBar.GetComponent<Renderer>().material.shader = Shader.Find("Universal Render Pipeline/Lit"); RZBar.GetComponent<Renderer>().material.shader = Shader.Find("Universal Render Pipeline/Lit"); LYBar.GetComponent<Renderer>().material.color = green8; LZBar.GetComponent<Renderer>().material.color = blue8; RYBar.GetComponent<Renderer>().material.color = green8; RZBar.GetComponent<Renderer>().material.color = blue8; LRotate.transform.position = poseGhost.leftHand.position + new Vector3(-1f, 0f, -1f); RRotate.transform.position = poseGhost.rightHand.position + new Vector3(-1f, 0f, -1f); LRotateLimit = GameObject.CreatePrimitive((PrimitiveType)0); RRotateLimit = GameObject.CreatePrimitive((PrimitiveType)0); GameObject LYBarLimit = GameObject.CreatePrimitive((PrimitiveType)2); GameObject LZBarLimit = GameObject.CreatePrimitive((PrimitiveType)2); GameObject RYBarLimit = GameObject.CreatePrimitive((PrimitiveType)2); GameObject RZBarLimit = GameObject.CreatePrimitive((PrimitiveType)2); Quaternion rotation = poseGhost.leftHand.rotation; float x = ((Quaternion)(ref rotation)).eulerAngles.x; Condition leftControllerCondition = ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.leftControllerCondition; if (x == ((Quaternion)(ref leftControllerCondition.DesiredPose.rotation)).eulerAngles.x) { LThresh = ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.LeftControllerCondition.RotationTreshold; RThresh = ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.RightControllerCondition.RotationTreshold; LCube.transform.localScale = new Vector3(((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.leftControllerCondition.PositionTreshold, ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.leftControllerCondition.PositionTreshold, ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.leftControllerCondition.PositionTreshold); RCube.transform.localScale = new Vector3(((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.RightControllerCondition.PositionTreshold, ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.RightControllerCondition.PositionTreshold, ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.RightControllerCondition.PositionTreshold); } else { RThresh = ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.LeftControllerCondition.RotationTreshold; LThresh = ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.RightControllerCondition.RotationTreshold; RCube.transform.localScale = new Vector3(((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.leftControllerCondition.PositionTreshold, ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.leftControllerCondition.PositionTreshold, ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.leftControllerCondition.PositionTreshold); LCube.transform.localScale = new Vector3(((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.RightControllerCondition.PositionTreshold, ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.RightControllerCondition.PositionTreshold, ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.RightControllerCondition.PositionTreshold); } float LRotationLimit = (1f - LThresh) * 3.14159f; float RRotationLimit = (1f - RThresh) * 3.14159f; LRotateLimit.transform.parent = ((Component)poseGhost.bodyRenderer).transform.parent.GetChild(0); RRotateLimit.transform.parent = ((Component)poseGhost.bodyRenderer).transform.parent.GetChild(1); LRotateLimit.GetComponent<Renderer>().material = redy; RRotateLimit.GetComponent<Renderer>().material = redy; LRotateLimit.transform.localScale = new Vector3(0.03f * LThresh, 0.03f * LThresh, 0.03f * LThresh); RRotateLimit.transform.localScale = new Vector3(0.03f * RThresh, 0.03f * RThresh, 0.03f * RThresh); LYBarLimit.transform.parent = LRotateLimit.transform; LZBarLimit.transform.parent = LRotateLimit.transform; RYBarLimit.transform.parent = RRotateLimit.transform; RZBarLimit.transform.parent = RRotateLimit.transform; LYBarLimit.transform.localScale = new Vector3(LRotationLimit, 0.6f, LRotationLimit); LZBarLimit.transform.localScale = new Vector3(LRotationLimit, 0.6f, LRotationLimit); RYBarLimit.transform.localScale = new Vector3(RRotationLimit, 0.6f, RRotationLimit); RZBarLimit.transform.localScale = new Vector3(RRotationLimit, 0.6f, RRotationLimit); LYBarLimit.transform.Rotate(new Vector3(0f, 90f, 0f), (Space)1); LZBarLimit.transform.Rotate(new Vector3(90f, 0f, 0f), (Space)1); RYBarLimit.transform.Rotate(new Vector3(0f, 90f, 0f), (Space)1); RZBarLimit.transform.Rotate(new Vector3(90f, 0f, 0f), (Space)1); LYBarLimit.GetComponent<Renderer>().material.shader = Shader.Find("Universal Render Pipeline/Lit"); LZBarLimit.GetComponent<Renderer>().material.shader = Shader.Find("Universal Render Pipeline/Lit"); RYBarLimit.GetComponent<Renderer>().material.shader = Shader.Find("Universal Render Pipeline/Lit"); RZBarLimit.GetComponent<Renderer>().material.shader = Shader.Find("Universal Render Pipeline/Lit"); LYBarLimit.GetComponent<Renderer>().material.color = green1; LZBarLimit.GetComponent<Renderer>().material.color = blue1; RYBarLimit.GetComponent<Renderer>().material.color = green1; RZBarLimit.GetComponent<Renderer>().material.color = blue1; LRotateLimit.transform.position = poseGhost.leftHand.position + new Vector3(-0.3f, 0.15f, -0.3f); RRotateLimit.transform.position = poseGhost.rightHand.position + new Vector3(-0.3f, 0.15f, -0.3f); LRotate.transform.position = poseGhost.leftHand.position + new Vector3(-0.3f, 0.15f, -0.3f); RRotate.transform.position = poseGhost.rightHand.position + new Vector3(-0.3f, 0.15f, -0.3f); rotation = poseGhost.leftHand.rotation; float x2 = ((Quaternion)(ref rotation)).eulerAngles.x; leftControllerCondition = ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.leftControllerCondition; if (x2 == ((Quaternion)(ref leftControllerCondition.DesiredPose.rotation)).eulerAngles.x) { LCube.transform.localRotation = ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.leftControllerCondition.DesiredPose.rotation; RCube.transform.localRotation = ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.rightControllerCondition.DesiredPose.rotation; } else { RCube.transform.localRotation = ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.leftControllerCondition.DesiredPose.rotation; LCube.transform.localRotation = ((Il2CppArrayBase<PoseConfiguration>)(object)poseGhost.CurrentPoseSet.configurations)[poseGhost.currentVisualPoseIndex].Pose.rightControllerCondition.DesiredPose.rotation; } LRotateLimit.transform.rotation = LCube.transform.rotation; RRotateLimit.transform.rotation = RCube.transform.rotation; } }