Trucks are incorrectly prioritizing dump requests from loose storage III

Bad behavior Vehicles & Roads
Walter Mundt [ideas] · 3 years ago

Issue description

In my current save file, I have a loose storage III full of dirt labeled "Surfacing Dirt Storage". It is set for trucks to empty it with priority 14 which results in trucks dumping dirt into the "Clearance Surfacing 1" mine control tower area as that is the only place that allows dirt to be dumped. However, it seems that trucks are preferring to do this over priority 10 storage->storage jobs that also need doing.

To help when looking at the attached save file: Surfacing Dirt Storage is in the southeast part of the map by the nuclear plant. Clearance Surfacing 1 MCT is tucked in south of the coal mine. The recycling area with the copper scrap source is by the labs and greenhouses. The copper scrap destination with the prio 10 fill request is east of the greenhouses.

Reproduction steps

  1. Load attached save 2023_u1_maybebug.save and run at 3x speed.
  2. Observe that a lot of dirt gets moved but copper scrap builds up in the waste processing buffers and does not get moved over to the storage north of the copper mine which is asking to be filled at priority 10. (Earlier I was also not seeing concrete slabs transferred from where they're made to the construction parts factory (also prio 10).
  3. Load the save file again, but this time move the red slider on the "Surfacing Dirt Storage" back to the top, removing the request to empty it.
  4. Observe that now the copper scrap job and is being completed where previously it was not. This is unexpected since the only change is the removal of a lower-priority job from the trucks.

Game version and build number

v0.5.3c

Operating system

Windows

Attachments

2023_u1_maybebug.save

1 attachment only for registered users
Captain Filip Captain Filip · 3 years ago

Thanks for your report. You are right. The issue here is that when we pair jobs, we group them by product and order the products by highest priority from any given product's buffer. Because you have several Dirt storages assigned to P9, dirt gets advanteg in the pairing procedure and thus also P14 storage silos with dirt gets that levarage. P10 silo for copper does not get a chance this way. because the P14 silo is massive and is not able to be satisfied in order to send dirt product down in the priority queue.

However, there was also another issue. Which was that storage silos that didn't have enough products to provide / receive were affecting the sorting priority. This will be fixed in the next patch (will be on Experimental branch for few days). The new patch has significantly reduced the issue and for instance now the copper scrap storage is maintained at full capacity. But it's not a final fix, but rather way to reduce this issue hitting so hard. Because if there is at least 1 dirt storage calling for dirt removal, it will end up pairing also other dirt storages. But the new fix will at least allow that we don't pair dirt all the time but only when there is something actionable at that priority level.

To fix this properly, we would need to rewrite the pairing algorithm without hurting peformance, which is tricky. I will keep this bug open to track this in case there is an opportunity to revisit it.

Walter Mundt [ideas] · 3 years ago

Thanks for the partial fix, that sounds like it will help. After the fix, will the game assign all the dirt jobs in one pass once one higher-priority task is available? E.g. if there're 12 idle trucks, one truck's worth of P9 dirt becomes available to move on some game tick, and a million P14 dirt is sitting in storage, will the other 11 trucks drive off to grab dirt right away as well, or is there some limit to how many jobs it will assign before it advances another tick and notices there's no more P9 dirt to get?

Captain Filip Captain Filip · 3 years ago

Unfortunately, there is no limit, so all trucks will take the dirt. We will try to improve this in our future updates.

22 Showing 1–4 of 4