FlightGear comes complete with an integrated launcher to start FlightGear. On Windows, double-click on the FlightGear Launcher Start Menu item or the icon on the Desktop. Alternatively, on any system, you can run
fgfs --launcher
from the command line. The launcher allows you to select your aircraft, the starting location (you can now even start 10 miles from the runway, in a nice place for an approach, or over a specific navaid!), time of day, enable or disable TerraSync or live weather, and lots of other settings.
When you first open the launcher, you will see a dialog box to set your FG_ROOT variable, normally:
C:\Program Files\FlightGear\data or
C:\Program Files\FlightGear 2020.4.0\data
When you have set that, you will see the screen like in figure 4.2.
The launcher defaults to starting a flight with the Cessna 172P at the default airport, which depends on the FlightGear release. Simply press the Fly! button to start the simulator. Alternatively, if you want to change any of your starting settings, select from the buttons on the left.
You can change your aircraft by navigating to the Aircraft tab on the left of the window. FlightGear comes pre-installed with the Cessna 172P, and a UFO. To fly other aircraft, the easiest way is to add a default FlightGear hangar with hundreds of aircraft. To do this, in the Aircraft tab, click the Browse button and then the Add default hangar. The list will fill up with lots of aircraft. You may download any of the other aircraft listed simply by clicking on the Install button. You can also download aircraft from the official website and private hangars.
Selecting Location allows you to select your starting position – tied down at a parking location, on the runway ready for take-off, on approach on an ILS approach, or relative to a VOR , FIX. By default, the current selected location is displayed. To select a completely different location, click the Back button and enter the name of where within the world you want to be.
FlightGear will automatically download any required scenery (assuming you have it selected in the Settings page).
The Environment page allows you to select the time of day and various parameters for weather modeling. You can choose to use the current real world weather conditions, or select a specific weather scenario such as a high pressure region, or a thunderstorm.
The Settings page allows you to select a variety of simulation settings, such as multiplayer, automatic scenery download and graphics options. Advanced options are available from Show More on the right.
Finally, the Add-ons page allows you to select different hangars of aircraft to download.
Once you are happy with your settings, click on the Fly! button to start the simulator.
Section 4.1 showed how to run FlightGear using its built-in launcher. Alternatively, you can
run it from the command line. When doing so, you may pass options such as --fg-root
and
--fg-scenery
, or set the corresponding environment variables named FG_ROOT and
FG_SCENERY.
Note that doing such settings is not always necessary (for instance, if you compiled
FlightGear yourself and passed -D FG_DATA_DIR:PATH=path to CMake, then your fgfs
executable has this directory as its default FG_ROOT setting). However, if you are not using the
built-in launcher and either FlightGear can’t find its base package or you want to add
directories for custom scenery, then passing options --fg-root
or --fg-scenery
, or
alternatively setting FG_ROOT or FG_SCENERY as environment variables, is likely to be
helpful.
How to set environment variables largely depends on the operating system and the shell in use, if any. We’ll get into such platform-specific details after a few general comments on FG_ROOT and FG_SCENERY.
The value of the FG_ROOT setting is the path to a directory (folder) where FlightGear looks for its base data files (for instance, XML and Nasal files shared by several aircraft, navigational beacon locations, radio frequencies for contacting airports, shaders for graphical effects, translation files, etc.).
The contents of this directory comes directly from the FGData repository.1 If you have installed FlightGear from a binary distribution on Windows or macOS, the directory name should be data. It can also be called fgdata (typically, after cloning the FGData repository), but other names are possible: for instance, the flightgear-data-base package in Debian ships it as /usr/share/games/flightgear. This directory contains files such as version, defaults.xml and keyboard.xml as well as subdirectories such as Aircraft, Input and Nasal.
In order to run, FlightGear absolutely needs to know where to find this directory. Users of
the built-in launcher are prompted to select it from the graphical interface if FlightGear hasn’t
found it automatically. Unless the location recorded at compile-time points to a suitable
directory, FlightGear command line users need to either set the FG_ROOT environment variable
or pass the --fg-root
option in order to specify an appropriate location (check that it has the
aforementioned files and subdirectories).
If you are a user of the download_and_compile.sh script, the base data files are in
install/flightgear/fgdata (relatively to the directory from which you ran the script), but
you don’t need to use --fg-root
nor to set FG_ROOT: the run_fgfs.sh script created by
download_and_compile.sh automatically passes the --fg-root
option to fgfs for you with the
appropriate value.
In most Unix shell languages, $VAR can be thought of as “the value of variable VAR”. In
explanations and documentation related to FlightGear, we often extend this notation a little
bit. Typically, $FG_ROOT should be understood as “your FG_ROOT setting, regardless of the way
FlightGear obtains it: compile time default, FG_ROOT environment variable or --fg-root
option.”
The same kind of sloppy wording is sometimes applied to other settings such as
FG_SCENERY to mean “the list of scenery paths FlightGear has been configured to use”,
however this can get confusing. Indeed, the list of scenery paths considered by FlightGear is
assembled from several things, including the values passed to --fg-scenery
options and that of
the FG_SCENERY environment variable, if set… value which is obtained via $FG_SCENERY in
typical Unix shells!
The scenery shown by FlightGear can be assembled from several places, and the whole is
sometimes referred to as “FG_SCENERY”. This is however sloppy wording: FG_SCENERY is
actually the name of an environment variable that may be used (but there are several other
ways) to point FlightGear to some folders containing scenery. FlightGear can use scenery from
folders listed in $FG_SCENERY as well as folders given to the --fg-scenery
option, all in the
same run.
The most straightforward way to obtain FlightGear scenery if you have a good Internet connection is TerraSync: with this piece of the FlightGear infrastructure, scenery for the relevant area is downloaded as you fly. TerraSync scenery is automatically updated when you fly again to the same place. FlightGear can also use folders containing scenery that isn’t managed by TerraSync; this is how “custom scenery” is used.
For users of the built-in launcher, enabling or disabling TerraSync is done under Downloads in the Settings tab: from there, you can enable or disable automatic scenery download and choose where the resulting files are stored (they can easily take up several gigabytes). Scenery directories not managed by TerraSync can be set in the Add-ons tab under Additional scenery folders.
For people who start FlightGear from the command line, TerraSync can be enabled or
disabled with --enable-terrasync
and --disable-terrasync
. In order to choose where TerraSync
stores the resulting files, you can use --download-dir
or --terrasync-dir
(if both are set, the
latter takes precedence).
If you start FlightGear from the command line with the simple command fgfs
--enable-terrasync
, scenery will be downloaded to the default location:
This may be a good way to start FlightGear for the first time, if for some reason you don’t want
to use its built-in launcher. In case you don’t have enough space in that location, simply
specify another one using the --download-dir
option.
Scenery directories not managed by TerraSync can be added using the --fg-scenery
option and the FG_SCENERY environment variable. The value given to --fg-scenery
or
FG_SCENERY must be a list of directories that will be searched in order, separated by “:” on
Unix or macOS and by “;” on Windows. For instance, this value could be used on
Unix:
/home/joebloggs/my-fg-scenery:/home/joebloggs/.fgfs/TerraSync
and that one on Windows:
D:\MyScenery;C:\Users\joebloggs\FlightGear\Downloads\TerraSync
If you want to use both TerraSync-managed scenery and custom scenery, it is generally
advised to give the TerraSync directory as the last item, as in the above examples. This
way, custom scenery can override TerraSync-managed scenery. Actually, unless it is
already mentioned in $FG_SCENERY or via --fg-scenery
, the TerraSync directory
is automatically appended to the list of scenery paths used by FlightGear (and
followed by $FG_ROOT/Scenery in case neither FG_SCENERY nor --fg-scenery
specify
anything).
Open a shell (also known as “command prompt”) and use the cd command to change to the directory containing your fgfs.exe executable. For instance:
C:
cd \Program Files\FlightGear\bin
Then try simply running fgfs. If it complains that it can’t find the “base data files”, you need to
either pass the --fg-root
option or set the FG_ROOT environment variable:
fgfs " --fg-root
=C:\Program Files\FlightGear\data"
(quotes are needed here because of the spaces in the option value) or
SET FG_ROOT="C:\Program Files\FlightGear\data"
fgfs
In case you have custom scenery, you might also want to set FG_SCENERY (cf. section 4.2.2). The usual syntax for invoking the fgfs executable is:
fgfs --option1
--option2
…
where available options are described in section 4.4. Of course, you can create a batch file with a Windows text editor (like Notepad) using the above lines. For maximum performance, it is recommended that you to minimize (iconize) the text output window while running FlightGear.
There are several cases to distinguish: if you used the download_and_compile.sh script to
compile FlightGear, simply run the generated run_fgfs.sh script as if it were fgfs, giving it
any of the options mentioned in section 4.4. In this case, don’t pass --fg-root
to run_fgfs.sh:
this is already handled inside the script.
We now assume that you have an fgfs executable that wasn’t obtained by running the
download_and_compile.sh script. If you have compiled FlightGear yourself and passed
-D FG_DATA_DIR:PATH=path
to CMake where path tells where your FGData resides, then
your fgfs executable has this directory as its default FG_ROOT setting; therefore,
you don’t need to pass --fg-root
nor to set the FG_ROOT environment variable: you
can simply run the fgfs executable and give it any of the options mentioned in
section 4.4.
In case the fgfs executable comes from your distribution, things may or may not be as in
the previous paragraph. Try simply running fgfs. If it complains that it can’t find the “base
data files”, you need to either pass the --fg-root
option or set the FG_ROOT environment
variable. Using the option is done this way:
fgfs --fg-root
=/usr/share/games/flightgear
(replace /usr/share/games/flightgear with the directory containing your FGData files; the
above value is only where Debian puts them). As with any shell command, use double or single
quotes if the path contains spaces. An alternative to using the --fg-root
option is to
set the FG_ROOT environment variable. In Bourne-style shells, this can be done like
so:
export FG_ROOT=/usr/share/games/flightgear
On the other hand, you would use something like this instead in C-style shells:
setenv FG_ROOT /usr/share/games/flightgear
Then simply run fgfs. In case you have custom scenery, you might also want to use the same technique to set FG_SCENERY (cf. section 4.2.2). Once these details have been sorted out, you can start FlightGear and give it any of the options mentioned in section 4.4:
fgfs --option1
--option2
…
You can also launch the simulator from the command line on macOS. In order to do so, you may open Terminal.app (located at /Applications/Utilities) and type the following commands:
cd /Applications/FlightGear.app/Contents/MacOS
./fgfs --option1
--option2
…
See section 4.4 for information on the available command line options. As long as you use a prebuilt binary package, you don’t need to manually specify FG_ROOT.
The FlightGear executable is called fgfs (fgfs.exe on Windows). This program
accepts a large number of options which will be listed in section 4.4. One of these
options, namely --launcher
, has already been presented in section 4.1 and starts the
FlightGear built-in launcher. When this option is used, one rarely needs to pass other
options manually to fgfs, because most settings can be performed from the built-in
launcher.
It is also possible to start FlightGear without going through its built-in launcher, i.e.,
without using the --launcher
option. This is particularly useful when testing things that
require one to restart FlightGear many times in the same or similar conditions. There are also
external launchers which work this way, calling the fgfs executable with all kinds of options,
except --launcher
.
The rest of this section goes into some details and is safe to skip if you are starting with FlightGear, especially if you use its built-in launcher.
When FlightGear (or rather, the fgfs executable) is started without the --launcher
option, it tries to read options from a well-defined set of configuration files before processing
the options passed as arguments to fgfs. These configuration files are fgfsrc in a location
described in table 4.1, as well as .fgfsrc and .fgfsrc.⟨hostname⟩ as explained in table 4.2.
If you have options that you very often use, you can create one of these files and put the
options there, one per line. Then you don’t need to explicitly pass them to fgfs anymore.
Such files can be created with any text editor (Notepad, Emacs, vi, etc.). If you don’t know
whether to create an fgfsrc or .fgfsrc file, we suggest the former: its expected
location is tidier and its name not starting with a dot can make things easier in some
situations.
Operating system | Where fgfsrc is looked fora |
Windows | %APPDATA%\flightgear.org (typically: C:\Users\username\AppData\Roaming\flightgear.org on Vista or later, otherwise C:\Documents and Settings\username\Application Data\flightgear.org) |
macOS | ~/Library/Application Support/FlightGear |
Unix/Linux | ~/.fgfs |
a That is, unless FG_HOME is set, in which case fgfsrc is looked for in the corresponding location; however, doing so is not advised unless you have a good reason.
Operating system | Where .fgfsrc and .fgfsrc.⟨hostname⟩ are looked for |
Windows | %USERPROFILE% (typically: C:\Users\username) |
macOS | $HOME (typically: /Users/username) |
Unix/Linux | $HOME (typically: /home/username) |
As the order of fgfs options can matter, let’s be a bit more explicit about it. If --launcher
has been passed, configuration files specified with the --config
option are first processed,
followed by other options from the command line. Otherwise, options are processed in the
following order:
--config
options specifying non-XML files (in reverse order of these
options, but in top-down order within each of the specified files);
There can be exceptions, but usually, options that are processed later override those processed earlier.
The fgfsrc, .fgfsrc, .fgfsrc.⟨hostname⟩ and non-XML files loaded with --config
all
obey the same syntax rules: they should have one fgfs option per line. Lines starting with
a # character are treated as comments, i.e. they are ignored. Each option found
outside a comment line is treated as if it had been passed as an argument to the fgfs
executable.
Following is a complete list of the numerous command line options available in FlightGear (i.e., options that can be passed to the fgfs executable). For more convenience, options that you always want to use may be specified in a preferences file that is automatically processed when FlightGear is started (see section 4.3).
When using the built-in launcher, the default preferences files (fgfsrc and similar) are not read by FlightGear unless explicitly requested; however, applicable options may be entered in the Additional Settings box of the launcher’s Settings tab.
Some options don’t require a value, such as --help
, but there are options for which you should
specify a value, such as --fg-root
, as well as there are options for which you can optionally
specify a value, such as for --launcher
. You can separate the value from the option with either
the = sign or a space, such as:
--fg-root=/path/to/fgdata --fg-root /path/to/fgdata
In this manual, we always use the = character.
Options that act like an enable/disable switch take optional values as true, 1, yes (enable)
or false, 0, no (disable). If you don’t specify any value next to such an option, it will work by
default as if you passed true, 1 or yes, i.e. enabled it, e.g: --launcher
will enable launcher,
which is equivalent to --launcher
=yes.
On the other hand, you can also pass a value that disables the option, e.g.: --launcher
=no,
which will cause the launcher not to be run.
In addition, most of such options have two additional versions without a value, but
preceded by the prefix enable- and disable- e.g.: --enable-launcher
will also enable the
launcher.
--launcher
=[{true|false|1|0|yes|no}], --enable-launcher
, --disable-launcher
Enable or disable starting the launcher (described above).
Display the most relevant command line options.
--help
--verbose
Display all command line options.
--version
=[{true|false|1|0|yes|no}]
Display the current FlightGear version.
Tell FlightGear where to look for its base data files. If this option is not provided
and the FG_ROOT environment variable is set, the latter is used. If neither the
--fg-root
option is passed nor the FG_ROOT environment variable set, FlightGear
looks for its base data files in a place that was determined at compile time.
Users of the FlightGear built-in launcher should not worry about passing --fg-root
or setting the FG_ROOT environment variable: they can select the location of the
base data files directly in the launcher, and it will be remembered.
For more details, see section 4.2.1.
List of paths to consider as scenery directories (it can be used to point FlightGear
to custom scenery). These paths should be separated by “:” on Linux and macOS,
“;” on Windows. If the FG_SCENERY environment variable is set (whose value should
be a list of paths using the same syntax), the corresponding directories are added
after those from --fg-scenery
options.
Let’s call ℓ the resulting list. If ℓ is empty, the list of scenery paths considered by FlightGear is comprised of the TerraSync directory followed by $FG_ROOT/Scenery. Otherwise, the TerraSync directory is appended to ℓ unless it was already there, and this becomes the list of scenery paths considered by FlightGear.
Users of the FlightGear built-in launcher should not worry about passing
--fg-scenery
or setting the FG_SCENERY environment variable: they can set the list
of scenery paths directly in the launcher, and it will be remembered.
For more details, see section 4.2.2.
List of paths where FlightGear will look for aircraft, in addition to $FG_ROOT/Aircraft and the directories listed in $FG_AIRCRAFT.
The paths should be separated by “:” on Linux and macOS, “;” on Windows. This option may be specified multiple times—its effect is additive.
Specify an additional base data directory (FGData), before the $FG_ROOT directory.
Specify a path to addon. Multiple instances can be used.
Store aircraft and scenery downloaded via the simulator under path.
The TerraSync directory may be specifically set with the --terrasync-dir
option.
Set the path where the downloaded scenery will be stored.
--terrasync
=[{true|false|1|0|yes|no}],
--enable-terrasync
,
--disable-terrasync
Enable, disable automatic scenery downloads/updates. By default, TerraSync is turned off.
Select the language for this session. The supported languages (codes) are: ca, de, en, en_US, es, fr, it, nl, pl, pt, ru, tr, sk and zh_CN.
--restore-defaults
=[{true|false|1|0|yes|no}],
--enable-restore-defaults
,
--disable-restore-defaults
Enable or disable resetting all user settings to their defaults.
--save-on-exit
=[{true|false|1|0|yes|no}],
--enable-save-on-exit
,
--disable-save-on-exit
Enable or disable saving of user-preferences on exit from the simulator.
--ignore-autosave
=[{true|false|1|0|yes|no}],
--enable-ignore-autosave
,
--disable-ignore-autosave
Enable or disable ignoring the user settings saved the previous time FlightGear
was run. This option implies --disable-save-on-exit
.
--read-only
=[{true|false|1|0|yes|no}],
--enable-read-only
,
--disable-read-only
Enable or disable making $FG_HOME (the location where user-specific FlightGear data is stored) read-only.
Allow Nasal aircraft scripts to read files from the directories listed in paths (separate
multiple paths with colons, or semicolons on Microsoft Windows operating
systems).
By default, for security reasons, Nasal scripts can only read data from certain
directories, such as $FG_ROOT, $FG_HOME, etc.
Specify location of your web browser. E.g:
--browser-app
="C:\Program Files\Internet Explorer\iexplore.exe"
(Note the "…" used because of the spaces!).
Load additional properties from the given path. E.g.:
--config
=./Aircraft/X15-set.xml.
--no-default-config
=[{true|false|1|0|yes|no}]
Enable or disable not loading any configuration files unless they were explicitly
specified with --config
.
Use feet as the unit of measurement.
Use meters as the unit of measurement.
--gui
=[{true|false|1|0|yes|no}], --enable-gui
, --disable-gui
Enable or disable GUI (disabling GUI means enabling headless mode.)
--freeze
=[{true|false|1|0|yes|no}], --enable-freeze
, --disable-freeze
Control whether FlightGear starts paused or not. Defaults to not paused.
--auto-coordination
=[{true|false|1|0|yes|no}],
--enable-auto-coordination
,
--disable-auto-coordination
Switches auto-coordination between aileron and rudder on and off. Auto-coordination is recommended for users without rudder pedals or a “twist” joystick. Defaults to off.
--composite-viewer
=[{true|false|1|0|yes|no}],
--enable-composite-viewer
,
--disable-composite-viewer
Enable or disable CompositeViewer (extra view windows).
--ai-models
=[{true|false|1|0|yes|no}],
--enable-ai-models
,
--disable-ai-models
Enable, disable the internal AI subsystem, which is required for multiplayer
gaming, AI traffic and many other animations.
Disabling the internal AI subsystem is deprecated.
--ai-traffic
=[{true|false|1|0|yes|no}],
--enable-ai-traffic
,
--disable-ai-traffic
Enable, disable artificial plane traffic.
Enable a specific AI scenario (e.g. --ai-scenario
=vinson-demo). May be used
multiple times.
Load recording of earlier FlightGear session. For file, if file ends with “.fgdata” it is treated as the local path of the recording file; otherwise we form the local path by prepending file with the tape directory (by default it is the directory recordreplay.py.tapes in the directory where the FlightGear binary is located) and appending “.fgtape”.
For URL (starting with “http://” or “https://”) we download the remote recording (which must be a Continuous recording) in the background to a url-dependent filename while replaying it; if the url-dependent filename already exists it is assumed to be a truncated download and we only download any remaining data.
--load-tape-create-video
=[{true|false|1|0|yes|no}],
--enable-load-tape-create-video
,
--disable-load-tape-create-video
Enable or disable encode video while replaying tape specified by --load-tape
.
Set fixed-dt mode while replaying tape specified by --load-tape
. This can be used
to generate high quality videos (with the --load-tape-create-video
option) with
high rendering settings, even on low-spec hardware.
Enter a real number as the value, e.g. 0.04 will give you 25 frames per second of video, no matter what hardware you have. Of course, on less efficient hardware, creating the video will take much longer.
--vr
=[{true|false|1|0|yes|no}], --enable-vr
, --disable-vr
Enable, disable support for VR (Virtual Reality).
--restart-launcher
=[{true|false|1|0|yes|no}],
--enable-restart-launcher
,
--disable-restart-launcher
Enable or disable opening Launcher automatically when exiting FlightGear. Disabled as default.
--sound
=[{true|false|1|0|yes|no}], --enable-sound
, --disable-sound
Enable or disable sound.
--show-sound-devices
=[{true|false|1|0|yes|no}]
Enable or disable listing of available sound devices.
Specify the sound device to use for audio.
--aircraft
=aircraft, --vehicle
=name
Load the specified aircraft, (e.g. --aircraft
=c172p) For available choices check
the directory $FG_ROOT/Aircraft, and look for files ending in -set.xml. When
specifying the aircraft, drop the -set.xml from the filename.
Alternatively, use the --show-aircraft
option described below to list the available
aircraft. For information on downloading additional aircraft, see Section 3.2,
Installing aircraft.
--show-aircraft
=[{true|false|1|0|yes|no}]
Enable or disable printing a sorted list of the currently available aircraft types.
--min-status
={all|alpha|beta|early-production|production}
Display only those aircraft with a specified minimum declared status, one of all,
alpha, beta, early-production, production. For use with --show-aircraft
.
Aircraft directory relative to the executable location.
Defaults to $FG_ROOT/Aircraft.
Set the aircraft livery.
Set the initial aircraft state to value. The states that can be used are aircraft-dependent.
--fdm
={ada|acms|aisim|balloon|jsb|larcsim|magic|network|pipe|ufo|yasim|external|null}
Select the core Flight Dynamics Model (FDM). Options are:
--fdm
=network,host,port-out,port-in,port-cmd,--fdm
=network,localhost,5501,5502,5503.
pipe – external model of flight dynamics, using the “named pipe” mechanism in UNIX systems. In other words, it is a FIFO queue (first in, first out) from which FlightGear can read data about properties (as a name=value pair), e.g. from a file, which in turn is fed with data by external flight dynamics model. At the same time, the external flight dynamics model can also ask FlightGear for certain properties – so the communication is bidirectional.
This is an alternative to transferring the flight dynamics model over the
network (see the network parameter for the --fdm
option). The network is
more nondeterministic (with the UDP protocol), where packets may be lost
or arriving in a different order than they were sent, or arrive late, so this
does not guarantee that the simulator will receive exactly what the flight
dynamics model sends. Pipe does not have these inconveniences, but for pipe
both processes (simulator and flight model) must run on the same machine.
Usage template: --fdm
=pipe,name,protocol, where protocol must be binary
or property.
This option can normally be ignored, as the --aircraft
option will set the FDM
correctly.
Such flight dynamics models as ada, acms, aisim, balloon and magic are of special purpose that should not be of interest to the common user.
Specifies the aircraft aeronautical model to load. This option can normally be
ignored, as the --aircraft
option will set the aircraft model correctly.
Run the Flight Dynamics Model with this rate (iterations per second).
Run the Flight Dynamics Model this much faster than real time.
--trim
=[{true|false|1|0|yes|no}], --notrim
=[{true|false|1|0|yes|no}]
Trim (or not) when initializing JSBSim. Defaults to trim.
--on-ground
=[{true|false|1|0|yes|no}], --in-air
=[{true|false|1|0|yes|no}]
Start up at ground level (default), or in the air. If specifying --in-air
you must also
set an initial altitude using --altitude
, and may also want to set an initial velocity
with --vc
. Note that some aircraft (notably the X15) must be started in mid-air.
--fuel-freeze
=[{true|false|1|0|yes|no}],
--enable-fuel-freeze
,
--disable-fuel-freeze
Control whether fuel state is constant (e.g. frozen) or consumed normally (default).
Start at a specific airport. The airport is specified by its ICAO code,
e.g. --airport
=KJFK for JFK airport in New York. For US airport without an
ICAO code, try prefixing the 3 character code with “K”.
--parking-id
=name, --parkpos
=name
Start at a specific parking spot on the airport.
Start at the threshold of a specific runway (e.g. 28L). If no runway or parking ID is specified, a runway facing into the wind will be chosen for takeoff.
Set the starting position relative to a VOR, NDB or FIX. Useful for practising approaches.
Set the frequency of the VOR. This option requires the --vor
option to be present.
Set the frequency of the NDB. This option requires the --ndb
option to be present.
Start on an aircraft carrier. See 6.2, Aircraft Carrier for details of carrier operations.
--carrier-position
={abeam|FLOLS|name}
Specify a starting position relative to the carrier where you can use the predefined
abeam (start on downwind abeam) or FLOLS (start on final approach) values, or
specify the name of the carrier’s parking position. Must be used with --carrier
.
Defaults to a catapult launch position.
Start at a particular longitude and latitude, in decimal degrees (south, west negative).
--offset-distance
=nm, --offset-azimuth
=deg
Start at a particular distance (nautical miles) and heading from a position set
using --airport
, --vor
, --ndb
, --fix
, --carrier
or --lat
and --lon
.
Start at specific altitude. Implies --in-air
. Altitude is specified in feet unless you
also select --units-meters
, in which case altitude is in meters. You may also want
to set an initial velocity with --vc
to avoid stalling immediately.
--heading
=degrees, --roll
=degrees, --pitch
=degrees
Set the initial orientation of the aircraft. All values default to 0 – heading North, in straight and level flight.
--uBody
=X, --vBody
=Y, --wBody
=Z
Set the initial speed along the X, Y and Z axes. Speed is in feet per second unless
you also select --units-meters
, in which case the speed is in meters per second.
--vNorth
=N, --vEast
=E, --vDown
=D
Set the initial speed along the South-North, West-East and vertical axes. Speed is
in feet per second unless you also select --units-meters
, in which case the speed is
in meters per second.
Set the initial airspeed in knots or as a Mach number. Useful if setting --altitude
,
unless you want to stall immediately!
Set the initial glide slope angle in degrees or as a climb rate in feet per minute. May be positive or negative.
Use a specific METAR string, e.g.
--metar
="XXXX 012345Z 00000KT 99SM CLR 19/M01 A2992".
The METAR may be specified in most common formats (US, European).
Incompatible with --enable-real-weather-fetch
.
--real-weather-fetch
=[{true|false|1|0|yes|no}], --enable-real-weather-fetch
,
--disable-real-weather-fetch
Control whether real-time weather information is downloaded and used.
--visibility
=meters, --visibility-miles
=miles
Set the visibility in meters or statute miles.
--wind
=dir[:maxdir]@speed[:gust]
Specify the direction the wind blows from (dir) and its speed (speed knots), e.g.
--wind
=180@10. If the wind is not meant to blow from a fixed direction, but
rather from a range of directions, specify the range as dir:maxdir, where dir and
maxdir are the minimum and maximum angles in degrees. If you want the simulator
to model wind gusts as well, set gust to their maximum intensity in knots, e.g.
--wind
=180:220@10:15 – variable wind from 180 to 220 degrees, blowing at a
speed of 10 knots in gusts up to 15 knots.
Sets random wind direction and strength.
Sets turbulence from completely calm (0.0) to severe (1.0).
--ceiling
=FT_ASL[:THICKNESS_FT]
Sets an overcase ceiling at a particular height, and with an optional thickness (defaults to 2000 ft).
--graphics-preset
={minimal-quality|low-quality|medium-quality|high-quality|
ultra-quality}
Set graphic options from one of the presets. Allowed values are minimal-quality, low-quality, medium-quality, high-quality or ultra-quality.
Set a multiplier for the display aspect ratio. Default is 1.0.
Specify the bits per pixel.
Specify the path to the XML file (including this file) for multi-pass rendering. The path must be relative to the $FG_ROOT directory. By default Compositor/default is used, that is $FG_ROOT/Compositor/default.xml
--clouds
=[{true|false|1|0|yes|no}], --enable-clouds
, --disable-clouds
--clouds3d
=[{true|false|1|0|yes|no}], --enable-clouds3d
, --disable-clouds3d
Enable (default), disable 3D clouds. Very pretty, but depend on your graphics card supporting GLSL Shaders, which some older, or less powerful graphics cards do not.
--distance-attenuation
=[{true|false|1|0|yes|no}],
--enable-distance-attenuation
,
--disable-distance-attenuation
Enable or disable more realistic runway and approach light attenuation.
--fullscreen
=[{true|false|1|0|yes|no}],
--enable-fullscreen
,
--disable-fullscreen
Enable, disable (default) full screen mode.
--horizon-effect
=[{true|false|1|0|yes|no}],
--enable-horizon-effect
,
--disable-horizon-effect
Enable (default), disable celestial body growth illusion near the horizon.
--mouse-pointer
=[{true|false|1|0|yes|no}],
--enable-mouse-pointer
,
--disable-mouse-pointer
Enable, disable (default) extra mouse pointer. Useful in full screen mode for old Voodoo based cards.
--panel
=[{true|false|1|0|yes|no}], --enable-panel
, --disable-panel
--random-buildings
=[{true|false|1|0|yes|no}],
--enable-random-buildings
,
--disable-random-buildings
Enable, disable (default) random buildings. Note that random buildings take up a lot of memory.
--random-objects
=[{true|false|1|0|yes|no}],
--enable-random-objects
,
--disable-random-objects
Enable (default), disable random scenery objects.
--random-vegetation
=[{true|false|1|0|yes|no}],
--enable-random-vegetation
,
--disable-random-vegetation
Enable (default), disable random vegetation such as trees. Requires a graphics card that supports GLSL Shaders, which some older, or less powerful graphics cards do not.
--specular-highlight
=[{true|false|1|0|yes|no}], --enable-specular-highlight
,
--disable-specular-highlight
Enable (default), disable specular highlights.
--splash-screen
=[{true|false|1|0|yes|no}],
--enable-splash-screen
,
--disable-splash-screen
Enable (default), disable the simulator splash screen while loading the aircraft/scenery.
--wireframe
=[{true|false|1|0|yes|no}],
--enable-wireframe
,
--disable-wireframe
Enable, disable (default) display of wireframes. If you want to know what the world of FlightGear looks like internally, try this!
--fog-disable
, --fog-fastest
, --fog-nicest
Set the fog level. To cut down the rendering efforts, distant regions vanish in fog
by default. If you disable fog you’ll see farther, but your frame rates will drop.
Using --fog-fastest
will display a less realistic fog, by increase frame rate. Default
is --fog-nicest
.
Specify the materials file used to render the scenery.
Default: Materials/regions/materials.xml.
Defines the window resolution. E.g., --geometry
=1366x768.
Limit the maximum frame rate of the simulator to frequency Hz (frames per second).
--shading-smooth
, --shading-flat
Use smooth shading (default), or flat shading which is faster but less pretty.
Configure anisotropic texture filtering. Values are 1 (default), 2, 4, 8 or 16.
--view-offset
={LEFT|RIGHT|CENTER|own degrees}
Allows setting the default forward view direction as an offset from straight ahead. Possible values are LEFT (look left – 45°), RIGHT (look right – 315°), CENTER (look straight ahead – 0°), or a specific number of degrees. Useful for multi-window display.
--terrain-engine
={tilecache|pagedLOD}
Choose the terrain engine to use: tilecache is the “traditional” terrain engine
(recommended); pagedLOD is a new, experimental terrain engine designed to
minimize memory usage by loading more detailed versions of scenery objects on
demand.
The pagedLOD engine is available only if FlightGear was compiled with GDAL
support.
Set the level of detail levels, where levels is a space-separated list of numeric levels. This option is available only if the terrain engine in use is pagedLOD.
Set the terrain mesh resolution. This option is available only if the terrain engine in use is pagedLOD.
--lod-texturing
={bluemarble|raster|debug}
Set the terrain texture method. This option is available only if the terrain engine in use is pagedLOD.
Set the range multiplier (the breakpoint from a low to a high level of detail). This option is available only if the terrain engine in use is pagedLOD.
--texture-cache
=[{true|false|1|0|yes|no}],
--enable-texture-cache
,
--disable-texture-cache
,
--texture-cache-dir
=path
Enable, disable (default) the texture cache for fast loading.
Additionally, with --texture-cache-dir
you can indicate the folder where the cache
will be stored (the default is $FG_HOME/TextureCache).
--anti-alias-hud
=[{true|false|1|0|yes|no}],
--enable-anti-alias-hud
,
--disable-anti-alias-hud
Control whether the Head-Up Display (HUD) is shown anti-aliased.
--hud
=[{true|false|1|0|yes|no}], --enable-hud
, --disable-hud
Control whether the HUD is displayed. Defaults to disabled.
--hud-3d
=[{true|false|1|0|yes|no}], --enable-hud-3d
, --disable-hud-3d
Control whether the 3D HUD is displayed. Defaults to disabled.
Display the percentage of triangles culled, or the number of triangles rendered in the HUD. Mainly of interest to graphics developers.
--com1
=frequency, --com2
=frequency
Set the COM1/COM2 radio frequency.
--nav1
=[radial:]frequency, --nav2
=[radial:]frequency
Set the NAV1/NAV2 radio frequency and radial.
--adf1
=[radial:]frequency, --adf2
=[radial:]frequency
Set the ADF1/ADF2 frequency. You can optionally specify the rotation angle of its compass card by prefixing the frequency with the angle and a colon.
Set the DME to NAV1, NAV2, or a specific frequency and radial.
--failure
={electrical|pitot|static|vacuum}
Fail a specific aircraft system.
Valid systems are pitot, static, vacuum, electrical. Specify multiple times to
fail multiple systems.
--clock-freeze
=[{true|false|1|0|yes|no}],
--enable-clock-freeze
,
--disable-clock-freeze
Control whether time advances normally or is frozen.
--start-date-gmt
=yyyy:mm:dd:hh:mm:ss,
--start-date-lat
=yyyy:mm:dd:hh:mm:ss,
--start-date-sys
=yyyy:mm:dd:hh:mm:ss
Specify the exact startup time/date. The three functions differ in that they take either Greenwich Mean Time, the local time of your virtual flight, or your computer system’s local time as the reference point.
Incompatible with --time-match-local
, --time-match-real
.
--time-match-local
, --time-match-real
With --time-match-local
the simulator time is read from the system clock, and is
used as is. When your virtual flight is in the same timezone as where your computer
is located, this may be desirable, because the clocks are synchronized. However,
when you fly in a different part of the world, it may not be the case, because there
is a number of hours difference, between the position of your computer and the
position of your virtual flight.
The option --time-match-real
(default) takes care of this by computing the
timezone difference between your real world time zone and the position of your
virtual flight, and local clocks are synchronized.
Incompatible with:
--start-date-gmt
,
--start-date-lat
,
--start-date-sys
.
Specify a time offset relative to one of the time options above.
--timeofday
={real|dawn|morning|noon|afternoon|dusk|evening|midnight}
Set the time of day. Valid parameters are real, dawn, morning, noon, afternoon, dusk, evening, midnight.
--multiplay
={in|out},Hz,host,port, --callsign
=name
Set multiplay options and aircraft call-sign. See Section 6.1, Multiplayer.
Enable HTTP server or telnet server on the specified port to provide access to the property tree.
Enable screen shot HTTP server on the specified port. This option is deprecated.
Instead, use --httpd
, where screenshots will be available at http://{IP}:
{port}/screenshot, where {IP} is the IP number of the computer on which
FlightGear is running, {port} is the port number specified for --httpd
.
--proxy
=[user:password@]host:port
Specify a proxy server to use. Username and password are optional; if present, they should be given as MD5 hashes.
--fgcom
=[{true|false|1|0|yes|no}], --enable-fgcom
, --disable-fgcom
Enable, disable the FGCom (voice ATC) integration.
--hold-short
=[{true|false|1|0|yes|no}],
--enable-hold-short
,
--disable-hold-short
In multiplayer mode, when we choose the starting position on the runway, by
default we will be moved to the “hold short” position, The --disable-hold-short
option allows you to disable this behavior, but keep in mind that this is undesirable
as it may disrupt others taking off or landing.
--allow-nasal-from-sockets
=[{true|false|1|0|yes|no}],
--enable-allow-nasal-from-sockets
,
--disable-allow-nasal-from-sockets
Enable or disable allowing executing Nasal scripts from sockets. Enable means that network connections will have full access to the simulator, including running any Nasal scripts. Make sure you have adequate security (such as a firewall that is blocking external connections).
--sentry
=[{true|false|1|0|yes|no}], --enable-sentry
, --disable-sentry
Enable, disable crash and error reports to be sent to the development team for analysis. If enabled, data with crashes are sent to the Sentry.io platform.
Allows specifying a waypoint for the GC autopilot; it is possible to specify multiple waypoints (i.e. a route) via multiple instances of this command.
This is more comfortable if you have several waypoints. You can specify a file to read them from.
These options are provided for the advanced user.
More detailed descriptions of the various IO parameters can be found in the README.IO file within the Docs directory of your FlightGear installation.
Open connection using the Atlas protocol (used by Atlas and TerraSync).
Open connection using the ATC Sim protocol (atc610x).
Open connection to drive a Garmin 196/296 series GPS.
Open connection to drive a Garmin 400 series GPS.
Open connection for “A” channel using Garmin WAAS GPS protocol.
Open connection for “B” channel using Garmin WAAS GPS protocol.
Open connection using the FLARM protocol, which includes NMEA/GPS and traffic reporting messages.
--generic
=medium,direction,hz,options,…
Open connection using a general protocol for which a specific protocol is defined in the XML file contained in the directory: $FG_ROOT/Protocol. This way we can easily extend I/O protocols by adding our own definitions in XML files. For more details on how to use this protocol, see the $FG_ROOT/Docs/README.protocol file.
Open connection using the Garmin GPS protocol.
Open connection using the IGC (International Gliding Commission) protocol.
Example of use: fgfs --igc
=file,out,1,output-file.igc.
Open connection to an Agwagon joystick.
Open connection to a remote joystick.
Open connection using the FG native Controls protocol.
Open connection using the FG Native FDM protocol.
Open connection using the FG Native GUI protocol.
Open connection using the FG Native protocol.
Open connection using the NMEA protocol.
Open connection using the OpenGC protocol.
Open connection using the interactive property manager.
Open connection using the PVE protocol.
Open connection using the RayWoodworth motion chair protocol.
Open connection using the RUL protocol.
These options are provided for the advanced user.
--console
=[{true|false|1|0|yes|no}]
Enable or disable displaying a console window for simulator/aircraft debugging
purposes.
This option is recognized only on Microsoft Windows operating systems; on other
systems, debug messages are always printed to standard output/standard error.
--developer
=[{true|false|1|0|yes|no}],
--enable-developer
,
--disable-developer
Enable or disable developer mode which will log more events.
--fpe
=[{true|false|1|0|yes|no}], --enable-fpe
, --disable-fpe
Enable or disable aborting on a Floating Point Exception.
Instead of loading the entire simulator, load a lightweight OSG viewer with the object specified in filename. Useful for checking aircraft models.
--jsbsim-output-directive-file
=file
Log JSBSim properties in a CSV file. An output directives file contains an <output type="CSV"></output> element, within which should be specified the parameters or parameter groups that should be logged.
--json-report
=[{true|false|1|0|yes|no}]
Enable or disable printing a report in JSON format on the standard output. The report will give useful information for debugging purposes, such as the FlightGear version, the scenery/aircraft paths in use, the TerraSync and the data download directories and the paths to navigation data files.
--log-level
={bulk|debug|info|warn|alert}
Set the minimum logging level. Valid values are bulk, debug, info, warn, alert. Log messages having a severity greater than or equal to the specified value are recorded; the others are discarded.
--log-class
={none|terrain|astro|flight|input|gl|view|cockpit|general|math|event|aircraft|
autopilot|io|clipper|network|atc|nasal|instrumentation|systems|ai|environment|sound|
navaid|gui|terrasync|particles|headless|osg|undefined|all}
Log only events belonging to the specified log classes (all logs all events, none
logs none). Multiple classes can be specified by separating them with commas or
pipes, for example: --log-class
=ai,flight.
Save the logs file in the given directory. If dir is desktop, the logs are saved on the Desktop. This option may be given several times, using a different directory each time. Inside the specified directory, the log file will be named FlightGear_YYYY-MM-DD_num.log, where YYYY-MM-DD is the current date and num is a progressive number starting at 0.
Set property to value.
Example: --prop
:/engines/engine[0]/running=true starts the simulator with
running engines. Another example, which fills the Cessna for a short flight:
--aircraft
=c172p
--prop
:/consumables/fuel/tank[0]/level-gal_us=10
--prop
:/consumables/fuel/tank[1]/level-gal_us=10
You may optionally specify the property type (bool, double, float, int, long, string).
After starting the simulator, open the properties dialog immediately on the given property. If you need more dialogs, just add more browser indexes like browser[1], browser[2], etc., for example:
--prop:browser
=/sim/presets # browser[0] by default
--prop:browser
[1]=/devices/status/keyboard/event
which will open two dialogs with the given properties.
Trace the reads for a property; multiple instances are allowed.
Trace the writes for a property; multiple instances are allowed.
Remove $FG_HOME directory. For Windows, it additionally removes TerraSync,
Aircraft and TextureCache directories from download directory.
Could you imagine a pilot in his or her Cessna controlling the machine with a keyboard alone? For getting the proper feeling of flight you will need a joystick/yoke plus rudder pedals.
FlightGear has integrated joystick support, which automatically detects any joystick, yoke, or pedals attached. Simply plug in your joystick and start the simulator.
You can see how FlightGear has configured your joystick by selecting File → Joystick Configuration from the menu. This dialog shows the name of your joystick, and what each of the buttons and control axes have been set to. You can press a button or move the joystick to see exactly what control it maps to.
If you have a common joystick, there’s every chance that someone has already set up FlightGear specific configuration for it, and you can simply go and fly! If you wish to change the configuration of a particular button/axis, simply edit it using the Joystick Configuration dialog.
If your joystick is more unusual, then FlightGear will by default use a simple joystick configuration for it. To change the configuration, simply use the Joystick Configuration dialog to select what you wish each button or movement to do. The configuration takes effect immediately and will be saved for your next flight.