Big truck carries too little in certain situations

Works as intended
super_aardvark · 4 years ago

Issue description

I've been bothered for a while by this behavior: a truck with capacity 60 goes to the Water Facility, which has 45 Waste Water in storage. It picks up 20 Waste Water and delivers it to a Liquid Dump. I eventually concluded that 20 is all that the liquid dump can accept at one time.

So I built a second liquid dump and attached a Fluid Storage to accept Waste Water. Now the truck has a choice: pick up 20 Waste Water and delivery it to a Liquid Dump, or pick up all 45 Waste Water and delivery it to the Fluid Storage attached to the Liquid Dump.

Obivously the second one is better. However, I have "Allow partially loaded trucks" turned off. So it can't deliver just 45 to the storage, that's not a full load. My Truck driver is a clever bugger though: if he delivers to the Liquid Dump instead, 20 is enough to count as a "full load" because that's the most the dump can accept.

So, given the directive to avoid partial loads, and the choice between carrying 20 or 45 of something, the Truck chooses to carry 20.

This is a pretty frustrating behavior, and I don't even see a good workaround other than building a separate fluid storage for every fluid I want to dump (as there's no way to prohibit Waste Water imports to the liquid dump while permitting other imports).

Expected behavior

A vehicle picking up a waste product should pick up as much as it's possible to deliver, even (especially!) when "Allow partial loads" is turned off.

Reproduction steps

Build a liquid dump with attached fluid storage accepting some fluid that can be dumped.
Allow vehicle imports to the liquid dump (and the storage).
Have more than 20 of the fluid in storage somewhere else.
Have a truck available with capacity >20.
Set "Allow partially loaded trucks" to off.
Observe: the truck picks up only 20 of the liquid and delivers it to the fluid dump.

(Note: my particular situation had a second fluid dump with a pipe carrying waste water from other machines (not storage). It doesn't seem like that should be required to reproduce, but idk.

Game version

v0.4.8

Attachments

captain_small_delivery_1
captain_small_delivery_2

FioraAeterna [github] · 4 years ago

I think this is similar to the problem I mentioned here: Truck load efficiency problems

in general, trucks seem to dislike carrying more than 20 at a time when delivering to or from many non-storage locations (such as factories). Interesting that this applies to Water Facilities too, even though they have no problem carrying 60 Waste at a time when dumping from a garbage facility.

super_aardvark · 4 years ago

I think that's just a matter of the factories not being able to hold that much input material.

Captain Filip Captain Filip · 4 years ago

I'm not sure I follow. Liquid dumps and machines in general don't have inflatable buffers. Their buffers are set up to comfortable handle early game trucks. If you build trucks that have larger capacity than what these machines can handle, then it is absolutely correct to build storages, connect them to machines and have trucks balance between them. You can't store entire haul truck cargo into a small machine buffer.

Re: My Truck driver is a clever bugger though: if he delivers to the Liquid Dump instead, 20 is enough to count as a "full load" because that's the most the dump can accept.

  • Well that works as intended. Just disable import into theese dumps and it will all go to storages. The game can't calculate these things for you. We can't look at dump and do a guess work that because there is next one to it connected to a storage we will not deliver cargo to it and wait for a free storage. That would be very complicated and eat into performance.
super_aardvark · 4 years ago
  • Well that works as intended. Just disable import into theese dumps and it will all go to storages. The game can't calculate these things for you. We can't look at dump and do a guess work that because there is next one to it connected to a storage we will not deliver cargo to it and wait for a free storage. That would be very complicated and eat into performance.

The solution I'm proposing is this: the value of a "full load" should be determined per product, rather than per machine. In other words, as soon as the liquid dump says, "I'll accept waste water, but only 20; that counts as a full load for me," then 20 or more should count as a full load for any other machine or storage that accepts waste water. Said another way: when the truck decides to deliver 20 to the dump, it should do one last check to see if it can deliver more than 20 to some other place, even if it would normally count as a partial load.

Captain Filip Captain Filip · 4 years ago

Well the solution you are proposing is to overfill / inflate the buffer on the waste dump for that delivery. And as I have mentioned we don't want to do that. That can be very costly for instance in case of microchip machine asking for gold.

super_aardvark · 4 years ago

Sorry, I wasn't clear. I wasn't saying it should deliver more than 20 to the waste dump; I was saying it should deliver to the storage instead, because it can carry more than 20 if it does so (or rather, because the fuel efficiency per unit delivered will be better). It would break the "no partial loads" rule because it was about to make a less-efficient delivery anyway (and the point of the delivery is to remove the waste water, rather than a burning need to pollute the ocean).

...Actually, maybe all this scenario needs is a "keep empty" slider on the Water Facility so it can be set higher than 0. But I guess one could attach a storage for that purpose.

Anyway, I've got a lot more of the game under my belt now, and I'm seeing more of the complexities involved in this issue and feeling less emphatic about it. Thanks for taking the time to respond! You guys are doing great.

Captain Filip Captain Filip · 3 years ago

It will deliver to the storage once the machines (such as dump) gets a succesfull delivery of a product via pipe / belt because then it will automatically disconnect itself from a logistics network.

Closed as ☑️ Works as intended

8 Showing 1–8 of 8