TrafficTools

Version 2.0
User Manual


Contents

General Program Usage

Source Files and Formats

Conclusion


Changes For This Release (2.02)

CollectAirports utility
A new version of the CollectAirports utility has been added that works with both FS2002 and FS2004.

Command line bug fixed
A bug that caused the /tf command line switch to not work has been fixed.

Slow or hung compiling
A faster sorting routine is now being used and the program is now more memory efficient.

Changes For Previous Release (2.01)

Works with FS2004
This version will work with either FS2002 or FS2004. Files created with previous versions of TTools are compatible with this version.

Single program
The previous compiler and decompiler have been merged into a single program that can both compile and de-compile.

GUI interface
The command line (DOS) interface has been replaced with an interactive GUI interface.

Touch and Go’s
FS2004 allows AI aircraft to perform touch-and-go’s (practice circuits) at airports. This version of TTools allows AI to be programmed to perform practice circuits for any specified length of time. This will not work with FS2002.

Multiple traffic files
FS2004 now permits multiple traffic.bgl files to exist. You can use this to keep classes of flight plans separate, for example separate airlines, regions, or ‘finished’ and ‘under development’ flight plans. TTools 2 also allows multiple sets of separate source files to go along with the separate traffic files, with the source files and traffic file grouped together with a common name suffix. Note that FS2002 will not work properly with multiple traffic files.

Selectable source and traffic file folders
As with previous releases, TTools by default looks for source files in the folder it is installed in, and it looks for the traffic file in its home folder in the FS scenery. You can now change where TTools looks for source and traffic files. You could even run TTools on a computer without FS installed.

Flight plan leg limit increased to 200
Previous versions of TTools allowed a maximum of 100 legs in a single flight plan. This version allows up to 200. Keep in mind that a flight plan with more than 100 legs will cause an error if compiled with older TTools versions.

Changes to AI for FS2004

The following are just some of the improvements and fixes made by Microsoft to AI operation in FS2004. These require no special changes to TTools operation.

AI allowed at uncontrolled airports
FS2002 would only allow AI to work at airports with control towers, but FS2004 will allow AI to work at any airport with available parking.

Categorised parking
AI can be assigned to parking and gates based on aircraft type (e.g. cargo, GA, military etc.) and specific airlines can be designated to park at specific gates. Note that this has nothing to do with AI flight planning or TTools. Categorised gate assignment is done by modifying the airport parking facility data (e.g. using AFCAD 2) and parameters in the aircraft.cfg files.

Faster taxi speed
The taxi speed of AI aircraft has been moderately increased.

Less crowded departures
Previously when you entered the game, all AI at an airport that were scheduled to depart in the previous 15 minutes would all depart immediately after you entered. This would create congestion with ATC and line-ups at the runway. This departure-advance time has been reduced to 5 minutes to minimise congestion. Also, aircraft that become blocked or can’t move for some reason will disappear after 5 minutes, instead of 15 minutes to prevent permanent gridlock. Aircraft that land at an airport with no available parking will dissapear immediately after slowing down on the runway rather than block taxi exits.

Landing problems
A couple of FS bugs to do with descent planning and terrain avoidance have been fixed, thus reducing the occurrences of aircraft being unable to land at certain airports.

U Turns at ends of runways
Formerly, when an aircraft had to taxi to the end of a runway and make a U turn to take off it would not re-center on the runway centerline and would end up taking-off from the grass beside the runway. Aircraft now re-center after a U turn.

Float plane operation
Float planes should now operate properly on water-based airport (this has not been verified yet).

Cruising Speed
Bugs that caused excess cruising speeds and landing speeds of AI aircraft have been fixed.


General Program Usage


1. Installing TTools (for the first time)

Create a folder for TrafficTools anywhere you want and unzip the files to that folder. When you first start TTools it will automatically locate whichever versions of Flight Simulator you have installed (FS2002 and/or FS2004). There are checkboxes to select either FS2002 or FS2004 under the File menu. If TTools finds both versions installed then both checkboxes will be enabled, otherwise one or both will be greyed-out. If you have moved FS at some time in the past then the program may not be able to automatically locate it, in which case you can use the ‘Locate Flight Simulator’ function under the File menu to tell TTools where to find it.

2. Installing TTools (over a previous version)

You may prefer to create a new TTools folder and unzip the files to that folder. TTools in this version has a single GUI program where previous versions used a separate compiler and de-compiler. You could put the new release in the same folder, but you should delete or archive the old tools (.exe files) to minimise clutter and potential confusion.

If you already have a set of source files (Airports.txt, Aircraft.txt, flightPlans.txt) that you had customised for FS2002 then you can use the same files with FS2004.

Refer to the previous section to verify that TTools has automatically detected the version(s) of FS you have installed.

3. What is TrafficTools?

TrafficTools (TTools) allows you to program the Artificial Intelligence (AI) aircraft traffic in Microsoft Flight Simulator FS2002 or FS2004. You can make aircraft come-and-go from any airport on whatever schedules you desire.

4. Third Party AI Flight Plans

Large batches of AI flight plans have already been created by various people and are available for downloading at major flight sim sites. These flight plans are usually based on real-world airline schedules and generally ‘beef’ up AI traffic for individual airports or whole regions. You can use TrafficTools to integrate the flight plan packages into the AI traffic database using cut-and-paste methods. The creators of these add-on flight plan packages will usually provide instruction on how to do this.

There is a group named Project AI (PAI) who specialise in producing and distributing freeware AI material. This includes packages of AI flight plans and special ‘AI friendly’ aircraft. The Project AI site is highly recommended for users who want to increase the realism of AI traffic.

The Project AI site is: www.projectai.com.

Note that implementing real-world airline schedules, or any kind of large scale changes to the AI traffic in Flight Simulator will usually require adding new aircraft and airports with increased parking.

5. Creating Your Own AI Flight Plans

You can use the TrafficTools package by itself to create new flight plans but it requires editing text files containing the decoded AI traffic database. The information in these text files is in a compact form that some users find awkward to work with. If you intend to create your own flight plans, or even to examine flight plans created by others, you may prefer to use one of the more user-friendly programs that have been created to manage AI flight plans and traffic. Here are a couple of such AI traffic management programs:

AITM by Thomas Molitor. Available at www.molitor-home.de/fs/aitm/

yRoute by Simon Haynes. Available at www.spacejock.com

6. Airport Improvements

Many of the stock Flight Simulator airports cannot support AI because they do not have parking. Also, the parking provided at stock airports is usually inadequate to provide the higher levels of AI traffic that many users desire. There is a separate package called AFCAD which can add parking to any airport. AFCAD is available for download at www.Avsim.com and www.FlightSim.com. Note that earlier versions of AFCAD will not work with FS2004. An AFCAD version that will work with FS2004 (version 2) is expected to be available in October 2003.

7. The AI Traffic File

The Traffic Database file contains all the AI flight information for Flight Simulator. The stock traffic file is named "traffic.bgl" for FS2002, and "traffic030528.bgl" for FS2004 (the numbers are merely the creation date of the file). FS2002 will only work properly with one traffic file, but FS2004 will allow any number of them. A traffic file can actually have any name as long as it ends with .bgl, but for consistency TTools will always begin the traffic file name with the word "traffic". You can extend that name with any suffix you want, for example "traffic_KORD.bgl" or "trafficAALEastUS.bgl".

The Traffic Database file is binary encoded, but TrafficTools can decode that database into human readable form (de-compile), and can generate a new traffic file (compile).

8. What the Traffic File Controls

Any of these parameters can be modified on existing flight plans or set for new flight plans:

Aircraft type: You can change existing aircraft or create flight plans for new aircraft, including add-on aircraft.

Flight times: You can specify the arrival and departure schedules for AI flights.

Routes: You can specify the departure and destination airports for all AI flights.

Airports: The stock traffic file for FS2004 provides AI traffic at about 5000 airports world wide. That is essentially all of the FS airports that have parking available. Having parking is the only requirement for AI to operate at an airport in FS2004. You can use AFCAD to create parking at airports, allowing AI operation to be expanded.

Altitudes: You can control the cruising altitudes for individual AI flights.

Identification: You can change the aircraft registration (‘tail numbers’) for individual AI aircraft. For example, you can change all British-based aircraft to have British registration. You can also set the flight numbers for commercial AI flights.

Flight rules: You can specify if flights will be IFR or VFR.

