RimWorld

RimWorld

Tree Chopping Speed Stat
Phant0m5 3 Mar, 2022 @ 11:09pm
Pawns freeze after tree cut, incompatibility with Rim73
One commentator said that their pawns freeze for a couple seconds after cutting trees. And I had the same issue! After some testing, I've found it's a compatibility issue with Rim73 - Performance and Optimisations. If you turn off that mod's job optimisations the errors stop, and if you uninstall THIS mod, the errors also stop.

It is entirely possible - maybe even probable - that this is mostly on Rim73's side, because apparently its job and hediff optimisations are done destructively, which can cause issues in mods. But, since the issue came up once here, I'll supply what information I can.

I have an error log uploaded through Hugslib that demonstrates this issue, because some modders demand a hugs log for errors:

https://gist.github.com/92b02d447a43d86124a590924d8e2310

But it's 6499 lines long and the actual errors, at the very end, just say this:

Ellie pathing to destroyed thing Plant_TreeOak42246
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)

Except there's four of them because I cut a bunch of trees to see if anything different happened. They were all identical except the tree ID. Notably though, this did NOT happen on every tree cut, just most of them.



So anyway, here's a stack trace instead:

Ellie pathing to destroyed thing Plant_TreeOak42246
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch2 (string)
(wrapper dynamic-method) Verse.AI.Pawn_PathFollower:Verse.AI.Pawn_PathFollower.StartPath_Patch3 (Verse.AI.Pawn_PathFollower,Verse.LocalTargetInfo,Verse.AI.PathEndMode)
Verse.AI.Toils_Goto/<>c__DisplayClass1_0:<GotoThing>b__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.JobDriver:JumpToToil (Verse.AI.Toil)
Verse.AI.Toils_Jump/<>c__DisplayClass0_0:<Jump>b__0 ()
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
TreeChopSpeed.JobDriver_PlantWork_Trees/<>c__DisplayClass6_0:<MakeNewToils>b__1 ()
(wrapper dynamic-method) Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch0 (Verse.AI.JobDriver)
(wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch1 (Verse.AI.Pawn_JobTracker)
(wrapper dynamic-method) Verse.Pawn:Verse.Pawn.Tick_Patch5 (Verse.Pawn)
Verse.TickList:Tick ()
(wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch8 (Verse.TickManager)
Verse.TickManager:TickManagerUpdate ()
(wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch3 (Verse.Game)
Verse.Root_Play:Update ()