public static void EnterNewSubMenu(DbgMenuItem menu) { CFG.Save(); menu.RequestTextRefresh(); DbgMenuStack.Push(CurrentMenu); CurrentMenu = menu; }
public static void GoBack() { CFG.Save(); if (DbgMenuStack.Count > 0) { CurrentMenu = DbgMenuStack.Pop(); } }
public override void OnSave(ConfigNode node) { if ((enabled || HighLogic.LoadedSceneIsEditor) && CFG != null) { AllModules.ForEach(m => m.SaveToConfig()); CFG.Save(node.AddNode(VesselConfig.NODE_NAME)); } base.OnSave(node); }
public static void Update(float elapsedSeconds) { var gamepad = DBG.EnableGamePadInput ? GamePad.GetState(0) : DBG.DisabledGamePadState; var keyboard = DBG.EnableKeyboardInput ? Keyboard.GetState() : DBG.DisabledKeyboardState; var mouse = DBG.EnableMouseInput ? Mouse.GetState() : DBG.DisabledMouseState; if (DbgMenuItem.MenuOpenState == DbgMenuOpenState.Open) { Up.Update(gamepad, elapsedSeconds, keyboard.IsKeyDown(Keys.Up)); Down.Update(gamepad, elapsedSeconds, keyboard.IsKeyDown(Keys.Down)); Left.Update(gamepad, elapsedSeconds, keyboard.IsKeyDown(Keys.Left)); Right.Update(gamepad, elapsedSeconds, keyboard.IsKeyDown(Keys.Right)); Enter.Update(gamepad, elapsedSeconds, keyboard.IsKeyDown(Keys.Enter)); Cancel.Update(gamepad, elapsedSeconds, keyboard.IsKeyDown(Keys.Back) || mouse.RightButton == ButtonState.Pressed); ResetDefault.Update(gamepad, elapsedSeconds, keyboard.IsKeyDown(Keys.Home)); PauseRendering.Update(gamepad, elapsedSeconds, keyboard.IsKeyDown(Keys.Pause)); MoveFastHeld = gamepad.IsButtonDown(Buttons.LeftShoulder) || (Main.Active && (keyboard.IsKeyDown(Keys.LeftShift) || keyboard.IsKeyDown(Keys.RightShift))); MoveFasterHeld = gamepad.IsButtonDown(Buttons.X) || (Main.Active && (keyboard.IsKeyDown(Keys.LeftControl) || keyboard.IsKeyDown(Keys.RightControl))); if (gamepad.IsButtonDown(Buttons.RightShoulder)) { var isFast = gamepad.IsButtonDown(Buttons.LeftShoulder); MenuRectMove = gamepad.ThumbSticks.Left * new Vector2(1, -1) * (isFast ? 50 : 12); MenuRectResize = gamepad.ThumbSticks.Right * new Vector2(1, -1) * (isFast ? 50 : 12); } else { MenuRectMove = Vector2.Zero; MenuRectResize = Vector2.Zero; } if (Main.Active) { ClickMouse.Update(gamepad, elapsedSeconds, mouse.LeftButton == ButtonState.Pressed); MiddleClickMouse.Update(gamepad, elapsedSeconds, mouse.MiddleButton == ButtonState.Pressed); MousePos = new Point(mouse.X - TaeInterop.ModelViewerWindowRect.X, mouse.Y - TaeInterop.ModelViewerWindowRect.Y); IsMouseMovedThisFrame = (MousePos != prevMousePos); IsSpacebarHeld = keyboard.IsKeyDown(Keys.Space); float mouseWheel = mouse.ScrollWheelValue; MouseWheelDelta = (mouseWheel - prevMouseWheel); prevMouseWheel = mouseWheel; } } else { MenuRectMove = Vector2.Zero; MenuRectResize = Vector2.Zero; prevMouseWheel = mouse.ScrollWheelValue; } var mouseOver = Main.Active ? DbgMenuItem.DbgMenuTopLeftButtonRect.Contains( new Point(mouse.X - TaeInterop.ModelViewerWindowRect.X, mouse.Y - TaeInterop.ModelViewerWindowRect.Y)) : false; var prevMouseOver = DbgMenuItem.DbgMenuTopLeftButtonRect.Contains(prevMousePos); if (mouseOver) { System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Hand; } else { System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default; } if (ToggleMenu.Update(gamepad, elapsedSeconds, keyboard.IsKeyDown(Keys.OemTilde) || (mouse.LeftButton == ButtonState.Pressed && mouseOver))) { if (DbgMenuItem.MenuOpenState == DbgMenuOpenState.Closed) { DbgMenuItem.MenuOpenState = DbgMenuOpenState.Open; } else if (DbgMenuItem.MenuOpenState == DbgMenuOpenState.Open) { DbgMenuItem.MenuOpenState = DbgMenuOpenState.Visible; } else if (DbgMenuItem.MenuOpenState == DbgMenuOpenState.Visible) { DbgMenuItem.MenuOpenState = DbgMenuOpenState.Closed; } CFG.Save(); } prevMousePos = MousePos; }
public virtual void OnClick() { CFG.Save(); ClickAction?.Invoke(this); }
public static void Init() { CurrentMenu.Text = "Main Menu"; CurrentMenu.Items = new List <DbgMenuItem>() { //new DbgMenuItem() //{ // Text = "<-- TESTING -->", // Items = new List<DbgMenuItem> // { // new DbgMenuItem() // { // Text = "Write TextureFetchRequest.DEBUG_AllKnownDS1Formats to Console", // ClickAction = () => // { // foreach (var f in TextureFetchRequest.DEBUG_AllKnownDS1Formats) // { // Console.WriteLine(f.ToString()); // } // } // } // } //}, new DbgMenuItemSceneList(isModelGroupingKind: false) { Text = "Scene Parts" }, new DbgMenuItemSceneList(isModelGroupingKind: true) { Text = "Scene Models" }, new DbgMenuItem() { Text = "Click to remove all debug primitives", ClickAction = (m) => DBG.ClearPrimitives() }, new DbgMenuItem() { Text = "Game Data", Items = new List <DbgMenuItem> { new DbgMenuItemTextLabel(() => $"Data Root: \"{InterrootLoader.Interroot}\"\n [Click to Browse...]") { ClickAction = (m) => { InterrootLoader.Browse(); CurrentMenu.RequestTextRefresh(); } }, new DbgMenuItemEnum <InterrootLoader.InterrootType>("Game Type", v => { InterrootLoader.Type = v; CFG.Save(); }, () => InterrootLoader.Type, nameOverrides: new Dictionary <InterrootLoader.InterrootType, string> { { InterrootLoader.InterrootType.InterrootBloodborne, "Bloodborne" }, { InterrootLoader.InterrootType.InterrootDS1, "Dark Souls" }, { InterrootLoader.InterrootType.InterrootDS1R, "Dark Souls Remastered" }, // { InterrootLoader.InterrootType.InterrootDS2, "Dark Souls II" }, { InterrootLoader.InterrootType.InterrootDS3, "Dark Souls III" }, } ), new DbgMenuItem() { Text = "Refresh Spawn Lists", ClickAction = m => { DbgMenuItemSpawnChr.UpdateSpawnIDs(); DbgMenuItemSpawnObj.UpdateSpawnIDs(); DbgMenuItemSpawnMap.UpdateSpawnIDs(); } }, new DbgMenuItemTaskKiller() { Text = "[LOAD TASK KILLER]" }, new DbgMenuItem() { Text = "Scan All Separate Texture Files (DS1 Only)", ClickAction = (m) => { TexturePool.AddAllExternalDS1TexturesInBackground(); } }, new DbgMenuItem() { Text = "Purge Texture Cache", ClickAction = (m) => { TexturePool.Flush(); } }, new DbgMenuItem() { Text = "[CLICK TO CLEAR SCENE MODELS]", ClickAction = (m) => GFX.ModelDrawer.ClearScene() }, new DbgMenuItem() { Text = "[CLICK TO CLEAR SCENE REGIONS]", ClickAction = (m) => DBG.ClearPrimitives() }, new DbgMenuItemSpawnChr() { CustomColorFunction = () => Color.Cyan }, new DbgMenuItemSpawnObj() { CustomColorFunction = () => Color.Cyan }, new DbgMenuItemSpawnMap(isRegionSpawner: false), new DbgMenuItemSpawnMap(isRegionSpawner: true) { CustomColorFunction = () => Color.Cyan }, new DbgMenuItem() { Text = "Load All Characters Lineup", ClickAction = (m) => GFX.ModelDrawer.TestAddAllChr(), CustomColorFunction = () => LoadingTaskMan.IsTaskRunning($"{nameof(GFX.ModelDrawer.TestAddAllChr)}") ? Color.Cyan * 0.5f : Color.Cyan }, new DbgMenuItem() { Text = "Load All Objects Lineup", ClickAction = (m) => GFX.ModelDrawer.TestAddAllObj(), CustomColorFunction = () => LoadingTaskMan.IsTaskRunning($"{nameof(GFX.ModelDrawer.TestAddAllObj)}") ? Color.Cyan * 0.5f : Color.Cyan }, } }, //new DbgMenuItem() //{ // Text = "[DIAGNOSTICS]", // Items = new List<DbgMenuItem> // { // new DbgMenuItem() // { // Text = $"Log {nameof(InterrootLoader)}.{nameof(InterrootLoader.DDS_INFO)}", // ClickAction = () => // { // foreach (var x in InterrootLoader.DDS_INFO) // { // Console.WriteLine($"{x.Name} - {x.DDSFormat}"); // } // } // } // } //}, new DbgMenuItem() { Text = "General Options", Items = new List <DbgMenuItem> { new DbgMenuItemGfxFlverShaderAdjust(), //new DbgMenuItemGfxBlendStateAdjust(), //new DbgMenuItemGfxDepthStencilStateAdjust(), new DbgMenuItemEnum <LODMode>("LOD Mode", v => GFX.LODMode = v, () => GFX.LODMode, nameOverrides: new Dictionary <LODMode, string> { { LODMode.ForceFullRes, "Force Full Resolution" }, { LODMode.ForceLOD1, "Force LOD Level 1" }, { LODMode.ForceLOD2, "Force LOD Level 2" }, }), new DbgMenuItemNumber("LOD1 Distance", 0, 10000, 1, (f) => GFX.LOD1Distance = f, () => GFX.LOD1Distance), new DbgMenuItemNumber("LOD2 Distance", 0, 10000, 1, (f) => GFX.LOD2Distance = f, () => GFX.LOD2Distance), new DbgMenuItemBool("Show Map Region Names", "YES", "NO", (b) => DBG.ShowPrimitiveNametags = b, () => DBG.ShowPrimitiveNametags), new DbgMenuItemBool("Show Model Names", "YES", "NO", (b) => DBG.ShowModelNames = b, () => DBG.ShowModelNames), new DbgMenuItemBool("Show Model Bounding Boxes", "YES", "NO", (b) => DBG.ShowModelBoundingBoxes = b, () => DBG.ShowModelBoundingBoxes), new DbgMenuItemBool("Show Model Submesh Bounding Boxes", "YES", "NO", (b) => DBG.ShowModelSubmeshBoundingBoxes = b, () => DBG.ShowModelSubmeshBoundingBoxes), new DbgMenuItemBool("Show Grid", "YES", "NO", (b) => DBG.ShowGrid = b, () => DBG.ShowGrid), new DbgMenuItemBool("Textures", "ON", "OFF", (b) => GFX.EnableTextures = b, () => GFX.EnableTextures), new DbgMenuItemBool("Wireframe Mode", "ON", "OFF", (b) => GFX.Wireframe = b, () => GFX.Wireframe), new DbgMenuItemBool("View Frustum Culling (Experimental)", "ON", "OFF", (b) => GFX.EnableFrustumCulling = b, () => GFX.EnableFrustumCulling), new DbgMenuItemNumber("Vertical Field of View (Degrees)", 20, 150, 1, (f) => GFX.World.FieldOfView = f, () => GFX.World.FieldOfView, (f) => $"{((int)(Math.Round(f)))}"), new DbgMenuItemNumber("Camera Turn Speed (Gamepad)", 0.01f, 10f, 0.01f, (f) => GFX.World.CameraTurnSpeedGamepad = f, () => GFX.World.CameraTurnSpeedGamepad), new DbgMenuItemNumber("Camera Turn Speed (Mouse)", 0.001f, 10f, 0.001f, (f) => GFX.World.CameraTurnSpeedMouse = f, () => GFX.World.CameraTurnSpeedMouse), new DbgMenuItemNumber("Camera Move Speed", 0.1f, 100f, 0.1f, (f) => GFX.World.CameraMoveSpeed = f, () => GFX.World.CameraMoveSpeed), new DbgMenuItemNumber("Near Clip Distance", 0.0001f, 5, 0.0001f, (f) => GFX.World.NearClipDistance = f, () => GFX.World.NearClipDistance), new DbgMenuItemNumber("Far Clip Distance", 100, 1000000, 100, (f) => GFX.World.FarClipDistance = f, () => GFX.World.FarClipDistance), } }, new DbgMenuItem() { Text = "Graphics Options", Items = new List <DbgMenuItem> { new DbgMenuItemResolutionChange(), new DbgMenuItemBool("Fullscreen", "YES", "NO", v => GFX.Display.Fullscreen = v, () => GFX.Display.Fullscreen), new DbgMenuItemBool("Vsync", "ON", "OFF", v => GFX.Display.Vsync = v, () => GFX.Display.Vsync), new DbgMenuItemBool("Simple MSAA", "ON", "OFF", v => GFX.Display.SimpleMSAA = v, () => GFX.Display.SimpleMSAA), new DbgMenuItem() { Text = "Apply Changes", ClickAction = (m) => GFX.Display.Apply(), } } }, new DbgMenuItem() { Text = "Return Camera to Origin", ClickAction = m => GFX.World.ResetCameraLocation() }, new DbgMenuItem() { Text = "Help", Items = new List <DbgMenuItem> { new DbgMenuItem() { Text = "Menu Overlay Controls (Gamepad)", Items = new List <DbgMenuItem> { new DbgMenuItem() { Text = "Back: Toggle Menu (Active/Visible/Hidden)" }, new DbgMenuItem() { Text = "D-Pad Up/Down: Move Cursor Up/Down" }, new DbgMenuItem() { Text = "A: Enter/Activate (when applicable)" }, new DbgMenuItem() { Text = "B: Go Back (when applicable)" }, new DbgMenuItem() { Text = "D-Pad Left/Right: Decrease/Increase" }, new DbgMenuItem() { Text = "Start: Reset Value to Default" }, new DbgMenuItem() { Text = "Hold LB: Increase/Decrease 10x Faster" }, new DbgMenuItem() { Text = "Hold X: Increase/Decrease 100x Faster" }, new DbgMenuItem() { Text = "Hold RB + Move LS: Move Menu" }, new DbgMenuItem() { Text = "Hold RB + Move RS: Resize Menu" }, new DbgMenuItem() { Text = "Hold LB + Move or Resize Menu: Move or Resize Menu Faster" }, new DbgMenuItem() { Text = "Click RS: Toggle 3D Render Pause" }, } }, new DbgMenuItem() { Text = "General 3D Controls (Gamepad)", Items = new List <DbgMenuItem> { new DbgMenuItem() { Text = "LS: Move Camera Laterally" }, new DbgMenuItem() { Text = "LT: Move Camera Directly Downward" }, new DbgMenuItem() { Text = "RT: Move Camera Directly Upward" }, new DbgMenuItem() { Text = "RS: Turn Camera" }, new DbgMenuItem() { Text = "Hold LB: Move Camera More Slowly" }, new DbgMenuItem() { Text = "Hold RB: Move Camera More Quickly" }, new DbgMenuItem() { Text = "Click LS and Hold: Turn Light With RS Instead of Camera" }, new DbgMenuItem() { Text = "Click RS: Reset Camera To Origin" }, } }, new DbgMenuItem() { Text = "Menu Overlay Controls (Mouse & Keyboard)", Items = new List <DbgMenuItem> { new DbgMenuItem() { Text = "Tilde (~): Toggle Menu (Active/Visible/Hidden)" }, new DbgMenuItem() { Text = "Move Mouse Cursor: Move Cursor" }, new DbgMenuItem() { Text = "Hold Spacebar + Scroll Mouse Wheel: Change Values" }, new DbgMenuItem() { Text = "Mouse Wheel: Scroll Menu" }, new DbgMenuItem() { Text = "Enter/Left Click: Enter/Activate (when applicable)" }, new DbgMenuItem() { Text = "Backspace/Right Click: Go Back (when applicable)" }, new DbgMenuItem() { Text = "Up/Down: Move Cursor Up/Down" }, new DbgMenuItem() { Text = "Left/Right: Decrease/Increase" }, new DbgMenuItem() { Text = "Home/Middle Click: Reset Value to Default" }, new DbgMenuItem() { Text = "Hold Shift: Increase/Decrease 10x Faster" }, new DbgMenuItem() { Text = "Hold Ctrl: Increase/Decrease 100x Faster" }, new DbgMenuItem() { Text = "Pause Key: Toggle 3D Render Pause" }, } }, new DbgMenuItem() { Text = "General 3D Controls (Mouse & Keyboard)", Items = new List <DbgMenuItem> { new DbgMenuItem() { Text = "WASD: Move Camera Laterally" }, new DbgMenuItem() { Text = "Q: Move Camera Directly Downward" }, new DbgMenuItem() { Text = "E: Move Camera Directly Upward" }, new DbgMenuItem() { Text = "Right Click + Move Mouse: Turn Camera" }, new DbgMenuItem() { Text = "Hold Shift: Move Camera More Slowly" }, new DbgMenuItem() { Text = "Hold Ctrl: Move Camera More Quickly" }, new DbgMenuItem() { Text = "Hold Spacebar: Turn Light With Mouse Instead of Camera" }, new DbgMenuItem() { Text = "R: Reset Camera To Origin" }, } }, } }, new DbgMenuItem() { Text = "Exit", Items = new List <DbgMenuItem> { new DbgMenuItem() { Text = "Are you sure you want to exit?" }, new DbgMenuItem() { Text = "No", ClickAction = (m) => REQUEST_GO_BACK = true }, new DbgMenuItem() { Text = "Yes", ClickAction = (m) => Main.REQUEST_EXIT = true } } }, }; }
public static void ApplySettings() { CFG config = new CFG(Path.Combine(Config.Instance.ClientPath, CONFIG_PATH)); config.Set("General", "WindowMode", "1"); config.Set("General", "Width", "1024"); config.Set("General", "Height", "768"); config.Set("General", "Colors", "32"); config.Set("General", "RelativeTeamColors", "1"); config.Set("General", "UserSetResolution", "1"); config.Set("General", "Antialiasing", "0"); config.Set("General", "AutoAcquireTarget", "1"); config.Set("Performance", "GraphicsSlider", "6"); config.Set("Performance", "ShadowsEnabled", "1"); config.Set("Performance", "CharacterInking", "1"); config.Set("Performance", "EnableHUDAnimations", "0"); config.Set("Performance", "EnableParticleOptimizations", "0"); config.Set("Performance", "BudgetOverdrawAverage", "10"); config.Set("Performance", "BudgetSkinnedVertexCount", "200000"); config.Set("Performance", "BudgetSkinnedDrawCallCount", "100"); config.Set("Performance", "BudgetTextureUsage", "150000"); config.Set("Performance", "BudgetVertexCount", "500000"); config.Set("Performance", "BudgetTriangleCount", "300000"); config.Set("Performance", "BudgetDrawCallCount", "1000"); config.Set("Performance", "EnableGrassSwaying", "1"); config.Set("Performance", "EnableFXAA", "1"); config.Set("Performance", "FrameCapType", "8"); config.Set("Performance", "ShadowQuality", "4"); config.Set("Performance", "EffectsQuality", "4"); config.Set("Performance", "EnvironmentQuality", "4"); config.Set("Performance", "CharacterQuality", "4"); config.Set("Performance", "AutoPerformanceSettings", "1"); config.Set("HUD", "ShowTimestamps", "0"); config.Set("HUD", "ShowNeutralCamps", "1"); config.Set("HUD", "ObjectTooltips", "1"); config.Set("HUD", "MinimapMoveSelf", "1"); config.Set("HUD", "DrawHealthBars", "1"); config.Set("HUD", "ChatScale", "100"); config.Set("HUD", "AutoDisplayTarget", "1"); config.Set("HUD", "FlashScreenWhenStunned", "1"); config.Set("HUD", "FlashScreenWhenDamaged", "1"); config.Set("HUD", "ShowPlayerPerks", "0"); config.Set("HUD", "ShowPlayerStats", "1"); config.Set("HUD", "ShowAllChannelChatSpectator", "0"); config.Set("HUD", "GlobalScaleReplay", "1.0000"); config.Set("HUD", "ReplayScrollSmoothingEnabled", "0"); config.Set("HUD", "ReplayMiddleMouseScrollSpeed", "0.5000"); config.Set("HUD", "ItemShopPrevY", "0"); config.Set("HUD", "ItemShopPrevX", "15"); config.Set("HUD", "ItemShopResizeHeight", "76"); config.Set("HUD", "ItemShopResizeWidth", "260"); config.Set("HUD", "ItemShopPrevResizeHeight", "1080"); config.Set("HUD", "ItemShopPrevResizeWidth", "1920"); config.Set("HUD", "ShowAlliedChat", "1"); config.Set("HUD", "ShowAllChannelChat", "1"); config.Set("HUD", "GlobalScale", "1.0000"); config.Set("HUD", "MinimapScale", "1.0000"); config.Set("HUD", "DeathRecapScale", "1.0000"); config.Set("HUD", "PracticeToolScale", "1.0000"); config.Set("HUD", "ItemShopItemDisplayMode", "0"); config.Set("HUD", "ItemShopStartPane", "1"); config.Set("HUD", "DisableMouseCaptureDebugger", "0"); config.Set("HUD", "ShowSpellCosts", "0"); config.Set("HUD", "NameTagDisplay", "1"); config.Set("HUD", "ShowChampionIndicator", "0"); config.Set("HUD", "ShowSummonerNames", "1"); config.Set("HUD", "CameraLockMode", "0"); config.Set("HUD", "MiddleClickDragScrollEnabled", "0"); config.Set("HUD", "ScrollSmoothingEnabled", "0"); config.Set("HUD", "KeyboardScrollSpeed", "0.0000"); config.Set("HUD", "MiddleMouseScrollSpeed", "0.5000"); config.Set("HUD", "MapScrollSpeed", "0.5000"); config.Set("HUD", "ShowAttackRadius", "1"); config.Set("HUD", "NumericCooldownFormat", "1"); config.Set("HUD", "EternalsMilestoneDisplayMode", "0"); config.Set("HUD", "HideEnemySummonerEmotes", "0"); config.Set("HUD", "DisableHudSpellClick", "0"); config.Set("HUD", "SmartCastWithIndicator_CastWhenNewSpellSelected", "0"); config.Set("HUD", "SmartCastOnKeyRelease", "0"); config.Set("HUD", "EnableLineMissileVis", "1"); config.Set("HUD", "ShowSummonerNamesInScoreboard", "0"); config.Set("HUD", "MirroredScoreboard", "0"); config.Set("HUD", "ShowTeamFramesOnLeft", "0"); config.Set("HUD", "FlipMiniMap", "0"); config.Set("Chat", "Transparency", "0.0000"); config.Set("Chat", "ChatY", "0"); config.Set("Chat", "ChatX", "0"); config.Set("Chat", "EnableChatFilter", "1"); config.Set("Accessibility", "ColorContrast", "0.5000"); config.Set("Accessibility", "ColorBrightness", "0.5000"); config.Set("Accessibility", "ColorGamma", "0.5000"); config.Set("Accessibility", "ColorLevel", "0.5000"); config.Save(); CMDOutput.Write("League Of Legends settings applied.", CMDMessage.info2); CFG file = new CFG(Path.Combine(Config.Instance.ClientPath, KEYCONFIG_PATH)); file.Set("GameEvents", "evtSelectSelf", "[F1]"); file.Set("GameEvents", "evtSelectAlly4", "[F5]"); file.Set("GameEvents", "evtSelectAlly3", "[F4]"); file.Set("GameEvents", "evtSelectAlly2", "[F3]"); file.Set("GameEvents", "evtSelectAlly1", "[F2]"); file.Set("GameEvents", "evtCastSpell1", "[1]"); file.Set("GameEvents", "evtCastSpell2", "[2]"); file.Set("GameEvents", "evtCastSpell3", "[3]"); file.Set("GameEvents", "evtCastSpell4", "[4]"); file.Set("GameEvents", "evtUseItem1", "[q]"); file.Set("GameEvents", "evtUseItem2", "[w]"); file.Set("GameEvents", "evtUseItem3", "[e]"); file.Save(); string target = Path.Combine(Config.Instance.ClientPath, PERSISTED_CONFIG_PATH); File.Copy("PersistedSettings.json", target, true); }