Jump to content

Storage pathfinding: Compactor closest to dupe when starting task instead of closest to item

  • Branch: Live Branch Version: Windows Pending

I observed&tested now how duplicants who are choosing to store an item will select the storage compactor which is closest to them when they start the storage task even in the case a closer compactor to the item has the same priority and content allowance.

As an example, 
Rowan chooses the storage at the bottom like anybody would but Stinky chooses the Storage next to Lindsay. Needless to say, it is an utter waste of time. All storage compactors have the very same setting.

To make it more extreme I send Stinky even further and pick the task from next to the top right compactor:
and ofc, Stinky chose that compactor far far away. Linday is choosing the one Stinky choose previously and Rowan is still the smart one.

Please consider hotfixing this AI flaw soon for it wastes a lot of time and should be rather easily/switfly fixed by having the duplicant choose the storage (again) after picking up and still prevent the case where no storage is actually available (I suppose that is why the storage compactor is chosen first). Thank you for your good work.

Steps to Reproduce
1) Have a Duplicant work for storage 2) Have 2 Storage Compactors with the same priority and content allowance, have no other compactor with higher priority for the same content 3) Send the Dupe manually to one 4) Have Dupe pick up something that should go into either 5) After the delivery route to the Storage compactor where they were next to is shown when picked up, move dupe manually to the other 6) See that the Dupe choose the other Storage which they were moved to

User Feedback

I can confirm this bug too. I have it since EU at least. I can even add my point of view :

It seems that duplicants only see one compactor although they should see a list. Delivering only to one compactor per travel. Before they could deliver to multiple in one trip.

Storage AI is messed up at the moment.

Share this comment

Link to comment
Share on other sites

It's worth noting that this logic/path-finding also applies to delivering (to construction sites at least) and I would not be surprised if it was not also to any task involving going from close to A to B and back to A. Going from A to B and check if there is nothing closer with the same priority would be better.

The logic than could be made "flawless" (more human ) by enabling shortest travel time by checking in advance which task would have the lowest travel time but that might mean checking each and every task with the same priority, I am not sure how much that'd demand, I only know that AI is a very difficult thing to develop, in various way (like here: somewhat smart&resource friendly).

To be frank, I am not quite sure if this is now an unconventional bug or design flaw or limitation which would be better off suggested to be changed but the time wasted is significant. The main concern is that all solutions may not be suitable depending on context and will of the individual but productivity and efficiency should be the main goal. 

Share this comment

Link to comment
Share on other sites

I'd like to add to this, noting that this bug is still here. TL;DR for devs:  Please change storage prioritization from "proximity to Dupe" to "proximity to Errand"


I had some full compactors far away in my base, and needed to move them a few tiles as they were in the way for a building I had planned. No problemo, build the new & deconstruct the old and off the dupes go transferring the stuff. Halfway the job, nighttime came.

Near their beds I have some compactors that are not completely full yet. You guessed it; dupes would run all the way to the far end of the map (I have no transport yet) to pick up a piece of the leftover pile, and run all the way back to their dorms and store it to the nearest compactor there. Since the new sweeping job keeps 'starting' in their dorms, they'll keep stuck to this loop, making a very simple job suddenly cost more than a complete cycle to finish.

(I manually moved them to the pile to circumvent it though, so they'd start their job there, but still if I'm not micromanaging or paying enough attention, they'll be wasting hours of time.)

I figure it should be as easy as "choose storage" from a virtual / future location, being the location where the job starts rather then where the dupe is?



Added to this, I have a biome for Sleet Wheat, and built specific cold dirt storage next to it. However when a dupe decides to do the job of filling tiles with dirt, it'll happily choose storage "close to Dupe" over the storage "close to Errand", ending up in them putting 30 degree dirt from the middle of my base into my should-be-freezing farmtiles. Priority on the compactors themselves does not seem to fix this, this is only taken into account for actually *storing*, not acquiring.

Intuitively, storage right now does not make sense and completely breaks storage management, yet the fix seems rather simple. It's not really possible to circumvent either, say you remove all central storage the problem might even get worse; Dupe in center map, Errand in East but the closest storage for this errand happens to be in the West relative to the dupe. Dupe runs all the way west, gets stuff, runs all the way east and does errand, while perfectly fine dedicated storage was built right next to the errand.

Please change storage prioritization from "close to Dupe" to "close to Errand"

Edited by Boxman_90

Share this comment

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...