add option for stack inserters to refill stacks

Ideas that are too old (too many things have changed since) and ones which won't be implemented for certain reasons or if there are obviously better suggestions.

Moderator: ickputzdirwech

mrvn
Smart Inserter
Smart Inserter
Posts: 5979
Joined: Mon Sep 05, 2016 9:10 am
Contact:

add option for stack inserters to refill stacks

Post by mrvn »

TL;DR
Add an option for stack inserter to add items to partial stacks on targeted belts.

What?
If set then when a stack inserter holds iron plates and an iron plate or partial stack of iron plates passes on the targeted belt the inserter would fill the stack to maximum. This could mean it it left with less than a stacks worth of items in hand. If they can't be used to replenish existing stacks the inserter should go fetch more items rather than place a partial stack. With this feature stack inserter also don't have to grab a multiple of the stack size of items and can grab the maximum allowed. When replenishing stacks an extra item could complete an extra stack.
Why?
There are situations where looping (sushi) belts is the best way to get items to a large number of factories. Most prominent example would be a sushi belt carrying all the different science packs past any number of research laboratories. By controlling the number of each science packs on the belt one can ensure the belt keeps moving and every research laboratory has access to replenish it's science packs.
science-belt.png
science-belt.png (1.99 MiB) Viewed 174 times
Another good example is a munitions belt. In space the belt offers great storage space for munitions. Or on land the belt can be used with few items on it so each turret sees a fresh magazine every once in a while without having to place thousands of magazines on the belt.
munitions-belt.png
munitions-belt.png (2.31 MiB) Viewed 174 times
The problem with this setup is that as items are consumed the neatly stacked items become partial stacks or single items. They consume much more space on the belt and are slower to be picked up. A belt loop that would fit 100 stacks of 4 items of each science pack suddenly has no room left because there are 100 single items of each science pack on it. This greatly reduces the throughput and storage capacity of the belt or requires restacking items like so:
restacking.png
restacking.png (2.38 MiB) Viewed 174 times
Restacking itself limits the throughput, or needs more stack inserters. Basically doubles the number of stack inserters required for the belt as you need potentially the same number of inserters to restack the belt as for filling the belt. This could be avoided if stack inserters had the option to simply replenish existing stacks to their full height.
User avatar
boskid
Factorio Staff
Factorio Staff
Posts: 4253
Joined: Thu Dec 14, 2017 6:56 pm
Contact:

Re: add option for stack inserters to refill stacks

Post by boskid »

I am not interested in this suggestion at all. Most of the stack inserters logic was done under the assumption that we will never add to existing partial stacks and this suggestion literally breaks this fundamental assumption. Main problem encountered here is that a transport line is not supposed to wakeup side interactions (like inserters, mining drills) when a belt is full (in terms of not having any gaps), so if an inserter would be required to wakeup on a partial stack, then either the inserter would fail to wakeup on a belt with no gaps but with partial stacks, or a belt would need to wakeup all side interactions always which would be an additional performance overhead that we do not want to be dealing with. I also do not want transport lines to keep track if they are full based on current max belt stack size because transport lines are updated in a context that is unaware of force modifiers and it could happen there are inserters of different forces that are interacting with the same transport line and in such case those inserters would have different max belt stack size they drop up to. There was already an non bulk inserter capacity bonus added to last tier of belt stacking just so they can always take an entire item without leaving a partial stack, so if you have partial stacks that means you are intentionally taking less than a belt stack.
mrvn
Smart Inserter
Smart Inserter
Posts: 5979
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: add option for stack inserters to refill stacks

Post by mrvn »

Good point on the performance. Didn't think about the implications to the sleep/wakeful mechanic.

As for "intentionally taking less than a belt stack" this might be an issue with researching belt stack size. When the research completes the stack size changes and the maximum stack size. Now the belt has partial stacks on it and a bulk inserter picking up a partial stack will then go on and pick up more items from the next stack making that partial. So with enough item density on the belt it's not getting rid of the partial stacks. Also below bulk inserters the inserter stacksize is below the belt stack size.

But I can live with that. Using bulk inserter everywhere and restacking every time (few enough times) the belt stack size is increased avoids the issue.

Sorry for the noise.
Koub
Global Moderator
Global Moderator
Posts: 8041
Joined: Fri May 30, 2014 8:54 am
Contact:

Re: add option for stack inserters to refill stacks

Post by Koub »

[Koub] Moving this to Won't implement then.
Koub - Please consider English is not my native language.
mrvn
Smart Inserter
Smart Inserter
Posts: 5979
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: add option for stack inserters to refill stacks

Post by mrvn »

Another small note:

I have full 4 item stacks for belts now but inserter have a stacksize of 3, bulk inserter a stacksize of 6 and stack inserter a stacksize of 10 because I haven't researched the last level of inserter bonuses yet. So I'm back to getting partial stacks all over the place till I have researched that last inserter bonus (and in marathon mode that takes a while).

So not an optimal solution. Not all combinations of inserter bonus and belt bonus play well together.
Post Reply

Return to “Outdated/Not implemented”