ATCMaroc Simulator
A comprehensive guide to controlling air traffic at Moroccan airports. Learn everything from basic radar operations to advanced approach sequencing.
Welcome
Welcome to the ATCMaroc Air Traffic Control Simulator. You play the role of an approach/departure radar controller at one of three Moroccan airports. Your job is to manage both departures and arrivals — climbing departures out of your airspace on their SIDs, and descending/vectoring arrivals to the runway for approach clearance.
In short: you manage everything between takeoff and landing — altitude assignments, heading vectors, speed control, SID/STAR compliance, approach clearances, and separation between all aircraft.
The Radar Scope
The radar scope is the large dark area that fills most of your screen. It shows:
- Aircraft targets — small blips with data blocks showing callsign, altitude, and speed
- Video maps — lines representing airways, runways, and geographic features
- Fixes/waypoints — named navigation points (e.g., BAMRA, LACAD)
- Extended centerlines — the localizer path extending from each runway
- Airspace boundaries — the limits of your control area
- Terrain — elevation shading to help with minimum altitude awareness
Pan, Zoom & Select
| Action | How |
|---|---|
| Pan the scope | Hold right mouse button and drag (configurable in Settings) |
| Zoom in / out | Scroll wheel up / down |
| Reset zoom | Click the middle mouse button (scroll wheel click) |
| Select an aircraft | Left-click on its radar target or data block |
| Deselect | Left-click on empty space, or press Esc |
The Command Bar
At the bottom of the screen is the command input bar. This is where you type instructions to aircraft. The basic pattern is:
[callsign] [command] [arguments]
For example:
RAM802 d 80 — descend to 8,000 ft RAM802 t r 270 — turn right heading 270 RAM802 i 35L — cleared ILS runway 35L
Autocomplete
The command bar has a built-in autocomplete system. As you type, suggestions appear above the input. Use:
- ↑ / ↓ to navigate suggestions
- Tab to select / commit a suggestion
- Esc to cancel
Chaining Commands
You can issue multiple commands in a single transmission. Just string them together:
RAM802 d 60 t l 180 - 210 i 17R
This tells the aircraft to descend to 6,000, turn left heading 180, reduce speed to 210 knots, and expect ILS runway 17R — all at once.
Understanding the Display
Data Blocks
Every aircraft on the scope has a data block — a 3-line text label connected to the radar target by a leader line. Here's how to read it:
RAM802 H ← Line 1: Callsign + Wake Turbulence Category 370 320C ← Line 2: Cleared FL + Current FL B738 450 SAD ← Line 3: Aircraft Type + Groundspeed + Exit Fix (departures)
Line 1 — Callsign & Wake Turbulence
Shows the aircraft callsign (e.g., RAM802) followed by the wake turbulence category letter when applicable:
J— Super (A380 and similar)H— Heavy (wide-body jets like B777, B747)M— Medium (narrow-body jets like B738, A320)L— Light (small aircraft like ATR, turboprops)
Line 2 — Cleared & Current Flight Level
Shows two altitudes side by side, both in hundreds of feet:
- Left number — the cleared (target) flight level you assigned
- Right number + "C" — the aircraft's current flight level
Example: 370 320C means the aircraft is cleared to FL370 and currently passing through FL320 (climbing). When both numbers match, the aircraft is level at its assigned altitude.
Line 3 — Type, Speed & Exit Fix
- Aircraft type — the ICAO type code (e.g.,
B738,A320,AT76) - Groundspeed — current speed over the ground in knots
- Exit fix (departures only) — the first 3 letters of the SID exit point, showing where the departure is heading (e.g.,
SADfor SADIC)
Violation Indicator
When a separation violation occurs, a flashing VI appears above the data block in a warning color. This means the aircraft is too close to another — resolve the conflict immediately.
Extended Label Window (ELW)
Click the ELW button in the footer bar to toggle the Extended Label Window panel. When visible, hover over any aircraft's data block and the ELW will display detailed flight information — aircraft type, assigned altitude, speed, route, and more — without cluttering the scope.
Scope Display Toggles
Click the scope display icon (circle with crosshairs) in the footer bar to reveal a submenu of toggles:
| Toggle | What It Shows/Hides |
|---|---|
| Fixes | Named waypoints and navigation aids on the scope |
| SID display | Standard Instrument Departure routes (lines on scope) |
| STAR display | Standard Terminal Arrival Routes (lines on scope) |
| Airspace Depiction | Your airspace boundary polygon |
| Restricted Areas | Areas where aircraft must not enter |
| Terrain | Elevation shading (on by default) |
| Video Maps | Overlay lines showing airways, coastlines, etc. |
MVA Sectors
Click the MVA button in the footer to toggle Minimum Vectoring Altitude sectors on the scope. These show the minimum safe altitude you can assign to aircraft in each area, accounting for terrain and obstacle clearance. The altitudes are displayed as numbers inside sector boundaries.
Managing Departures
How Departures Work
Departure aircraft appear on the scope already airborne — the system handles taxi and takeoff automatically. After takeoff, the aircraft will climb to an initial altitude (set by the airport) and then wait for your instructions.
Your job is to:
- Clear them on their route — confirm their filed SID with Cleared As Filed (
caf) - Climb them — issue a Climb via SID (
cvs) or a direct altitude assignment - Get them out of your airspace — via their SID exit point, using shortcuts (
pd) if needed
Cleared As Filed (caf)
When a departure appears, its data block shows the SID it has filed. Use caf to confirm that the aircraft is cleared to follow its filed flight plan:
RAM802 caf
This tells the aircraft: "You are cleared to follow the SID you filed." The aircraft will navigate the SID waypoints automatically.
sid command instead: RAM802 sid BAMRA1.
Climb via SID (cvs)
After clearing an aircraft on its SID, authorize it to climb following the altitude and speed restrictions published in the procedure:
| Command | Alias | Example | Effect |
|---|---|---|---|
| Climb via SID | cvs | RAM802 cvs | Climb to cruise altitude following SID restrictions |
| Climb via SID to altitude | cvs [alt] | RAM802 cvs 150 | Climb to FL150 following SID restrictions |
Without cvs, the aircraft will stay at its initial altitude. You can also give a direct altitude assignment instead (c 150), which overrides the SID restrictions and climbs directly.
Altitude, Heading & Speed
You can control departures the same way as arrivals, using the basic control instructions:
RAM802 c 120 — climb to 12,000 ft RAM802 fh 270 — fly heading 270 RAM802 + 300 — speed up to 300 knots
Use heading assignments to separate departures from arrivals or from each other. Altitude assignments help you maintain vertical separation.
Getting Departures Out of Your Airspace
Departures exit your airspace when they fly beyond the airspace boundary (or climb above the ceiling, if the "Allow departures via climb" setting is enabled). To speed up the process:
- Use Proceed Direct (
pd) to skip intermediate SID waypoints and send the aircraft straight to an exit fix:RAM802 pd LAKAB - Assign a higher altitude so the aircraft climbs out faster:
RAM802 c 250
RAM802 caf cvs — clears the aircraft on its filed route and authorizes the climb, all in one transmission.
Controlling Arrivals
How Arrivals Work
Arriving aircraft enter your airspace from one of several entry points, following a STAR (Standard Terminal Arrival Route). Your job is to:
- Descend them to appropriate altitudes
- Vector them (give headings) to align with the runway
- Clear them for an approach (ILS, direct final, VOR, or RNP)
Once cleared for an approach, the aircraft will automatically intercept the localizer, descend on the glideslope, and land — landing is handled by the system. You do not need to issue a landing clearance. Your job ends at the approach clearance.
Descend via STAR
The simplest way to manage altitude on an arrival: tell the aircraft to follow the altitude restrictions published in their STAR.
| Command | Alias | Example |
|---|---|---|
| Descend via STAR | dvs | RAM802 dvs |
| Descend via STAR to altitude | dvs [alt] | RAM802 dvs 60 (to 6,000 ft) |
The aircraft will descend following the STAR's altitude and speed restrictions. After the last restriction, it will hold that altitude until you give further instructions.
Vectoring to Final
When the aircraft needs to leave its STAR route and be guided to the runway, you give radar vectors — heading assignments that guide it onto the final approach course. A typical sequence:
RAM802 d 40 — descend to 4,000 ft RAM802 t l 270 — turn left heading 270 RAM802 t r 350 — turn right heading 350 (intercept heading) RAM802 i 35L — cleared ILS runway 35L
ILS Approach
The ILS (Instrument Landing System) is the most common approach type. The aircraft must be:
- At an appropriate altitude (usually below the glideslope intercept altitude)
- On a heading that will intercept the localizer at 30 degrees or less
| Command | Alias | Example |
|---|---|---|
| Clear ILS approach | i, ils, * | RAM802 i 35L |
Once cleared, the aircraft will automatically intercept the localizer, follow the glideslope, and land on its own.
Direct Final (df)
A shortcut to send an aircraft directly onto the final approach course without step-by-step vectoring.
| Command | Alias | Example |
|---|---|---|
| Direct Final | df, final | RAM802 df 35L |
| Direct Final with distance | df [rwy] [nm] | RAM802 df 35L 15 (join at 15nm) |
The aircraft will fly directly to a point on the extended centerline and then fly inbound to the runway. The optional distance parameter controls how far out from the runway it will join the final (default is 10nm).
Other Approach Types
| Type | Command | Example | Description |
|---|---|---|---|
| VOR Approach | vor |
RAM802 vor 35L | Non-precision approach using VOR guidance |
| RNP Approach | rnp |
RAM802 rnp 35L | GPS-based precision approach |
| Direct to IF | dif |
RAM802 dif 35L | Proceed direct to the Initial Fix of the approach |
| Self-Positioning | spos, selfpos |
RAM802 spos 35L | Aircraft navigates itself onto final approach |
Sequencing Multiple Arrivals
When multiple aircraft are arriving simultaneously, you need to sequence them — establishing an orderly flow to the runway. Key techniques:
- Speed control — slow a following aircraft to increase spacing:
RAM802 - 180 - Vectoring — extend an aircraft's path by giving a wider turn or longer downwind leg
- Altitude separation — keep aircraft at different altitudes until you can sequence them laterally
- Holding — in extreme cases, put an aircraft in a hold to absorb delay
Basic Control Instructions
Altitude
Altitudes are always given in hundreds of feet. To assign 8,000 ft, you say 80. To assign FL180 (18,000 ft), you say 180.
| Command | Aliases | Example |
|---|---|---|
| Set altitude | a, c, climb, d, descend, altitude | RAM802 d 60 |
| Set altitude + expedite | add ex or expedite | RAM802 c 120 ex |
climb 60 and descend 60 both set the target altitude to 6,000 ft. Use whichever feels natural.
Heading
Headings are given as a three-digit magnetic heading (001–360). You can specify a turn direction or let the aircraft choose the shortest turn.
| Command | Aliases | Example | Notes |
|---|---|---|---|
| Fly heading (shortest turn) | fh, h | RAM802 fh 270 | Aircraft turns whichever way is shorter |
| Turn left heading | t l, turn left | RAM802 t l 270 | Forces a left turn |
| Turn right heading | t r, turn right | RAM802 t r 270 | Forces a right turn |
| Turn by degrees | t l [deg] / t r [deg] | RAM802 t l 30 | Turn left 30 degrees from present heading |
| Fly present heading | fph | RAM802 fph | Maintain current heading, stop following route |
Speed
Speed is given in knots of indicated airspeed (IAS). Note that the scope displays groundspeed, which may differ.
| Command | Aliases | Example |
|---|---|---|
| Set speed | sp, +, -, slow, speed | RAM802 - 210 |
| Resume normal speed | sp (no argument) | RAM802 sp |
The "resume normal speed" command (or the Normal Speed button in the popup menu) removes your speed restriction and lets the aircraft revert to its own speed management.
Combining Commands
You can chain any number of commands in a single transmission. This is faster and more realistic:
RAM802 d 40 t r 350 - 180 i 35L
This single command: descends to 4,000 ft, turns right heading 350, slows to 180 knots, and clears for ILS runway 35L.
Cross
Instructs an aircraft to cross a specific waypoint on its route at a given altitude and/or speed. The aircraft manages its own descent/acceleration to comply.
| Command | Aliases | Examples |
|---|---|---|
| Cross at altitude | cr, x | RAM802 x LACAD a80 (cross LACAD at 8,000 ft) |
| Cross at speed | cr, x | RAM802 x LACAD s220 (cross LACAD at 220 kts) |
| Cross at both | cr, x | RAM802 x LACAD a80 s220 |
Routing & Navigation
Proceed Direct
Sends the aircraft directly to a waypoint that already exists in its flight plan, skipping intermediate waypoints.
| Command | Aliases | Example |
|---|---|---|
| Proceed direct | pd, dct, direct | RAM802 pd BAMRA |
If the aircraft is flying to fixes [A, B, C, D], issuing pd C makes it skip A and B, going directly to C then D.
Hold
Instructs the aircraft to fly a holding pattern over a fix. By default, it will use right turns, 1-minute legs, and the reciprocal inbound bearing.
RAM802 hold BAMRA — standard hold RAM802 hold BAMRA left 2min 180 — left turns, 2-min legs, outbound hdg 180 RAM802 hold BAMRA right 5nm — right turns, 5nm legs
Parameters you can specify (in any order after the fix name):
left/l/right/r— turn direction[number]min— leg length in minutes[number]nm— leg length in nautical miles[3-digit heading]— outbound radial heading
Exit Hold
| Command | Aliases | Example |
|---|---|---|
| Exit current hold | xh, exithold, cancelhold, continue, nohold | RAM802 xh |
| Exit hold at specific fix | (same aliases) | RAM802 xh BAMRA |
You can also exit a hold by assigning a new heading (fh 270) or a proceed direct (pd FIXNAME).
Route & Reroute
Route (insert)
Inserts a segment into the aircraft's existing route. If the new route shares a common fix, the FMS merges them automatically.
RAM802 route FESKO..RUFUS..BAMRA
Reroute (replace)
Completely replaces the aircraft's current route with a new one.
RAM802 rr LAKAB..BAMRA..LACAD.STAR1.GMMN
Route notation uses dots: single dot (.) links fixes within a published procedure, double dot (..) links fixes by direct routing.
SID / STAR Assignment
| Command | Example | Description |
|---|---|---|
star | RAM802 star MLP.GLASR9.GMMN | Assign a STAR (transition.name.airport) |
sid | RAM802 sid BAMRA1 | Assign a SID by name |
Say Commands (Queries)
Ask the aircraft to report its current or assigned parameters:
| Command | Alias | What It Reports |
|---|---|---|
| Say altitude | sa | Current altitude |
| Say assigned altitude | saa | Altitude you told it to fly |
| Say heading | sh | Current heading |
| Say assigned heading | sah | Heading you assigned |
| Say indicated airspeed | si | Current IAS in knots |
| Say assigned speed | sas | Speed you assigned |
| Say route | sr | Current flight plan route |
Click Popup Menu
Overview
Instead of typing commands, you can left-double-click on any aircraft to open a popup command menu. This is a graphical interface with buttons for all major commands.
Each button with an arrow (›) opens a submenu when you hover over it.
Submenus
Direct
Shows all waypoints in the aircraft's current route. Click one to issue a pd (proceed direct) command. Also has a manual text input for typing a fix name.
Altitude
Displays preset flight levels for quick selection. Click any altitude button to assign it immediately. Includes:
- A manual input box for any custom altitude
- An EXPEDITE toggle button — when active (highlighted), altitude changes will include the expedite modifier
Heading
Shows a compass rose of heading values to click. Also includes:
- FPH button — fly present heading
- A manual input box for a precise heading
Speed
Displays preset speed values (e.g., 160, 180, 210, 250, 280). Also includes:
- A Normal Speed button — removes your speed restriction and lets the aircraft resume its own speed management
- A manual input box for any custom speed
Approach
Lists available runways with approach types: ILS, DF (direct final), DIF (direct to IF), and SPOS (self-positioning). Click the desired combination to issue the approach clearance.
Say
Quick buttons for Say Speed, Say Heading, and Say Altitude queries.
Remove
Removes the aircraft from the simulation. Requires confirmation click.
Scope Commands & Tools
Switching to Scope Mode
By default, the command bar accepts aircraft commands. Press the ` (backtick) key to toggle into scope command mode. Press it again to return to aircraft command mode. In scope mode, you can type scope-specific commands like data block moves and scratchpad entries.
Move Data Block
In scope mode, use the numpad layout to position data blocks:
Position Map: 7 8 9 Example:
4 5 6 8 RAM802 — move data block up (north)
1 2 3 3 RAM802 — move data block down-right
5 RAM802 — center directly over target
You can also specify leader line length (0–6): 8/4 RAM802 — move up with length 4.
Projected Track Lines (PTLs)
PTLs are lines projecting ahead of an aircraft based on its speed and heading, showing where it will be in the future.
| Key | Action |
|---|---|
| F1 | Decrease PTL length (step down) |
| F2 | Increase PTL length (step up) |
The increment steps are configurable in Settings under "Projected Track Line increments".
Range/Bearing Measurement Tool
An essential tool for checking distances and headings between any two points:
| Action | How |
|---|---|
| Measure between two points | Hold Ctrl and left-click two points on the scope |
| Snap to aircraft or fix | Hold Shift + Ctrl and left-click |
| Clear all measurements | Press Esc |
The tool displays the bearing (heading) and distance (in nautical miles) between the two points. If snapped to a moving aircraft, it also shows estimated time.
Traffic & Airport Setup
Available Airports
Click the Airports button in the footer to switch between airports:
| ICAO | Name |
|---|---|
| GMAD | Agadir Al Massira Airport |
| GMMN | Casablanca Mohammed V Airport |
| GMMX | Marrakech Menara Airport |
You can also switch via the command bar: airport gmmn
Traffic Rate
Click the airplane icon in the footer to open the Traffic Setup dialog. Here you can:
- Adjust the spawn rate for each arrival/departure route (higher = more traffic)
- See the current wind direction and speed
- Click Default to reset rates to the airport's default
- Click Restart to clear all aircraft and start fresh
Runway Configuration
Inside the Traffic Setup dialog, you can change the active runway configuration. This determines which runways are active for arrivals and departures. The configuration should match the wind direction — aircraft operate into the wind.
Timewarp
Speed up time to fast-forward through quiet periods:
- Click the fast-forward icon (⏩) in the footer to cycle: 1x → 2x → 5x → 1x
- Or use the command bar:
tw 3(set to 3x speed) - Type
twortw 1to return to normal speed
Pause
Click the pause icon in the footer, or type pause in the command bar. Click anywhere on the scope to resume.
Settings
Click the gear icon in the footer to open the Settings dialog. Available options:
| Setting | Options | Description |
|---|---|---|
| Scope Theme | Classic, Default, Celestial | Changes the visual appearance of the entire radar scope |
| Control Method | Classic, Arrow Keys | Classic: type commands only. Arrow Keys: use arrow keys for heading/altitude |
| ILS Separation Indicator | From Theme, Yes, No | Shows a trailing dot 2.5nm behind aircraft on ILS to help with spacing |
| PTL Increments | Multiple presets | Step sizes when pressing F1/F2 (e.g., 1-2-4-8 minutes) |
| Projected Path | Always, Selected, Never | When to show the planned route line of aircraft |
| Allow Departures via Climb | Yes, No | If yes, aircraft can leave your airspace by climbing above the ceiling |
| Panning Button | Left Click, Right Click | Which mouse button drags the scope for panning |
| Range Rings | Off, Default, 1–20 nm | Concentric circles around the airport at set intervals |
| Measure Path Style | Straight, Arc to next, All arced | How the range/bearing measuring line is drawn |
| Chat Log Duration | Number (seconds) | How long radio transmissions remain visible on screen |
Click the speaker icon in the footer to toggle speech synthesis — when enabled, pilot readbacks are spoken aloud using your browser's text-to-speech.
Separation Rules
As a radar controller, you must maintain minimum separation between all aircraft under your control:
10 nautical miles laterally OR 1,000 feet vertically
If two aircraft come closer than these minimums simultaneously (less than 10nm and less than 1,000 ft), a separation conflict occurs. This is highlighted on the scope and should be resolved immediately.
Collision occurs when aircraft are within approximately 160 feet of each other — a catastrophic failure of separation.
Keyboard Shortcuts
| Key | Action |
|---|---|
| F1 | Decrease PTL length |
| F2 | Increase PTL length |
| ` (backtick) | Toggle between aircraft / scope command mode |
| Ctrl + left-click | Place measurement point |
| Shift + Ctrl + left-click | Snap measurement to nearest aircraft or fix |
| Esc | Clear measurement lines / deselect aircraft |
| Numpad * | Shortcut for ILS command |
| Numpad + | Speed up (alias for + speed command) |
| Numpad - | Slow down (alias for - speed command) |
| Scroll wheel | Zoom in / out |
| Middle mouse button | Reset zoom |
| Right-click + drag | Pan the scope |
Command Cheat Sheet
Aircraft Commands
| Category | Command | Aliases | Syntax |
|---|---|---|---|
| Altitude / Speed | Altitude | a c climb d descend | [call] d 80 |
| Altitude + expedite | [call] c 120 ex | ||
| Speed | sp + - slow speed | [call] - 210 | |
| Normal speed | sp | [call] sp | |
| Cross | cr x | [call] x FIX a80 s220 | |
| Heading | Fly heading | fh h heading | [call] fh 270 |
| Turn left/right | t turn | [call] t l 270 | |
| Turn by degrees | t | [call] t r 30 | |
| Fly present heading | fph | [call] fph | |
| Departure | Cleared as filed | caf | [call] caf |
| Climb via SID | cvs | [call] cvs or cvs 150 | |
| Assign SID | sid | [call] sid BAMRA1 | |
| Approach | ILS | i ils * | [call] i 35L |
| Direct final | df final | [call] df 35L | |
| Direct final + dist | df | [call] df 35L 15 | |
| VOR approach | vor | [call] vor 35L | |
| RNP approach | rnp | [call] rnp 35L | |
| Direct to IF | dif | [call] dif 35L | |
| Self-positioning | spos selfpos | [call] spos 35L | |
| STAR / Routing | Descend via STAR | dvs | [call] dvs or dvs 60 |
| Proceed direct | pd dct direct | [call] pd BAMRA | |
| Expect runway | e | [call] e 35L | |
| Assign STAR | star | [call] star MLP.GLASR9.GMMN | |
| Hold | Hold | hold | [call] hold FIX |
| Hold (custom) | [call] hold FIX left 2min 180 | ||
| Exit hold | xh exithold cancelhold continue nohold | [call] xh | |
| Query | Say altitude | sa | [call] sa |
| Say assigned alt | saa | [call] saa | |
| Say heading | sh | [call] sh | |
| Say IAS | si | [call] si | |
| Say route | sr | [call] sr | |
| Misc | Squawk | sq | [call] sq 0401 |
| Delete | del kill | [call] del |
System Commands
| Command | Alias | Syntax |
|---|---|---|
| Switch airport | airport | airport gmmn |
| Pause | pause | pause |
| Timewarp | tw | tw 5 |
| Spawn rate | rate | rate 2 |
Scope Commands (press ` first)
| Command | Syntax | Example |
|---|---|---|
| Move data block | [1-9] [callsign] | 8 RAM802 |
| Move + set length | [dir]/[len] [callsign] | 8/4 RAM802 |
ATCMaroc Simulator — User Guide