Basics

Real world ATC is all about efficiency – runway space at major airports is limited, so ATC aims to use the existing runways, taxiways, and airspace in the most efficient manner to arrive and depart as many planes per hour as possible. The “flow” system in WED/X-Plane aim to model real world procedures that were designed for real world efficiency.

An airport ATC “flow” defines how the runways in an airport are used. Each flow tells ATC:

  • Which runways are used, and in which directions
  • Whether the runway is used for takeoffs, landings, or both
  • What kinds of planes use which runways.

Real world flows are often named after the direction of traffic, e.g. “east flow” and “west flow” but these names are never exposed to pilots. In the same manner, WED’s flows are named for reference and log output only and are never displayed to X-Plane users.

Flows are picked based on wind and weather conditions so aircraft can land and take off into the wind. They are also sometimes based on noise abatement – the route the aircraft flies may be restricted to not fly over residential areas at low altitude and high power.

Only one “flow” is used at an airport at a single time – each flow is designed so that all of the runways used in the flow can be used at the same time safely to have maximum efficiency at the airport. A very common misconception is that you need to add one flow per runway; this is not true! You should add one flow per set of conditions, and each flow should contain all runways that are active under those conditions.

While X-Plane doesn’t move as many airplanes as KORD, we support the same kinds of rules for realistic routings and flow.

A detailed example: KBOS

Boston Logan has five runways that it uses for major operations: two parallel runways (4L/4R), two near-parallel runways (33L and 32) and one additional runway (9). The airport also has a noise restrictions: no aircraft ever land on runway 14 or depart on runway 32.

Based on this, KBOS has four possible main flows:

“Northeast” VFR flow:
Jets land on 4R
Jets depart 4L and 9
Heavy jets depart 4R
Props land and depart 4L

“Southwest” flow:
Jets land on 27
Jets depart 22R
Heavy jets depart 22L
Props land 22L and hold short of 27

“Northwest” flow
Jets depart 27
Heavy jets depart 33L
Props depart 27
Jets land 33L and 27
Props land 34

“Southeast” flow
Jets land 15R
Props land 15R and 15L (15L is tiny)
Jets depart 15R
Props depart 14

These flows are ordered from most efficient to least efficient for the airport. The southeast flow is a huge bottleneck because KBOS can’t land on runways 9 or 14; all planes have to land on one runway. It is also hard for ATC to land a prop behind a jet because of wake turbulence rules and the difference in speeds. By comparison the northeast flow provides the highest operations rate, with jets landing parallel to props (with each stream of aircraft packed tightly) and room for completely independent departures on runway 9.

Flows in WED & X-Plane

Selection Rules and Priority

The main rules for flow selection in X-Plane are:

  • Only one flow may be running at a time.
  • X-Plane will evaluate each of your flows in the order they appear in WED – the top flow in the hierarchy is evaluated first.
  • The first flow in which all of its rules “pass” is selected.

This means flows should be arranged in WED so that the ideal, most-used flow is first. It will be picked the majority of the time and will only be bypassed if it absolutely cannot be used. In our KBOS example, you would want to arrange the flows in WED in the order they’re listed above (ordered by high to low efficiency).

It is important that for any conditions at least one flow be selected; given bad enough weather conditions in real life the airport might be shut down, but in X-Plane the airport must remain open. So it may make sense to have your last flow have no rules, so it is a “catch-all”.

Flow basics & rules

Each airport in WED should have one or more flows – if no flow is provided, X-Plane just makes them up but this will rarely result in optimal runway use. To create a flow in WED, select the airport and use the “Airport→Create Airport Flow” menu.

Flows contain two kinds of data. To add these in WED, select the flow first.

  • Runway Use rules tell which runways will be used
  • Restrictions that control whether the flow can be used at any given time in the sim (time & wind rules)

Runway Use Rules

