RimWorld

RimWorld

Allow Tool
Rovstam 30. aug. kl. 14:50
Red error
JobDriver threw exception in toil MakeNewToils's initAction for pawn Mech_Cleansweeper1045867 driver=JobDriver_Wait (toilIndex=0) driver.job=(Wait (Job_7969668))
System.NullReferenceException: Object reference not set to an instance of an object
[Ref B29DD0C4]
at AllowTool.PartyHuntHandler.get_WorldSettings () [0x0000b] in <8a098910d6a84b188090b9d6c096e9ee>:0
at AllowTool.PartyHuntHandler.DoBehaviorForPawn (Verse.AI.JobDriver_Wait driver) [0x0001e] in <8a098910d6a84b188090b9d6c096e9ee>:0
at AllowTool.Patches.JobDriverWait_CheckForAutoAttack_Patch.DoPartyHunting (Verse.AI.JobDriver_Wait __instance) [0x00001] in <8a098910d6a84b188090b9d6c096e9ee>:0
at Verse.AI.JobDriver_Wait.CheckForAutoAttack () [0x003a9] in <24d25868955f4df08b02c73b55f389fe>:0
- POSTFIX UnlimitedHugs.AllowTool: Void AllowTool.Patches.JobDriverWait_CheckForAutoAttack_Patch:DoPartyHunting(JobDriver_Wait __instance)
at Verse.AI.JobDriver_Wait.<MakeNewToils>b__3_0 () [0x0003d] in <24d25868955f4df08b02c73b55f389fe>:0
at Verse.AI.JobDriver.TryActuallyStartNextToil () [0x001b0] in <24d25868955f4df08b02c73b55f389fe>:0
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
Verse.AI.JobUtility:TryStartErrorRecoverJob (Verse.Pawn,string,System.Exception,Verse.AI.JobDriver)
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.StartJob_Patch1 (Verse.AI.Pawn_JobTracker,Verse.AI.Job,Verse.AI.JobCondition,Verse.AI.ThinkNode,bool,bool,Verse.ThinkTreeDef,System.Nullable`1<Verse.AI.JobTag>,bool,bool,System.Nullable`1<bool>,bool,bool,bool)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch2 (Verse.AI.Pawn_JobTracker,Verse.AI.JobCondition,bool,bool)
Verse.AI.JobDriver:EndJobWith (Verse.AI.JobCondition)
Verse.AI.JobDriver:Notify_PatherFailed ()
Verse.AI.Pawn_PathFollower:PatherFailed ()
Verse.AI.Pawn_PathFollower:TryResumePathingAfterLoading ()
Verse.Pawn:PostMapInit ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Map.FinalizeInit_Patch2 (Verse.Map)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Map.FinalizeLoading_Patch3 (Verse.Map)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Game.LoadGame_Patch6 (Verse.Game)
Verse.SavedGameLoaderNow:LoadGameFromSaveFileNow (string)
Verse.Root_Play/<>c:<Start>b__1_1 ()
Verse.LongEventHandler:RunEventFromAnotherThread (System.Action)
Verse.LongEventHandler/<>c:<UpdateCurrentAsynchronousEvent>b__28_0 ()
System.Threading.ThreadHelper:ThreadStart_Context (object)
System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object)
System.Threading.ThreadHelper:ThreadStart ()


Logs: https://gist.github.com/HugsLibRecordKeeper/4c401951bfdd3537220da157f0fd1a95
< >
Viser 1-8 af 8 kommentarer
Rovstam 30. aug. kl. 14:50 
ChatGPT said: Yep — that stack trace points to a mod crash. Short version: the crash is coming from UnlimitedHugs / AllowTool (the AllowTool.PartyHuntHandler.get_WorldSettings call). That mod is calling something that doesn’t exist yet (a null world/settings) during map/save load, producing a NullReferenceException. The usual fixes are: disable or update the mod, or apply a small null-check patch in the mod code. Below I give a safe, step-by-step troubleshooting checklist and concrete fixes you can try right now.
Rovstam 30. aug. kl. 14:51 
It's 3 errors, second error is:

JobDriver threw exception in toil MakeNewToils's initAction for pawn Mech_Cleansweeper1045867 driver=JobDriver_Wait (toilIndex=0) driver.job=(Wait (Job_7969669))
System.NullReferenceException: Object reference not set to an instance of an object
[Ref B29DD0C4] Duplicate stacktrace, see ref for original
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
Verse.AI.JobUtility:TryStartErrorRecoverJob (Verse.Pawn,string,System.Exception,Verse.AI.JobDriver)
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.StartJob_Patch1 (Verse.AI.Pawn_JobTracker,Verse.AI.Job,Verse.AI.JobCondition,Verse.AI.ThinkNode,bool,bool,Verse.ThinkTreeDef,System.Nullable`1<Verse.AI.JobTag>,bool,bool,System.Nullable`1<bool>,bool,bool,bool)
Verse.AI.JobUtility:TryStartErrorRecoverJob (Verse.Pawn,string,System.Exception,Verse.AI.JobDriver)
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.StartJob_Patch1 (Verse.AI.Pawn_JobTracker,Verse.AI.Job,Verse.AI.JobCondition,Verse.AI.ThinkNode,bool,bool,Verse.ThinkTreeDef,System.Nullable`1<Verse.AI.JobTag>,bool,bool,System.Nullable`1<bool>,bool,bool,bool)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch2 (Verse.AI.Pawn_JobTracker,Verse.AI.JobCondition,bool,bool)
Verse.AI.JobDriver:EndJobWith (Verse.AI.JobCondition)
Verse.AI.JobDriver:Notify_PatherFailed ()
Verse.AI.Pawn_PathFollower:PatherFailed ()
Verse.AI.Pawn_PathFollower:TryResumePathingAfterLoading ()
Verse.Pawn:PostMapInit ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Map.FinalizeInit_Patch2 (Verse.Map)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Map.FinalizeLoading_Patch3 (Verse.Map)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Game.LoadGame_Patch6 (Verse.Game)
Verse.SavedGameLoaderNow:LoadGameFromSaveFileNow (string)
Verse.Root_Play/<>c:<Start>b__1_1 ()
Verse.LongEventHandler:RunEventFromAnotherThread (System.Action)
Verse.LongEventHandler/<>c:<UpdateCurrentAsynchronousEvent>b__28_0 ()
System.Threading.ThreadHelper:ThreadStart_Context (object)
System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object)
System.Threading.ThreadHelper:ThreadStart ()
Rovstam 30. aug. kl. 14:52 
Third:

An error occurred while starting an error recover job. We have to stop now to avoid infinite loops. This means that the pawn is now jobless which can cause further bugs. pawn=Mech_Cleansweeper1045867
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
Verse.AI.JobUtility:TryStartErrorRecoverJob (Verse.Pawn,string,System.Exception,Verse.AI.JobDriver)
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.StartJob_Patch1 (Verse.AI.Pawn_JobTracker,Verse.AI.Job,Verse.AI.JobCondition,Verse.AI.ThinkNode,bool,bool,Verse.ThinkTreeDef,System.Nullable`1<Verse.AI.JobTag>,bool,bool,System.Nullable`1<bool>,bool,bool,bool)
Verse.AI.JobUtility:TryStartErrorRecoverJob (Verse.Pawn,string,System.Exception,Verse.AI.JobDriver)
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.StartJob_Patch1 (Verse.AI.Pawn_JobTracker,Verse.AI.Job,Verse.AI.JobCondition,Verse.AI.ThinkNode,bool,bool,Verse.ThinkTreeDef,System.Nullable`1<Verse.AI.JobTag>,bool,bool,System.Nullable`1<bool>,bool,bool,bool)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch2 (Verse.AI.Pawn_JobTracker,Verse.AI.JobCondition,bool,bool)
Verse.AI.JobDriver:EndJobWith (Verse.AI.JobCondition)
Verse.AI.JobDriver:Notify_PatherFailed ()
Verse.AI.Pawn_PathFollower:PatherFailed ()
Verse.AI.Pawn_PathFollower:TryResumePathingAfterLoading ()
Verse.Pawn:PostMapInit ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Map.FinalizeInit_Patch2 (Verse.Map)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Map.FinalizeLoading_Patch3 (Verse.Map)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Game.LoadGame_Patch6 (Verse.Game)
Verse.SavedGameLoaderNow:LoadGameFromSaveFileNow (string)
Verse.Root_Play/<>c:<Start>b__1_1 ()
Verse.LongEventHandler:RunEventFromAnotherThread (System.Action)
Verse.LongEventHandler/<>c:<UpdateCurrentAsynchronousEvent>b__28_0 ()
System.Threading.ThreadHelper:ThreadStart_Context (object)
System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object)
System.Threading.ThreadHelper:ThreadStart ()
Kenny Dave For 15 timer siden 
Most of my pawns are standing still most of the time. Is this the same issue? Is there a solution?

