Decided to try this after a long debate with myself whether or not I wanted to space save or go with the huge cavernous storage spaces I liked to design...
It seems to do the job, however, as of adding this mod to my list, it also seems to be causing 10 ticks work bugs and job driver/haul to cell exception errors when it comes to pawns carrying/hauling anything, even if it's to cook/craft.
JobDriver exception example:
And a 10 ticks bug that started happening with one of my personal modded objects after enabling Infinite Storage:
As soon as I emptied and deconstructed the textile & medicine storages, pawns were able to go back to work as normal. Not sure what to make of this, considering the mod mentioned is just a simple XML butcher table clone, but just thought I'd put this out there.
Now that I think of it... I do also have the researchable stats mod & researched stacking... I wonder if that also had anything to do with it? But it hasn't affected anything else in my current playthrough thus far in terms of errors or anything, either.
It seems to do the job, however, as of adding this mod to my list, it also seems to be causing 10 ticks work bugs and job driver/haul to cell exception errors when it comes to pawns carrying/hauling anything, even if it's to cook/craft.
JobDriver exception example:
Code Select
JobDriver threw exception in initAction. Pawn=Dre, Job=HaulToCell (Job_1602051) A=Thing_VividOrangeCloth1515774 B=(176, 0, 272), Exception: System.NullReferenceException: Object reference not set to an instance of an object
at Verse.GridsUtility.Roofed (Verse.IntVec3,Verse.Map) <0x00009>
at Five_Second_Rule.ThingSpawn_Patch.Postfix (Verse.Thing) <0x0004e>
at (wrapper dynamic-method) Verse.Thing.SpawnSetup_Patch1 (object,Verse.Map,bool) <0x00731>
at Verse.ThingWithComps.SpawnSetup (Verse.Map,bool) <0x00018>
at Verse.GenSpawn.Spawn (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.Rot4,bool) <0x0023c>
at Verse.GenSpawn.Spawn (Verse.Thing,Verse.IntVec3,Verse.Map) <0x0003e>
at Verse.GenPlace.TryPlaceDirect (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x0019e>
at Verse.GenPlace.TryPlaceThing (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.ThingPlaceMode,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x0009f>
at Verse.GenDrop.TryDropSpawn (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.ThingPlaceMode,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x00278>
at Verse.ThingOwner.TryDrop (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.ThingPlaceMode,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x000aa>
at Verse.ThingOwner`1<Verse.Thing>.TryDrop (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.ThingPlaceMode,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x000ce>
at Verse.Pawn_CarryTracker.TryDropCarriedThing (Verse.IntVec3,Verse.ThingPlaceMode,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x00066>
at Verse.AI.Toils_Haul/<PlaceHauledThingInCell>c__AnonStorey6.<>m__0 () <0x00246>
at Verse.AI.JobDriver.TryActuallyStartNextToil () <0x002e9>
lastJobGiver=RimWorld.JobGiver_Work, curJob.def=HaulToCell, curDriver=Verse.AI.JobDriver_HaulToCell
Verse.Log:Error(String)
Verse.AI.Pawn_JobTracker:StartErrorRecoverJob(String)
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:TryEnterNextPathCell()
Verse.AI.Pawn_PathFollower:PatherTick()
Verse.Pawn:Tick_Patch1(Object)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()
And a 10 ticks bug that started happening with one of my personal modded objects after enabling Infinite Storage:
Code Select
Wade started 10 jobs in one tick. newJob=DoBill (Job_1602750) A=Thing_ChoppingBlock683647 jobGiver=RimWorld.JobGiver_Work jobList=(DoBill (Job_1602710) A=Thing_ChoppingBlock683647) (DoBill (Job_1602714) A=Thing_ChoppingBlock683647) (DoBill (Job_1602718) A=Thing_ChoppingBlock683647) (DoBill (Job_1602722) A=Thing_ChoppingBlock683647) (DoBill (Job_1602726) A=Thing_ChoppingBlock683647) (DoBill (Job_1602730) A=Thing_ChoppingBlock683647) (DoBill (Job_1602734) A=Thing_ChoppingBlock683647) (DoBill (Job_1602738) A=Thing_ChoppingBlock683647) (DoBill (Job_1602742) A=Thing_ChoppingBlock683647) (DoBill (Job_1602746) A=Thing_ChoppingBlock683647) (DoBill (Job_1602750) A=Thing_ChoppingBlock683647) lastJobGiver=RimWorld.JobGiver_Work
Verse.Log:Error(String)
Verse.AI.Pawn_JobTracker:StartErrorRecoverJob(String)
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:TryEnterNextPathCell()
Verse.AI.Pawn_PathFollower:PatherTick()
Verse.Pawn:Tick_Patch1(Object)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()
As soon as I emptied and deconstructed the textile & medicine storages, pawns were able to go back to work as normal. Not sure what to make of this, considering the mod mentioned is just a simple XML butcher table clone, but just thought I'd put this out there.

Now that I think of it... I do also have the researchable stats mod & researched stacking... I wonder if that also had anything to do with it? But it hasn't affected anything else in my current playthrough thus far in terms of errors or anything, either.



