public unsafe override void OnApplicationStart() { if (!SteamClient.IsValid) { SteamClient.Init(823500); } #if DEBUG MelonModLogger.LogWarning("Debug build!"); #endif MelonLogger.Log($"Multiplayer initialising with protocol version {PROTOCOL_VERSION}."); // Set up prefs MelonPrefs.RegisterCategory("MPMod", "Multiplayer Settings"); MelonPrefs.RegisterBool("MPMod", "BaldFord", false, "90% effective hair removal solution"); // Initialise transport layer TransportLayer = new SteamTransportLayer(); // Create the UI and cache the PlayerRep's model ui = new MultiplayerUI(); client = new Client(ui, TransportLayer); server = new Server(ui, TransportLayer); PlayerRep.LoadFord(); // Configures if the PlayerRep's are showing or hiding certain parts PlayerRep.showBody = true; PlayerRep.showHair = MelonPrefs.GetBool("MPMod", "BaldFord"); // Initialize Discord's RichPresence RichPresence.Initialise(701895326600265879); client.SetupRP(); BWUtil.Hook(); UnhollowerRuntimeLib.ClassInjector.RegisterTypeInIl2Cpp <SyncedObject>(); }
internal static void RegisterSettings() { MelonPrefs.RegisterCategory(FavCatCategory, "FavCat"); MelonPrefs.RegisterString(FavCatCategory, DatabasePathSettings, "./UserData", "Database directory path", true); MelonPrefs.RegisterString(FavCatCategory, ImageCacheSettings, "./UserData", "Image cache directory path", true); MelonPrefs.RegisterBool(FavCatCategory, EnableAvatarFavs, true, "Enable avatar favorites (restart required)"); MelonPrefs.RegisterBool(FavCatCategory, EnableWorldFavs, true, "Enable world favorites (restart required)"); MelonPrefs.RegisterBool(FavCatCategory, EnablePlayerFavs, true, "Enable player favorites (restart required)"); MelonPrefs.RegisterString(FavCatCategory, ImageCachingMode, "full", "Image caching mode"); MelonPrefs.RegisterInt(FavCatCategory, ImageCacheMaxSize, 4096, "Image cache max size (MB)"); MelonPrefs.RegisterBool(FavCatCategory, HidePopupAfterFav, true, "Hide favorite popup after (un)favoriting a world or a player"); MelonPrefs.RegisterBool(FavCatCategory, MakeClickSounds, true, "Click sounds"); // shared mode can't be multi-threaded, so hide this until other parts of code are ready for ST patterns MelonPrefs.RegisterBool(FavCatCategory, UseSharedMode, false, "Support multiple VRC instances (slower, restart required)", true); MelonPrefs.RegisterString(FavCatCategory, LastAnnoyingMessageSeen, "", hideFromList: true); ExpansionKitApi.RegisterSettingAsStringEnum(FavCatCategory, ImageCachingMode, new [] { ("full", "Full local image cache (fastest, safest)"), ("fast", "Fast, use more RAM"), ("builtin", "Preserve RAM, more API requests") });
private IEnumerator WaitForUixPrefabsAndRegister() { var field = typeof(UiExpansionKitMod).GetFields(BindingFlags.Instance | BindingFlags.NonPublic) .Single(it => it.FieldType == typeof(PreloadedBundleContents)); var mod = MelonHandler.Mods.Single(it => it is UiExpansionKitMod); while (field.GetValue(mod) == null) { yield return(null); } ourIsExpanded = !ExpansionKitSettings.IsCategoriesStartCollapsed(); var prefabs = CustomParticleSettingsUiHandler.UixBundle = (PreloadedBundleContents)field.GetValue(mod); var rootPrefab = Object.Instantiate(prefabs.SettingsCategory, prefabs.StoredThingsParent.transform, false); rootPrefab.GetComponentInChildren <Text>().text = MelonPrefs.GetCategoryDisplayName(SettingsCategory); rootPrefab.SetActive(true); rootPrefab.AddComponent <CustomParticleSettingsUiHandler>(); ExpansionKitApi.RegisterCustomSettingsCategory(SettingsCategory, rootPrefab); }
public static int GetTextSize() => MelonPrefs.GetInt(SettingsCategory, SettingTextSize);
public static bool GetUseUiMixer() => MelonPrefs.GetBool(SettingsCategory, SettingUseUiMixer);
public static bool ShowFriendsAlways() => MelonPrefs.GetBool(SettingsCategory, SettingShowFriendsAlways);
public override void OnApplicationStart() { if (instance != null) { MelonLogger.LogError("There's already an instance of Double-Tap Runner. Remove the duplicate dll files"); MelonLogger.LogError("Not Guaranteed to work with multiple instances at all"); return; } instance = this; // Default settings activeSettings = new Settings { Enabled = true, SpeedMultiplier = 2f, DoubleClickTime = .5f, Forward = KeyCode.W, Backward = KeyCode.S, Left = KeyCode.A, Right = KeyCode.D, AxisDeadZone = .1f, AxisClickThreshold = .6f }; MelonPrefs.RegisterCategory(SettingsCategory, "Double-Tap Runner"); MelonPrefs.RegisterBool(SettingsCategory, nameof(Settings.Enabled), activeSettings.Enabled, "Enabled"); MelonPrefs.RegisterFloat(SettingsCategory, nameof(Settings.SpeedMultiplier), activeSettings.SpeedMultiplier, "Speed Multiplier"); MelonPrefs.RegisterFloat(SettingsCategory, nameof(Settings.DoubleClickTime), activeSettings.DoubleClickTime, "Double Click Time"); MelonPrefs.RegisterString(SettingsCategory, nameof(Settings.Forward), Enum.GetName(typeof(KeyCode), activeSettings.Forward), "Desktop Forward"); MelonPrefs.RegisterString(SettingsCategory, nameof(Settings.Backward), Enum.GetName(typeof(KeyCode), activeSettings.Backward), "Desktop Backward"); MelonPrefs.RegisterString(SettingsCategory, nameof(Settings.Left), Enum.GetName(typeof(KeyCode), activeSettings.Left), "Desktop Left"); MelonPrefs.RegisterString(SettingsCategory, nameof(Settings.Right), Enum.GetName(typeof(KeyCode), activeSettings.Right), "Desktop Right"); MelonPrefs.RegisterFloat(SettingsCategory, nameof(Settings.AxisDeadZone), activeSettings.AxisDeadZone, "Axis Dead Zone"); MelonPrefs.RegisterFloat(SettingsCategory, nameof(Settings.AxisClickThreshold), activeSettings.AxisClickThreshold, "Axis Click Threshold"); ApplySettings(); try { // way more mod friendly but might mean more updates... oh well, not really hard to find. "Fade to" and check params MethodInfo fadeToMethod = typeof(VRCUiManager).GetMethod( nameof(VRCUiManager.Method_Public_Void_String_Single_Action_0), BindingFlags.Public | BindingFlags.Instance); harmonyInstance.Patch( fadeToMethod, null, new HarmonyMethod(typeof(DoubleTapper).GetMethod(nameof(JoinedRoomPatch), BindingFlags.NonPublic | BindingFlags.Static))); } catch (Exception e) { modLoadedCorrectly = false; MelonLogger.LogError("Failed to patch into FadeTo: " + e); } try { MethodInfo leaveRoomMethod = typeof(NetworkManager).GetMethod(nameof(NetworkManager.OnLeftRoom), BindingFlags.Public | BindingFlags.Instance); harmonyInstance.Patch( leaveRoomMethod, new HarmonyMethod(typeof(DoubleTapper).GetMethod(nameof(LeftRoomPrefix), BindingFlags.NonPublic | BindingFlags.Static))); } catch (Exception e) { modLoadedCorrectly = false; MelonLogger.LogError("Failed to patch into OnLeftRoom: " + e); } if (!modLoadedCorrectly) { MelonLogger.LogError("Didn't load in correctly, not guaranteed to fully work so i'll shutdown this mod"); } }
public static Color GetLeaveIconColor() => DecodeColor(MelonPrefs.GetString(SettingsCategory, SettingLeaveIconColor));
public static bool ShowFriendsInDifferentColor() => MelonPrefs.GetBool(SettingsCategory, SettingShowFriendsInDifferentColor);
public static bool ShouldShowNames(bool isJoin) => MelonPrefs.GetBool(SettingsCategory, isJoin ? SettingJoinShowName : SettingLeaveShowName);
public override void OnApplicationStart() { base.OnApplicationStart(); MelonPrefs.RegisterCategory("Pistol_Whip_Ricochet_Mod", "Ricochet Prefs"); MelonPrefs.RegisterBool("Pistol_Whip_Ricochet_Mod", "disableRicochet", false); }
private void LoadConfig() { RandomSong.LoadBagSize(MelonPrefs.GetInt("RandomSong", "RandomSongBagSize")); lastSongCount = MelonPrefs.GetInt("SongBrowser", "LastSongCount"); }
private void CreateConfig() { MelonPrefs.RegisterInt("RandomSong", "RandomSongBagSize", 10); MelonPrefs.RegisterInt("SongBrowser", "LastSongCount", 0); }
public static void SaveConfig() { MelonPrefs.SetInt("RandomSong", "RandomSongBagSize", RandomSong.randomSongBagSize); MelonPrefs.SetInt("SongBrowser", "LastSongCount", lastSongCount); }
private void UpdatePlayerVolume(Player player) { float volume = MelonPrefs.GetFloat(ModCategory, GetUserVolumePref(player.field_Private_APIUser_0)); player.prop_USpeaker_0.field_Private_Single_1 = Mathf.Min(Mathf.Max(volume, 0.00f), 1.0f); }
public static bool IsCategoriesStartCollapsed() => MelonPrefs.GetBool(KitCategory, CategoriesStartCollapsed);
public static bool IsQmExpandoStartsCollapsed() => MelonPrefs.GetBool(KitCategory, QmExpandoStartsCollapsed);
public static bool ShouldBlinkIcon(bool isJoin) => MelonPrefs.GetBool(SettingsCategory, isJoin ? SettingShouldBlink : SettingLeaveBlink);
public static bool ShouldPlaySound(bool isJoin) => MelonPrefs.GetBool(SettingsCategory, isJoin ? SettingShouldPlaySound : SettingLeaveSound);
public void RegisterModPrefs() { MelonPrefs.RegisterCategory(settingsCategory, "BlockList"); MelonPrefs.RegisterString(settingsCategory, "CustomBlocker", ""); }
public static bool ShowFriendsOnly() => MelonPrefs.GetBool(SettingsCategory, SettingShowFriendsOnly);
public override void OnApplicationStart() { MelonPrefs.RegisterCategory(SettingsCategory, "Mic Be-Gone"); MelonPrefs.RegisterBool(SettingsCategory, "MicEnabled", micEnabled, "Mic Enabled"); micEnabled = MelonPrefs.GetBool(SettingsCategory, "MicEnabled"); }
public static float GetSoundVolume() => MelonPrefs.GetFloat(SettingsCategory, SettingSoundVolume);
public override void OnLevelWasLoaded(int level) { if (!MelonPrefs.HasKey("CustomModifiers", "AimAssist") || !MelonPrefs.HasKey("CustomModifiers", "TempoRampEndSpeed") || !MelonPrefs.HasKey("CustomModifiers", "ExtraParticlesScale") || !MelonPrefs.HasKey("CustomModifiers", "TargetSpeed") || !MelonPrefs.HasKey("CustomModifiers", "PsychedeliaSpeed")) { CreateConfig(); } else { LoadConfig(); } }
public override void OnGUI() { if (CheatToggles.guiEnabled) { if (initializedScene > 1) { if (GUI.Toggle(new Rect(500f, 2f, 150f, 20f), CheatToggles.guiGhost, "Ghost GUI") != CheatToggles.guiGhost) { CheatToggles.guiGhost = !CheatToggles.guiGhost; CheatToggles.guiGhostTroll = false; CheatToggles.guiESP = false; CheatToggles.guiHelper = false; CheatToggles.guiHelperInfo = false; CheatToggles.guiTroll = false; CheatToggles.guiDebug = false; CheatToggles.guiTest = false; CheatToggles.guiFeatureCollection = false; } if (CheatToggles.guiGhost == true) { if (GUI.Toggle(new Rect(650f, 2f, 150f, 20f), CheatToggles.enableEspGhost, "Ghost ESP") != CheatToggles.enableEspGhost) { CheatToggles.enableEspGhost = !CheatToggles.enableEspGhost; Debug.Msg("ESP: Toggled " + (CheatToggles.enableEspGhost ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(650f, 22f, 150f, 20f), CheatToggles.guiGhostTroll, "Troll Options") != CheatToggles.guiGhostTroll) { CheatToggles.guiGhostTroll = !CheatToggles.guiGhostTroll; } if (CheatToggles.guiGhostTroll == true) { if (GUI.Button(new Rect(800f, 2f, 150f, 20f), "Hunt") && levelController != null) { Trolling.Hunt(); } if (GUI.Button(new Rect(800f, 22f, 150f, 20f), "Idle") && levelController != null) { Trolling.Idle(); } if (GUI.Button(new Rect(800f, 42f, 150f, 20f), "Appear") && levelController != null) { Trolling.Appear(); } if (GUI.Button(new Rect(800f, 62f, 150f, 20f), "Unappear") && levelController != null) { Trolling.UnAppear(); } } } if (GUI.Toggle(new Rect(500f, 22f, 150f, 20f), CheatToggles.guiESP, "ESP GUI") != CheatToggles.guiESP) { CheatToggles.guiESP = !CheatToggles.guiESP; CheatToggles.guiGhost = false; CheatToggles.guiGhostTroll = false; CheatToggles.guiHelper = false; CheatToggles.guiHelperInfo = false; CheatToggles.guiTroll = false; CheatToggles.guiDebug = false; CheatToggles.guiTest = false; CheatToggles.guiFeatureCollection = false; } if (CheatToggles.guiESP == true) { if (GUI.Toggle(new Rect(650f, 2f, 150f, 20f), CheatToggles.enableEspGhost, "Ghost ESP") != CheatToggles.enableEspGhost) { CheatToggles.enableEspGhost = !CheatToggles.enableEspGhost; Debug.Msg("Ghost ESP: Toggled " + (CheatToggles.enableEspGhost ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(650f, 22f, 150f, 20f), CheatToggles.enableEspPlayer, "Player ESP") != CheatToggles.enableEspPlayer) { CheatToggles.enableEspPlayer = !CheatToggles.enableEspPlayer; Debug.Msg("Player ESP: Toggled " + (CheatToggles.enableEspPlayer ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(650f, 42f, 150f, 20f), CheatToggles.enableEspBone, "Bone ESP") != CheatToggles.enableEspBone) { CheatToggles.enableEspBone = !CheatToggles.enableEspBone; Debug.Msg("Bone ESP: Toggled " + (CheatToggles.enableEspBone ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(650f, 62f, 150f, 20f), CheatToggles.enableEspOuija, "Ouija ESP") != CheatToggles.enableEspOuija) { CheatToggles.enableEspOuija = !CheatToggles.enableEspOuija; Debug.Msg("Ouija ESP: Toggled " + (CheatToggles.enableEspOuija ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(650f, 82f, 150f, 20f), CheatToggles.enableEspFuseBox, "FuseBox ESP") != CheatToggles.enableEspFuseBox) { CheatToggles.enableEspFuseBox = !CheatToggles.enableEspFuseBox; Debug.Msg("FuseBox ESP: Toggled " + (CheatToggles.enableEspFuseBox ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(650f, 102f, 150f, 20f), CheatToggles.enableEspEmf, "Emf ESP") != CheatToggles.enableEspEmf) { CheatToggles.enableEspEmf = !CheatToggles.enableEspEmf; Debug.Msg("Emf ESP: Toggled " + (CheatToggles.enableEspEmf ? "On" : "Off"), 1); } } if (GUI.Toggle(new Rect(500f, 42f, 150f, 20f), CheatToggles.guiHelper, "Helper GUI") != CheatToggles.guiHelper) { CheatToggles.guiHelper = !CheatToggles.guiHelper; CheatToggles.guiGhost = false; CheatToggles.guiGhostTroll = false; CheatToggles.guiESP = false; CheatToggles.guiHelperInfo = false; CheatToggles.guiTroll = false; CheatToggles.guiDebug = false; CheatToggles.guiTest = false; CheatToggles.guiFeatureCollection = false; } if (CheatToggles.guiHelper == true) { if (GUI.Toggle(new Rect(650f, 2f, 150f, 20f), CheatToggles.guiHelperInfo, "Basic Info") != CheatToggles.guiHelperInfo) { CheatToggles.guiHelperInfo = !CheatToggles.guiHelperInfo; } if (CheatToggles.guiHelperInfo == true) { if (GUI.Toggle(new Rect(800f, 2f, 150f, 20f), CheatToggles.enableBIGhost, "Ghost Info") != CheatToggles.enableBIGhost) { CheatToggles.enableBIGhost = !CheatToggles.enableBIGhost; Debug.Msg("Ghost Info: Toggled " + (CheatToggles.enableBIGhost ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(800f, 22f, 150f, 20f), CheatToggles.enableBIMissions, "Missions Info") != CheatToggles.enableBIMissions) { CheatToggles.enableBIMissions = !CheatToggles.enableBIMissions; Debug.Msg("Missions Info: Toggled " + (CheatToggles.enableBIMissions ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(800f, 42f, 150f, 20f), CheatToggles.enableBIPlayer, "Player Info") != CheatToggles.enableBIPlayer) { CheatToggles.enableBIPlayer = !CheatToggles.enableBIPlayer; Debug.Msg("Player Info: Toggled " + (CheatToggles.enableBIPlayer ? "On" : "Off"), 1); } } if (GUI.Toggle(new Rect(650f, 22f, 150f, 20f), CheatToggles.enableFullbright, "Enable Fullbright") != CheatToggles.enableFullbright) { CheatToggles.enableFullbright = !CheatToggles.enableFullbright; Debug.Msg("Fullbright: Toggled " + (CheatToggles.enableFullbright ? "On" : "Off"), 1); if (CheatToggles.enableFullbright) { Fullbright.Enable(); } else { Fullbright.Disable(); } } if (GUI.Toggle(new Rect(650f, 42f, 150f, 20f), CheatToggles.enableHotkeys, "Enable Troll Hotkeys") != CheatToggles.enableHotkeys) { CheatToggles.enableHotkeys = !CheatToggles.enableHotkeys; Debug.Msg("Troll Hotkeys: Toggled " + (CheatToggles.enableHotkeys ? "On" : "Off"), 1); MelonPrefs.SetBool("Settings", "HotkeysEnabled", CheatToggles.enableHotkeys); } } if (GUI.Toggle(new Rect(500f, 62f, 150f, 20f), CheatToggles.guiTroll, "Troll GUI") != CheatToggles.guiTroll) { CheatToggles.guiTroll = !CheatToggles.guiTroll; CheatToggles.guiGhost = false; CheatToggles.guiGhostTroll = false; CheatToggles.guiESP = false; CheatToggles.guiHelper = false; CheatToggles.guiHelperInfo = false; CheatToggles.guiDebug = false; CheatToggles.guiTest = false; CheatToggles.guiFeatureCollection = false; } if (CheatToggles.guiTroll == true) { if (GUI.Button(new Rect(650f, 2f, 150f, 20f), "Lock Exit Doors") && levelController != null) { Trolling.LockDoors(1); } if (GUI.Button(new Rect(650f, 22f, 150f, 20f), "Lock All Doors") && levelController != null) { Trolling.LockDoors(2); } if (GUI.Button(new Rect(650f, 42f, 150f, 20f), "Unlock Exit Doors") && levelController != null) { Trolling.LockDoors(3); } if (GUI.Button(new Rect(650f, 62f, 150f, 20f), "Unlock All Doors") && levelController != null) { Trolling.LockDoors(4); } if (GUI.Button(new Rect(650f, 82f, 150f, 20f), "Door knock") && levelController != null) { Trolling.EventDoorKnock(); } if (GUI.Button(new Rect(650f, 102f, 150f, 20f), "Random Event") && levelController != null) { Trolling.Interact(); } } if (GUI.Toggle(new Rect(500f, 82f, 150f, 20f), CheatToggles.guiDebug, "Debug GUI") != CheatToggles.guiDebug) { CheatToggles.guiDebug = !CheatToggles.guiDebug; CheatToggles.guiGhost = false; CheatToggles.guiGhostTroll = false; CheatToggles.guiESP = false; CheatToggles.guiHelper = false; CheatToggles.guiHelperInfo = false; CheatToggles.guiTroll = false; CheatToggles.guiTest = false; CheatToggles.guiFeatureCollection = false; } if (CheatToggles.guiDebug == true) { if (GUI.Toggle(new Rect(650f, 2f, 150f, 20f), CheatToggles.enableDebug, "Enable Debug") != CheatToggles.enableDebug) { CheatToggles.enableDebug = !CheatToggles.enableDebug; Debug.Msg("Debug: Toggled " + (CheatToggles.enableDebug ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(650f, 22f, 150f, 20f), Debug.debugMode1, "Debug Mode 1") != Debug.debugMode1) { Debug.debugMode1 = !Debug.debugMode1; Debug.Msg("Debug Mode 1: Toggled " + (Debug.debugMode1 ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(650f, 42f, 150f, 20f), Debug.debugMode2, "Debug Mode 2") != Debug.debugMode2) { Debug.debugMode2 = !Debug.debugMode2; Debug.Msg("Debug Mode 2: Toggled " + (Debug.debugMode2 ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(650f, 62f, 150f, 20f), Debug.debugMode3, "Debug Mode 3") != Debug.debugMode3) { Debug.debugMode3 = !Debug.debugMode3; Debug.Msg("Debug Mode 3: Toggled " + (Debug.debugMode3 ? "On" : "Off"), 1); } } if (GUI.Toggle(new Rect(500f, 102f, 150f, 20f), CheatToggles.guiTest, "New Features") != CheatToggles.guiTest) { CheatToggles.guiTest = !CheatToggles.guiTest; CheatToggles.guiGhost = false; CheatToggles.guiGhostTroll = false; CheatToggles.guiESP = false; CheatToggles.guiHelper = false; CheatToggles.guiHelperInfo = false; CheatToggles.guiTroll = false; CheatToggles.guiDebug = false; CheatToggles.guiFeatureCollection = false; } if (CheatToggles.guiTest == true) { if (GUI.Button(new Rect(650f, 2f, 150f, 20f), "Random Light Use") && levelController != null) { LightSwitch lightSwitchr = lightSwitches[new System.Random().Next(0, lightSwitches.Count)]; if (lightSwitchr != null) { lightSwitchr.UseLight(); } Debug.Msg("Random Light Use", 1); } if (GUI.Button(new Rect(650f, 42f, 150f, 20f), "All Lights Off") && levelController != null) { foreach (LightSwitch lightSwitchaoff in lightSwitches) { lightSwitchaoff.TurnOff(); lightSwitchaoff.TurnOffNetworked(true); } Debug.Msg("All Lights Off", 1); } if (GUI.Button(new Rect(650f, 62f, 150f, 20f), "Blinking Lights") && levelController != null) { lightSwitchToggle = !lightSwitchToggle; Debug.Msg("Blinking Lights", 1); } if (GUI.Button(new Rect(650f, 82f, 150f, 20f), "Disable All Features") && levelController != null) { DisableAll(); Debug.Msg("Disable All", 1); } } if (GUI.Toggle(new Rect(500f, 122f, 150f, 20f), CheatToggles.guiFeatureCollection, "Feature Coll. GUI") != CheatToggles.guiFeatureCollection) { CheatToggles.guiFeatureCollection = !CheatToggles.guiFeatureCollection; CheatToggles.guiGhost = false; CheatToggles.guiGhostTroll = false; CheatToggles.guiESP = false; CheatToggles.guiHelper = false; CheatToggles.guiHelperInfo = false; CheatToggles.guiTroll = false; CheatToggles.guiDebug = false; CheatToggles.guiTest = false; } if (CheatToggles.guiFeatureCollection == true) { if (GUI.Button(new Rect(650f, 2f, 150f, 20f), "Hunt") && levelController != null) { Trolling.Hunt(); } if (GUI.Button(new Rect(650f, 22f, 150f, 20f), "Idle") && levelController != null) { Trolling.Idle(); } if (GUI.Button(new Rect(650f, 42f, 150f, 20f), "Appear") && levelController != null) { Trolling.Appear(); } if (GUI.Button(new Rect(650f, 62f, 150f, 20f), "Unappear") && levelController != null) { Trolling.UnAppear(); } if (GUI.Button(new Rect(800f, 2f, 150f, 20f), "Lock Exit Doors") && levelController != null) { Trolling.LockDoors(1); } if (GUI.Button(new Rect(800f, 22f, 150f, 20f), "Lock All Doors") && levelController != null) { Trolling.LockDoors(2); } if (GUI.Button(new Rect(800f, 42f, 150f, 20f), "Unlock Exit Doors") && levelController != null) { Trolling.LockDoors(3); } if (GUI.Button(new Rect(800f, 62f, 150f, 20f), "Unlock All Doors") && levelController != null) { Trolling.LockDoors(4); } if (GUI.Button(new Rect(800f, 82f, 150f, 20f), "Door knock") && levelController != null) { Trolling.EventDoorKnock(); } if (GUI.Button(new Rect(800f, 102f, 150f, 20f), "Random Event") && levelController != null) { Trolling.Interact(); } if (GUI.Button(new Rect(950f, 2f, 150f, 20f), "Random Light Use") && levelController != null) { LightSwitch lightSwitchr = lightSwitches[new System.Random().Next(0, lightSwitches.Count)]; if (lightSwitchr != null) { lightSwitchr.UseLight(); } Debug.Msg("Random Light Use", 1); } if (GUI.Button(new Rect(950f, 42f, 150f, 20f), "All Lights Off") && levelController != null) { foreach (LightSwitch lightSwitchaoff in lightSwitches) { lightSwitchaoff.TurnOff(); lightSwitchaoff.TurnOffNetworked(true); } Debug.Msg("All Lights Off", 1); } if (GUI.Button(new Rect(950f, 62f, 150f, 20f), "Blinking Lights") && levelController != null) { lightSwitchToggle = !lightSwitchToggle; Debug.Msg("Blinking Lights", 1); } } } else { if (initializedScene == 1) { if (GUI.Toggle(new Rect(500f, 82f, 150f, 20f), CheatToggles.guiDebug, "Debug GUI") != CheatToggles.guiDebug) { CheatToggles.guiDebug = !CheatToggles.guiDebug; CheatToggles.guiGhost = false; CheatToggles.guiGhostTroll = false; CheatToggles.guiESP = false; CheatToggles.guiHelper = false; CheatToggles.guiHelperInfo = false; CheatToggles.guiTroll = false; CheatToggles.guiTest = false; CheatToggles.guiFeatureCollection = false; } if (CheatToggles.guiDebug == true) { if (GUI.Toggle(new Rect(550f, 102f, 150f, 20f), CheatToggles.enableDebug, "Enable Debug") != CheatToggles.enableDebug) { CheatToggles.enableDebug = !CheatToggles.enableDebug; Debug.Msg("Debug: Toggled " + (CheatToggles.enableDebug ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(550f, 122f, 150f, 20f), Debug.debugMode1, "Debug Mode 1") != Debug.debugMode1) { Debug.debugMode1 = !Debug.debugMode1; Debug.Msg("Debug Mode 1: Toggled " + (Debug.debugMode1 ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(550f, 142f, 150f, 20f), Debug.debugMode2, "Debug Mode 2") != Debug.debugMode2) { Debug.debugMode2 = !Debug.debugMode2; Debug.Msg("Debug Mode 2: Toggled " + (Debug.debugMode2 ? "On" : "Off"), 1); } if (GUI.Toggle(new Rect(550f, 162f, 150f, 20f), Debug.debugMode3, "Debug Mode 3") != Debug.debugMode3) { Debug.debugMode3 = !Debug.debugMode3; Debug.Msg("Debug Mode 3: Toggled " + (Debug.debugMode3 ? "On" : "Off"), 1); } } GUI.SetNextControlName("changeName"); playerName = GUI.TextArea(new Rect(650f, 2f, 150f, 20f), playerName); if (GUI.Button(new Rect(650f, 22f, 150f, 20f), "Change Name")) { GUI.FocusControl("changeName"); PhotonNetwork.NickName = playerName; Debug.Msg("Set name: " + playerName, 1); } } } } if (CheatToggles.enableEspGhost || CheatToggles.enableEspPlayer || CheatToggles.enableEspBone || CheatToggles.enableEspOuija || CheatToggles.enableEspEmf || CheatToggles.enableEspFuseBox) { ESP.Enable(); } if (CheatToggles.enableBIGhost || CheatToggles.enableBIMissions || CheatToggles.enableBIPlayer) { GUI.Label(new Rect(0f, 0f, 500f, 160f), "", "box"); } if (CheatToggles.enableBIGhost) { BasicInformations.EnableGhost(); GUI.Label(new Rect(10f, 2f, 300f, 50f), "<color=#00FF00><b>Ghost Name:</b> " + (ghostNameAge ?? "") + "</color>"); GUI.Label(new Rect(10f, 17f, 300f, 50f), "<color=#00FF00><b>Ghost Type:</b> " + (ghostType ?? "") + "</color>"); GUI.Label(new Rect(10f, 47f, 400f, 50f), "<color=#00FF00><b>Evidence:</b> " + (evidence ?? "") + "</color>"); GUI.Label(new Rect(10f, 32f, 300f, 50f), "<color=#00FF00><b>Ghost State:</b> " + (ghostState ?? "") + "</color>"); GUI.Label(new Rect(10f, 62f, 400f, 50f), "<color=#00FF00><b>Responds to:</b> " + (ghostIsShy ?? "") + "</color>"); } else { if (initializedScene > 1) { Debug.Msg("BasicInformations.DisableGhost", 3); BasicInformations.DisableGhost(); } } if (CheatToggles.enableBIMissions) { BasicInformations.EnableMissions(); } if (CheatToggles.enableBIPlayer) { BasicInformations.EnablePlayer(); GUI.Label(new Rect(10f, 77f, 300f, 50f), "<color=#00FF00><b>My Sanity:</b> " + (myPlayerSanity ?? "N/A") + "</color>"); } if (lightSwitchToggle && !lightSwitchRunning) { Debug.Msg("lightSwitchRunningTrue", 3); lightSwitchRunning = true; blinkingLightsRoutine = MelonCoroutines.Start(BlinkingLights()); } }
public static IEnumerator PopulateSettingsPanel(RectTransform settingsContentRoot) { yield return(null); yield return(null); yield return(null); var categoryPrefab = ourStuffBundle.SettingsCategory; var boolPrefab = ourStuffBundle.SettingsBool; var textPrefab = ourStuffBundle.SettingsText; var comboBoxPrefab = ourStuffBundle.SettingsComboBox; settingsContentRoot.DestroyChildren(); var pinnedSettings = ExpansionKitSettings.ListPinnedPrefs(false).ToList(); foreach (var keyValuePair in MelonPrefs.GetPreferences()) { var categoryId = keyValuePair.Key; var prefDict = keyValuePair.Value; if (ExpansionKitApi.CustomCategoryUIs.TryGetValue(categoryId, out var specificPrefab)) { Object.Instantiate(specificPrefab, settingsContentRoot, false); continue; } var prefsToPopulate = prefDict.Where(it => !it.Value.Hidden).ToList(); if (prefsToPopulate.Count == 0) { continue; } var categoryUi = Object.Instantiate(categoryPrefab, settingsContentRoot, false); categoryUi.GetComponentInChildren <Text>().text = MelonPrefs.GetCategoryDisplayName(categoryId); var categoryUiContent = categoryUi.transform.Find("CategoryEntries"); var expandButtonTransform = categoryUi.transform.Find("ExpandButton"); var expandButton = expandButtonTransform.GetComponent <Button>(); var expandButtonText = expandButtonTransform.GetComponentInChildren <Text>(); void SetExpanded(bool expanded) { expandButtonText.text = expanded ? "^" : "V"; categoryUiContent.gameObject.SetActive(expanded); } expandButton.onClick.AddListener(new Action(() => { SetExpanded(ourCategoryExpanded[categoryId] = !ourCategoryExpanded[categoryId]); })); if (!ourCategoryExpanded.ContainsKey(categoryId)) { ourCategoryExpanded[categoryId] = !ExpansionKitSettings.IsCategoriesStartCollapsed(); } SetExpanded(ourCategoryExpanded[categoryId]); foreach (var valuePair in prefsToPopulate) { var prefId = valuePair.Key; var prefDesc = valuePair.Value; switch (prefDesc.Type) { case MelonPrefs.MelonPreferenceType.STRING: { if (ExpansionKitApi.EnumSettings.TryGetValue((categoryId, prefId), out var enumValues)) { var comboSetting = Object.Instantiate(comboBoxPrefab, categoryUiContent, false); comboSetting.GetComponentInChildren <Text>().text = prefDesc.DisplayText ?? prefId; var dropdown = comboSetting.GetComponentInChildren <Dropdown>(); var options = new Il2CppSystem.Collections.Generic.List <Dropdown.OptionData>(); var currentValue = MelonPrefs.GetString(categoryId, prefId); var selectedIndex = enumValues.Count; for (var i = 0; i < enumValues.Count; i++) { var valueTuple = enumValues[i]; options.Add(new Dropdown.OptionData(valueTuple.DisplayName)); if (currentValue == valueTuple.SettingsValue) { selectedIndex = i; } } if (enumValues.All(it => it.SettingsValue != currentValue)) { options.Add(new Dropdown.OptionData(currentValue)); } dropdown.options = options; dropdown.value = selectedIndex; dropdown.onValueChanged.AddListener(new Action <int>(value => { prefDesc.ValueEdited = value >= enumValues.Count ? currentValue : enumValues[value].SettingsValue; })); }
public override void OnModSettingsApplied() { micEnabled = MelonPrefs.GetBool(SettingsCategory, "MicEnabled"); ApplySettings(); }
public override void OnModSettingsApplied() { _comfyVRMenu = MelonPrefs.GetBool("ComfyVRMenu", "EnableComfyVRMenu"); }
public override void OnModSettingsApplied() { _enabled = MelonPrefs.GetBool("AntiUdonExploits", "Enabled"); _publicInstancesOnly = MelonPrefs.GetBool("AntiUdonExploits", "PublicInstancesOnly"); }
public static Color GetFriendJoinIconColor() => DecodeColor(MelonPrefs.GetString(SettingsCategory, SettingFriendsJoinColor));