Skip to content

Releases: catinsurance/IsaacSaveManager

IsaacSaveManager - v2.1.5

18 Oct 05:12
Compare
Choose a tag to compare
  • Fix hourglassBackup being nil if continuing a run before save data is created
  • Use ipairs instead of pairs for looping through entities
  • A Non-rgon hardware-specific issue where the third index of looping through entities will be zero. Fixed by checking for numbers on each loop.
  • Fix warnings printing if you used TryGetXSave if it failed and it not printing on the normal GetXSave functions
  • Fix game crashing on non-rgon upon exiting the game sometimes
  • MC_INPUT_ACTION for some reason runs later than all render callbacks on non-rgon. Added all high-priority render callbacks for non-rgon that'll remove themselves once luamod is successful
  • Potential fix for an error that appears when continuing a run on a StageAPI stage

IsaacSaveManager - v2.1.4a

31 Aug 20:45
Compare
Choose a tag to compare

IsaacSaveManager - v2.1.4

  • Fix saveslot load saving to other save files
  • Fix data not being loaded back on exit & continue
  • Fix data within debug rooms being removed if triggered before POST_NEW_ROOM
  • Pickups now have NoRerollSaveBackup and InitSeedBackup when a change in their InitSeed is made. If they happen to go back to the same InitSeed in the next InitSeed change, notably with Flip, it will restore NoRerollSave with the backup instead of resetting it.
  • Fix Moving Box checking previous room's data instead of current room's.
  • Fix save data not being loaded for the roomFloor save in the current room after you fully exit the game and continue the run.
  • Leftover entity data check (data for entities that no longer exist by the next room) now also runs for the roomFloor save instead of just the room save.
  • Warnings for uninitialized/unloaded data when retrieving save data are not printed when using the "Try" functions, however they still apply.
  • Fix Treasure and Boss Room Ascent data not being retained. (For right now, only works for pickups. Will add slots and grid ents soon)
  • Fix roomFloor data for the room being lost when you end up in the same room upon triggering a room change.
  • When checking which ListIndex to look at for data storage in roomFloor saves, it now looks at the current one by default instead of the last one. POST_ENTITY_REMOVE will trigger to look at the last index if the room's framecount is 0, the game is paused, and the manually tracked ListIndex hasn't been updated yet. Any INIT functions will turn this check off.
  • Callbacks now use a custom defined Callback Priority, stored in SaveManager.Utility.CallbackPriority. This is to further help the save callbacks taking place earlier/later for loading/saving data, notably with other mods that have their own priority callbacks.
  • SaveManager's custom callbacks can now be ran through the traditional method of ModReference:AddCallback. SaveManager.AddCallback is still present.
  • Code for managing rerolls/flip has been moved to INIT instead of UPDATE so it can be accessed at that point.

IsaacSaveManager - v2.1.4a

  • Fix hourglassBackup being nil if you continued a run when save data is created for the first time

IsaacSaveManager - v2.1.3d

17 Aug 01:55
Compare
Choose a tag to compare

IsaacSaveManager - v2.1.3d

  • Fix booleans with a variable of "false" being set back to true if it was their set default value.
  • PRE_LOAD_DATA now provides the save data as its first argument before its applied to the main save instead of an always empty table.
  • PRE_SAVE_DATA and PRE_LOAD_DATA now accept a return value of a table to overwrite the existing save data that's about to be saved/loaded.
  • Fix the game crashing when exiting the game. Was only noticeable in the logs, but MC_POST_SAVESLOT_LOAD was loading an invalid save when exiting, and it was triggered to save with MC_PRE_MOD_UNLOAD.
  • Fix an error caused by The Soul whenever it's removed inside POST_ENTITY_REMOVE (This happens when playing as JUST The Forgotten, regardless of form).
  • Fix PRE_LOAD_DATA triggering during PRE_DATA_SAVE.
  • Fix POST_DATA_SAVE being treated as POST_DATA_LOAD.
  • Fix data loading when launching the game if you have RGON. It will now only load once you have selected a save file or perform the luamod command.
  • Fix attempting to save data when exiting the game, resulting in a unnoticed crash.
  • Manager now uses custom callback priorities to have a higher chance of running earlier/later compared to other mods. This was noticed with CustomHealthAPI.
  • Use Isaac.RunCallback() instead of manually running callbacks

IsaacSaveManager - v2.1.2

08 Aug 23:49
Compare
Choose a tag to compare

