Alfonse215 wrote: Thu Aug 13, 2026 6:37 pm
macdjord wrote: Thu Aug 13, 2026 6:25 pm
+1 on making spoiledness priority apply when taking from belts. I made a lot of designs on Gleba that never quite worked right because I had assumed that it did apply.
How would that work, exactly?
Let's say that you have it set to least spoiled first. There are 2 stacks on the belt, and the inserter starts reaching for the freshest. But then a 3rd stack moves onto the belt, and it's even more fresh than the other two. Should the inserter start reaching for that instead or should it finish its current movement first?
This works for pulling stuff out of a box because there is no time between the inserter wanting to pick something up and actually getting it. So it can scan the box, sort by freshness, pick up however much it can, and then it's done, all in one tick. Once you introduce timing between when stuff gets desired and then picked up, it becomes a problem.
Off the top of my head, the obvious solution is that there is some point in the inserter's swing cycle when it decides what item on the belt to try to pick up, and this setting would work based on what it on the belt at that moment, without considering new items that arrive between then and when it completes the pickup.
Frankly, I don't think it matters much. If the items on the belt are moving, then they probably all have about the same level of freshness anyway, so it doesn't matter which one gets picked. This setting would be most useful when dealing with stagnant belts. In particular, when taking items from the last tile of a belt, being able to set 'spoiled first' would mean you don't end up with a couple items trapped at the very end of the belt, slowly rotting away, because the inserter keeps picking ones from the middle of the tile instead. (This is particularly important with biter or pentapod eggs, where having a couple get trapped and spoil isn't just a matter of wastage; it means enemies spawning in the middle of your base.)
Alfonse215 wrote: Thu Aug 13, 2026 6:37 pm
For bots, I think it would make more sense to have the filter be on the source container than on the request. A bot picks from the right-most stack of a container first. So if the right-most stack is always the freshest or least fresh, then it works. As long as you don't spread spoilables to multiple source logistics chests, of course.
That would work, but it also sharply limits the utility of the system. First, as you pointed out, since its very difficult to effectively control which logistics chest bots take from, you need to consolidate all of a given item into one source chest in order for this to be effective. However, this has a knock-on effect: it means all
requests for that item are forced to use the same spoiledness preference. This generally isn't what you actually want: if your rocket silos are requesting science, you want to load the freshest stuff, but if you have too much and want to send stuff for disposal, you want the
least fresh. Meanwhile, bioflux intended for plastic, sulfur, capture rockets, nutrients, or bacteria breeding should be the oldest stuff available, just to get rid of it, while science production needs the freshest.