How a line works
One line addresses one aircraft. The first token is the callsign; everything after it is a stream of verbs, each with its argument. Case is ignored, and a chained line is one transmission: GTW412 C 270 C 4 S 180.
A letter verb key fires only when no text field, button, or link holds focus, because airline callsigns begin with verb letters (SWA526, LOF31) and a live S inside the bar would eat the first character of a typed line. Nothing riding Ctrl, Alt, or Cmd is ever intercepted. The arrows are the one narrow exception: they stage the altitude verb even from inside the command bar, but only while the bar holds nothing but the callsign, so a half-typed line is never overwritten.
You never have to type any of it. Click an aircraft for a menu that issues the same commands, or drag its blip to vector it. The radio speaks the full real exchange either way.
The commands
| Command | Argument | What it does | Accepted by | Key |
|---|---|---|---|---|
C 035 |
3 digits, or 1 to 2 digits over 36 | Turn to a heading, the pilot turns the shortest way. The argument shape decides which C this is: 3 digits, or a 1 to 2 digit number above 36, is a heading. Headings are normalised, so 370 flies 010. A heading cancels a direct-to, drops the route queue, exits a hold, and cancels an armed approach clearance (the pilot says so). A heading to a VFR pattern aircraft takes it out of closed traffic. | Any airborne aircraft, VFR included. | C |
CL / CR 035 |
a heading, 1 to 3 digits, 360 or less | Turn LEFT or RIGHT to a heading, flown the commanded way. The commanded-direction exception to the shortest-way default: the aircraft flies the arc you named even when the other one is shorter. Unlike plain C, the parser refuses an argument above 360 here rather than normalising it. | Any airborne aircraft, VFR included. | typed |
C 5 |
1 to 2 digits, 36 or less | Climb or descend to that altitude in thousands. C 5 is 5,000. The value is clamped to the field's own altitude band, so a high field accepts high altitudes (Denver works roughly 8,000 to 17,000 where a sea-level field works 2,000 to 12,000). An altitude cancels an armed approach clearance. A VFR aircraft owns its own altitude and answers unable, VFR. | IFR aircraft. Refused for VFR. | C, or the Down / Up arrow |
C DEECE |
3 to 5 letters | Proceed direct to a fix. The name resolves against the airport's charted fixes; a NASR fix wins over a published-procedure fix of the same name, and an unknown name is refused by name. A direct-to exits a hold and cancels an armed approach clearance. Only an airborne aircraft accepts one. | Airborne only. A holding-short or taxiing aircraft answers unable, not airborne. | C |
C DEECE C STAAN |
a second fix in the same line | Route: direct DEECE, then STAAN. The FIRST C fix in a line is a fresh clearance and replaces the whole route; every later one queues behind it, and the readback uses the real amendment wording (after DEECE, direct STAAN). A queued fix with no route ahead of it is simply a fresh clearance. The aircraft auto-sequences fix to fix and resumes its filed behaviour when the route runs out. | Airborne only. | typed |
S 210 |
2 to 3 digits | Assign a speed in knots. Refused below the type's approach floor (the unable names the floor) and refused above 250 while below 10,000 ft, per 14 CFR 91.117(a); an aircraft running an emergency may keep its speed. The top end is clamped to the type's maximum rather than refused, so a light type simply cannot be pushed to 250. A VFR aircraft answers unable, VFR. | IFR aircraft. Refused for VFR. | S |
RS |
none | Resume normal speed, releasing the assigned speed. Hands the speed profile back to the pilot: cruise-ish while enroute, natural deceleration on approach. Distinct from R, which is navigation. | Airborne only. | typed |
L 30L |
a runway, required | Cleared to land. Three behaviours by state, all in commands.ts. On an aircraft already established on an approach clearance it sets the LANDING clearance only, with zero guidance change, the approach keeps flying the profile. On a VFR aircraft in the pattern it clears the option for this lap. Otherwise it is the one-step tower shortcut, accepted within 3,000 ft AGL and 60 degrees of runway heading, refused as too high or not aligned outside that. Re-issuing a landing clearance an aircraft already holds is a pure readback and changes nothing. A runway outside the active flow still works and reads back traffic permitting. | Arrivals, VFR arrivals, and pattern aircraft. A departure answers unable, not an arrival. | L |
CA 30L |
a runway, optional | Cleared approach, the ILS, LOC or RNAV from the published plates. With no runway it uses the aircraft's expected runway. The aircraft intercepts the final approach course and flies the glidepath down on its own, and it still needs the tower's L before the threshold, or the pilot goes around for no landing clearance. A heading, altitude, or direct-to cancels the approach clearance; re-clear with CA. | Arrivals with a published approach available. | typed |
PF 30L |
a runway, optional | Point out the field and ask the pilot to report it in sight. The first half of the visual approach exchange: airport twelve o'clock, one zero miles, report it in sight. Whether the pilot has the field is the sim's call, not yours. | Arrivals within sight of the field. | typed |
VA 30L |
a runway, optional | Cleared visual approach. Available once the pilot has reported the field in sight. The aircraft navigates itself in and still needs L before the threshold, exactly like an instrument approach. | Arrivals that have reported the field in sight. | typed |
A |
none | Go around. The aircraft breaks off, climbs to 3,000 ft above the field, holds runway heading and awaits vectors: the missed approach comes back as your problem rather than a self-route on a stale plan. Valid from a landing clearance or from an armed approach clearance, and refused as not on approach from anywhere else. | Aircraft on final or on an approach clearance. | A |
T 30L |
a runway, optional | Cleared for takeoff. With no runway it uses the end the aircraft is holding short of. Naming a DIFFERENT end is refused with a pointer to the menu's re-taxi, because you cannot depart a runway you are not at. Refused while the end is occupied (7110.65 3-9-4) and, at the dispatch layer, during a same-runway wake departure interval. Where a simultaneous parallel departure justifies it, the clearance carries and SPEAKS an assigned divergent heading (7110.65 3-9-9). | Departures holding short or lined up and waiting. | T |
W 30L |
a runway, optional | Line up and wait. Allowed during a wake departure interval, you may position the aircraft, you just cannot launch it, and the readback carries the expected wait. Refused while the runway is occupied, and refused from anything other than holding short. | Departures holding short. | W |
RT 12L |
a runway, required | Re-taxi to a different runway end. Sends the departure into a ground taxi of 2 to 4 minutes scaled by distance, dim and uncommandable, after which it reappears holding short of the new end. Refused if it is not holding short, or is already at that end. | Departures holding short. | typed |
H DEECE |
a fix of 3 to 5 letters, optional | Hold at a fix as published, or hold present position. With no fix it holds where it is. A hold drops the route queue. Any heading, direct-to, or landing clearance exits the hold; an altitude alone does not. Refused for an aircraft already on final, vector it off first. | Airborne only, not on final. | H |
DV |
none | Descend via the arrival. Puts a vectored STAR arrival back on the procedure: the lateral leg sequence and the descend-via profile together, so the pilot manages their own altitude to the charted crossing restrictions again. Refused unless the aircraft is within about 8 nm of the remaining path, so a far-vectored arrival must be steered back first. | Arrivals still carrying a STAR. Refused on final. | typed |
CV |
none | Climb via the departure. The departure-side mirror of DV: rejoins the SID's legs and re-arms the climb-via profile, subject to the same rejoin tolerance. Refused once the aircraft is past the departure's charted portion. | Departures still carrying a SID. | typed |
R |
none | Resume own navigation. What it resumes depends on the aircraft. A SID departure rejoins the departure; any other departure goes back to its filed plan, direct the exit fix and climbing, so R is never a dead end for a departure. A STAR arrival rejoins the arrival, and an arrival with NO published arrival is refused, no filed procedure to resume: vector it or clear it an approach instead. | Departures always. Arrivals only when they are flying a STAR. | R |
F |
none | Frequency change: hand off to Center, or contact ground after landing. A departure becomes handoff-ready at the exit fix at or above 5,000 ft, and handing it off then scores full value; waiting nags, then hands off late for less. After a landing, F contacts ground and completes the arrival. | Handoff-ready departures, and arrivals after rollout. | F |
ED |
none | Extend downwind, the pattern spacing tool. Holds a pattern aircraft on downwind past its normal base turn until you clear the option. Clearing the option or a full stop cancels it. | VFR aircraft in the pattern. Anything else answers unable, not in the pattern. | typed |
FS |
none | Full stop: this one lands and leaves the pattern. Clears the option and lands for real instead of touching and going. | VFR aircraft in the pattern. | typed |
SOB |
none | Ask souls on board and fuel remaining. The emergency question. Asking promptly on a 7700 earns a bonus; never asking is penalised. | Aircraft running an emergency. | typed |
SI |
none | Say intentions: the pilot reports what they are actually doing. Works on any aircraft: the answer is its real scripted intent, a VFR full stop, pattern circuits, or the filed plan. | Any aircraft. | typed |
A rejected command is never a silent refusal: the pilot says unable and names the reason, so the rejection teaches the legal alternative.
The keyboard map
A verb key focuses the command bar and fills it with the callsign and the verb, caret at the end. You type the value and press Enter. The line it sends is the line you would have typed, character for character, which is why readbacks, scoring, and session replay are identical either way.
| Key | Stages | Then type |
|---|---|---|
C |
C |
a heading (270), an altitude in thousands (5), or a fix (DEECE) |
Down / Up arrow |
C |
the altitude in thousands |
S |
S |
the speed |
L |
L |
the runway |
T |
T |
a runway, or nothing |
W |
W |
a runway, or nothing |
A |
A |
nothing, press Enter |
H |
H |
a fix, or nothing |
F |
F |
nothing, press Enter |
R |
R |
nothing, press Enter |
Space |
the callsign only |
any verb, including the two-letter ones |
Tab / Shift+Tab |
nothing | selects the next or previous aircraft in strip-bay order, skipping any mid-taxi |
| Key | Does |
|---|---|
1 / 2 / 3 |
sector, approach, and field view presets |
+ / - |
zoom |
[ / ] |
game speed down and up |
P |
pause |
/ |
focus the command bar |
? |
toggle the help panel |
Esc |
clear the bar, close a panel, hand the keys back to the scope |
One consequence, stated plainly: right after you send a line the bar still holds focus, so letter keys type instead of staging. Esc hands the keys back to the scope, and Tab does it while moving to the next aircraft.
Worked sequences
An arrival, descend via to landing
SWA526 checks in already descending via a published arrival. You leave the procedure alone until you need the airspace, take it off for the sequence, then put it back on and finish with the two-clearance approach.
SWA526 S 250Speed control first, the cheapest tool. The arrival keeps flying its own descent.SWA526 C 250A vector for spacing. This takes it off the arrival laterally, and the pilot says so.SWA526 C 5An altitude assignment takes it off the descend-via profile too. Now you own both axes.SWA526 DVBack on the procedure once it can rejoin: legs and crossing restrictions together. Vector it toward the path first, or you get an honest unable.SWA526 CA 30LCleared the approach. It intercepts the final approach course and flies the glidepath down on its own; no more altitude calls.SWA526 L 30LThe tower's landing clearance, the second half. Without it the pilot goes around at short final for no landing clearance.SWA526 FAfter rollout, contact ground. The arrival is complete and scores.
A departure, cleared and handed off
ACH221 is holding short. A departure flies its filed plan on its own once airborne, so the work is the runway and the handoff.
ACH221 W 30LLine up and wait while an arrival lands. Allowed even inside a wake departure interval; you just cannot launch yet.ACH221 TCleared for takeoff off the end it is at. Where a parallel departure justifies it the clearance also assigns and speaks a divergent heading.ACH221 C 070 C 8One transmission, two verbs: a vector off the filed track and a climb. Each overrides that axis until you give it back.ACH221 RResume own navigation: a SID departure rejoins the departure, any other goes direct its filed exit fix and climbs.ACH221 FAt the exit fix at or above 5,000 ft the strip reads RDY F. Hand it off then for full value; wait and it nags, then goes late for less.
Two ways in: clicks for the game, keystrokes for the checkride
Nothing here is required. Every command on this page is also a button on the aircraft's menu or a drag on the scope, and a player who never touches the keyboard is playing the whole game, not a reduced version of it. That is the rule the design is held to: an assist may reduce what it costs to say a thing, never what it costs to decide it. Nothing ever decides for you.
The keyboard is the other end of the same road. Typing is how a real position feels: terse, ahead of the aircraft, no hunting for a menu while two targets converge. Tab to the aircraft, stage the verb, type the value, Enter, and the loop runs without the mouse at all. Both paths emit exactly the same line and get exactly the same spoken exchange on frequency, so you can move between them mid-session, or mid-aircraft, and lose nothing.
How other ATC simulators take input
The key map was designed against a survey, published here so you can check the choices against it. Where a source could not be verified the table says so. Nothing in it is reconstructed from memory.
| Product | Era and platform | Input model | "Descend to 5,000" |
|---|---|---|---|
| TRACON (Wesson) | 1989, DOS | Pure single-keystroke. A key IS the command. | Down, giving "Descend to 00(00) feet" |
| TRACON II (Wesson) | 1990 DOS, 1992 Amiga | Modifier plus letter, with the arrow keys duplicated for the four common ones. | R-Amiga+D, or Down, giving "Descend and maintain..." |
| TRACON for Windows | 1990s | Mouse clicks and keyboard entry into a communication window. No binding list published (binding level unverified). | Unverified |
| Xavius ATCC | 1996, DOS | The manual ships with the program and no public copy was found, so no claim is made here. | Unverified |
| ATC-SIM | Browser | Typed single line. Clicking a strip or data block fills in the callsign. No key macros. | AAL123 C 5 |
| openScope | Browser, current | Typed single line, plus keys that INSERT TEXT into that line. Tab autocomplete, PgUp and PgDn cycle the selection. | AAL123 d 50 |
| Endless ATC | Mobile and PC | Three parallel models: sidebar buttons, typed text, and a no-space keypad mode. Rebindable. | KLM123A A50, or 123/50 |
| STARS and ERAM (real) | FAA | Trackball slew plus keyboard plus a dedicated keypad device. Parameter FIRST, aircraft second. | Type the altitude, then the aircraft's CID or a trackball click |
Four findings drove the design. The single-keystroke era is specifically the TRACON lineage, and we could not verify the same convention across the rest of the DOS-era field, so it is credited to TRACON rather than to the era. Nobody in the browser era went back to true single-key. Chaining commands and clicking to fill in the callsign are universal, and we already did both. And real ATC does not map to a browser at all: the FAA's own measurements put the en route model on two hands and three devices, a trackball supplying the aircraft reference, the keyboard the parameter, and a separate Keypad Selection Device driving display state, which alone handles 72 percent of range changes and 80 percent of vector-line changes. Aircraft are addressed by a three-character Computer Identification rather than by name: 70 percent of handoffs are initiated by CID, 29.6 percent by trackball, 0.3 percent by callsign. And the parameter comes before the target, the inverse of every game in the table. A browser has no keypack and no slew ball, so the transferable idea is terseness, not the input model, and we say so rather than claiming the resemblance.
What we adopt
- The down arrow descends. It is the binding the TRACON and TRACON II manuals document verbatim, TRACON II adding that "the cursor keys are duplicate for the Turn right, Turn left, Climb/Descend and maintain commands". It costs nothing to honour.
- Keys stage text, they do not execute. openScope's model, arrived at independently: its input controller literally appends the string " d " to the command box and waits for you to finish the line. One grammar, one parser, one tape. A key-staged clearance and a typed clearance are the same event.
- Verb keys are the verb letters. S for speed, L for land, H for hold. There is no second vocabulary to learn: the key is the command you would have typed.
- Tab cycles the selection. Through the strip bay in the order you see, your own drag-reordering included, so the whole loop runs without the mouse: Tab, C, 270, Enter, Tab, S, 210, Enter.
What we deliberately differ on
- No true single-key commands. A key never transmits. TRACON could get away with Down meaning descend because a modal parameter prompt followed; we keep the full line visible and editable before it goes, which is also what makes every session replayable from its command log.
- Both arrows stage the same verb. Our grammar has one altitude verb, C. The aircraft's current altitude decides whether C 5 is a climb or a descent, which is how it works on the radio too. Splitting them would have meant inventing a D verb the parser does not have, for cosmetic symmetry.
- No modifier layer for the two-letter verbs. CA, DV, CV, RS, ED, FS, SOB and SI are typed. Space opens a line on the selected aircraft and stops there, so they are two keystrokes rather than a chord nobody remembers.
- Parameter after the aircraft, not before it. Real ERAM entry is parameter-first. Every sim in the table is callsign-first, and so are we. The fidelity note exists so nobody mistakes that for an accident.
- The up and down arrows do not cycle the selection. That is openScope's default Classic behaviour. Here the descend reflex has the stronger claim on those two keys, and Tab already cycles.
Sources
- openScope command documentation and InputController.js: https://github.com/openscope/openscope/blob/develop/documentation/aircraft-commands.md
- ATC-SIM instructions: https://atc-sim.com/instructions.php
- TRACON (1989) manual, keyboard table: https://www.freegameempire.com/games/Tracon-Air-Traffic-Control-Simulator/manual
- TRACON II Amiga addendum, Chapter 4: https://www.emuparadise.me/GameBase%20Amiga/Extras/Instructions/T/Tracon%20II.txt
- Endless ATC manual: https://cdn.cloudflare.steamstatic.com/steam/apps/666610/manuals/Manual.pdf
- FAA DOT/FAA/TC-TN06/04, En route Air Traffic Controller Commands: Frequency of Use During Routine Operations (2006): https://hf.tc.faa.gov/publications/2006-en-route-air-traffic-controller-commands/full_text.pdf
Not verified, and therefore not claimed above: Xavius ATCC's input model, TRACON for Windows at binding level, and any specific STARS keypack binding. RADAR Contact was excluded on purpose, because the player is the pilot there and the software is the controller, so its input model is not comparable to this table. VectorHeavy is not affiliated with, sponsored by, or endorsed by the FAA.
Where these rules match the FAA orders and where they simplify on purpose: read the Fidelity Ledger.