RimWorld

RimWorld

Extended Storage
RadGH Feb 19, 2019 @ 6:13pm
People get stuck, errors in console, infinite loop stacking
I started using this recently in a new world and have been having a lot of pathing issues. People get stuck "standing" indefinitely. Sometimes it's impossible to issue a new command, other times that works OK.

I also have this guy repeatedly putting herbal medicine into a storage shelf and then picking it up again.

https://radleysustaire.com/s3/ed9b86/

In that same situation I ordered Jackal to tend to Cubby which resulted in Jackal standing still. The error was about Jackal trying to do the "tend patient" job 10 times in one tick, with references to herbal medicine. I disabled the herbal medicine on top and the stack of 1 next to it, and Jackal still gave the error. Then I realize Jackal was trying to take herbal medicine out of the second stack. Forbidding the second stack in addition to the top one, and Jackal was able to tend to the patient.

Logs with errors: {LINK REMOVED}
< >
Showing 1-10 of 10 comments
RadGH Feb 19, 2019 @ 8:35pm 
I think it may be directional. Having a row of these stacked horizontally doesn't have a problem. But when they are stacked vertically I run in to problems. Not 100% sure on that since one is cloth and one is medicine but, hmmm
TerraggosaurusRex Feb 20, 2019 @ 5:39am 
It looks like the first pawn is trying to 'tidy up' the stacks (a low-priority haul job that ES adds). Any mod that changes stack sizes can influence when that job is triggered. I don't see this a lot, but setting the priorities on immediately nearby shelves to be different seems to stop making the pawns so neurotic about it.

As for the 10 haul jobs in a tick (Tend requires a haul to carry the medicine) - I used to have the same problems. It was Pick up and Haul, but an update (Dec 2018, IIRC) fixed it to the point that I've only seen it a handful of times since then. Each of those times I was able to draft/undraft to clear it.

Looking at my bases, it looks like I've unwittingly started to make horizontal storage clusters
rather than vertical ones - weird that directionality would be an edge case for pathfinding.
RadGH Mar 2, 2019 @ 5:29pm 
I wound up still having this issue for particular storage containers. Recently it was clothes storage and it really made the game chug when people tried to move clothes to a clothes storage with a whole lot of errors like:

Danger started 10 jobs in one tick. newJob=HaulToCell (Job_6813723) A=Thing_Apparel_Parka1308734 B=(131, 0, 126) jobGiver=RimWorld.JobGiver_Work jobList=(Wait (Job_6813689)) (HaulToCell (Job_6813696) A=Thing_Apparel_Parka1308734 B=(131, 0, 126)) (HaulToCell (Job_6813699) A=Thing_Apparel_Parka1308734 B=(131, 0, 126)) (HaulToCell (Job_6813702) A=Thing_Apparel_Parka1308734 B=(131, 0, 126)) (HaulToCell (Job_6813705) A=Thing_Apparel_Parka1308734 B=(131, 0, 126)) (HaulToCell (Job_6813708) A=Thing_Apparel_Parka1308734 B=(131, 0, 126)) (HaulToCell (Job_6813711) A=Thing_Apparel_Parka1308734 B=(131, 0, 126)) (HaulToCell (Job_6813714) A=Thing_Apparel_Parka1308734 B=(131, 0, 126)) (HaulToCell (Job_6813717) A=Thing_Apparel_Parka1308734 B=(131, 0, 126)) (HaulToCell (Job_6813720) A=Thing_Apparel_Parka1308734 B=(131, 0, 126)) (HaulToCell (Job_6813723) A=Thing_Apparel_Parka1308734 B=(131, 0, 126)) lastJobGiver=RimWorld.JobGiver_Work

I disabled Pick Up and Haul but that didn't change anything.

As soon as I disabled all items from being stored in the clothes storage, the errors went away and I gained another 30 FPS. It's not just clothes, I had the same for meat storage too. Hmmm.
Yeah, the work-giver assigning the same item (Thing_Apparel_Parka1308734) to be moved to the same cell (131, 0, 126) more than once is just dumb. The more I see it the more it looks like when ES allows for more than one item on a cell, it is removing some implicit assumption by the work giver that there is no need to sanity check because there would never be more that one item in a cell. The fact that it is an 'generic' error ("started 10 jobs in a tick") shows no real check occurs - per-cell reservations / limitations are assumed to have prevented this from ever happening in the first place by the Game Dev.

