OrionFive / Hospitality

Orion's "Hospitality" and more
https://www.patreon.com/orionmods
GNU General Public License v3.0
91 stars 54 forks source link

(Hospitality) Spamming error that I cannot seem to get rid of without removing the mod, affects older saves #542

Closed Trisscar05 closed 3 years ago

Trisscar05 commented 3 years ago

Specifically:

Exception while ticking lord with job Hospitality.LordJob_VisitColony: System.NullReferenceException: Object reference not set to an instance of an object at Verse.CellFinder.RandomEdgeCell (Verse.Map map) [0x00082] in <5bed3a4a3d4545d78cb9bae12001e2b7>:0 at Verse.CellFinder.TryFindRandomEdgeCellWith (System.Predicate1[T] validator, Verse.Map map, System.Single roadChance, Verse.IntVec3& result) [0x00041] in <5bed3a4a3d4545d78cb9bae12001e2b7>:0 at TerrainMovement.CellFinderExtended.TryFindRandomEdgeCellWith (System.Predicate1[T] validator, Verse.Map map, Verse.PawnKindDef kind, System.Single roadChance, Verse.IntVec3& result) [0x0001b] in <0f9a56ffd6214d1ca8ab14d3b793dc32>:0 at TerrainMovement.CellFinderExtended.TryFindRandomPawnExitCell (Verse.Pawn searcher, Verse.IntVec3& result) [0x00024] in <0f9a56ffd6214d1ca8ab14d3b793dc32>:0 at TerrainMovement.EnsureHaveExitDestinationKindCheck.Prefix (Verse.AI.Group.Transition trans) [0x00025] in <0f9a56ffd6214d1ca8ab14d3b793dc32>:0 at (wrapper dynamic-method) Verse.AI.Group.TransitionAction_EnsureHaveExitDestination.Verse.AI.Group.TransitionAction_EnsureHaveExitDestination.DoAction_Patch2(Verse.AI.Group.TransitionAction_EnsureHaveExitDestination,Verse.AI.Group.Transition) at Verse.AI.Group.Transition.Execute (Verse.AI.Group.Lord lord) [0x00027] in <5bed3a4a3d4545d78cb9bae12001e2b7>:0 at Verse.AI.Group.Transition.CheckSignal (Verse.AI.Group.Lord lord, Verse.AI.Group.TriggerSignal signal) [0x000de] in <5bed3a4a3d4545d78cb9bae12001e2b7>:0 at Verse.AI.Group.Lord.CheckTransitionOnSignal (Verse.AI.Group.TriggerSignal signal) [0x00050] in <5bed3a4a3d4545d78cb9bae12001e2b7>:0 at Verse.AI.Group.Lord.LordTick () [0x0002a] in <5bed3a4a3d4545d78cb9bae12001e2b7>:0 at Verse.AI.Group.LordManager.LordManagerTick () [0x00011] in <5bed3a4a3d4545d78cb9bae12001e2b7>:0 Verse.Log:Error(String, Boolean) Verse.AI.Group.LordManager:LordManagerTick() Verse.Map:MapPostTick() Verse.TickManager:Verse.TickManager.DoSingleTick_Patch1(TickManager) Verse.<>c:b__59_1() Verse.LongEventHandler:ExecuteToExecuteWhenFinished() Verse.LongEventHandler:UpdateCurrentAsynchronousEvent() Verse.LongEventHandler:LongEventsUpdate(Boolean&) Verse.Root:Verse.Root.Update_Patch1(Root) Verse.Root_Play:Update()

This only came up today while testing a caching function of a Rocketman update, however even removing Rocketman entirely does not appear to help. There are no visitors or guests or trade caravans or raiders on the map. It is affecting older (auto)saves that did not previously have this issue. OS is Kubuntu (Linux).

Tried so far: Verified files with Steam. Cleared configs files. Drafted all colonists and downed all prisoners. Turned all beds off guest mode. Also turned off the restaurant function of Gastronomy.

Modlist: ModsConfig 05312021.txt

Not expecting a magical cure all, and I suspect I'm going to need to save dive and deal with a corrupted visitor group or something. Would appreciate any guesses as to what is going on though, in the case that it might be something else entirely. (Also given it's hitting multiple saves that would be weird.)

OrionFive commented 3 years ago

What usually causes this is if pawns get removed from a guest group and don't get properly unregistered. This can for example happen if you remove pawns via the dev tools, or some other mod doesn't do it properly.

To fix it you have to edit the savegame, find the lord groups in question and remove them. If you search for Hospitality.Lord, you should find them. Should be inside "lordManager" > "lords". Then remove the entire li that contains the group.

Trisscar05 commented 3 years ago

That.... appears to have worked! Thanks much!