# ACMI Telemetry File Format

Tacview's universal public file format makes it is possible to easily export flight data from the simplest programming language. Written in plain UTF-8 text, the syntax is easy to read yet offers a very powerful way to set and change – in real-time – any property of any object on the battlefield. For instance, it is possible to change the coalition, the color, even the type of an object, on the fly. In the same way, you can easily assign and change global properties.

### Introduction to the format v2.2

Without further ado, let's start with the simplest file possible:

```
FileType=text/acmi/tacview
FileVersion=2.2
```

These are the only two mandatory lines you must put first in any ACMI file. This header tells Tacview which format to expect. Any following data is optional.

Let's add some more information:

```
FileType=text/acmi/tacview
FileVersion=2.2
0,ReferenceTime=2011-06-02T05:00:00Z
#47.13
3000102,T=41.6251307|41.5910417|2000.14,Name=C172
```

To better understand this structure, we need to know that – apart from its header – each line of the file can be either:

* The sharp sign # introducing a new time frame in seconds relative to ReferenceTime
* An object id (in this example 0 and 3000102) followed by as many properties as you want separated by commas ,. Each property will be assigned a new value using the equal sign =.
* The third possibility – not shown here – is a line which starts with the minus sign - followed by the id of an object we want to remove from the battlefield (could be destroyed or simply out of recording range).

Let's see in detail each line syntax:

```
0,ReferenceTime=2011-06-02T05:00:00Z
```

This line assigns the value `2011-06-02T05:00:00Z` to the property `ReferenceTime` of the global object always designated by its id zero `0`. In other words: This line defines the base/reference time used for the whole flight recording. To understand better what this means, let's have a look at the following line:

`#47.13`

This line defines a time-frame in seconds relative to `ReferenceTime`. In that case, this means that the following events or properties happened at `ReferenceTime + 47.13 seconds` ⇒ `2011-06-02T05:00:00Z + 47.13` ⇒ `2011-06-02T05:00:47.13Z`

Now let's see the following line:

```
3000102,T=41.6251307|41.5910417|2000.14,Name=C172
```