Of course that means eff-all when it stutters the game to unplayability.

Realistically, if :

  • Micro-managing priorities
  • Manually setting one ES building to accept one one thing
  • Lower priority overflow stockpiles nearby
  • Workbench recipe-radius adjustment
  • Pathing exclusion for storage cell

Isn't getting the relief you need, you may need to reposition the ES buildings or not play with those types. It sucks, cause ES fixes some less-then-optimal design decisions by the Game Dev - but modders can't fix everything.

I'm just another rando, and what I say has exactly zero weight. But you can talk to the dev/maintainers of this mod - the github link (you can post an issue against this mod) can be found at the bottom of the Unofficial FAQ.

HTH, at least a little.
Last edited by TerraggosaurusRex; Mar 4, 2019 @ 4:22am
RadGH Mar 3, 2019 @ 11:09am 
Thanks, I appreciate the tips. I suppose I will make stockpiles accept one type of item which seems to have worked for my food stockpiles (specifically holding rice/corn/potatos now). I think I understand what you meant as to why it is happening. Hopefully a better solution can be found some day! I will post to the Github to see if that helps but I get that there might not be a solution available in the game's code.
Bischop Apr 5, 2019 @ 8:24am 
The infinite loop stacking is such an annoying bug, it randomly stutters the game until it gets unplayable...
RadGH Apr 5, 2019 @ 8:11pm 
I posted about it on Github and the author is "reluctant to blame Extended Storage" for the bug. It is probably a conflict between two working mods. If you are able to identify what the problem is, please share your findings!

Here is the github thread: https://github.com/DoctorVanGogh/ExtendedStorage/issues/20

I was never able to solve the issue and unfortunately stopped using the mod. Which is a shame, I loved the mod :(
&(*null) Oct 6, 2019 @ 5:50am 
@RadGH, not trying to bash too heavily here but going through the github history on this and just viewing other stuff on these guys githubs you'll see that this is a fork. But you'll also see that one of the authors has a TON of repos and the other hasn't updated in 2 years. Digging further, you'll see the one with a ton of repos is basically just forking a ton of stuff and isn't doing much. So, this just leads me to think that they are just copy cats and can't actually fix anything wrong with the it.

I'm not saying it's terrible -- we all have to get by some how, but these guys cause issues for me when I'm looking for work without a degree.

You'll also see a few other forks that were made of this mod. Now, one of the forks was done by Mehni, the author for PickUpAndHaul and is active with round about similar commit dates.
PickUpAndHaul being a common mod, Mehni actually being a decent coder who doesn't try to copy and paste the answers, and the fact that they have their own fork --- Maybe ask them for help.

I stumbled across this thread searching for the best source for this mod because of the ridiculous that I found.

If you do manage to reach out to Mehni, have them update the "about" to "Help by promoting this library" for Harmony. https://github.com/pardeike/Harmony, as the content in this mod suggest that the guy who wrote the harmony code is not Andreas (he wrote Zombieland, Camera+, and Achtung -- with Harmony which he started back in 2017! -- at least according to Git)

If any of them update it - let me know! I don't know .NET or Mono to be able to accomplish any of this myself.
Last edited by &(*null); Oct 6, 2019 @ 5:55am
TerraggosaurusRex Oct 27, 2019 @ 5:55pm 
Reposting this here for anyone who comes by later:

It may be the "Merge things" and "Merge Storage" work givers are going hyper-aggressive and can't effectively handle multiple items / stacks on the same cell. "Merge Storage" is the ES provided building storage tidying up functionality, while "Merge things" is the vanilla tidying up functionality for stacks.

To effectively disable the work from being given, use a Work tab manager (I use "Work Tab" by Fluffy ) and making sure those specific work type priorities are set to never. For Fluffy's Work Tab, control-click the "Haul" and waaaaay on the right control-right-click the column headers to lower the priority / turn off the entire column (all pawns).

You can still manually right click to force a merge, but that shouldn't trigger a invalid job queue.
bobbybrown15 Oct 31, 2019 @ 7:28pm 
I posted this in the other thread but i see this was continued here, if this is the case and the containers themselves are causing the issue with being unable to handle multiple types of things, that kinda ruins this mod for me, i have hauling robots that i cant directly command that only do hauling, and they trigger this issue as well, if its not going to be fixed i am not sure i can keep using this mod
< >
Showing 1-10 of 10 comments
Per page: 1530 50