public override void OnUpdate() { try { //If User Has Loaded A World if (RoomManager.prop_Boolean_3) { ButtonAPI.SubMenuHandler(); // Routine Delay Is Built In if (Time.time > OnUpdateRoutineDelay) { OnUpdateRoutineDelay = Time.time + 1f; if (DisablePortals) { Functions.TogglePortals(false); } } } } catch (System.Exception ex) { MelonLogger.Log("Error in OnUpdate! - " + ex.Message + " From: " + ex.Source + " - Stack: " + ex.StackTrace); } }
// ▲▼ public override void OnStart() { //Change QM collider size [for more buttons] GameObject.Find("UserInterface/QuickMenu").GetComponent <BoxCollider>().size = new Vector3(5034.68f, 3342.426f, 1f); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "HVH\nMod", "HVH menu", ButtonAPI.HorizontalPosition.LeftOfMenu, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.ShortcutMenuTransform, delegate(bool a) { ButtonAPI.EnterSubMenu(ButtonAPI.MakeEmptyPage("HVH")); }, Color.red, Color.magenta, null, true, false, false, false, null, true); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Player List", "Player list menu", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("HVH").transform, delegate(bool a) { ButtonAPI.EnterSubMenu(ButtonAPI.MakeEmptyPage("PlayerList")); }, Color.red, Color.magenta, null, false, true, false, false, null, true); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "User\nUtils", "User utils menu [HVH]", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.BelowBottomButton, ButtonAPI.UserInteractMenuTransform, delegate(bool a) { ButtonAPI.EnterSubMenu(ButtonAPI.MakeEmptyPage("UserUtils")); }, Color.red, Color.magenta, null, true); isUIInit = true; }
public override void OnStart() { ButtonAPI.CreateButton(ButtonAPI.ButtonType.Toggle, "Mirror Q", "Toggle mirror quality", ButtonAPI.HorizontalPosition.FourthButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { MirrorReflection[] array = Object.FindObjectsOfType <MirrorReflection>(); LayerMask mask = new LayerMask(); mask.value = a ? 263680 : -1025; for (int i = 0; i < array.Length; i++) { array[i].m_ReflectLayers = mask; } VRCSDK2.VRC_MirrorReflection[] array2 = Object.FindObjectsOfType <VRCSDK2.VRC_MirrorReflection>(); for (int i = 0; i < array2.Length; i++) { array2[i].m_ReflectLayers = mask; } VRC_MirrorReflection[] array4 = Object.FindObjectsOfType <VRC_MirrorReflection>(); for (int i = 0; i < array4.Length; i++) { array4[i].m_ReflectLayers = mask; } }, Color.white, Color.green, null, false, false); }
public override void OnUpdate() { if (isUIInit) { ButtonAPI.SubMenuHandler(); } }
public override void OnStart() { ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Teleport", "Teleport to player", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("UserUtils").transform, delegate(bool a) { PureUtils.GetLocalPlayer().transform.position = PureUtils.GetSelectedPlayerOrNull().gameObject.transform.position; }, Color.white, Color.white, null, false, false); }
public override void OnStart() { ButtonAPI.CreateButton(ButtonAPI.ButtonType.Toggle, "Quck Info!", "Toggle quick info on players", ButtonAPI.HorizontalPosition.ThirdButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { toggleQuickInfo = a; }, Color.white, Color.yellow, null, false, false); }
public override void OnStart() { ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Get VRCA", "Download VRCA of Player", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("UserUtils").transform, delegate(bool a) { Process.Start(Wrapper.GetQuickMenu().GetSelectedPlayer().field_Internal_VRCPlayer_0.prop_ApiAvatar_0.assetUrl); }, Color.white, Color.white, null, false, false); }
public override void OnStart() { ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Reconnect", "Reconnect to instance", ButtonAPI.HorizontalPosition.ThirdButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { Networking.GoToRoom(PureUtils.GetInstance().instanceWorld.id + ":" + PureUtils.GetInstance().instanceWorld.currentInstanceIdWithTags); }, Color.white, Color.white, null, false, false); }
public override void OnStart() { earRapeButton = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Toggle, "EarRape", "F**K ALL EARS", ButtonAPI.HorizontalPosition.FourthButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { USpeaker.field_Internal_Static_Single_1 = a ? float.MaxValue : 1f; PureLogger.Log(a ? ConsoleColor.Red : ConsoleColor.Green, a ? "EarRape Enabled" : "EarRape Disabled"); }, Color.white, Color.red, null, false, false, false, false, null, true); }
public override void OnStart() { beerEmojiButton = GameObject.Find("UserInterface/QuickMenu/EmojiMenu/Page2/EmojiButton2").GetComponent <Button>(); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Toggle, "Beer Time!", "Toggle spam snow emoji", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { toggleState = a; }, Color.white, Color.yellow, null, false); }
public override void OnStart() { ButtonAPI.CreateButton(ButtonAPI.ButtonType.Toggle, "ESP", "ESP", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { toggleESP = a; localList = PureUtils.GetPlayers(); localPlayer = PureUtils.GetLocalPlayer(); }, Color.white, Color.cyan, null); }
public override void OnStart() { //UserInterface/QuickMenu/EmojiMenu/Page5/EmojiButton2 micButton = GameObject.Find("UserInterface/QuickMenu/MicControls/MicButton").GetComponent <Button>(); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Toggle, "RIP Mic", "Fast toggle microphone", ButtonAPI.HorizontalPosition.FourthButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { toggleState = a; }, Color.white, Color.red, null); }
public override void OnStart() { ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Allow Clone", "Allow to clone all avatars", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { foreach (Player player in PureUtils.GetPlayers()) { player.prop_APIUser_0.allowAvatarCopying = true; } }, Color.white, Color.white, null, false, false); }
private static IEnumerator createButton() { while (QuickMenu.prop_QuickMenu_0 == null) { yield return(null); } ExpansionKitApi.GetExpandedMenu(ExpandedMenu.QuickMenu).AddSimpleButton("Vibrator\nController", new Action(() => { ButtonAPI.EnterSubMenu(ButtonAPI.MakeEmptyPage("SubMenu_1")); })); }
public override void OnStart() { killButton = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Quit", "Shutdown game", ButtonAPI.HorizontalPosition.ThirdButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { Application.Quit(); Timer aTimer = new System.Timers.Timer(); aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); aTimer.Interval = 800; aTimer.Enabled = true; }, Color.red, Color.red, null); }
public override void OnStart() { ButtonAPI.CreateButton(ButtonAPI.ButtonType.Toggle, "VRChat -", "Toggle Remove VRC+", ButtonAPI.HorizontalPosition.ThirdButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { GameObject.Find("UserInterface/QuickMenu/ShortcutMenu/UserIconButton").SetActive(!a); GameObject.Find("UserInterface/QuickMenu/ShortcutMenu/VRCPlusMiniBanner/Image").SetActive(!a); GameObject.Find("UserInterface/MenuContent/Screens/UserInfo/User Panel/Supporter").SetActive(!a); GameObject.Find("UserInterface/MenuContent/Screens/UserInfo/AvatarImage/SupporterIcon").SetActive(!a); GameObject.Find("UserInterface/QuickMenu/ShortcutMenu/HeaderContainer/VRCPlusBanner/Panel").SetActive(!a); GameObject.Find("UserInterface/MenuContent/Screens/UserInfo/User Panel/VRCPlusEarlyAdopter").SetActive(!a); GameObject.Find("UserInterface/MenuContent/Backdrop/Header/Tabs/ViewPort/Content/VRC+PageTab").SetActive(!a); GameObject.Find("UserInterface/MenuContent/Backdrop/Header/Tabs/ViewPort/Content/UserIconTab").SetActive(!a); GameObject.Find("UserInterface/MenuContent/Screens/Avatar/Vertical Scroll View/Viewport/Content/Favorite Avatar List/GetMoreFavorites").SetActive(!a); }, Color.yellow, Color.red, null, false, false); }
public override void OnStart() { ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Add Jump", "Add jump component to player", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { if (PureUtils.GetLocalPlayer().GetComponent <PlayerModComponentJump>()) { return; } else { PureUtils.GetLocalPlayer().AddComponent <PlayerModComponentJump>(); } PureUtils.GetLocalPlayer().GetComponent <PlayerModComponentJump>().field_Private_Single_0 = 3.0f; //PureUtils.GetLocalPlayer().GetComponent<PlayerModComponentJump>().field_Private_Single_1 = 3.0f; }, Color.white, Color.white, null); }
public override void OnStart() { playerCamera = Wrapper.GetLocalPlayerCamera().GetComponent <Camera>(); defaultFOV = playerCamera.fieldOfView; playerCamera.fieldOfView = FOV; ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "FOV Menu", "Field of view menu", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { ButtonAPI.EnterSubMenu(ButtonAPI.MakeEmptyPage("FOVMenu")); }, Color.white, Color.white, null, false, false); resetFOVButton = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, $"FOV [{FOV}]", $"Set field of view to {defaultFOV}", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("FOVMenu").transform, delegate(bool a) { FOV = defaultFOV; playerCamera.fieldOfView = FOV; resetFOVButton.transform.GetComponentInChildren <Text>().text = $"FOV [{FOV}]"; }, Color.white, Color.white, null, true); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "▲", "Set field of view up", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("FOVMenu").transform, delegate(bool a) { FOV += 1; playerCamera.fieldOfView = FOV; resetFOVButton.transform.GetComponentInChildren <Text>().text = $"FOV [{FOV}]"; }, Color.white, Color.white, null, false, false); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "▼", "Set field of view down", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("FOVMenu").transform, delegate(bool a) { FOV -= 1; if (FOV <= 0) { FOV = 1; } playerCamera.fieldOfView = FOV; resetFOVButton.transform.GetComponentInChildren <Text>().text = $"FOV [{FOV}]"; }, Color.white, Color.white, null, false); }
public override void OnStart() { ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Fly Menu", "Fly menu", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("PureCheat").transform, delegate(bool a) { ButtonAPI.EnterSubMenu(ButtonAPI.MakeEmptyPage("FlyMenu")); }, Color.white, Color.white, null, false, false); toggleFlyButton = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Toggle, "Fly", "Toggle fly", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("FlyMenu").transform, delegate(bool a) { isFly = a; PureUtils.GetLocalPlayer().GetComponent <CharacterController>().enabled = !a; PureLogger.Log(a ? "Fly enabled" : "Fly Disabled"); }, Color.white, Color.red, null, false, false); resetFlySpeedButton = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, $"Speed [{flySpeed}]", "Reset fly speed", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("FlyMenu").transform, delegate(bool a) { flySpeed = 2; resetFlySpeedButton.SetText($"Speed [{flySpeed}]"); }, Color.white, Color.white, null, false); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "▲", "Fly speed up", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("FlyMenu").transform, delegate(bool a) { flySpeed += 1; resetFlySpeedButton.SetText($"Speed [{flySpeed}]"); }, Color.white, Color.white, null, false, false); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "▼", "Fly speed down", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("FlyMenu").transform, delegate(bool a) { flySpeed -= 1; if (flySpeed <= 0) { flySpeed = 1; } resetFlySpeedButton.SetText($"Speed [{flySpeed}]"); }, Color.white, Color.white, null, false); }
public override void OnStart() { new ButtonAPI.SingleButton(QMmenu.mainMenuP1.GetMenuName(), 3, 0, true, "Load Avatar", "Load Avatar From Clipboard", delegate() { string text = Clipboard.GetText(); if (text.StartsWith("avtr_")) { new PageAvatar { field_Public_SimpleAvatarPedestal_0 = new SimpleAvatarPedestal { field_Internal_ApiAvatar_0 = new ApiAvatar { id = text } } } } .ChangeToSelectedAvatar();
public override void VRChat_OnUiManagerInit() { Tuple<string, string, Color?, Color?, Action<bool>> SubMenu1Data = Tuple.Create<string, string, Color?, Color?, Action<bool>>("Sub Menu 1", "The First SubMenu", UnityEngine.Color.magenta, null, delegate(bool a) { Process.Start("https://VRCAntiCrash.com/ButtonAPI"); }); Tuple<string, string, Color?, Color?, Action<bool>> SubMenu2Data = Tuple.Create<string, string, Color?, Color?, Action<bool>>("Sub Menu 2", "The Second SubMenu", UnityEngine.Color.magenta, null, delegate(bool a) { Process.Start("https://VRCAntiCrash.com/ButtonAPI"); }); //Make Button To Enter SubMenu_1 ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, LoadedImage != null ? "" : "Utils", "Some Random Utils.", ButtonAPI.HorizontalPosition.LeftOfMenu, ButtonAPI.VerticalPosition.TopButton, null, delegate (bool a) { ButtonAPI.EnterSubMenu(ButtonAPI.MakeEmptyPage("SubMenu_1", SubMenu1Data.Item1, SubMenu1Data.Item2, SubMenu1Data.Item3, SubMenu1Data.Item4, SubMenu1Data.Item5)); }, UnityEngine.Color.white, UnityEngine.Color.magenta, null, true, false, false, false, LoadedImage, true); //SubMenu_1 Contents ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Next Page", "Goes To The Next Page.", ButtonAPI.HorizontalPosition.LeftOfMenu, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("SubMenu_1", SubMenu1Data.Item1, SubMenu1Data.Item2, SubMenu1Data.Item3, SubMenu1Data.Item4, SubMenu1Data.Item5).transform, delegate (bool a) { ButtonAPI.EnterSubMenu(ButtonAPI.MakeEmptyPage("SubMenu_2", SubMenu2Data.Item1, SubMenu2Data.Item2, SubMenu2Data.Item3, SubMenu2Data.Item4, SubMenu2Data.Item5)); }, UnityEngine.Color.white, UnityEngine.Color.magenta, null, false, false, false, false, null, true); InputField InputField = null; InputField = ButtonAPI.CreateInputField("Enter Text Here..", ButtonAPI.VerticalPosition.BelowBottomButton, ButtonAPI.MakeEmptyPage("SubMenu_1", SubMenu1Data.Item1, SubMenu1Data.Item2, SubMenu1Data.Item3, SubMenu1Data.Item4, SubMenu1Data.Item5).transform, delegate (string text) { //MelonLogger.Log("New Text: " + text); }, delegate () { if (InputField.text.StartsWith("teleport ") && InputField.text.Length > 9) { Player TargetPlayer = PlayerManager.field_Private_Static_PlayerManager_0 .field_Private_List_1_Player_0.ToArray() .FirstOrDefault(o => o.field_Private_APIUser_0.displayName.ToLower().StartsWith(InputField.text.Replace("teleport ", "").ToLower())); if (TargetPlayer != null) { MelonLogger.Log("Teleporting To: " + TargetPlayer.field_Private_APIUser_0.displayName); VRCPlayer.field_Internal_Static_VRCPlayer_0.transform.position = TargetPlayer.transform.position; } else { MelonLogger.Log("Player: " + InputField.text.Replace("teleport ", "") + " Not Found!"); } } }); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Toggle, "Disable Portals", "Disables Portals Entirely - This Stops That Stupid Notorious Menu Disabling Bullshit", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("SubMenu_1", SubMenu1Data.Item1, SubMenu1Data.Item2, SubMenu1Data.Item3, SubMenu1Data.Item4, SubMenu1Data.Item5).transform, delegate (bool a) { DisablePortals = a; if (!a) { Functions.TogglePortals(true); } }, UnityEngine.Color.white, UnityEngine.Color.magenta, null, false, false, false, DisablePortals, null, true, KeyCode.LeftControl, KeyCode.P); //Test Checkbox ButtonAPI.PlagueButton CheckBox = null; CheckBox = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Toggle, "X", "A CheckBox, Ez", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("SubMenu_1", SubMenu1Data.Item1, SubMenu1Data.Item2, SubMenu1Data.Item3, SubMenu1Data.Item4, SubMenu1Data.Item5).transform, delegate (bool a) { CheckBox.text.text = (a ? "✓" : "X"); }, UnityEngine.Color.white, UnityEngine.Color.magenta, null, false, false, true, false, null, true); ButtonAPI.CreateText(ButtonAPI.ButtonType.Toggle, ButtonAPI.SizeType.ButtonSize, "Some Text", "Just Some Text", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("SubMenu_1", SubMenu1Data.Item1, SubMenu1Data.Item2, SubMenu1Data.Item3, SubMenu1Data.Item4, SubMenu1Data.Item5).transform, true, true, delegate (bool a) { //Do Something Here }, false, UnityEngine.Color.magenta, UnityEngine.Color.white); ButtonAPI.CreateSlider(ButtonAPI.MakeEmptyPage("SubMenu_1", SubMenu1Data.Item1, SubMenu1Data.Item2, SubMenu1Data.Item3, SubMenu1Data.Item4, SubMenu1Data.Item5).transform, delegate (float v) { }, (float)ButtonAPI.HorizontalPosition.FirstButtonPos, (float)ButtonAPI.VerticalPosition.BottomButton, "Test Slider", 15f, 100f, 0f); //SubMenu_2 Contents ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Prev Page", "Goes To The Previous Page.", ButtonAPI.HorizontalPosition.LeftOfMenu, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("SubMenu_2", SubMenu2Data.Item1, SubMenu2Data.Item2, SubMenu2Data.Item3, SubMenu2Data.Item4, SubMenu2Data.Item5).transform, delegate (bool a) { ButtonAPI.EnterSubMenu(ButtonAPI.MakeEmptyPage("SubMenu_1", SubMenu1Data.Item1, SubMenu1Data.Item2, SubMenu1Data.Item3, SubMenu1Data.Item4, SubMenu1Data.Item5)); }, UnityEngine.Color.white, UnityEngine.Color.magenta, null, false, false, false, false, null, true); ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Hello World", "Prints Hello World To Console.", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("SubMenu_2", SubMenu2Data.Item1, SubMenu2Data.Item2, SubMenu2Data.Item3, SubMenu2Data.Item4, SubMenu2Data.Item5).transform, delegate (bool a) { MelonLogger.Log(ConsoleColor.Magenta, "Hello World!"); }, UnityEngine.Color.white, UnityEngine.Color.magenta, null, false, false, false, false, null, true); }
public override void OnStart() { try { if (Buttons.Count() == 0) { Transform parent = Wrappers.GetQuickMenu().transform.Find("UIElementsMenu"); if (parent != null) { var Flightbutton = ButtonAPI.CreateButton(ButtonType.Toggle, "Flight", "Enable/Disable Flight", Color.white, Color.blue, -1, 0, parent, new Action(() => { GlobalUtils.DirectionalFlight = true; Physics.gravity = GlobalUtils.DirectionalFlight ? Vector3.zero : GlobalUtils.Grav; GlobalUtils.ToggleColliders(false); MelonModLogger.Log($"Flight has been {(GlobalUtils.DirectionalFlight ? "Enabled" : "Disabled")}."); }), new Action(() => { GlobalUtils.DirectionalFlight = false; Physics.gravity = GlobalUtils.DirectionalFlight ? Vector3.zero : GlobalUtils.Grav; GlobalUtils.ToggleColliders(true); MelonModLogger.Log($"Flight has been {(GlobalUtils.DirectionalFlight ? "Enabled" : "Disabled")}."); })); var ESPbutton = ButtonAPI.CreateButton(ButtonType.Toggle, "ESP", "Enable/Disable Selected ESP", Color.white, Color.blue, 0, 0, parent, new Action(() => { GlobalUtils.SelectedPlayerESP = true; MelonModLogger.Log($"Selected ESP has been {(GlobalUtils.SelectedPlayerESP ? "Enabled" : "Disabled")}."); GameObject[] array = GameObject.FindGameObjectsWithTag("Player"); for (int i = 0; i < array.Length; i++) { if (array[i].transform.Find("SelectRegion")) { array[i].transform.Find("SelectRegion").GetComponent <Renderer>().sharedMaterial.SetColor("_Color", Color.magenta); HighlightsFX.prop_HighlightsFX_0.EnableOutline(array[i].transform.Find("SelectRegion").GetComponent <Renderer>(), GlobalUtils.SelectedPlayerESP); } } foreach (VRC_Pickup pickup in Resources.FindObjectsOfTypeAll <VRC_Pickup>()) { if (pickup.gameObject.transform.Find("SelectRegion")) { pickup.gameObject.transform.Find("SelectRegion").GetComponent <Renderer>().sharedMaterial.SetColor("_Color", Color.magenta); Wrappers.GetHighlightsFX().EnableOutline(pickup.gameObject.transform.Find("SelectRegion").GetComponent <Renderer>(), GlobalUtils.SelectedPlayerESP); } } }), new Action(() => { GlobalUtils.SelectedPlayerESP = false; MelonModLogger.Log($"Selected ESP has been {(GlobalUtils.SelectedPlayerESP ? "Enabled" : "Disabled")}."); GameObject[] array = GameObject.FindGameObjectsWithTag("Player"); for (int i = 0; i < array.Length; i++) { if (array[i].transform.Find("SelectRegion")) { array[i].transform.Find("SelectRegion").GetComponent <Renderer>().sharedMaterial.SetColor("_Color", Color.magenta); HighlightsFX.prop_HighlightsFX_0.EnableOutline(array[i].transform.Find("SelectRegion").GetComponent <Renderer>(), GlobalUtils.SelectedPlayerESP); } } foreach (VRC_Pickup pickup in Resources.FindObjectsOfTypeAll <VRC_Pickup>()) { if (pickup.gameObject.transform.Find("SelectRegion")) { pickup.gameObject.transform.Find("SelectRegion").GetComponent <Renderer>().sharedMaterial.SetColor("_Color", Color.magenta); Wrappers.GetHighlightsFX().EnableOutline(pickup.gameObject.transform.Find("SelectRegion").GetComponent <Renderer>(), GlobalUtils.SelectedPlayerESP); } } })); var teleportButton = ButtonAPI.CreateButton(ButtonType.Default, "Teleport", "Teleport to the selected player", Color.white, Color.cyan, 0, 0, Wrappers.GetQuickMenu().transform.Find("UserInteractMenu"), new Action(() => { MelonModLogger.Log("Teleporting to selected player."); var player = PlayerWrappers.GetCurrentPlayer(); var SelectedPlayer = Wrappers.GetQuickMenu().GetSelectedPlayer(); player.transform.position = SelectedPlayer.transform.position; })); var Freezebutton = ButtonAPI.CreateButton(ButtonType.Toggle, "Serialize", "Enable/Disable Custom Serialisation", Color.white, Color.blue, -3, -1, parent, new Action(() => { GlobalUtils.Serialise = false; MelonModLogger.Log($"Custom Serialisation has been Enabled."); }), new Action(() => { GlobalUtils.Serialise = true; MelonModLogger.Log($"Custom Serialisation has been Disabled."); })); var ForceCloneButton = ButtonAPI.CreateButton(ButtonType.Toggle, "Force Clone", "Enable/disable force clone", Color.white, Color.blue, -2, -1, parent, new Action(() => { GlobalUtils.ForceClone = true; MelonModLogger.Log($"Force Clone has been Enabled."); }), new Action(() => { GlobalUtils.ForceClone = false; MelonModLogger.Log($"Force Clone has been Disabled."); })); Buttons.Add(Flightbutton.gameObject); Buttons.Add(ESPbutton.gameObject); Buttons.Add(teleportButton.gameObject); Buttons.Add(Freezebutton.gameObject); Buttons.Add(ForceCloneButton.gameObject); } } } catch (Exception) { } }
public override void VRChat_OnUiManagerInit() { if (subMenu != "UIExpansionKit") { ButtonAPI.CustomTransform = GameObject.Find("/UserInterface/QuickMenu/" + subMenu).transform; ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Vibrator\nController", "Vibrator Controller Settings", buttonX - 4, 3 - buttonY, null, delegate(bool a) { ButtonAPI.EnterSubMenu(ButtonAPI.MakeEmptyPage("SubMenu_1")); }, Color.white, Color.magenta, null, true, false, false, false, null, true); } //Back LockButtonUI = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Back", "Exit this menu", ButtonAPI.HorizontalPosition.RightOfMenu, ButtonAPI.VerticalPosition.BottomButton, ButtonAPI.MakeEmptyPage("SubMenu_1").transform, delegate(bool a) { if (subMenu == "UIExpansionKit") { ButtonAPI.EnterSubMenu(GameObject.Find("/UserInterface/QuickMenu/ShortcutMenu")); } else { ButtonAPI.EnterSubMenu(GameObject.Find("/UserInterface/QuickMenu/" + subMenu)); } }, Color.yellow, Color.magenta, null, true, false, false, false, null, true); //Lock button LockButtonUI = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Lock Speed\nButton", "Click than press button on controller to set button to lock vibraton speed (click twice to disable)", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("SubMenu_1").transform, delegate(bool a) { if (findButton == "lockButton") { lockButton = KeyCode.None; findButton = null; LockKeyBind.SetText(""); LockButtonUI.SetText("Lock Speed\nButton"); MelonPreferences.SetEntryValue(vibratorController.Identifier, "lockButton", lockButton.GetHashCode()); return; } findButton = "lockButton"; LockButtonUI.SetText("Press Now"); }, Color.white, Color.magenta, null, true, false, false, false, null, true); LockKeyBind = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "", "Lock Speed Keybind", ButtonAPI.HorizontalPosition.FirstButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("SubMenu_1").transform, delegate(bool a) { }, Color.white, Color.grey, null, false, false, false, false, null, false); LockKeyBind.SetInteractivity(false); if (lockButton != 0) { LockKeyBind.SetText(lockButton.ToString()); } //Hold button HoldButtonUI = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Hold\nButton", "Click than press button on controller to set button to hold to use toy (click twice to disable)", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("SubMenu_1").transform, delegate(bool a) { if (findButton == "holdButton") { holdButton = KeyCode.None; findButton = null; HoldKeyBind.SetText(""); HoldButtonUI.SetText("Hold\nButton"); MelonPreferences.SetEntryValue(vibratorController.Identifier, "lockButton", holdButton.GetHashCode()); return; } findButton = "holdButton"; HoldButtonUI.SetText("Press Now"); }, Color.white, Color.magenta, null, true, false, false, false, null, true); HoldKeyBind = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "", "Hold Keybind", ButtonAPI.HorizontalPosition.SecondButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("SubMenu_1").transform, delegate(bool a) { }, Color.white, Color.grey, null, false, false, false, false, null, false); HoldKeyBind.SetInteractivity(false); if (holdButton != 0) { HoldKeyBind.SetText(holdButton.ToString()); } //Add toy addButtonUI = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Add\nToy", "Click to pair with a friend's toy", ButtonAPI.HorizontalPosition.ThirdButtonPos, ButtonAPI.VerticalPosition.TopButton, ButtonAPI.MakeEmptyPage("SubMenu_1").transform, delegate(bool a) { InputPopup("", delegate(string text) { if (text.Length != 4) { addButtonUI.SetText("Add\nToys\n<color=#FF0000>Invalid Code</color>"); } else { Client.send("join " + text); } }); }, Color.white, Color.magenta, null, true, false, false, false, null, true); //How to use ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "How To Use", "Opens instructions to use", ButtonAPI.HorizontalPosition.ThirdButtonPos, ButtonAPI.VerticalPosition.SecondButton, ButtonAPI.MakeEmptyPage("SubMenu_1").transform, delegate(bool a) { System.Diagnostics.Process.Start("https://github.com/markviews/VRChatVibratorController"); }, Color.white, Color.grey, null, false, false, false, false, null, false); quickMenu = GameObject.Find("UserInterface/QuickMenu/QuickMenu_NewElements"); menuContent = GameObject.Find("UserInterface/MenuContent/Backdrop/Backdrop"); }
public override void OnUpdate() { if (RoomManager.prop_Boolean_3) { ButtonAPI.SubMenuHandler(); } if (findButton != null) { getButton(); } if (Input.GetKeyDown(lockButton)) { if (lockSpeed) { lockSpeed = false; } else { lockSpeed = true; } } foreach (Toy toy in Toy.toys) { if (menuOpen()) { toy.setSpeed((int)toy.speedSlider.value); if (toy.maxSlider != null) { toy.setContraction(); } if (toy.edgeSlider != null) { if (toy.lastEdgeSpeed != toy.edgeSlider.value) { toy.setEdgeSpeed(toy.edgeSlider.value); } } pauseControl = true; } else { int speed = 0; if (lockSpeed) { return; } if (holdButton != KeyCode.None && !pauseControl) { if (!Input.GetKey(holdButton)) { toy.setSpeed(0); return; } } int left = (int)(10 * Input.GetAxis("Oculus_CrossPlatform_PrimaryIndexTrigger")); int right = (int)(10 * Input.GetAxis("Oculus_CrossPlatform_SecondaryIndexTrigger")); if (pauseControl) { if (left != 0 || right != 0) { Console.WriteLine(left + " " + right); pauseControl = false; } else { return; } } switch (toy.hand) { case "left": speed = left; break; case "right": speed = right; break; case "either": if (left > right) { speed = left; } else { speed = right; } break; case "both": speed = left; toy.setEdgeSpeed(right); break; } toy.setSpeed(speed); } } }
internal Toy(string name, string id) { this.id = id; this.name = name; button = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, name + "\nClick to\nSet", "Click to set controll mode", (ButtonAPI.HorizontalPosition) x ++, ButtonAPI.VerticalPosition.BottomButton, ButtonAPI.MakeEmptyPage("SubMenu_1").transform, delegate(bool a) { changeHand(); }, Color.white, Color.magenta, null, true, false, false, false, null, true); toys.Add(this); GameObject slider = GameObject.Find("UserInterface/QuickMenu/UserInteractMenu/User Volume/VolumeSlider"); GameObject quickmenu = GameObject.Find("UserInterface/QuickMenu/ShortcutMenu"); GameObject speedSliderObject = GameObject.Instantiate(slider, quickmenu.transform, true); speedSlider = speedSliderObject.GetComponent <UnityEngine.UI.Slider>(); speedSlider.maxValue = 20; speedSlider.wholeNumbers = true; speedSlider.value = 0; speedSliderText = speedSlider.transform.Find("Fill Area/VolumeNumberText").GetComponent <UnityEngine.UI.Text>(); speedSliderText.text = name + " Speed: 0%"; speedSliderObject.SetActive(false); if (name.Equals("Max")) { GameObject maxSliderObject = GameObject.Instantiate(slider, quickmenu.transform, true); maxSliderObject.transform.localScale = new Vector3(0.7f, 1, 1); maxSlider = maxSliderObject.GetComponent <UnityEngine.UI.Slider>(); maxSlider.maxValue = 3; maxSlider.wholeNumbers = true; maxSlider.value = 0; Transform textTransform = maxSlider.transform.Find("Fill Area/VolumeNumberText"); textTransform.localScale = new Vector3(1, 1, 1); maxSliderText = textTransform.GetComponent <UnityEngine.UI.Text>(); maxSliderText.text = "Max Contraction: 0"; maxSliderObject.SetActive(false); } else if (name.Equals("Nora")) { rotateButton = ButtonAPI.CreateButton(ButtonAPI.ButtonType.Default, "Rotate", "Rotate Nora", ButtonAPI.HorizontalPosition.LeftOfMenu, ButtonAPI.VerticalPosition.BelowBottomButton, ButtonAPI.ShortcutMenuTransform, delegate(bool a) { rotate(); }, Color.white, Color.magenta, null, true, false, false, false, null, true); rotateButton.gameObject.GetComponent <RectTransform>().sizeDelta = new Vector2(720, 190); rotateButton.gameObject.SetActive(false); } else if (name.Equals("Edge")) { speedSlider.GetComponent <RectTransform>().sizeDelta = new Vector2(850, 160); GameObject edgeSliderObject = GameObject.Instantiate(slider, quickmenu.transform, true); edgeSliderObject.GetComponent <RectTransform>().sizeDelta = new Vector2(850, 160); edgeSlider = edgeSliderObject.GetComponent <UnityEngine.UI.Slider>(); edgeSlider.maxValue = 20; edgeSlider.wholeNumbers = true; edgeSlider.value = 0; Transform textTransform = edgeSlider.transform.Find("Fill Area/VolumeNumberText"); textTransform.localScale = new Vector3(1, 1, 1); edgeSliderText = textTransform.GetComponent <UnityEngine.UI.Text>(); edgeSliderText.text = "Edge Speed: 0%"; edgeSliderObject.SetActive(false); } }
public override void OnStart() { try { if (Buttons.Count() == 0) { Transform parent = Wrappers.GetQuickMenu().transform.Find("UIElementsMenu"); if (parent != null) { var Flightbutton = ButtonAPI.CreateButton(ButtonType.Toggle, "Flight", "Enable/Disable Flight", Color.white, Color.blue, -1, 0, parent, new Action(() => { GlobalUtils.DirectionalFlight = true; Physics.gravity = GlobalUtils.DirectionalFlight ? Vector3.zero : GlobalUtils.Grav; GlobalUtils.ToggleColliders(false); MelonModLogger.Log($"Flight has been {(GlobalUtils.DirectionalFlight ? "Enabled" : "Disabled")}."); }), new Action(() => { GlobalUtils.DirectionalFlight = false; Physics.gravity = GlobalUtils.DirectionalFlight ? Vector3.zero : GlobalUtils.Grav; GlobalUtils.ToggleColliders(true); MelonModLogger.Log($"Flight has been {(GlobalUtils.DirectionalFlight ? "Enabled" : "Disabled")}."); })); var ESPbutton = ButtonAPI.CreateButton(ButtonType.Toggle, "ESP", "Enable/Disable Selected ESP", Color.white, Color.blue, 0, 0, parent, new Action(() => { GlobalUtils.SelectedPlayerESP = true; MelonModLogger.Log($"Selected ESP has been {(GlobalUtils.SelectedPlayerESP ? "Enabled" : "Disabled")}."); GameObject[] array = GameObject.FindGameObjectsWithTag("Player"); for (int i = 0; i < array.Length; i++) { if (array[i].transform.Find("SelectRegion")) { array[i].transform.Find("SelectRegion").GetComponent <Renderer>().sharedMaterial.SetColor("_Color", Color.magenta); HighlightsFX.prop_HighlightsFX_0.EnableOutline(array[i].transform.Find("SelectRegion").GetComponent <Renderer>(), GlobalUtils.SelectedPlayerESP); } } foreach (VRC_Pickup pickup in Resources.FindObjectsOfTypeAll <VRC_Pickup>()) { if (pickup.gameObject.transform.Find("SelectRegion")) { pickup.gameObject.transform.Find("SelectRegion").GetComponent <Renderer>().sharedMaterial.SetColor("_Color", Color.magenta); Wrappers.GetHighlightsFX().EnableOutline(pickup.gameObject.transform.Find("SelectRegion").GetComponent <Renderer>(), GlobalUtils.SelectedPlayerESP); } } }), new Action(() => { GlobalUtils.SelectedPlayerESP = false; MelonModLogger.Log($"Selected ESP has been {(GlobalUtils.SelectedPlayerESP ? "Enabled" : "Disabled")}."); GameObject[] array = GameObject.FindGameObjectsWithTag("Player"); for (int i = 0; i < array.Length; i++) { if (array[i].transform.Find("SelectRegion")) { array[i].transform.Find("SelectRegion").GetComponent <Renderer>().sharedMaterial.SetColor("_Color", Color.magenta); HighlightsFX.prop_HighlightsFX_0.EnableOutline(array[i].transform.Find("SelectRegion").GetComponent <Renderer>(), GlobalUtils.SelectedPlayerESP); } } foreach (VRC_Pickup pickup in Resources.FindObjectsOfTypeAll <VRC_Pickup>()) { if (pickup.gameObject.transform.Find("SelectRegion")) { pickup.gameObject.transform.Find("SelectRegion").GetComponent <Renderer>().sharedMaterial.SetColor("_Color", Color.magenta); Wrappers.GetHighlightsFX().EnableOutline(pickup.gameObject.transform.Find("SelectRegion").GetComponent <Renderer>(), GlobalUtils.SelectedPlayerESP); } } })); var teleportButton = ButtonAPI.CreateButton(ButtonType.Default, "Teleport", "Teleport to the selected player", Color.white, Color.cyan, 0, 0, Wrappers.GetQuickMenu().transform.Find("UserInteractMenu"), new Action(() => { MelonModLogger.Log("Teleporting to selected player."); var player = PlayerWrappers.GetCurrentPlayer(); var SelectedPlayer = Wrappers.GetQuickMenu().GetSelectedPlayer(); player.transform.position = SelectedPlayer.transform.position; })); var Freezebutton = ButtonAPI.CreateButton(ButtonType.Toggle, "Serialize", "Enable/Disable Custom Serialisation", Color.white, Color.blue, -3, -1, parent, new Action(() => { GlobalUtils.Serialise = false; MelonModLogger.Log($"Custom Serialisation has been Enabled."); }), new Action(() => { GlobalUtils.Serialise = true; MelonModLogger.Log($"Custom Serialisation has been Disabled."); })); var JumpButton = ButtonAPI.CreateButton(ButtonType.Toggle, "Jump", "Enable/disable jumping in the current world", Color.white, Color.blue, -2, -1, parent, new Action(() => { if (PlayerWrappers.GetCurrentPlayer() != null) { if (PlayerWrappers.GetCurrentPlayer().GetComponent <PlayerModComponentJump>() == null) { PlayerWrappers.GetCurrentPlayer().gameObject.AddComponent <PlayerModComponentJump>(); } else { PlayerWrappers.GetCurrentPlayer().GetComponent <PlayerModComponentJump>().enabled = true; } } MelonModLogger.Log($"Jumping has been Enabled."); }), new Action(() => { if (PlayerWrappers.GetCurrentPlayer() != null) { if (PlayerWrappers.GetCurrentPlayer().GetComponent <PlayerModComponentJump>() != null) { PlayerWrappers.GetCurrentPlayer().GetComponent <PlayerModComponentJump>().enabled = false; } } MelonModLogger.Log($"Jumping has been Disabled."); })); var CloneButton = ButtonAPI.CreateButton(ButtonType.Default, "Clone\nBy\nID", "Clone an avatar by it's ID", Color.white, Color.blue, -1, 1, parent, new Action(() => { MelonModLogger.Log("Enter AvatarID: "); string ID = Console.ReadLine(); VRC.Core.API.SendRequest($"avatars/{ID}", HTTPMethods.Get, new ApiModelContainer <ApiAvatar>(), null, true, true, 3600f, 2, null); new PageAvatar { avatar = new SimpleAvatarPedestal { field_ApiAvatar_0 = new ApiAvatar { id = ID } } }.ChangeToSelectedAvatar(); Resources.FindObjectsOfTypeAll <VRCUiPopupManager>()[0].Method_Public_String_String_Single_0("<color=cyan>Success!</color>", "<color=green>Successfully cloned that avatar by It's AvtrID.</color>", 10f); }), null); var GotoButton = ButtonAPI.CreateButton(ButtonType.Default, "Join\nBy\nID", "Goto a world by It's ID", Color.white, Color.blue, 0, 1, parent, new Action(() => { MelonModLogger.Log("Enter WorldID: "); string ID = Console.ReadLine(); Networking.GoToRoom(ID); }), null); Buttons.Add(Flightbutton.gameObject); Buttons.Add(ESPbutton.gameObject); Buttons.Add(teleportButton.gameObject); Buttons.Add(Freezebutton.gameObject); Buttons.Add(JumpButton.gameObject); Buttons.Add(CloneButton.gameObject); } } } catch (Exception) { } }