Each flow has one or more “Runway Use” that describes a particular runway with use restrictions. These can be added in WED by selecting a flow and using the “Airport→Create Runway Use” menu.

Runway Use rules describe:

  • The end of the runway to start from
  • Departure frequency for aircraft departing from this runway using this rule (mobile X-Plane only)
  • Whether it is used for arrivals, departures, or both
  • The type of aircraft operations
  • Departure direction range
  • Initial assigned heading range

Flows also have a “pattern” runway for VFR traffic patterns. You must still include a runway use – just having the traffic pattern runway will not make that runway used. (The VFR pattern runway on the flow doesn’t tell us what kinds of planes use the runway, etc.)

The runway use rule for the pattern runway should include both arrivals and departures. But do not set a flow to allow arrivals (or departures) on both ends of a runway, or you risk head on collisions! For example, do NOT arrive on 4R AND arrive on 22L. In the majority of cases, if a runway allows arrivals and departures at the same time they will go the same direction and use the same runway.

It is okay to have a runway in a flow more than once – you might need this for complex rules. From X-Plane 12.20, ATC will try to use all available runways in a given flow; before 12.20, only the first runway in any flow that meets the current aircraft’s requirements is used.

A single flow containing runways which intersect is normal and expected.

Example:

KBOS north flow:
4R – arrivals, jets + heavies
4R – departures, heavies

In this case we need to use the 4R runway use twice. For arrivals jets and heavies land 4R, but for departure, ONLY heavies use 4R. The logic behind this case is the heavies need the long runway 4R for departure, but the jets can depart runway 9 for more operations.

You can set this example up in WED two different ways with the same result.

Option 1:
Create a use rule and set traffic type to Jets & Heavy Jets
Set Operations to Arrivals only
Create another use rule
Set traffic type to Heavy Jets
Set operations to departures

Option 2:
Create a use rule
Set traffic type to Heavy Jets
Set operations to departures & arrivals
Create a new rule
Set traffic to Jets
Set operations to arrivals only

The departure frequency field is required but is not fully implemented in X-Plane. In X-Plane desktop version, the relevant frequency at any moment is determined based on nearby controllers’ airspace.

Runway Uses also include the departure direction range. This is the rough direction from the airport that the aircraft will fly (e.g. if we depart KBOS for San Francisco, our direction is west). This is specified in the Legal on-course hdg min/max in WED. Given two runways that can both depart an aircraft, X-Plane will pick a runway based on departure direction when possible. This lets you specify things like “north departures use 27R, south departures use 27L”, to avoid aircraft crossing in-air. Take care to specify these ranges clockwise; a range of 315 to 045 would mean aircraft departing within 45 degrees of north would be preferred, while a range of 045 to 315 would prefer aircraft departing within 135 degrees of south.

Runway uses also contain an initial heading. These are the ATC Assigned hdg min/max fields in WED. This is the heading that ATC will assign the aircraft off of the runway – it can be a range so that ATC can “fan out” aircraft for faster departures. This is another case where two runway uses can be used, e.g. from our example KBOS northeast flow:

9 – departures – jets, initial heading 090, departure heading 000 – 360
9 – departure – props, initial heading 150, departure heading 090 – 180
4L – departure – props, initial heading 360, departure heading 180 – 090

In other words, most props will depart runway 4L and head directly north. But props departing to the south or east will depart runway 9 and immediately turn south-east, getting out of the way of jets. Jets will take off runway 9 and go straight.

(The southeast runway 9 heading lets small airplanes going to Cape Cod go straight out toward their destination – the jets fly straight to get out over water and to not make noise over the city of Boston.)

Note that departure direction and initial direction do not have to match. E.g. at KBOS a jet whose departure direction is West might still get an initial direction of East – this means the plane initially flies the wrong way (usually for noise abatement) and is then turned around.

Time, wind and visibility rules