IsaacSaveManager - v2.1.2

  • Slightly adjusted priorities of some callbacks
  • Luamod detection now uses MC_INPUT_ACTION, which runs the absolute earliest before any other callback, at least in-game.
  • For REPENTOGON, added MC_MENU_INPUT_ACTION for the same reason. Previously, it would save, but not load. Using the luamod command now properly saves and loads your data in the main menu.
  • PatchSaveFile will not overwrite existing data in the deposit table.

IsaacSaveManager - v2.1.1

07 Aug 15:41
Compare
Choose a tag to compare

IsaacSaveManager - v2.1.1

  • Fixed slots not being initialized properly without RGON
  • Fixed the IsaacSaveManager not being usable at all without RGON due to MC_POST_SLOT_INIT accidentally being left out of an "if REPENTOGON" check
  • PRE_DATA_LOAD and POST_DATA_LOAD now provide an "isLuamod" argument

IsaacSaveManager - v2.1.0

05 Aug 17:09
Compare
Choose a tag to compare

IsaacSaveManager - v2.1.0

Some additions and tweaks after having some time to test out many of the manager's features myself to be more flexible.

Additions:

  • Add SaveManager.TryGetRun/Floor/RoomFloor/RoomSave(), where data will not be automatically created if it does not exist. Good for checking if data exists without unnecessarily creating data for everything.
  • Add POST_DATA_SAVE and PRE_DATA_LOAD custom callbacks.
  • If REPENTOGON is enabled, data can now be loaded when selecting a save file on the main menu. It's recommended to use the POST_DATA_LOAD callback for loading arbitrary save data so that your data is properly loaded per-save file.
  • Added region comments inside the manager so that sections are collapsible.

Changes

  • Change NoRerollSave to be the save that is reset instead of RerollSave for pickups when a pickup is rerolled. Think of it as RerollSave is the "Reroll persistent save" and NoRerollSave as "Not Reroll persistent save"
  • All internal callbacks now use AddPriorityCallback instead of AddCallback. Loading data has an earlier priority while saving data has a later priority.
  • The manager's PRE_GAME_EXIT callback now takes advantage of the "ShouldSave" argument. If exiting a game should not create a continuable save (such as when ending a run), all game data will be cleared out as if you were starting a new game. This of course does not affect arbitrary file data.

Fixes

  • Fix slot data not initializing if REPENTOGON isn't enabled.
  • Removed any loose print statements.
  • roomFloor save data created within rooms from the goto command are treated like room saves, appropriately being removed when exiting the room.

v2.0.1

29 Jul 01:29
Compare
Choose a tag to compare

Full Changelog: v2.0.0...v2.0.1

IsaacSaveManager - v2.0.0

28 Jul 14:17
8447750
Compare
Choose a tag to compare

IsaacSaveManager - v2.0

A major update to the save manager that adds support for more types of persistent data and optimizes the code by a fair amount

Additions:

  • Now supports familiar, pickup, slot, and grid-specific saves. Only players, familiars, and arbitrary data can populate run and floor saves.
  • New save type: roomFloor. A floor-lasting save that separates data per room.
  • New save type: pickup. Used for the unique storage of persistent pickup data that lasts the floor, as well as specialized saves for treasure and boss rooms that last the run meant for the Ascent. Uniquely, there's also unique checks for Myosotis and Moving Box. Is not available in the non-hourglass-affected save.

Changes:

  • Fixed SaveManager.PatchSaveFile. Previously it just made sure that the deposit table had the same empty tables as the source. Now it copies source's data into deposit's while leaving unrelated data untouched, which means default data is now properly loaded into the current saves.
  • Made many adjustments to existing functions to condense their code better.
  • There is now a different method for adding default data to your saves. Please see the wiki's Default data section for more details.

Head over to the wiki to learn how to install and use the save manager.

IsaacSaveManager - v1.0.3

09 Aug 17:15
Compare
Choose a tag to compare

IsaacSaveManager - v1.0.3

Changes:

  • Fixed an issue where attempting to get a player save while there was no player save would return an empty table instead of a default save.

Head over to the wiki to learn how to install and use the save manager.

IsaacSaveManager - v1.0.2

05 Aug 06:11
Compare
Choose a tag to compare

IsaacSaveManager - v1.0.2

Changes:

  • Added a unique callback system, along with two new events:
    • "ISAACSAVEMANAGER_PRE_DATA_SAVE" - Right before data is validated then saved. Provides data as argument.
    • "ISAACSAVEMANAGER_POST_DATA_LOAD" - After everything has been loaded. Provides data as argument.

Head over to the wiki to learn how to install and use the save manager.