Is there a simpler way to ensure that two inserters always fire at the same time?

I have built a simple factory that produces construction and logistics robots. However, since these robots get made very quickly (they only take half a second), the bottleneck is currently my production of flying robot frames. I am totally okay with this—I don’t need to make new robots at maximum speed—but it does make me worry that one of the two kinds of robots will be favored—that is, one of the requester chests will get all the frames.

To try and mitigate this, I have built a small circuit alongside my robot production. It looks like this:

There are three decider combinators:

screenshot of circuit

  • The first two just check if there are flying robot frames in the chest, and if there are, they output 1.
  • The third checks if both of the first two combinators output 1—that is, it is functioning as an AND.

This third combinator is wired to the two smart inserters, which wait for a truthy signal before activating.

This design is not 100% perfect because of the inserter stack size bonus (one side might get more frames), but this could be corrected by just waiting until both chests have as much as the maximum movable stack size. I don’t care too much, though, as long as both sides get some frames.

It does seem a tad complicated for a relatively simple problem, though. Is there a simpler way to accomplish this goal? Are combinators even needed?


Your solution basically switches on both inserters, only when both boxes are filled with at least one frame.

You can do this easier by just directly wiring the inserters and chests crosswise (connect each inserter with the other inserter's source) and checking for "frames > 0".

If both chests have at least one frame, both inserters move. If only one of them contains a frame, the opposite inserter would move, but can't (because there is nothing to take).

This still does not help you with the stack size bonus, but at least you get rid of the inserters.


Since they are so close, you could have a single requester chest feed a splitter


If you want to make sure they're made at the same rate, I recommend lock-stepping the output.

Make your assembly machines each output to a buffer chest, and then conditionally output from the buffer only when both chests have a bot. (You'll want to override stack size to 1 on the exit inserters if you have stack research)

Here's an example:

Each decider outputs 1 to the same channel when there are any bots. The exit inserters are only enabled if that channel is greater than 1. (Each '1' signal from the deciders are added together)

You can see in this example that there are logistic bots in the left chest, but the exit inserters aren't firing. If I added a construction bot or the machine makes one, then both the top inserters will fire.

example