Multiplayer protocol: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
m (Robot: Cosmetic changes)
(38 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== The messages ==
{{Affected by HLA}}


All messages are composed of XDR encoded data. (see [http://www.faqs.org/rfcs/rfc1832.html RFC 1832] for a complete description of XDR). XDR basically means: All data is in network byte order and aligned to the nearest multiple of 4 bytes. Strings are encoded as a zero-terminated array of characters,aligned to the nearest multiple of 4 bytes. Floating point numbers (32 or 64 bit) must be encode in the IEEE standard.
The '''multiplayer protocol''' is the way FlightGear communicates between instances and the [[Howto:Multiplayer|multiplayer]] servers.


== The header ==
{{Caution|Since FlightGear 2020.3 the option to select protocols other than 2017.2 have been removed from the GUI and only Version 2 (2017.2) of the property encoding is currently supported, older versions are obsolete and may be removed at some point FlightGear 2020.3.}}
 
The multiplayer protocol uses XDR encoded messages that are sent via UDP. All messages are composed of XDR (eXternal Data Representation) encoded data as per RFC 1832.
 
XDR basically means that all data is in network byte order and aligned to the nearest multiple of 4 bytes. Strings are encoded in Pascal format (length followed by char(length)) and are not zero terminated. Floating point numbers (32 or 64 bit) must be encoded as per the IEEE standard.
 
For the record, strings are limited to 128 characters and packets are limited to 1200 bytes; these limits are hardcoded in fgfs and represent the commonly accepted transmission size of a UDP packet .<ref>{{cite web
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35059961/
  |title  =  <nowiki> Re: [Flightgear-devel] dual-control-tools and the limit on packet
size </nowiki>
  |author =  <nowiki> Ludovic Brenta </nowiki>
  |date  =  May 3rd, 2016
  |added  =  May 3rd, 2016
  |script_version = 0.36
  }}</ref>
 
== Future Development ==
{{FGCquote
|1= note that Stuarts HLA efforts might render the MP protocol obsolete sooner or later - I think that's finally on the horion.
|2= {{cite web
  | url    = http://forum.flightgear.org/viewtopic.php?p=268376#p268376
  | title  = <nowiki>Military simulation (from Su-15 Screenshots)</nowiki>
  | author = <nowiki>Thorsten</nowiki>
  | date  = Dec 13th, 2015
  | added  = Dec 13th, 2015
  | script_version = 0.23
  }}
}}
 
== 2017.3 Changes ==
 
New property /sim/multiplay/transmit-only-generics, when this is set only the position header, all of the sim/multiplay/generic/ and instrumentation/transponder/ are transmitted over MP. This is intended to allow models to use an alternative encoding (such as the Emesary PropertyNotification) to transmit a well known (to the model) list of properties packed into the generic properties.
 
The maximum size of a string was also increased to 768 bytes (from 128).
 
== 2017.2 Changes ==
The 2017.2 protocol allows for much better packing of strings, new types that are transmitted in 4bytes by transmitting
with short int (sometimes scaled) for the values (a lot of the properties that are transmitted will pack nicely into 16bits).
 
The 2017.2 protocol also allows for properties to be transmitted automatically as a different type and the encode/decode will
take this into consideration.
 
To allow for compatibility with older clients the pad magic is used to force older clients to call verifyProperties, which will result in an invalid result because the first property transmitted is made to ensure that this routine fails on earlier clients; causing the properties part of the packet to be discarded, the basic motion properties remain compatible, so the older client will see just the model, not chat, not animations etc.
 
The property transmission definition for 2017.2 has been reworked to take advantage of the more efficient packing options available.
 
A reduction of around 30% is achieved on a basic packet; with the new additional short int generics more properties can be transmitted in the remaining space than was previously possible.
 
The property /sim/multiplay/protocol-version (1 or 2) controls the protocol in use; 1 is compatible, 2 is 2017.2
 
The property /sim/multiplay/visibility-range-nm will be sent in the packet header - to allow the client to request larger visibility ranges from fgms. This has not been implemented in the fgms code.
 
== 2017.2 debugging aids ==
 
With 2017.2 there are some properties (for the developer) that allow debug of the multiplayer.
 
=== Visibility range ===
 
/sim/multiplay/visibility-range-nm controls the visibility range. This requires connect to a multiplayer server running FGMS servers 0.13.1 or later (see http://mpmap01.flightgear.org/mpstatus/). Maximum (server defined value) of 2000nm.
 
This value is set to 100nm on startup and changes aren't persisted.
 
For models that wish to change this value; e.g. radar range, the recommendation is to only increase over 100nm when the Radar Range is also greater than 100nm.
 
This property is designed to be controlled by the model, not the user; so take care to use wisely; for a realistic radar simulation this should be set to the radar range; however also setting below 20nm is not generally advised as it is a hard limit and will prevent any communication or visibility of models outside of this range.
 
=== Loopback ===
 
set /sim/multiplay/debug-level to 1 (bit 0) and your aircraft will be locally looped back (within the protocol) - thus aiding the development of multiplayer animations and general multiplayer debug.
 
=== Multiplay debug-level ===
 
* /sim/multiplay/debug-level bit 0 : direct loopback (see above). Need to be connected to a multiplayer server, but no extra packets are sent as the loopback is within the MP code.
* /sim/multiplay/debug-level bit 1 : trace (to the console at Network, Info) the properties being sent in the outgoing packet
* /sim/multiplay/debug-level bit 2 : hexdump (to the console at Network, Info) outgoing packets
* /sim/multiplay/debug-level bit 3 : trace (to the console at Network, Info) contents of incoming packets. Can result in a lot of debug.
 
=== Outgoing packet size ===
 
Property /sim/multiplay/last-xmit-packet-len contains the size (in bytes) of the last transmitted packet.
 
== Data types ==
{{Warning|if an aircraft defines all possible properties in the protocol, it tries to send 14988 bytes per packet, almost 12.5 times the allowed limit. Until the protocol is fixed to handle this it is the responsibility of the aircraft modeler to resolve '''Multiplayer packet truncated''' errors. <ref>{{cite web
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35441502/
  |title  =  <nowiki> Re: [Flightgear-devel] C172 MP alert on console </nowiki>
  |author =  <nowiki> Ludovic Brenta </nowiki>
  |date  =  Oct 21st, 2016
  |added  =  Oct 21st, 2016
  |script_version = 0.40
  }}</ref>
}}
 
{{Caution|Prior to V2017.2 all bytes in the <tt>STRING</tt> field are sent as '''4-byte ints''' (not in the header or the position message). So STR has length (LEN * 4) bytes and padding ((4 - LEN%4) * 4) bytes, if LEN%4 is not 0.}}
 
When running with 2017.2 there is a '''Transmit As''' mapping to allow more efficient usage of the limited space in the packet. This mapping is defined in the property map.
 
The data is XDR encoded in two different methods, compatible or 2017.2. This only affects the properties, with the impact that clients prior to 2017.2 will only be able to receive properties using compatible encoding, which can result in missing animations and no receipt of chat messages.
 
 
=== Compatible encoding ===
Prior to 2017.2 the following types are available.
 
{| class="wikitable"
! Type !! Size !! Remarks
|-
| int
| 4 bytes
| Send unconditionally
|-
| float
| 4 bytes
| Send unconditionally
|-
| bool
| 4 bytes
| Send unconditionally
|-
| string
| (LEN + STR + PAD) bytes
|
LEN: 4 bytes, length of the decoded string<br/>
STR: (LEN * 4) bytes, encoded string<br/>
PAD: (n * 4) bytes, padding<br/>
|}
 
=== 2017.2 encoding ===
 
All properties are transmitted unconditionally in each frame at the rate specified.
 
{| class="wikitable"
! Type !! Size !! Remarks
|-
| int
| 4 bytes
|-
| short int
| 2 bytes
|-
| float
| 4 bytes
|-
| Short_float_norm
| 2 bytes
| -1 .. 1 encoded into a short int
|-
| Short_float_1
| 2 bytes
| range -3276.7 .. 3276.7  float encoded into a short int (16 bit)
|-
| Short_float_2
| 2 bytes
| range -327.67 .. 327.67  float encoded into a short int (16 bit)
|-
| Short_float_3
| 2 bytes
| range -32.767 .. 32.767  float encoded into a short int (16 bit)
|-
| Short_float_4
| 2 bytes
| range -3.2767 .. 3.2767  float encoded into a short int (16 bit)
|-
| bool
| 4 bytes
|-
| string
| (ID:LEN) 4 bytes, LEN bytes follows
|
ID: 2 bytes
LEN: 2 bytes, length of the string<br/>
STR: char[LEN] bytes<br/>
|}
 
Also with 2017.2 the property ID for short int and strings is transmitted in 16bits.
 
== Messages ==
=== Messages header ===
The header is always 32 bytes long and contains the following fields in exactly that order:
The header is always 32 bytes long and contains the following fields in exactly that order:


|'''Magic'''|'''Version'''|'''MsgId'''|'''MsgLen'''|'''ReplyAddress'''|'''ReplyPort'''|'''Callsign'''|'''Data'''|
{| class="wikitable"
 
! Field !! Size !! Remarks
{| class="prettytable" border="1px" cellspacing="0" cellpadding="2"
|-
|Magic:
| Magic
|4 bytes, always 0x46474653 ("FGFS")
| 4 bytes
| Always 0x46474653 ("FGFS")
|-
|-
|Version:
| Version
|4 bytes, protocol version, currently 0x00010001 (1.1)
| 4 bytes
| Protocol version, currently 0x00010001 (1.1)
|-
|-
|MsgId:
| MsgId
|4 bytes, defines what data is appended to the header. Can be 0x00000001 for chat messages (deprecated) or<br />
| 4 bytes
0x00000007 for position data<br />all other values are outdated and ignored
| Defines what data is appended to the header. Can be 0x00000001 for chat messages (deprecated) or 0x00000007 for position data - all other values are outdated and ignored.
|-
|-
|MsgLen:
| MsgLen
|4 bytes, the lenght of the data in bytes
| 4 bytes
| Length of the data. {{Caution|This is '''not in bytes''', see the description of the STRING data type.}}
|-
|-
|ReplyAddress:
| RequestedRangeNm
|4 bytes, deprecated and ignored
| 4 bytes
| Requested visibility range in nm. The MP server can provide mp packets from any players within this range; but never over it.
|-
|-
|ReplyPort:
| ReplyPort
|4 bytes, deprecated and ignored
| 4 bytes
| Deprecated and ignored
|-
|-
|Callsign:
| Callsign
|8 bytes, zero terminated array of characters representing
| 8 bytes
the user callsign
| Zero terminated array of characters representing the user callsign
|}
|}


== Data of chat messages ==
=== Chat messages ===
The data for chat messages is a zero terminated array of characters. The MsgLen field in the header represents its length. The maximum length is defined to be 256 bytes.
The data for chat messages is a zero terminated array of characters. The MsgLen field in the header represents its length. The maximum length is defined to be 256 bytes.


== Data of position messages ==
=== Position messages ===
The data of position data is more complicated and looks like this:
The data of position message is more complicated and is composed of a two parts.  The first part contain information needed to place an aircraft model in the right position and orientation.  The second part contain property values used for animating the model, provided the user on the receiving end would have that aircraft installed.
{| class="prettytable" border="1px" cellspacing="0" cellpadding="2"
 
|ModelName
==== First part ====
|96 bytes, zero terminated array of characters representing the aircraft model used by the user
* Positions are in with respect to the Earth centered frame.
* Orientations are with respect to the X, Y and Z axis of the Earth centered frame, stored in the angle axis representation where the angle is coded into the axis length.
* Velocities are along the X, Y and Z directions of the Earth centered frame.
* Angular accelerations are in two parts of the three dimensional angular velocity vector with respect to the Earth centered frame measured in the Earth centered frame.
* Linear accelerations are in two parts of the three dimensional linear acceleration vector with respect to the Earth centered frame measured in the Earth centered frame.
 
The first part contain these fields in exactly that order:
{| class="wikitable"
! Field !! Size !! Remarks
|-
| ModelName
| 96 bytes
| Zero terminated array of characters representing the aircraft model (<code>/sim/model/path</code>) used by the user
|-
|-
|time
| time
|8 bytes, representing the time when this message was generated
| 8 bytes
| Representing the time when this message was generated double
|-
|-
|lag || 8 bytes, time offset for network lag
| lag
| 8 bytes
| Time offset for network lag double
|-
|-
|PosX || 8 bytes, XDR encoded double value, X-ccordinate of users<br />
| PosX
position wrt the earth centered frame
| 8 bytes
| XDR encoded double value, X-ccordinate of users position
|-
|-
|PosY || 8 bytes, XDR encoded double value, Y-ccordinate of users<br />
| PosY
position wrt the earth centered frame
| 8 bytes
| XDR encoded double value, Y-ccordinate of users position
|-
|-
|PosZ || 8 bytes, XDR encoded double value, z-ccordinate of users
| PosZ
position wrt the earth centered frame
| 8 bytes
| XDR encoded double value, z-ccordinate of users position
|-
|-
|OriX || 4 bytes, XDR encoded float value, X-orientation of the user wrt the earth centered frame, stored in the angle axis representation where the angle is coded into the axis length
| OriX
| 4 bytes
| XDR encoded float value, X-orientation of the user
|-
|-
|OriY || 4 bytes, XDR encoded float value, Y-orientation of the user wrt the earth centered frame, stored in the angle axis representation where the angle is coded into the axis length
| OriY
| 4 bytes
| XDR encoded float value, Y-orientation of the user
|-
|-
|OriZ || 4 bytes, XDR encoded float value, Z-orientation of the user wrt the earth centered frame, stored in the angle axis representation where the angle is coded into the axis length
| OriZ
| 4 bytes
| XDR encoded float value, Z-orientation of the user
|-
|-
|VelX || 4 bytes, XDR encoded float value, velocity of the user in X direction wrt the earth centered frame measured in the earth centered frame
| VelX
| 4 bytes
| XDR encoded float value, velocity of the user in X direction
|-
|-
|VelY || 4 bytes, XDR encoded float value, velocity of the user in Y direction wrt the earth centered frame measured in the earth centered frame
| VelY
| 4 bytes
| XDR encoded float value, velocity of the user in Y direction
|-
|-
|VelZ || 4 bytes, XDR encoded float value, velocity of the user in Z direction wrt the earth centered frame measured in the earth centered frame
|VelZ
| 4 bytes
| XDR encoded float value, velocity of the user in Z direction
|-
|-
|AV1 || 4 bytes, XDR encoded float value, 1. part of the three dimensional angular velocity vector<br />
| AV1
wrt the earth centered frame measured in the earth centered frame
| 4 bytes
| XDR encoded float value, 1. part of the three dimensional angular velocity vector
|-
|-
|AV2 || 4 bytes, XDR encoded float value, 2. part of the three dimensional angular velocity vector<br />
| AV2
wrt the earth centered frame measured in the earth centered frame
| 4 bytes
| XDR encoded float value, 2. part of the three dimensional angular velocity vector
|-
|-
|AV3 || 4 bytes, XDR encoded float value, 3. part of the three dimensional angular velocity vector<br />
| AV3
wrt the earth centered frame measured in the earth centered frame
| 4 bytes
| XDR encoded float value, 3. part of the three dimensional angular velocity vector
|-
|-
|LA1 || 4 bytes, XDR encoded float value, 1. part of the three dimensional linear accelaration vector<br />
| LA1
wrt the earth centered frame measured in the earth centered frame
| 4 bytes
| XDR encoded float value, 1. part of the three dimensional linear accelaration vector
|-
|-
|LA2 || 4 bytes, XDR encoded float value, 2. part of the three dimensional linear accelaration vector<br />
| LA2
wrt the earth centered frame measured in the earth centered frame
| 4 bytes
| XDR encoded float value, 2. part of the three dimensional linear accelaration vector
|-
|-
|LA3 || 4 bytes, XDR encoded float value, 3. part of the three dimensional linear accelaration vector<br />
| LA3
wrt the earth centered frame measured in the earth centered frame
| 4 bytes
| XDR encoded float value, 3. part of the three dimensional linear accelaration vector
|-
|-
|AA1 || 4 bytes, XDR encoded float value, 1. part of the three dimensional angular accelaration vector<br />
| AA1
wrt the earth centered frame measured in the earth centered frame
| 4 bytes
| XDR encoded float value, 1. part of the three dimensional angular accelaration vector
|-
|-
|AA2 || 4 bytes, XDR encoded float value, 2. part of the three dimensional angular accelaration vector<br />
| AA2
wrt the earth centered frame measured in the earth centered frame
| 4 bytes
| XDR encoded float value, 2. part of the three dimensional angular accelaration vector
|-
|-
|AA3 || 4 bytes, XDR encoded float value, 3. part of the three dimensional angular accelaration vector<br />
| AA3
wrt the earth centered frame measured in the earth centered frame
| 4 bytes
| XDR encoded float value, 3. part of the three dimensional angular accelaration vector
|-
|-
|pad || up to 8 bytes for padding the data to a multiple of 8 bytes
| pad
| up to 8 bytes
| For padding the data to a multiple of 8 bytes
|}
|}


This data is followed by '''property-values''', which are encoded in the form '''ID'''|'''Value'''
=== Properties transmitted over MP ===
The fields of the second part are '''property values''' encoded in the form '''ID'''|'''Value'''.
 
A subset of the following properties are transmitted in the order below. Properties marked as V1_1_2_PROP_ID will only be sent when the 2017.2 protocol (or later) is selected. '''Transmit As''' is also only relevant for 2017.2 or later.


The following properties are transmitted, but not necessarily all present and not in this order:
Although the MP protocol can transmit many different packets mostly a '''T_PositionMsg''' identified by MsgId of '''POS_DATA_ID (7)''' in the header. Refer to {{flightgear file|src/MultiPlayer/mpmessages.hxx|l=48}} for the PROTO_VER that is in use, currently this is ''0x00010001'' which is '''1.1'''
{| class="prettytable" border="1px" cellspacing="0" cellpadding="2"
 
!ID !! Property                                                     || Type(*)
The '''T_PositionMsg''' contains the standard MsgHdr, with position and motion information next and then a set of properties. Within the protocol ''1.1'' there is a secondary version that applies to the way that the properties are encoded, and this secondary version is either 1 or 2 (2017.2)
 
Version 1 of the properties can be read by all versions of FlightGear; however version 2 properties can only be read by FlightGear 2017.2 (or later). Version 1 of the property encoding is not covered here as it is obsolete and deprecated.
 
Version 2 (2017.2) includes new ways of encoding and decoding properties which are designed to save space in the transmitted buffer.
 
# ID Property ID (v1)
# Property String (v1)
# Type Property Type (v1)
# TransmitAs (v2) - this causes the property to be transmitted on the wire using the specified format on the wire but decoded back into the original format (sometimes with data loss).
# Protocol Ident - the minimum version of the protocol that is required to transmit a property. Does not apply to incoming properties - as these will be decoded correctly when received
# encode_for_transmit  - method that will convert from and to the packet for the value. This Allows specific conversion rules to be applied; such as conversion of a string to an integer for transmission.
# decode_received - decodes received data.
* NOTE: when using the encode/decode methods there should be both specified, however if the result of the encode is to transmit in a different property index the encode/decode will be on different elements in the property id list.
* You can see an example of the encode and decode methods with property ID 108 ''gear/launchbar/state'' which although it is a string in FlightGear it will be transmitted as a SHORT_INT based on the known values. When received the property 120 will act as an intermediary an set the decoded value into ''gear/launchbar/state'' as though it had been transmitted as a string.
 
Supported Transmission Types
 
{| class="wikitable"
! Encoding !! Description
|-
|TT_ASIS = 0||  transmit as defined in the property. This is the default||
|-
|TT_BOOL||NOT USED||
|-
|TT_INT||32bit integer||
|-
|TT_FLOAT||32bit floating point value||
|-
|TT_STRING||string (deprecated)||
|-
|TT_SHORTINT||16bit integer (lower 16 bits of 32bit int)||
|-
|TT_SHORT_FLOAT_NORM||  -1 .. 1 encoded into a short int (16 bit)||
|-
|TT_SHORT_FLOAT_1|| range -3276.7 .. 3276.7  float encoded into a short int (16 bit)||
|-
|TT_SHORT_FLOAT_2|| range -327.67 .. 327.67  float encoded into a short int (16 bit)||
|-
|TT_SHORT_FLOAT_3|| range -32.767 .. 32.767  float encoded into a short int (16 bit)||
|-
|TT_SHORT_FLOAT_4|| range -3.2767 .. 3.2767  float encoded into a short int (16 bit)||
|-
|TT_BOOLARRAY||31 boolean values mapped to a 32bit int||
|-
|TT_CHAR||NOT USED||
|-
|TT_NOSEND|| Do not send this property - probably the receive element for a custom encoded property||
|-
|}
 
=== Master property transmission list ===
 
The following table defines which properties can be transmitted with the position message, i.e. the normal MP use case (as of FG 2020.2).
 
{{Note|Only properties present in the property tree will be transmitted.}}
 
{| class="wikitable"
! ID!! Property!! Type!!Transmit As!! Protocol Ident
|-
||10||sim/multiplay/protocol-version||INT||TT_SHORTINT||V2_PROP_ID_PROTOCOL||
|-
||100||surface-positions/left-aileron-pos-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||101||surface-positions/right-aileron-pos-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||102||surface-positions/elevator-pos-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||103||surface-positions/rudder-pos-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||104||surface-positions/flap-pos-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||105||surface-positions/speedbrake-pos-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||106||gear/tailhook/position-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||107||gear/launchbar/position-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||108||gear/launchbar/state||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||109||gear/launchbar/holdback-position-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||110||canopy/position-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||111||surface-positions/wing-pos-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||112||surface-positions/wing-fold-pos-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||120||gear/launchbar/state-value||INT||TT_NOSEND||V1_1_2_PROP_ID||
|-
||200||gear/gear[0]/compression-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||201||gear/gear[0]/position-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||210||gear/gear[1]/compression-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||211||gear/gear[1]/position-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||220||gear/gear[2]/compression-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||221||gear/gear[2]/position-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||230||gear/gear[3]/compression-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||231||gear/gear[3]/position-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||240||gear/gear[4]/compression-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||241||gear/gear[4]/position-norm||FLOAT||TT_SHORT_FLOAT_NORM||V1_1_PROP_ID||
|-
||300||engines/engine[0]/n1||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||301||engines/engine[0]/n2||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||302||engines/engine[0]/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||310||engines/engine[1]/n1||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||311||engines/engine[1]/n2||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||312||engines/engine[1]/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||320||engines/engine[2]/n1||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||321||engines/engine[2]/n2||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||322||engines/engine[2]/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||330||engines/engine[3]/n1||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||331||engines/engine[3]/n2||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||332||engines/engine[3]/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||340||engines/engine[4]/n1||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||341||engines/engine[4]/n2||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||342||engines/engine[4]/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||350||engines/engine[5]/n1||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||351||engines/engine[5]/n2||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||352||engines/engine[5]/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||360||engines/engine[6]/n1||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||361||engines/engine[6]/n2||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||362||engines/engine[6]/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||370||engines/engine[7]/n1||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||371||engines/engine[7]/n2||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||372||engines/engine[7]/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||380||engines/engine[8]/n1||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||381||engines/engine[8]/n2||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||382||engines/engine[8]/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||390||engines/engine[9]/n1||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||391||engines/engine[9]/n2||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||392||engines/engine[9]/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||800||rotors/main/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||801||rotors/tail/rpm||FLOAT||TT_SHORT_FLOAT_1||V1_1_PROP_ID||
|-
||810||rotors/main/blade[0]/position-deg||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|100 || "surface-positions/left-aileron-pos-norm"                      || FLOAT
||811||rotors/main/blade[1]/position-deg||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|101 || "surface-positions/right-aileron-pos-norm"                    || FLOAT
||812||rotors/main/blade[2]/position-deg||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|102 || "surface-positions/elevator-pos-norm"                          || FLOAT
||813||rotors/main/blade[3]/position-deg||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|103 || "surface-positions/rudder-pos-norm"                          || FLOAT
||820||rotors/main/blade[0]/flap-deg||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|104 || "surface-positions/flap-pos-norm"                            || FLOAT
||821||rotors/main/blade[1]/flap-deg||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|105 || "surface-positions/speedbrake-pos-norm"                      || FLOAT
||822||rotors/main/blade[2]/flap-deg||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|106 || "gear/tailhook/position-norm"                                || FLOAT
||823||rotors/main/blade[3]/flap-deg||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|107 || "gear/launchbar/position-norm"                                || FLOAT
||830||rotors/tail/blade[0]/position-deg||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|108 || "gear/launchbar/state"                                        || STRING
||831||rotors/tail/blade[1]/position-deg||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|109 || "gear/launchbar/holdback-position-norm"                      || FLOAT
||900||sim/hitches/aerotow/tow/length||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|110 || "canopy/position-norm"                                        || FLOAT
||901||sim/hitches/aerotow/tow/elastic-constant||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|111  || "surface-positions/wing-pos-norm"                            || FLOAT
||902||sim/hitches/aerotow/tow/weight-per-m-kg-m||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|112  || "surface-positions/wing-fold-pos-norm"                        || FLOAT
||903||sim/hitches/aerotow/tow/dist||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|200  || "gear/gear[0]/compression-norm"                              || FLOAT
||904||sim/hitches/aerotow/tow/connected-to-property-node||BOOL||TT_ASIS||V1_1_PROP_ID||
|-
|-
|201  || "gear/gear[0]/position-norm"                                  || FLOAT
||905||sim/hitches/aerotow/tow/connected-to-ai-or-mp-callsign||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|210  || "gear/gear[1]/compression-norm"                              || FLOAT
||906||sim/hitches/aerotow/tow/brake-force||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|211  || "gear/gear[1]/position-norm"                                  || FLOAT
||907||sim/hitches/aerotow/tow/end-force-x||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|220  || "gear/gear[2]/compression-norm"                              || FLOAT
||908||sim/hitches/aerotow/tow/end-force-y||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|221  || "gear/gear[2]/position-norm"                                  || FLOAT
||909||sim/hitches/aerotow/tow/end-force-z||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|230  || "gear/gear[3]/compression-norm"                              || FLOAT
||930||sim/hitches/aerotow/is-slave||BOOL||TT_ASIS||V1_1_PROP_ID||
|-
|-
|231  || "gear/gear[3]/position-norm"                                  || FLOAT
||931||sim/hitches/aerotow/speed-in-tow-direction||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|240  || "gear/gear[4]/compression-norm"                              || FLOAT
||932||sim/hitches/aerotow/open||BOOL||TT_ASIS||V1_1_PROP_ID||
|-
|-
|241  || "gear/gear[4]/position-norm"                                  || FLOAT
||933||sim/hitches/aerotow/local-pos-x||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|300  || "engines/engine[0]/n1"                                        || FLOAT
||934||sim/hitches/aerotow/local-pos-y||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|301  || "engines/engine[0]/n2"                                        || FLOAT
||935||sim/hitches/aerotow/local-pos-z||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|302  || "engines/engine[0]/rpm"                                      || FLOAT
||1001||controls/flight/slats||FLOAT||TT_SHORT_FLOAT_4||V1_1_PROP_ID||
|-
|-
|310  || "engines/engine[1]/n1"                                        || FLOAT
||1002||controls/flight/speedbrake||FLOAT||TT_SHORT_FLOAT_4||V1_1_PROP_ID||
|-
|-
|311  || "engines/engine[1]/n2"                                        || FLOAT
||1003||controls/flight/spoilers||FLOAT||TT_SHORT_FLOAT_4||V1_1_PROP_ID||
|-
|-
|312  || "engines/engine[1]/rpm"                                      || FLOAT
||1004||controls/gear/gear-down||FLOAT||TT_SHORT_FLOAT_4||V1_1_PROP_ID||
|-
|-
|320  || "engines/engine[2]/n1"                                        || FLOAT
||1005||controls/lighting/nav-lights||FLOAT||TT_SHORT_FLOAT_3||V1_1_PROP_ID||
|-
|-
|321  || "engines/engine[2]/n2"                                        || FLOAT
||1006||controls/armament/station[0]/jettison-all||BOOL||TT_SHORTINT||V1_1_PROP_ID||
|-
|-
|322  || "engines/engine[2]/rpm"                                      || FLOAT
||1100||sim/model/variant||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|330  || "engines/engine[3]/n1"                                        || FLOAT
||1101||sim/model/livery/file||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|331  || "engines/engine[3]/n2"                                        || FLOAT
||1200||environment/wildfire/data||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|332  || "engines/engine[3]/rpm"                                      || FLOAT
||1201||environment/contrail||INT||TT_SHORTINT||V1_1_PROP_ID||
|-
|-
|340  || "engines/engine[4]/n1"                                        || FLOAT
||1300||tanker||INT||TT_SHORTINT||V1_1_PROP_ID||
|-
|-
|341  || "engines/engine[4]/n2"                                        || FLOAT
||1400||scenery/events||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|342  || "engines/engine[4]/rpm"                                      || FLOAT
||1500||instrumentation/transponder/transmitted-id||INT||TT_SHORTINT||V1_1_PROP_ID||
|-
|-
|350  || "engines/engine[5]/n1"                                        || FLOAT
||1501||instrumentation/transponder/altitude||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|351  || "engines/engine[5]/n2"                                        || FLOAT
||1502||instrumentation/transponder/ident||BOOL||TT_SHORTINT||V1_1_PROP_ID||
|-
|-
|352  || "engines/engine[5]/rpm"                                      || FLOAT
||1503||instrumentation/transponder/inputs/mode||INT||TT_SHORTINT||V1_1_PROP_ID||
|-
|-
|360  || "engines/engine[6]/n1"                                        || FLOAT
||1504||instrumentation/transponder/ground-bit||BOOL||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|361  || "engines/engine[6]/n2"                                        || FLOAT
||1505||instrumentation/transponder/airspeed-kt||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|362  || "engines/engine[6]/rpm"                                      || FLOAT
||10001||sim/multiplay/transmission-freq-hz||STRING||TT_NOSEND||V1_1_2_PROP_ID||
|-
|-
|370  || "engines/engine[7]/n1"                                        || FLOAT
||10002||sim/multiplay/chat||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|371  || "engines/engine[7]/n2"                                        || FLOAT
||10100||sim/multiplay/generic/string[0]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|372  || "engines/engine[7]/rpm"                                      || FLOAT
||10101||sim/multiplay/generic/string[1]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|380  || "engines/engine[8]/n1"                                        || FLOAT
||10102||sim/multiplay/generic/string[2]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|381  || "engines/engine[8]/n2"                                        || FLOAT
||10103||sim/multiplay/generic/string[3]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|382  || "engines/engine[8]/rpm"                                      || FLOAT
||10104||sim/multiplay/generic/string[4]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|390  || "engines/engine[9]/n1"                                        || FLOAT
||10105||sim/multiplay/generic/string[5]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|391  || "engines/engine[9]/n2"                                        || FLOAT
||10106||sim/multiplay/generic/string[6]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|392  || "engines/engine[9]/rpm"                                      || FLOAT
||10107||sim/multiplay/generic/string[7]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|800  || "rotors/main/rpm"                                            || FLOAT
||10108||sim/multiplay/generic/string[8]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|801  || "rotors/tail/rpm"                                            || FLOAT
||10109||sim/multiplay/generic/string[9]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|810  || "rotors/main/blade[0]/position-deg"                          || FLOAT
||10110||sim/multiplay/generic/string[10]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|811  || "rotors/main/blade[1]/position-deg"                          || FLOAT
||10111||sim/multiplay/generic/string[11]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|812  || "rotors/main/blade[2]/position-deg"                          || FLOAT
||10112||sim/multiplay/generic/string[12]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|813  || "rotors/main/blade[3]/position-deg"                          || FLOAT
||10113||sim/multiplay/generic/string[13]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|820  || "rotors/main/blade[0]/flap-deg"                              || FLOAT
||10114||sim/multiplay/generic/string[14]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|821  || "rotors/main/blade[1]/flap-deg"                              || FLOAT
||10115||sim/multiplay/generic/string[15]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|822  || "rotors/main/blade[2]/flap-deg"                              || FLOAT
||10116||sim/multiplay/generic/string[16]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|823  || "rotors/main/blade[3]/flap-deg"                              || FLOAT
||10117||sim/multiplay/generic/string[17]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|830  || "rotors/tail/blade[0]/position-deg"                          || FLOAT
||10118||sim/multiplay/generic/string[18]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|831  || "rotors/tail/blade[1]/position-deg"                          || FLOAT
||10119||sim/multiplay/generic/string[19]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
|-
|900  || "sim/hitches/aerotow/tow/length"                              || FLOAT
||10200||sim/multiplay/generic/float[0]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|901  || "sim/hitches/aerotow/tow/elastic-constant"                    || FLOAT
||10201||sim/multiplay/generic/float[1]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|902  || "sim/hitches/aerotow/tow/weight-per-m-kg-m"                  || FLOAT
||10202||sim/multiplay/generic/float[2]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|903  || "sim/hitches/aerotow/tow/dist"                                || FLOAT
||10203||sim/multiplay/generic/float[3]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|904  || "sim/hitches/aerotow/tow/connected-to-property-node"          || BOOL
||10204||sim/multiplay/generic/float[4]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|905  || "sim/hitches/aerotow/tow/connected-to-ai-or-mp-callsign"      || STRING
||10205||sim/multiplay/generic/float[5]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|906  || "sim/hitches/aerotow/tow/brake-force"                        || FLOAT
||10206||sim/multiplay/generic/float[6]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|907  || "sim/hitches/aerotow/tow/end-force-x"                        || FLOAT
||10207||sim/multiplay/generic/float[7]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|908  || "sim/hitches/aerotow/tow/end-force-y"                        || FLOAT
||10208||sim/multiplay/generic/float[8]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|909  || "sim/hitches/aerotow/tow/end-force-z"                        || FLOAT
||10209||sim/multiplay/generic/float[9]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|930  || "sim/hitches/aerotow/is-slave"                                || BOOL
||10210||sim/multiplay/generic/float[10]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|931  || "sim/hitches/aerotow/speed-in-tow-direction"                  || FLOAT
||10211||sim/multiplay/generic/float[11]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|932  || "sim/hitches/aerotow/open"                                    || BOOL
||10212||sim/multiplay/generic/float[12]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|933  || "sim/hitches/aerotow/local-pos-x"                            || FLOAT
||10213||sim/multiplay/generic/float[13]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|934  || "sim/hitches/aerotow/local-pos-y"                            || FLOAT
||10214||sim/multiplay/generic/float[14]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|935  || "sim/hitches/aerotow/local-pos-z"                            || FLOAT
||10215||sim/multiplay/generic/float[15]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|1001  || "controls/flight/slats"                                      || FLOAT
||10216||sim/multiplay/generic/float[16]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|1002  || "controls/flight/speedbrake"                                  || FLOAT
||10217||sim/multiplay/generic/float[17]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|1003  || "controls/flight/spoilers"                                    || FLOAT
||10218||sim/multiplay/generic/float[18]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|1004  || "controls/gear/gear-down"                                    || FLOAT
||10219||sim/multiplay/generic/float[19]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|1005  || "controls/lighting/nav-lights"                                || FLOAT
||10220||sim/multiplay/generic/float[20]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|1006  || "controls/armament/station[0]/jettison-all"                  || BOOL
||10221||sim/multiplay/generic/float[21]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|1100  || "sim/model/variant"                                          || INT
||10222||sim/multiplay/generic/float[22]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|1101  || "sim/model/livery/file"                                      || STRING
||10223||sim/multiplay/generic/float[23]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|1200  || "environment/wildfire/data"                                  || STRING
||10224||sim/multiplay/generic/float[24]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10001 || "sim/multiplay/transmission-freq-hz"                          || STRING
||10225||sim/multiplay/generic/float[25]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10002 || "sim/multiplay/chat"                                          || STRING
||10226||sim/multiplay/generic/float[26]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10100 || "sim/multiplay/generic/string[0]"                            || STRING
||10227||sim/multiplay/generic/float[27]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10101 || "sim/multiplay/generic/string[1]"                            || STRING
||10228||sim/multiplay/generic/float[28]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10102 || "sim/multiplay/generic/string[2]"                            || STRING
||10229||sim/multiplay/generic/float[29]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10103 || "sim/multiplay/generic/string[3]"                            || STRING
||10230||sim/multiplay/generic/float[30]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10104 || "sim/multiplay/generic/string[4]"                            || STRING
||10231||sim/multiplay/generic/float[31]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10105 || "sim/multiplay/generic/string[5]"                            || STRING
||10232||sim/multiplay/generic/float[32]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10106 || "sim/multiplay/generic/string[6]"                            || STRING
||10233||sim/multiplay/generic/float[33]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10107 || "sim/multiplay/generic/string[7]"                            || STRING
||10234||sim/multiplay/generic/float[34]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10108 || "sim/multiplay/generic/string[8]"                            || STRING
||10235||sim/multiplay/generic/float[35]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10109 || "sim/multiplay/generic/string[9]"                            || STRING
||10236||sim/multiplay/generic/float[36]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10110 || "sim/multiplay/generic/string[10]"                            || STRING
||10237||sim/multiplay/generic/float[37]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10111 || "sim/multiplay/generic/string[11]"                            || STRING
||10238||sim/multiplay/generic/float[38]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10112 || "sim/multiplay/generic/string[12]"                            || STRING
||10239||sim/multiplay/generic/float[39]||FLOAT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10113 || "sim/multiplay/generic/string[13]"                            || STRING
||10300||sim/multiplay/generic/int[0]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10114 || "sim/multiplay/generic/string[14]"                            || STRING
||10301||sim/multiplay/generic/int[1]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10115 || "sim/multiplay/generic/string[15]"                            || STRING
||10302||sim/multiplay/generic/int[2]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10116 || "sim/multiplay/generic/string[16]"                            || STRING
||10303||sim/multiplay/generic/int[3]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10117 || "sim/multiplay/generic/string[17]"                            || STRING
||10304||sim/multiplay/generic/int[4]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10118 || "sim/multiplay/generic/string[18]"                            || STRING
||10305||sim/multiplay/generic/int[5]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10119 || "sim/multiplay/generic/string[19]"                            || STRING
||10306||sim/multiplay/generic/int[6]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10200 || "sim/multiplay/generic/float[0]"                              || FLOAT
||10307||sim/multiplay/generic/int[7]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10201 || "sim/multiplay/generic/float[1]"                              || FLOAT
||10308||sim/multiplay/generic/int[8]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10202 || "sim/multiplay/generic/float[2]"                              || FLOAT
||10309||sim/multiplay/generic/int[9]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10203 || "sim/multiplay/generic/float[3]"                              || FLOAT
||10310||sim/multiplay/generic/int[10]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10204 || "sim/multiplay/generic/float[4]"                              || FLOAT
||10311||sim/multiplay/generic/int[11]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10205 || "sim/multiplay/generic/float[5]"                              || FLOAT
||10312||sim/multiplay/generic/int[12]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10206 || "sim/multiplay/generic/float[6]"                              || FLOAT
||10313||sim/multiplay/generic/int[13]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10207 || "sim/multiplay/generic/float[7]"                              || FLOAT
||10314||sim/multiplay/generic/int[14]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10208 || "sim/multiplay/generic/float[8]"                              || FLOAT
||10315||sim/multiplay/generic/int[15]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10209 || "sim/multiplay/generic/float[9]"                              || FLOAT
||10316||sim/multiplay/generic/int[16]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10210 || "sim/multiplay/generic/float[10]"                            || FLOAT
||10317||sim/multiplay/generic/int[17]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10211 || "sim/multiplay/generic/float[11]"                            || FLOAT
||10318||sim/multiplay/generic/int[18]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10212 || "sim/multiplay/generic/float[12]"                            || FLOAT
||10319||sim/multiplay/generic/int[19]||INT||TT_ASIS||V1_1_PROP_ID||
|-
|-
|10213 || "sim/multiplay/generic/float[13]"                            || FLOAT
||10500||sim/multiplay/generic/short[0]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10214 || "sim/multiplay/generic/float[14]"                            || FLOAT
||10501||sim/multiplay/generic/short[1]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10215 || "sim/multiplay/generic/float[15]"                            || FLOAT
||10502||sim/multiplay/generic/short[2]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10216 || "sim/multiplay/generic/float[16]"                            || FLOAT
||10503||sim/multiplay/generic/short[3]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10217 || "sim/multiplay/generic/float[17]"                            || FLOAT
||10504||sim/multiplay/generic/short[4]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10218 || "sim/multiplay/generic/float[18]"                            || FLOAT
||10505||sim/multiplay/generic/short[5]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10219 || "sim/multiplay/generic/float[19]"                            || FLOAT
||10506||sim/multiplay/generic/short[6]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10300 || "sim/multiplay/generic/int[0]"                                || INT
||10507||sim/multiplay/generic/short[7]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10301 || "sim/multiplay/generic/int[1]"                                || INT
||10508||sim/multiplay/generic/short[8]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10302 || "sim/multiplay/generic/int[2]"                                || INT
||10509||sim/multiplay/generic/short[9]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10303 || "sim/multiplay/generic/int[3]"                                || INT
||10510||sim/multiplay/generic/short[10]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10304 || "sim/multiplay/generic/int[4]"                                || INT
||10511||sim/multiplay/generic/short[11]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10305 || "sim/multiplay/generic/int[5]"                                || INT
||10512||sim/multiplay/generic/short[12]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10306 || "sim/multiplay/generic/int[6]"                                || INT
||10513||sim/multiplay/generic/short[13]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10307 || "sim/multiplay/generic/int[7]"                                || INT
||10514||sim/multiplay/generic/short[14]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10308 || "sim/multiplay/generic/int[8]"                                || INT
||10515||sim/multiplay/generic/short[15]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10309 || "sim/multiplay/generic/int[9]"                                || INT
||10516||sim/multiplay/generic/short[16]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10310 || "sim/multiplay/generic/int[10]"                              || INT
||10517||sim/multiplay/generic/short[17]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10311 || "sim/multiplay/generic/int[11]"                              || INT
||10518||sim/multiplay/generic/short[18]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10312 || "sim/multiplay/generic/int[12]"                              || INT
||10519||sim/multiplay/generic/short[19]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10313 || "sim/multiplay/generic/int[13]"                              || INT
||10520||sim/multiplay/generic/short[20]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10314 || "sim/multiplay/generic/int[14]"                              || INT
||10521||sim/multiplay/generic/short[21]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10315 || "sim/multiplay/generic/int[15]"                              || INT
||10522||sim/multiplay/generic/short[22]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10316 || "sim/multiplay/generic/int[16]"                              || INT
||10523||sim/multiplay/generic/short[23]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10317 || "sim/multiplay/generic/int[17]"                              || INT
||10524||sim/multiplay/generic/short[24]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10318 || "sim/multiplay/generic/int[18]"                              || INT
||10525||sim/multiplay/generic/short[25]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
|-
|10319 || "sim/multiplay/generic/int[19]"                              || INT
||10526||sim/multiplay/generic/short[26]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10527||sim/multiplay/generic/short[27]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10528||sim/multiplay/generic/short[28]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10529||sim/multiplay/generic/short[29]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10530||sim/multiplay/generic/short[30]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10531||sim/multiplay/generic/short[31]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10532||sim/multiplay/generic/short[32]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10533||sim/multiplay/generic/short[33]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10534||sim/multiplay/generic/short[34]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10535||sim/multiplay/generic/short[35]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10536||sim/multiplay/generic/short[36]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10537||sim/multiplay/generic/short[37]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10538||sim/multiplay/generic/short[38]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10539||sim/multiplay/generic/short[39]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10540||sim/multiplay/generic/short[40]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10541||sim/multiplay/generic/short[41]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10542||sim/multiplay/generic/short[42]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10543||sim/multiplay/generic/short[43]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10544||sim/multiplay/generic/short[44]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10545||sim/multiplay/generic/short[45]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10546||sim/multiplay/generic/short[46]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10547||sim/multiplay/generic/short[47]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10548||sim/multiplay/generic/short[48]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10549||sim/multiplay/generic/short[49]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10550||sim/multiplay/generic/short[50]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10551||sim/multiplay/generic/short[51]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10552||sim/multiplay/generic/short[52]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10553||sim/multiplay/generic/short[53]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10554||sim/multiplay/generic/short[54]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10555||sim/multiplay/generic/short[55]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10556||sim/multiplay/generic/short[56]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10557||sim/multiplay/generic/short[57]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10558||sim/multiplay/generic/short[58]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10559||sim/multiplay/generic/short[59]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10560||sim/multiplay/generic/short[60]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10561||sim/multiplay/generic/short[61]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10562||sim/multiplay/generic/short[62]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10563||sim/multiplay/generic/short[63]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10564||sim/multiplay/generic/short[64]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10565||sim/multiplay/generic/short[65]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10566||sim/multiplay/generic/short[66]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10567||sim/multiplay/generic/short[67]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10568||sim/multiplay/generic/short[68]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10569||sim/multiplay/generic/short[69]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10570||sim/multiplay/generic/short[70]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10571||sim/multiplay/generic/short[71]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10572||sim/multiplay/generic/short[72]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10573||sim/multiplay/generic/short[73]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10574||sim/multiplay/generic/short[74]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10575||sim/multiplay/generic/short[75]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10576||sim/multiplay/generic/short[76]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10577||sim/multiplay/generic/short[77]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10578||sim/multiplay/generic/short[78]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||10579||sim/multiplay/generic/short[79]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||11000||sim/multiplay/generic/bool[0]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11001||sim/multiplay/generic/bool[1]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11002||sim/multiplay/generic/bool[2]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11003||sim/multiplay/generic/bool[3]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11004||sim/multiplay/generic/bool[4]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11005||sim/multiplay/generic/bool[5]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11006||sim/multiplay/generic/bool[6]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11007||sim/multiplay/generic/bool[7]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11008||sim/multiplay/generic/bool[8]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11009||sim/multiplay/generic/bool[9]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11010||sim/multiplay/generic/bool[10]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11011||sim/multiplay/generic/bool[11]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11012||sim/multiplay/generic/bool[12]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11013||sim/multiplay/generic/bool[13]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11014||sim/multiplay/generic/bool[14]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11015||sim/multiplay/generic/bool[15]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11016||sim/multiplay/generic/bool[16]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11017||sim/multiplay/generic/bool[17]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11018||sim/multiplay/generic/bool[18]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11019||sim/multiplay/generic/bool[19]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11020||sim/multiplay/generic/bool[20]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11021||sim/multiplay/generic/bool[21]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11022||sim/multiplay/generic/bool[22]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11023||sim/multiplay/generic/bool[23]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11024||sim/multiplay/generic/bool[24]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11025||sim/multiplay/generic/bool[25]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11026||sim/multiplay/generic/bool[26]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11027||sim/multiplay/generic/bool[27]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11028||sim/multiplay/generic/bool[28]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11029||sim/multiplay/generic/bool[29]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11030||sim/multiplay/generic/bool[30]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11040||sim/multiplay/generic/bool[31]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11041||sim/multiplay/generic/bool[32]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11042||sim/multiplay/generic/bool[33]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11043||sim/multiplay/generic/bool[34]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11044||sim/multiplay/generic/bool[35]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11045||sim/multiplay/generic/bool[36]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11046||sim/multiplay/generic/bool[37]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11047||sim/multiplay/generic/bool[38]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11048||sim/multiplay/generic/bool[39]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11049||sim/multiplay/generic/bool[40]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11050||sim/multiplay/generic/bool[41]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11051||sim/multiplay/generic/bool[91]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11052||sim/multiplay/generic/bool[42]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11053||sim/multiplay/generic/bool[43]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11054||sim/multiplay/generic/bool[44]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11055||sim/multiplay/generic/bool[45]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11056||sim/multiplay/generic/bool[46]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11057||sim/multiplay/generic/bool[47]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11058||sim/multiplay/generic/bool[48]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11059||sim/multiplay/generic/bool[49]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11060||sim/multiplay/generic/bool[50]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11061||sim/multiplay/generic/bool[51]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11062||sim/multiplay/generic/bool[52]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11063||sim/multiplay/generic/bool[53]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11064||sim/multiplay/generic/bool[54]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11065||sim/multiplay/generic/bool[55]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11066||sim/multiplay/generic/bool[56]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11067||sim/multiplay/generic/bool[57]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11068||sim/multiplay/generic/bool[58]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11069||sim/multiplay/generic/bool[59]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11070||sim/multiplay/generic/bool[60]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11080||sim/multiplay/generic/bool[61]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11081||sim/multiplay/generic/bool[62]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11082||sim/multiplay/generic/bool[63]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11083||sim/multiplay/generic/bool[64]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11084||sim/multiplay/generic/bool[65]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11085||sim/multiplay/generic/bool[66]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11086||sim/multiplay/generic/bool[67]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11087||sim/multiplay/generic/bool[68]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11088||sim/multiplay/generic/bool[69]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11089||sim/multiplay/generic/bool[70]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11090||sim/multiplay/generic/bool[71]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11091||sim/multiplay/generic/bool[92]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11092||sim/multiplay/generic/bool[72]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11093||sim/multiplay/generic/bool[73]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11094||sim/multiplay/generic/bool[74]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11095||sim/multiplay/generic/bool[75]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11096||sim/multiplay/generic/bool[76]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11097||sim/multiplay/generic/bool[77]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11098||sim/multiplay/generic/bool[78]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11099||sim/multiplay/generic/bool[79]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11100||sim/multiplay/generic/bool[80]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11101||sim/multiplay/generic/bool[81]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11102||sim/multiplay/generic/bool[82]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11103||sim/multiplay/generic/bool[83]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11104||sim/multiplay/generic/bool[84]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11105||sim/multiplay/generic/bool[85]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11106||sim/multiplay/generic/bool[86]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11107||sim/multiplay/generic/bool[87]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11108||sim/multiplay/generic/bool[88]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11109||sim/multiplay/generic/bool[89]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11110||sim/multiplay/generic/bool[90]||BOOL||TT_BOOLARRAY||V1_1_2_PROP_ID||
|-
||11990||sim/multiplay/mp-clock-mode||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12000||sim/multiplay/emesary/bridge[0]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12001||sim/multiplay/emesary/bridge[1]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12002||sim/multiplay/emesary/bridge[2]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12003||sim/multiplay/emesary/bridge[3]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12004||sim/multiplay/emesary/bridge[4]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12005||sim/multiplay/emesary/bridge[5]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12006||sim/multiplay/emesary/bridge[6]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12007||sim/multiplay/emesary/bridge[7]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12008||sim/multiplay/emesary/bridge[8]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12009||sim/multiplay/emesary/bridge[9]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12010||sim/multiplay/emesary/bridge[10]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12011||sim/multiplay/emesary/bridge[11]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12012||sim/multiplay/emesary/bridge[12]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12013||sim/multiplay/emesary/bridge[13]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12014||sim/multiplay/emesary/bridge[14]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12015||sim/multiplay/emesary/bridge[15]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12016||sim/multiplay/emesary/bridge[16]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12017||sim/multiplay/emesary/bridge[17]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12018||sim/multiplay/emesary/bridge[18]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12019||sim/multiplay/emesary/bridge[19]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12020||sim/multiplay/emesary/bridge[20]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12021||sim/multiplay/emesary/bridge[21]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12022||sim/multiplay/emesary/bridge[22]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12023||sim/multiplay/emesary/bridge[23]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12024||sim/multiplay/emesary/bridge[24]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12025||sim/multiplay/emesary/bridge[25]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12026||sim/multiplay/emesary/bridge[26]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12027||sim/multiplay/emesary/bridge[27]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12028||sim/multiplay/emesary/bridge[28]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12029||sim/multiplay/emesary/bridge[29]||STRING||TT_ASIS||V1_1_2_PROP_ID||
|-
||12200||sim/multiplay/emesary/bridge-type[0]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12201||sim/multiplay/emesary/bridge-type[1]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12202||sim/multiplay/emesary/bridge-type[2]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12203||sim/multiplay/emesary/bridge-type[3]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12204||sim/multiplay/emesary/bridge-type[4]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12205||sim/multiplay/emesary/bridge-type[5]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12206||sim/multiplay/emesary/bridge-type[6]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12207||sim/multiplay/emesary/bridge-type[7]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12208||sim/multiplay/emesary/bridge-type[8]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12209||sim/multiplay/emesary/bridge-type[9]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12210||sim/multiplay/emesary/bridge-type[10]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12211||sim/multiplay/emesary/bridge-type[11]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12212||sim/multiplay/emesary/bridge-type[12]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12213||sim/multiplay/emesary/bridge-type[13]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12214||sim/multiplay/emesary/bridge-type[14]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12215||sim/multiplay/emesary/bridge-type[15]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12216||sim/multiplay/emesary/bridge-type[16]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12217||sim/multiplay/emesary/bridge-type[17]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12218||sim/multiplay/emesary/bridge-type[18]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12219||sim/multiplay/emesary/bridge-type[19]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12220||sim/multiplay/emesary/bridge-type[20]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12221||sim/multiplay/emesary/bridge-type[21]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12222||sim/multiplay/emesary/bridge-type[22]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12223||sim/multiplay/emesary/bridge-type[23]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12224||sim/multiplay/emesary/bridge-type[24]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12225||sim/multiplay/emesary/bridge-type[25]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12226||sim/multiplay/emesary/bridge-type[26]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12227||sim/multiplay/emesary/bridge-type[27]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12228||sim/multiplay/emesary/bridge-type[28]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||12229||sim/multiplay/emesary/bridge-type[29]||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||13000||sim/model/fallback-model-index||INT||TT_SHORTINT||V1_1_2_PROP_ID||
|-
||13001||sim/multiplay/comm-transmit-frequency-hz||INT||TT_INT||V1_1_2_PROP_ID||
|-
||13002||sim/multiplay/comm-transmit-power-norm||INT||TT_SHORT_FLOAT_NORM||V1_1_2_PROP_ID||
|}
|}




(*) The types are XDR encoded as follows:
{{Note|This table is is current for FlightGear 2020.3; but may have been changed. Refer to {{flightgear file|src/MultiPlayer/multiplaymgr.cxx|l=129}}.}}
 
{{Note|Properties related to the Emesary MP Bridge are separated to allow possible future improvements to the MP code to have better handling and therefore these string properties should not be used for anything else. The emesary/bridge-type is not currently used - however in the future it will be to identify a specific type of bridge and/or notification that are being used from a predefined set of bridge-types (not yet implemented).}}
 
== Related content ==
=== Wiki articles ===
* [[Aircraft properties reference]]
* [[Howto:Multiplayer]]
* [[Howto:Record, analyze and replay multiplayer flights with network tools]]
* [[Howto:Transmit properties over MP]]
* [[Howto:Using mp broadcast.nas]]
 
=== Forum topics ===
* [http://forum.flightgear.org/viewtopic.php?p=136501&sid=38acd29e73affe2a085eef43f0a184c9#p136501 Re: Development Help]
 
=== Source code ===
==== XDR handling ====
* {{flightgear file|src/MultiPlayer/tiny_xdr.hxx}}
* {{flightgear file|src/MultiPlayer/tiny_xdr.cxx}}


INT    4 bytes, send unconditionally
==== Message types ====
* {{flightgear file|src/MultiPlayer/mpmessages.hxx}}


FLOAT: 4 bytes, send unconditionally
==== Multiplayer system ====
* {{flightgear file|src/MultiPlayer/multiplaymgr.hxx}}
* {{flightgear file|src/MultiPlayer/multiplaymgr.cxx}}


  BOOL4 bytes, send unconditionally
== External links ==
* {{Wikipedia|External Data Representation}} (XDR)
* {{cite web
  | url            = https://tools.ietf.org/html/rfc1832
  | title          = RFC 1832 – XDR: External Data Representation Standard
| author          = R. Srinivasan
| date            = August 1995
| publisher      = Internet Engineering Task Force (IETF)
}}


STRING [LEN|STR|PAD]: send only when length > 0
[[Category:Multiplayer]]
LEN:    4 bytes, length of the string
STR:    n bytes, string string itself
PAD:    n bytes, padding so the overall length is a multiple of 4

Revision as of 13:33, 9 November 2020

Caution  Developer information:

Some, and possibly most, of the details below are likely to be affected, or even deprecated, by the ongoing work on implementing and improving HLA support in FlightGear. For recent updates, please refer to HLA Timeline.
Please see: High-Level Architecture for further information
To avoid conflicting efforts, you are advised not to start working on anything directly related to this without first coordinating your ideas with FlightGear core developers using the FlightGear developers mailing list. talk page..

The multiplayer protocol is the way FlightGear communicates between instances and the multiplayer servers.

Caution  Since FlightGear 2020.3 the option to select protocols other than 2017.2 have been removed from the GUI and only Version 2 (2017.2) of the property encoding is currently supported, older versions are obsolete and may be removed at some point FlightGear 2020.3.

The multiplayer protocol uses XDR encoded messages that are sent via UDP. All messages are composed of XDR (eXternal Data Representation) encoded data as per RFC 1832.

XDR basically means that all data is in network byte order and aligned to the nearest multiple of 4 bytes. Strings are encoded in Pascal format (length followed by char(length)) and are not zero terminated. Floating point numbers (32 or 64 bit) must be encoded as per the IEEE standard.

For the record, strings are limited to 128 characters and packets are limited to 1200 bytes; these limits are hardcoded in fgfs and represent the commonly accepted transmission size of a UDP packet .[1]

Future Development

Cquote1.png note that Stuarts HLA efforts might render the MP protocol obsolete sooner or later - I think that's finally on the horion.
— Thorsten (Dec 13th, 2015). Military simulation (from Su-15 Screenshots).
(powered by Instant-Cquotes)
Cquote2.png

2017.3 Changes

New property /sim/multiplay/transmit-only-generics, when this is set only the position header, all of the sim/multiplay/generic/ and instrumentation/transponder/ are transmitted over MP. This is intended to allow models to use an alternative encoding (such as the Emesary PropertyNotification) to transmit a well known (to the model) list of properties packed into the generic properties.

The maximum size of a string was also increased to 768 bytes (from 128).

2017.2 Changes

The 2017.2 protocol allows for much better packing of strings, new types that are transmitted in 4bytes by transmitting with short int (sometimes scaled) for the values (a lot of the properties that are transmitted will pack nicely into 16bits).

The 2017.2 protocol also allows for properties to be transmitted automatically as a different type and the encode/decode will take this into consideration.

To allow for compatibility with older clients the pad magic is used to force older clients to call verifyProperties, which will result in an invalid result because the first property transmitted is made to ensure that this routine fails on earlier clients; causing the properties part of the packet to be discarded, the basic motion properties remain compatible, so the older client will see just the model, not chat, not animations etc.

The property transmission definition for 2017.2 has been reworked to take advantage of the more efficient packing options available.

A reduction of around 30% is achieved on a basic packet; with the new additional short int generics more properties can be transmitted in the remaining space than was previously possible.

The property /sim/multiplay/protocol-version (1 or 2) controls the protocol in use; 1 is compatible, 2 is 2017.2

The property /sim/multiplay/visibility-range-nm will be sent in the packet header - to allow the client to request larger visibility ranges from fgms. This has not been implemented in the fgms code.

2017.2 debugging aids

With 2017.2 there are some properties (for the developer) that allow debug of the multiplayer.

Visibility range

/sim/multiplay/visibility-range-nm controls the visibility range. This requires connect to a multiplayer server running FGMS servers 0.13.1 or later (see http://mpmap01.flightgear.org/mpstatus/). Maximum (server defined value) of 2000nm.

This value is set to 100nm on startup and changes aren't persisted.

For models that wish to change this value; e.g. radar range, the recommendation is to only increase over 100nm when the Radar Range is also greater than 100nm.

This property is designed to be controlled by the model, not the user; so take care to use wisely; for a realistic radar simulation this should be set to the radar range; however also setting below 20nm is not generally advised as it is a hard limit and will prevent any communication or visibility of models outside of this range.

Loopback

set /sim/multiplay/debug-level to 1 (bit 0) and your aircraft will be locally looped back (within the protocol) - thus aiding the development of multiplayer animations and general multiplayer debug.

Multiplay debug-level

  • /sim/multiplay/debug-level bit 0 : direct loopback (see above). Need to be connected to a multiplayer server, but no extra packets are sent as the loopback is within the MP code.
  • /sim/multiplay/debug-level bit 1 : trace (to the console at Network, Info) the properties being sent in the outgoing packet
  • /sim/multiplay/debug-level bit 2 : hexdump (to the console at Network, Info) outgoing packets
  • /sim/multiplay/debug-level bit 3 : trace (to the console at Network, Info) contents of incoming packets. Can result in a lot of debug.

Outgoing packet size

Property /sim/multiplay/last-xmit-packet-len contains the size (in bytes) of the last transmitted packet.

Data types

Warning  if an aircraft defines all possible properties in the protocol, it tries to send 14988 bytes per packet, almost 12.5 times the allowed limit. Until the protocol is fixed to handle this it is the responsibility of the aircraft modeler to resolve Multiplayer packet truncated errors. [2]
Caution  Prior to V2017.2 all bytes in the STRING field are sent as 4-byte ints (not in the header or the position message). So STR has length (LEN * 4) bytes and padding ((4 - LEN%4) * 4) bytes, if LEN%4 is not 0.

When running with 2017.2 there is a Transmit As mapping to allow more efficient usage of the limited space in the packet. This mapping is defined in the property map.

The data is XDR encoded in two different methods, compatible or 2017.2. This only affects the properties, with the impact that clients prior to 2017.2 will only be able to receive properties using compatible encoding, which can result in missing animations and no receipt of chat messages.


Compatible encoding

Prior to 2017.2 the following types are available.

Type Size Remarks
int 4 bytes Send unconditionally
float 4 bytes Send unconditionally
bool 4 bytes Send unconditionally
string (LEN + STR + PAD) bytes

LEN: 4 bytes, length of the decoded string
STR: (LEN * 4) bytes, encoded string
PAD: (n * 4) bytes, padding

2017.2 encoding

All properties are transmitted unconditionally in each frame at the rate specified.

Type Size Remarks
int 4 bytes
short int 2 bytes
float 4 bytes
Short_float_norm 2 bytes -1 .. 1 encoded into a short int
Short_float_1 2 bytes range -3276.7 .. 3276.7 float encoded into a short int (16 bit)
Short_float_2 2 bytes range -327.67 .. 327.67 float encoded into a short int (16 bit)
Short_float_3 2 bytes range -32.767 .. 32.767 float encoded into a short int (16 bit)
Short_float_4 2 bytes range -3.2767 .. 3.2767 float encoded into a short int (16 bit)
bool 4 bytes
string (ID:LEN) 4 bytes, LEN bytes follows

ID: 2 bytes LEN: 2 bytes, length of the string
STR: char[LEN] bytes

Also with 2017.2 the property ID for short int and strings is transmitted in 16bits.

Messages

Messages header

The header is always 32 bytes long and contains the following fields in exactly that order:

Field Size Remarks
Magic 4 bytes Always 0x46474653 ("FGFS")
Version 4 bytes Protocol version, currently 0x00010001 (1.1)
MsgId 4 bytes Defines what data is appended to the header. Can be 0x00000001 for chat messages (deprecated) or 0x00000007 for position data - all other values are outdated and ignored.
MsgLen 4 bytes Length of the data.
Caution  This is not in bytes, see the description of the STRING data type.
RequestedRangeNm 4 bytes Requested visibility range in nm. The MP server can provide mp packets from any players within this range; but never over it.
ReplyPort 4 bytes Deprecated and ignored
Callsign 8 bytes Zero terminated array of characters representing the user callsign

Chat messages

The data for chat messages is a zero terminated array of characters. The MsgLen field in the header represents its length. The maximum length is defined to be 256 bytes.

Position messages

The data of position message is more complicated and is composed of a two parts. The first part contain information needed to place an aircraft model in the right position and orientation. The second part contain property values used for animating the model, provided the user on the receiving end would have that aircraft installed.

First part

  • Positions are in with respect to the Earth centered frame.
  • Orientations are with respect to the X, Y and Z axis of the Earth centered frame, stored in the angle axis representation where the angle is coded into the axis length.
  • Velocities are along the X, Y and Z directions of the Earth centered frame.
  • Angular accelerations are in two parts of the three dimensional angular velocity vector with respect to the Earth centered frame measured in the Earth centered frame.
  • Linear accelerations are in two parts of the three dimensional linear acceleration vector with respect to the Earth centered frame measured in the Earth centered frame.

The first part contain these fields in exactly that order:

Field Size Remarks
ModelName 96 bytes Zero terminated array of characters representing the aircraft model (/sim/model/path) used by the user
time 8 bytes Representing the time when this message was generated double
lag 8 bytes Time offset for network lag double
PosX 8 bytes XDR encoded double value, X-ccordinate of users position
PosY 8 bytes XDR encoded double value, Y-ccordinate of users position
PosZ 8 bytes XDR encoded double value, z-ccordinate of users position
OriX 4 bytes XDR encoded float value, X-orientation of the user
OriY 4 bytes XDR encoded float value, Y-orientation of the user
OriZ 4 bytes XDR encoded float value, Z-orientation of the user
VelX 4 bytes XDR encoded float value, velocity of the user in X direction
VelY 4 bytes XDR encoded float value, velocity of the user in Y direction
VelZ 4 bytes XDR encoded float value, velocity of the user in Z direction
AV1 4 bytes XDR encoded float value, 1. part of the three dimensional angular velocity vector
AV2 4 bytes XDR encoded float value, 2. part of the three dimensional angular velocity vector
AV3 4 bytes XDR encoded float value, 3. part of the three dimensional angular velocity vector
LA1 4 bytes XDR encoded float value, 1. part of the three dimensional linear accelaration vector
LA2 4 bytes XDR encoded float value, 2. part of the three dimensional linear accelaration vector
LA3 4 bytes XDR encoded float value, 3. part of the three dimensional linear accelaration vector
AA1 4 bytes XDR encoded float value, 1. part of the three dimensional angular accelaration vector
AA2 4 bytes XDR encoded float value, 2. part of the three dimensional angular accelaration vector
AA3 4 bytes XDR encoded float value, 3. part of the three dimensional angular accelaration vector
pad up to 8 bytes For padding the data to a multiple of 8 bytes

Properties transmitted over MP

The fields of the second part are property values encoded in the form ID|Value.

A subset of the following properties are transmitted in the order below. Properties marked as V1_1_2_PROP_ID will only be sent when the 2017.2 protocol (or later) is selected. Transmit As is also only relevant for 2017.2 or later.

Although the MP protocol can transmit many different packets mostly a T_PositionMsg identified by MsgId of POS_DATA_ID (7) in the header. Refer to flightgear/src/MultiPlayer/mpmessages.hxx (line 48) for the PROTO_VER that is in use, currently this is 0x00010001 which is 1.1

The T_PositionMsg contains the standard MsgHdr, with position and motion information next and then a set of properties. Within the protocol 1.1 there is a secondary version that applies to the way that the properties are encoded, and this secondary version is either 1 or 2 (2017.2)

Version 1 of the properties can be read by all versions of FlightGear; however version 2 properties can only be read by FlightGear 2017.2 (or later). Version 1 of the property encoding is not covered here as it is obsolete and deprecated.

Version 2 (2017.2) includes new ways of encoding and decoding properties which are designed to save space in the transmitted buffer.

  1. ID Property ID (v1)
  2. Property String (v1)
  3. Type Property Type (v1)
  4. TransmitAs (v2) - this causes the property to be transmitted on the wire using the specified format on the wire but decoded back into the original format (sometimes with data loss).
  5. Protocol Ident - the minimum version of the protocol that is required to transmit a property. Does not apply to incoming properties - as these will be decoded correctly when received
  6. encode_for_transmit - method that will convert from and to the packet for the value. This Allows specific conversion rules to be applied; such as conversion of a string to an integer for transmission.
  7. decode_received - decodes received data.
  • NOTE: when using the encode/decode methods there should be both specified, however if the result of the encode is to transmit in a different property index the encode/decode will be on different elements in the property id list.
  • You can see an example of the encode and decode methods with property ID 108 gear/launchbar/state which although it is a string in FlightGear it will be transmitted as a SHORT_INT based on the known values. When received the property 120 will act as an intermediary an set the decoded value into gear/launchbar/state as though it had been transmitted as a string.

Supported Transmission Types

Encoding Description
TT_ASIS = 0 transmit as defined in the property. This is the default
TT_BOOL NOT USED
TT_INT 32bit integer
TT_FLOAT 32bit floating point value
TT_STRING string (deprecated)
TT_SHORTINT 16bit integer (lower 16 bits of 32bit int)
TT_SHORT_FLOAT_NORM -1 .. 1 encoded into a short int (16 bit)
TT_SHORT_FLOAT_1 range -3276.7 .. 3276.7 float encoded into a short int (16 bit)
TT_SHORT_FLOAT_2 range -327.67 .. 327.67 float encoded into a short int (16 bit)
TT_SHORT_FLOAT_3 range -32.767 .. 32.767 float encoded into a short int (16 bit)
TT_SHORT_FLOAT_4 range -3.2767 .. 3.2767 float encoded into a short int (16 bit)
TT_BOOLARRAY 31 boolean values mapped to a 32bit int
TT_CHAR NOT USED
TT_NOSEND Do not send this property - probably the receive element for a custom encoded property

Master property transmission list

The following table defines which properties can be transmitted with the position message, i.e. the normal MP use case (as of FG 2020.2).

Note  Only properties present in the property tree will be transmitted.
ID Property Type Transmit As Protocol Ident
10 sim/multiplay/protocol-version INT TT_SHORTINT V2_PROP_ID_PROTOCOL
100 surface-positions/left-aileron-pos-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
101 surface-positions/right-aileron-pos-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
102 surface-positions/elevator-pos-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
103 surface-positions/rudder-pos-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
104 surface-positions/flap-pos-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
105 surface-positions/speedbrake-pos-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
106 gear/tailhook/position-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
107 gear/launchbar/position-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
108 gear/launchbar/state STRING TT_ASIS V1_1_2_PROP_ID
109 gear/launchbar/holdback-position-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
110 canopy/position-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
111 surface-positions/wing-pos-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
112 surface-positions/wing-fold-pos-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
120 gear/launchbar/state-value INT TT_NOSEND V1_1_2_PROP_ID
200 gear/gear[0]/compression-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
201 gear/gear[0]/position-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
210 gear/gear[1]/compression-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
211 gear/gear[1]/position-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
220 gear/gear[2]/compression-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
221 gear/gear[2]/position-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
230 gear/gear[3]/compression-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
231 gear/gear[3]/position-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
240 gear/gear[4]/compression-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
241 gear/gear[4]/position-norm FLOAT TT_SHORT_FLOAT_NORM V1_1_PROP_ID
300 engines/engine[0]/n1 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
301 engines/engine[0]/n2 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
302 engines/engine[0]/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
310 engines/engine[1]/n1 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
311 engines/engine[1]/n2 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
312 engines/engine[1]/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
320 engines/engine[2]/n1 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
321 engines/engine[2]/n2 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
322 engines/engine[2]/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
330 engines/engine[3]/n1 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
331 engines/engine[3]/n2 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
332 engines/engine[3]/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
340 engines/engine[4]/n1 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
341 engines/engine[4]/n2 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
342 engines/engine[4]/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
350 engines/engine[5]/n1 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
351 engines/engine[5]/n2 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
352 engines/engine[5]/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
360 engines/engine[6]/n1 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
361 engines/engine[6]/n2 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
362 engines/engine[6]/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
370 engines/engine[7]/n1 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
371 engines/engine[7]/n2 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
372 engines/engine[7]/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
380 engines/engine[8]/n1 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
381 engines/engine[8]/n2 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
382 engines/engine[8]/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
390 engines/engine[9]/n1 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
391 engines/engine[9]/n2 FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
392 engines/engine[9]/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
800 rotors/main/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
801 rotors/tail/rpm FLOAT TT_SHORT_FLOAT_1 V1_1_PROP_ID
810 rotors/main/blade[0]/position-deg FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
811 rotors/main/blade[1]/position-deg FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
812 rotors/main/blade[2]/position-deg FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
813 rotors/main/blade[3]/position-deg FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
820 rotors/main/blade[0]/flap-deg FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
821 rotors/main/blade[1]/flap-deg FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
822 rotors/main/blade[2]/flap-deg FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
823 rotors/main/blade[3]/flap-deg FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
830 rotors/tail/blade[0]/position-deg FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
831 rotors/tail/blade[1]/position-deg FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
900 sim/hitches/aerotow/tow/length FLOAT TT_ASIS V1_1_PROP_ID
901 sim/hitches/aerotow/tow/elastic-constant FLOAT TT_ASIS V1_1_PROP_ID
902 sim/hitches/aerotow/tow/weight-per-m-kg-m FLOAT TT_ASIS V1_1_PROP_ID
903 sim/hitches/aerotow/tow/dist FLOAT TT_ASIS V1_1_PROP_ID
904 sim/hitches/aerotow/tow/connected-to-property-node BOOL TT_ASIS V1_1_PROP_ID
905 sim/hitches/aerotow/tow/connected-to-ai-or-mp-callsign STRING TT_ASIS V1_1_2_PROP_ID
906 sim/hitches/aerotow/tow/brake-force FLOAT TT_ASIS V1_1_PROP_ID
907 sim/hitches/aerotow/tow/end-force-x FLOAT TT_ASIS V1_1_PROP_ID
908 sim/hitches/aerotow/tow/end-force-y FLOAT TT_ASIS V1_1_PROP_ID
909 sim/hitches/aerotow/tow/end-force-z FLOAT TT_ASIS V1_1_PROP_ID
930 sim/hitches/aerotow/is-slave BOOL TT_ASIS V1_1_PROP_ID
931 sim/hitches/aerotow/speed-in-tow-direction FLOAT TT_ASIS V1_1_PROP_ID
932 sim/hitches/aerotow/open BOOL TT_ASIS V1_1_PROP_ID
933 sim/hitches/aerotow/local-pos-x FLOAT TT_ASIS V1_1_PROP_ID
934 sim/hitches/aerotow/local-pos-y FLOAT TT_ASIS V1_1_PROP_ID
935 sim/hitches/aerotow/local-pos-z FLOAT TT_ASIS V1_1_PROP_ID
1001 controls/flight/slats FLOAT TT_SHORT_FLOAT_4 V1_1_PROP_ID
1002 controls/flight/speedbrake FLOAT TT_SHORT_FLOAT_4 V1_1_PROP_ID
1003 controls/flight/spoilers FLOAT TT_SHORT_FLOAT_4 V1_1_PROP_ID
1004 controls/gear/gear-down FLOAT TT_SHORT_FLOAT_4 V1_1_PROP_ID
1005 controls/lighting/nav-lights FLOAT TT_SHORT_FLOAT_3 V1_1_PROP_ID
1006 controls/armament/station[0]/jettison-all BOOL TT_SHORTINT V1_1_PROP_ID
1100 sim/model/variant INT TT_ASIS V1_1_PROP_ID
1101 sim/model/livery/file STRING TT_ASIS V1_1_2_PROP_ID
1200 environment/wildfire/data STRING TT_ASIS V1_1_2_PROP_ID
1201 environment/contrail INT TT_SHORTINT V1_1_PROP_ID
1300 tanker INT TT_SHORTINT V1_1_PROP_ID
1400 scenery/events STRING TT_ASIS V1_1_2_PROP_ID
1500 instrumentation/transponder/transmitted-id INT TT_SHORTINT V1_1_PROP_ID
1501 instrumentation/transponder/altitude INT TT_ASIS V1_1_PROP_ID
1502 instrumentation/transponder/ident BOOL TT_SHORTINT V1_1_PROP_ID
1503 instrumentation/transponder/inputs/mode INT TT_SHORTINT V1_1_PROP_ID
1504 instrumentation/transponder/ground-bit BOOL TT_SHORTINT V1_1_2_PROP_ID
1505 instrumentation/transponder/airspeed-kt INT TT_SHORTINT V1_1_2_PROP_ID
10001 sim/multiplay/transmission-freq-hz STRING TT_NOSEND V1_1_2_PROP_ID
10002 sim/multiplay/chat STRING TT_ASIS V1_1_2_PROP_ID
10100 sim/multiplay/generic/string[0] STRING TT_ASIS V1_1_2_PROP_ID
10101 sim/multiplay/generic/string[1] STRING TT_ASIS V1_1_2_PROP_ID
10102 sim/multiplay/generic/string[2] STRING TT_ASIS V1_1_2_PROP_ID
10103 sim/multiplay/generic/string[3] STRING TT_ASIS V1_1_2_PROP_ID
10104 sim/multiplay/generic/string[4] STRING TT_ASIS V1_1_2_PROP_ID
10105 sim/multiplay/generic/string[5] STRING TT_ASIS V1_1_2_PROP_ID
10106 sim/multiplay/generic/string[6] STRING TT_ASIS V1_1_2_PROP_ID
10107 sim/multiplay/generic/string[7] STRING TT_ASIS V1_1_2_PROP_ID
10108 sim/multiplay/generic/string[8] STRING TT_ASIS V1_1_2_PROP_ID
10109 sim/multiplay/generic/string[9] STRING TT_ASIS V1_1_2_PROP_ID
10110 sim/multiplay/generic/string[10] STRING TT_ASIS V1_1_2_PROP_ID
10111 sim/multiplay/generic/string[11] STRING TT_ASIS V1_1_2_PROP_ID
10112 sim/multiplay/generic/string[12] STRING TT_ASIS V1_1_2_PROP_ID
10113 sim/multiplay/generic/string[13] STRING TT_ASIS V1_1_2_PROP_ID
10114 sim/multiplay/generic/string[14] STRING TT_ASIS V1_1_2_PROP_ID
10115 sim/multiplay/generic/string[15] STRING TT_ASIS V1_1_2_PROP_ID
10116 sim/multiplay/generic/string[16] STRING TT_ASIS V1_1_2_PROP_ID
10117 sim/multiplay/generic/string[17] STRING TT_ASIS V1_1_2_PROP_ID
10118 sim/multiplay/generic/string[18] STRING TT_ASIS V1_1_2_PROP_ID
10119 sim/multiplay/generic/string[19] STRING TT_ASIS V1_1_2_PROP_ID
10200 sim/multiplay/generic/float[0] FLOAT TT_ASIS V1_1_PROP_ID
10201 sim/multiplay/generic/float[1] FLOAT TT_ASIS V1_1_PROP_ID
10202 sim/multiplay/generic/float[2] FLOAT TT_ASIS V1_1_PROP_ID
10203 sim/multiplay/generic/float[3] FLOAT TT_ASIS V1_1_PROP_ID
10204 sim/multiplay/generic/float[4] FLOAT TT_ASIS V1_1_PROP_ID
10205 sim/multiplay/generic/float[5] FLOAT TT_ASIS V1_1_PROP_ID
10206 sim/multiplay/generic/float[6] FLOAT TT_ASIS V1_1_PROP_ID
10207 sim/multiplay/generic/float[7] FLOAT TT_ASIS V1_1_PROP_ID
10208 sim/multiplay/generic/float[8] FLOAT TT_ASIS V1_1_PROP_ID
10209 sim/multiplay/generic/float[9] FLOAT TT_ASIS V1_1_PROP_ID
10210 sim/multiplay/generic/float[10] FLOAT TT_ASIS V1_1_PROP_ID
10211 sim/multiplay/generic/float[11] FLOAT TT_ASIS V1_1_PROP_ID
10212 sim/multiplay/generic/float[12] FLOAT TT_ASIS V1_1_PROP_ID
10213 sim/multiplay/generic/float[13] FLOAT TT_ASIS V1_1_PROP_ID
10214 sim/multiplay/generic/float[14] FLOAT TT_ASIS V1_1_PROP_ID
10215 sim/multiplay/generic/float[15] FLOAT TT_ASIS V1_1_PROP_ID
10216 sim/multiplay/generic/float[16] FLOAT TT_ASIS V1_1_PROP_ID
10217 sim/multiplay/generic/float[17] FLOAT TT_ASIS V1_1_PROP_ID
10218 sim/multiplay/generic/float[18] FLOAT TT_ASIS V1_1_PROP_ID
10219 sim/multiplay/generic/float[19] FLOAT TT_ASIS V1_1_PROP_ID
10220 sim/multiplay/generic/float[20] FLOAT TT_ASIS V1_1_PROP_ID
10221 sim/multiplay/generic/float[21] FLOAT TT_ASIS V1_1_PROP_ID
10222 sim/multiplay/generic/float[22] FLOAT TT_ASIS V1_1_PROP_ID
10223 sim/multiplay/generic/float[23] FLOAT TT_ASIS V1_1_PROP_ID
10224 sim/multiplay/generic/float[24] FLOAT TT_ASIS V1_1_PROP_ID
10225 sim/multiplay/generic/float[25] FLOAT TT_ASIS V1_1_PROP_ID
10226 sim/multiplay/generic/float[26] FLOAT TT_ASIS V1_1_PROP_ID
10227 sim/multiplay/generic/float[27] FLOAT TT_ASIS V1_1_PROP_ID
10228 sim/multiplay/generic/float[28] FLOAT TT_ASIS V1_1_PROP_ID
10229 sim/multiplay/generic/float[29] FLOAT TT_ASIS V1_1_PROP_ID
10230 sim/multiplay/generic/float[30] FLOAT TT_ASIS V1_1_PROP_ID
10231 sim/multiplay/generic/float[31] FLOAT TT_ASIS V1_1_PROP_ID
10232 sim/multiplay/generic/float[32] FLOAT TT_ASIS V1_1_PROP_ID
10233 sim/multiplay/generic/float[33] FLOAT TT_ASIS V1_1_PROP_ID
10234 sim/multiplay/generic/float[34] FLOAT TT_ASIS V1_1_PROP_ID
10235 sim/multiplay/generic/float[35] FLOAT TT_ASIS V1_1_PROP_ID
10236 sim/multiplay/generic/float[36] FLOAT TT_ASIS V1_1_PROP_ID
10237 sim/multiplay/generic/float[37] FLOAT TT_ASIS V1_1_PROP_ID
10238 sim/multiplay/generic/float[38] FLOAT TT_ASIS V1_1_PROP_ID
10239 sim/multiplay/generic/float[39] FLOAT TT_ASIS V1_1_PROP_ID
10300 sim/multiplay/generic/int[0] INT TT_ASIS V1_1_PROP_ID
10301 sim/multiplay/generic/int[1] INT TT_ASIS V1_1_PROP_ID
10302 sim/multiplay/generic/int[2] INT TT_ASIS V1_1_PROP_ID
10303 sim/multiplay/generic/int[3] INT TT_ASIS V1_1_PROP_ID
10304 sim/multiplay/generic/int[4] INT TT_ASIS V1_1_PROP_ID
10305 sim/multiplay/generic/int[5] INT TT_ASIS V1_1_PROP_ID
10306 sim/multiplay/generic/int[6] INT TT_ASIS V1_1_PROP_ID
10307 sim/multiplay/generic/int[7] INT TT_ASIS V1_1_PROP_ID
10308 sim/multiplay/generic/int[8] INT TT_ASIS V1_1_PROP_ID
10309 sim/multiplay/generic/int[9] INT TT_ASIS V1_1_PROP_ID
10310 sim/multiplay/generic/int[10] INT TT_ASIS V1_1_PROP_ID
10311 sim/multiplay/generic/int[11] INT TT_ASIS V1_1_PROP_ID
10312 sim/multiplay/generic/int[12] INT TT_ASIS V1_1_PROP_ID
10313 sim/multiplay/generic/int[13] INT TT_ASIS V1_1_PROP_ID
10314 sim/multiplay/generic/int[14] INT TT_ASIS V1_1_PROP_ID
10315 sim/multiplay/generic/int[15] INT TT_ASIS V1_1_PROP_ID
10316 sim/multiplay/generic/int[16] INT TT_ASIS V1_1_PROP_ID
10317 sim/multiplay/generic/int[17] INT TT_ASIS V1_1_PROP_ID
10318 sim/multiplay/generic/int[18] INT TT_ASIS V1_1_PROP_ID
10319 sim/multiplay/generic/int[19] INT TT_ASIS V1_1_PROP_ID
10500 sim/multiplay/generic/short[0] INT TT_SHORTINT V1_1_2_PROP_ID
10501 sim/multiplay/generic/short[1] INT TT_SHORTINT V1_1_2_PROP_ID
10502 sim/multiplay/generic/short[2] INT TT_SHORTINT V1_1_2_PROP_ID
10503 sim/multiplay/generic/short[3] INT TT_SHORTINT V1_1_2_PROP_ID
10504 sim/multiplay/generic/short[4] INT TT_SHORTINT V1_1_2_PROP_ID
10505 sim/multiplay/generic/short[5] INT TT_SHORTINT V1_1_2_PROP_ID
10506 sim/multiplay/generic/short[6] INT TT_SHORTINT V1_1_2_PROP_ID
10507 sim/multiplay/generic/short[7] INT TT_SHORTINT V1_1_2_PROP_ID
10508 sim/multiplay/generic/short[8] INT TT_SHORTINT V1_1_2_PROP_ID
10509 sim/multiplay/generic/short[9] INT TT_SHORTINT V1_1_2_PROP_ID
10510 sim/multiplay/generic/short[10] INT TT_SHORTINT V1_1_2_PROP_ID
10511 sim/multiplay/generic/short[11] INT TT_SHORTINT V1_1_2_PROP_ID
10512 sim/multiplay/generic/short[12] INT TT_SHORTINT V1_1_2_PROP_ID
10513 sim/multiplay/generic/short[13] INT TT_SHORTINT V1_1_2_PROP_ID
10514 sim/multiplay/generic/short[14] INT TT_SHORTINT V1_1_2_PROP_ID
10515 sim/multiplay/generic/short[15] INT TT_SHORTINT V1_1_2_PROP_ID
10516 sim/multiplay/generic/short[16] INT TT_SHORTINT V1_1_2_PROP_ID
10517 sim/multiplay/generic/short[17] INT TT_SHORTINT V1_1_2_PROP_ID
10518 sim/multiplay/generic/short[18] INT TT_SHORTINT V1_1_2_PROP_ID
10519 sim/multiplay/generic/short[19] INT TT_SHORTINT V1_1_2_PROP_ID
10520 sim/multiplay/generic/short[20] INT TT_SHORTINT V1_1_2_PROP_ID
10521 sim/multiplay/generic/short[21] INT TT_SHORTINT V1_1_2_PROP_ID
10522 sim/multiplay/generic/short[22] INT TT_SHORTINT V1_1_2_PROP_ID
10523 sim/multiplay/generic/short[23] INT TT_SHORTINT V1_1_2_PROP_ID
10524 sim/multiplay/generic/short[24] INT TT_SHORTINT V1_1_2_PROP_ID
10525 sim/multiplay/generic/short[25] INT TT_SHORTINT V1_1_2_PROP_ID
10526 sim/multiplay/generic/short[26] INT TT_SHORTINT V1_1_2_PROP_ID
10527 sim/multiplay/generic/short[27] INT TT_SHORTINT V1_1_2_PROP_ID
10528 sim/multiplay/generic/short[28] INT TT_SHORTINT V1_1_2_PROP_ID
10529 sim/multiplay/generic/short[29] INT TT_SHORTINT V1_1_2_PROP_ID
10530 sim/multiplay/generic/short[30] INT TT_SHORTINT V1_1_2_PROP_ID
10531 sim/multiplay/generic/short[31] INT TT_SHORTINT V1_1_2_PROP_ID
10532 sim/multiplay/generic/short[32] INT TT_SHORTINT V1_1_2_PROP_ID
10533 sim/multiplay/generic/short[33] INT TT_SHORTINT V1_1_2_PROP_ID
10534 sim/multiplay/generic/short[34] INT TT_SHORTINT V1_1_2_PROP_ID
10535 sim/multiplay/generic/short[35] INT TT_SHORTINT V1_1_2_PROP_ID
10536 sim/multiplay/generic/short[36] INT TT_SHORTINT V1_1_2_PROP_ID
10537 sim/multiplay/generic/short[37] INT TT_SHORTINT V1_1_2_PROP_ID
10538 sim/multiplay/generic/short[38] INT TT_SHORTINT V1_1_2_PROP_ID
10539 sim/multiplay/generic/short[39] INT TT_SHORTINT V1_1_2_PROP_ID
10540 sim/multiplay/generic/short[40] INT TT_SHORTINT V1_1_2_PROP_ID
10541 sim/multiplay/generic/short[41] INT TT_SHORTINT V1_1_2_PROP_ID
10542 sim/multiplay/generic/short[42] INT TT_SHORTINT V1_1_2_PROP_ID
10543 sim/multiplay/generic/short[43] INT TT_SHORTINT V1_1_2_PROP_ID
10544 sim/multiplay/generic/short[44] INT TT_SHORTINT V1_1_2_PROP_ID
10545 sim/multiplay/generic/short[45] INT TT_SHORTINT V1_1_2_PROP_ID
10546 sim/multiplay/generic/short[46] INT TT_SHORTINT V1_1_2_PROP_ID
10547 sim/multiplay/generic/short[47] INT TT_SHORTINT V1_1_2_PROP_ID
10548 sim/multiplay/generic/short[48] INT TT_SHORTINT V1_1_2_PROP_ID
10549 sim/multiplay/generic/short[49] INT TT_SHORTINT V1_1_2_PROP_ID
10550 sim/multiplay/generic/short[50] INT TT_SHORTINT V1_1_2_PROP_ID
10551 sim/multiplay/generic/short[51] INT TT_SHORTINT V1_1_2_PROP_ID
10552 sim/multiplay/generic/short[52] INT TT_SHORTINT V1_1_2_PROP_ID
10553 sim/multiplay/generic/short[53] INT TT_SHORTINT V1_1_2_PROP_ID
10554 sim/multiplay/generic/short[54] INT TT_SHORTINT V1_1_2_PROP_ID
10555 sim/multiplay/generic/short[55] INT TT_SHORTINT V1_1_2_PROP_ID
10556 sim/multiplay/generic/short[56] INT TT_SHORTINT V1_1_2_PROP_ID
10557 sim/multiplay/generic/short[57] INT TT_SHORTINT V1_1_2_PROP_ID
10558 sim/multiplay/generic/short[58] INT TT_SHORTINT V1_1_2_PROP_ID
10559 sim/multiplay/generic/short[59] INT TT_SHORTINT V1_1_2_PROP_ID
10560 sim/multiplay/generic/short[60] INT TT_SHORTINT V1_1_2_PROP_ID
10561 sim/multiplay/generic/short[61] INT TT_SHORTINT V1_1_2_PROP_ID
10562 sim/multiplay/generic/short[62] INT TT_SHORTINT V1_1_2_PROP_ID
10563 sim/multiplay/generic/short[63] INT TT_SHORTINT V1_1_2_PROP_ID
10564 sim/multiplay/generic/short[64] INT TT_SHORTINT V1_1_2_PROP_ID
10565 sim/multiplay/generic/short[65] INT TT_SHORTINT V1_1_2_PROP_ID
10566 sim/multiplay/generic/short[66] INT TT_SHORTINT V1_1_2_PROP_ID
10567 sim/multiplay/generic/short[67] INT TT_SHORTINT V1_1_2_PROP_ID
10568 sim/multiplay/generic/short[68] INT TT_SHORTINT V1_1_2_PROP_ID
10569 sim/multiplay/generic/short[69] INT TT_SHORTINT V1_1_2_PROP_ID
10570 sim/multiplay/generic/short[70] INT TT_SHORTINT V1_1_2_PROP_ID
10571 sim/multiplay/generic/short[71] INT TT_SHORTINT V1_1_2_PROP_ID
10572 sim/multiplay/generic/short[72] INT TT_SHORTINT V1_1_2_PROP_ID
10573 sim/multiplay/generic/short[73] INT TT_SHORTINT V1_1_2_PROP_ID
10574 sim/multiplay/generic/short[74] INT TT_SHORTINT V1_1_2_PROP_ID
10575 sim/multiplay/generic/short[75] INT TT_SHORTINT V1_1_2_PROP_ID
10576 sim/multiplay/generic/short[76] INT TT_SHORTINT V1_1_2_PROP_ID
10577 sim/multiplay/generic/short[77] INT TT_SHORTINT V1_1_2_PROP_ID
10578 sim/multiplay/generic/short[78] INT TT_SHORTINT V1_1_2_PROP_ID
10579 sim/multiplay/generic/short[79] INT TT_SHORTINT V1_1_2_PROP_ID
11000 sim/multiplay/generic/bool[0] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11001 sim/multiplay/generic/bool[1] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11002 sim/multiplay/generic/bool[2] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11003 sim/multiplay/generic/bool[3] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11004 sim/multiplay/generic/bool[4] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11005 sim/multiplay/generic/bool[5] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11006 sim/multiplay/generic/bool[6] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11007 sim/multiplay/generic/bool[7] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11008 sim/multiplay/generic/bool[8] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11009 sim/multiplay/generic/bool[9] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11010 sim/multiplay/generic/bool[10] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11011 sim/multiplay/generic/bool[11] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11012 sim/multiplay/generic/bool[12] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11013 sim/multiplay/generic/bool[13] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11014 sim/multiplay/generic/bool[14] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11015 sim/multiplay/generic/bool[15] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11016 sim/multiplay/generic/bool[16] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11017 sim/multiplay/generic/bool[17] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11018 sim/multiplay/generic/bool[18] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11019 sim/multiplay/generic/bool[19] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11020 sim/multiplay/generic/bool[20] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11021 sim/multiplay/generic/bool[21] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11022 sim/multiplay/generic/bool[22] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11023 sim/multiplay/generic/bool[23] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11024 sim/multiplay/generic/bool[24] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11025 sim/multiplay/generic/bool[25] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11026 sim/multiplay/generic/bool[26] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11027 sim/multiplay/generic/bool[27] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11028 sim/multiplay/generic/bool[28] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11029 sim/multiplay/generic/bool[29] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11030 sim/multiplay/generic/bool[30] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11040 sim/multiplay/generic/bool[31] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11041 sim/multiplay/generic/bool[32] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11042 sim/multiplay/generic/bool[33] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11043 sim/multiplay/generic/bool[34] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11044 sim/multiplay/generic/bool[35] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11045 sim/multiplay/generic/bool[36] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11046 sim/multiplay/generic/bool[37] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11047 sim/multiplay/generic/bool[38] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11048 sim/multiplay/generic/bool[39] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11049 sim/multiplay/generic/bool[40] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11050 sim/multiplay/generic/bool[41] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11051 sim/multiplay/generic/bool[91] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11052 sim/multiplay/generic/bool[42] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11053 sim/multiplay/generic/bool[43] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11054 sim/multiplay/generic/bool[44] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11055 sim/multiplay/generic/bool[45] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11056 sim/multiplay/generic/bool[46] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11057 sim/multiplay/generic/bool[47] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11058 sim/multiplay/generic/bool[48] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11059 sim/multiplay/generic/bool[49] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11060 sim/multiplay/generic/bool[50] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11061 sim/multiplay/generic/bool[51] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11062 sim/multiplay/generic/bool[52] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11063 sim/multiplay/generic/bool[53] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11064 sim/multiplay/generic/bool[54] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11065 sim/multiplay/generic/bool[55] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11066 sim/multiplay/generic/bool[56] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11067 sim/multiplay/generic/bool[57] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11068 sim/multiplay/generic/bool[58] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11069 sim/multiplay/generic/bool[59] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11070 sim/multiplay/generic/bool[60] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11080 sim/multiplay/generic/bool[61] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11081 sim/multiplay/generic/bool[62] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11082 sim/multiplay/generic/bool[63] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11083 sim/multiplay/generic/bool[64] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11084 sim/multiplay/generic/bool[65] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11085 sim/multiplay/generic/bool[66] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11086 sim/multiplay/generic/bool[67] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11087 sim/multiplay/generic/bool[68] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11088 sim/multiplay/generic/bool[69] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11089 sim/multiplay/generic/bool[70] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11090 sim/multiplay/generic/bool[71] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11091 sim/multiplay/generic/bool[92] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11092 sim/multiplay/generic/bool[72] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11093 sim/multiplay/generic/bool[73] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11094 sim/multiplay/generic/bool[74] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11095 sim/multiplay/generic/bool[75] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11096 sim/multiplay/generic/bool[76] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11097 sim/multiplay/generic/bool[77] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11098 sim/multiplay/generic/bool[78] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11099 sim/multiplay/generic/bool[79] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11100 sim/multiplay/generic/bool[80] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11101 sim/multiplay/generic/bool[81] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11102 sim/multiplay/generic/bool[82] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11103 sim/multiplay/generic/bool[83] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11104 sim/multiplay/generic/bool[84] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11105 sim/multiplay/generic/bool[85] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11106 sim/multiplay/generic/bool[86] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11107 sim/multiplay/generic/bool[87] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11108 sim/multiplay/generic/bool[88] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11109 sim/multiplay/generic/bool[89] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11110 sim/multiplay/generic/bool[90] BOOL TT_BOOLARRAY V1_1_2_PROP_ID
11990 sim/multiplay/mp-clock-mode INT TT_SHORTINT V1_1_2_PROP_ID
12000 sim/multiplay/emesary/bridge[0] STRING TT_ASIS V1_1_2_PROP_ID
12001 sim/multiplay/emesary/bridge[1] STRING TT_ASIS V1_1_2_PROP_ID
12002 sim/multiplay/emesary/bridge[2] STRING TT_ASIS V1_1_2_PROP_ID
12003 sim/multiplay/emesary/bridge[3] STRING TT_ASIS V1_1_2_PROP_ID
12004 sim/multiplay/emesary/bridge[4] STRING TT_ASIS V1_1_2_PROP_ID
12005 sim/multiplay/emesary/bridge[5] STRING TT_ASIS V1_1_2_PROP_ID
12006 sim/multiplay/emesary/bridge[6] STRING TT_ASIS V1_1_2_PROP_ID
12007 sim/multiplay/emesary/bridge[7] STRING TT_ASIS V1_1_2_PROP_ID
12008 sim/multiplay/emesary/bridge[8] STRING TT_ASIS V1_1_2_PROP_ID
12009 sim/multiplay/emesary/bridge[9] STRING TT_ASIS V1_1_2_PROP_ID
12010 sim/multiplay/emesary/bridge[10] STRING TT_ASIS V1_1_2_PROP_ID
12011 sim/multiplay/emesary/bridge[11] STRING TT_ASIS V1_1_2_PROP_ID
12012 sim/multiplay/emesary/bridge[12] STRING TT_ASIS V1_1_2_PROP_ID
12013 sim/multiplay/emesary/bridge[13] STRING TT_ASIS V1_1_2_PROP_ID
12014 sim/multiplay/emesary/bridge[14] STRING TT_ASIS V1_1_2_PROP_ID
12015 sim/multiplay/emesary/bridge[15] STRING TT_ASIS V1_1_2_PROP_ID
12016 sim/multiplay/emesary/bridge[16] STRING TT_ASIS V1_1_2_PROP_ID
12017 sim/multiplay/emesary/bridge[17] STRING TT_ASIS V1_1_2_PROP_ID
12018 sim/multiplay/emesary/bridge[18] STRING TT_ASIS V1_1_2_PROP_ID
12019 sim/multiplay/emesary/bridge[19] STRING TT_ASIS V1_1_2_PROP_ID
12020 sim/multiplay/emesary/bridge[20] STRING TT_ASIS V1_1_2_PROP_ID
12021 sim/multiplay/emesary/bridge[21] STRING TT_ASIS V1_1_2_PROP_ID
12022 sim/multiplay/emesary/bridge[22] STRING TT_ASIS V1_1_2_PROP_ID
12023 sim/multiplay/emesary/bridge[23] STRING TT_ASIS V1_1_2_PROP_ID
12024 sim/multiplay/emesary/bridge[24] STRING TT_ASIS V1_1_2_PROP_ID
12025 sim/multiplay/emesary/bridge[25] STRING TT_ASIS V1_1_2_PROP_ID
12026 sim/multiplay/emesary/bridge[26] STRING TT_ASIS V1_1_2_PROP_ID
12027 sim/multiplay/emesary/bridge[27] STRING TT_ASIS V1_1_2_PROP_ID
12028 sim/multiplay/emesary/bridge[28] STRING TT_ASIS V1_1_2_PROP_ID
12029 sim/multiplay/emesary/bridge[29] STRING TT_ASIS V1_1_2_PROP_ID
12200 sim/multiplay/emesary/bridge-type[0] INT TT_SHORTINT V1_1_2_PROP_ID
12201 sim/multiplay/emesary/bridge-type[1] INT TT_SHORTINT V1_1_2_PROP_ID
12202 sim/multiplay/emesary/bridge-type[2] INT TT_SHORTINT V1_1_2_PROP_ID
12203 sim/multiplay/emesary/bridge-type[3] INT TT_SHORTINT V1_1_2_PROP_ID
12204 sim/multiplay/emesary/bridge-type[4] INT TT_SHORTINT V1_1_2_PROP_ID
12205 sim/multiplay/emesary/bridge-type[5] INT TT_SHORTINT V1_1_2_PROP_ID
12206 sim/multiplay/emesary/bridge-type[6] INT TT_SHORTINT V1_1_2_PROP_ID
12207 sim/multiplay/emesary/bridge-type[7] INT TT_SHORTINT V1_1_2_PROP_ID
12208 sim/multiplay/emesary/bridge-type[8] INT TT_SHORTINT V1_1_2_PROP_ID
12209 sim/multiplay/emesary/bridge-type[9] INT TT_SHORTINT V1_1_2_PROP_ID
12210 sim/multiplay/emesary/bridge-type[10] INT TT_SHORTINT V1_1_2_PROP_ID
12211 sim/multiplay/emesary/bridge-type[11] INT TT_SHORTINT V1_1_2_PROP_ID
12212 sim/multiplay/emesary/bridge-type[12] INT TT_SHORTINT V1_1_2_PROP_ID
12213 sim/multiplay/emesary/bridge-type[13] INT TT_SHORTINT V1_1_2_PROP_ID
12214 sim/multiplay/emesary/bridge-type[14] INT TT_SHORTINT V1_1_2_PROP_ID
12215 sim/multiplay/emesary/bridge-type[15] INT TT_SHORTINT V1_1_2_PROP_ID
12216 sim/multiplay/emesary/bridge-type[16] INT TT_SHORTINT V1_1_2_PROP_ID
12217 sim/multiplay/emesary/bridge-type[17] INT TT_SHORTINT V1_1_2_PROP_ID
12218 sim/multiplay/emesary/bridge-type[18] INT TT_SHORTINT V1_1_2_PROP_ID
12219 sim/multiplay/emesary/bridge-type[19] INT TT_SHORTINT V1_1_2_PROP_ID
12220 sim/multiplay/emesary/bridge-type[20] INT TT_SHORTINT V1_1_2_PROP_ID
12221 sim/multiplay/emesary/bridge-type[21] INT TT_SHORTINT V1_1_2_PROP_ID
12222 sim/multiplay/emesary/bridge-type[22] INT TT_SHORTINT V1_1_2_PROP_ID
12223 sim/multiplay/emesary/bridge-type[23] INT TT_SHORTINT V1_1_2_PROP_ID
12224 sim/multiplay/emesary/bridge-type[24] INT TT_SHORTINT V1_1_2_PROP_ID
12225 sim/multiplay/emesary/bridge-type[25] INT TT_SHORTINT V1_1_2_PROP_ID
12226 sim/multiplay/emesary/bridge-type[26] INT TT_SHORTINT V1_1_2_PROP_ID
12227 sim/multiplay/emesary/bridge-type[27] INT TT_SHORTINT V1_1_2_PROP_ID
12228 sim/multiplay/emesary/bridge-type[28] INT TT_SHORTINT V1_1_2_PROP_ID
12229 sim/multiplay/emesary/bridge-type[29] INT TT_SHORTINT V1_1_2_PROP_ID
13000 sim/model/fallback-model-index INT TT_SHORTINT V1_1_2_PROP_ID
13001 sim/multiplay/comm-transmit-frequency-hz INT TT_INT V1_1_2_PROP_ID
13002 sim/multiplay/comm-transmit-power-norm INT TT_SHORT_FLOAT_NORM V1_1_2_PROP_ID


Note  This table is is current for FlightGear 2020.3; but may have been changed. Refer to flightgear/src/MultiPlayer/multiplaymgr.cxx (line 129).
Note  Properties related to the Emesary MP Bridge are separated to allow possible future improvements to the MP code to have better handling and therefore these string properties should not be used for anything else. The emesary/bridge-type is not currently used - however in the future it will be to identify a specific type of bridge and/or notification that are being used from a predefined set of bridge-types (not yet implemented).

Related content

Wiki articles

Forum topics

Source code

XDR handling

Message types

Multiplayer system

External links