RimWorld

RimWorld

Dubs Bad Hygiene
 Denna tråd har blivit fäst, så den är troligtvis viktig
Dubwise  [utvecklare] 5 okt, 2017 @ 9:55
2
BUG REPORTS
post bug reports here please:

https://github.com/Dubwise56/Dubs-Bad-Hygiene/issues

Thank you
Senast ändrad av Dubwise; 29 jul @ 7:27
< >
Visar 901-915 av 1,620 kommentarer
Anvil Pants 27 apr, 2020 @ 8:33 
Might be Share The Load. It isn't reporting a PreToil patch in log, (Meals on Wheels is), but I suppose that this related issue from Share The Load could cause exception in PreToil:

Hodge started 10 jobs in one tick. newJob=HaulToCell (Job_29176628) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32) jobGiver=RimWorld.JobGiver_Work jobList=(HaulToCell (Job_29176598) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32)) (HaulToCell (Job_29176601) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32)) (HaulToCell (Job_29176604) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32)) (HaulToCell (Job_29176607) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32)) (HaulToCell (Job_29176610) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32)) (HaulToCell (Job_29176613) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32)) (HaulToCell (Job_29176616) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32)) (HaulToCell (Job_29176619) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32)) (HaulToCell (Job_29176622) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32)) (HaulToCell (Job_29176625) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32)) (HaulToCell (Job_29176628) A=Thing_ComponentIndustrial5937020 B=(27, 0, 32))
Verse.Log:Error(String, Boolean)
Verse.AI.JobUtility:TryStartErrorRecoverJob(Pawn, String, Exception, JobDriver)
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:DMD<DMD<StartJob_Patch2>?1641819904::StartJob_Patch2>(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?1282144384::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:DMD<DMD<Tick_Patch1>?-1276764928::Tick_Patch1>(Pawn)
Verse.TickList:DMD<DMD<Tick_Patch2>?-2031350144::Tick_Patch2>(TickList)
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()
Anvil Pants 27 apr, 2020 @ 8:42 
Seems to be the case. At least, I'm not able to god mode the pawns into it after removing Share The Load. Thank you.
Anvil Pants 27 apr, 2020 @ 10:22 
I have this occurrence saved just prior to happening, but I haven't found the pawn. However I notice this in trace:

RimWorld.<>c__DisplayClass2_0:<LayDown>b__1()

The mod Do Not Disturb conflicts with the hygiene mod. Maybe this exception is that. When pawns sleep, Do Not Disturb has them setting forbidden flag on their bedroom doors. It nicely handles some cases, but not this one. When a pawn is waking up, Hygiene does its path checks before DND has removed the door flag. This is the first time I've seen an exception throw. Normally the pawns just go on the floor while DND is unlocking their door.

Exception in Verse.AI.ThinkNode_PrioritySorter TryIssueJobPackage: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Verse.Area.get_Item (Verse.IntVec3 c) [0x00017] in <bbc76d4d64944976acb84ce2ce5457b4>:0
at RimWorld.ForbidUtility.InAllowedArea (Verse.IntVec3 c, Verse.Pawn forPawn) [0x00020] in <bbc76d4d64944976acb84ce2ce5457b4>:0
at RimWorld.ForbidUtility.IsForbidden (Verse.IntVec3 c, Verse.Pawn pawn) [0x0000b] in <bbc76d4d64944976acb84ce2ce5457b4>:0
at DubsBadHygiene.SanitationUtil+<>c__DisplayClass10_0.<TryFindWaterCell>b__1 (Verse.IntVec3 c) [0x00000] in <5424ce500161447fbb75f2d4a0d1d769>:0
at Verse.CellFinder.TryFindRandomCellNear (Verse.IntVec3 root, Verse.Map map, System.Int32 squareRadius, System.Predicate`1[T] validator, Verse.IntVec3& result, System.Int32 maxTries) [0x000aa] in <bbc76d4d64944976acb84ce2ce5457b4>:0
at DubsBadHygiene.SanitationUtil.TryFindWaterCell (Verse.Pawn pawn, System.Single range, System.Boolean allowOcean) [0x000d4] in <5424ce500161447fbb75f2d4a0d1d769>:0
at DubsBadHygiene.ClosestSanitation.FindBestHygieneSource (Verse.Pawn pawn, System.Boolean Urgent, System.Single shortRange) [0x00060] in <5424ce500161447fbb75f2d4a0d1d769>:0
at DubsBadHygiene.JobGiver_HaveWash.TryGiveJob (Verse.Pawn pawn) [0x0007a] in <5424ce500161447fbb75f2d4a0d1d769>:0
at Verse.AI.ThinkNode_JobGiver.TryIssueJobPackage (Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams) [0x00000] in <bbc76d4d64944976acb84ce2ce5457b4>:0
at Verse.AI.ThinkNode_PrioritySorter.TryIssueJobPackage (Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams) [0x000fc] in <bbc76d4d64944976acb84ce2ce5457b4>:0
Verse.Log:Error(String, Boolean)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.Pawn_JobTracker:DMD<DMD<DetermineNextJob_Patch1>?89024000::DetermineNextJob_Patch1>(Pawn_JobTracker, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:CheckForJobOverride()
RimWorld.<>c__DisplayClass2_0:<LayDown>b__1()
Verse.AI.JobDriver:DriverTick()
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:DMD<DMD<Tick_Patch1>?-28444672::Tick_Patch1>(Pawn)
Verse.TickList:DMD<DMD<Tick_Patch2>?1637010560::Tick_Patch2>(TickList)
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()
Senast ändrad av Anvil Pants; 27 apr, 2020 @ 10:23
Dubwise  [utvecklare] 27 apr, 2020 @ 10:23 
i guess they need to move their patch to run sooner
Anvil Pants 27 apr, 2020 @ 10:30 
:D Yeah. I had noticed it before and played around it. Put a linked toilet in the rooms. Like I said, it never threw exception before, or I didn't see it. I just looked at DND again and the conflict is a will not fix.

Edit: Dingo says your check is too soon.
Senast ändrad av Anvil Pants; 27 apr, 2020 @ 10:32
https://gist.github.com/dbb514112f9b35cc497b178f5d284f62

Don´t think I had that before. Also, I don´t really see any negative effect, water is still flowing in the water towers. pipes are still there ( an error I had from time to time in earlier rimworld builds).
Just flashes red errors until log stops.
Dubwise  [utvecklare] 29 apr, 2020 @ 11:50 
someones done a bad xpath patch or something
Silent.X 3 maj, 2020 @ 2:09 
The water table disppears, the mod prompts to reload the game.
Dubwise  [utvecklare] 3 maj, 2020 @ 8:07 
you have a buggy mod, check your log
lilwhitemouse 6 maj, 2020 @ 13:12 
Okay, in addition to stall doors not being standable, I found another one:
If you have a bathroom with linked toilet and build a shower, the shower is not linked. I suppose they should be checking for other linked items on spawn?
nikos 7 maj, 2020 @ 12:22 
the "Kitchen sink cabinet" is not connecting to the stove.
it says: "Work speed factor +10% (inactive)" the connection "Lines"? don't appear at all.
Raleon 8 maj, 2020 @ 7:29 
Hey! Thanks for the amazing mod! This was the first mod I downloaded and I have been using it since then in every gameplay, totaling around 500h now.

I'm not sure this was intended, so I'm reporting it here. My current colony is neolithic for the long run, using only latrines and tubs. I'm disposing of fecal sludge by collecting it in zones in a fairly large river and kicking them over. However, the dirty water doesn't pass under bridges, instead stays stuck along the upstream side of the bridge. I solved this mainly cosmetic problem by placing the waste zone downstream from all bridges, and now the dirt washes neatly away.

So, is it intended that fecal sludge in river water doesn't pass under bridges? I first had the problem with modded heavy bridge, but tested this with vanilla bridge too, with same result. Currently in this gameplay I've been having an ice age for a year, so haven't yet seen the effect of rain on this problem.
Raleon 8 maj, 2020 @ 7:38 
Omg I'm sorry, I was clearly too impatient. After waiting for a few days the river water cleared. So I guess it is intended that bridges slightly lengthen the time it takes for river water to clear from pollution, very smooth!
lilwhitemouse 8 maj, 2020 @ 18:23 
Bug report for you: I have 2 colonists with Plague, unfortunately they are in a caravan that is "resting." As soon as they were back in caravan, pawns in the main settlement started throwing errors:

Vudojir threw exception in WorkGiver washPatient: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <567df3e0919241ba98db88bec4c6696f>:0
at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0
at Verse.Thing.get_Map () [0x0001b] in <a53a58c7de254132b59afc478cafd9ed>:0
at DubsBadHygiene.WorkGiver_washPatient+<>c__DisplayClass2_0.<PotentialWorkThingsGlobal>b__0 (Verse.Pawn x) [0x00003] in <5424ce500161447fbb75f2d4a0d1d769>:0
at System.Linq.Enumerable+WhereListIterator`1[TSource].MoveNext () [0x00037] in <351e49e2a5bf4fd6beabb458ce2255f3>: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) [0x00131] in <a53a58c7de254132b59afc478cafd9ed>: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) [0x0014e] in <a53a58c7de254132b59afc478cafd9ed>:0
at RimWorld.JobGiver_Work.TryIssueJobPackage (Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams) [0x00411] in <a53a58c7de254132b59afc478cafd9ed>:0
Verse.Log:Error(String, Boolean)
RimWorld.JobGiver_Work:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.Pawn_JobTracker:DetermineNextJob(ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Dubwise  [utvecklare] 9 maj, 2020 @ 6:13 
i just tested that, spawned a caravan, gave them plague, they were in resting state at night, then started moving during the day, no errors, yet
Senast ändrad av Dubwise; 9 maj, 2020 @ 6:20
< >
Visar 901-915 av 1,620 kommentarer
Per sida: 1530 50