Touch and Go’s: You can program AI aircraft to perform practice circuits at airports.

9. What the Traffic File Doesn’t Control

The following behaviour cannot be adjusted by modifying the Traffic Database. Some of this behaviour is hard-coded into FS itself, and some of it may be adjustable in other files.

Runways: As with real-world flight plans, the AI flight plans do not specify the takeoff or landing runways. That is a function of ATC.

Taxiing: Again, the flight plans do not specify ground taxi routes or speeds. That is also a function of the ATC software.

Gate assignment: By default FS assigns parking and gates based on the aircraft size, using a radius parameter encoded for each aircraft, and the traffic file has no control over this. Gate assignment for specific airlines and aircraft types can be done by modifying the airports themselves.

Airlines: That can be set for individual aircraft in the appropriate aircraft.cfg files. The traffic file does not affect the airline companies, but it does specify the flight numbers, for example 1202 in "Landmark 1202".

Route waypoints: FS flies all AI aircraft via direct great-circle routes (something real-world airlines would love to do). AI aircraft do not follow nav-aids, airways, SIDs, STARs, oceanic tracks or northern tracks.

AI performance: You cannot alter the cruising speeds or the climb and descent profiles of the AI aircraft. The cruising speeds are defined in the aircraft.cfg files. Manoeuvring behaviour is hard-coded in the FS software.

Meandering traffic: The AI traffic always goes from airport to airport and you cannot make traffic fly around randomly, although you can make an aircraft perform practice circuits at a single airport.

ATC: The traffic file has no effect on how ATC behaves, except for some settings that specify how ATC addresses AI aircraft.

10. Using TrafficTools in a Nutshell

TTools has two basic operations: de-compiling and compiling.

De-compiling breaks down the AI Traffic Database, referred to as the ‘traffic file’, into a set of three text files, referred to as ‘source files’. You can work on these source files with any editor, word processor, spreadsheet, or one of the AI traffic management tools mentioned earlier.

Compiling takes the three source files created by the de-compiler, or output by other AI management programs, and produces a new traffic file.

If you want to use the stock AI operation as a base to add to then you will want to de-compile the stock traffic file first. Once you have done this initial de-compiling then you will likely never have to de-compile again.

If you decide to discard the stock AI operation entirely and build up a new operation from add-on AI flight plan files or AI packages then you probably do not need to de-compile at all.

You may need to modify the source files to change the AI traffic. You can use a text editor such as Notepad or Wordpad for this. If you are adding your own flight plans, or third party flight plans, you can enter or paste them into the FlightPlans.txt file.

If new flight plans require add-on aircraft, you will have to insert entries for those aircraft in the Aircraft.txt file.

If those flight plans go to airports that don’t already have AI then you will need entries for those airports in the Airports.txt file. You could manually insert those airport entries but is much easier to run the CollectAirports utility to ensure your Airports file has a complete and up-to-date list of all FS airports.

When you have finished with the source files you must then run the compile them to create a new traffic file. You can make changes to the source files and compile them as many times as you want.

With the new capability in FS2004 to use multiple traffic files, add-on flight plans no longer have to be merged into a single flight plan file. Add-on flight plans will usually come as a set of source files which can be compiled directly into a new traffic file, or the flight plans may come as an already-compiled traffic file that you just copy to the appropriate FS folder.

If you use a third-party AI traffic management tool then that tool may perform some of the TTools steps for you automatically, such as de-compiling and compiling, and possibly scanning your FS folder for add-on aircraft and airports and inserting them in the Aircraft and Airports files.

11. File Folders

TTools keeps the location of two folders: the Source Files folder where it keeps the source files and the Traffic Files folder, where it keeps the traffic files. The paths for these folders are displayed on the TTools window.

By default, TTools sets the Source Files folder to the folder where the program itself is located. TTools will display all the relevant files from it (all txt files beginning with "Airports", "Aircraft", and "FlightPlans") in the list on the left side of the window. The same Source Files folder is used for both FS2002 and FS2004. There is an item under the File menu to select a different location for the Source folder, and there is an item to reset it back to the default location.

By default, TTools sets the Traffic Files folder to the Flight Simulator folder where the stock traffic file is located. TTools will automatically locate this folder and will display all the relevant files from it (all bgl files beginning with "traffic") in the list on the right side of the window. If you have both FS2002 and FS2004 installed then you should first select the version you want to work with using the FS2002 / FS2004 checkboxes under the File menu. This will set the Traffic Files folder appropriate for the selected FS version.

As with the Source Files folder, you can set the Traffic Files folder to a different location using an item under the File menu. This could be used for ‘off line’ compiling on a computer where FS is not installed, or where you don’t want your file building operations to immediately effect the AI in the game.

12. File Names and Grouping

For every traffic file there will normally be a set of three source files. FS2004 will allow any number of traffic files, so a naming convention has been established to keep the traffic files grouped with their associated source files. The traffic file will always begin with the root name "traffic", but that can be followed by any descriptive name, referred to as a ‘suffix’, The source files for that traffic file will always begin with "Airports", "Aircraft" and "FlightPlans", and they will all have the same suffix, for example:

traffic_USAir.bgl
Airports_USAir.txt
Aircraft_USAir.txt
FlightPlans_USAir.txt

Note that the separating underscore is optional.

FS2002 will only work with one traffic file so keeping the files grouped by name is less important. You could use just the root file names (traffic.bgl, Airports.txt, etc.) although if you have FS2004 and FS2002 installed on the same computer you may want to use the suffix "FS2002", for example:

traffic_FS2002.bgl
Airports_FS2002.txt
Aircraft_FS2002.txt
FlightPlans_FS2002.txt

You can use multiple traffic files in FS2004 to group flight plans, such as for specific airlines, or regions, or airports. The Airports...txt file for a group would normally have just the airports referred to by the flight plans in that group, although it could contain more, and the airports can be duplicated in other groups. Similarly, the Aircraft...txt file would normally have just the aircraft referred to by the flight plans in that group, although it could have more.

13. De-Compiling

De-compiling will not alter any of your Flight Simulator files or settings.

Use the following steps to de-compile:

  1. If you have both FS2002 and FS2004 installed then you should first select the version you want to work with using the FS2002 / FS2004 checkboxes under the File menu. This will set the appropriate Traffic Files folder.
  2. Select the desired traffic file from the list on the right side of the window, there should only be one file in the list for a stock installation of Flight Simulator.
  3. Click ‘Decompile’.

After the traffic file is de-compiled a set of three source files should appear in the Source Files list. The source files will have the same suffix as the traffic file (030528 for the files shown in the picture below).

You can now open the source files using a editor or other tools for AI flight planning. The source files contain fields separated by commas.

14. Compiling

Before TTools compiles any files for the first time it will automatically make a backup of the original (stock) traffic file. This will preserve the original file in case you want to abandon any changes and restore the stock AI operation. See Restoring the Original Traffic File if you need more information.

Use the following steps to compile:

  1. If you have both FS2002 and FS2004 installed then you should first select the version you want to work with using the FS2002 / FS2004 checkboxes under the File menu. This will set the appropriate Traffic Files folder. Note that the format of traffic files in FS2002 and FS2004 is essentially the same, so this really has no effect on how compiling occurs, only where the resulting file goes.
  2. Select the set of source files you want to compile from the list on the left side of the window. For convenience, when you click on any one of the files in a set then all the files in the set (all files with the same suffix) will be selected. If you need to select files individually you can use the Shift or Ctrl keys to prevent this grouping action from happening.
  3. Click ‘Compile’.

The source files will be compiled into a single traffic file with the same suffix as the FlightPlans file (030528 for the file shown in the picture below). If a traffic file with that name already exists then it will be overwritten, otherwise the new traffic file will appear in the Traffic Files list.

You can now start Flight Simulator and see the result of any AI flight plan changes you have made.

The three source files are all the compiler needs to produce a traffic file from scratch. You can de-compile a traffic file then re-compile it from the source files and reproduce the same traffic file. The original and reproduced traffic files will be virtually the same, but there are some slight rounding-off effects and other trivial differences that are introduced when a file is recompiled. These differences do not result in any perceptible change in the AI traffic activity, but the size of the new traffic.bgl file may not be exactly the same.

You can even make changes and compile the traffic file while FS is running. You should restart your flight in order to get FS to accept those changes.

15. Collecting Airports

