using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using ModMenu.Cheats.Player; using ModMenu.UI; using Unity.Netcode; using UnityEngine; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("ModMenu")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ModMenu")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("B6CD993C-9878-4199-9C17-9FFCAFA221F1")] [assembly: AssemblyFileVersion("2.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("2.0.0.0")] namespace ModMenu { public class AleMain : MonoBehaviour { private bool _initialSetupDone; private bool _stylesInitialized; private void Start() { ((MonoBehaviour)this).InvokeRepeating("SlowUpdate", 0f, 0.5f); } private void OnGUI() { if (!_stylesInitialized) { _stylesInitialized = true; UIHelper.InitializeStyles(); } UIManager.Display(); } private void SlowUpdate() { if ((Object)(object)PlayerManager.Instance == (Object)null) { return; } if (!PlayerManager.Instance.isLocalPlayerSpawned) { ModMenu.Cheats.Player.Cheats.GodModeEnabled = false; ModMenu.Cheats.Player.Cheats.NoClipEnabled = false; ModMenu.Cheats.Player.Cheats.ShopUnlockEnabled = false; ModMenu.Cheats.Player.Cheats.FreezeTimeEnabled = false; ModMenu.Cheats.Player.Cheats.NoFallDamageEnabled = false; ModMenu.Cheats.Player.Cheats.InstantDashEnabled = false; ModMenu.Cheats.Player.Cheats.AlwaysCleanEnabled = false; } else { if (!_initialSetupDone) { Master.Instance.isDebug = Settings.EnableDebug.Value; Master.Instance.fCheats = Settings.EnableCheats.Value; _initialSetupDone = true; } ModMenu.Cheats.Player.Cheats.GodModeEnabled = Game.Instance.god.Value; } } private void Update() { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Invalid comparison between Unknown and I4 //IL_0078: Unknown result type (might be due to invalid IL or missing references) ModMenu.Cheats.Player.Cheats.EnforceCheats(); if (Input.GetKeyDown(Settings.ModKey.Value)) { if ((Object)(object)PlayerInventory.Instance == (Object)null) { return; } Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name == "MainMenu") { return; } if (UIManager.MenuVisible) { UIManager.MenuVisible = false; if ((int)PlayerInventory.Instance.state == 20) { PlayerInventory.Instance.SetState((State)0); } } else if (IsInMenuState()) { UIManager.MenuVisible = true; if ((int)PlayerInventory.Instance.state == 0) { PlayerInventory.Instance.SetState((State)20); } } } if ((Object)(object)PlayerInventory.Instance != (Object)null && UIManager.MenuVisible && !IsInMenuState()) { UIManager.MenuVisible = false; } } private static bool IsInMenuState() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Invalid comparison between Unknown and I4 //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Invalid comparison between Unknown and I4 //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Invalid comparison between Unknown and I4 //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Invalid comparison between Unknown and I4 //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Invalid comparison between Unknown and I4 //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Invalid comparison between Unknown and I4 //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Invalid comparison between Unknown and I4 //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Invalid comparison between Unknown and I4 //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Invalid comparison between Unknown and I4 if ((Object)(object)PlayerInventory.Instance == (Object)null) { return false; } State state = PlayerInventory.Instance.state; if ((int)state != 20 && (int)state != 21 && (int)state != 15 && (int)state != 10 && (int)state != 5 && (int)state != 4 && (int)state != 2 && (int)state != 3) { return (int)state == 0; } return true; } } [BepInPlugin("RealSkye.ModMenu", "ModMenu", "2.0.0")] public class Plugin : BaseUnityPlugin { public const string PLUGIN_GUID = "RealSkye.ModMenu"; public const string PLUGIN_NAME = "ModMenu"; public const string PLUGIN_VERSION = "2.0.0"; public static ManualLogSource Log { get; private set; } public void Awake() { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Expected O, but got Unknown Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), (string)null); Log = Logger.CreateLogSource("RealSkye.ModMenu"); Settings.Initialize(((BaseUnityPlugin)this).Config); Log.LogInfo((object)"Plugin ModMenu (v2.0.0) has loaded!"); try { GameObject val = new GameObject("AleBehavior"); val.AddComponent(); ((Object)val).hideFlags = (HideFlags)61; Object.DontDestroyOnLoad((Object)val); } catch { Log.LogError((object)"FAILED to Register Mono Type!"); } } } public static class Settings { public static ConfigEntry ModKey { get; private set; } public static ConfigEntry EnableDebug { get; private set; } public static ConfigEntry EnableCheats { get; private set; } internal static void Initialize(ConfigFile config) { ModKey = config.Bind("Hotkeys", "Toggle", (KeyCode)127, "Toggles menu visibility"); EnableDebug = config.Bind("General", "EnableDebug", true, "Enables debug features: teleport menu (backQuote), UI toggling (slash), and noclip speed changes (comma/period)."); EnableCheats = config.Bind("General", "EnableCheats", true, "Enables built-in cheat hotkeys: F9 = God, F10 = GiveAllTools, F11 = AddMoney(1000), F12 = AddExp(100), C = ShowEntityStats"); } } } namespace ModMenu.UI { public class UIHelper { private static float x; private static float y; private static float width; private static float height; private static float margin; private static float controlHeight; private static float controlDist; private static float nextControlY; private static Texture2D _panelOff; private static Texture2D _panelOn; private static GUIStyle _boxStyle; private static GUIStyle _titlebarStyle; public static GUIStyle TextFieldStyle; private static GUIStyle _centeredLabelStyle; public static GUIStyle ButtonStyle; public static GUIStyle SpawnerButtonStyle; public static GUIStyle PanelStyle; private static Color onColor = new Color(77f / 85f, 6f / 85f, 0f); private static Color offColor = Color.white; public static GUIStyle StringStyle { get; set; } = new GUIStyle(GUI.skin.label); public static void InitializeStyles() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Expected O, but got Unknown //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Expected O, but got Unknown //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Expected O, but got Unknown //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Expected O, but got Unknown //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Expected O, but got Unknown //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Expected O, but got Unknown //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Expected O, but got Unknown //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_0366: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) _panelOff = MakeTex(1, 1, new Color(0.32156864f, 0.32156864f, 0.32156864f)); ((Object)_panelOff).hideFlags = (HideFlags)61; _panelOn = MakeTex(1, 1, new Color(77f / 85f, 6f / 85f, 0f)); ((Object)_panelOn).hideFlags = (HideFlags)61; PanelStyle = new GUIStyle(GUI.skin.label); PanelStyle.normal.background = _panelOff; ((Object)PanelStyle.normal.background).hideFlags = (HideFlags)61; _boxStyle = new GUIStyle(GUI.skin.box); _boxStyle.normal.background = MakeTex(1, 1, new Color(14f / 85f, 14f / 85f, 14f / 85f)); ((Object)_boxStyle.normal.background).hideFlags = (HideFlags)61; _titlebarStyle = new GUIStyle(GUI.skin.box); _titlebarStyle.normal.background = MakeTex(1, 1, new Color(77f / 85f, 6f / 85f, 0f)); ((Object)_titlebarStyle.normal.background).hideFlags = (HideFlags)61; _centeredLabelStyle = new GUIStyle(GUI.skin.label); _centeredLabelStyle.alignment = (TextAnchor)4; SpawnerButtonStyle = new GUIStyle(GUI.skin.button); SpawnerButtonStyle.normal.background = Texture2D.blackTexture; ((Object)SpawnerButtonStyle.normal.background).hideFlags = (HideFlags)61; SpawnerButtonStyle.hover.background = MakeTex(1, 1, new Color(6f / 85f, 6f / 85f, 6f / 85f)); ((Object)SpawnerButtonStyle.hover.background).hideFlags = (HideFlags)61; SpawnerButtonStyle.active.background = MakeTex(1, 1, new Color(6f / 85f, 6f / 85f, 6f / 85f)); ((Object)SpawnerButtonStyle.active.background).hideFlags = (HideFlags)61; ButtonStyle = new GUIStyle(GUI.skin.button); ButtonStyle.alignment = (TextAnchor)3; ButtonStyle.padding = new RectOffset(4, 0, 0, 0); ButtonStyle.normal.background = Texture2D.blackTexture; ((Object)ButtonStyle.normal.background).hideFlags = (HideFlags)61; ButtonStyle.hover.background = MakeTex(1, 1, new Color(6f / 85f, 6f / 85f, 6f / 85f)); ((Object)ButtonStyle.hover.background).hideFlags = (HideFlags)61; ButtonStyle.active.background = MakeTex(1, 1, new Color(6f / 85f, 6f / 85f, 6f / 85f)); ((Object)ButtonStyle.active.background).hideFlags = (HideFlags)61; TextFieldStyle = new GUIStyle(GUI.skin.textField); TextFieldStyle.normal.background = MakeTex(2, 2, new Color(0.10980392f, 0.10980392f, 0.10980392f)); ((Object)TextFieldStyle.normal.background).hideFlags = (HideFlags)61; TextFieldStyle.hover.background = MakeTex(2, 2, new Color(6f / 85f, 6f / 85f, 6f / 85f)); ((Object)TextFieldStyle.hover.background).hideFlags = (HideFlags)61; TextFieldStyle.focused.background = MakeTex(2, 2, new Color(0.10980392f, 0.10980392f, 0.10980392f)); ((Object)TextFieldStyle.focused.background).hideFlags = (HideFlags)61; } public static void Begin(string text, float _x, float _y, float _width, float _height, float _margin, float _controlHeight, float _controlDist) { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) x = _x; y = _y; width = _width; height = _height; margin = _margin; controlHeight = _controlHeight; controlDist = _controlDist; nextControlY = 20f; GUI.Box(new Rect(x, y, width, height), "", _boxStyle); GUI.Box(new Rect(x, y, width, 20f), "", _titlebarStyle); GUI.Label(new Rect(x, y, width, 20f), "" + text + "", _centeredLabelStyle); } public static void Begin(string text, float _x, float _y, float _width, float _height, float _margin, float _controlHeight, float _controlDist, bool biggerTitleBar) { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) x = _x; y = _y; width = _width; height = _height; margin = _margin; controlHeight = _controlHeight; controlDist = _controlDist; nextControlY = 20f; GUI.Box(new Rect(x, y, width, height), "", _boxStyle); GUI.Box(new Rect(x, y, width, 25f), "", _titlebarStyle); GUI.Label(new Rect(x, y, width, 25f), "" + text + "", _centeredLabelStyle); } private static Rect NextControlRect() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) Rect result = new Rect(x + margin, nextControlY + y, width - margin * 2f, controlHeight); nextControlY += controlHeight + controlDist; return result; } private static Rect NextControlRectSpaced() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) Rect result = new Rect(x + margin, nextControlY * 1.4f + y, width - margin * 2f, controlHeight); nextControlY += controlHeight + controlDist; return result; } private static Rect NextControlRectSpaced2() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) Rect result = new Rect(x + margin, nextControlY * 1.6f + y, width - margin * 2f, controlHeight); nextControlY += controlHeight + controlDist; return result; } public static string MakeEnable(string text, bool state) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) PanelStyle.normal.background = (state ? _panelOn : _panelOff); Color val = (state ? onColor : offColor); int num = (int)(val.r * 255f); int num2 = (int)(val.g * 255f); int num3 = (int)(val.b * 255f); string text2 = $"#{num:X2}{num2:X2}{num3:X2}"; return "" + text + ""; } public static void Button(string text, bool state, Action function) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) Rect val = NextControlRect(); bool num = GUI.Button(val, MakeEnable(text, state), ButtonStyle); GUI.Label(new Rect(((Rect)(ref val)).xMax - 6f, ((Rect)(ref val)).y + 3f, 3f, ((Rect)(ref val)).height - 6f), GUIContent.none, PanelStyle); if (num) { GUI.FocusControl((string)null); function(); } } public static bool Button(string text) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) bool num = GUI.Button(NextControlRect(), text, ButtonStyle); if (num) { GUI.FocusControl((string)null); } return num; } public static void Label(string text, float value, int decimals = 2) { Label($"{text}{Math.Round(value, 2).ToString()}"); } public static void Label(string text) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) GUI.Label(NextControlRect(), text, _centeredLabelStyle); } public static void Label(string text, bool spacing) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) if (spacing) { GUI.Label(NextControlRectSpaced(), text, _centeredLabelStyle); } else { GUI.Label(NextControlRectSpaced2(), text, _centeredLabelStyle); } } public static float Slider(float val, float min, float max) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) return GUI.HorizontalSlider(NextControlRect(), val, min, max); } public static float Slider(ref float val, float min, float max) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) return GUI.HorizontalSlider(NextControlRect(), val, min, max); } public static bool DrawString(Vector2 position, string label, Color color, int fontSize, bool centered = true) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) GUI.color = color; StringStyle.fontSize = fontSize; StringStyle.normal.textColor = color; GUIContent val = new GUIContent(label); Vector2 val2 = StringStyle.CalcSize(val); GUI.Label(new Rect(centered ? (position - val2 / 2f) : position, val2), val, StringStyle); return true; } public static void DrawLine(Vector2 start, Vector2 end, Color color, float width) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) GUI.depth = 0; Vector2 val = end - start; float num = 57.29578f * Mathf.Atan(val.y / val.x); if (val.x < 0f) { num += 180f; } int num2 = (int)Mathf.Ceil(width / 2f); GUIUtility.RotateAroundPivot(num, start); GUI.color = color; GUI.DrawTexture(new Rect(start.x, start.y - (float)num2, ((Vector2)(ref val)).magnitude, width), (Texture)(object)Texture2D.whiteTexture, (ScaleMode)0); GUIUtility.RotateAroundPivot(0f - num, start); } public static void DrawBox(Vector2 position, Vector2 size, Color color, bool centered = true) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) if (centered) { position -= size / 2f; } GUI.color = color; GUI.DrawTexture(new Rect(position, size), (Texture)(object)Texture2D.whiteTexture, (ScaleMode)0); } public static void DrawBoxOutline(Vector2 Point, float width, float height, Color color) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) DrawLine(Point, new Vector2(Point.x + width, Point.y), color, 2f); DrawLine(Point, new Vector2(Point.x, Point.y + height), color, 2f); DrawLine(new Vector2(Point.x + width, Point.y + height), new Vector2(Point.x + width, Point.y), color, 2f); DrawLine(new Vector2(Point.x + width, Point.y + height), new Vector2(Point.x, Point.y + height), color, 2f); } private static Texture2D MakeTex(int width, int height, Color col) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown Color[] array = (Color[])(object)new Color[width * height]; for (int i = 0; i < array.Length; i++) { array[i] = col; } Texture2D val = new Texture2D(width, height); val.SetPixels(array); val.Apply(); return val; } } public class UIManager { private static GUIStyle whiteText = new GUIStyle(); public static bool MenuVisible; public static bool IdsMenuVisible; public static bool EffectsMenuVisible; public static bool QuestTypeMenuVisible; public static bool CreatureTypeMenuVisible; public static float PercentToClean = 10f; private static string _itemIdInput = "0"; private static string _itemAmountInput = "1"; private static string _effectTypeInput = "type"; private static string _effectDurationInput = "60"; private static string _effectStrengthInput = "0"; private static string _moneyInput = "0"; private static string _expInput = "0"; private static string _questTypeInput = "Undefined"; private static bool _isWednesdayInput; private static string _creatureTypeInput = "None"; private static string _levelInput = "1"; private static float _timeSlider = 12f; private static Vector2 _scrollPosition = Vector2.zero; private static Vector2 _scrollPosition1 = Vector2.zero; private static Vector2 _scrollPosition2 = Vector2.zero; private static Vector2 _scrollPosition3 = Vector2.zero; private static List _itemList; private static List _effectList; private static List _questTypesList; private static List _EntityList; private static string _searchQuery = ""; private static string _searchQuery1 = ""; private static string _searchQuery2 = ""; private static string _searchQuery3 = ""; private static bool _initialized; private static bool _initializedEffects; private static bool _initializedQuests; private static bool _initializedEntityTypes; public static void Display() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Invalid comparison between Unknown and I4 //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Invalid comparison between Unknown and I4 //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Invalid comparison between Unknown and I4 //IL_01fb: Unknown result type (might be due to invalid IL or missing references) if (MenuVisible) { if ((int)Event.current.type == 4 && ((int)Event.current.keyCode == 13 || (int)Event.current.keyCode == 27)) { GUI.FocusControl((string)null); } if ((int)Event.current.type == 0) { GUI.FocusControl((string)null); } GUI.color = Color.white; UIHelper.Begin("Player", 10f, 10f, 150f, 380f, 0f, 22f, 1f); UIHelper.Button("God Mode", ModMenu.Cheats.Player.Cheats.GodModeEnabled, ModMenu.Cheats.Player.Cheats.ToggleGodMode); UIHelper.Label("1 WalkSpeed 10"); PlayerMovement.Instance.speedEffectModifier = UIHelper.Slider(ref PlayerMovement.Instance.speedEffectModifier, 1f, 10f); UIHelper.Label("1.5 RunSpeed 10"); PlayerMovement.Instance.sprintSpeedModifier = UIHelper.Slider(ref PlayerMovement.Instance.sprintSpeedModifier, 1.5f, 10f); UIHelper.Label("0 CleanSpeed 10"); PercentToClean = UIHelper.Slider(ref PercentToClean, 0f, 10f); UIHelper.Button("NoClip", ModMenu.Cheats.Player.Cheats.NoClipEnabled, ModMenu.Cheats.Player.Cheats.ToggleNoClip); UIHelper.Button("No Fall Damage", ModMenu.Cheats.Player.Cheats.NoFallDamageEnabled, ModMenu.Cheats.Player.Cheats.ToggleNoFallDamage); UIHelper.Button("Instant Dash", ModMenu.Cheats.Player.Cheats.InstantDashEnabled, ModMenu.Cheats.Player.Cheats.ToggleInstantDash); UIHelper.Button("Teleport Home", state: false, ModMenu.Cheats.Player.Cheats.TeleportHome); UIHelper.Button("Give All Tools", state: false, ModMenu.Cheats.Player.Cheats.GiveAllTools); UIHelper.MakeEnable("", state: true); TavernWindow(); TimeWindow(); WorldWindow(); ItemSpawnerWindow(); AddEffectWindow(); AddOthersWindow(); GenerateGenericQuestWindow(); SpawnWindow(); if (IdsMenuVisible) { AllIdsWindow(); } if (EffectsMenuVisible) { AllEffectsWindow(); } if (QuestTypeMenuVisible) { AllQuestTypesWindow(); } if (CreatureTypeMenuVisible) { AllSpawnTypesWindow(); } GUI.color = Color.gray; } } private static void TavernWindow() { //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("Tavern", 10f, 400f, 150f, 160f, 0f, 22f, 1f); UIHelper.Button("Shop Unlock", ModMenu.Cheats.Player.Cheats.ShopUnlockEnabled, ModMenu.Cheats.Player.Cheats.ToggleShopUnlock); UIHelper.Button("Always Clean", ModMenu.Cheats.Player.Cheats.AlwaysCleanEnabled, ModMenu.Cheats.Player.Cheats.ToggleAlwaysClean); UIHelper.Button("Complete Quest", state: false, ModMenu.Cheats.Player.Cheats.CompleteCurrentQuest); UIHelper.Button("Spawn Customer", state: false, ModMenu.Cheats.Player.Cheats.SpawnCustomer); UIHelper.Label("Level (1-99)"); _levelInput = GUI.TextField(new Rect(15f, 535f, 45f, 20f), _levelInput, UIHelper.TextFieldStyle); if (GUI.Button(new Rect(65f, 535f, 90f, 20f), "Set Level", UIHelper.ButtonStyle) && int.TryParse(_levelInput, out var result)) { ModMenu.Cheats.Player.Cheats.SetLevel(result); } } private static void TimeWindow() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Expected O, but got Unknown //IL_00d7: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("Time Control", 10f, 565f, 150f, 100f, 0f, 22f, 1f); UIHelper.Button("Freeze Time", ModMenu.Cheats.Player.Cheats.FreezeTimeEnabled, ModMenu.Cheats.Player.Cheats.ToggleFreezeTime); UIHelper.Label("Set Time (0-24h)"); float num = GUI.HorizontalSlider(new Rect(15f, 631f, 140f, 15f), _timeSlider, 0f, 23.99f); if (Math.Abs(num - _timeSlider) > 0.01f) { _timeSlider = num; ModMenu.Cheats.Player.Cheats.SetTimeOfDay(_timeSlider); } GUIStyle val = new GUIStyle(GUI.skin.label); val.normal.textColor = Color.white; GUIStyle val2 = val; GUI.Label(new Rect(15f, 645f, 140f, 20f), $"Time: {Mathf.FloorToInt(_timeSlider)}:{Mathf.FloorToInt(_timeSlider % 1f * 60f):00}", val2); } private static void WorldWindow() { UIHelper.Begin("World", 10f, 670f, 150f, 115f, 0f, 22f, 1f); UIHelper.Button("Kill All Enemies", state: false, ModMenu.Cheats.Player.Cheats.KillAllEnemies); UIHelper.Button("Spawn Zeppelin", state: false, delegate { if ((Object)(object)DevelopmentExtension.Instance != (Object)null) { DevelopmentExtension.Instance.SpawnZeppelin(true); } }); UIHelper.Button("Spawn Zep Items", state: false, delegate { if ((Object)(object)DevelopmentExtension.Instance != (Object)null) { DevelopmentExtension.Instance.SpawnZeppelinItems(); } }); UIHelper.Button("Unlock Jukebox", state: false, delegate { for (byte b = 0; b < 20; b++) { ModMenu.Cheats.Player.Cheats.UnlockJukeboxTrack(b); } }); } private static void ItemSpawnerWindow() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("Item Spawner", 165f, 10f, 165f, 83f, 2f, 20f, 2f); UIHelper.Label("Enter item id and amount"); _itemIdInput = GUI.TextField(new Rect(167f, 49f, 40f, 20f), _itemIdInput, UIHelper.TextFieldStyle); _itemAmountInput = GUI.TextField(new Rect(209f, 49f, 40f, 20f), _itemAmountInput, UIHelper.TextFieldStyle); if (GUI.Button(new Rect(251f, 49f, 77f, 20f), "Spawn", UIHelper.ButtonStyle)) { if (!PlayerManager.Instance.isLocalPlayerSpawned) { return; } if (ushort.TryParse(_itemIdInput, out var result) && ushort.TryParse(_itemAmountInput, out var result2)) { SpawnItems(result, result2); } else { Plugin.Log.LogError((object)("Failed to spawn item(s) with id " + _itemIdInput)); } } GUI.Label(new Rect(324f, 52f, 3f, 14f), GUIContent.none, UIHelper.PanelStyle); if (GUI.Button(new Rect(167f, 71f, 161f, 20f), "Show all ID's", UIHelper.SpawnerButtonStyle)) { EffectsMenuVisible = false; IdsMenuVisible = !IdsMenuVisible; } } private static void AddEffectWindow() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("Effect adder", 334f, 10f, 300f, 83f, 2f, 20f, 2f); UIHelper.Label("Enter effect type, duration and strength"); _effectTypeInput = GUI.TextField(new Rect(338f, 49f, 70f, 20f), _effectTypeInput, UIHelper.TextFieldStyle); _effectDurationInput = GUI.TextField(new Rect(412f, 49f, 70f, 20f), _effectDurationInput, UIHelper.TextFieldStyle); _effectStrengthInput = GUI.TextField(new Rect(486f, 49f, 70f, 20f), _effectStrengthInput, UIHelper.TextFieldStyle); if (GUI.Button(new Rect(560f, 49f, 70f, 20f), "Add effect", UIHelper.ButtonStyle)) { if (!PlayerManager.Instance.isLocalPlayerSpawned) { return; } if (float.TryParse(_effectDurationInput, out var result) && int.TryParse(_effectStrengthInput, out var result2) && Enum.TryParse(_effectTypeInput, out EffectType result3)) { EffectsController.Instance.AddEffectServerRpc(result3, result, result2, default(ServerRpcParams)); } else { Plugin.Log.LogError((object)("Failed to add effect with type " + _effectTypeInput)); } } GUI.Label(new Rect(625f, 52f, 3f, 14f), GUIContent.none, UIHelper.PanelStyle); if (GUI.Button(new Rect(338f, 71f, 292f, 20f), "Show all effects", UIHelper.SpawnerButtonStyle)) { IdsMenuVisible = false; EffectsMenuVisible = !EffectsMenuVisible; } } private static void AddOthersWindow() { //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("Misc Add", 745f, 10f, 218f, 115f, 2f, 20f, 2f); UIHelper.Label("Enter money to add"); if (!PlayerManager.Instance.isLocalPlayerSpawned) { return; } _moneyInput = GUI.TextField(new Rect(747f, 49f, 60f, 20f), _moneyInput, UIHelper.TextFieldStyle); if (GUI.Button(new Rect(810f, 49f, 150f, 20f), "Add money", UIHelper.ButtonStyle)) { if (ulong.TryParse(_moneyInput, out var result)) { GameStatus.Instance.AddMoney(result); } else { Plugin.Log.LogError((object)("Failed to add money with value " + _moneyInput)); } } UIHelper.Label("Enter exp to add", spacing: true); _expInput = GUI.TextField(new Rect(747f, 91f, 60f, 20f), _expInput, UIHelper.TextFieldStyle); if (GUI.Button(new Rect(810f, 91f, 150f, 20f), "Add exp", UIHelper.ButtonStyle)) { if (uint.TryParse(_expInput, out var result2)) { GameStatus.Instance.AddExp(result2); } else { Plugin.Log.LogError((object)("Failed to add exp with value " + _expInput)); } } GUI.Label(new Rect(957f, 52f, 3f, 14f), GUIContent.none, UIHelper.PanelStyle); GUI.Label(new Rect(957f, 94f, 3f, 14f), GUIContent.none, UIHelper.PanelStyle); } private static void GenerateGenericQuestWindow() { //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("Generate generic quest", 968f, 10f, 200f, 83f, 2f, 20f, 2f); UIHelper.Label("Enter quest type"); if (!PlayerManager.Instance.isLocalPlayerSpawned) { return; } _questTypeInput = GUI.TextField(new Rect(970f, 49f, 70f, 20f), _questTypeInput, UIHelper.TextFieldStyle); if (GUI.Button(new Rect(1045f, 49f, 120f, 20f), "Generate quest", UIHelper.ButtonStyle)) { if (Enum.TryParse(_questTypeInput, out GenericQuestType result)) { if (!QuestManager.Instance.CreateGenericQuest(result)) { Plugin.Log.LogWarning((object)("CreateGenericQuest returned false for type " + ((object)(GenericQuestType)(ref result)).ToString())); } } else { Plugin.Log.LogError((object)("Failed to generate quest with type " + _questTypeInput)); } } GUI.Label(new Rect(1160f, 52f, 3f, 14f), GUIContent.none, UIHelper.PanelStyle); if (GUI.Button(new Rect(970f, 71f, 195f, 20f), "Show all quest types", UIHelper.SpawnerButtonStyle)) { QuestTypeMenuVisible = !QuestTypeMenuVisible; } } private static void SpawnWindow() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("Spawn entities", 1173f, 10f, 200f, 167f, 2f, 20f, 2f); UIHelper.Label("Can spawn toads if checked"); _isWednesdayInput = GUI.Toggle(new Rect(1175f, 49f, 90f, 20f), _isWednesdayInput, "Wednesday?"); if (!PlayerManager.Instance.isLocalPlayerSpawned) { return; } if (GUI.Button(new Rect(1270f, 49f, 95f, 20f), "Spawn Raid", UIHelper.ButtonStyle)) { TavernEnemyRaidEvent.Instance.DebugRaidEvent(_isWednesdayInput); } UIHelper.Label("Spawn animal raid", spacing: true); if (GUI.Button(new Rect(1175f, 91f, 190f, 20f), "Spawn Raid animal", UIHelper.ButtonStyle)) { TavernAnimalsRaidEvent.Instance.DebugRaidEvent(); } UIHelper.Label("Spawn Creature", spacing: false); _creatureTypeInput = GUI.TextField(new Rect(1175f, 133f, 125f, 20f), _creatureTypeInput, UIHelper.TextFieldStyle); if (GUI.Button(new Rect(1305f, 133f, 60f, 20f), "Spawn", UIHelper.ButtonStyle)) { if (Enum.TryParse(_creatureTypeInput, out Type result)) { Transform transform = ((Component)PlayerManager.Instance.players[0uL]).transform; Vector3 val = transform.position + transform.forward * 5f; Spawnable val2 = default(Spawnable); SpawnManager.Instance.ManualSpawn(result, val, Quaternion.identity, ref val2, false); } else { Plugin.Log.LogError((object)("Failed to spawn creature of type " + _creatureTypeInput)); } } GUI.Label(new Rect(1360f, 52f, 3f, 14f), GUIContent.none, UIHelper.PanelStyle); GUI.Label(new Rect(1360f, 94f, 3f, 14f), GUIContent.none, UIHelper.PanelStyle); GUI.Label(new Rect(1360f, 136f, 3f, 14f), GUIContent.none, UIHelper.PanelStyle); if (GUI.Button(new Rect(1175f, 155f, 190f, 20f), "Show creature types", UIHelper.SpawnerButtonStyle)) { CreatureTypeMenuVisible = !CreatureTypeMenuVisible; } } private static void AllIdsWindow() { //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Expected O, but got Unknown //IL_0230: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("All Ids", 165f, 97f, 300f, 475f, 0f, 22f, 2f, biggerTitleBar: true); if (PlayerManager.Instance.isLocalPlayerSpawned && !_initialized) { _initialized = true; if (_itemList == null) { _itemList = ItemManager.Instance.itemDataHub.itemData.ToList(); } } string text = ((_searchQuery.Length == 0) ? "Search" : ""); GUILayout.BeginArea(new Rect(166f, 98f, 295f, 470f)); _searchQuery = GUILayout.TextField(_searchQuery, UIHelper.TextFieldStyle, Array.Empty()); GUI.Label(new Rect(9f, 1f, 60f, 30f), text); if (_itemList == null || _itemList.Count == 0) { GUI.Label(new Rect(0f, 31f, 300f, 469f), "Item list is empty load a save to populate the list"); } else { StringWriter stringWriter = new StringWriter(); foreach (ItemData item in _itemList) { if (item.name.ToLower().Contains(_searchQuery.ToLower())) { string input = item.name.Replace("ItemDataName", "").Replace("Item_", "").Replace("Banner_", "") .Replace("_Title", "") .Replace("_title", "") .Replace("_", " "); input = Regex.Replace(input, "([a-z])([A-Z])", "$1 $2").Trim(); stringWriter.Write(input); stringWriter.Write(" : "); stringWriter.WriteLine(item.id); } } _scrollPosition = GUILayout.BeginScrollView(_scrollPosition, Array.Empty()); GUILayout.BeginVertical(new GUIStyle(), Array.Empty()); whiteText.normal.textColor = Color.white; GUILayout.Label(stringWriter.ToString(), whiteText, Array.Empty()); GUILayout.EndVertical(); GUILayout.EndScrollView(); } GUILayout.EndArea(); } private static void AllEffectsWindow() { //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Expected I4, but got Unknown //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Expected O, but got Unknown //IL_01bf: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("All Effects", 335f, 97f, 300f, 380f, 0f, 22f, 2f, biggerTitleBar: true); if (PlayerManager.Instance.isLocalPlayerSpawned && !_initializedEffects) { _initializedEffects = true; if (_effectList == null) { _effectList = Enum.GetValues(typeof(EffectType)).OfType().ToList(); } } string text = ((_searchQuery1.Length == 0) ? "Search" : ""); GUILayout.BeginArea(new Rect(336f, 98f, 295f, 375f)); _searchQuery1 = GUILayout.TextField(_searchQuery1, UIHelper.TextFieldStyle, Array.Empty()); GUI.Label(new Rect(9f, 1f, 60f, 30f), text); if (_effectList == null || _effectList.Count == 0) { GUI.Label(new Rect(0f, 31f, 300f, 379f), "Effect list is empty — load a save first"); } else { StringWriter stringWriter = new StringWriter(); foreach (EffectType effect in _effectList) { EffectType current = effect; if (((object)(EffectType)(ref current)).ToString().ToLower().Contains(_searchQuery1.ToLower())) { stringWriter.Write(((object)(EffectType)(ref current)).ToString()); stringWriter.Write(" : "); stringWriter.WriteLine((int)current); } } _scrollPosition1 = GUILayout.BeginScrollView(_scrollPosition1, Array.Empty()); GUILayout.BeginVertical(new GUIStyle(), Array.Empty()); whiteText.normal.textColor = Color.white; GUILayout.Label(stringWriter.ToString(), whiteText, Array.Empty()); GUILayout.EndVertical(); GUILayout.EndScrollView(); } GUILayout.EndArea(); } private static void AllQuestTypesWindow() { //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Expected I4, but got Unknown //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Expected O, but got Unknown //IL_01bf: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("All Quests", 968f, 97f, 200f, 380f, 0f, 22f, 2f, biggerTitleBar: true); if (PlayerManager.Instance.isLocalPlayerSpawned && !_initializedQuests) { _initializedQuests = true; if (_questTypesList == null) { _questTypesList = Enum.GetValues(typeof(GenericQuestType)).OfType().ToList(); } } string text = ((_searchQuery2.Length == 0) ? "Search" : ""); GUILayout.BeginArea(new Rect(969f, 98f, 195f, 375f)); _searchQuery2 = GUILayout.TextField(_searchQuery2, UIHelper.TextFieldStyle, Array.Empty()); GUI.Label(new Rect(9f, 1f, 60f, 30f), text); if (_questTypesList == null || _questTypesList.Count == 0) { GUI.Label(new Rect(0f, 31f, 300f, 379f), "Quest list is empty — load a save first"); } else { StringWriter stringWriter = new StringWriter(); foreach (GenericQuestType questTypes in _questTypesList) { GenericQuestType current = questTypes; if (((object)(GenericQuestType)(ref current)).ToString().ToLower().Contains(_searchQuery2.ToLower())) { stringWriter.Write(((object)(GenericQuestType)(ref current)).ToString()); stringWriter.Write(" : "); stringWriter.WriteLine((int)current); } } _scrollPosition2 = GUILayout.BeginScrollView(_scrollPosition2, Array.Empty()); GUILayout.BeginVertical(new GUIStyle(), Array.Empty()); whiteText.normal.textColor = Color.white; GUILayout.Label(stringWriter.ToString(), whiteText, Array.Empty()); GUILayout.EndVertical(); GUILayout.EndScrollView(); } GUILayout.EndArea(); } private static void AllSpawnTypesWindow() { //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Expected I4, but got Unknown //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Expected O, but got Unknown //IL_01bf: Unknown result type (might be due to invalid IL or missing references) UIHelper.Begin("All entity types", 1173f, 181f, 200f, 380f, 0f, 22f, 2f, biggerTitleBar: true); if (PlayerManager.Instance.isLocalPlayerSpawned && !_initializedEntityTypes) { _initializedEntityTypes = true; if (_EntityList == null) { _EntityList = Enum.GetValues(typeof(Type)).OfType().ToList(); } } string text = ((_searchQuery3.Length == 0) ? "Search" : ""); GUILayout.BeginArea(new Rect(1174f, 182f, 195f, 375f)); _searchQuery3 = GUILayout.TextField(_searchQuery3, UIHelper.TextFieldStyle, Array.Empty()); GUI.Label(new Rect(9f, 1f, 60f, 30f), text); if (_EntityList == null || _EntityList.Count == 0) { GUI.Label(new Rect(0f, 31f, 300f, 379f), "Entity list is empty — load a save first"); } else { StringWriter stringWriter = new StringWriter(); foreach (Type entity in _EntityList) { Type current = entity; if (((object)(Type)(ref current)).ToString().ToLower().Contains(_searchQuery3.ToLower())) { stringWriter.Write(((object)(Type)(ref current)).ToString()); stringWriter.Write(" : "); stringWriter.WriteLine((int)current); } } _scrollPosition3 = GUILayout.BeginScrollView(_scrollPosition3, Array.Empty()); GUILayout.BeginVertical(new GUIStyle(), Array.Empty()); whiteText.normal.textColor = Color.white; GUILayout.Label(stringWriter.ToString(), whiteText, Array.Empty()); GUILayout.EndVertical(); GUILayout.EndScrollView(); } GUILayout.EndArea(); } private static void SpawnItems(ushort itemDataId, ushort amount) { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) ItemData val = default(ItemData); if (ItemManager.Instance.GetItemData((uint)itemDataId, ref val)) { Item val2 = default(Item); ((Item)(ref val2))..ctor(val); Transform transform = ((Component)PlayerManager.Instance.players[0uL]).transform; for (int i = 0; i < amount; i++) { CollectibleManager.Instance.Spawn(val2, transform.position + Vector3.up + transform.forward, transform.rotation, 0u); } } } } } namespace ModMenu.Patches { [HarmonyPatch(typeof(DirtClean), "Update")] public class DirtClean_UpdatePatch { private static void Postfix(DirtClean __instance) { Traverse.Create((object)__instance).Field("percentToClean").SetValue((object)UIManager.PercentToClean); } } [HarmonyPatch(typeof(PlayerMovement), "Update")] public class PlayerMovement_UpdatePatch { private static void Postfix(PlayerMovement __instance) { Traverse.Create((object)__instance).Method("UpdateNoclipSpeedByHotkey", Array.Empty()).GetValue(); } } } namespace ModMenu.Cheats.Player { public class Cheats { public static bool GodModeEnabled; public static bool NoClipEnabled; public static bool ShopUnlockEnabled; public static bool FreezeTimeEnabled; public static bool NoFallDamageEnabled; public static bool InfiniteJumpEnabled; public static bool InstantDashEnabled; public static bool AlwaysCleanEnabled; private static bool IsInWorld() { if ((Object)(object)PlayerManager.Instance != (Object)null) { return PlayerManager.Instance.isLocalPlayerSpawned; } return false; } public static void ToggleGodMode() { if (!IsInWorld()) { Plugin.Log.LogError((object)"Failed to toggle GodMode, not in a world"); return; } GodModeEnabled = !GodModeEnabled; Game.Instance.God(); } public static void ToggleNoClip() { if (!IsInWorld()) { Plugin.Log.LogError((object)"Failed to toggle NoClip, not in a world"); return; } NoClipEnabled = !NoClipEnabled; Game.Instance.Noclip(); } public static void ToggleShopUnlock() { if (IsInWorld()) { ShopUnlockEnabled = !ShopUnlockEnabled; Game.Instance.ShopUnlockToggle(); } } public static void ToggleFreezeTime() { if (IsInWorld()) { FreezeTimeEnabled = !FreezeTimeEnabled; DayNight.Instance.autoUpdTime = !FreezeTimeEnabled; } } public static void ToggleNoFallDamage() { NoFallDamageEnabled = !NoFallDamageEnabled; if (IsInWorld()) { ApplyNoFallDamage(); } } public static void ToggleInstantDash() { InstantDashEnabled = !InstantDashEnabled; } public static void ToggleAlwaysClean() { AlwaysCleanEnabled = !AlwaysCleanEnabled; } public static void SetTimeOfDay(float hour) { if (IsInWorld()) { DayNight.Instance.dayTime = Mathf.Clamp(hour, 0f, 23.99f); } } public static void AddTime(float hours) { if (IsInWorld()) { DayNight.Instance.AddTime(hours); } } public static void TeleportHome() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) if (IsInWorld()) { PlayerMovement instance = PlayerMovement.Instance; if ((Object)(object)instance != (Object)null) { ((Component)instance).transform.position = Game.tavernCenter + Vector3.up; } } } public static void KillAllEnemies() { if (!IsInWorld()) { return; } Vulnerable[] array = Object.FindObjectsOfType(); int num = 0; Vulnerable[] array2 = array; foreach (Vulnerable val in array2) { if ((Object)(object)val != (Object)null && val.hp.Value > 0 && ((NetworkBehaviour)val).IsSpawned) { try { val.Kill(); num++; } catch { } } } Plugin.Log.LogInfo((object)$"Killed {num} enemies"); } public static void GiveAllTools() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) if (IsInWorld()) { Game.Instance.AddToolsServerRpc(default(ServerRpcParams)); } } public static void SetLevel(int level) { if (IsInWorld() && (Object)(object)GameStatus.Instance != (Object)null) { GameStatus.Instance.level.Value = Mathf.Clamp(level, 1, 99); } } public static void SetMoney(ulong amount) { if (IsInWorld() && (Object)(object)GameStatus.Instance != (Object)null) { GameStatus.Instance.AddMoney(amount); } } public static void SetExp(uint amount) { if (IsInWorld() && (Object)(object)GameStatus.Instance != (Object)null) { GameStatus.Instance.AddExp(amount); } } public static void SpawnBoss() { if (IsInWorld() && (Object)(object)CaveSpawnManager.Instance != (Object)null) { CaveSpawnManager.Instance.SpawnBoss(); } } public static void SpawnCustomer() { if (IsInWorld() && (Object)(object)CustomersManager.Instance != (Object)null) { CustomersManager.Instance.SpawnSingleCustomer(true); } } public static void SpawnCreature(int type) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) if (IsInWorld()) { Transform transform = ((Component)PlayerMovement.Instance).transform; Vector3 val = transform.position + transform.forward * 20f; Spawnable val2 = default(Spawnable); SpawnManager.Instance.ManualSpawn((Type)type, val, Quaternion.identity, ref val2, false); } } public static void CompleteCurrentQuest() { if (IsInWorld() && (Object)(object)QuestManager.Instance != (Object)null) { QuestManager.Instance.CompleteCurrentQuest(); } } public static void UnlockJukeboxTrack(byte id) { if (IsInWorld() && (Object)(object)JukeboxManager.Instance != (Object)null) { JukeboxManager.Instance.UnlockMusicTrack(id); } } public static void EnforceCheats() { if (IsInWorld()) { if (NoFallDamageEnabled) { ApplyNoFallDamage(); } if (InstantDashEnabled && (Object)(object)PlayerMovement.Instance != (Object)null) { Traverse.Create((object)PlayerMovement.Instance).Field("_dashCoolDownTime").SetValue((object)0f); } if (AlwaysCleanEnabled && (Object)(object)GameStatus.Instance != (Object)null) { GameStatus.Instance.cleanliness.Value = 100; } } } private static void ApplyNoFallDamage() { if ((Object)(object)PlayerMovement.Instance != (Object)null) { PlayerMovement.Instance.recievesFallDamage = !NoFallDamageEnabled; } } } }