From FlightGear wiki
Jump to navigation Jump to search
IMPORTANT: Some, and possibly most, of the features/ideas discussed here are likely to be affected, and possibly even deprecated, by the ongoing work on providing a property tree-based 2D drawing API accessible from Nasal using the new Canvas system available since FlightGear 2.80 (08/2012). Please see: Canvas Radar for further information

You are advised not to start working on anything directly related to this without first discussing/coordinating your ideas with other FlightGear contributors using the FlightGear developers mailing list or the Canvas subforum This is a link to the FlightGear forum.. Anything related to Canvas Core Development should be discussed first of all with TheTom and Zakalawe. Nasal-space frameworks are being maintained by Philosopher and Hooray currently. talk page.

Type Air traffic control
Markus Pargmann; Based on ATCs by (expand)
  • Joe Emmerich
  • Rob Shearman
  • Syd Adams
  • Csaba Halasz
FDM Unknown
--aircraft= atc-fs
Status Beta (under development)
 Repository The development repository of the ATC-FS.
Forum 'ATC-FS' topic on the FlightGear forum.

ATC-FS (ATC, with flightstrips) is an air traffic control (ATC) aircraft, with the purpose to help an ATC controller keeping track of the aircraft around his airport as well as helping him guide the aircraft on approach and departure and aircraft just passing through his airspace. It can be added to FlightGear just as a regular aircraft and is built with XML and nasal.


Key Function
c Compose message to target
t Start flightstrip editor for target
r Toggle radar screen
Ctrl+A Raise your position
Ctrl+Z Lower your position
Ctrl+T Toggle visual target tracking

Flightstrip List

Always click on the callsigns in the list to pick an entry. If the clicked entry is not your current target, it is first selected as target. Another click will open the flightstrip editor.


A flightstrip contains the following information in exactly that order:

Callsign Flightrules Departure Assigned heading Assigned speed Info
Aircraft Model Destination Assigned altitude Communication method Route

This is an example:


Flightstrip order

In the flightstrip list the flightstrips are ordered by the state of the flight. They are grouped under following categories:

Flightstrips ordered by range ascending.
Flightstrips ordered by range ascending.
Flightstrips ordered by callsign.
Flightstrips ordered by callsign.
Flightstrips ordered by range descending.
Flightstrips ordered by range descending.
Flightstrips ordered by callsign.
Subgroups which show exactly where a untracked pilot is and what he is doing. This should make it easier to detect inbound pilots.

Left Radar Panel

  1. Two buttons for ATIS actions. The 'ATIS' button sends a ATIS message to the multiplayer chat. 'Info' button changes the information state and sends the new ATIS message. Right of the button you can see the current information state, in this screenshot 'B'.
  2. All important weather information. Dew is Dewpoint, Vis is Visibility.
  3. Checkboxes to control the information in the radar. Data will show more information for all items in the map.
  4. Settings button will open the dialog to configure ATC-FS and the active runways. Below this button, the active runways are listed. 'To all' button will open a chat message directed to all airmen.
  5. The Tracking section shows information about the currently tracked aircraft. The 'Toggle' button will toggle visual tracking.

ATC-FS Settings

This dialog gives you the possibility to adjust font, runway and ATC settings and most important to change the active runways.

  1. Identifier for yourself. This will be appended to every chat message. It should contain your callsign. Else flightgear inserts your callsign at the beginning of each chat message.
  2. This is the normal font configuration.
  3. List of available runways.
  4. Here you can see and modify the details about a runway, after you clicked on it at the available runways. To setup the localizer offset/heading correctly, change the localizer before opening this dialog. Then click on the runway and write the localizer heading and localizer offset into the input fields above.
  5. This will save the runway settings entered on the left. If you changed an existing runway, it will replace the old data. If you entered a new runway, this runway will show up in the available runways List after saving (Runway identifier has to be different).
  6. Deletes an runway. First click on the runway in the available runways list, then delete it with this button.
  7. Activate the chosen runway.
  8. Deactivate the chosen runway.
  9. List of active runways. In the flightstrip edit dialog you can choose one of the active runways. Also those runways are included in the ATIS information.

Flightstrip Editor


In the flightstrip editor you can change all important settings for a pilot. Beside changing the information visible in the flightstrip list, you can generate chat messages or define routes for future use.

  1. Here you can change the language for the generated chat messages. The languages are customizable in the directory ‘atc-fs/messages/’. To add a new language, copy the en.lang file and translate all messages. Then add the new language to the ‘languages’ file, one language per line.
  2. To define a new heading, change this field and press enter. the dialog will compute the direction of the turn and compose a message for that.
  3. Altitude field. Similar to the heading field. Beside normal numbers in unit feet, it can handel the FL prefix and calculate the real altitude (only for calculation, FL notation will be always visible for the user).
  4. Speed field, similar to heading.
  5. Here you can choose the communication method. Default is ‘Chat’, which will cause the composed messages to be sent after clicking ‘OK/Send’. The other possibilities (FGCOM and Mumble) will not send any chat messages. But the main purpose is to remind you about the communication method on days with much traffic.
  6. The ‘Info’ field is free to use. Type whatever you want and it is always displayed in the flightstrip list.
  7. Runway field. You can choose one of the active runways for this pilot. The first time you call this dialog for a pilot, a runway is randomly set. This also sets the heading and offset of the localizer guideline. Next to the runway field the ILS of the current runway is shown.
  8. Beside the runway field you have several other route information. You can always enter them and they will show up if the pilots are in the matching category or you print them via the button. For example ‘Initial’ is meant for the initial route information after takeoff. It is visible in the flightstrip list if the pilot is in ‘Takeoff’ catefory. Clicking ‘Initial route’ generates a message for this route information.
  9. The Next ATC and Handoff button are useful for multi ATC environments. So when a pilot leaves your airspace and you want to give the next ATC some information about the pilot, you can enter the name of the next ATC and click 'Handoff'. This will immediately send a message with destination and altitude of the pilot. Also the Leave Airspace message is composed and the pilot is set to uncontrolled.
  10. The first row of this second section shows the current category of the pilot. Changing the category will move the flightstrip in the flightstrip list. By default the pilot is in the overflight category. The transition between some of the categories is automatic: Land - Taxi and Takeoff - Departure. This is decided by range and velocity of the pilot.
  11. Below the category radio buttons you can see a lot of normal buttons. All of them generate Chat messages for special events. They will use the data about the pilot given above this section. Just experiment what messages are generated. No message is sent before you click ‘Send’.
  12. This is the direct control section. It bypasses the direction calculations and directly generates the correct command. This creates the possibility to instruct left/right turns that are bigger than 180 degrees.
  13. Here you can change the chat message you generated via the buttons, or you can simply type a manual message. For fast chatting: The default button of this dialog is ‘OK/Send’, so after entering data you can directly send and exit the dialog by pressing enter two times. The other button ‘OK/Not Send’ is not default but gives you the possibility to apply changes without sending the generated chat message.

Related content

External links