Flow rules come in three flavors:

  • Time rules define during what times of day the flow may be used. Time is given in HHMI format in Zulu time, not local time.
  • Wind rules define under what wind conditions the flow may be used.
  • Visibility rules define what visibility is required to use the flow; this is defined as part of the flow itself rather than a separately-defined rule.

You can have more than one wind and time rule for a flow; if you do, the flow will pass if any of the rules of that type pass. In other words, you can do this:

Flow “northeast”

  • Wind < 4 knots, 0-360
  • Wind < 15 knots, 270 – 090
    Flow “southwest”
  • Wind < 15 knots, 090 – 270

In other words, if the wind is less than four knots or the wind is coming from the north, we use the northeast flow. This “or” behavior is useful because often airports will use the most efficient flow when the wind is very low.

Similarly, the time rules can have more than one time, e.g. for two peak periods.

For all weather-related rules (wind, visibility), you specify the ICAO code of a METAR reporting station. For major airports, this is the airport’s ICAO, but for small satellite airports, you can use the ICAO code of a larger nearby airport. This is for cases where a small GA airport’s runway use must be changed to affect the runway use of the neighboring large airport, or where several airports must adjust their runway uses all at once due to proximity.

Typically an airport with multiple runways will have higher priority “VFR” flows with higher visibility requirements and multiple runways in use, and then lower priority “IFR” flows with no visibility requirements. This lets X-Plane’s ATC use more runways in good conditions and just one runway in bad conditions.

Manually Checking Flows

The best way to debug your flows is to set a number of AI aircraft running and watch them, occasionally manually changing weather conditions to those which you think should activate different flows. You can of course check ‘manually’ by disabling AI (just to prevent flows being held unexpectedly), setting appropriate weather conditions, selecting an aircraft of a given type (i.e. prop, jet etc.), and requesting departure clearance from a gate start – not an on-runway start because these are handled slightly differently – or landing clearance from an in-air start.

To work out which flow should be used, start reading from the top of the list in WED and work down one line at a time. Select the flow, and check that any conditions there are satisfied (i.e. ceiling and visibility). Remember to check the weather the airport is actually reporting, because even with static weather set in the simulator, there are local variations in wind direction, speed and visibility. You might have set a 3kt wind to check a flow which has a wind restriction at 4kt, but if the random local wind variation only adds a single knot then your ‘low wind’ flow will not be used.

If the flow itself passes, check any time or wind restrictions. As long as one restriction from each type passes, the flow is accepted. Of course, if no restriction is given, the flow is also accepted. For example, if you have two wind restrictions and no time restrictions, then the flow will be used if either wind restriction passes.

It is permitted to have flows that define periods when the airport is closed. For example, smaller airports may only be usable during business hours.

At this point, if the flow has passed all the restrictions then this flow is the one that will be used. No other flow will even be considered. If the flow has not passed, read the next flow in the list, in order. If you reach the end of the list without any flow passing, the airport is also seen as closed.

Once you have identified which flow is in use, check each individual runway inside the flow in order from top to bottom. To be usable for a specific aircraft, that aircraft has to match the Traffic Type restriction. If no runway exists in this flow which satisfies that aircraft’s type and the type of operation (i.e. arrival or departure), then the aircraft will be unable to land or depart. No other flow will be considered.

Before X-Plane 12.20, the first runway that matches will be used; from 12.20 on, any runways that are usable for this aircraft type and purpose will be considered based on other conditions such as proximity and usage levels.

Example

These flows are from an airport which has six flows defined for two usable and parallel runways, 05/23 and 05R/23L . The first two flows are shown here:

The first flow, “Runway 23”, declares that when the wind is at 4kts or lower from any direction or less than 40 knots from somewhere between 150 and 320 degrees, runway 23 and only runway 23 should be used. The runway is restricted to only Jets and Turboprops, which means that the airport is inaccessible for props, helicopters, heavies and fighters.