CollectAirports is a separate program from TTools and is included in the same package. It will collect data for all of the airports in FS2004 or FS002, including add-ons, and will create a new Airports file listing those airports.

The Airports file contains the identification and location of all the airports that are served by AI flight plans. For the stock AI that is only a fraction of the available airports. By inserting all available airports into that file, the airport collector saves you from having to make piecemeal changes to the Airports file when you add new flight plans that serve new airports.

Of course you will probably never have flight plans that serve all FS airports, but having the complete list of airports compiled into the traffic file won't cause any problems.

After you run CollectAirports you shouldn't have to worry about whether the Airports file contains the appropriate airport data for any new flight plans you add. You would normally only need to run it again if you add a new add-on airport to FS.

If you have several traffic files you can compile the same 'all inclusive' Airports file into each one; however, this means every traffic file will have an identical airport database and they will all be loaded into memory when you run FS. This won't be an issue with just a few traffic files, but it is unknown how system performance will be affected if you have dozens or hundreds of traffic files with such large airport databases.

Things to keep in mind:

Just because an airport is listed in the Airports file doesn't mean that it will be automatically served by AI, you still need to have flight plans that use that airport.

Both the airport collector and the de-compiler create the Airports file, so after you run the airport collector you should not run the de-compiler until after you have done at least one compile so as not to wipe out the newly collected airport data.

If, after running the airport collector, the compiler reports that a flight plan specifies an airport that is not in the Airports file, it means that you have one or more flight plans that serve an airport that you don't actually have.

If you have customised the Airports file with comments, or if you have 'adjusted' any airport locations in that file for some reason, the airport collector will wipe out those changes and will replace the airport locations with the exact latitudes and longitudes found in the airport facility files.

16. Restoring the Original Traffic File

As mentioned earlier, the compiler automatically preserves the original traffic file in case you want to abandon any changes and restore the original file. That preserved file is named traffic_ORIGINAL.bbb for FS2002 and traffic030528.ORIGINAL for FS2004 . If you are unsatisfied with your AI changes, or some problem occurs, you can simply delete the modified traffic file and rename the original file to traffic.bgl. The backup files are located at the following path off of the main FS folder:

For FS2002:

...\FS2002\SCENEDB\ATC\Scenery

For FS2004:

...\Flight Simulator 9\Scenery\World\Scenery

Note: if you want to make your own copy of the traffic file before using TTools then make sure the copy file doesn’t end with ".bgl". Even with a different name, such as "Copy of traffic.bgl", FS will read this file in addition to the original and may use the copy file instead of your modified traffic file. This is not a problem if you give the file a different extension such as ".bbb" .

17. Basic AI Traffic Operation

AI traffic is not automatically generated; every AI flight is controlled by a flight plan stored in the traffic file. There are nearly 30,000 flight plans in the stock traffic file. Most flight plans in the stock file specify two legs, an outbound and a return leg. Also, each flight plan can specify the flight is to be repeated several times a day (as often as every hour). So one flight plan could initiate several dozen flights a day. In actuality the stock flight plans initiate well over 100,000 flights a day.

You may wonder how your computer could cope with managing several thousand flights in operation around the world at one time. Your computer is only actually ‘flying’ the AI aircraft that are in an ‘AI active zone’ around your current location, so it may only have to deal with a few dozen aircraft that are in that zone at any given time, although this can exceed 100 in dense traffic areas. The rest of the AI flights are not activated unless their flight paths cross into this zone, or you move and push the zone over their projected flight paths. When an AI aircraft leaves this zone it is essentially ‘extinguished’.

FS divides the world into a grid of sectors, approximately 40 mile rectangles. The traffic file contains a massive matrix that specifies exactly which flights are supposed to be in each sector at any given time. The AI active zone consists of the sector you are currently in and the sectors on all adjacent sides, for a block of nine sectors. The program only flies the AI traffic in those nine sectors (an approximately 120 mile rectangle).

You do not have to worry about mapping flight plan routes and schedules into this sector matrix, the compiler does that for you and you will not see any sector information in the source files.

Most flight plans in the stock traffic file repeat every 24 hours, so if you start a flight at the same time and location on different days you should see the same AI movements (departures, arrivals, overflights, etc.). Flight plans can also be programmed to occur on specific days. These will repeat every week.

Although the traffic file specifies the basic ‘when’, ‘where’, and ‘who’ of traffic movements, it does not control every detail of AI flight. The AI aircraft are still under the control of the AI piloting software and ATC software.

The AI software can make AI planes disappear while you are watching under some conditions. For example if an AI plane lands at an airport where all the available parking spaces and gates are filled, or if there are no parking spaces of the appropriate size, the plane will just disappear after it lands. This may also occur if an AI plane makes too many ‘go-arounds’ or if has been blocked from taxiing for more than five minutes.

When you enter FS at an airport, the AI aircraft that were scheduled to depart in the last few minutes (5 minutes for FS2004, 15 for FS2002) before you entered will all depart their parking spaces or gates at that same time, as if the airport had been temporarily closed for departures for a while and was re-opened when you entered. This can produce line-ups for take off, but once this initial burst of AI traffic departs then the normal schedules of departures and arrivals will settle in.


Source Files and Formats


18. Working with Source Files

The source files can be created or modified with an editor, spreadsheet, or another AI traffic management tool.

The data fields in each of the files must be separated by commas. If you are editing the files yourself you can put in tabs or extra spaces between fields to make them appear less ‘crammed’ and the compiler won’t mind, but if you are using a spreadsheet then these spaces may end up being included in the spreadsheet cells.

You can insert new entries anywhere in the source files, the compiler will take care of any sorting that is required.

To create a new entry, it is often easiest to cut-and-paste an existing entry, then modify it to your needs.

A FlightPlans...txt file can be very large, making it a little unwieldy in an editor and it takes a noticeable amount of time to compile. If you are experimenting with a single flight plan, or just a few plans, it may be easier to create a separate flight plan file containing only the flight plan or plans that you are experimenting with. The compiling process will be quicker, and if you temporarily remove the main traffic file(s) you won’t have to worry about picking out your AI flights from all the rest of the AI traffic.

It is not necessary to modify the Airports file with an editor if instead you run the airport collector to ensure that file contains a complete list of FS airports.

Comment lines

