FlowState: ATC

Separation: the only rule that really matters

Guide · 3 minutes

Keep aircraft apart and almost nothing else can end a run. Two numbers decide whether they are apart.

The two numbers

The server compares every pair of aircraft thirty times a second. Both checks must fail together before anything happens:

CheckThresholdWhat happens
Horizontal distanceunder 30 pixelsCollision. The run ends.
Altitude differenceunder 50 feet of game altitude
Horizontal distanceunder 75 pixelsProximity warning: the screen edge flashes.
Altitude differenceunder 50

So altitude alone clears any conflict. Two aircraft can sit on the same pixel and pass safely if they are more than 50 apart vertically.

The 45 pixels between the warning band and the crash band are your reaction window. Two planes head-on at 110 pixels per second each cross it in a fifth of a second. A flashing warning does not mean you have time.

Altitude beats turning

A turn changes where a plane will be for the next several seconds, often into a third aircraft you were not watching. An altitude change is done the moment you drag the slider, and the plane still tracks the same exit at the same speed.

Converging aircraft far from their exits get vertical separation. Save turns for planes pointed at the wrong edge.

Altitude as a filing system

The slider runs 100 to 1000, shown as FL001 to FL010. Aircraft spawn between 200 and 800, so the top and bottom of the range sit empty all game.

Give each exit direction a level: north FL002, east FL004, south FL006, west FL008. Traffic bound for different edges is then separated by default, and the pairs left to watch share an edge, which puts them on near-parallel tracks. A few drags per aircraft while arrivals are 5 seconds apart, paid back around wave 10.

Edges kill runs

Aircraft spawn and exit on the edges, so the outer strips carry the most traffic, usually flying opposite ways. The killer is a new plane spawning into the path of one that is seconds from leaving. Ignore the departing plane only if you have checked its distance to the boundary. Otherwise climb or descend the new arrival on sight.

The scan

Controllers sweep the sector in a fixed order so nothing goes unwatched. It works here:

  1. Edges first: is everything near a boundary pointed at its assigned exit? In three seconds it is a miss.
  2. Then the centre, looking only for converging pairs at similar altitudes.
  3. Fix what you found, altitude before heading.

The hard part is scanning when nothing looks urgent. A quiet sector is when you have time for the plane you have not touched since it spawned.