From cfb3235a9708d762d92267f167cc6beab03a7933 Mon Sep 17 00:00:00 2001 From: manafeng <123635537+mana-feng@users.noreply.github.com> Date: Sun, 8 Jun 2025 03:01:34 +1000 Subject: [PATCH] Add files via upload --- ClientMain.cs | 1714 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1714 insertions(+) create mode 100644 ClientMain.cs diff --git a/ClientMain.cs b/ClientMain.cs new file mode 100644 index 0000000..01c320e --- /dev/null +++ b/ClientMain.cs @@ -0,0 +1,1714 @@ +using DevourClient.Helpers; +using MelonLoader; +using System.Threading.Tasks; +using Il2CppPhoton.Bolt; +using UnityEngine; +using Il2Cpp; + +namespace DevourClient +{ + public class ClientMain : MonoBehaviour + { + public ClientMain(IntPtr ptr) + : base(ptr) + { + } + + enum CurrentTab : int + { + Visuals = 0, + Entities = 1, + Map = 2, + ESP = 3, + Items = 4, + Misc = 5, + Players = 6 + } + + static Rect windowRect = new Rect(Settings.Settings.x + 10, Settings.Settings.y + 10, 700, 700); + static CurrentTab current_tab = CurrentTab.Visuals; + + static bool flashlight_toggle = false; + static bool flashlight_colorpick = false; + static bool player_esp_colorpick = false; + static bool azazel_esp_colorpick = false; + static bool spoofLevel = false; + static float spoofLevelValue = 0; + static bool change_server_name = false; + static bool change_steam_name = false; + static bool fly = false; + static float fly_speed = 5; + static bool fastMove = false; + static float _PlayerSpeedMultiplier = 1; + public static float lobbySize = 4; + public static bool _IsAutoRespawn = false; + public static bool unlimitedUV = false; + public static bool exp_modifier = false; + public static float exp = 1000f; + public static bool _walkInLobby = false; + public static bool infinite_mirrors = false; + static bool player_esp = false; + static bool player_skel_esp = false; + static bool player_snapline = false; + static bool azazel_esp = false; + static bool azazel_skel_esp = false; + static bool azazel_snapline = false; + static bool spam_message = false; + static bool item_esp = false; + static bool goat_rat_esp = false; + static bool demon_esp = false; + static bool fullbright = false; + static bool need_fly_reset = false; + static bool crosshair = false; + static bool in_game_cache = false; + static bool should_show_start_message = true; + static Texture2D crosshairTexture = default!; + + private static string spamMessageText = "Deez Nutz"; + private static string steamNameText = "patate"; + private static string serverNameText = "patate on top !"; + private static float spamMessageInterval = 5f; // Default send interval in seconds + private static float spamMessageTimer = 0f; // Timer + + public void Start() + { + MelonLogger.Msg("For the Queen !"); + Hacks.Misc.ShowMessageBox("For the Queen !"); + MelonLogger.Warning("Made with <3 by patate and Jadis."); + Hacks.Misc.ShowMessageBox("Made with <3 by patate and Jadis."); + MelonLogger.Warning("Github : https://github.com/ALittlePatate/DevourClient"); + Hacks.Misc.ShowMessageBox("Github : https://github.com/ALittlePatate/DevourClient"); + MelonLogger.Warning("Note : if you payed for this you most likely got scammed."); + Hacks.Misc.ShowMessageBox("Note : if you payed for this you most likely got scammed."); + + crosshairTexture = Helpers.GUIHelper.GetCircularTexture(5, 5); + + // Start all coroutines using new coroutine management mechanism + Helpers.Entities.StartAllCoroutines(); + } + + public void OnDestroy() + { + // Stop all coroutines when component is destroyed + Helpers.Entities.StopAllCoroutines(); + + // Clean up other resources + if (crosshairTexture != null) + { + UnityEngine.Object.Destroy(crosshairTexture); + crosshairTexture = null; + } + } + + public void OnApplicationQuit() + { + // Stop all coroutines when application quits + Helpers.Entities.StopAllCoroutines(); + } + + public void Update() + { + if (Input.GetKeyDown(KeyCode.Insert)) + { + try + { + Il2Cpp.GameUI gameUI = UnityEngine.Object.FindObjectOfType(); + if (Settings.Settings.menu_enable) + { + gameUI.HideMouseCursor(); + } + else + { + gameUI.ShowMouseCursor(); + } + } + catch { } + + Settings.Settings.menu_enable = !Settings.Settings.menu_enable; + } + + if (Player.IsInGame()) + { + if (flashlight_toggle && !fullbright) + { + Hacks.Misc.BigFlashlight(false); + } + else if (!flashlight_toggle && !fullbright) + { + Hacks.Misc.BigFlashlight(true); + } + + if (fullbright && !flashlight_toggle) + { + Hacks.Misc.Fullbright(false); + } + else if (!fullbright && !flashlight_toggle) + { + Hacks.Misc.Fullbright(true); + } + + if (_IsAutoRespawn && Helpers.Player.IsPlayerCrawling()) + { + Hacks.Misc.AutoRespawn(); + } + + if (crosshair && !in_game_cache) + { + in_game_cache = true; + } + } + else + { + if (crosshair && in_game_cache) + { + in_game_cache = false; + } + } + + if (spam_message) + { + spamMessageTimer += Time.deltaTime; + if (spamMessageTimer >= spamMessageInterval) + { + Hacks.Misc.MessageSpam(spamMessageText); + spamMessageTimer = 0f; // Reset timer + } + } + else + { + spamMessageTimer = 0f; // Reset timer when disabled + } + + if (spoofLevel) + { + Hacks.Misc.SetRank((int)spoofLevelValue); + } + + if (Input.GetKeyDown(Settings.Settings.flyKey)) + { + fly = !fly; + } + + if (Player.IsInGameOrLobby()) + { + if (fly && !need_fly_reset) + { + Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); + if (nb) + { + Collider coll = nb.GetComponentInChildren(); + if (coll) + { + coll.enabled = false; + need_fly_reset = true; + } + } + } + + else if (!fly && need_fly_reset) + { + Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); + if (nb) + { + Collider coll = nb.GetComponentInChildren(); + if (coll) + { + coll.enabled = true; + need_fly_reset = false; + } + } + } + + if (fly) + { + Hacks.Misc.Fly(fly_speed); + } + + } + + if (Helpers.Map.GetActiveScene() == "Menu") + { + Hacks.Misc.WalkInLobby(_walkInLobby); + } + + if (fastMove) + { + try + { + Helpers.Entities.LocalPlayer_.p_GameObject.GetComponent().TimeScale = _PlayerSpeedMultiplier; + } + catch { return; } + } + } + + public void OnGUI() + { + if (should_show_start_message) + { + if (DevourClient.Hacks.Misc.ShowMessageBox("Welcome to DevourClient.\n\nPress the INS key to open the menu.") == 0) + should_show_start_message = false; + } + + // Update error message display time + if (Settings.Settings.showErrorMessage) + { + Settings.Settings.errorMessageDisplayTime += Time.deltaTime; + if (Settings.Settings.errorMessageDisplayTime >= Settings.Settings.errorMessageMaxDisplayTime) + { + Settings.Settings.showErrorMessage = false; + } + } + + // Render error message box + if (Settings.Settings.showErrorMessage) + { + // Set message box style + GUIStyle errorBoxStyle = new GUIStyle(GUI.skin.box); + errorBoxStyle.normal.background = GUIHelper.MakeTex(2, 2, new Color(0.8f, 0.2f, 0.2f, 0.9f)); + errorBoxStyle.normal.textColor = Color.white; + errorBoxStyle.fontSize = 14; + errorBoxStyle.padding = new RectOffset(10, 10, 10, 10); + errorBoxStyle.wordWrap = true; + errorBoxStyle.clipping = TextClipping.Overflow; + + // Calculate message box position (bottom center) + float boxWidth = 400f; + float boxHeight = 60f; + float boxX = (Screen.width - boxWidth) / 2f; + float boxY = Screen.height - boxHeight - 20f; + + // Draw message box + GUI.Box(new Rect(boxX, boxY, boxWidth, boxHeight), Settings.Settings.errorMessage, errorBoxStyle); + } + + GUI.backgroundColor = Color.grey; + + // Set button style + var buttonStyle = new GUIStyle(GUI.skin.button); + buttonStyle.normal.background = GUIHelper.MakeTex(2, 2, Color.black); + buttonStyle.normal.textColor = Color.white; + buttonStyle.border = new RectOffset(2, 2, 2, 2); + GUI.skin.button = buttonStyle; + + // Set label style + var labelStyle = new GUIStyle(GUI.skin.label); + labelStyle.normal.textColor = Color.white; + labelStyle.border = new RectOffset(2, 2, 2, 2); + GUI.skin.label = labelStyle; + + // Set text field style + var textFieldStyle = new GUIStyle(GUI.skin.textField); + textFieldStyle.normal.textColor = Color.white; + textFieldStyle.border = new RectOffset(2, 2, 2, 2); + GUI.skin.textField = textFieldStyle; + + // Set slider style + var sliderStyle = new GUIStyle(GUI.skin.horizontalSlider); + sliderStyle.border = new RectOffset(2, 2, 2, 2); + GUI.skin.horizontalSlider = sliderStyle; + + // Set toggle style + var toggleStyle = new GUIStyle(GUI.skin.toggle); + toggleStyle.normal.textColor = Color.white; + toggleStyle.border = new RectOffset(2, 2, 2, 2); + toggleStyle.onNormal.textColor = Color.yellow; + GUI.skin.toggle = toggleStyle; + + //from https://www.unknowncheats.me/forum/unity/437277-mono-internal-optimisation-tips.html + if (UnityEngine.Event.current.type == EventType.Repaint) + { + if (player_esp || player_snapline || player_skel_esp) + { + foreach (Helpers.BasePlayer p in Helpers.Entities.Players) + { + if (p == null) + { + continue; + } + + GameObject player = p.p_GameObject; + if (player != null) + { + Il2Cpp.NolanBehaviour nb = player.GetComponent(); + if (nb.entity.IsOwner) + { + continue; + } + + if (player_skel_esp) + { + Render.Render.DrawAllBones(Hacks.Misc.GetAllBones(nb.animator), Settings.Settings.player_esp_color); + } + + Render.Render.DrawBoxESP(player, -0.25f, 1.75f, p.Name, Settings.Settings.player_esp_color, player_snapline, player_esp); + } + } + } + + if (goat_rat_esp) + { + foreach (Il2Cpp.GoatBehaviour goat in Helpers.Entities.GoatsAndRats) + { + if (goat != null) + { + Render.Render.DrawNameESP(goat.transform.position, goat.name.Replace("Survival", "").Replace("(Clone)", ""), new Color(0.94f, 0.61f, 0.18f, 1.0f)); + } + } + } + + if (item_esp) + { + foreach (Il2Cpp.SurvivalInteractable obj in Helpers.Entities.SurvivalInteractables) + { + if (obj != null) + { + Render.Render.DrawNameESP(obj.transform.position, obj.prefabName.Replace("Survival", ""), new Color(1.0f, 1.0f, 1.0f)); + } + } + + foreach (Il2Cpp.KeyBehaviour key in Helpers.Entities.Keys) + { + if (key != null) + { + Render.Render.DrawNameESP(key.transform.position, "Key", new Color(1.0f, 1.0f, 1.0f)); + } + } + } + + if (demon_esp) + { + foreach (Il2Cpp.SurvivalDemonBehaviour demon in Helpers.Entities.Demons) + { + if (demon != null) + { + Render.Render.DrawNameESP(demon.transform.position, demon.name.Replace("Survival", "").Replace("(Clone)", ""), new Color(1.0f, 0.0f, 0.0f, 1.0f)); + } + } + + foreach (Il2Cpp.SpiderBehaviour spider in Helpers.Entities.Spiders) + { + if (spider != null) + { + Render.Render.DrawNameESP(spider.transform.position, "Spider", new Color(1.0f, 0.0f, 0.0f, 1.0f)); + } + } + + foreach (Il2Cpp.GhostBehaviour ghost in Helpers.Entities.Ghosts) + { + if (ghost != null) + { + Render.Render.DrawNameESP(ghost.transform.position, "Ghost", new Color(1.0f, 0.0f, 0.0f, 1.0f)); + } + } + + foreach (Il2Cpp.BoarBehaviour boar in Helpers.Entities.Boars) + { + if (boar != null) + { + Render.Render.DrawNameESP(boar.transform.position, "Boar", new Color(1.0f, 0.0f, 0.0f, 1.0f)); + } + } + + foreach (Il2Cpp.CorpseBehaviour corpse in Helpers.Entities.Corpses) + { + if (corpse != null) + { + Render.Render.DrawNameESP(corpse.transform.position, "Corpse", new Color(1.0f, 0.0f, 0.0f, 1.0f)); + } + } + + foreach (Il2Cpp.CrowBehaviour crow in Helpers.Entities.Crows) + { + if (crow != null) + { + Render.Render.DrawNameESP(crow.transform.position, "Crow", new Color(1.0f, 0.0f, 0.0f, 1.0f)); + } + } + + foreach (Il2Cpp.ManorLumpController lump in Helpers.Entities.Lumps) + { + if (lump != null) + { + Render.Render.DrawNameESP(lump.transform.position, "Lump", new Color(1.0f, 0.0f, 0.0f, 1.0f)); + } + } + } + + if (azazel_esp || azazel_snapline || azazel_skel_esp) + { + foreach (Il2Cpp.SurvivalAzazelBehaviour survivalAzazel in Helpers.Entities.Azazels) + { + if (survivalAzazel != null) + { + if (azazel_skel_esp) + { + Render.Render.DrawAllBones(Hacks.Misc.GetAllBones(survivalAzazel.animator), Settings.Settings.azazel_esp_color); + } + + Render.Render.DrawBoxESP(survivalAzazel.gameObject, -0.25f, 2.0f, "Azazel", Settings.Settings.azazel_esp_color, azazel_snapline, azazel_esp); + } + } + } + + if (crosshair && in_game_cache) //&& !Player.IsPlayerCrawling()) + { + const float crosshairSize = 4; + + float xMin = (Settings.Settings.width) - (crosshairSize / 2); + float yMin = (Settings.Settings.height) - (crosshairSize / 2); + + if (crosshairTexture == null) + { + crosshairTexture = Helpers.GUIHelper.GetCircularTexture(5, 5); + } + + GUI.DrawTexture(new Rect(xMin, yMin, crosshairSize, crosshairSize), crosshairTexture); + } + } + + if (Settings.Settings.menu_enable) //Si on appuie sur INSERT + { + windowRect = GUI.Window(0, windowRect, (GUI.WindowFunction)Tabs, "DevourClient"); + } + + } + + public static void Tabs(int windowID) + { + GUILayout.BeginHorizontal(); + + if (GUILayout.Button("Visual", GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F1)) + { + current_tab = CurrentTab.Visuals; + } + + if (GUILayout.Button("Entites", GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F2)) + { + current_tab = CurrentTab.Entities; + } + + if (GUILayout.Button("Map Specific", GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F3)) + { + current_tab = CurrentTab.Map; + } + + if (GUILayout.Button("ESP", GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F4)) + { + current_tab = CurrentTab.ESP; + } + + if (GUILayout.Button("Items", GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F5)) + { + current_tab = CurrentTab.Items; + } + + if (GUILayout.Button("Misc", GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F6)) + { + current_tab = CurrentTab.Misc; + } + + if (GUILayout.Button("Player", GUILayout.Height(40)) || Input.GetKeyDown(KeyCode.F7)) + { + current_tab = CurrentTab.Players; + } + + GUILayout.EndHorizontal(); + + switch (current_tab) + { + case CurrentTab.Visuals: + VisualsTab(); + break; + case CurrentTab.Entities: + EntitiesTab(); + break; + case CurrentTab.Map: + MapSpecificTab(); + break; + case CurrentTab.ESP: + EspTab(); + break; + case CurrentTab.Items: + ItemsTab(); + break; + case CurrentTab.Misc: + MiscTab(); + break; + case CurrentTab.Players: + PlayersTab(); + break; + + } + + GUI.DragWindow(); + } + + private static void VisualsTab() + { + // draw visuals + + flashlight_toggle = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 120, 30), flashlight_toggle, "Big Flashlight"); + fullbright = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 100, 120, 30), fullbright, "Fullbright"); + unlimitedUV = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 130, 130, 30), unlimitedUV, "Unlimited UV Light"); + crosshair = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 160, 130, 30), crosshair, "Crosshair"); + + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 190, 130, 30), "Flashlight Color")) + { + flashlight_colorpick = !flashlight_colorpick; + MelonLogger.Msg("Flashlight color picker : " + flashlight_colorpick.ToString()); + Hacks.Misc.ShowMessageBox("Flashlight color picker : " + flashlight_colorpick.ToString()); + } + + if (flashlight_colorpick) + { + Color flashlight_color_input = DevourClient.Helpers.GUIHelper.ColorPick("Flashlight Color", Settings.Settings.flashlight_color); + Settings.Settings.flashlight_color = flashlight_color_input; + + if (Player.IsInGame()) + { + Hacks.Misc.FlashlightColor(flashlight_color_input); + } + } + } + + private static void EntitiesTab() + { + //draw entities + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 130, 30), "TP items to you")) + { + Hacks.Misc.TPItems(); + MelonLogger.Msg("TP Items!"); + Hacks.Misc.ShowMessageBox("TP Items!"); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 110, 130, 30), "Freeze azazel")) + { + Hacks.Misc.FreezeAzazel(); + } + + GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 150, 120, 30), "Azazel & Demons"); + + // azazel + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 180, 60, 25), "Sam") && Player.IsInGameOrLobby() && BoltNetwork.IsServer) + { + Hacks.Misc.SpawnAzazel((PrefabId)BoltPrefabs.AzazelSam); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 80, Settings.Settings.y + 180, 60, 25), "Molly") && Player.IsInGameOrLobby() && BoltNetwork.IsServer) + { + Hacks.Misc.SpawnAzazel((PrefabId)BoltPrefabs.SurvivalAzazelMolly); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 150, Settings.Settings.y + 180, 60, 25), "Anna") && Player.IsInGameOrLobby() && BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalAnnaNew, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 220, Settings.Settings.y + 180, 60, 25), "Zara") && Player.IsInGameOrLobby() && BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.AzazelZara, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 290, Settings.Settings.y + 180, 60, 25), "Nathan") && Player.IsInGameOrLobby() && BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.AzazelNathan, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 360, Settings.Settings.y + 180, 60, 25), "April") && Player.IsInGameOrLobby() && BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.AzazelApril, Player.GetPlayer().transform.position, Quaternion.identity); + } + + // demon + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 220, 60, 25), "Ghost") && Player.IsInGameOrLobby() && BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.Ghost, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 80, Settings.Settings.y + 220, 60, 25), "Inmate") && Player.IsInGameOrLobby() && BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalInmate, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 150, Settings.Settings.y + 220, 60, 25), "Demon") && Player.IsInGameOrLobby() && BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalDemon, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 220, Settings.Settings.y + 220, 60, 25), "Boar") && Player.IsInGameOrLobby() && BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.Boar, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 290, Settings.Settings.y + 220, 60, 25), "Corpse") && BoltNetwork.IsServer && Player.IsInGameOrLobby()) + { + BoltNetwork.Instantiate(BoltPrefabs.Corpse, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 360, Settings.Settings.y + 220, 60, 25), "Crow") && BoltNetwork.IsServer && Player.IsInGameOrLobby()) + { + BoltNetwork.Instantiate(BoltPrefabs.Crow, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 430, Settings.Settings.y + 220, 60, 25), "Lump") && BoltNetwork.IsServer && Player.IsInGameOrLobby()) + { + BoltNetwork.Instantiate(BoltPrefabs.ManorLump, Player.GetPlayer().transform.position, Quaternion.identity); + } + + // Animal + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 260, 60, 25), "Rat")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalRat, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (Player.IsInGame() && !Player.IsPlayerCrawling()) + { + Hacks.Misc.CarryObject("SurvivalRat"); + } + } + + if (GUI.Button(new Rect(Settings.Settings.x + 80, Settings.Settings.y + 260, 60, 25), "Goat")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalGoat, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (Player.IsInGame() && !Player.IsPlayerCrawling()) + { + Hacks.Misc.CarryObject("SurvivalGoat"); + } + } + + if (GUI.Button(new Rect(Settings.Settings.x + 150, Settings.Settings.y + 260, 60, 25), "Spider") && BoltNetwork.IsServer && Player.IsInGameOrLobby()) + { + BoltNetwork.Instantiate(BoltPrefabs.Spider, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 220, Settings.Settings.y + 260, 60, 25), "Pig")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalPig, Player.GetPlayer().transform.position, Quaternion.identity); + } + + if (Player.IsInGame() && !Player.IsPlayerCrawling()) + { + Hacks.Misc.CarryObject("SurvivalPig"); + } + } + } + + private static void MapSpecificTab() + { + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 150, 30), "Instant Win") && Player.IsInGame() && BoltNetwork.IsSinglePlayer) + { + Hacks.Misc.InstantWin(); + MelonLogger.Msg("EZ Win"); + Hacks.Misc.ShowMessageBox("EZ Win"); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 110, 150, 30), "Burn a ritual object")) + { + Hacks.Misc.BurnRitualObj(Helpers.Map.GetActiveScene(), false); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 150, 150, 30), "Burn all ritual objects")) + { + Hacks.Misc.BurnRitualObj(Helpers.Map.GetActiveScene(), true); + } + + switch (Helpers.Map.GetActiveScene()) + { + case "Menu": + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), "Force Start Game") && BoltNetwork.IsServer && !Player.IsInGame()) + { + Il2CppHorror.Menu menu = UnityEngine.Object.FindObjectOfType(); + menu.OnLobbyStartButtonClick(); + } + break; + + case "Devour": + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), "TP to Azazel")) + { + try + { + Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); + + nb.TeleportTo(Helpers.Map.GetAzazel().transform.position, Quaternion.identity); + } + catch + { + MelonLogger.Msg("Azazel not found !"); + Hacks.Misc.ShowMessageBox("Azazel not found !"); + } + } + + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), "Despawn Demons")) + { + Hacks.Misc.DespawnDemons(); + } + break; + case "Molly": + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), "TP to Azazel")) + { + try + { + Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); + + nb.TeleportTo(Helpers.Map.GetAzazel().transform.position, Quaternion.identity); + } + catch + { + MelonLogger.Msg("Azazel not found !"); + Hacks.Misc.ShowMessageBox("Azazel not found !"); + } + } + + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), "Despawn Inmates")) + { + Hacks.Misc.DespawnDemons(); + } + break; + case "Inn": + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), "TP to Azazel")) + { + try + { + Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); + + nb.TeleportTo(Helpers.Map.GetAzazel().transform.position, Quaternion.identity); + } + catch + { + MelonLogger.Msg("Azazel not found !"); + Hacks.Misc.ShowMessageBox("Azazel not found !"); + } + } + + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), "Clean The Fountains")) + { + Hacks.Misc.CleanFountain(); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 150, 150, 30), "Despawn Spiders")) + { + Hacks.Misc.DespawnSpiders(); + } + break; + + case "Town": + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), "TP to Azazel")) + { + try + { + Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); + + nb.TeleportTo(Helpers.Map.GetAzazel().transform.position, Quaternion.identity); + } + catch + { + MelonLogger.Msg("Azazel not found !"); + Hacks.Misc.ShowMessageBox("Azazel not found !"); + } + } + + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), "Despawn Ghosts")) + { + Hacks.Misc.DespawnGhosts(); + } + break; + + case "Slaughterhouse": + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), "TP to Azazel")) + { + try + { + Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); + + nb.TeleportTo(Helpers.Map.GetAzazel().transform.position, Quaternion.identity); + } + catch + { + MelonLogger.Msg("Azazel not found !"); + Hacks.Misc.ShowMessageBox("Azazel not found !"); + } + } + + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), "Despawn Boars")) + { + Hacks.Misc.DespawnBoars(); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 150, 150, 30), "Despawn Corpses")) + { + Hacks.Misc.DespawnCorpses(); + } + break; + + case "Manor": + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 70, 150, 30), "TP to Azazel")) + { + try + { + Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); + + nb.TeleportTo(Helpers.Map.GetAzazel().transform.position, Quaternion.identity); + } + catch + { + MelonLogger.Msg("Azazel not found !"); + Hacks.Misc.ShowMessageBox("Azazel not found !"); + } + } + + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 110, 150, 30), "Despawn Crows")) + { + Hacks.Misc.DespawnCrows(); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 190, Settings.Settings.y + 150, 150, 30), "Despawn Lumps")) + { + Hacks.Misc.DespawnLumps(); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 70, 150, 30), "Switch realm")) + { + Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); + Vector3 pos = nb.transform.position; + + ManorDeadRealmTrigger realm = Il2Cpp.ManorDeadRealmTrigger.FindObjectOfType(); + if (realm == null) + { + MelonLogger.Warning("realm was null."); + Hacks.Misc.ShowMessageBox("realm was null."); + return; + } + + if (realm.IsInDeadRealm) + { + // normal dimension + pos.x += 150f;// -10.216758f; + //pos.y = 0.009999979f; + //pos.z = -7.632657f; + + } + else + { + // other dimension + pos.x -= 150f;//-160.03688f; + //pos.y = 0.010014875f; + //pos.z = -7.5686994f; + } + + nb.locomotion.SetPosition(pos, false); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 110, 150, 30), "Switch realm (house)")) + { + Il2Cpp.NolanBehaviour nb = Player.GetPlayer(); + Vector3 pos = nb.transform.position; + + ManorDeadRealmTrigger realm = Il2Cpp.ManorDeadRealmTrigger.FindObjectOfType(); + if (realm == null) + { + MelonLogger.Warning("realm was null."); + Hacks.Misc.ShowMessageBox("realm was null."); + return; + } + + if (realm.IsInDeadRealm) + { + // normal dimension + pos.x = -10.216758f; + pos.y = 0.009999979f; + pos.z = -7.632657f; + + } + else + { + // other dimension + pos.x = -160.03688f; + pos.y = 0.010014875f; + pos.z = -7.5686994f; + } + + nb.locomotion.SetPosition(pos, false); + } + + infinite_mirrors = GUI.Toggle(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 150, 150, 20), infinite_mirrors, "Infinite mirrors"); + break; + } + + // load map + GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 210, 100, 30), "Load Map: "); + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 240, 100, 30), "Farmhouse") && BoltNetwork.IsServer) + { + Helpers.Map.LoadMap("Devour"); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 120, Settings.Settings.y + 240, 100, 30), "Asylum") && BoltNetwork.IsServer) + { + Helpers.Map.LoadMap("Molly"); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 230, Settings.Settings.y + 240, 100, 30), "Inn") && BoltNetwork.IsServer) + { + Helpers.Map.LoadMap("Inn"); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 340, Settings.Settings.y + 240, 100, 30), "Town") && BoltNetwork.IsServer) + { + Helpers.Map.LoadMap("Town"); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 450, Settings.Settings.y + 240, 100, 30), "Slaughterhouse") && BoltNetwork.IsServer) + { + Helpers.Map.LoadMap("Slaughterhouse"); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 560, Settings.Settings.y + 240, 100, 30), "Manor") && BoltNetwork.IsServer) + { + Helpers.Map.LoadMap("Manor"); + } + + } + + private static void EspTab() + { + player_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 150, 20), player_esp, "Player ESP"); + player_skel_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 100, 150, 20), player_skel_esp, "Skeleton ESP"); + player_snapline = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 130, 150, 20), player_snapline, "Player Snapline"); + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 160, 130, 30), "Player ESP Color")) + { + player_esp_colorpick = !player_esp_colorpick; + } + + if (player_esp_colorpick) + { + Color player_esp_color_input = GUIHelper.ColorPick("Player ESP Color", Settings.Settings.player_esp_color); + Settings.Settings.player_esp_color = player_esp_color_input; + } + + azazel_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 200, 150, 20), azazel_esp, "Azazel ESP"); + azazel_skel_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 230, 150, 20), azazel_skel_esp, "Skeleton ESP"); + azazel_snapline = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 260, 150, 20), azazel_snapline, "Azazel Snapline"); + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 290, 130, 30), "Azazel ESP Color")) + { + azazel_esp_colorpick = !azazel_esp_colorpick; + } + + if (azazel_esp_colorpick) + { + Color azazel_esp_color_input = GUIHelper.ColorPick("Azazel ESP Color", Settings.Settings.azazel_esp_color); + Settings.Settings.azazel_esp_color = azazel_esp_color_input; + } + + item_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 330, 150, 20), item_esp, "Item ESP"); + goat_rat_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 360, 150, 20), goat_rat_esp, "Goat/Rat ESP"); + demon_esp = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 390, 150, 20), demon_esp, "Demon ESP"); + } + + private static void ItemsTab() + { + GUILayout.BeginHorizontal(); + + GUILayout.BeginVertical(); + + GUILayout.Label("Items"); + + Settings.Settings.itemsScrollPosition = GUILayout.BeginScrollView(Settings.Settings.itemsScrollPosition, GUILayout.Width(220), GUILayout.Height(190)); + + if (GUILayout.Button("Hay")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalHay, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalHay"); + } + } + + if (GUILayout.Button("First aid")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalFirstAid, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalFirstAid"); + } + } + + if (GUILayout.Button("Battery")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalBattery, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalBattery"); + } + } + + if (GUILayout.Button("Gasoline")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalGasoline, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalGasoline"); + } + } + + if (GUILayout.Button("Fuse")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalFuse, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalFuse"); + } + } + + if (GUILayout.Button("Food")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalRottenFood, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalRottenFood"); + } + } + + if (GUILayout.Button("Bone")) + { + + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalBone, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalBone"); + } + } + + if (GUILayout.Button("Bleach")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalBleach, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalBleach"); + } + } + + if (GUILayout.Button("Matchbox")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalMatchbox, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("Matchbox-3"); + } + } + + if (GUILayout.Button("Shovel")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalSpade, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalSpade"); + } + } + + if (GUILayout.Button("Cake")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalCake, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalCake"); + } + } + + GUILayout.EndScrollView(); + GUILayout.EndVertical(); + + GUILayout.BeginVertical(); + + GUILayout.Label("Ritual Objects"); + + Settings.Settings.rituelObjectsScrollPosition = GUILayout.BeginScrollView(Settings.Settings.rituelObjectsScrollPosition, GUILayout.Width(220), GUILayout.Height(190)); + + if (GUILayout.Button("Egg-1")) + { + Hacks.Misc.CarryObject("Egg-Clean-1"); + } + + if (GUILayout.Button("Egg-2")) + { + Hacks.Misc.CarryObject("Egg-Clean-2"); + } + + if (GUILayout.Button("Egg-3")) + { + Hacks.Misc.CarryObject("Egg-Clean-3"); + } + + if (GUILayout.Button("Egg-4")) + { + Hacks.Misc.CarryObject("Egg-Clean-4"); + } + + if (GUILayout.Button("Egg-5")) + { + Hacks.Misc.CarryObject("Egg-Clean-5"); + } + + if (GUILayout.Button("Egg-6")) + { + Hacks.Misc.CarryObject("Egg-Clean-6"); + } + + if (GUILayout.Button("Egg-7")) + { + Hacks.Misc.CarryObject("Egg-Clean-7"); + } + + if (GUILayout.Button("Egg-8")) + { + Hacks.Misc.CarryObject("Egg-Clean-8"); + } + + if (GUILayout.Button("Egg-9")) + { + Hacks.Misc.CarryObject("Egg-Clean-9"); + } + + if (GUILayout.Button("Egg-10")) + { + Hacks.Misc.CarryObject("Egg-Clean-10"); + } + + if (GUILayout.Button("Ritual Book")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalRitualBook, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("RitualBook-Active-1"); + } + } + + if (GUILayout.Button("Dirty head")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalHead, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalHead"); + } + } + + if (GUILayout.Button("Clean head")) + { + if (BoltNetwork.IsServer && !Player.IsInGame()) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalCleanHead, Player.GetPlayer().transform.position, Quaternion.identity); + } + else + { + Hacks.Misc.CarryObject("SurvivalCleanHead"); + } + } + + GUILayout.EndScrollView(); + GUILayout.EndVertical(); + + GUILayout.BeginVertical(); + + GUILayout.Label("Spawnable Prefabs"); + + Settings.Settings.stuffsScrollPosition = GUILayout.BeginScrollView(Settings.Settings.stuffsScrollPosition, GUILayout.Width(220), GUILayout.Height(190)); + + if (GUILayout.Button("Animal_Gate")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.Animal_Gate, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("AsylumDoor")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.AsylumDoor, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("AsylumDoubleDoor")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.AsylumDoubleDoor, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("AsylumWhiteDoor")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.AsylumWhiteDoor, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + + if (GUILayout.Button("DevourDoorBack")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.DevourDoorBack, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("DevourDoorMain")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.DevourDoorMain, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("DevourDoorRoom")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.DevourDoorRoom, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("Elevator_Door")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.Elevator_Door, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("InnDoor")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.InnDoor, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("InnDoubleDoor")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.InnDoubleDoor, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("InnShojiDoor")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.InnShojiDoor, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("InnShrine")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.InnShrine, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("InnWardrobe")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.InnWardrobe, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("InnWoodenDoor")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.InnWoodenDoor, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("PigExcrement")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.PigExcrement, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SlaughterhouseFireEscapeDoor")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SlaughterhouseFireEscapeDoor, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SurvivalAltarMolly")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalAltarMolly, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SurvivalAltarSlaughterhouse")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalAltarSlaughterhouse, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SurvivalAltarTown")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalAltarTown, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + + if (GUILayout.Button("SurvivalCultist")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalCultist, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SurvivalKai")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalKai, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SurvivalNathan")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalNathan, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SurvivalMolly")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalMolly, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SurvivalApril")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalApril, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SurvivalFrank")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalFrank, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SurvivalRose")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalRose, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("SurvivalSmashableWindow")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.SurvivalSmashableWindow, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("TownDoor")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.TownDoor, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("TownDoor2")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.TownDoor2, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("TownPentagram")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.TownPentagram, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("TrashCan")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.TrashCan, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("Truck_Shutter")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.Truck_Shutter, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("TV")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.TV, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + if (GUILayout.Button("Mirror")) + { + if (BoltNetwork.IsServer) + { + BoltNetwork.Instantiate(BoltPrefabs.ManorMirror, Player.GetPlayer().transform.position, Quaternion.identity); + } + } + + GUILayout.EndScrollView(); + GUILayout.EndVertical(); + GUILayout.EndHorizontal(); + } + + private static void MiscTab() + { + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 150, 30), "Unlock Achievements")) + { + Thread AchievementsThread = new Thread(new ThreadStart(Hacks.Unlock.Achievements)); + AchievementsThread.Start(); + + MelonLogger.Msg("Achievements Unlocked!"); + Hacks.Misc.ShowMessageBox("Achievements Unlocked!"); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 110, 150, 30), "Unlock Doors")) + { + Hacks.Unlock.Doors(); + + MelonLogger.Msg("Doors Unlocked!"); + Hacks.Misc.ShowMessageBox("Doors Unlocked!"); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 150, 150, 30), "TP Keys") && Player.IsInGame()) + { + Hacks.Misc.TPKeys(); + MelonLogger.Msg("Here are your keys!"); + Hacks.Misc.ShowMessageBox("Here are your keys!"); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 190, 150, 30), "Make Random Noise")) + { + Hacks.Misc.PlaySound(); + MelonLogger.Msg("Playing a random sound!"); + Hacks.Misc.ShowMessageBox("Playing a random sound!"); + } + + spam_message = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 240, 140, 30), spam_message, "Chat spam"); + if (spam_message) + { + spamMessageText = GUI.TextField(new Rect(Settings.Settings.x + 160, Settings.Settings.y + 240, 200, 30), spamMessageText); + GUI.Label(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 240, 60, 30), "Send Interval(s):"); + spamMessageInterval = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 440, Settings.Settings.y + 240, 100, 30), spamMessageInterval, 1f, 30f); + GUI.Label(new Rect(Settings.Settings.x + 550, Settings.Settings.y + 240, 60, 30), ((int)spamMessageInterval).ToString()); + } + + change_steam_name = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 270, 140, 30), change_steam_name, "Change Steam Name"); + if (change_steam_name) + { + steamNameText = GUI.TextField(new Rect(Settings.Settings.x + 160, Settings.Settings.y + 270, 200, 30), steamNameText); + if (GUI.Button(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 270, 60, 30), "Apply")) + { + Hacks.Misc.SetSteamName(steamNameText); + } + } + + change_server_name = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 300, 140, 30), change_server_name, "Change Server Name"); + if (change_server_name) + { + serverNameText = GUI.TextField(new Rect(Settings.Settings.x + 160, Settings.Settings.y + 300, 200, 30), serverNameText); + if (GUI.Button(new Rect(Settings.Settings.x + 370, Settings.Settings.y + 300, 60, 30), "Apply")) + { + Hacks.Misc.SetServerName(serverNameText); + } + } + + _walkInLobby = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 330, 140, 30), _walkInLobby, "Walk In Lobby"); + _IsAutoRespawn = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 360, 140, 30), _IsAutoRespawn, "Auto Respawn"); + + fly = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 400, 40, 20), fly, "Fly"); + if (GUI.Button(new Rect(Settings.Settings.x + 60, Settings.Settings.y + 400, 40, 20), Settings.Settings.flyKey.ToString())) + { + Settings.Settings.flyKey = Settings.Settings.GetKey(); + } + + fly_speed = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 430, 100, 10), fly_speed, 5f, 20f); + GUI.Label(new Rect(Settings.Settings.x + 120, Settings.Settings.y + 425, 100, 30), ((int)fly_speed).ToString()); + + + spoofLevel = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 470, 150, 20), spoofLevel, "Spoof Level"); + spoofLevelValue = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 500, 100, 10), spoofLevelValue, 0f, 666f); + GUI.Label(new Rect(Settings.Settings.x + 120, Settings.Settings.y + 495, 100, 30), ((int)spoofLevelValue).ToString()); + + + exp_modifier = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 540, 150, 20), exp_modifier, "EXP Modifier"); + exp = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 570, 100, 10), exp, 1000f, 6000f); + GUI.Label(new Rect(Settings.Settings.x + 120, Settings.Settings.y + 565, 100, 30), ((int)exp).ToString()); + + + fastMove = GUI.Toggle(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 610, 150, 20), fastMove, "Player Speed"); + _PlayerSpeedMultiplier = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 640, 100, 10), _PlayerSpeedMultiplier, (int)1f, (int)10f); + GUI.Label(new Rect(Settings.Settings.x + 120, Settings.Settings.y + 635, 100, 30), ((int)_PlayerSpeedMultiplier).ToString()); + + GUI.Label(new Rect(Settings.Settings.x + 295, Settings.Settings.y + 70, 150, 30), "Max players"); + lobbySize = GUI.HorizontalSlider(new Rect(Settings.Settings.x + 295, Settings.Settings.y + 90, 100, 10), lobbySize, (int)0f, (int)30f); + GUI.Label(new Rect(Settings.Settings.x + 405, Settings.Settings.y + 85, 100, 30), ((int)lobbySize).ToString()); + + if (GUI.Button(new Rect(Settings.Settings.x + 285, Settings.Settings.y + 110, 150, 30), "Create server")) + { + MelonLogger.Msg("Creating the server..."); + Hacks.Misc.ShowMessageBox("Creating the server..."); + Hacks.Misc.CreateCustomizedLobby((int)lobbySize); + MelonLogger.Msg("Done !"); + Hacks.Misc.ShowMessageBox("Done !"); + } + } + + private static void PlayersTab() + { + if (Helpers.Map.GetActiveScene() != "Menu") + { + GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 150, 30), "Player list:"); + int i = 0; + foreach (BasePlayer bp in Entities.Players) + { + if (bp == null || bp.Name == "") + { + MelonLogger.Warning("players is null"); + Hacks.Misc.ShowMessageBox("players is null"); + continue; + } + + GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 110 + i, 150, 30), bp.Name); + + if (GUI.Button(new Rect(Settings.Settings.x + 70, Settings.Settings.y + 105 + i, 60, 30), "Kill")) + { + bp.Kill(); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 140, Settings.Settings.y + 105 + i, 60, 30), "Revive")) + { + bp.Revive(); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 210, Settings.Settings.y + 105 + i, 90, 30), "Jumpscare")) + { + bp.Jumpscare(); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 310, Settings.Settings.y + 105 + i, 60, 30), "TP to")) + { + bp.TP(); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 380, Settings.Settings.y + 105 + i, 100, 30), "Lock in cage")) + { + bp.LockInCage(); + } + + if (GUI.Button(new Rect(Settings.Settings.x + 490, Settings.Settings.y + 105 + i, 90, 30), "TP Azazel")) + { + bp.TPAzazel(); + } + + if (Helpers.Map.GetActiveScene() == "Town") + { + if (GUI.Button(new Rect(Settings.Settings.x + 590, Settings.Settings.y + 105 + i, 90, 30), "Shoot Player")) + { + bp.ShootPlayer(); + } + } + + i += 30; + } + } + else + { + GUI.Label(new Rect(Settings.Settings.x + 10, Settings.Settings.y + 70, 150, 30), "Waiting for the game to start."); + } + } + + } +}