You can insert comments in any of the three source files. Comments can begin with either a semicolon ( ; ) or a double slash ( // ). Comment lines can be inserted between data lines or can be placed at the end of data lines. Blank lines can also be inserted as separators. Note that if you de-compile the traffic file it will overwrite the source files and will wipe out any comments you have inserted, but de-compiling shouldn’t be necessary after the initial creation of the source files.

Here are some example comments:

   ;  This is a comment
   //  another comment
   AC#3,430,"Boeing 737-400"           ; an end of line comment
   AC#4,430,"Boeing 737-400 Paint1"    // another end of line comment

The following sections describe the three source files.

19. Airports...txt File

This is one of the three source files that the compiler needs to create a traffic file. It is a list of all the airports that are referenced by AI flight plans (see the FlightPlans...txt file).

Although the FS world has about 23,000 airfields, only a few thousand stock airports have any AI traffic. The criteria for allowing AI traffic to arrive and depart are that an airport must have some parking spaces or gates for aircraft.

AI aircraft will not fly out of an airport if it doesn’t have a parking space or gate appropriate for the size of aircraft. For example, if an airport only has "GA small" parking then a 737 will not work at that airport.

If your airport does not have any parking, or if it has insufficient parking, then you can add parking using AFCAD, or you can download AFCAD airport files made by others.

For FS2002, a second requirement for AI is ATC. You can create flight plans that fly into uncontrolled airports, but the AI planes just stop on the runway and won’t leave. AI can operate at uncontrolled airports in FS2004.

If your FS2002 airport does not have a control tower then you can add one with AFCAD. AFCAD won’t create a visible control tower, but it will provide the Ground and Tower radio frequencies which are all the AI really need to operate.

You do not have to modify the Airports file yourself, running the airport collector will ensure the file contains a complete list of FS airports; however, if you do need to modify that file for some reason then here is the file format:

Here are a few typical lines from the Airports...txt file. Each line specifies a different airport:

   KLAS,N36* 5.02',W115* 9.13',2178
   KLAW,N34* 34.25',W98* 24.99',1109
   KLAX,N33* 56.74',W118* 24.48',125
   KLBB,N33* 40.00',W101* 49.36',3281

Here is a line spread out, with a description of each field:

   KLAX  ,    N33* 56.74'  ,    W118* 24.48'  ,    125
     |              |                  |            |
  Airport     Fix latitude      Fix longitude    Airport
   ICAO                                         elevation
   Code                                           (feet)

Airport ICAO code:
This must specify an actual Flight Simulator airport. If you enter a code for an airport that FS doesn’t recognise, the AI aircraft will actually fly to the lat/long given, but they won’t know where to land and will just fly past and out of sight.

Fix lat/long:
This essentially specifies the airport location, but it is also the navigation fix for AI aircraft arriving at and departing from the airport and works like a VOR. Departing aircraft will vector to intercept an outbound radial from this fix and will fly the radial to the destination. Similarly, arriving aircraft will fly an inbound radial to this fix. They depart from the radial during their descent when they vector to line up for the approach, this may be 50 or 60 miles out for jets. You can move this fix so that the aircraft no longer fly directly to and from the airport, and you can in fact locate the fix where a real VOR is. Arriving aircraft will break away from the inbound radial to line up for an approach when they need to. You should be careful not to move this point so far away that it is no longer in the same traffic sector as the airport. You can tell that is the case if AI aircraft no longer appear at the airport.

Airport elevation:
This is used by the AI for descent planning. The elevation can be significantly out and they will still usually land OK. Setting this higher tends to make a steeper approach, but if you change it make sure both jets and light aircraft can land without having to do a go-around.

20. Aircraft...txt File

This is one of the three source files that the compiler needs to create a traffic file. It is a list of all the aircraft that are referenced by AI flight plans (see the FlightPlans...txt file).

Just adding a new aircraft to this list won’t automatically make it appear as an AI aircraft, there have to be flight plans that use that aircraft.

Not all add-on aircraft work well as AI aircraft. Before adding new aircraft it is strongly recommended that you read the section Guidelines for Adding Aircraft.

You can substitute a new aircraft for one of the existing ones and it will automatically appear as AI traffic because there are already flight plans for that aircraft. If you do this ensure that you substitute aircraft of roughly the same class. Flight plans specify the cruising altitude and trip time, so if you substitute a Cessna 182 for a Boeing 777, the Cessna will struggle to try to reach an impossible altitude, and won’t be able to complete the route in the allotted time so it may just disappear at one point or another. Similarly replacing a C182 with a 777 will result in the 777 flying unrealistically low, and it won’t have a ‘heavy’ gate at smaller airports so it may not even appear, or it may just disappear on landing.

Aircraft are referenced by flight plans using a tag that begins with "AC#", such as AC#32 for a DeHavilland Dash-8. If you substitute an aircraft, keep the same tag so the flight plans will point to the new aircraft.

If you want to increase the number of aircraft models beyond the existing thirty or forty, you will have to either create new flight plans for those aircraft, or go through the flight plan file and substitute those aircraft into some existing flight plans.

There is no obvious limit to the number of aircraft that can be added, other than the limit of 65535 tag numbers. FS may have some internal limit but it is more likely limited only by memory and system performance considerations.

Here are a few typical lines from the Aircraft.txt file. Each line specifies a different aircraft or a different paint scheme of the same aircraft:

   AC#1,200,"Beech Baron 58"
   AC#2,315,"Beech King Air 350"
   AC#3,477,"Boeing 737-400"
   AC#4,477,"Boeing 737-400 Paint1"
   AC#5,477,"Boeing 737-400 Paint2"
   AC#6,477,"Boeing 737-400 Paint3"
   AC#7,477,"Boeing 737-400 Paint4"

Here is a line spread out, with a description of each field:

   AC#4  ,     477  ,     "Boeing 737-400 Paint1"
     |          |               |
   Aircraft   Cruise      Aircraft title
    tag       speed

Aircraft tag:
This is used strictly by the compiler. Aircraft are referenced by this tag in the flight plan file, so for example if tag AC#4 is specified in a flight plan there must be a corresponding aircraft tagged AC#4 in this list. You can add any tag numbers you want, as long they are prefixed by "AC#" and are not already used. The number must be less than 65536. The same aircraft can be referenced in different sets of source files and they do not have to use the same number.

Cruise speed:
This is the cruise speed (TAS) given in the aircraft specifications. It can be found in aircraft manuals or other reference material. Note that this number does not determine the actual cruise speed of AI aircraft, that is based on a cruise speed parameter included in the aircraft model’s aircraft.cfg file. This number is used only by the compiler to compute the trip time for the flight so it can come up with arrival times and sector mapping for flight plans that don’t use fixed arrival times.

Aircraft title:
This is how FS2002 finds an aircraft model when it wants to make it appear as AI. This title must exactly match a title in the aircraft.cfg file for one of the installed aircraft. It will appear in a line such as title = Boeing 737-400 Paint1. Note that each aircraft can have several different ‘skins’, hence the Paint1, Paint2, etc. suffixes. Each of these will have separate title lines in the same aircraft.cfg file. These different paint schemes often represent different airlines.

21. FlightPlans...txt File

This is the main file of the three source files that the compiler needs to create a traffic file. It is a list of all the AI traffic flight plans, or at least the plans that will be grouped in the compiled traffic file.

Each flight plan specifies a complete circuit. A circuit consists of at least two legs, an outbound and a return leg. Most stock flight plans have two legs but a circuit can have multiple legs so you can lay out a multi-hop ‘milk run’ with a single flight plan if you want. TTools allows up to 200 legs in a single flight plan. The circuit must terminate back at the start point.

Note that each leg must actually end at an airport in order to work properly.

Although most flight plans go between two or more different airports, you can create flight plans that generate practice circuits at a single airport. See Touch and Go's.

IMPORTANT NOTE: Each flight plan creates one ‘virtual’ aircraft in the FS2002 world and programmes its operation in perpetuity. Unlike in real-world aviation where a single aircraft could have several flight plans for a day’s or a week’s operation, an AI aircraft must have only one flight plan. If you convert airline timetables into flight plans by creating a flight plan for each entry in the schedule you could end up with too many aircraft, which will sit around most of the time taking up parking space. If an aircraft shuttles back and forth between two airports several times a day then you must create a single flight plan with a leg for each trip to each airport, or specify a repeat period if the aircraft flies at regular intervals all day and night.

Each flight plan specifies a repeat period. The repeat period can cause the complete flight plan circuit to be repeated several times a day or once a week. The repeat period is one of : 1, 2, 4, 6, 8, 12 or 24 hour intervals, or WEEK to repeat every seven days. Most of the stock flight plans repeat several times a day unless the circuit is so long it can only be done once a day. Unless a flight plan specifies a WEEK repeat period, it will re-occur at the same time every day of the week.

All AI flights fly direct point-to-point great circle routes from the departure airport fix to the destination airport fix. There is no provision in FS flight plans to designate segmented routes using nav-aids, airways, or other en-route fixes. You cannot use flight plan legs to simulate flight waypoints.

All flight plans have a base component and a component for each leg. The base component has parameters that apply to the whole flight plan such as the aircraft type and registration. The leg component specifies parameters that vary from leg to leg, such as the departure time, cruising altitude, and destination.

Here are a few typical lines from a FlightPlans...txt file. Each line is a complete flight plan:

   AC#4,N29696,56%,12Hr,IFR,01:46:21,06:29:27,320,F,2953,KLAX,07:46:16,12:29:22,310,F,2954,KMCO
   AC#27,N68008,95%,8Hr,IFR,00:11:37,03:15:36,190,F,4365,KGEU,04:11:33,07:15:32,180,F,4366,KSFO
   AC#1,N60168,51%,24Hr,IFR,03:45:43,09:28:50,050,F,1782,CYYZ,15:45:32,21:28:40,060,F,1783,CYQR

Here is the first flight plan line above broken into the base and leg components:

   Base:  AC#4,N29696,56%,12Hr,IFR,
   Leg1:     01:46:21,06:29:27,320,F,2953,KLAX,
   Leg2:     07:46:16,12:29:22,310,F,2954,KMCO

Each leg ends with the destination airport for that leg. The last leg always connects back up to the first leg. An unfortunate quirk of this flight plan layout is that the initial airport, the departure point for the first leg, is always found at the end of the flight plan. So the above flight plan begins in KMCO, the first leg is a trip to KLAX departing at 01:46:21, and the last leg is a return to KMCO departing at 07:46:16 .

 

BASE COMPONENT:

Here is a flight plan base component spread out, with a description of each field. These parameters will remain constant for all legs of the flight plan:

   AC#4  ,    N29696  ,    56%  ,     12Hr  ,      IFR
    |           |          |           |            |
  Aircraft   Aircraft    Traffic     Repeat        IFR
    tag    registration  percent     period        VFR

Aircraft tag:
This is used strictly by the compiler. It specifies which aircraft in the Aircraft...txt source file to use with this flight plan. You can use any aircraft from the associated Aircraft...txt file, but the flight plan parameters, especially the altitude, trip distance, and flying time should be realistic for the type of aircraft used.

Aircraft registration:
This is the so-called ‘Tail number’ for the aircraft. This will be used as the ATC call sign for the aircraft if the aircraft model is not associated with an airline. The registration can be changed to any text sequence up to seven characters, so you could replace it with country-specific aircraft registrations. Microsoft randomly assigned ‘N’ numbers for this field.

Traffic Percent:
This specifies at what level of the FS ‘Traffic Percent’ setting (on the ATC/Traffic settings window) this flight will appear. If this is 56% then this AI flight will only appear if the traffic percent control is 56% or greater. This must be between 1 and 100%. If you run with 100% traffic all the time then this value is not important.

Repeat period:
This specifies how often the flight plan is to repeat in a day. It is normally a period of hours, in which case it must be one of 1, 2, 4, 6, 8, 12 or 24 hours, or it can be the word WEEK. For example, if a flight from KORD to CYYZ and return departs KORD at 00:21 GMT (UTC), and the flight plan has a 6 hour repeat period, then the same flight will also depart KORD at 06:21, 12:21 and 18:21. If you specify a 6 hour repeat period then the aircraft must be able to do a complete circuit in under 6 hours in order to be ready for the next circuit. This includes taxiing time and some stop over time at the destination. Unlike in real life, the AI software will not allow flights to get backed up too long. If an aircraft is not where its flight plan says it is supposed to be then it may simply disappear.

IFR/VFR
This specifies how ATC deals with AI aircraft.

 

LEG COMPONENT:

Here is a flight plan leg spread out. These parameters apply to the specific leg. There must be two legs at a minimum; any additional legs can be simply added to the flight plan line, keeping the return leg back to the origin airport at the end of the line.

   01:46:21  ,   06:29:27  ,   320  ,  F  ,  2953  ,  KLAX
      |             |           |      |      |        |
   Departure     Arrival     Cruise    F    Flight  Destination
     time         time      altitude   or   number    airport
                                       R

Departure time:
This is the time the aircraft will leave the terminal gate or parking space to fly this leg of the flight plan (give or take a few seconds for power up and ATC clearance). All flight plans use UTC (GMT) time. The time is in hh:mm:ss format, but you can also omit the seconds and use hh:mm.

If you have specified a WEEK repeat period then you can specify a day of the week for the departure time. This is a number from 0 to 6 (0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday). It appears in front of the time in the form d/hh:mm:ss, for example 3/23:00:00 for a departure at 11 PM (GMT) on a Wednesday. If you have not specified a WEEK period but you include a day value then it will be ignored.

Arrival time:
This is the estimated time of arrival at the destination airport. This can be used in two ways: compiler calculated arrival times or user defined fixed arrival times.

By default, this field will be calculated by the compiler and you do not have to fill it in. In fact, the compiler will ignore anything you put in this field so you can just leave it blank (e.g. ,00:00:00, or just , , ). When the compiler calculates this value it is actually the arrival time in the airport’s airspace. The arrival time at the gate or parking space will be about 15 minutes later, after landing and taxiing. When you compile TTools will automatically insert the calculated arrival time in this field, and you can re-open the FlightPlans file to see the arrival times. The compiler calculates the flight time using the distance between the two airports at the specified cruise speed for the aircraft.

Alternatively, you can specify a fixed arrival time by preceding it with a ‘@’ symbol (e.g. @11:26:00 or @6/22:13:00). In that case the compiler will calculate the cruise speed required to make the aircraft arrive at the specified time for that leg of the flight plan, regardless of the cruise speed given for the aircraft, or the cruise speeds used for other legs of the flight plan. When you use a fixed arrival time then it will actually specify the arrival time at the gate, give of take a few minutes, and not the arrival time in the airspace as with a compiler calculated arrival time.

Another prefix you can use with the arrival time is ‘TNG’ (Touch and Go, e.g. TNG15:00:00 ). This specifies that the aircraft will, upon arrival at the airport, perform practice circuits until the specified time (15:00:00 in the example).

Cruise altitude:
This is the cruising altitude (or flight level) for this leg of the flight plan, in hundreds of feet. Note that to maintain realism, flight plans should follow the rules of even/odd altitude separation depending on direction, so the outbound and return legs will have different altitudes. The altitude cannot be changed partway along the leg.

F or R
‘F’ in this field specifies that if the aircraft is associated with an airline then the airline name and flight number are to be used for an ATC call sign (e.g. "Landmark 1213"). ‘R’ forces the aircraft registration (tail number) to be used as a call sign even for airlines. All stock flight plans use the ‘F’ setting to allow airline flight number call signs.

Flight number:
This will apply only if the aircraft is associated with an airline and the ‘F or R’ flag is set to ‘F’ to allow airline flight number call signs. This is the airline flight number for this leg of the flight plan. ATC will use this number in the aircraft call sign, along with the airline name. Note that the airline name is not specified in the traffic file, it is set in the FS aircraft.cfg file for the aircraft model in use. For example, if you have specified a Boeing 737 paint 1, which is "Landmark Airlines" in the stock aircraft, and you specify a flight number of 2953 for this leg in the flight plan, then the aircraft will be called "Landmark 2953" in ATC communications. Note that as in real life, the flight numbers for the outbound and return leg are different, usually an even/odd scheme. You cannot use letters in this field.

Destination airport:
This specifies the destination for this leg of the flight plan. This airport must be in the Airports...txt source file and it must have parking spaces if you want the aircraft to actually land there and park.

Leg Sequencing:

Here is an example of a four-hop flight plan, KLAX > KLAS > KDEN > KSFO and back to KLAX. Note that this is spread over several lines for clarity but must be all on the same line in the actual source file.

   Base:  AC#6,N14023,1%,12Hr,IFR,
   Leg1:      01:02:00,01:42:00,250,F,7770,KLAS,
   Leg2:      02:45:00,04:06:32,250,F,7771,KDEN,
   Leg3:      05:05:00,07:02:19,260,F,7772,KSFO,
   Leg4:      07:50:00,08:40:46,025,F,7773,KLAX

The rules for leg sequencing are as follows:

  1. The initial airport, KLAX in this case, always appears at the end of the flight plan. The first leg actually departs from that airport (KLAX to KLAS).
  2. The trip must loop back to the initial airport, so the last leg must return from wherever it is to the initial airport (KSFO to KLAX).
  3. The legs must be in time-sequential order from the earliest departure of the day to the latest departure (01:02, 02:45, 05:05, 07:50).
  4. There should be a reasonable stop over time from arrival to departure at each airport, although it is possible to have an overlapping arrival and departure, in which case the plane will immediately turn around and depart as soon as it reaches its parking spot or gate.
  5. The circuit must be completed within the repeat period, 12 hours in the above example. If it can’t be done within the repeat period then choose a longer period.
  6. With a 24 hour repeat period, the last flight leg can cross over 00:00:00 to the next day. For example a departure at 23:00:00 arriving at 01:00:00. If the aircraft subsequently departs for the next leg at 02:00:00 then that must be the first leg of the flight plan, as it is the first departure after 00:00:00. It doesn’t matter that the aircraft landed after 00:00:00.
  7. A single flight plan can have up to 200 legs.

Note that AI aircraft have no designated ‘home’ airport. The ‘initial’ airport is simply the first airport the aircraft departs from after 00:00:00. Since the AI aircraft essentially loop forever, the concept of a home airport is somewhat vague. In the above example, KDEN could easily be the home airport.

Weekly flight plans:

Here is an example of a flight plan using a WEEK repeat period, L.A. to Sydney Australia. The first leg departs on Tuesday (2/) at 12:00:00 and arrives on Wednesday (3/) at 01:43:33. The return leg departs on Wednesday at 05:00:00.

   Base:  AC#11,N10322,10%,WEEK,IFR,
   Leg1:      2/12:00:00,3/01:43:33,360,F,7366,YSSY,
   Leg2:      3/05:00:00,3/18:43:36,350,F,7363,KLAX

Here are some points about weekly flight plans:

  1. If you specify WEEK for a repeat period then departure times must include the day of the week (0/ to 6/ for Sunday to Saturday).
  2. Weekly flight plans can also have multiple legs (up to 200), for example to recreate a Monday to Friday daily schedule.
  3. The legs must be in time-sequential order from the earliest departure of the week to the latest departure.
  4. The arrival time for any leg can cross over to another day.
  5. The last leg can cross over from the last day of the week (6/ -- Saturday) over to the first day of the next week (0/ -- Sunday).
  6. As with daily flight plans, the trip must loop back to the initial airport.
  7. Note that weekly flight plans are a little less exact about departing on time, they may leave the gate a minute or two earlier than the given departure time.
  8. On the FS window where you set the date and time before you start a flight, you can set the time in either local time or GMT but the date (and day of the week) only applies to local time. The departure and arrival day and time on AI flight plans are both in GMT. If you want to observe your AI flights departing on a specific day, make sure you take into account the fact that the local time and GMT time will be on different days if they are on the opposite sides of midnight, so you may have to adjust the day you start your flight up or down one.

If these rules aren’t followed it won’t result in disaster, it will just mean the aircraft may not appear when and where you expect it, or it may not appear at all.

Touch and Go’s :

For FS2004, Microsoft added the capability to program aircraft to perform practice circuits. This is done by prefixing the arrival time field with the code ‘TNG’, for example:

   AC#26,N14023,1%,24Hr,VFR,
       20:00:00,TNG21:30:00,050,R,0000,CZBB,
       23:00:00,23:35:00,050,R,0000,CYXX,

Any leg of a flight plan can be programmed for Touch and Go’s. The AI will fly that leg at his normal cruise speed and upon arrival he will fly circuits until the specified arrival time (21:30:00 in the example above). If the departure time of the next leg is within 10 minutes of the arrival time of the current leg then he will not land but instead will fly on to the next destination. If the next leg departure time is more than 10 minutes ahead then he will do a normal landing and park until scheduled to depart on the next leg. You must leave at least a minute or so between the arrival and next departure times. If you use the same time for arrival and next departure then problems will occur.

You can also make an aircraft perform practice circuits at the same airport without going to another. This still requires two legs, but both legs can be designated for the same airport. It is theoretically possible to have a Touch and Go flight plan with a single leg, but this doesn’t seem to work properly. Here is an example flight plan for a single airport practice session:

   AC#26,N1234,1%,24Hr,VFR,
       17:00:00,TNG18:00:00,010,R,0000,CYOW,
       20:00:00,TNG21:00:00,010,R,0000,CYOW,

In this example the aircraft will take off at 17:00 and immediately begin performing circuits. He will continue that until 18:00 when he will land and park. He will take off again at 20:00 and perform another hour of circuits then land again.

The circuits are performed at the pattern altitude and direction for the runway used, as specified in the airport facility data.

FS2002 will ignore the TNG flag if it is encountered, and when arriving at the destination airport the AI will land immediately instead of performing circuits until the designated arrival time.


Conclusion


22. Flight Plan Parameters that Override Aircraft.cfg

Every FS aircraft comes with a file named aircraft.cfg that specifies numerous parameters for the aircraft and its various sub-models (paint schemes). Three parameters in that file can be overridden by AI flight plans:

atc_id=N700MS
This will be ignored for an AI aircraft. AI will always use the registration number supplied in the flight plan.

atc_flight_number=1123
This will also be ignored for an AI aircraft. AI will always use the flight numbers supplied in the flight plan.

atc_airline=Orbit
If this is specified in the aircraft.cfg file then the AI aircraft will normally use the airline name as part of its call sign along with the flight number specified in the flight plan, for example "Orbit 3401". AI flight plans cannot change the airline, but if the "F or R" flag is set to ‘R’ in a flight plan then the airline will use the registration for its call sign, for example "N29696", and the airline name and flight numbers will be ignored. If the aircraft model does not specify an ‘atc_airline’ then the AI aircraft will use the registration call sign regardless of the ‘F or R’ setting.

23. Guidelines for adding aircraft

A large number of add-on aircraft have problems when used as AI aircraft. The main problems are: missing landing gear, crash landings, and bad frame rates. All of these problems can be avoided by using add-on aircraft that are specifically designed for AI use. The Project AI group (PAI) have a very large array of aircraft, all designed to be used as AI problem-free. I highly recommend that you use this source of freeware add-ons whenever possible.

If you decide to use add-on aircraft that were not designed specifically for AI use, then you better read the remainder of this section, and be prepared for some trail-and-error.

You should try just one or two new aircraft to start with and see how that works out before you start adding dozens. You will probably want to watch your add-on aircraft take off and land to make sure they have no problems.

These are the most common problems with AI aircraft:

Missing landing gear or non-moving parts:

This applies to aircraft made for FS98 or FS2000, and some for FS2002. Most aircraft made with older aircraft building programs don't have any moving parts when used as AI, so landing gear isn't shown and flaps and propellers don't move. The aircraft may otherwise work properly, but they will appear to float above the ground when taxiing.

This is a problem with the aircraft themselves, they are unable to respond to the AI control software for moving parts. There is no fix for this.

Aircraft made with the recommended GMAX builder program don't have this problem. To avoid this problem you should only use aircraft made with GMAX, except possibly for fixed gear aircraft.

Crash landing or erratic flight:

A second problem with add-on aircraft used for AI is that they are sometimes unstable and may not be able to fly properly or they can’t land without crashing. This seems to be a problem with the FS AI software being too sensitive about flight models. This can usually be fixed by substituting the ".air" file with one from a stable aircraft of a similar type, especially one of the stock aircraft.

For example, you can replace the .air file of an add-on A320 jet with the .air file from the stock 737. The .air files are located in the folders for the individual aircraft and will have the name of the aircraft, for example "Boeing737-400.air". When you substitute a .air file, make sure you give it the same name as the file it is replacing.

This will have one side effect though, if you want to actually fly the add-on aircraft as well as us it for AI traffic, then it will behave like the aircraft that you copied the .air file from. In the A320 example above, if you fly the aircraft yourself it will look like an A320 but will fly like a 737. If you want to avoid this you can make a copy of the aircraft and have one copy just for AI, and keep the other for flying. To do this you just need to make a duplicate copy of the aircraft folder and all its contents. The name of the duplicate folder is not important. You would keep the .air file that came with the AI aircraft in the folder for the flyable version, and use the substitute .air file in the folder for the AI version. You must change the name of one of the versions, usually the AI version. This will require you to change the name in both the aircraft.cfg file for the aircraft model itself, and in the Aircraft.txt file that TrafficTools uses to list all AI aircraft. The aircraft name is set in the aircraft.cfg file with an instruction line such as "title=Boeing 737-400 Paint1". Note that there may be more than one of these name parameters in the file if the aircraft has several paint models.

As if it wasn’t already confusing enough, when you make a copy of an aircraft in this way, both copies will show up in your aircraft list in FS2002. If you do not want to see the AI version of an aircraft in your list of ‘flyable’ aircraft, then you can remove it by changing a parameter in the .air file. To do this you must use a utility called ‘AirEd’ that is available on most major flight sim web sites. Open the .air file with this utility and change the parameter "AircraftType" from 0 to 2. This will change the aircraft to AI only so it won’t appear in your list of flyable aircraft.

Note that repaints of stock aircraft, aircraft with alternate paint schemes or different airlines for aircraft that came with FS, usually don't have any of these problems and can be used as-is.

Bad frame rates:

In general, the more detailed an aircraft is, the more impact it will have on frame rates. This may not be much a problem when you are flying one of these detailed aircraft, but if you put a dozen of them at an airport it can slow FS down to a crawl. Aircraft made specifically for AI use are usually very easy on frame rates.

24. Command Line Switches and Developer Information

The following command line switches will be of interest to developers who want to run TTools programs using a front-end program, or general users who want to call TTools from a batch file or a Shortcut.

If you create a Windows Shortcut icon to run TTools you can have the shortcut issue command line switches for you. If you open the Properties window for the shortcut you can put command line switches at the very end of the compiler path in the ‘Target’ box ( e.g. "…/TTools.exe /co /t4 /na" to get TTools to automatically compile a traffic file for FS2004 and to not insert arrival times).

TTOOLS SWITCHES

Here are the switches for the TTools.exe program. Note that upper or lower case is not important.

/co<suffix>
Compile: This will cause the compiler to run automatically when the program is started. The program will close automatically on completion, unless the /fp or /ep (Error Prompt or Failure Prompt) switches are also given. The ‘suffix’ specifies which set of source files to compile. For example: /co030528 will cause the source file set with that suffix compiled (e.g. FlightPlans030528.txt, etc.) to be compiled. The suffix can also be wrapped in quotes, for example /co"30528". If the source files have no suffix (e.g. FlightPlans.txt) then use /co alone.

/de<suffix>
De-compile: This will cause the de-compiler to run automatically when the program is started. The program will close automatically on completion, unless the /fp or /ep (Error Prompt or Failure Prompt) switches are also given. The ‘suffix’ specifies which traffic file to de-compile. For example: /de030528 will cause the stock traffic file (traffic030528.bgl) to be de-compiled. The suffix can also be wrapped in quotes, for example /de"30528". If the traffic file has no suffix (e.g. traffic.bgl) then use /de alone.

/sd
Use the default Source Files folder for compiling and de-compiling. You can only use one of the switches /sd or /sf at the same time. If you omit them both then /sd will be assumed.

/sf<source folder>
Use the specified Source Files folder for compiling and de-compiling. For example: /sfc:\AIPlanning\ . If the specified path contains spaces then you must wrap the path in quotes. For example: /sf "c:\AI Flight Planning\" . The closing ‘\’ is optional. You can only use one of the switches /sd or /sf at the same time.

/t2
Use the FS2002 default Traffic Files folder for compiling and de-compiling. You can only use one of the switches /t2, /t4 or /tf at the same time. If you omit all three then /t4 will be assumed, or /t2 if FS2004 was not found.

/t4
Use the FS2004 default Traffic Files folder for compiling and de-compiling. You can only use one of the switches /t2, /t4 or /tf at the same time.

/tf<traffic folder>
Use the specified Traffic Files folder for compiling and de-compiling. For example: /tfc:\AIPlanning\ or /tf "c:\AI Flight Planning\" . You can only use one of the switches /t2, /t4 or /tf at the same time.

/fp
Finish Prompt: If this switch is included with /co or /de (Compile or De-compile) then the program will display a message box "Click OK to Exit" when the compile or de-compile finishes. Normally the program would exit automatically after completing a compile or de-compile without requiring user input.

/ep
Error Prompt: This switch is similar to /fp (Finish Prompt) but will display a message box "Click OK to Exit" only if an error occurred, thus allowing the user to examine the error information. Otherwise, the program will automatically close on a successful compile or de-compile.

/na
No Arrivals: This switch will prevent the compiler from automatically inserting the calculated arrival times in the FlightPlans…txt file.

For developers intending to call TTools automatically from another program, for example using a ShellExecute API call, you can copy the source files into the TTools folder and run the compiler with the following command line (assuming a suffix of MyPlans, and FS2004 for the traffic file destination):

   Ttools.exe  /co"MyPlans" /t4

Alternatively, you could tell the compiler to take the source files from another folder:

   TTools.exe  /co"MyPlans" /sf"MyAIProgram" /t4

The user can configure the source and traffic folders while he is running TTools and the program will remember those settings between runs, but when you compile or de-compile using the command line (/co or /de) the user’s settings will be ignored and the program will assume the default source and traffic folders, unless told otherwise by using the /sf or /tf switches to redirect those folders. When TTools is run to compile or de-compile using the command line it will not effect any of the user’s saved program settings.

Using the /t2 or /t4 switches to direct TTools to use the default FS2002 or FS2004 traffic folder could have a pitfall: TTools determines the location of FS2002 and FS2004 using the FS Registry entries. This works well 99% of the time, but on occasion a user will move FS without re-installing it, and the Registry entry will no longer be correct. TTools will think that the given version of FS is not installed and will not have a default traffic folder. You can get around this a couple of ways: One way is to advise the user to start TTools when it is first installed and look at the FS2002 / FS2004 checkboxes under the File menu to verify that TTools knows about the installed versions of FS. A more reliable method is to specify the Traffic Files folder on the command line using the /tf switch, rather than depending on the /t2 and /t4 switches to direct TTools to use the default traffic folders. For Example:

   TTools.exe  /co"MyPlans" /tf"C:\Program Files\Microsoft Games\FS2002\SCENEDB\ATC\Scenery"

You do not need to specify /t2 or /t4 in this case because you are explicitly telling the program where to deposit the traffic file. Of course, this method assumes that your program has already somehow determined which version(s) of FS to use and where those FS versions are located.

If you do decide to use the /t2 /t4 method to direct the compiler and de-compiler to use the default FS traffic folder, and if the requested version of FS is not installed, then TTools will return an error exit code. In this case the exit code will be ‘1’ (ERR_FS_VERSION_UNAVAILABLE).

AIRPORT COLLECTOR SWITCHES

Here are the switches for the CollectAirports.exe utility. Note that upper or lower case is not important.

/c2
Collect FS2002 airports: This will cause the collector to run automatically for FS2002 when the program is started. The program will close automatically on completion, unless the /fp or /ep (Error Prompt or Failure Prompt) switches are also given. You can use /c2 or /c4 but not both on the same command line. If FS2002 is not installed the program will return an error exit code.

/c4
Collect FS2004 airports: Refer to the /c2 switch above for details.

/df<destination folder>
This specifies where the resulting Airports_FS2002.txt or Airports_FS2004.txt file will go. For example: /sfc:\AIPlanning\ . If the specified path contains spaces then you must wrap the path in quotes. For example: /sf "c:\AI Flight Planning\" . The closing ‘\’ is optional. By default the file is written to the folder the collector utility is installed in.

/fp
Finish Prompt: If this switch is included with /c2 or /c4 then the program will display a message box "Click OK to Exit" when the collection finishes. Normally the program would exit automatically without requiring user input.

/ep
Error Prompt: This switch is similar to /fp (Finish Prompt) but will display a message box "Click OK to Exit" only if an error occurred, thus allowing the user to examine the error information. Otherwise, the program will automatically close on successful completion.

EXIT CODES

If your program calls TTools or CollectAirports using a ShellExecute API call then you can also get the exit code when the program completes. Here is the C code to do that (VB will be similar):

   // call TTools with parameters in ShExecInfo structure
   ShellExecuteEx( &ShExecInfo );

   // wait for TTools to finish
   if( ShExecInfo.hProcess != NULL )
       {
       do
          {
          Sleep( 100 );
          GetExitCodeProcess( ShExecInfo.hProcess, &ExitCode );
          } while( ExitCode == STILL_ACTIVE );
       }

Here are some exit codes that are of particular interest when calling TTools or CollectAirports:

0 = STATUS_OK - Normal successful completion of compile or de-compile.
1 = FS_VERSION_UNAVAILABLE - /t2 or /t4 was used on the TTools command line, or /c2 /c4 for CollectAirports, but the program couldn’t find that version.
2 = MISSING_SOURCE_FILE - One or all of the source files specified by the ‘suffix’ in /co<suffix> wasn’t found in the specified Source Files folder.
3 = MISSING_TRAFFIC_FILE - The traffic file specified by the ‘suffix’ in /de<suffix> wasn’t found in the specified Traffic Files folder.
4 = USER_CANCELLED - The used pressed the cancel button while compiling, de-compiling, or airport collecting.

There are numerous other error codes, mostly relating to syntax or formatting errors in source files. Only with STATUS_OK can you assume the end-product files were created successfully.

25. Problems and Q & A

TTools doesn’t seem to know that I have FS2002 or FS2004 installed
This can occur if you moved your FS folder without re-installing. You can use the ‘Locate Flight Simulator’ item under the File menu to tell it where to find either version of FS.

Add-on aircraft have no landing gear
Aircraft made with older aircraft building tools usually have this problem. Aircraft made with the new GMAX builder usually don’t, so try to find GMAX built aircraft for add-ons where possible, or better yet, use aircraft specifically designed for AI. See the section Guidelines for Adding Aircraft.

Add-on aircraft have no moving propellers or flaps
This has the same cause as the previous problem.

Add-on aircraft crash or land before reaching the runway
The FS AI software seems to be very sensitive about the flight characteristics of aircraft used for AI. If an aircraft can’t land properly it can usually be fixed by substituting the .air file of a similar aircraft that the software can land. Or better yet, use aircraft specifically designed for AI. See the section Guidelines for Adding Aircraft.

Add-on aircraft climb and dive or seem out of control
This has the same cause as the previous problem.

Aircraft can’t land and keep doing ‘go arounds’ or fly off into the distance
This can be caused by several things:

FS2002 only: There is a bug in the FS2002 AI terrain avoidance mechanism that prevent aircraft from landing at certain airports (e.g. Maui), or certain approaches to some airports. There is often not much that can be done about this, but it sometimes helps to open an alternate approach to avoid the ‘buggy’ terrain area by changing the wind direction, or making a whole different runway the active runway using AFCAD. Shifting the airport fix (see the Airports.txt file section) 5 or 10 miles away from the airport, and away from mountains, may also help. The terrain avoidance has been improved for FS2004.

FS2002 only: There is also a bug in the FS2002 AI descent planning. If they materialise at a medium distance on approach, such as 40 miles from the airport, they usually materialise at an adequate altitude for the descent profile, but then the aircraft will ‘rocket’ back up to their cruising altitude. They eventually re-establish a normal descent profile, but they are far too high to land given the limited distance to the airport. This can be fixed by reducing the cruise altitude in the flight plan, unfortunately this may require an unrealistically low altitude, such as 20000 feet for a 747. Opening a different runway (approach) may also help.

Another reason aircraft may not land is if the runway is too short for the type of aircraft.

I changed flight plans or aircraft and nothing changed in the Flight Sim world
FS2002 only: Did you make a copy of the traffic.bgl file before making changes, and did you leave the copy in the same folder? FS2002 will often read the copied file, even if it has a different name, and will ignore the modified traffic.bgl file. This means that FS2002 will be running with all the stock AI traffic. If you make a copy of that file then change the file extension from ".bgl" to something else, such as ".xyz" so FS2002 won’t try to read it.

Duplicate AI aircraft flying together.
This can occur if you have duplicate flight plans, or if you made a backup of the traffic file and kept the extension ".bgl". FS is reading and using the backup file as well as the main file(s).

I created new flight plans but the aircraft did not appear, or did not depart at the expected time.
If you used your editor to modify flight plans or aircraft, and you saved the modified files then complied to create a new traffic file, then here are a few things to check:

Flight plan times are all in GMT. When you set the start time on entering FS you should set the time using GMT, not local time, if you want to observe your AI aircraft departing (or arriving) at the scheduled time.

Make sure you are using the correct departure time. It can be confusing that the departure airport and the departure time from that airport are found in different legs of the flight plan. For example, in the following flight plan the aircraft departs from CYQR at 03:45:43 and departs CYYZ at 15:45:32.

   AC#1,N60168,51%,24Hr,IFR,  03:45:43,09:28:50,050,F,1782,CYYZ,  15:45:32,21:28:40,060,F,1783,CYQR

If you created a new flight plan and you used a new add-on aircraft in the file, change the flight plan to use a stock aircraft temporarily and re-compile it. This will narrow down the problem to either the flight plan or the new aircraft. Some older add-on aircraft don’t appear for some reason.

If the flight plan uses an add-on aircraft, make sure the aircraft name is correct. It should match the "title=" line in the aircraft.cfg file for the aircraft being used with no extra spaces.

If you created a flight plan departing an airport that doesn’t have a control tower (FS2002 only) or a large enough parking space or gate for the aircraft, the aircraft will not appear. You can find out the number and sizes of parking spaces using AFCAD, or from the Current Location window in FS. There is a list box at the bottom of that window where you can select the runway, and all the parking spaces and gates are shown at the bottom of that list.

Make sure your flight plan repeat period is large enough to encompass BOTH legs of the flight plan, and stop over time at both ends, not just one leg. You cannot have a flight from New York to L.A. and return with just a 6 hour repeat period.

If you are using a weekly repeat period, make sure you set the correct day before entering FS. The day you set on FS is in local time but the day you specify in a flight plan is in GMT. If your AI flight doesn’t depart when you expect it to try changing to the day before or the day after.

Also see the description for the previous problem.

My frame rates dropped drastically at airports with add-on aircraft
There are a small number of add-on aircraft that require an unusually large amount of graphics power to display, even though the aircraft themselves may not look very complicated. If you have one or more of these aircraft then your frame rates will probably suffer. You may be able to determine which aircraft is causing the problem by taxiing by each different aircraft and watching for a frame rate drop when you look it. If this doesn’t work then you can temporarily remove a few aircraft from the Aircraft.txt file by replacing the aircraft types with stock aircraft and recompile the traffic file. If the problem goes away then one of those aircraft caused the problem. Note that even if an aircraft is moderately worse than normal for frame rates, if you use several of that same model at the same time it could cause very low frame rates. If possible, use aircraft designed for AI purposes, as these are usually very good on frame rates.

Can I use the same aircraft model in more than one flight plan?
You can use the same model as many times as you want, even flying at the same time. FS simply makes as many images of the aircraft as it needs from the model files.

Can I use helicopters?
Helicopters do not inherently work as AI.

Can I use float planes?
Float planes can reportedly be used in FS2004, but they do not work properly as AI in FS2002.

Aircraft disappear shortly after landing
This usually means there are no gates or parking spaces for the aircraft. This can either be because there is no parking of the appropriate size at that airport, or all the appropriate parking spaces are already filled. Jets the size of a 737 or larger require a gate (gates are all larger than ramp parking), so if a 737 lands at an airport without any gates then It will disappear. Also see the next paragraph.

Can I add or change parking spaces?
You can use a program called AFCAD to add or enlarge parking spots.

AI aircraft just sits on the runway after landing
FS2002 only: This will happen if you program an aircraft to land at an airport that doesn’t have a control tower (ATC tower and ground frequencies). You can use a program called AFCAD to add ATC to airports.

AI aircraft taxi to the runway and freeze at the hold-short position
This can happen at modified airports where the hold-short point is too far from the runway. The hold short point must be no more than 225 feet from the edge of the runway. You can use AFCAD to adjust this.

None of my AI aircraft appear any more
FS2002 only: Some third party aircraft installers can cause a problem where your AI aircraft suddenly stop appearing. Check in the main aircraft folder "FS2002\aircraft" and see if there is still a file there named "default.dp". If that file is missing you can re-load it from the FS2002 CD, disk 1. It is contained in a file called AIRCRAFT.CAB and can be extracted with a Zip program.

My departure times are changed when I compile and de-compile
When you compile and de-compile the same flight plan file you may notice your departure times change, they usually start a few seconds earlier. This is because the traffic file does not save time in exact seconds, but in time ‘packets’ and the compiler must round-off the time to fit in a time packet.

If you find the departure time is drastically lower, for example you set a time of 08:21 and the time was chopped to 00:21, this is because you had a repeat period specified and the repeat period was divided out of your departure time. For example, if you specify a repeat period of 4 hours your flight plan will repeat every 4 hours from 00:00 to 23:59. So if you specify a departure time of 08:21 the compiler will chop that down to 00:21 and your flight will depart at 00:21, 04:21, 08:21, 12:21 …etc. Note that your flight will still depart at 08:21 as you originally specified. The AI software needs the flight plan times to be this way.

Compiler reports a flight plan for an airport not in the Airports file
If this occurs after running the airport collector, it means that you have one or more flight plans that serve an airport that you don't actually have. This could occur, for example, if you installed an airport and some flight plans for it, then subsequently removed the airport without removing the flight plans. It could also mean that you have inserted some add-on flight plans that include an airport that you have never installed. You should open the FlightPlans file with an editor and do a search for all plans that use that airport and delete them. Alternatively you could download that airport and install it.

26. Reporting Problems

If you have problems, please consult the Problems and Q & A section first. If you don’t find a solution there then you can report problems with the TrafficTools package to:

Lee Swordy

Swordy@rogers.com

You can also find assistance at some flight sim web sites, notably the TTools forum at www.Avsim.com and forums at www.ProjectAI.com.

27. Copyright Information

The TTools and CollectAirports programs and documentation are considered to be in the public domain. They may be freely distributed, posted, or used for commercial purposes without requiring the author’s consent.

 

 

 

Microsoft and Microsoft Flight Simulator are trademarks of Microsoft Corp.