Why does this production line jam?

I've been trying to build the following somewhat complicated production line in Big Pharma, with colored arrows indicating intended flow of products:Production line

As far as I can tell, the input/output ratios are correct, and there should be no ambiguity left in the intended directions of the belts. However, this setup persistently jams up around the leftmost loop -- deleting a few products will temporarily clear the jam but it jams back up immediately.

Is there some reason this production line keeps jamming up? Is it plausible that I could get it to flow in the intended manner without modifying it (or, say, by adding more fixed belts), or do I need to fundamentally rework my floorplan here?


Solution 1:

Simply put, your system is overdefined.

1) To flow through cross intersections, each line must have the ingredients every other space, which means the positions of the ingredients repeat every two timesteps (ticks).

2) Let's define "even" ticks as ticks where the left-most intersection has a black item on it. After one tick, you'll be in the "odd" tick, in which the left most intersection has a red item on it. (All my colors refer to the colors of your arrows)

3) At each crossing, one ingredient needs to be on the crossing in the "even" ticks and the other needs to be on the crossing in the "odd" ticks.

4) If the intersections are a multiple of 2 spaces apart, if an ingredient passes through any intersection during the even tick, it must pass through all its intersections during the even tick. If intersections are one space apart, the ingredient must pass through them during sequential ticks.

So, let's list your intersections and which ingredient is present during which ticks. Intersections A,B,C,D are from left to right. Colors refer to the colors of your arrows, not the ingredient colors.

A: Even=Black, Odd=Red

B: Even=Black, Odd=Red

C: Even=Red, Odd=Yellow (C is where the green vial is in your screenshot)

D: Even=Black, Odd=Yellow

Intersections A and B are two ticks apart, so they have to have the same items during the same ticks. On the red path, C is one tick away from B, so since red passes through B during the odd tick, it has to pass through C during the even tick. Etc.

You run into a problem on the yellow line. The yellow items need to pass through both intersections C and D during the odd tick. That's not possible because the intersections are only one tick apart, so yellow would need to pass through one intersection during the odd interval and one intersection during the even interval.

Further complicating your situation is that you have a clear deadlock generator - the red belt can block the black belt, and the black belt can block the red belt. So by the reasoning above, something gets thrown out of whack, and that triggers your red/black deadlock.