From 2cea6831af6d8a8f24d08db38d6bf0ace40fd784 Mon Sep 17 00:00:00 2001 From: Goganidze <117683466+Goganidze@users.noreply.github.com> Date: Tue, 17 Feb 2026 02:59:47 +0500 Subject: [PATCH 1/3] LevelMaps loading is also deferred --- scripts/stageapi/core/saveSystem.lua | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/scripts/stageapi/core/saveSystem.lua b/scripts/stageapi/core/saveSystem.lua index ace966b..5172d64 100644 --- a/scripts/stageapi/core/saveSystem.lua +++ b/scripts/stageapi/core/saveSystem.lua @@ -230,10 +230,14 @@ function StageAPI.LoadSaveString(str) end end - StageAPI.LevelMaps = {} + StageAPI.LevelMapsToLoad = {} for _, levelMapSaveData in ipairs(decoded.LevelMaps) do - StageAPI.LevelMap({SaveData = levelMapSaveData}) + StageAPI.LevelMapsToLoad[#StageAPI.LevelMapsToLoad+1] = levelMapSaveData end + --StageAPI.LevelMaps = {} + --for _, levelMapSaveData in ipairs(decoded.LevelMaps) do + -- StageAPI.LevelMap({SaveData = levelMapSaveData}) + --end StageAPI.CurrentLevelMapID = decoded.CurrentLevelMapID StageAPI.DefaultLevelMapID = decoded.DefaultLevelMapID @@ -468,10 +472,15 @@ local function NewLevelLoad() StageAPI.RoomsToLoad[i] = nil end + for i = #StageAPI.LevelMapsToLoad, 1, -1 do + StageAPI.LevelMap({SaveData = StageAPI.LevelMapsToLoad[i]}) + StageAPI.LevelMapsToLoad[i] = nil + end + StageAPI.SaveModData() end -mod:AddCallback(ModCallbacks.MC_POST_NEW_LEVEL, NewLevelLoad) +mod:AddPriorityCallback(ModCallbacks.MC_POST_NEW_ROOM, CallbackPriority.IMPORTANT, NewLevelLoad) mod:AddCallback(ModCallbacks.MC_POST_GAME_STARTED, function (_, isContinued) -- Needs to trigger also when loading a level if isContinued then From 072d320fbe770846d1cda05b2760141e47737b35 Mon Sep 17 00:00:00 2001 From: Goganidze <117683466+Goganidze@users.noreply.github.com> Date: Tue, 17 Feb 2026 03:01:09 +0500 Subject: [PATCH 2/3] remove commented code --- scripts/stageapi/core/saveSystem.lua | 4 ---- 1 file changed, 4 deletions(-) diff --git a/scripts/stageapi/core/saveSystem.lua b/scripts/stageapi/core/saveSystem.lua index 5172d64..6971d10 100644 --- a/scripts/stageapi/core/saveSystem.lua +++ b/scripts/stageapi/core/saveSystem.lua @@ -234,10 +234,6 @@ function StageAPI.LoadSaveString(str) for _, levelMapSaveData in ipairs(decoded.LevelMaps) do StageAPI.LevelMapsToLoad[#StageAPI.LevelMapsToLoad+1] = levelMapSaveData end - --StageAPI.LevelMaps = {} - --for _, levelMapSaveData in ipairs(decoded.LevelMaps) do - -- StageAPI.LevelMap({SaveData = levelMapSaveData}) - --end StageAPI.CurrentLevelMapID = decoded.CurrentLevelMapID StageAPI.DefaultLevelMapID = decoded.DefaultLevelMapID From 5e16a25c5e4f751a6628c5ebb20a709f5b5a5875 Mon Sep 17 00:00:00 2001 From: Goganidze <117683466+Goganidze@users.noreply.github.com> Date: Wed, 18 Feb 2026 03:48:20 +0500 Subject: [PATCH 3/3] 1 --- scripts/stageapi/core/saveSystem.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/stageapi/core/saveSystem.lua b/scripts/stageapi/core/saveSystem.lua index 6971d10..1be5dd4 100644 --- a/scripts/stageapi/core/saveSystem.lua +++ b/scripts/stageapi/core/saveSystem.lua @@ -8,6 +8,7 @@ StageAPI.LogMinor("Loading Save System") StageAPI.SaveDataLoaded = false StageAPI.RoomsToLoad = {} +StageAPI.LevelMapsToLoad = {} function StageAPI.TryLoadModData(continued) if Isaac.HasModData(mod) and continued then