Firstly, the flow is probably incorrect, because there is also a runway 23L which will never be used at all. In fact, two additional flows exist – one for 23 and one for 23L – neither of which will ever be used because they have identical wind restrictions to “Runway 23” and come after it in the list. This particular airport is popular with GA, so disallowing props is also incorrect – but a likely explanation follows.

The next flow, “Runway 23 Light”, will never be used because there is no circumstance where it satisfies restrictions that are not also satisfied by “Runway 23”; the only difference is the wind restriction, and it is more restrictive (20kts vs 40kts). “Runway 23 Light” allows the runway to only be used by props and helicopters so even if this flow were to be used, which is impossible, it would prevent jets and turboprops from landing if the wind speed was less than 20 knots. Remember that only one flow is ever in use at any time so if no runway in the currently active flow can service your aircraft, you’re out of luck!

In general, if you have considered naming your flows after runways and you have more than one runway, the flows are probably wrong.

What would be more appropriate would be to define four flows for this airport:

  • W Light, covering runways 23 (a long tarmac runway) and 23L (a shorter grass runway), with “Wind 4@0-359” and “Wind 20@150-320”, with jets and turboprops assigned to runway 23 and props and helicopters assigned to 23L. Heavies should probably remain excluded; fighters are a trickier question because even a WW1 biplane could be defined as a fighter.
  • W Normal, covering runway 23 only, with “Wind 40@150-320”, again with jets and turboprops assigned to runway 23. This would close the airport to helicopter and small GA aircraft when the wind was above 20 knots, but leave it open for more powerful aircraft.
  • E Light, a copy of “W Light” but using runways 05 and 05R and with a single wind restriction for “Wind 20@320-150”. It would be pointless to include “Wind 4@0-359” because it has already been satisfied by “W Light”.
  • E Normal, a copy of “W Normal” using only runway 05 and the wind direction reversed to cover “Wind 20@320-150”.

Debugging Flows and Flow Changes

When the weather changes, X-Plane will wait at least one minute before beginning to change flows. When it starts to change flows, the sim goes through three phases:

  • Departure drain. All new departures are held, but existing departures are allowed to depart using the old flow. All arrivals continue to arrive using the old flow.
  • Arrival drain. Once the number of non-held departures falls to zero, all arrivals not on final are re-routed to the new flow. Existing arrivals are allowed to land on the old flow.
  • Complete change-over. Once the existing legacy arrivals have landed, the new flow is fully in effect and the ground hold is lifted.

Note that if the weather changes back to the old flow in phase 1, the old flow is resumed; if the weather changes back in phase 2, we continue to the new flow.

The logic behind step 1 is: we have to let all taxiing departures depart on the old runway because there might not be enough room for aircraft to turn around on the pavement. While this is happening we don’t re-route arrivals to avoid a head-on collision. The logic behind step 2 is: as long as pending arrivals are arriving in the old runway, we can’t release the gate hold because the departing aircraft might block the arrivals’ route to the gate.

By default the ATC system logs some information about flow changes to Log_ATC.txt, but you can turn on advanced and detailed logging by setting the art control atc/debug/rwy_flow to 1. Detailed logging starts after the art control is set. Log_ATC.txt can be viewed in real-time using the “developer console” menu item in the Special menu.

You can also view more details about runway selection by setting the art control atc/debug/rwy_selection to 1.

