
[BUG] Tasks are not being distributed among multiple warehouses
starpley opened this issue ยท 6 comments
Is there an existing issue for this?
- I have searched the existing issues
Are you using the latest MineColonies Version?
- I am running the latest beta version of MineColonies for my Minecraft version.
Did you check on the Wiki? or ask on Discord?
- I checked the MineColonies Wiki and made sure my issue is not covered there. Or I was sent from discord to open an issue here.
What were you playing at the time? Were you able to reproduce it in both settings?
- Single Player
- Multi Player
Minecraft Version
1.20.1
MineColonies Version
main branch
Structurize Version
1.20.1-1.0.742-RELEASE
Related Mods and their Versions
No response
Current Behavior
After the game was updated in early June to distribute the work among couriers evenly, I noticed that all tasks were assigned to one of my five warehouses. I attempted to resolve the issue by: destroying and recreating each warehouse, firing all workers, and rehiring them simultaneously. I've also tried changing the createiveresolve flag as well.
Expected Behavior
I would expect that tasks would be distributed across the warehouses appropriately, ideally in a way that considers the size of the current task list and the distance from the request to be filled. I was able to crudely resolve the issue by downloading and building the source and simply shuffling the list of resolvers in RequestHandler.java -> assignRequestDefault. This assigned tasks to the warehouses evenly, although it's not a long term solution.
Reproduction Steps
- Create a large colony with multiple warehouses
- Review the tasks assigned to each warehouse
Logs
N/A
Anything else?
This is an impressive piece of software. Thanks for all you do.
And another just now -> 4100+ Stripped oak log literally in a warehouse 40-50 blocks from a builder, all 5 couriers idle. But the builder is waiting on the logs in a 264 queue of tasks from a warehouse that's 300 blocks away.
I still have this issue on 1.20.1-1.1.806.
Only 1 of my 5 warehouses delivers stuff, the other 4 are just collecting (from farms and whatever) and otherwise don't do anything but hoard stuff.
Probably related I now realize - ldtteam/minecolonies-features#881
The closest warehouse delivers always. If the others are far from the consumers or don't have the items, they will not deliver. They should deliver if the other one doesn't ahve it though
Nope, I have 1 warehouse that runs deliveries 700 blocks away and has a task queue of 100+ deliveries. While other warehouses are closer that also have those items do nothing to deliver.
Likewise, using the keep in stock feature in each warehouse to keep a bunch of blocks and food items in stock everywhere does not get fulfilled and I have to repeatedly do that myself. The items are endlessly on my clipboard until I bring those items. Then re-appear a minute later because the warehouse immediately runs out to deliver them all over the place.
For example:
I have the 'main' warehouse in the center of my colony, build the colony around it, then a wall and a rural part of town outside the wall, which has its own warehouse. Most farm items go there, and there are 2 lumberjacks and animal farms there as well.
The chickenherder there can use seeds from the rural warehouse. There are 19k seeds in it. Yet it wants seeds from the main warehouse 200(ish) blocks away, which has very few seeds and constantly needs restocking of it.
I've seen this for all kinds of food things, logs, tools, dirt, cobble and more.
Most notably of-course because most of the warehouses always have 4+ couriers doing nothing around the hutblock and the task queue being empty everytime I look.
Except for the main/oldest warehouse.
Maybe I'm missing something, but if I have 35+ couriers I should not have to stock various warehouses myself and if I have 5 warehouses spread out over a 700 block spanning colony, ALL warehouses should run all over the place to deliver/distribute whatever is produced near each warehouse (made faster with the 'keep in stock' feature in warehouses). But none of that seems to happen reliably.
To add to my previous comment - I'll tinker a bit more with where stuff is stored shortly. Maybe I'll empty all items from the main warehouse or something, or just the stuff that's constantly being brought around to see if that improves things.
Meanwhile, if you have ideas for how to make this stuff work better please let me know.
Update: You were right (of-course) about the "closest warehouse does the delivery" bit. The main warehouse is just too 'central' to get a break and as such does a lot of the deliveries.
I did discover that all non craft-able items such as carrots, dirt, potatoes, wheat (Seeds) and such are not fulfilled by couriers.
For example: I have 20k wheat seeds in one warehouse, and want to keep 10 stacks in stock in another, I have to repeatedly make the delivery myself. The request system does not seem to want to deal with that. Craftable items like tools, planks and stripped logs, cobble (with a crusher) are no problem. But produced (raw) items are not handled by the delivery system.
This includes all food stuffs the farm produces and things like bamboo, logs, etc.
Other than that, the delivery system seems to work as intended.
Update 2: It mostly works, but I just caught the main warehouse deliver carrots (which it doesn't have( to the swine herder which is right next to my rural warehouse which has tons of carrots and idle couriers. So the main warehouse gets carrots from the rural one, then delivers it to a building that's literally 60 blocks from the rural warehouse.
Not sure how frequent that happens.
Still happening on version .814 .
I did reset the request system after updating, but it made no difference.
The main/oldest warehouse takes ALL the deliver jobs, even for items that aren't even in the WH. And delivers them all over from a queue of hundreds of tasks while 4 other warehouses that are often much more close to where the items need to go, or simply have those items, are idle and only do pickups from producing buildings.