Noita Save Manager
unknown
autohotkey
5 months ago
44 kB
73
No Index
;Noita Save Manager is forked from Save and Load Slots by yamanato https://modworkshop.net/mod/33603 which was forked from Noita Quick Save by Snippy (2) https://modworkshop.net/mod/26537 ;Whats new: 50 Save Slots instead of 5, Record Save Dates and Time, Rename Save Slots, Delete Save Slots, Customizable Hotkeys, Enable Noita's Replay Recorder, Open Saves & Replay Directories, Regenerate World Terrain, Clear Bones Folder, Reset Daily Run ;Note: This will create a NoitaSaveManager.ini file in the same directory as Noita Save Manager ;Created 26 April, 2024 by Toveri | Updated 26 September, 2024 #SingleInstance Force #IfWinActive, ahk_exe noita.exe global currentslot = "" global Slot1 = "Slot 1 (No Save)" global Slot2 = "Slot 2 (No Save)" global Slot3 = "Slot 3 (No Save)" global Slot4 = "Slot 4 (No Save)" global Slot5 = "Slot 5 (No Save)" global Slot6 = "Slot 6 (No Save)" global Slot7 = "Slot 7 (No Save)" global Slot8 = "Slot 8 (No Save)" global Slot9 = "Slot 9 (No Save)" global Slot10 = "Slot 10 (No Save)" global Slot11 = "Slot 11 (No Save)" global Slot12 = "Slot 12 (No Save)" global Slot13 = "Slot 13 (No Save)" global Slot14 = "Slot 14 (No Save)" global Slot15 = "Slot 15 (No Save)" global Slot16 = "Slot 16 (No Save)" global Slot17 = "Slot 17 (No Save)" global Slot18 = "Slot 18 (No Save)" global Slot19 = "Slot 19 (No Save)" global Slot20 = "Slot 20 (No Save)" global Slot21 = "Slot 21 (No Save)" global Slot22 = "Slot 22 (No Save)" global Slot23 = "Slot 23 (No Save)" global Slot24 = "Slot 24 (No Save)" global Slot25 = "Slot 25 (No Save)" global Slot26 = "Slot 26 (No Save)" global Slot27 = "Slot 27 (No Save)" global Slot28 = "Slot 28 (No Save)" global Slot29 = "Slot 29 (No Save)" global Slot30 = "Slot 30 (No Save)" global Slot31 = "Slot 31 (No Save)" global Slot32 = "Slot 32 (No Save)" global Slot33 = "Slot 33 (No Save)" global Slot34 = "Slot 34 (No Save)" global Slot35 = "Slot 35 (No Save)" global Slot36 = "Slot 36 (No Save)" global Slot37 = "Slot 37 (No Save)" global Slot38 = "Slot 38 (No Save)" global Slot39 = "Slot 39 (No Save)" global Slot40 = "Slot 40 (No Save)" global Slot41 = "Slot 41 (No Save)" global Slot42 = "Slot 42 (No Save)" global Slot43 = "Slot 43 (No Save)" global Slot44 = "Slot 44 (No Save)" global Slot45 = "Slot 45 (No Save)" global Slot46 = "Slot 46 (No Save)" global Slot47 = "Slot 47 (No Save)" global Slot48 = "Slot 48 (No Save)" global Slot49 = "Slot 49 (No Save)" global Slot50 = "Slot 50 (No Save)" global Slot1Name = "Slot 1" global Slot2Name = "Slot 2" global Slot3Name = "Slot 3" global Slot4Name = "Slot 4" global Slot5Name = "Slot 5" global Slot6Name = "Slot 6" global Slot7Name = "Slot 7" global Slot8Name = "Slot 8" global Slot9Name = "Slot 9" global Slot10Name = "Slot 10" global Slot11Name = "Slot 11" global Slot12Name = "Slot 12" global Slot13Name = "Slot 13" global Slot14Name = "Slot 14" global Slot15Name = "Slot 15" global Slot16Name = "Slot 16" global Slot17Name = "Slot 17" global Slot18Name = "Slot 18" global Slot19Name = "Slot 19" global Slot20Name = "Slot 20" global Slot21Name = "Slot 21" global Slot22Name = "Slot 22" global Slot23Name = "Slot 23" global Slot24Name = "Slot 24" global Slot25Name = "Slot 25" global Slot26Name = "Slot 26" global Slot27Name = "Slot 27" global Slot28Name = "Slot 28" global Slot29Name = "Slot 29" global Slot30Name = "Slot 30" global Slot31Name = "Slot 31" global Slot32Name = "Slot 32" global Slot33Name = "Slot 33" global Slot34Name = "Slot 34" global Slot35Name = "Slot 35" global Slot36Name = "Slot 36" global Slot37Name = "Slot 37" global Slot38Name = "Slot 38" global Slot39Name = "Slot 39" global Slot40Name = "Slot 40" global Slot41Name = "Slot 41" global Slot42Name = "Slot 42" global Slot43Name = "Slot 43" global Slot44Name = "Slot 44" global Slot45Name = "Slot 45" global Slot46Name = "Slot 46" global Slot47Name = "Slot 47" global Slot48Name = "Slot 48" global Slot49Name = "Slot 49" global Slot50Name = "Slot 50" global CUSTOM_SAVELOAD_HOTKEY = F5 global CUSTOM_EXIT_HOTKEY = ESC global ihasEnabledReplayRecorder = 0 LoadData() SaveData() LoadData() CreateGUI() return SaveGame: CurrentDate = % A_DD . " " . A_MMMM . " " . A_YYYY FormatTime, CurrentTime,, Time global DateTime = CurrentDate " @ " CurrentTime slot_number := Gui SaveLoadGui:Submit, slot_number currentslot = %slot_number% Gui +LastFound +OwnDialogs +AlwaysOnTop Msgbox, 4,Noita Save Manager, This will overwrite the save in Slot %currentslot% - Continue? IfMsgBox No SkipSave = 1 else SaveData() Process, WaitClose, noita.exe if(SkipSave = 0){ EnvGet, saveDir, AppData saveDir := StrReplace(saveDir, "Roaming", "LocalLow\Nolla_Games_Noita\save00") FileCopyDir, %saveDir%, %saveDir%\..\save_backup_%slot_number% , true }SkipSave = 0 Run, %executablePath%, %executableDir% return LoadGame: slot_number := Gui SaveLoadGui:Submit, slot_number LoadData() Process, Close, noita.exe EnvGet, saveDir, AppData saveDir := StrReplace(saveDir, "Roaming", "LocalLow\Nolla_Games_Noita\save00") IfExist , %saveDir%\..\save_backup_%slot_number% FileCopyDir, %saveDir%\..\save_backup_%slot_number%, %saveDir%, true Else Msgbox, 0,Noita Save Manager, Save slot is empty, The game will resume last session. Run, %executablePath%, %executableDir% return RenameSlot: slot_number := Gui SaveLoadGui:Submit, slot_number currentslot = %slot_number% RenameSlot() Run, %executablePath%, %executableDir% return ChangeHotkeys: Run, %A_ScriptDir%\NoitaSaveManager.ini return OpenSaveDirectory: EnvGet, saveDir2, AppData saveDir2 := StrReplace(saveDir2, "Roaming", "LocalLow\Nolla_Games_Noita\") Run, %saveDir2% return OpenReplaysDirectory: EnvGet, saveDir2, AppData saveDir2 := StrReplace(saveDir2, "Roaming", "LocalLow\Nolla_Games_Noita\save_rec\screenshots_animated") Run, %saveDir2% return DeleteSelectedBackupSlot: slot_number := Gui SaveLoadGui:Submit, slot_number currentslot = %slot_number% DeleteSlot() LoadData() Run, %executablePath%, %executableDir% return EnableReplayRecorder: if(ihasEnabledReplayRecorder == 0){ Msgbox, 4,Noita Save Manager, This will enable Noita's built-in Replay Recorder - Continue? IfMsgBox No return else EnvGet, saveDir2, AppData saveDir2 := StrReplace(saveDir2, "Roaming", "LocalLow\Nolla_Games_Noita\save_shared\config.xml") FileRead, Var1, %saveDir2% StringReplace, Var2, Var1, replay_recorder_enabled="0", replay_recorder_enabled="1", All FileDelete, %saveDir2% FileAppend, %Var2%, %saveDir2% Gui SaveLoadGui:Cancel ihasEnabledReplayRecorder = 1 IniRead, hasEnabledReplayRecorder, NoitaSaveManager.ini, Settings, hasEnabledReplayRecorder, 0 Loop, 1 { hasEnabledReplayRecorder = %ihasEnabledReplayRecorder% } IniWrite, %ihasEnabledReplayRecorder%, NoitaSaveManager.ini, Settings, hasEnabledReplayRecorder Run, %executablePath%, %executableDir% }else{ return } return ResetWorldGeneration: Msgbox, 4,Noita Save Manager, This will clear all saved terrain chunks for your save - Continue? IfMsgBox No return else EnvGet, saveDir2, AppData saveDir2 := StrReplace(saveDir2, "Roaming", "LocalLow\Nolla_Games_Noita\save00\world") Loop, Files, %saveDir2%\*.* { FileDelete, %saveDir2%\*.bin FileDelete, %saveDir2%\*.png_petri FileDelete, %saveDir2%\*.autosave FileDelete, %saveDir2%\*.autosave_player FileDelete, %saveDir2%\*.autosave_world_state FileDelete, %saveDir2%\*.autosave_world_pixel_scenes } Gui SaveLoadGui:Cancel Run, %executablePath%, %executableDir% return ClearBonesFolder: Msgbox, 4,Noita Save Manager, This will clear the bones (player ghost) folder for your save - Continue? IfMsgBox No return else EnvGet, saveDir2, AppData saveDir2 := StrReplace(saveDir2, "Roaming", "LocalLow\Nolla_Games_Noita\save00\persistent\bones_new") Loop, Files, %saveDir2%\*.* { FileDelete, %saveDir2%\*.xml } Gui SaveLoadGui:Cancel Run, %executablePath%, %executableDir% return ResetDailyRun: EnvGet, saveDir2, AppData saveDir2 := StrReplace(saveDir2, "Roaming", "LocalLow\Nolla_Games_Noita\save00\stats\_last_daily_run_played.xml") IfExist , %saveDir2% FileDelete, %saveDir2% Gui SaveLoadGui:Cancel Run, %executablePath%, %executableDir% return Cancel: slot_number := Gui SaveLoadGui:Cancel LoadData() Gui +LastFound +OwnDialogs +AlwaysOnTop Msgbox, 0,Noita Save Manager, Cancelled operation, The game will resume last session. Run, %executablePath%, %executableDir% return ExitSaveManager: Msgbox, 4,Noita Save Manager, This will close Noita Save Manager - Continue? IfMsgBox No return else ExitApp SAVELOAD_HOTKEY: global GUIstarted = 1 SkipSave = 0 LoadData() WinGet, executablePath, ProcessPath, ahk_exe noita.exe executableDir := RTrim(executablePath, "noita.exe") Send, !{F4} CreateGUI() Gui SaveLoadGui:Show Return EXIT_HOTKEY: Msgbox, 4,Noita Save Manager, This will close Noita Save Manager - Continue? IfMsgBox No return else ExitApp CreateGUI() { Gui, SaveLoadGUI:Destroy Gui, SaveLoadGUI:Cancel Gui, SaveLoadGui:Add, ListBox, w300 r20 vslot_number AltSubmit, %Slot1%|%Slot2%|%Slot3%|%Slot4%|%Slot5%|%Slot6%|%Slot7%|%Slot8%|%Slot9%|%Slot10%|%Slot11%|%Slot12%|%Slot13%|%Slot14%|%Slot15%|%Slot16%|%Slot17%|%Slot18%|%Slot19%|%Slot20%|%Slot21%|%Slot22%|%Slot23%|%Slot24%|%Slot25%|%Slot26%|%Slot27%|%Slot28%|%Slot29%|%Slot30%|%Slot31%|%Slot32%|%Slot33%|%Slot34%|%Slot35%|%Slot36%|%Slot37%|%Slot38%|%Slot39%|%Slot40%|%Slot41%|%Slot42%|%Slot43%|%Slot44%|%Slot45%|%Slot46%|%Slot47%|%Slot48%|%Slot49%|%Slot50% Gui, SaveLoadGui:Add, Button, gSaveGame, Save Game Gui, SaveLoadGui:Add, Button, gLoadGame, Load Game Gui, SaveLoadGui:Add, Button, gRenameSlot, Rename Selected Slot Gui, SaveLoadGui:Add, Button, gDeleteSelectedBackupSlot, Delete Selected Slot Gui, SaveLoadGui:Add, Button, gChangeHotkeys, Change Hotkeys Gui, SaveLoadGui:Add, Button, gOpenSaveDirectory, Open Save Directory if(ihasEnabledReplayRecorder = 0){ Gui, SaveLoadGui:Add, Button, gEnableReplayRecorder, Enable Replay Recorder }else{ Gui, SaveLoadGui:Add, Button, gOpenReplaysDirectory, Open Replays Directory } Gui, SaveLoadGui:Add, Button, gResetWorldGeneration, Reset World Generation Gui, SaveLoadGui:Add, Button, gClearBonesFolder, Clear Bones Folder Gui, SaveLoadGui:Add, Button, gResetDailyRun, Reset Daily Run Gui, SaveLoadGui:Add, Button, gCancel, Cancel Gui, SaveLoadGui:Add, Button, gExitSaveManager, Exit Save Manager } RenameSlot() { global StoredName = "" if(currentslot == 0 || currentslot == "") { Gui +LastFound +OwnDialogs +AlwaysOnTop Msgbox, 0, Noita Save Manager, Save slot not selected, The game will resume last session. return } if(currentslot == 1) { StoredName = %Slot1Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot1Name, Noita Save Manager, Renaming Slot 1 - '%Slot1Name%', , 220, 130 if ErrorLevel Slot1Name = %StoredName% } if(currentslot == 2) { StoredName = %Slot2Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot2Name, Noita Save Manager, Renaming Slot 2 - '%Slot2Name%', , 220, 130 if ErrorLevel Slot2Name = %StoredName% } if(currentslot == 3) { StoredName = %Slot3Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot3Name, Noita Save Manager, Renaming Slot 3 - '%Slot3Name%', , 220, 130 if ErrorLevel Slot3Name = %StoredName% } if(currentslot == 4) { StoredName = %Slot4Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot4Name, Noita Save Manager, Renaming Slot 4 - '%Slot4Name%', , 220, 130 if ErrorLevel Slot4Name = %StoredName% } if(currentslot == 5) { StoredName = %Slot5Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot5Name, Noita Save Manager, Renaming Slot 5 - '%Slot5Name%', , 220, 130 if ErrorLevel Slot5Name = %StoredName% } if(currentslot == 6) { StoredName = %Slot6Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot6Name, Noita Save Manager, Renaming Slot 6 - '%Slot6Name%', , 220, 130 if ErrorLevel Slot6Name = %StoredName% } if(currentslot == 7) { StoredName = %Slot7Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot7Name, Noita Save Manager, Renaming Slot 7 - '%Slot7Name%', , 220, 130 if ErrorLevel Slot7Name = %StoredName% } if(currentslot == 8) { StoredName = %Slot8Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot8Name, Noita Save Manager, Renaming Slot 8 - '%Slot8Name%', , 220, 130 if ErrorLevel Slot8Name = %StoredName% } if(currentslot == 9) { StoredName = %Slot9Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot9Name, Noita Save Manager, Renaming Slot 9 - '%Slot9Name%', , 220, 130 if ErrorLevel Slot9Name = %StoredName% } if(currentslot == 10) { StoredName = %Slot10Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot10Name, Noita Save Manager, Renaming Slot 10 - '%Slot10Name%', , 220, 130 if ErrorLevel Slot10Name = %StoredName% } if(currentslot == 11) { StoredName = %Slot11Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot11Name, Noita Save Manager, Renaming Slot 11 - '%Slot11Name%', , 220, 130 if ErrorLevel Slot11Name = %StoredName% } if(currentslot == 12) { StoredName = %Slot12Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot12Name, Noita Save Manager, Renaming Slot 12 - '%Slot12Name%', , 220, 130 if ErrorLevel Slot12Name = %StoredName% } if(currentslot == 13) { StoredName = %Slot13Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot13Name, Noita Save Manager, Renaming Slot 13 - '%Slot13Name%', , 220, 130 if ErrorLevel Slot13Name = %StoredName% } if(currentslot == 14) { StoredName = %Slot14Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot14Name, Noita Save Manager, Renaming Slot 14 - '%Slot14Name%', , 220, 130 if ErrorLevel Slot14Name = %StoredName% } if(currentslot == 15) { StoredName = %Slot15Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot15Name, Noita Save Manager, Renaming Slot 15 - '%Slot15Name%', , 220, 130 if ErrorLevel Slot15Name = %StoredName% } if(currentslot == 16) { StoredName = %Slot16Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot16Name, Noita Save Manager, Renaming Slot 16 - '%Slot16Name%', , 220, 130 if ErrorLevel Slot16Name = %StoredName% } if(currentslot == 17) { StoredName = %Slot17Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot17Name, Noita Save Manager, Renaming Slot 17 - '%Slot17Name%', , 220, 130 if ErrorLevel Slot17Name = %StoredName% } if(currentslot == 18) { StoredName = %Slot18Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot18Name, Noita Save Manager, Renaming Slot 18 - '%Slot18Name%', , 220, 130 if ErrorLevel Slot18Name = %StoredName% } if(currentslot == 19) { StoredName = %Slot19Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot19Name, Noita Save Manager, Renaming Slot 19 - '%Slot19Name%', , 220, 130 if ErrorLevel Slot19Name = %StoredName% } if(currentslot == 20) { StoredName = %Slot20Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot20Name, Noita Save Manager, Renaming Slot 20 - '%Slot20Name%', , 220, 130 if ErrorLevel Slot20Name = %StoredName% } if(currentslot == 21) { StoredName = %Slot21Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot21Name, Noita Save Manager, Renaming Slot 21 - '%Slot21Name%', , 220, 130 if ErrorLevel Slot21Name = %StoredName% } if(currentslot == 22) { StoredName = %Slot22Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot22Name, Noita Save Manager, Renaming Slot 22 - '%Slot22Name%', , 220, 130 if ErrorLevel Slot22Name = %StoredName% } if(currentslot == 23) { StoredName = %Slot23Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot23Name, Noita Save Manager, Renaming Slot 23 - '%Slot23Name%', , 220, 130 if ErrorLevel Slot23Name = %StoredName% } if(currentslot == 24) { StoredName = %Slot24Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot24Name, Noita Save Manager, Renaming Slot 24 - '%Slot24Name%', , 220, 130 if ErrorLevel Slot24Name = %StoredName% } if(currentslot == 25) { StoredName = %Slot25Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot25Name, Noita Save Manager, Renaming Slot 25 - '%Slot25Name%', , 220, 130 if ErrorLevel Slot25Name = %StoredName% } if(currentslot == 26) { StoredName = %Slot26Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot26Name, Noita Save Manager, Renaming Slot 26 - '%Slot26Name%', , 220, 130 if ErrorLevel Slot26Name = %StoredName% } if(currentslot == 27) { StoredName = %Slot27Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot27Name, Noita Save Manager, Renaming Slot 27 - '%Slot27Name%', , 220, 130 if ErrorLevel Slot27Name = %StoredName% } if(currentslot == 28) { StoredName = %Slot28Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot28Name, Noita Save Manager, Renaming Slot 28 - '%Slot28Name%', , 220, 130 if ErrorLevel Slot28Name = %StoredName% } if(currentslot == 29) { StoredName = %Slot29Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot29Name, Noita Save Manager, Renaming Slot 29 - '%Slot29Name%', , 220, 130 if ErrorLevel Slot29Name = %StoredName% } if(currentslot == 30) { StoredName = %Slot30Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot30Name, Noita Save Manager, Renaming Slot 30 - '%Slot30Name%', , 220, 130 if ErrorLevel Slot30Name = %StoredName% } if(currentslot == 31) { StoredName = %Slot31Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot31Name, Noita Save Manager, Renaming Slot 31 - '%Slot31Name%', , 220, 130 if ErrorLevel Slot31Name = %StoredName% } if(currentslot == 32) { StoredName = %Slot32Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot32Name, Noita Save Manager, Renaming Slot 32 - '%Slot32Name%', , 220, 130 if ErrorLevel Slot32Name = %StoredName% } if(currentslot == 33) { StoredName = %Slot33Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot33Name, Noita Save Manager, Renaming Slot 33 - '%Slot33Name%', , 220, 130 if ErrorLevel Slot33Name = %StoredName% } if(currentslot == 34) { StoredName = %Slot34Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot34Name, Noita Save Manager, Renaming Slot 34 - '%Slot34Name%', , 220, 130 if ErrorLevel Slot34Name = %StoredName% } if(currentslot == 35) { StoredName = %Slot35Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot35Name, Noita Save Manager, Renaming Slot 35 - '%Slot35Name%', , 220, 130 if ErrorLevel Slot35Name = %StoredName% } if(currentslot == 36) { StoredName = %Slot36Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot36Name, Noita Save Manager, Renaming Slot 36 - '%Slot36Name%', , 220, 130 if ErrorLevel Slot36Name = %StoredName% } if(currentslot == 37) { StoredName = %Slot37Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot37Name, Noita Save Manager, Renaming Slot 37 - '%Slot37Name%', , 220, 130 if ErrorLevel Slot37Name = %StoredName% } if(currentslot == 38) { StoredName = %Slot38Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot38Name, Noita Save Manager, Renaming Slot 38 - '%Slot38Name%', , 220, 130 if ErrorLevel Slot38Name = %StoredName% } if(currentslot == 39) { StoredName = %Slot39Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot39Name, Noita Save Manager, Renaming Slot 39 - '%Slot39Name%', , 220, 130 if ErrorLevel Slot39Name = %StoredName% } if(currentslot == 40) { StoredName = %Slot40Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot40Name, Noita Save Manager, Renaming Slot 40 - '%Slot40Name%', , 220, 130 if ErrorLevel Slot40Name = %StoredName% } if(currentslot == 41) { StoredName = %Slot41Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot41Name, Noita Save Manager, Renaming Slot 41 - '%Slot41Name%', , 220, 130 if ErrorLevel Slot41Name = %StoredName% } if(currentslot == 42) { StoredName = %Slot42Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot42Name, Noita Save Manager, Renaming Slot 42 - '%Slot42Name%', , 220, 130 if ErrorLevel Slot42Name = %StoredName% } if(currentslot == 43) { StoredName = %Slot43Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot43Name, Noita Save Manager, Renaming Slot 43 - '%Slot43Name%', , 220, 130 if ErrorLevel Slot43Name = %StoredName% } if(currentslot == 44) { StoredName = %Slot44Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot44Name, Noita Save Manager, Renaming Slot 44 - '%Slot44Name%', , 220, 130 if ErrorLevel Slot44Name = %StoredName% } if(currentslot == 45) { StoredName = %Slot45Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot45Name, Noita Save Manager, Renaming Slot 45 - '%Slot45Name%', , 220, 130 if ErrorLevel Slot45Name = %StoredName% } if(currentslot == 46) { StoredName = %Slot46Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot46Name, Noita Save Manager, Renaming Slot 46 - '%Slot46Name%', , 220, 130 if ErrorLevel Slot46Name = %StoredName% } if(currentslot == 47) { StoredName = %Slot47Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot47Name, Noita Save Manager, Renaming Slot 47 - '%Slot47Name%', , 220, 130 if ErrorLevel Slot47Name = %StoredName% } if(currentslot == 48) { StoredName = %Slot48Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot48Name, Noita Save Manager, Renaming Slot 48 - '%Slot48Name%', , 220, 130 if ErrorLevel Slot48Name = %StoredName% } if(currentslot == 49) { StoredName = %Slot49Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot49Name, Noita Save Manager, Renaming Slot 49 - '%Slot49Name%', , 220, 130 if ErrorLevel Slot49Name = %StoredName% } if(currentslot == 50) { StoredName = %Slot50Name% Gui +LastFound +OwnDialogs +AlwaysOnTop InputBox, Slot50Name, Noita Save Manager, Renaming Slot 50 - '%Slot50Name%', , 220, 130 if ErrorLevel Slot50Name = %StoredName% } SaveData() LoadData() } DeleteSlot() { EnvGet, saveDir3, AppData saveDir3 := StrReplace(saveDir3, "Roaming", "LocalLow\Nolla_Games_Noita\") IfExist , %saveDir3%\..\Nolla_Games_Noita\save_backup_%currentslot% Msgbox, 4,Noita Save Manager, !WARNING! !WARNING! !WARNING! !WARNING!`n`nThis will DELETE the save in Slot %currentslot% - Continue? IfMsgBox No return else IfExist , %saveDir3%\..\Nolla_Games_Noita\save_backup_%currentslot% Msgbox, 4,Noita Save Manager, !WARNING! !WARNING! !WARNING! !WARNING!`n`nThis will DELETE the save in Slot %currentslot% - Continue?`n`nAre you sure? (This action cannot be undone) IfMsgBox No return else IfExist , %saveDir3%\..\Nolla_Games_Noita\save_backup_%currentslot% Slot%currentslot%Name = Slot %currentslot% DateTime = No Save SaveData() LoadData() IfExist , %saveDir3%\..\Nolla_Games_Noita\save_backup_%currentslot% FileRemoveDir, %saveDir3%\..\Nolla_Games_Noita\save_backup_%currentslot%, true } SaveData() { SetWorkingDir %A_ScriptDir% IniRead, SAVELOAD_HOTKEY, NoitaSaveManager.ini, Hotkeys, SAVELOAD_HOTKEY, 0 Loop, 1 { CUSTOM_SAVELOAD_HOTKEY = %SAVELOAD_HOTKEY% if(SAVELOAD_HOTKEY == 0){ SAVELOAD_HOTKEY = F5 } } IniWrite, %SAVELOAD_HOTKEY%, NoitaSaveManager.ini, Hotkeys, SAVELOAD_HOTKEY IniRead, EXIT_HOTKEY, NoitaSaveManager.ini, Hotkeys, EXIT_HOTKEY, 0 Loop, 1 { CUSTOM_EXIT_HOTKEY = %EXIT_HOTKEY% if(EXIT_HOTKEY == 0){ EXIT_HOTKEY = ESC } } IniWrite, %EXIT_HOTKEY%, NoitaSaveManager.ini, Hotkeys, EXIT_HOTKEY IniRead, hasEnabledReplayRecorder, NoitaSaveManager.ini, Settings, hasEnabledReplayRecorder, 0 Loop, 1 { hasEnabledReplayRecorder = %ihasEnabledReplayRecorder% } IniWrite, %ihasEnabledReplayRecorder%, NoitaSaveManager.ini, Settings, hasEnabledReplayRecorder if(currentslot == 0 || currentslot == "" && GUIstarted == 1) { Gui +LastFound +OwnDialogs +AlwaysOnTop Msgbox, 0, Noita Save Manager, Save slot not selected, The game will resume last session. global SkipSave = 1 return } if(currentslot == 1) { IniRead, SLOT_1, NoitaSaveManager.ini, Saves, SLOT_1, 0 Loop, 1 { SLOT_1 = "%Slot1Name% (%DateTime%)" if(SLOT_1 == 0){ SLOT_1 = Slot 1 (No Save) } } IniWrite, %SLOT_1%, NoitaSaveManager.ini, Saves, SLOT_1 } if(currentslot == 2) { IniRead, SLOT_2, NoitaSaveManager.ini, Saves, SLOT_2, 0 Loop, 1 { SLOT_2 = "%Slot2Name% (%DateTime%)" if(SLOT_2 == 0){ SLOT_2 = Slot 2 (No Save) } } IniWrite, %SLOT_2%, NoitaSaveManager.ini, Saves, SLOT_2 } if(currentslot == 3) { IniRead, SLOT_3, NoitaSaveManager.ini, Saves, SLOT_3, 0 Loop, 1 { SLOT_3 = "%Slot3Name% (%DateTime%)" if(SLOT_3 == 0){ SLOT_3 = Slot 3 (No Save) } } IniWrite, %SLOT_3%, NoitaSaveManager.ini, Saves, SLOT_3 } if(currentslot == 4) { IniRead, SLOT_4, NoitaSaveManager.ini, Saves, SLOT_4, 0 Loop, 1 { SLOT_4 = "%Slot4Name% (%DateTime%)" if(SLOT_4 == 0){ SLOT_4 = Slot 4 (No Save) } } IniWrite, %SLOT_4%, NoitaSaveManager.ini, Saves, SLOT_4 } if(currentslot == 5) { IniRead, SLOT_5, NoitaSaveManager.ini, Saves, SLOT_5, 0 Loop, 1 { SLOT_5 = "%Slot5Name% (%DateTime%)" if(SLOT_5 == 0){ SLOT_5 = Slot 5 (No Save) } } IniWrite, %SLOT_5%, NoitaSaveManager.ini, Saves, SLOT_5 } if(currentslot == 6) { IniRead, SLOT_6, NoitaSaveManager.ini, Saves, SLOT_6, 0 Loop, 1 { SLOT_6 = "%Slot6Name% (%DateTime%)" if(SLOT_6 == 0){ SLOT_6 = Slot 6 (No Save) } } IniWrite, %SLOT_6%, NoitaSaveManager.ini, Saves, SLOT_6 } if(currentslot == 7) { IniRead, SLOT_7, NoitaSaveManager.ini, Saves, SLOT_7, 0 Loop, 1 { SLOT_7 = "%Slot7Name% (%DateTime%)" if(SLOT_7 == 0){ SLOT_7 = Slot 7 (No Save) } } IniWrite, %SLOT_7%, NoitaSaveManager.ini, Saves, SLOT_7 } if(currentslot == 8) { IniRead, SLOT_8, NoitaSaveManager.ini, Saves, SLOT_8, 0 Loop, 1 { SLOT_8 = "%Slot8Name% (%DateTime%)" if(SLOT_8 == 0){ SLOT_8 = Slot 8 (No Save) } } IniWrite, %SLOT_8%, NoitaSaveManager.ini, Saves, SLOT_8 } if(currentslot == 9) { IniRead, SLOT_9, NoitaSaveManager.ini, Saves, SLOT_9, 0 Loop, 1 { SLOT_9 = "%Slot9Name% (%DateTime%)" if(SLOT_9 == 0){ SLOT_9 = Slot 9 (No Save) } } IniWrite, %SLOT_9%, NoitaSaveManager.ini, Saves, SLOT_9 } if(currentslot == 10) { IniRead, SLOT_10, NoitaSaveManager.ini, Saves, SLOT_10, 0 Loop, 1 { SLOT_10 = "%Slot10Name% (%DateTime%)" if(SLOT_10 == 0){ SLOT_10 = Slot 10 (No Save) } } IniWrite, %SLOT_10%, NoitaSaveManager.ini, Saves, SLOT_10 } if(currentslot == 11) { IniRead, SLOT_11, NoitaSaveManager.ini, Saves, SLOT_11, 0 Loop, 1 { SLOT_11 = "%Slot11Name% (%DateTime%)" if(SLOT_11 == 0){ SLOT_11 = Slot 11 (No Save) } } IniWrite, %SLOT_11%, NoitaSaveManager.ini, Saves, SLOT_11 } if(currentslot == 12) { IniRead, SLOT_12, NoitaSaveManager.ini, Saves, SLOT_12, 0 Loop, 1 { SLOT_12 = "%Slot12Name% (%DateTime%)" if(SLOT_12 == 0){ SLOT_12 = Slot 12 (No Save) } } IniWrite, %SLOT_12%, NoitaSaveManager.ini, Saves, SLOT_12 } if(currentslot == 13) { IniRead, SLOT_13, NoitaSaveManager.ini, Saves, SLOT_13, 0 Loop, 1 { SLOT_13 = "%Slot13Name% (%DateTime%)" if(SLOT_13 == 0){ SLOT_13 = Slot 13 (No Save) } } IniWrite, %SLOT_13%, NoitaSaveManager.ini, Saves, SLOT_13 } if(currentslot == 14) { IniRead, SLOT_14, NoitaSaveManager.ini, Saves, SLOT_14, 0 Loop, 1 { SLOT_14 = "%Slot14Name% (%DateTime%)" if(SLOT_14 == 0){ SLOT_14 = Slot 14 (No Save) } } IniWrite, %SLOT_14%, NoitaSaveManager.ini, Saves, SLOT_14 } if(currentslot == 15) { IniRead, SLOT_15, NoitaSaveManager.ini, Saves, SLOT_15, 0 Loop, 1 { SLOT_15 = "%Slot15Name% (%DateTime%)" if(SLOT_15 == 0){ SLOT_15 = Slot 15 (No Save) } } IniWrite, %SLOT_15%, NoitaSaveManager.ini, Saves, SLOT_15 } if(currentslot == 16) { IniRead, SLOT_16, NoitaSaveManager.ini, Saves, SLOT_16, 0 Loop, 1 { SLOT_16 = "%Slot16Name% (%DateTime%)" if(SLOT_16 == 0){ SLOT_16 = Slot 16 (No Save) } } IniWrite, %SLOT_16%, NoitaSaveManager.ini, Saves, SLOT_16 } if(currentslot == 17) { IniRead, SLOT_17, NoitaSaveManager.ini, Saves, SLOT_17, 0 Loop, 1 { SLOT_17 = "%Slot17Name% (%DateTime%)" if(SLOT_17 == 0){ SLOT_17 = Slot 17 (No Save) } } IniWrite, %SLOT_17%, NoitaSaveManager.ini, Saves, SLOT_17 } if(currentslot == 18) { IniRead, SLOT_18, NoitaSaveManager.ini, Saves, SLOT_18, 0 Loop, 1 { SLOT_18 = "%Slot18Name% (%DateTime%)" if(SLOT_18 == 0){ SLOT_18 = Slot 18 (No Save) } } IniWrite, %SLOT_18%, NoitaSaveManager.ini, Saves, SLOT_18 } if(currentslot == 19) { IniRead, SLOT_19, NoitaSaveManager.ini, Saves, SLOT_19, 0 Loop, 1 { SLOT_19 = "%Slot19Name% (%DateTime%)" if(SLOT_19 == 0){ SLOT_19 = Slot 19 (No Save) } } IniWrite, %SLOT_19%, NoitaSaveManager.ini, Saves, SLOT_19 } if(currentslot == 20) { IniRead, SLOT_20, NoitaSaveManager.ini, Saves, SLOT_20, 0 Loop, 1 { SLOT_20 = "%Slot20Name% (%DateTime%)" if(SLOT_20 == 0){ SLOT_20 = Slot 20 (No Save) } } IniWrite, %SLOT_20%, NoitaSaveManager.ini, Saves, SLOT_20 } if(currentslot == 21) { IniRead, SLOT_21, NoitaSaveManager.ini, Saves, SLOT_21, 0 Loop, 1 { SLOT_21 = "%Slot21Name% (%DateTime%)" if(SLOT_21 == 0){ SLOT_21 = Slot 21 (No Save) } } IniWrite, %SLOT_21%, NoitaSaveManager.ini, Saves, SLOT_21 } if(currentslot == 22) { IniRead, SLOT_22, NoitaSaveManager.ini, Saves, SLOT_22, 0 Loop, 1 { SLOT_22 = "%Slot22Name% (%DateTime%)" if(SLOT_22 == 0){ SLOT_22 = Slot 22 (No Save) } } IniWrite, %SLOT_22%, NoitaSaveManager.ini, Saves, SLOT_22 } if(currentslot == 23) { IniRead, SLOT_23, NoitaSaveManager.ini, Saves, SLOT_23, 0 Loop, 1 { SLOT_23 = "%Slot23Name% (%DateTime%)" if(SLOT_23 == 0){ SLOT_23 = Slot 23 (No Save) } } IniWrite, %SLOT_23%, NoitaSaveManager.ini, Saves, SLOT_23 } if(currentslot == 24) { IniRead, SLOT_24, NoitaSaveManager.ini, Saves, SLOT_24, 0 Loop, 1 { SLOT_24 = "%Slot24Name% (%DateTime%)" if(SLOT_24 == 0){ SLOT_24 = Slot 24 (No Save) } } IniWrite, %SLOT_24%, NoitaSaveManager.ini, Saves, SLOT_24 } if(currentslot == 25) { IniRead, SLOT_25, NoitaSaveManager.ini, Saves, SLOT_25, 0 Loop, 1 { SLOT_25 = "%Slot25Name% (%DateTime%)" if(SLOT_25 == 0){ SLOT_25 = Slot 25 (No Save) } } IniWrite, %SLOT_25%, NoitaSaveManager.ini, Saves, SLOT_25 } if(currentslot == 26) { IniRead, SLOT_26, NoitaSaveManager.ini, Saves, SLOT_26, 0 Loop, 1 { SLOT_26 = "%Slot26Name% (%DateTime%)" if(SLOT_26 == 0){ SLOT_26 = Slot 26 (No Save) } } IniWrite, %SLOT_26%, NoitaSaveManager.ini, Saves, SLOT_26 } if(currentslot == 27) { IniRead, SLOT_27, NoitaSaveManager.ini, Saves, SLOT_27, 0 Loop, 1 { SLOT_27 = "%Slot27Name% (%DateTime%)" if(SLOT_27 == 0){ SLOT_27 = Slot 27 (No Save) } } IniWrite, %SLOT_27%, NoitaSaveManager.ini, Saves, SLOT_27 } if(currentslot == 28) { IniRead, SLOT_28, NoitaSaveManager.ini, Saves, SLOT_28, 0 Loop, 1 { SLOT_28 = "%Slot28Name% (%DateTime%)" if(SLOT_28 == 0){ SLOT_28 = Slot 28 (No Save) } } IniWrite, %SLOT_28%, NoitaSaveManager.ini, Saves, SLOT_28 } if(currentslot == 29) { IniRead, SLOT_29, NoitaSaveManager.ini, Saves, SLOT_29, 0 Loop, 1 { SLOT_29 = "%Slot29Name% (%DateTime%)" if(SLOT_29 == 0){ SLOT_29 = Slot 29 (No Save) } } IniWrite, %SLOT_29%, NoitaSaveManager.ini, Saves, SLOT_29 } if(currentslot == 30) { IniRead, SLOT_30, NoitaSaveManager.ini, Saves, SLOT_30, 0 Loop, 1 { SLOT_30 = "%Slot30Name% (%DateTime%)" if(SLOT_30 == 0){ SLOT_30 = Slot 30 (No Save) } } IniWrite, %SLOT_30%, NoitaSaveManager.ini, Saves, SLOT_30 } if(currentslot == 31) { IniRead, SLOT_31, NoitaSaveManager.ini, Saves, SLOT_31, 0 Loop, 1 { SLOT_31 = "%Slot31Name% (%DateTime%)" if(SLOT_31 == 0){ SLOT_31 = Slot 31 (No Save) } } IniWrite, %SLOT_31%, NoitaSaveManager.ini, Saves, SLOT_31 } if(currentslot == 32) { IniRead, SLOT_32, NoitaSaveManager.ini, Saves, SLOT_32, 0 Loop, 1 { SLOT_32 = "%Slot32Name% (%DateTime%)" if(SLOT_32 == 0){ SLOT_32 = Slot 32 (No Save) } } IniWrite, %SLOT_32%, NoitaSaveManager.ini, Saves, SLOT_32 } if(currentslot == 33) { IniRead, SLOT_33, NoitaSaveManager.ini, Saves, SLOT_33, 0 Loop, 1 { SLOT_33 = "%Slot33Name% (%DateTime%)" if(SLOT_33 == 0){ SLOT_33 = Slot 33 (No Save) } } IniWrite, %SLOT_33%, NoitaSaveManager.ini, Saves, SLOT_33 } if(currentslot == 34) { IniRead, SLOT_34, NoitaSaveManager.ini, Saves, SLOT_34, 0 Loop, 1 { SLOT_34 = "%Slot34Name% (%DateTime%)" if(SLOT_34 == 0){ SLOT_34 = Slot 34 (No Save) } } IniWrite, %SLOT_34%, NoitaSaveManager.ini, Saves, SLOT_34 } if(currentslot == 35) { IniRead, SLOT_35, NoitaSaveManager.ini, Saves, SLOT_35, 0 Loop, 1 { SLOT_35 = "%Slot35Name% (%DateTime%)" if(SLOT_35 == 0){ SLOT_35 = Slot 35 (No Save) } } IniWrite, %SLOT_35%, NoitaSaveManager.ini, Saves, SLOT_35 } if(currentslot == 36) { IniRead, SLOT_36, NoitaSaveManager.ini, Saves, SLOT_36, 0 Loop, 1 { SLOT_36 = "%Slot36Name% (%DateTime%)" if(SLOT_36 == 0){ SLOT_36 = Slot 36 (No Save) } } IniWrite, %SLOT_36%, NoitaSaveManager.ini, Saves, SLOT_36 } if(currentslot == 37) { IniRead, SLOT_37, NoitaSaveManager.ini, Saves, SLOT_37, 0 Loop, 1 { SLOT_37 = "%Slot37Name% (%DateTime%)" if(SLOT_37 == 0){ SLOT_37 = Slot 37 (No Save) } } IniWrite, %SLOT_37%, NoitaSaveManager.ini, Saves, SLOT_37 } if(currentslot == 38) { IniRead, SLOT_38, NoitaSaveManager.ini, Saves, SLOT_38, 0 Loop, 1 { SLOT_38 = "%Slot38Name% (%DateTime%)" if(SLOT_38 == 0){ SLOT_38 = Slot 38 (No Save) } } IniWrite, %SLOT_38%, NoitaSaveManager.ini, Saves, SLOT_38 } if(currentslot == 39) { IniRead, SLOT_39, NoitaSaveManager.ini, Saves, SLOT_39, 0 Loop, 1 { SLOT_39 = "%Slot39Name% (%DateTime%)" if(SLOT_39 == 0){ SLOT_39 = Slot 39 (No Save) } } IniWrite, %SLOT_39%, NoitaSaveManager.ini, Saves, SLOT_39 } if(currentslot == 40) { IniRead, SLOT_40, NoitaSaveManager.ini, Saves, SLOT_40, 0 Loop, 1 { SLOT_40 = "%Slot40Name% (%DateTime%)" if(SLOT_40 == 0){ SLOT_40 = Slot 40 (No Save) } } IniWrite, %SLOT_40%, NoitaSaveManager.ini, Saves, SLOT_40 } if(currentslot == 41) { IniRead, SLOT_41, NoitaSaveManager.ini, Saves, SLOT_41, 0 Loop, 1 { SLOT_41 = "%Slot41Name% (%DateTime%)" if(SLOT_41 == 0){ SLOT_41 = Slot 41 (No Save) } } IniWrite, %SLOT_41%, NoitaSaveManager.ini, Saves, SLOT_41 } if(currentslot == 42) { IniRead, SLOT_42, NoitaSaveManager.ini, Saves, SLOT_42, 0 Loop, 1 { SLOT_42 = "%Slot42Name% (%DateTime%)" if(SLOT_42 == 0){ SLOT_42 = Slot 42 (No Save) } } IniWrite, %SLOT_42%, NoitaSaveManager.ini, Saves, SLOT_42 } if(currentslot == 43) { IniRead, SLOT_43, NoitaSaveManager.ini, Saves, SLOT_43, 0 Loop, 1 { SLOT_43 = "%Slot43Name% (%DateTime%)" if(SLOT_43 == 0){ SLOT_43 = Slot 43 (No Save) } } IniWrite, %SLOT_43%, NoitaSaveManager.ini, Saves, SLOT_43 } if(currentslot == 44) { IniRead, SLOT_44, NoitaSaveManager.ini, Saves, SLOT_44, 0 Loop, 1 { SLOT_44 = "%Slot44Name% (%DateTime%)" if(SLOT_44 == 0){ SLOT_44 = Slot 44 (No Save) } } IniWrite, %SLOT_44%, NoitaSaveManager.ini, Saves, SLOT_44 } if(currentslot == 45) { IniRead, SLOT_45, NoitaSaveManager.ini, Saves, SLOT_45, 0 Loop, 1 { SLOT_45 = "%Slot45Name% (%DateTime%)" if(SLOT_45 == 0){ SLOT_45 = Slot 45 (No Save) } } IniWrite, %SLOT_45%, NoitaSaveManager.ini, Saves, SLOT_45 } if(currentslot == 46) { IniRead, SLOT_46, NoitaSaveManager.ini, Saves, SLOT_46, 0 Loop, 1 { SLOT_46 = "%Slot46Name% (%DateTime%)" if(SLOT_46 == 0){ SLOT_46 = Slot 46 (No Save) } } IniWrite, %SLOT_46%, NoitaSaveManager.ini, Saves, SLOT_46 } if(currentslot == 47) { IniRead, SLOT_47, NoitaSaveManager.ini, Saves, SLOT_47, 0 Loop, 1 { SLOT_47 = "%Slot47Name% (%DateTime%)" if(SLOT_47 == 0){ SLOT_47 = Slot 47 (No Save) } } IniWrite, %SLOT_47%, NoitaSaveManager.ini, Saves, SLOT_47 } if(currentslot == 48) { IniRead, SLOT_48, NoitaSaveManager.ini, Saves, SLOT_48, 0 Loop, 1 { SLOT_48 = "%Slot48Name% (%DateTime%)" if(SLOT_48 == 0){ SLOT_48 = Slot 48 (No Save) } } IniWrite, %SLOT_48%, NoitaSaveManager.ini, Saves, SLOT_48 } if(currentslot == 49) { IniRead, SLOT_49, NoitaSaveManager.ini, Saves, SLOT_49, 0 Loop, 1 { SLOT_49 = "%Slot49Name% (%DateTime%)" if(SLOT_49 == 0){ SLOT_49 = Slot 49 (No Save) } } IniWrite, %SLOT_49%, NoitaSaveManager.ini, Saves, SLOT_49 } if(currentslot == 50) { IniRead, SLOT_50, NoitaSaveManager.ini, Saves, SLOT_50, 0 Loop, 1 { SLOT_50 = "%Slot50Name% (%DateTime%)" if(SLOT_50 == 0){ SLOT_50 = Slot 50 (No Save) } } IniWrite, %SLOT_50%, NoitaSaveManager.ini, Saves, SLOT_50 } } LoadData() { SetWorkingDir %A_ScriptDir% IniRead, SAVELOAD_HOTKEY, NoitaSaveManager.ini, Hotkeys, SAVELOAD_HOTKEY, 0 Loop, 1 { CUSTOM_SAVELOAD_HOTKEY = %SAVELOAD_HOTKEY% Hotkey, ~%CUSTOM_SAVELOAD_HOTKEY% , SAVELOAD_HOTKEY , On } IniRead, EXIT_HOTKEY, NoitaSaveManager.ini, Hotkeys, EXIT_HOTKEY, 0 Loop, 1 { CUSTOM_EXIT_HOTKEY = %EXIT_HOTKEY% Hotkey, ~%CUSTOM_EXIT_HOTKEY% , EXIT_HOTKEY , On } IniRead, hasEnabledReplayRecorder, NoitaSaveManager.ini, Settings, hasEnabledReplayRecorder, 0 Loop, 1 { ihasEnabledReplayRecorder = %hasEnabledReplayRecorder% } IniRead, SLOT_1, NoitaSaveManager.ini, Saves, SLOT_1, 0 Loop, 1 { if(SLOT_1 == 0){ SLOT_1 = Slot 1 (No Save) } Slot1 = %SLOT_1% } IniRead, SLOT_2, NoitaSaveManager.ini, Saves, SLOT_2, 0 Loop, 1 { if(SLOT_2 == 0){ SLOT_2 = Slot 2 (No Save) } Slot2 = %SLOT_2% } IniRead, SLOT_3, NoitaSaveManager.ini, Saves, SLOT_3, 0 Loop, 1 { if(SLOT_3 == 0){ SLOT_3 = Slot 3 (No Save) } Slot3 = %SLOT_3% } IniRead, SLOT_4, NoitaSaveManager.ini, Saves, SLOT_4, 0 Loop, 1 { if(SLOT_4 == 0){ SLOT_4 = Slot 4 (No Save) } Slot4 = %SLOT_4% } IniRead, SLOT_5, NoitaSaveManager.ini, Saves, SLOT_5, 0 Loop, 1 { if(SLOT_5 == 0){ SLOT_5 = Slot 5 (No Save) } Slot5 = %SLOT_5% } IniRead, SLOT_6, NoitaSaveManager.ini, Saves, SLOT_6, 0 Loop, 1 { if(SLOT_6 == 0){ SLOT_6 = Slot 6 (No Save) } Slot6 = %SLOT_6% } IniRead, SLOT_7, NoitaSaveManager.ini, Saves, SLOT_7, 0 Loop, 1 { if(SLOT_7 == 0){ SLOT_7 = Slot 7 (No Save) } Slot7 = %SLOT_7% } IniRead, SLOT_8, NoitaSaveManager.ini, Saves, SLOT_8, 0 Loop, 1 { if(SLOT_8 == 0){ SLOT_8 = Slot 8 (No Save) } Slot8 = %SLOT_8% } IniRead, SLOT_9, NoitaSaveManager.ini, Saves, SLOT_9, 0 Loop, 1 { if(SLOT_9 == 0){ SLOT_9 = Slot 9 (No Save) } Slot9 = %SLOT_9% } IniRead, SLOT_10, NoitaSaveManager.ini, Saves, SLOT_10, 0 Loop, 1 { if(SLOT_10 == 0){ SLOT_10 = Slot 10 (No Save) } Slot10 = %SLOT_10% } IniRead, SLOT_11, NoitaSaveManager.ini, Saves, SLOT_11, 0 Loop, 1 { if(SLOT_11 == 0){ SLOT_11 = Slot 11 (No Save) } Slot11 = %SLOT_11% } IniRead, SLOT_12, NoitaSaveManager.ini, Saves, SLOT_12, 0 Loop, 1 { if(SLOT_12 == 0){ SLOT_12 = Slot 12 (No Save) } Slot12 = %SLOT_12% } IniRead, SLOT_13, NoitaSaveManager.ini, Saves, SLOT_13, 0 Loop, 1 { if(SLOT_13 == 0){ SLOT_13 = Slot 13 (No Save) } Slot13 = %SLOT_13% } IniRead, SLOT_14, NoitaSaveManager.ini, Saves, SLOT_14, 0 Loop, 1 { if(SLOT_14 == 0){ SLOT_14 = Slot 14 (No Save) } Slot14 = %SLOT_14% } IniRead, SLOT_15, NoitaSaveManager.ini, Saves, SLOT_15, 0 Loop, 1 { if(SLOT_15 == 0){ SLOT_15 = Slot 15 (No Save) } Slot15 = %SLOT_15% } IniRead, SLOT_16, NoitaSaveManager.ini, Saves, SLOT_16, 0 Loop, 1 { if(SLOT_16 == 0){ SLOT_16 = Slot 16 (No Save) } Slot16 = %SLOT_16% } IniRead, SLOT_17, NoitaSaveManager.ini, Saves, SLOT_17, 0 Loop, 1 { if(SLOT_17 == 0){ SLOT_17 = Slot 17 (No Save) } Slot17 = %SLOT_17% } IniRead, SLOT_18, NoitaSaveManager.ini, Saves, SLOT_18, 0 Loop, 1 { if(SLOT_18 == 0){ SLOT_18 = Slot 18 (No Save) } Slot18 = %SLOT_18% } IniRead, SLOT_19, NoitaSaveManager.ini, Saves, SLOT_19, 0 Loop, 1 { if(SLOT_19 == 0){ SLOT_19 = Slot 19 (No Save) } Slot19 = %SLOT_19% } IniRead, SLOT_20, NoitaSaveManager.ini, Saves, SLOT_20, 0 Loop, 1 { if(SLOT_20 == 0){ SLOT_20 = Slot 20 (No Save) } Slot20 = %SLOT_20% } IniRead, SLOT_21, NoitaSaveManager.ini, Saves, SLOT_21, 0 Loop, 1 { if(SLOT_21 == 0){ SLOT_21 = Slot 21 (No Save) } Slot21 = %SLOT_21% } IniRead, SLOT_22, NoitaSaveManager.ini, Saves, SLOT_22, 0 Loop, 1 { if(SLOT_22 == 0){ SLOT_22 = Slot 22 (No Save) } Slot22 = %SLOT_22% } IniRead, SLOT_23, NoitaSaveManager.ini, Saves, SLOT_23, 0 Loop, 1 { if(SLOT_23 == 0){ SLOT_23 = Slot 23 (No Save) } Slot23 = %SLOT_23% } IniRead, SLOT_24, NoitaSaveManager.ini, Saves, SLOT_24, 0 Loop, 1 { if(SLOT_24 == 0){ SLOT_24 = Slot 24 (No Save) } Slot24 = %SLOT_24% } IniRead, SLOT_25, NoitaSaveManager.ini, Saves, SLOT_25, 0 Loop, 1 { if(SLOT_25 == 0){ SLOT_25 = Slot 25 (No Save) } Slot25 = %SLOT_25% } IniRead, SLOT_26, NoitaSaveManager.ini, Saves, SLOT_26, 0 Loop, 1 { if(SLOT_26 == 0){ SLOT_26 = Slot 26 (No Save) } Slot26 = %SLOT_26% } IniRead, SLOT_27, NoitaSaveManager.ini, Saves, SLOT_27, 0 Loop, 1 { if(SLOT_27 == 0){ SLOT_27 = Slot 27 (No Save) } Slot27 = %SLOT_27% } IniRead, SLOT_28, NoitaSaveManager.ini, Saves, SLOT_28, 0 Loop, 1 { if(SLOT_28 == 0){ SLOT_28 = Slot 28 (No Save) } Slot28 = %SLOT_28% } IniRead, SLOT_29, NoitaSaveManager.ini, Saves, SLOT_29, 0 Loop, 1 { if(SLOT_29 == 0){ SLOT_29 = Slot 29 (No Save) } Slot29 = %SLOT_29% } IniRead, SLOT_30, NoitaSaveManager.ini, Saves, SLOT_30, 0 Loop, 1 { if(SLOT_30 == 0){ SLOT_30 = Slot 30 (No Save) } Slot30 = %SLOT_30% } IniRead, SLOT_31, NoitaSaveManager.ini, Saves, SLOT_31, 0 Loop, 1 { if(SLOT_31 == 0){ SLOT_31 = Slot 31 (No Save) } Slot31 = %SLOT_31% } IniRead, SLOT_32, NoitaSaveManager.ini, Saves, SLOT_32, 0 Loop, 1 { if(SLOT_32 == 0){ SLOT_32 = Slot 32 (No Save) } Slot32 = %SLOT_32% } IniRead, SLOT_33, NoitaSaveManager.ini, Saves, SLOT_33, 0 Loop, 1 { if(SLOT_33 == 0){ SLOT_33 = Slot 33 (No Save) } Slot33 = %SLOT_33% } IniRead, SLOT_34, NoitaSaveManager.ini, Saves, SLOT_34, 0 Loop, 1 { if(SLOT_34 == 0){ SLOT_34 = Slot 34 (No Save) } Slot34 = %SLOT_34% } IniRead, SLOT_35, NoitaSaveManager.ini, Saves, SLOT_35, 0 Loop, 1 { if(SLOT_35 == 0){ SLOT_35 = Slot 35 (No Save) } Slot35 = %SLOT_35% } IniRead, SLOT_36, NoitaSaveManager.ini, Saves, SLOT_36, 0 Loop, 1 { if(SLOT_36 == 0){ SLOT_36 = Slot 36 (No Save) } Slot36 = %SLOT_36% } IniRead, SLOT_37, NoitaSaveManager.ini, Saves, SLOT_37, 0 Loop, 1 { if(SLOT_37 == 0){ SLOT_37 = Slot 37 (No Save) } Slot37 = %SLOT_37% } IniRead, SLOT_38, NoitaSaveManager.ini, Saves, SLOT_38, 0 Loop, 1 { if(SLOT_38 == 0){ SLOT_38 = Slot 38 (No Save) } Slot38 = %SLOT_38% } IniRead, SLOT_39, NoitaSaveManager.ini, Saves, SLOT_39, 0 Loop, 1 { if(SLOT_39 == 0){ SLOT_39 = Slot 39 (No Save) } Slot39 = %SLOT_39% } IniRead, SLOT_40, NoitaSaveManager.ini, Saves, SLOT_40, 0 Loop, 1 { if(SLOT_40 == 0){ SLOT_40 = Slot 40 (No Save) } Slot40 = %SLOT_40% } IniRead, SLOT_41, NoitaSaveManager.ini, Saves, SLOT_41, 0 Loop, 1 { if(SLOT_41 == 0){ SLOT_41 = Slot 41 (No Save) } Slot41 = %SLOT_41% } IniRead, SLOT_42, NoitaSaveManager.ini, Saves, SLOT_42, 0 Loop, 1 { if(SLOT_42 == 0){ SLOT_42 = Slot 42 (No Save) } Slot42 = %SLOT_42% } IniRead, SLOT_43, NoitaSaveManager.ini, Saves, SLOT_43, 0 Loop, 1 { if(SLOT_43 == 0){ SLOT_43 = Slot 43 (No Save) } Slot43 = %SLOT_43% } IniRead, SLOT_44, NoitaSaveManager.ini, Saves, SLOT_44, 0 Loop, 1 { if(SLOT_44 == 0){ SLOT_44 = Slot 44 (No Save) } Slot44 = %SLOT_44% } IniRead, SLOT_45, NoitaSaveManager.ini, Saves, SLOT_45, 0 Loop, 1 { if(SLOT_45 == 0){ SLOT_45 = Slot 45 (No Save) } Slot45 = %SLOT_45% } IniRead, SLOT_46, NoitaSaveManager.ini, Saves, SLOT_46, 0 Loop, 1 { if(SLOT_46 == 0){ SLOT_46 = Slot 46 (No Save) } Slot46 = %SLOT_46% } IniRead, SLOT_47, NoitaSaveManager.ini, Saves, SLOT_47, 0 Loop, 1 { if(SLOT_47 == 0){ SLOT_47 = Slot 47 (No Save) } Slot47 = %SLOT_47% } IniRead, SLOT_48, NoitaSaveManager.ini, Saves, SLOT_48, 0 Loop, 1 { if(SLOT_48 == 0){ SLOT_48 = Slot 48 (No Save) } Slot48 = %SLOT_48% } IniRead, SLOT_49, NoitaSaveManager.ini, Saves, SLOT_49, 0 Loop, 1 { if(SLOT_49 == 0){ SLOT_49 = Slot 49 (No Save) } Slot49 = %SLOT_49% } IniRead, SLOT_50, NoitaSaveManager.ini, Saves, SLOT_50, 0 Loop, 1 { if(SLOT_50 == 0){ SLOT_50 = Slot 50 (No Save) } Slot50 = %SLOT_50% } }
Editor is loading...
Leave a Comment