This line defines two properties for the object `3000102`. To save space, Object ids are expressed in [hexadecimal](https://en.wikipedia.org/wiki/Hexadecimal) without any prefix or leading zeros.

The first property `T` (which stands for Transform) is a special property used to define the object coordinates in space. We will see later which syntaxes are supported for `T`. For now, let's just focus on this case which is: `T = Longitude | Latitude | Altitude`.

Notice that `Latitude` and `Longitude` are expressed in degrees. Positive values are toward the north and east directions. Since the whole file is always in the metric system, the altitude is expressed in meters [MSL](https://en.wikipedia.org/wiki/Metres_above_sea_level) (above sea level, also known as ASL in some countries).

The following property `Name` obviously defines the object name `C172` which is a short way of designating a [Cessna 172](https://en.wikipedia.org/wiki/Cessna_172) aircraft.

Now that you know all the basics to create a flight recording, let's move our new aircraft a bit further to the east. To do so, we can simply add another frame to our file:

```
#49
3000102,T=41.626||
```

As you can see, we have defined a new longitude value `41.626` for our aircraft at the time frame `2011-06-02T05:00:49Z`.

You may have noticed that we don't need to specify – again – the aircraft name, simply because it has not changed since the last time! Another difference with the previous record is that we have omitted the latitude and altitude parameters because they did not change either. This helps to save a lot of space when generating data for long flights. While aircraft are usually quite mobile, this optimization is especially relevant for ground objects which can stay still or move just a little bit time to time...

### Detailed File Specifications

Now that you are starting to understand better how ACMI files are structured, let's review together the requirements and some tips related to the file format in general:

**Requirements**

* Text data must be written in UTF-8. That way, all languages are supported for text properties.
* All data are expressed in the metric system, using meters, meters per second for speed, degrees for angles, [UTC time](https://en.wikipedia.org/wiki/Coordinated_Universal_Time) and so on.
* Object ids are expressed using 64-bit hexadecimal numbers (without prefix or leading zeros to save space)
* The object `0` is used to define global properties (like `ReferenceTime` or `Briefing`)
* When you want to assign a text property which contains a comma , you must put the escape character `\` before it so it is not interpreted by Tacview as the end of your string.

```
Briefing=Here is a text value\, which contains an escaped comma in it!
```

**Tips**

* To save space, it is strongly suggested to end lines with the LF `\n` character only.
* It is cleaner to prefix text data with the UTF-8 [BOM](https://en.wikipedia.org/wiki/Byte_order_mark) header.
* The whole of the text data can be wrapped in a zip or 7z container to save bandwidth or disk space.
* Data can be presented out-of-order. Tacview will do its best to reorder it in memory.

### Object Coordinates

Now let's have a closer look at the different notations for object coordinates. To optimize the file size, Tacview offers four different notations.

Here are two examples: When exporting a bullet coordinate, we do not need any data about its rotation angles. The opposite example would be an aircraft in a flight simulator running in a flat world like Falcon 4.0: In that case, to get accurate replay, we should export the native position of the aircraft in the flat world, its rotation, and its coordinates in a spherical world. That way the aircraft will not only be properly displayed in Tacview's spherical world, but telemetry calculation will be done in the object's native coordinate system so the numbers visible on screen will match the ones you can see in the original flight simulator.

**Object Position Syntax #1**

`T = Longitude | Latitude | Altitude`

Simple objects in a spherical world (typically minor objects like bullets). Can also be relevant for low-end data source like GPX files without rotation information.

**Object Position Syntax #2**

`T = Longitude | Latitude | Altitude | U | V`

Simple objects from a flat world. U & V represent the native x and y. Do not forget to express them in meters even if the original coordinates are in feet for example. Altitude is not repeated because it is the same for both native and spherical worlds.

**Object Position Syntax #3**

`T = Longitude | Latitude | Altitude | Roll | Pitch | Yaw`

Complex objects in a spherical world. Roll is positive when rolling the aircraft to the right. Pitch is positive when taking off. Yaw is clockwise relative to true north.

**Object Position Syntax #4**

`T = Longitude | Latitude | Altitude | Roll | Pitch | Yaw | U | V | Heading`

Complex object from a flat world. Same as before. Heading is the yaw relative to the true north of the flat world. It is required because the native world north usually does not match spherical world north because of projection errors. |

Remember that you can omit the components which did not change since the last time. This will save a lot of space.

If some of the data is missing (for example object rotation), Tacview will do its best to emulate it in order to give a nice replay. Independently from optimization, you should keep the same data notation for each object during the object life. If at one point you use a different notation, Tacview will do its best to promote the object to a more complex one. However – because of the initial lack of data – the final result may not be the expected one.

### Global Properties

We already saw that one of the most important global properties is the `ReferenceTime`. Obviously, there are plenty of other meta-data you can inject in a flight recording to make your replay more detailed.

**Text Properties**

| Property Name   | Meaning                                                                                                                                                                                                                           |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `DataSource`    | <p>Source simulator, control station or file format.<br><code>DataSource=DCS 2.0.0.48763</code><br><code>DataSource=GPX File</code></p>                                                                                           |
| `DataRecorder`  | <p>Software or hardware used to record the data.<br><code>DataRecorder=Tacview 1.5</code><br><code>DataRecorder=Falcon 4.0</code></p>                                                                                             |
| `ReferenceTime` | <p>Base time (UTC) for the current mission. This time is combined with each frame offset (in seconds) to get the final absolute UTC time for each data sample.<br><code>ReferenceTime=2011-06-02T05:00:00Z</code></p>             |
| `RecordingTime` | <p>Recording (file) creation (UTC) time.<br><code>RecordingTime=2016-02-18T16:44:12Z</code></p>                                                                                                                                   |
| `Author`        | <p>Author or operator who has created this recording.<br><code>Author=Lt. Cmdr. Rick 'Jester' Heatherly</code></p>                                                                                                                |
| `Title`         | <p>Mission/flight title or designation.<br><code>Title=Counter Attack</code></p>                                                                                                                                                  |
| `Category`      | <p>Category of the flight/mission.<br><code>Category=Close air support</code></p>                                                                                                                                                 |
| `Briefing`      | <p>Free text containing the briefing of the flight/mission.<br><code>Briefing=Destroy all SCUD launchers</code></p>                                                                                                               |
| `Debriefing`    | <p>Free text containing the debriefing.<br><code>Debriefing=Managed to stay ahead of the airplane.</code></p>                                                                                                                     |
| `Comments`      | <p>Free comments about the flight. Do not forget to escape any end-of-line character you want to inject into the comments.<br><code>Comments=Part of the recording is missing because of technical difficulties.</code></p>       |
| `MapId`         | <p>A unique text identifier that designates the location where the mission takes place. This can be useful to automatically enable or disable terrain layers during debriefing.<br><code>MapId=NuclearOption.Heartland</code></p> |

**Numeric Properties**

| Property Name                                                            | Unit | Meaning                                                                                                                                                                                                                                                                      |
| ------------------------------------------------------------------------ | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p><code>ReferenceLongitude</code><br><code>ReferenceLatitude</code></p> | deg  | <p>These properties are used to reduce the file size by centering coordinates around a median point. They will be added to each object Longitude and Latitude to get the final coordinates.<br><code>ReferenceLongitude=-129</code><br><code>ReferenceLatitude=43</code></p> |

**Events**

Events can be used to inject any kind of text, bookmark and debug information into the flight recording. They are a bit special: They are declared like properties, but unlike properties, you can declare several events in the same frame without overriding the previous one.

Here is an example on how to inject events:

```
#8.62
0,Event=Message|3000100|Here is a generic event linked to the object 3000100
0,Event=Bookmark|Here is a bookmark to highlight a specific part of the mission!
#8.72
0,Event=Debug|Here is some debug text, visible only with the /Debug:on command line option
```

You may notice the structure of an event declaration:

```
Event = EventType | FirstObjectId | SecondObjectId | ... | EventText
```

For each event we must declare first the type of the event (e.g. `Bookmark`), optionally followed by ids of concerned objects. For example, when the user double click on the event, Tacview will use theses ids to automatically center the camera around associated objects. The last part is a mandatory text message. Even if it is possible to provide an empty text, it is suggested to provide a useful message to get the most out of your debriefings.

Here are the different kind of events currently supported by Tacview:

| Event Name  | Meaning                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |                                                    |                                                               |             |                        |              |                       |                         |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------- | ----------- | ---------------------- | ------------ | --------------------- | ----------------------- |
| `Message`   | <p>Generic event.<br><code>0,Event=Message                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 705                                                | Maverick has violated ATC directives</code></p>               |             |                        |              |                       |                         |
| `Bookmark`  | <p>Bookmarks are highlighted in the time line and in the event log. They are easy to spot and handy to highlight parts of the flight, like a bombing run, or when the trainee was in her final approach for landing.<br><code>0,Event=Bookmark                                                                                                                                                                                                                                                                                                                                                                                                | Starting precautionary landing practice</code></p> |                                                               |             |                        |              |                       |                         |
| `Debug`     | <p>Debug events are highlighted and easy to spot in the timeline and event log. Because they must be used for development purposes, they are displayed only when launching Tacview with the command line argument <code>/Debug:on</code><br><code>0,Event=Debug                                                                                                                                                                                                                                                                                                                                                                               | 327 active planes</code></p>                       |                                                               |             |                        |              |                       |                         |
| `LeftArea`  | <p>This event is useful to specify when an aircraft (or any object) is cleanly removed from the battlefield (not destroyed). This prevents Tacview from generating a <code>Destroyed</code> event by error.<br><code>0,Event=LeftArea                                                                                                                                                                                                                                                                                                                                                                                                         | 507                                                | </code></p>                                                   |             |                        |              |                       |                         |
| `Destroyed` | <p>When an object has been officially destroyed.<br><code>0,Event=Destroyed                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 6A56                                               | </code></p>                                                   |             |                        |              |                       |                         |
| `TakenOff`  | <p>Because Tacview may not always properly auto-detect take-off events, it can be useful to manually inject this event in the flight recording.<br><code>0,Event=TakenOff                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 2723                                               | Col. Sinclair has taken off from Camarillo Airport</code></p> |             |                        |              |                       |                         |
| `Landed`    | <p>Because Tacview may not always properly auto-detect landing events, it can be useful to manually inject this event in the flight recording.<br><code>0,Event=Landed                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 705                                                | Maverick has landed on the USS Ranger</code></p>              |             |                        |              |                       |                         |
| `Timeout`   | <p>Mainly used for real-life training debriefing to specify when a weapon (typically a missile) reaches or misses its target. Tacview will report in the shot log as well as in the 3D view the result of the shot. Most parameters are optional. <code>SourceId</code> designates the object which has fired the weapon, while <code>TargetId</code> designates the target. Even if the displayed result may be in nautical miles, bullseye coordinates must be specified in meters. The target must be explicitly (manually) destroyed or disabled using the appropriate properties independently from this event.<br><code>0,Event=Timeout | SourceId:507                                       | AmmoType:FOX2                                                 | AmmoCount:1 | Bullseye:50/15000/2500 | TargetId:201 | IntendedTarget:Leader | Outcome:Kill</code></p> |

### Object Properties

Object properties may be set and changed in real-time. Even if new properties may not always be visible in the 3D view, you can always have a look at the raw telemetry window to see what is the current value of each property for currently selected objects.

Tacview's [database](https://raia-software-inc.gitbook.io/tacview/customization/database) enables you to predefine any of the object properties except for Type and Name. For example, you can predefine the default shape of a F-16C in that database. If the `Shape` property value is not defined in the telemetry file, Tacview will use the value stored in the database and display your custom 3D model for the F-16C in the 3D view.

**Text Properties**

| Property Name                                                     | Meaning                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Name`                                                            | <p>The object name should use the most common notation for each object. It is strongly recommended to use <a href="https://www.icao.int/publications/doc-8643-aircraft-type-designators">ICAO</a> or <a href="https://en.wikipedia.org/wiki/NATO_reporting_name">NATO</a> names like: <code>C172</code> or <code>F/A-18C</code>. This will help Tacview to associate each object with the corresponding entry in its database. <code>Type</code> and <code>Name</code> are the only properties which <em>CANNOT</em> be predefined in the Tacview <a href="https://github.com/RaiaSoftwareInc/tacview.documentation/blob/main/customization.database.md">database</a>.<br><code>Name=F-16C-52</code></p> |
| `Type`                                                            | <p>Object types are built using tags. This makes object management much more powerful and transparent than with the previous exclusive types. (see below for the list of supported types). Type and Name are the only properties which <em>CANNOT</em> be predefined in Tacview <a href="https://github.com/RaiaSoftwareInc/tacview.documentation/blob/main/customization.database.md">database</a>.<br><code>Type=Air+FixedWing</code></p>                                                                                                                                                                                                                                                              |
| `AdditionalType`                                                  | <p>Any tags defined here will be added to the current object <code>Type</code>. This is useful to force an object type which has not been defined explicitly in the telemetry data. For example, you can use this property to automatically set the <code>FixedWing</code> tag for a Cessna 172 telemetry data which come from a Garmin csv file (which usually does not contain any type declaration). For obvious reasons, this property must be used only in Tacview database, <em>NOT</em> in telemetry files.<br><code>\<AdditionalType>Air+FixedWing\</AdditionalType></code></p>                                                                                                                  |
| `Parent`                                                          | <p>Parent hexadecimal object id. Useful to associate for example a missile (child object) and its launcher aircraft (parent object).<br><code>Parent=2D50A7</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `Next`                                                            | <p>Hexadecimal id of the following object. Typically used to link waypoints together.<br><code>Next=40F1</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `ShortName`                                                       | <p>This abbreviated name will be displayed in the 3D view and in any other cases with small space to display the object name. Typically defined in Tacview database. Should not be defined in telemetry data.<br><code>ShortName=A-10C</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `LongName`                                                        | <p>More detailed object name, used in small windows where there is more space than in a cluttered 3D view, but not enough space to display the full detailed name. For readability, it is suggested to start by the short name first (usually an abbreviation like the NATO code), followed by the object nickname / NATO name. Typically defined in Tacview database. Should not be defined in telemetry data.<br><code>LongName=A-10C Thunderbolt II</code></p>                                                                                                                                                                                                                                        |
| `FullName`                                                        | <p>The full object name which is typically displayed in windows and other logs wherever there is enough space to display a lot of data without clutter issues. Typically defined in Tacview database. Should not be defined in telemetry data.<br><code>FullName=Fairchild Republic A-10C Thunderbolt II</code></p>                                                                                                                                                                                                                                                                                                                                                                                      |
| `CallSign`                                                        | <p>The call sign will be displayed in priority over the object name and sometimes pilot name, especially in the 3D view and selection boxes. This is handy for mission debriefings where call signs are more informative than aircraft names.<br><code>CallSign=Jester</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `Registration`                                                    | <p>Aircraft registration (aka tail number)<br><code>Registration=N594EX</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `Squawk`                                                          | <p>Current transponder code. Any code is possible, there is no limitation like with the old 4 digit transponders.<br><code>Squawk=1200</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `ICAO24`                                                          | <p>Mode S equipped aircraft uniquely assigned ICAO 24-bit address.<br><code>ICAO24=A72EC8</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `Pilot`                                                           | <p>Aircraft pilot in command name.<br><code>Pilot=Iceman</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `Group`                                                           | <p>Group the object belongs to. Used to group objects together. For example, a formation of F-16 flying a CAP together.<br><code>Group=Springfield</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `Country`                                                         | <p>ISO 3166-1 alpha-2 country code.<br><code>Country=us</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `Coalition`                                                       | <p>Coalition<br><code>Coalition=Allies</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `Color`                                                           | <p>Can be one of the following: Red, Orange, Yellow (Tacview 1.8.8), Green, Cyan (Tacview 1.8.8), Blue, Violet. Colors are predefined to ensure a clear display of the whole battlefield in all conditions. Colors may also be <a href="../customization/colors">customized</a>.<br><code>Color=Blue</code></p>                                                                                                                                                                                                                                                                                                                                                                                          |
| `Shape`                                                           | <p>Filename of the 3D model which will be used to represent the object in the 3D view. See the <a href="https://github.com/RaiaSoftwareInc/tacview.documentation/blob/main/customization/3d-objects.md">3d objects documentation</a> for more information.<br><code>Shape=Rotorcraft.Bell 206.obj</code></p>                                                                                                                                                                                                                                                                                                                                                                                             |
| `Debug`                                                           | <p>Debug text visible in the 3D view when Tacview is launched with the /Debug:on command line argument.<br><code>Debug=ObjectHandle:0x237CB9</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `Label`                                                           | <p>Free real-time text displayable in the 3D view and telemetry windows (to provide miscellaneous info to the end-user)<br><code>Label=Lead aircraft</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `FocusedTarget`                                                   | <p>Target currently focused by the object (typically used to designate laser beam target object, can also be used to show what the pilot is currently focused on)<br><code>FocusedTarget=3001200</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| <p><code>LockedTarget</code> to<br><code>LockedTarget9</code></p> | <p>Primary target hexadecimal id (could be locked using any device, like radar, IR, NVG, ...)<br><code>LockedTarget2=3001200</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |

**Numeric Properties**

| Property Name                                                                                                   | Unit    | Meaning                                                                                                                                                                    |
| --------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Importance`                                                                                                    | ratio   | <p>The higher the ratio, the more important the object is (e.g. locally simulated aircraft could be 1.0).<br><code>Importance=1</code></p>                                 |
| `Slot`                                                                                                          | index   | <p>Plane position in its <code>Group</code> (the lowest is the leader).<br><code>Slot=0</code></p>                                                                         |
| `Disabled`                                                                                                      | boolean | <p>Specifies that an object is disabled (typically out-of-combat) without being destroyed yet. Useful for combat training and shot logs.<br><code>Disabled=1</code></p>    |
| `Visible`                                                                                                       | ratio   | <p>Hide/show object in 3D view. <code>1</code> = fully visible. <code>0</code> = invisible (may be omitted from object lists).<br><code>Visible=0.333</code></p>           |
| `Health`                                                                                                        | ratio   | <p>Current health status. <code>1.0</code> = brand new, <code>0.0</code> = destroyed/out of combat. Does not automatically trigger events.<br><code>Health=0.84</code></p> |
| `Length`                                                                                                        | m       | <p>Object length (useful for buildings).<br><code>Length=20.5</code></p>                                                                                                   |
| `Width`                                                                                                         | m       | <p>Object width (useful for buildings).<br><code>Width=10.27</code></p>                                                                                                    |
| `Height`                                                                                                        | m       | <p>Object height (useful for buildings).<br><code>Height=4</code></p>                                                                                                      |
| `Radius`                                                                                                        | m       | <p>Bounding sphere radius. Can define explosion/smoke radius. Can be animated.<br><code>Radius=82</code></p>                                                               |
| `IAS`                                                                                                           | m/s     | <p>Indicated airspeed.<br><code>IAS=69.4444</code></p>                                                                                                                     |
| `CAS`                                                                                                           | m/s     | <p>Calibrated airspeed.<br><code>CAS=250</code></p>                                                                                                                        |
| `TAS`                                                                                                           | m/s     | <p>True airspeed.<br><code>TAS=75</code></p>                                                                                                                               |
| `Mach`                                                                                                          | ratio   | <p>Mach number.<br><code>Mach=0.75</code></p>                                                                                                                              |
| `AltimeterSetting`                                                                                              | hPa     | <p>Current altimeter barometric setting.<br><code>AltimeterSetting=1013.2</code></p>                                                                                       |
| `OnGround`                                                                                                      | boolean | <p>Indicates aircraft ground contact.<br><code>OnGround=1</code></p>                                                                                                       |
| `AOA`                                                                                                           | deg     | <p>Angle of attack.<br><code>AOA=15.7</code></p>                                                                                                                           |
| `AOS`                                                                                                           | deg     | <p>Angle of sideslip.<br><code>AOS=5.2</code></p>                                                                                                                          |
| `AGL`                                                                                                           | m       | <p>Altitude above ground level.<br><code>AGL=1501.2</code></p>                                                                                                             |
| `HDG`                                                                                                           | deg     | <p>Aircraft heading (true). Used when roll/pitch unavailable.<br><code>HDG=185.3</code></p>                                                                                |
| `HDM`                                                                                                           | deg     | <p>Aircraft magnetic heading.<br><code>HDM=187.3</code></p>                                                                                                                |
| `Throttle` / `Throttle2`                                                                                        | ratio   | <p>Engine throttle handle position (can be >1 for afterburner).<br><code>Throttle=0.75</code></p>                                                                          |
| <p><code>EngineRPM</code><br><code>EngineRPM2</code></p>                                                        | RPM     | <p>Engine speed in revolutions per minute.<br><code>EngineRPM=1500</code></p>                                                                                              |
| `NR` / `NR2`                                                                                                    | ratio   | <p>Normalized rotor speed (0.0–1.1 typical).<br><code>NR=0.9</code></p>                                                                                                    |
| <p><code>RotorRPM</code><br><code>RotorRPM2</code></p>                                                          | RPM     | <p>Rotor rotation speed.<br><code>RotorRPM=320</code></p>                                                                                                                  |
| `Afterburner`                                                                                                   | ratio   | <p>Afterburner status.<br><code>Afterburner=1</code></p>                                                                                                                   |
| `AirBrakes`                                                                                                     | ratio   | <p>Air brakes status.<br><code>AirBrakes=0</code></p>                                                                                                                      |
| `Flaps`                                                                                                         | ratio   | <p>Flaps position.<br><code>Flaps=0.4</code></p>                                                                                                                           |
| `LandingGear`                                                                                                   | ratio   | <p>Landing gear status.<br><code>LandingGear=1</code></p>                                                                                                                  |
| `LandingGearHandle`                                                                                             | ratio   | <p>Landing gear handle position.<br><code>LandingGearHandle=0</code></p>                                                                                                   |
| `Tailhook`                                                                                                      | ratio   | <p>Arresting hook status.<br><code>Tailhook=1</code></p>                                                                                                                   |
| `Parachute`                                                                                                     | ratio   | <p>Parachute status (not DragChute).<br><code>Parachute=0</code></p>                                                                                                       |
| `DragChute`                                                                                                     | ratio   | <p>Drogue/drag chute status.<br><code>DragChute=1</code></p>                                                                                                               |
| `FuelWeight` to `FuelWeight9`                                                                                   | kg      | <p>Fuel quantity in tanks (up to 10).<br><code>FuelWeight4=8750</code></p>                                                                                                 |
| `FuelVolume` to `FuelVolume9`                                                                                   | l       | <p>Fuel volume in tanks (up to 10).<br><code>FuelVolume=75</code></p>                                                                                                      |
| `FuelFlowWeight` to `FuelFlowWeight8`                                                                           | kg/hour | <p>Fuel flow per engine (up to 8).<br><code>FuelFlowWeight2=38.08</code></p>                                                                                               |
| `FuelFlowVolume` to `FuelFlowVolume8`                                                                           | l/hour  | <p>Fuel flow per engine (up to 8).<br><code>FuelFlowVolume2=53.2</code></p>                                                                                                |
| `RadarMode`                                                                                                     | number  | <p>Radar mode (<code>0</code> = off).<br><code>RadarMode=1</code></p>                                                                                                      |
| `RadarAzimuth`                                                                                                  | deg     | <p>Radar azimuth relative to aircraft.<br><code>RadarAzimuth=-20</code></p>                                                                                                |
| `RadarElevation`                                                                                                | deg     | <p>Radar elevation relative to aircraft.<br><code>RadarElevation=15</code></p>                                                                                             |
| `RadarRoll`                                                                                                     | deg     | <p>Radar roll relative to aircraft.<br><code>RadarRoll=-45</code></p>                                                                                                      |
| `RadarRange`                                                                                                    | m       | <p>Radar scan range.<br><code>RadarRange=296320</code></p>                                                                                                                 |
| `RadarHorizontalBeamwidth`                                                                                      | deg     | <p>Radar azimuth beamwidth.<br><code>RadarHorizontalBeamwidth=40</code></p>                                                                                                |
| `RadarVerticalBeamwidth`                                                                                        | deg     | <p>Radar elevation beamwidth.<br><code>RadarVerticalBeamwidth=12</code></p>                                                                                                |
| `LockedTargetMode`                                                                                              | number  | <p>Primary lock mode (<code>0</code> = none).<br><code>LockedTargetMode=1</code></p>                                                                                       |
| `LockedTargetAzimuth`                                                                                           | deg     | <p>Primary target azimuth.<br><code>LockedTargetAzimuth=14.5</code></p>                                                                                                    |
| `LockedTargetElevation`                                                                                         | deg     | <p>Primary target elevation.<br><code>LockedTargetElevation=0.9</code></p>                                                                                                 |
| `LockedTargetRange`                                                                                             | m       | <p>Primary target distance.<br><code>LockedTargetRange=17303</code></p>                                                                                                    |
| `EngagementMode`                                                                                                | number  | <p>Enable/disable engagement range (<code>0</code> = off).<br><code>EngagementMode=1</code></p>                                                                            |
| `EngagementRange`                                                                                               | m       | <p>Engagement radius displayed in 3D view.<br><code>EngagementRange=2500</code></p>                                                                                        |
| `VerticalEngagementRange`                                                                                       | m       | <p>Optional vertical engagement range (ovoid bubble).<br><code>VerticalEngagementRange=1800</code></p>                                                                     |
| <p><code>RollControlInput</code><br><code>PitchControlInput</code><br><code>YawControlInput</code></p>          | ratio   | <p>Raw HOTAS/Yoke input.<br><code>PitchControlInput=0.41</code></p>                                                                                                        |
| <p><code>RollControlPosition</code><br><code>PitchControlPosition</code><br><code>YawControlPosition</code></p> | ratio   | <p>Simulated cockpit control position.<br><code>PitchControlPosition=0.3</code></p>                                                                                        |
| <p><code>RollTrimTab</code><br><code>PitchTrimTab</code><br><code>YawTrimTab</code></p>                         | ratio   | <p>Trim tab position.<br><code>PitchTrimTab=-0.15</code></p>                                                                                                               |
| <p><code>AileronLeft</code><br><code>AileronRight</code><br><code>Elevator</code><br><code>Rudder</code></p>    | ratio   | <p>Control surface positions.<br><code>Elevator=0.15</code></p>                                                                                                            |
| <p><code>LocalizerLateralDeviation</code><br><code>GlideslopeVerticalDeviation</code></p>                       | m       | <p>Distance from runway centerline/descent path (left/below negative).<br><code>GlideslopeVerticalDeviation=52</code></p>                                                  |
| <p><code>LocalizerAngularDeviation</code><br><code>GlideslopeAngularDeviation</code></p>                        | deg     | <p>Angular deviation from centerline/path.<br><code>LocalizerAngularDeviation=0.23</code></p>                                                                              |
| <p><code>PilotHeadRoll</code><br><code>PilotHeadPitch</code><br><code>PilotHeadYaw</code></p>                   | deg     | <p>Pilot head orientation.<br><code>PilotHeadPitch=12</code></p>                                                                                                           |
| <p><code>PilotEyeGazePitch</code><br><code>PilotEyeGazeYaw</code></p>                                           | deg     | <p>Eye orientation relative to head.<br><code>EyeGazePitch=-15</code></p>                                                                                                  |
| <p><code>VerticalGForce</code><br><code>LongitudinalGForce</code><br><code>LateralGForce</code></p>             | g       | <p>Acceleration in aircraft axes.<br><code>VerticalGForce=3.4</code></p>                                                                                                   |
| `QNH`                                                                                                           | hPa     | <p>Regional barometric setting for MSL altitude.<br><code>QNH=1013.25</code></p>                                                                                           |
| <p><code>WindDirection</code><br><code>WindPitch</code></p>                                                     | deg     | <p>Wind direction (true north) and pitch.<br><code>WindDirection=45</code></p>                                                                                             |
| `WindSpeed`                                                                                                     | m/s     | <p>Wind speed magnitude.<br><code>WindSpeed=12.5</code></p>                                                                                                                |
| `TriggerPressed`                                                                                                | boolean | <p>Weapon trigger state (<code>1.0</code> = fully pressed).<br><code>TriggerPressed=1</code></p>                                                                           |
| `ENL`                                                                                                           | ratio   | <p>Environmental Noise Level (0–1).<br><code>ENL=0.02</code></p>                                                                                                           |
| `HeartRate`                                                                                                     | number  | <p>Heart rate in BPM.<br><code>HeartRate=72</code></p>                                                                                                                     |
| `SpO2`                                                                                                          | ratio   | <p>Blood oxygen saturation percentage.<br><code>SpO2=0.95</code></p>                                                                                                       |

**Object Types (aka Tags)**

Object types are now defined using a free combination of tags. The more tags, the more accurately an object is defined. Tags are separated by the plus sign +. Here are some examples:

| Object Kind      | Type (Tags)                                 |
| ---------------- | ------------------------------------------- |
| Aircraft Carrier | `Type=Heavy+Sea+Watercraft+AircraftCarrier` |
| F-16C            | `Type=Medium+Air+FixedWing`                 |
| Bicycle          | `Type=Light+Ground+Vehicle`                 |
| AIM-120C         | `Type=Medium+Weapon+Missile`                |
| Waypoint         | `Type=Navaid+Static+Waypoint`               |

Here is the list of currently supported tags. Tacview will use them for display and analysis purposes.

| Use            | Tags                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Class          | <p><code>Air</code><br><code>Ground</code><br><code>Sea</code><br><code>Weapon</code><br><code>Sensor</code><br><code>Navaid</code><br><code>Misc</code></p>                                                                                                                                                                                                                                                                                               |
| Attributes     | <p><code>Static</code><br><code>Heavy</code><br><code>Medium</code><br><code>Light</code><br><code>Minor</code><br></p>                                                                                                                                                                                                                                                                                                                                    |
| Basic Types    | <p><code>FixedWing</code><br><code>Rotorcraft</code><br><code>Armor</code><br><code>AntiAircraft</code><br><code>Vehicle</code><br><code>Watercraft</code><br><code>Human</code><br><code>Biologic</code><br><code>Missile</code><br><code>Rocket</code><br><code>Bomb</code><br><code>Torpedo</code><br><code>Projectile</code><br><code>Beam</code><br><code>Decoy</code><br><code>Building</code><br><code>Bullseye</code><br><code>Waypoint</code></p> |
| Specific Types | <p><code>Tank</code><br><code>Warship</code><br><code>AircraftCarrier</code><br><code>Submarine</code><br><code>Infantry</code><br><code>Parachutist</code><br><code>Shell</code><br><code>Bullet</code><br><code>Grenade</code><br><code>Flare</code><br><code>Chaff</code><br><code>SmokeGrenade</code><br><code>Aerodrome</code><br><code>Container</code><br><code>Shrapnel</code><br><code>Explosion</code></p>                                       |

Here are the recommended common types (combination of tags) you should use to describe most of your objects for display in Tacview 1.x:

| Type             | Tags                                         |
| ---------------- | -------------------------------------------- |
| Plane            | `Air + FixedWing`                            |
| Helicopter       | `Air + Rotorcraft`                           |
| Anti-Aircraft    | `Ground + AntiAircraft`                      |
| Armor            | `Ground + Heavy + Armor + Vehicle`           |
| Tank             | `Ground + Heavy + Armor + Vehicle + Tank`    |
| Ground Vehicle   | `Ground + Vehicle`                           |
| Watercraft       | `Sea + Watercraft`                           |
| Warship          | `Sea + Watercraft + Warship`                 |
| Aircraft Carrier | `Sea + Watercraft + AircraftCarrier`         |
| Submarine        | `Sea + Watercraft + Submarine`               |
| Sonobuoy         | `Sea + Sensor`                               |
| Human            | `Ground + Light + Human`                     |
| Infantry         | `Ground + Light + Human + Infantry`          |
| Parachutist      | `Ground + Light + Human + Air + Parachutist` |
| Missile          | `Weapon + Missile`                           |
| Rocket           | `Weapon + Rocket`                            |
| Bomb             | `Weapon + Bomb`                              |
| Projectile       | `Weapon + Projectile`                        |
| Beam             | `Weapon + Beam`                              |
| Shell            | `Projectile + Shell`                         |
| Bullet           | `Projectile + Bullet`                        |
| Ballistic Shell  | `Projectile + Shell + Heavy`                 |
| Grenade          | `Projectile + Grenade`                       |
| Decoy            | `Misc + Decoy`                               |
| Flare            | `Misc + Decoy + Flare`                       |
| Chaff            | `Misc + Decoy + Chaff`                       |
| Smoke Grenade    | `Misc + Decoy + SmokeGrenade`                |
| Building         | `Ground + Static + Building`                 |
| Aerodrome        | `Ground + Static + Aerodrome`                |
| Bullseye         | `Navaid + Static + Bullseye`                 |
| Waypoint         | `Navaid + Static + Waypoint`                 |
| Container        | `Misc + Container`                           |
| Shrapnel         | `Misc + Shrapnel`                            |
| Minor Object     | `Misc + Minor`                               |
| Explosion        | `Misc + Explosion`                           |

### Comments

To help you during the debugging process of your exporter, it is possible to comment any line of the file by prefixing them with the double slash // like in C++.

```
// This line and the following are commented
// 3000102,T=41.6251307|41.5910417|2000.14,Name=C172
```

These lines will be ignored by Tacview when loading the file. Comments are not preserved. You will notice that they are discarded the next time you save the file from Tacview. If you want to include debug information which is preserved, you can use the dedicated `Debug` `Event` described earlier in the global properties.

Because of loading performance considerations, it is only possible to insert a comment at the beginning of a line.
