Interactive Commands Reference
Complete reference for interactive ATC control commands in radarcontrol.io.
Overview
Interactive control mode allows you to take direct control of aircraft and issue clearances using text commands or control buttons, similar to real-world ATC operations. Commands follow the format:
CALLSIGN command1 command2 ...Multiple commands can be chained together in a single clearance.
Altitude Commands
Climb/Descend to Flight Level
Clear aircraft to climb or descend to a flight level.
Syntax:
cfl[LEVEL]- Climb/descend to flight levelc[LEVEL]- Climb/descend to flight level (short form)
Examples:
AAL123 cfl200 # Climb/descend to FL200 (20,000 ft)
DAL456 c350 # Climb/descend to FL350 (35,000 ft)
UAL789 cfl100 # Descend to FL100 (10,000 ft)TIP
Flight levels are hundreds of feet (FL200 = 20,000 ft). The simulator automatically determines whether to climb or descend based on current altitude.
Climb/Descend to Feet
Clear aircraft to a specific altitude in feet.
Syntax:
c[ALTITUDE]ft- Climb/descend to altitude in feet
Examples:
AAL123 c35000ft # Climb/descend to 35,000 feet
DAL456 c10000ft # Descend to 10,000 feetSpeed Commands
Assign Speed
Assign a speed restriction to an aircraft.
Syntax:
s[SPEED]- Set speed in knots (IAS)
Examples:
AAL123 s400 # Speed 400 knots
DAL456 s250 # Reduce speed to 250 knots
UAL789 s320 # Speed 320 knotsSpeed Guidelines
- Normal cruise: 400-450 knots
- Sequencing: 320-380 knots
- Approach: 250 knots
- Minimum: 180-200 knots
Heading Commands
Assign Heading
Assign a heading for the aircraft to fly (vectoring).
Syntax:
h [HEADING]- Fly heading (auto-selects shortest turn)h l [HEADING]- Turn left to headingh r [HEADING]- Turn right to heading
Examples:
AAL123 h 270 # Fly heading 270 (west)
DAL456 h l 180 # Turn left heading 180
UAL789 h r 090 # Turn right heading 090When to specify turn direction
- Without direction (
h 270) - Aircraft takes the shortest turn - With direction (
h l 270) - Forces specific turn direction, useful for:- Traffic separation (turn away from conflict)
- Avoiding airspace
- Specific ATC instructions
Standard headings use 3 digits (090, 180, 270, 360).
Direct To Commands
Clear Direct to Waypoint
Clear aircraft direct to a waypoint, bypassing other route waypoints.
Syntax:
dr [WAYPOINT]- Direct to waypointd [WAYPOINT]- Direct to waypoint (short form)
Examples:
AAL123 dr KMART # Proceed direct to KMART
DAL456 d ROBUC # Proceed direct to ROBUC
UAL789 dr DEN # Proceed direct to DENWaypoint Validation
- Waypoint name must be 3-5 characters
- Waypoint must exist in the current airspace
- Invalid waypoints will be rejected with an error message
- This removes intermediate waypoints from the route
Route Commands
Set Entire Route
Clear aircraft to fly a complete route with multiple waypoints. This command must be the last command in a clearance as all remaining tokens are interpreted as waypoints.
Syntax:
r [WAYPOINT] [WAYPOINT] ...- Set complete route (space-separated)route [WAYPOINT] [WAYPOINT] ...- Set complete route (full form)
Parameters:
- Waypoints must be separated by spaces
- All waypoints must exist in the current airspace
- Minimum 2 waypoints required
- Route command consumes all remaining tokens, so it must be last
Examples:
AAL123 r COORS DEN # Route via COORS, DEN
DAL456 route KMART ROBUC DEN # Route via KMART, ROBUC, DEN
UAL789 r KELSI COORS RAMMS DEN # Multi-waypoint route
AAL123 cfl200 s400 r COORS DEN # Climb FL200, speed 400, then route via COORS, DENRoute Building with Autocomplete
- Direct To (
dr) - Removes intermediate waypoints, proceeds direct - Route (
r) - Overwrites entire route with new waypoints - Route must be the last command - all tokens after
rare waypoints - Autocomplete behavior:
- After selecting a waypoint, a space is automatically added
- Continue typing the next waypoint name to get suggestions
- Autocomplete shows waypoint number (e.g., "waypoint #2")
- Example flow: Type
r C→ Select COORS → Space added → TypeD→ Select DEN → Press Enter
Offset Commands
Lateral Offset
Apply a lateral offset to the aircraft's route.
Syntax:
or[NM]oroffr[NM]- Offset right by nautical milesol[NM]oroffl[NM]- Offset left by nautical mileso[+/-NM]oroff[+/-NM]- Offset with sign (+ = right, - = left)
Examples:
AAL123 or5 # Offset 5nm right of route
DAL456 ol3 # Offset 3nm left of route
UAL789 o+5 # Offset 5nm right
SWA321 o-5 # Offset 5nm leftTIP
Use offsets for lateral separation or weather avoidance. Offset is perpendicular to the current route.
Hold Commands
Issue Holding Pattern
Clear aircraft to hold at a waypoint.
Syntax:
h WAYPOINT- Hold at waypoint (uses ICAO standard defaults)h WAYPOINT L|R- Hold with specified turn directionh WAYPOINT L|R LEGNM- Hold with custom leg lengthh WAYPOINT L|R LEGNM e TIME- Hold with EFC (Expect Further Clearance) time
Parameters:
WAYPOINT- Fix name (3-5 characters, must exist in airspace)LorR- Turn direction (Left or Right), default: R (ICAO standard)LEGNM- Leg length in nautical miles, default: 4nm (ICAO 1-minute standard)TIME- EFC time in seconds (optional)
Examples:
AAL123 h KMART # Hold at KMART (right turns, 4nm legs - ICAO standard)
DAL456 h KMART L # Hold at KMART, left turns, 4nm legs
UAL789 h ROBUC R 10 # Hold at ROBUC, right turns, 10nm legs
SWA321 h KMART L 10 e 3600 # Hold with EFC at time 3600ICAO Standards
The ICAO standard holding pattern uses:
- Right turns (default)
- 1-minute legs below FL140 (~4nm at typical speeds)
- 1.5-minute legs at or above FL140 (~6nm)
For simplicity, the simulator defaults to 4nm legs at all altitudes.
Exit hold
Cancel holding pattern and resume the aircraft's route.
Syntax:
xhld- Exit hold and resume routeexh- Exit hold (short form)exithold- Exit hold (full form)
Examples:
AAL123 xhld # Exit hold, resume route
DAL456 exh # Exit hold (short form)TIP
Use this command when traffic permits the aircraft to continue. The aircraft will proceed to the next waypoint in its route.
STA Commands (Scheduled Time of Arrival)
Assign Scheduled Arrival Time
Assign a scheduled time for the aircraft to cross a waypoint.
Syntax:
sta WAYPOINT @ TIME- Schedule crossing time
Parameters:
WAYPOINT- Fix name (3-5 characters)TIME- Crossing time in seconds (simulation time)
Examples:
AAL123 sta KMART @ 3600 # Cross KMART at time 3600
DAL456 sta ROBUC @ 4200 # Cross ROBUC at time 4200TIP
Time is in seconds since simulation start. Aircraft will adjust speed to meet the constraint. Useful for metering and sequencing.
Handoff Commands
Transfer Aircraft to Another Sector
Hand off aircraft to the next sector.
Syntax:
ho SECTOR- Handoff to sector
Examples:
AAL123 ho ZDV # Handoff to Denver Center (ZDV)
DAL456 ho ZKC # Handoff to Kansas City Center (ZKC)Approach Commands
ILS Approach Clearance
Clear an aircraft for an ILS approach to a specific runway.
Syntax:
i [RUNWAY]- Clear ILS approach (short form)ils [RUNWAY]- Clear ILS approach
Examples:
DAL123 i 27L # Clear ILS runway 27L
SWA456 ils 09 # Clear ILS runway 09
AAL789 i 4R # Clear ILS runway 4 rightPrerequisites
For an ILS clearance to succeed:
- Aircraft heading must be within 30° of runway heading
- Aircraft must be 5-20nm from the runway threshold
- Aircraft altitude must allow glideslope capture
Contact Tower
Hand off the aircraft to tower control. Required for landing to complete.
Syntax:
tortwrortower- Contact tower
Examples:
DAL123 twr # Contact tower
SWA456 t # Contact tower (short form)Important
Without tower contact, aircraft will continue the approach but cannot complete the landing. Always issue tower contact before the aircraft reaches decision height (200ft AGL).
Go-Around
Instruct an aircraft to abort the approach and climb.
Syntax:
ga- Go around
Examples:
DAL123 ga # Go aroundTIP
After a go-around, aircraft climbs to 3,000ft above airport elevation and regains controllability for re-vectoring.
See Arrivals & ILS Approaches for complete approach documentation.
Command Chaining
Multiple commands can be combined in a single clearance. If using a route command, it must be the last command.
Examples:
AAL123 cfl200 s400 dr KMART # Climb FL200, speed 400, direct KMART
DAL456 c35000ft s320 or5 # Climb 35000ft, speed 320, offset 5nm right
UAL789 cfl300 s450 r KMART DEN # Climb FL300, speed 450, route KMART-DEN
SWA321 h KMART s250 # Hold at KMART (standard pattern), speed 250Validation
- Commands are executed in order
- Invalid commands will reject the entire clearance
- Waypoints must exist in the current airspace
- Invalid waypoint names will be rejected before execution
Quick Reference
ALTITUDE
cfl200, c200 Climb/descend FL200
c35000ft Climb/descend 35,000 ft
SPEED
s400 Speed 400 knots
HEADING
h 270 Fly heading 270
h l 270 Turn left heading 270
h r 090 Turn right heading 090
NAVIGATION
dr KMART, d ROBUC Direct to waypoint
r COORS DEN Set route (space-separated, must be last)
or5, ol5 Offset 5nm right/left
o+5, o-5 Offset with sign
HOLDING (defaults: right turns, 4nm legs)
h KMART Hold at KMART (ICAO standard)
h KMART L Hold at KMART, left turns
h KMART R 10 Hold with 10nm legs
h KMART L 10 e 3600 Hold with EFC
xhld, exh Exit hold and resume route
APPROACH/ILS
i 27L, ils 27L Clear ILS runway 27L
t, twr, tower Contact tower (required for landing)
ga Go around
TIME
sta KMART @ 3600 Cross KMART at time 3600
HANDOFF
ho ZDV Handoff to sector
EXAMPLES
AAL123 cfl200 s400 dr KMART
DAL456 c35000ft s320 h KMART
UAL789 cfl300 s450 r KMART DEN
SWA321 sta KMART @ 3600 s250
DAL123 c50 i 27L twr # Descend, clear ILS, contact towerMouse Controls
In addition to text commands, you can control aircraft using mouse interactions. These features are found in the RADAR panel under "Click-to-command".
Default settings
Click-to-command features are disabled by default for new users to prevent accidental commands while learning the interface. Enable them in the RADAR panel when you're ready for mouse-based control.
Click-to-command: Waypoint
Click on any waypoint while an aircraft is selected to issue a direct-to command.
How to use:
- Enable "Waypoint" checkbox in the RADAR panel
- Select an aircraft (click on it or its flight strip)
- Click on any waypoint on the radar display
- The aircraft is cleared direct to that waypoint
TIP
The command appears in the input field (e.g., AAL123 dr KMART) and ATC phraseology is spoken if TTS is enabled.
Click-to-command: Heading (Drag)
Drag from an aircraft to assign a heading vector.
How to use:
- Enable "Heading (drag)" checkbox in the RADAR panel
- Select an aircraft (click on it or its flight strip)
- Click and drag from the aircraft in any direction
- A preview line shows the heading that will be assigned
- Release to issue the heading command
Modifier keys:
| Key | Effect |
|---|---|
| None | Free heading (any degree, e.g., 273°, 267°) |
| Alt/Option | Snap to 10° increments (270°, 260°, 250°, etc.) |
Visual Feedback
- Cyan line: Free heading mode
- Yellow line: Snap mode active (Alt/Option held)
The line snaps to the exact 10-degree heading direction when Alt/Option is held, making it easy to assign standard headings for vectoring.
Tips:
- Press Escape while dragging to cancel
- Works with both pinned and hovered aircraft
- Great for quick vectoring without typing commands
Visual Features
Conflict detection and resolution
When two aircraft are predicted to lose separation (within 5nm lateral and 1000ft vertical in the next 5 minutes), they are highlighted on the radar display:
- Red aircraft symbol - The aircraft dot and direction line turn red
- Red callsign - The callsign text turns red
- Conflict toast - A red notification appears at the bottom of the screen
TIP
Click the conflict toast to zoom the radar to the midpoint between the two conflicting aircraft, making it easy to assess and resolve the conflict.
Resolution advisories
When a conflict is detected, the system automatically calculates resolution advisories - suggested maneuvers to resolve the conflict. These appear in the conflict toast:
Toast contents:
- Callsigns - The two conflicting aircraft (e.g., "AAL123 / UAL456")
- Separation - Predicted minimum separation (e.g., "2.3nm in 45s")
- Advisory - Recommended resolution with Apply/Dismiss buttons
Advisory types:
| Type | Icon | Example | Description |
|---|---|---|---|
| Climb | ↑ | AAL123 ↑ FL370 | Climb to flight level 370 |
| Descend | ↓ | UAL456 ↓ FL330 | Descend to flight level 330 |
| Turn left | ↰ | AAL123 ↰ 30° | Turn left 30 degrees |
| Turn right | ↱ | UAL456 ↱ 30° | Turn right 30 degrees |
| Speed | AAL123 350kts | Reduce speed to 350 knots |
Using advisories:
Apply - Click the green "Apply" button to execute the recommended maneuver
- The command is issued immediately
- ATC phraseology is spoken (if TTS enabled)
- The advisory disappears after applying
Dismiss - Click the red "Dismiss" button to hide the advisory
- Use this if you prefer to resolve the conflict manually
- The conflict warning remains until separation is achieved
Resolution priority
The system prioritizes resolutions in this order:
- Vertical (climb/descend) - Fastest to achieve separation, preferred
- Lateral (turn) - Used when vertical won't be effective
- Speed - Last resort, takes longest to achieve separation
The recommended advisory is the one with the highest effectiveness score (0-1), where 1.0 means the conflict will be fully resolved.
Manual resolution:
You can always resolve conflicts manually instead of using advisories:
AAL123 c370 # Climb to FL370
UAL456 c330 # Descend to FL330Or use lateral separation:
AAL123 or5 # Offset 5nm right
UAL456 ol5 # Offset 5nm leftTIP
Vertical separation is usually faster and cleaner than lateral. A 2000ft vertical separation (e.g., FL350 vs FL370) provides adequate margin and allows aircraft to maintain their routes.
Airport departure schedule
Click on any airport in the left panel to view expected departures:
- Departure popup - Shows the next 5 scheduled departures for that airport
- UTC times - Each departure shows the expected time in UTC (Zulu)
- Relative countdown - Shows time until each departure (e.g., "2m 30s")
- Imminent departures - Departures within 2 minutes are highlighted in yellow
INFO
- Departure frequency is based on the traffic intensity slider
- At 0% intensity, no departures are scheduled
- Click the same airport again to close the popup
UTC clock
The simulation time is displayed in the top-right corner of the radar in UTC format (HH:MM:SSz). This clock:
- Follows simulation speed (accelerates/decelerates with sim speed)
- Is used for all departure schedule times
- Helps coordinate traffic timing
Toolbar Controls
Simulation speed
The speed slider in the toolbar controls how fast the simulation runs:
- 0.25x to 16x - Range from quarter-speed to 16x acceleration
- 1x button - Quick reset to real-time speed
- TTS auto-pause - Voice synthesis pauses at 4x and above (can't keep up with real-time speech)
When speed is 4x or higher:
- The speaker icon changes to ⏸️
- Tooltip shows "Voice paused (speed ≥4x)"
- Messages still appear in the command history
- TTS resumes when you slow down below 4x
TIP
Toast notifications (ATC commands, conflicts) also rotate faster at higher speeds. At 2x, they disappear twice as fast. Minimum display time ensures you can still read important messages.
Traffic intensity
Hover over the Spawn button to access traffic intensity controls:
- Slider (0-100%) - Controls auto-spawn frequency
- 0% - No automatic spawns (manual spawn only)
- 100% - Maximum traffic rate (~2 minutes between spawns)
- Hint text - Shows estimated time between spawns
Traffic timing
The spawn interval shows approximately how often new aircraft appear from entry points. At 50% intensity, aircraft spawn roughly every 4 minutes. Departures from airports follow a separate but linked schedule.
Manual spawn
Click the Spawn button to immediately spawn a new aircraft from a random entry point. Useful for:
- Testing specific scenarios
- Quick traffic generation when intensity is set to 0%
- Adding aircraft during low-activity periods
Interactive Mode vs Scripting Mode
Features Only in Interactive Mode
- Holding Patterns -
h KMART L 10syntax - STA (Scheduled Time of Arrival) -
sta KMART @ 3600syntax - Click-to-command: Waypoint - Click waypoints to direct aircraft
- Click-to-command: Heading - Drag to set heading vectors (Alt/Option for 10° snap)
Features Only in Scripting Mode
- Turn Commands -
aircraft.turn.left(),aircraft.turn.right() - Event Callbacks -
aircraft.over(),aircraft.before(),aircraft.reach() - Traffic Queries -
traffic.all(),traffic.byCallsign() - Event Handlers -
onTick(),onSpawn(),onConflict() - Weather API -
weather.windAt() - Utility Functions -
flightlevel(),fl(),distance(),headingTo()
See the API Reference for scripting mode details.