Intersection priority is very very not random


#1

I have a four way belt intersection.

Coming in from the SW and NW are partially built cars.

Coming in from the NE are cars that have had defects and have been through rework.

Going out to the SE are cars that will be tested eventually and may go through rework and end up coming back via the NE path.

The NE line is 13 segments of belt to the rework station. Meaning, this is a lot of space to hold cars that have ostensibly been fixed, as they make their way back to that intersection.

So my cars are coming in from SW/NW, going down to SE to be tested, and cars that have been found to be defective loop back around and rejoin at this intersection, from the NE, and the rework line is pretty long.

This is a 37 car per hour factory that is supposed to be a 60 car per hour factory. I’m debugging it (you don’t make this easy, by the way). This part of the factory is building chassis, and it’s massively faster than the rest of the factory, so cars are getting backed up after QA testing.

The bug I am reporting is that the rework belt segment is full. If I watch this factory, there is a massive bias toward cars coming into this intersection from the SW. Cars are not able to enter the intersection from the other lines, like ever. If even one more car has a defect that is not fixed by rework, it’s going to end up getting stuck on the smart junction, and at that point the whole factory will grind to a halt.

The rework loop used to be shorter and this actually happened.

This is a bad, bad problem, since a rework loop is going to become a standard thing.

Workarounds:

  1. I could speed up the factory such that the intersection is no longer jam packed.

I do not believe that I have any other workarounds that wouldn’t require me to figure out how you are prioritizing intersections and make use of undocumented behavior.

Potential fixes:

  1. If all entries into an intersection are chosen from equally, it should be very difficult for this intersection to clog, because there will never been as many cars coming from rework as are coming from the production line. This may make sense as a documented behavior of intersections.
  2. If I can prioritize this intersection manually, via a new part, that would solve the problem at the cost of annoying UI and part creep.
  3. If the intersection prioritized looping belt, this would solve the problem. It should be possible to detect that a loop exists and prioritize paths that loop back into the intersection. So reworked cars would have right of way.