16 comments on “ATC Flow Authoring in WED

  1. In the new updates of x plane the atc has changed. It used to be a box that allows you to click on frequencies and to read back messages or request things too. Now when i updated x plane and started a flight a pressed enter to open up my atc menu but instead it just came up with a long bar and a blue mark flashing in it waiting for you to type something, how do you use this and what do you type ? Its way more complicated than the old atc which i found more easy and simple to use

    1. That’s not a change to ATC – you have a multiplayer session enabled, so that sends text to the other multiplayer players. Reset your network settings or delete all multiplayer connections under networking and you’ll have ATC back.

  2. Hello! Great Laminar Research team!
    Question: Is ti possible to close a rwy for takeoff and the opossite for ladings?
    Thanks a lot.

  3. As someone trying to put in flows for the first time, I’d really appreciate some specific instructions on how to enter visibility rules; but they’re only mentioned, not described, in this article. Is there another source for such information?

    1. You enter visibilities and ceiling in the property fields named accordingly, the units in use are displayed by WED.

      If your question is about what these mean and how to determine what to put in – please refer to pilot training materials or web sources like //www.aviationweather.gov/cva/help
      //www.universalweather.com/blog/aviation-weather-tips-all-you-need-to-know-about-ceilings/
      //www.aopa.org/news-and-media/all-news/2008/april/flight-training-magazine/basic-vfr

  4. Hello!

    I keep getting a couple of warnings when exporting an airport:

    Warning: Wind Rules in flow ‘Northeasterly flow’ allow Runway 23 to be used with up to 35 kts tailwind component @ 35kts winds

    Warning: Wind Rules in flow ‘Souththeasterly flow’ allow Runway 05 to be used with up to 35 kts tailwind component @ 35kts winds

    I have only one wind rule on rwy 05:

    WIND 999@135-315

    Runway heading is 045. I have tried different configurations such as 134-316 / 136-314 and none have cleared the warnings.

    Would this be a bug or is there a way around this?

    1. If wind is coming from somewhere between 135° and 315° and your runway heading is 45° it IS a tailwind.
      Say wind is 50kts @ 225° – this fits your rule but I wouldn’t want to land with that tailwind. Try changing the rule to 5@135-315 which allows a light tailwind on that runway.

  5. Hi All,

    i also got the same warnings although I entered the same data as per tutorials in the Xplane org Youtube videos. Could not understand at all. Because the videos were made during X-Plane 9 or 10 version time.

  6. From what i understand, xplane is designed so we can land under any conditions, So on top of your standard rules, you need to have a catch all, that will allow your plane to land in any conditions, ie 0 visibilty and no altitude restriction. So for a single runway you need to include a rule that fits those condition for either end as a catch all. IE current conditions dont fit your normal rules. ie have winds set to 100kt, Than that warning will go away. Xplane will always use rules in order but if your rules dont fit condition it will use the catch all.

  7. Hi
    In my real life airport UAAR there is only one ATC tower frequency. But when I add ATC Flow on WED, I need detent ATC Departure frequency. What I can do in this case, if I have only tower freq?

  8. Flow rules are the most confusing thing about airport creation. There have been so many changes to how they are implemented in different versions of X-Plane that it’s hard to follow what instructions go with what. On top of that the instructions in the WED manual and in notes such as this are cryptic, a lot could be done to improve this. It seems like an entire manual is needed on this subject, with more examples and clarifications that are updated regularly; detailed definition of the various fields in the rules and examples of how they’re used, and better explanation of what all the nonsensical warnings mean. That last one goes for all of WED but most specially for the flow rules.

  9. I’m having trouble creating a “simple” flow rule for KRDU that says never use runways 32/14. ATC keeps choosing this short runway for heavies no matter the weather condition. I created an ATC flow for 14 and 32. Then I created a runway use rule for both 14 and 32 setting the allowed “Traffic Type” and “operations” options to “NONE.” These are the only flows listed for KRDU. In almost every case, ATC sets the active to 32 no matter the wind direction, even if there is a better runway available. I’ve tried other variations but with no luck. Only way to (sometimes) get ATC to select the correct runway is to delete all AI aircraft then put them back in.

    Any suggestions to resolve this?

    Thanks,
    James

    1. You need to set up a rule for runways 5L/R and 32L/R. X-Plane is using 14/32 because that is the only flow specified.

Leave a Reply

Your email address will not be published. Required fields are marked *

Please do not report bugs in the blog comments.
Only bugs reported via the X-Plane Bug Reporter are tracked.