It's a save killer as it stands (pun intended). I've removed the mod, but the standing bug persists - no errors in log.

It would be handy if the stack trace at least told us what it was trying to haul and where if applicable. Then maybe I could rescue the game by deleting an object or something.

Zenav threw exception in WorkGiver HaulUrgently: System.NullReferenceException: Object reference not set to an instance of an object
[Ref D33F34F3]
at Verse.GridsUtility.Fogged (Verse.Thing t) [0x00006] in <31482697ada14932981abc5e76101d5d>:0
at Verse.AI.HaulAIUtility.PawnCanAutomaticallyHaulFast (Verse.Pawn p, Verse.Thing t, System.Boolean forced) [0x00034] in <31482697ada14932981abc5e76101d5d>:0
- PREFIX net.pardeike.rimworld.mods.achtung: Boolean AchtungMod.HaulAIUtility_PawnCanAutomaticallyHaulFast_Patch:Prefix(Pawn p, Thing t, Boolean forced, Boolean& __result)
at AllowTool.WorkGiver_HaulUrgently+<PotentialWorkThingsGlobal>d__3.MoveNext () [0x00052] in <8a098910d6a84b188090b9d6c096e9ee>:0
at Verse.GenClosest.ClosestThing_Global (Verse.IntVec3 center, System.Collections.IEnumerable searchSet, System.Single maxDistance, System.Predicate`1[T] validator, System.Func`2[T,TResult] priorityGetter, System.Boolean lookInHaulSources) [0x0013c] in <31482697ada14932981abc5e76101d5d>:0
at Verse.GenClosest.ClosestThingReachable (Verse.IntVec3 root, Verse.Map map, Verse.ThingRequest thingReq, Verse.AI.PathEndMode peMode, Verse.TraverseParms traverseParams, System.Single maxDistance, System.Predicate`1[T] validator, System.Collections.Generic.IEnumerable`1[T] customGlobalSearchSet, System.Int32 searchRegionsMin, System.Int32 searchRegionsMax, System.Boolean forceAllowGlobalSearch, Verse.RegionType traversableRegionTypes, System.Boolean ignoreEntirelyForbiddenRegions, System.Boolean lookInHaulSources) [0x00147] in <31482697ada14932981abc5e76101d5d>:0
at ExpandedRoofing.ClosestThingReachableHelper.ClosestThingReachableWrapper (Verse.IntVec3 root, Verse.Map map, Verse.ThingRequest thingReq, Verse.AI.PathEndMode peMode, Verse.TraverseParms traverseParams, System.Single maxDistance, System.Predicate`1[T] validator, System.Collections.Generic.IEnumerable`1[T] customGlobalSearchSet, System.Int32 searchRegionsMin, System.Int32 searchRegionsMax, System.Boolean forceAllowGlobalSearch, Verse.RegionType traversableRegionTypes, System.Boolean ignoreEntirelyForbiddenRegions, System.Boolean lookInHaulSources) [0x00010] in <21baee2048cb405ab6be64493b9b22bf>:0
at RimWorld.JobGiver_Work.TryIssueJobPackage (Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams) [0x00678] in <31482697ada14932981abc5e76101d5d>:0
- TRANSPILER rimworld.whyisthat.expandedroofing.fixbuildorder: IEnumerable`1 ExpandedRoofing.FixFinishFrameBuildOrder:Transpiler(IEnumerable`1 instructions)
- TRANSPILER SmarterConstruction: List`1 SmarterConstruction.Patches.PatchMakeFinishFramesPrioritized:Transpiler(IEnumerable`1 instructions, ILGenerator generator)
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.UnityEngine.StackTraceUtility.ExtractStackTrace_Patch1()
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.Verse.Log.Error_Patch2(System.String)
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.RimWorld.JobGiver_Work.TryIssueJobPackage_Patch2(RimWorld.JobGiver_Work, Verse.Pawn, Verse.AI.JobIssueParams)
[Core, Assembly-CSharp.dll] Verse.AI.ThinkNode_PrioritySorter.TryIssueJobPackage(Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams)
[Core, Assembly-CSharp.dll] Verse.AI.ThinkNode_Priority.TryIssueJobPackage(Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams)
[Core, Assembly-CSharp.dll] Verse.AI.ThinkNode_Tagger.TryIssueJobPackage(Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams)
[Core, Assembly-CSharp.dll] Verse.AI.ThinkNode_Subtree.TryIssueJobPackage(Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams)
[Core, Assembly-CSharp.dll] Verse.AI.ThinkNode_Priority.TryIssueJobPackage(Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams)
[Core, Assembly-CSharp.dll] Verse.AI.ThinkNode_Conditional.TryIssueJobPackage(Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams)
[Core, Assembly-CSharp.dll] Verse.AI.ThinkNode_Priority.TryIssueJobPackage(Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams)
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.Verse.AI.Pawn_JobTracker.DetermineNextJob_Patch1(Verse.AI.Pawn_JobTracker, Verse.ThinkTreeDef&, System.Boolean)
[Core, Assembly-CSharp.dll] Verse.AI.Pawn_JobTracker.TryFindAndStartJob()
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch3(Verse.AI.Pawn_JobTracker, Verse.AI.JobCondition, System.Boolean, System.Boolean)
[Core, Assembly-CSharp.dll] Verse.AI.Pawn_JobTracker.JobTrackerTickInterval(System.Int32 delta)
[Core, Assembly-CSharp.dll] Verse.Pawn.TickInterval(System.Int32 delta)
[Core, Assembly-CSharp.dll] Verse.Thing.DoTick()
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.Verse.TickList.Tick_Patch2(Verse.TickList)
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.Verse.TickManager.DoSingleTick_Patch4(Verse.TickManager)
[Core, Assembly-CSharp.dll] Verse.TickManager.TickManagerUpdate()
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.Verse.Game.UpdatePlay_Patch2(Verse.Game)
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.Verse.Root_Play.Update_Patch1(Verse.Root_Play)
Sidst redigeret af Kenny Dave; For 8 timer siden
Rovstam For 8 timer siden 
Oprindeligt skrevet af Kenny Dave:

