diff --git a/LoadSaveOverrides/MultiplayerSaveContainer.cs b/LoadSaveOverrides/MultiplayerSaveContainer.cs index 8e3a963..8de3ee8 100644 --- a/LoadSaveOverrides/MultiplayerSaveContainer.cs +++ b/LoadSaveOverrides/MultiplayerSaveContainer.cs @@ -332,6 +332,19 @@ namespace KCM.LoadSaveOverrides Main.helper.Log($"Setting kingdom name to: {kingdomNames[Main.PlayerSteamID]}"); TownNameUI.inst.SetTownName(kingdomNames[Main.PlayerSteamID]); + // Force transition to PlayingMode to enable villager movement + try + { + Main.helper.Log("MultiplayerSaveContainer.Unpack: Setting PlayingMode"); + GameState.inst.SetNewMode(GameState.inst.playingMode); + Main.helper.Log("MultiplayerSaveContainer.Unpack: PlayingMode set successfully"); + } + catch (Exception e) + { + Main.helper.Log("MultiplayerSaveContainer.Unpack: Failed to set PlayingMode"); + Main.helper.Log(e.ToString()); + } + return obj; } } diff --git a/Main.cs b/Main.cs index e1b5fa4..2a681fb 100644 --- a/Main.cs +++ b/Main.cs @@ -290,6 +290,26 @@ namespace KCM { helper?.Log("VillagerSystem.enabled = " + VillagerSystem.inst.enabled); } + + // Force transition to PlayingMode to enable villager movement + try + { + if (GameState.inst != null) + { + helper?.Log("RunPostLoadRebuild: Current GameState mode: " + TryGetGameModeName()); + if (GameState.inst.playingMode != null) + { + helper?.Log("RunPostLoadRebuild: Setting PlayingMode"); + GameState.inst.SetNewMode(GameState.inst.playingMode); + helper?.Log("RunPostLoadRebuild: PlayingMode set successfully"); + } + } + } + catch (Exception ex) + { + helper?.Log("RunPostLoadRebuild: Failed to set PlayingMode"); + helper?.Log(ex.ToString()); + } } catch (Exception e) {