Clarify and fix Logistic Network usage
Posted: Sun Mar 03, 2019 10:41 am
TL;DR
- Split Storage Chest in Storage Chest and Overflow Chest.
- Fix inconsistencies of the Logistic network.
- Make it easier for people to understand how Logistic Networks work.
What ?
Add a new chest called Overflow Chest that replaces the functionality of the Storage Chest without filter, and then adjust the priorities as follows:Item is pushed into the network: Requester Chest > Buffer Chest > Storage Chest (with filter/item inside) > Overflow Chest
Note: Storage Chests without items inside/filter set are ignored intentionally.
Item is pulled from the network: Active Provider Chest > Buffer Chest > Overflow Chest > Storage Chest > Passive Provider Chest
- Active Provider Chests ignore Overflow Chests.
- Player usage of the logistic net will have the same priorities.
- When choosing between several similar chests, bots will always push into/pull from the closest one.
- Overflow Chests periodically try to push their content back into the network similar to an Active Provider Chest at a rate of 1 item/s before Logistic System is researched, once that is completed it acts like an Active Provider Chest.
- Construction Robots ignore all priorities above and always pull/push from the closest chest, while the distance to the Overflow Chests when dropping an item is doubled (for the distance calculation only).
Why ?
Currently the behavior of the Storage Chest is inconsistent and causes logistic network logic to break down. Take the following example:A player builds a conveyor belt factory and outputs the belts into a Storage Chest with a filter set, he also has a Storage Chest with no filter set as an overflow storage. At first everything works fine, belts are pulled from the factory and pushed back into the factory Storage Chest when the player trashes an item. However at some point the factory chest is full and a single conveyor belt lands in the overflow chest. At this point the overflow storage is put on the same priority as the factory chest and depending on distance items will be pushed into the overflow storage frequently till it is eventually full, while the factory over-produces belts. The same issue also causes bots to fly over half the map because that piece of wood just happens to be in the Storage Chest 234897237 miles away.
This bug can be solved by not increasing the priority of Storage Chests without a filter, however as you can see from most builds this inconsistency and double-functionality is why most players simply ignore the Storage Chest at all. To make things very clear for the players I think adding a dedicated Overflow Chest is the best solution, because the name alone gives away how it is supposed to be used, and it integrates into the priority list in an obvious way.
With Overflow Chests available Storage Chests can go back to their primary function: store stuff and passively pull back items from the network to keep goods in once place. In this scenario a Storage Chest with a filter and one with items inside always have the same priority for the particular item, while empty Storage Chests with no filter set are completely ignored. This makes is very easy for the player to understand and use Storage Chests in their intended way: it stores stuff in one place and keeps the network tidy.
If Overflow Chests now periodically try to push items back into the network it is guaranteed that on the occasional overflow items eventually end up in the correct storage again and the Overflow Chest does not get blocked by being full. This way a setup of Storage and Overflow Chest acts exactly as you would expect it to: items are stored in the Storage, overflow is temporarily buffered until space becomes available. To prevent loops Active Provider Chests must ignore Overflow Chests.
This gives players a very basic and restricted form of logistic transport early game, which is something people have been actively complaining about for a long time. However with the rate limited to 1 item/s and "dumb" delivery you can only have one target for an item (the closest Storage Chest), therefore belts and the real Logistic Network will still be far better and way more flexible.
This also allows Construction Bots to ignore all priorities and still guarantee that those items eventually end up in the correct chest, which will free them from hauling tasks as soon as possible and leave that to the Logistic Robots. In the internal calculation for distance the distance to the Overflow Chest is always doubled, to encourage Construction Bots to put stuff into the correct storage as long as it is close by, but leave those half-a-map travels to the logistic bots.
If you additionally allow two separate limits for chests, players can very easily have setups where production is limited but Logistic Bots can still store items in the corresponding chest. This could be done by adding another + to the chest in light blue that works the same way as the red +, however inserters obey only the red limit, while Logistic Bots obey only the blue limit. To display this properly only half of the icon is colored when set: bottom half is red when limited, top half is blue when limited. This would replace the very tedious setups you currently have to do with circuits to archive the same and make usage a lot simpler and intuitive.
With these changes the logistic chests work in a very intuitive way:
- Storage Chest: stores items and provides them, also tries to keep your items nice and tidy in one place.
- Passive Provider Chest: provides items when needed but does not store them.
- Active Provider Chest: empties its content asap.
- Overflow Chest: when there is no other place items will end up here until some storage becomes available.
- Buffer Chest: an item buffer to pull frequently used items closer to the location they are used (mostly for construction).
- Requester Chest: it actively pulls items to this location.