- TRANSPILER rimworld.whyisthat.expandedroofing.fixbuildorder: IEnumerable`1 ExpandedRoofing.FixFinishFrameBuildOrder:Transpiler(IEnumerable`1 instructions)
- TRANSPILER SmarterConstruction: List`1 SmarterConstruction.Patches.PatchMakeFinishFramesPrioritized:Transpiler(IEnumerable`1 instructions, ILGenerator generator)
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.UnityEngine.StackTraceUtility.ExtractStackTrace_Patch1()
[Harmony, 0Harmony.dll] MonoMod.Utils.DynamicMethodDefinition.Verse.Log.Error_Patch2(System.String)

I am no modder but the offender mods are listed above.

-Expanded roofing
-Smarter construction
Rovstam For 8 timer siden 
- PREFIX net.pardeike.rimworld.mods.achtung: Boolean AchtungMod.HaulAIUtility_PawnCanAutomaticallyHaulFast_Patch:Prefix(Pawn p, Thing t, Boolean forced, Boolean& __result)
at AllowTool.WorkGiver_HaulUrgently+<PotentialWorkThingsGlobal>d__3.MoveNext () [0x00052] in

Also achtung. Why you run that mod with allow tool? Achtung has the same functionalities than it. The fact that your save got wiped it's entirely your fault and none inherent to allow tool.

My red errors are... strange, but something that escapes the scope of my knowledge. Hence why i posted it.
Kenny Dave For 7 timer siden 
Oprindeligt skrevet af Rovstam:
Achtung has the same functionalities than it. The fact that your save got wiped it's entirely your fault and none inherent to allow tool.

My red errors are... strange, but something that escapes the scope of my knowledge. Hence why i posted it.

This is a ridiculous comment and I won't be engaging with it.
Rovstam For 5 timer siden 
Yeah i pulled half of it from my ass. Just read the log and it (usually) says the offending mods.
< >
Viser 1-8 af 8 kommentarer
Per side: 1530 50