Stop inserter from automatically taking an item into an empty assembler

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

llVIU
Inserter
Inserter
Posts: 48
Joined: Sat Jul 06, 2019 9:19 pm
Contact:

Stop inserter from automatically taking an item into an empty assembler

Post by llVIU »

I have a crafting table here, I change the recepies often. Frequently when I change it. Sometimes I put a black recepie, then put the recepie that I want (you HAVE to first make it blank) and in that milisecond when it's black, the inserter takes a random item and tries to put it into an assembler. So it ends up with an item in its hand. I put the recepie that I want, but the inserter can't take the item back into the warehouse and pick the correct item.

Result: the inserter gets stuck. There's no reason why an inserter should ever automatically take *ANY* item to try to put it into a blank assembler. It should wait until an assembler has a recepie, and THEN try to put an item inside.

This happens often with or without mods, vanilla or not. We can all relate.
Image
upload pic
AngledLuffa
Fast Inserter
Fast Inserter
Posts: 187
Joined: Fri Jan 05, 2018 5:18 pm
Contact:

Re: Stop inserter from automatically taking an item into an empty assembler

Post by AngledLuffa »

In my experience, inserters never put anything into an unlabeled assembler. Is there something about your assembler creation that temporarily gives it a task?
kbk
Long Handed Inserter
Long Handed Inserter
Posts: 58
Joined: Sun Jun 30, 2019 2:21 pm
Contact:

Re: Stop inserter from automatically taking an item into an empty assembler

Post by kbk »

Current inserter logic follows these rules:
  • each inserter independently performs its own checks on demands of a drain it is pointed at
  • a drain that is not a machine is supposed to have an input space for at least one item of any type, and infinite demand
  • a drain that is a machine is supposed to have an input space for one full item stack of each recipe-defined type, and finite demand that kicks in when the machine has output space and its input holds items for less than two production cycles
  • inserter never grabs items it has no demand for
  • when inserter's hand stack is not empty it stops trying to grab after reaching a timeout
  • idle inserters are lazy so before attempting to grab they discount demands by hand stacks of other non-idle inserters that are pointed towards the same drain
  • however, this check is performed second time to select the inserter that is most able to fulfill incoming demand. This happens after hand stack becomes full or its timeout gets reached and before the hand starts moving, so at least one inserter could get stuck here waiting for new demand
  • inserter is unable to put the hand stack back to source when demand suddenly changes
  • inserter is unable to pass the hand stack to the drain if the latter has less space than hand has items left, so inserter could get stuck waiting for input space if demand is bigger than that
Some inserters are likely to have items in their hands prior to recipe reset because there were some demand once and other inserter has fulfilled it first, so it is no random item but an item there was at least some demand in. And after that one inserter probably could get stuck. I guess this can't really be helped without breaking something important, so there is no other way but to scale one's production to the point that one needs not to change recipes anymore. Factorio is about automation after all, I guess...
foamy
Filter Inserter
Filter Inserter
Posts: 432
Joined: Mon Aug 26, 2019 4:14 am
Contact:

Re: Stop inserter from automatically taking an item into an empty assembler

Post by foamy »

AngledLuffa wrote: Mon Sep 23, 2019 3:52 pm In my experience, inserters never put anything into an unlabeled assembler. Is there something about your assembler creation that temporarily gives it a task?
This. I strongly suspect it's remnants of the old recipe that were in-hand when it got switched, and now have nowhere to go.
Post Reply

Return to “Ideas and Suggestions”