Multiplayer protocol

From FlightGear wiki
Jump to: navigation, search
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.

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.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 (LEN + STR) 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.
ReplyAddress 4 bytes Deprecated and ignored
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 Packet

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_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.

ID Property Type Transmit As Protocol Ident
10 sim/multiplay/protocol-version INT SHORTINT V1_1_PROP_ID
100 surface-positions/left-aileron-pos-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
101 surface-positions/right-aileron-pos-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
102 surface-positions/elevator-pos-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
103 surface-positions/rudder-pos-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
104 surface-positions/flap-pos-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
105 surface-positions/speedbrake-pos-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
106 gear/tailhook/position-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
107 gear/launchbar/position-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
108 gear/launchbar/state STRING same V1_1_2_PROP_ID
109 gear/launchbar/holdback-position-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
110 canopy/position-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
111 surface-positions/wing-pos-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
112 surface-positions/wing-fold-pos-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
200 gear/gear[0]/compression-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
201 gear/gear[0]/position-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
210 gear/gear[1]/compression-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
211 gear/gear[1]/position-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
220 gear/gear[2]/compression-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
221 gear/gear[2]/position-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
230 gear/gear[3]/compression-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
231 gear/gear[3]/position-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
240 gear/gear[4]/compression-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
241 gear/gear[4]/position-norm FLOAT SHORT_FLOAT_NORM V1_1_PROP_ID
300 engines/engine[0]/n1 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
301 engines/engine[0]/n2 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
302 engines/engine[0]/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
310 engines/engine[1]/n1 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
311 engines/engine[1]/n2 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
312 engines/engine[1]/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
320 engines/engine[2]/n1 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
321 engines/engine[2]/n2 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
322 engines/engine[2]/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
330 engines/engine[3]/n1 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
331 engines/engine[3]/n2 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
332 engines/engine[3]/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
340 engines/engine[4]/n1 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
341 engines/engine[4]/n2 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
342 engines/engine[4]/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
350 engines/engine[5]/n1 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
351 engines/engine[5]/n2 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
352 engines/engine[5]/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
360 engines/engine[6]/n1 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
361 engines/engine[6]/n2 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
362 engines/engine[6]/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
370 engines/engine[7]/n1 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
371 engines/engine[7]/n2 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
372 engines/engine[7]/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
380 engines/engine[8]/n1 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
381 engines/engine[8]/n2 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
382 engines/engine[8]/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
390 engines/engine[9]/n1 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
391 engines/engine[9]/n2 FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
392 engines/engine[9]/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
800 rotors/main/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
801 rotors/tail/rpm FLOAT SHORT_FLOAT_1 V1_1_PROP_ID
810 rotors/main/blade[0]/position-deg FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
811 rotors/main/blade[1]/position-deg FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
812 rotors/main/blade[2]/position-deg FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
813 rotors/main/blade[3]/position-deg FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
820 rotors/main/blade[0]/flap-deg FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
821 rotors/main/blade[1]/flap-deg FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
822 rotors/main/blade[2]/flap-deg FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
823 rotors/main/blade[3]/flap-deg FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
830 rotors/tail/blade[0]/position-deg FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
831 rotors/tail/blade[1]/position-deg FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
900 sim/hitches/aerotow/tow/length FLOAT same V1_1_PROP_ID
901 sim/hitches/aerotow/tow/elastic-constant FLOAT same V1_1_PROP_ID
902 sim/hitches/aerotow/tow/weight-per-m-kg-m FLOAT same V1_1_PROP_ID
903 sim/hitches/aerotow/tow/dist FLOAT same V1_1_PROP_ID
904 sim/hitches/aerotow/tow/connected-to-property-node BOOL same V1_1_PROP_ID
905 sim/hitches/aerotow/tow/connected-to-ai-or-mp-callsign STRING same V1_1_2_PROP_ID
906 sim/hitches/aerotow/tow/brake-force FLOAT same V1_1_PROP_ID
907 sim/hitches/aerotow/tow/end-force-x FLOAT same V1_1_PROP_ID
908 sim/hitches/aerotow/tow/end-force-y FLOAT same V1_1_PROP_ID
909 sim/hitches/aerotow/tow/end-force-z FLOAT same V1_1_PROP_ID
930 sim/hitches/aerotow/is-slave BOOL same V1_1_PROP_ID
931 sim/hitches/aerotow/speed-in-tow-direction FLOAT same V1_1_PROP_ID
932 sim/hitches/aerotow/open BOOL same V1_1_PROP_ID
933 sim/hitches/aerotow/local-pos-x FLOAT same V1_1_PROP_ID
934 sim/hitches/aerotow/local-pos-y FLOAT same V1_1_PROP_ID
935 sim/hitches/aerotow/local-pos-z FLOAT same V1_1_PROP_ID
1001 controls/flight/slats FLOAT SHORT_FLOAT_4 V1_1_PROP_ID
1002 controls/flight/speedbrake FLOAT SHORT_FLOAT_4 V1_1_PROP_ID
1003 controls/flight/spoilers FLOAT SHORT_FLOAT_4 V1_1_PROP_ID
1004 controls/gear/gear-down FLOAT SHORT_FLOAT_4 V1_1_PROP_ID
1005 controls/lighting/nav-lights FLOAT SHORT_FLOAT_3 V1_1_PROP_ID
1006 controls/armament/station[0]/jettison-all BOOL SHORTINT V1_1_PROP_ID
1100 sim/model/variant INT same V1_1_PROP_ID
1101 sim/model/livery/file STRING same V1_1_2_PROP_ID
1200 environment/wildfire/data STRING same V1_1_2_PROP_ID
1201 environment/contrail INT SHORTINT V1_1_PROP_ID
1300 tanker INT SHORTINT V1_1_PROP_ID
1400 scenery/events STRING same V1_1_2_PROP_ID
1500 instrumentation/transponder/transmitted-id INT SHORTINT V1_1_PROP_ID
1501 instrumentation/transponder/altitude INT same V1_1_PROP_ID
1502 instrumentation/transponder/ident BOOL SHORTINT V1_1_PROP_ID
1503 instrumentation/transponder/inputs/mode INT SHORTINT V1_1_PROP_ID
10001 sim/multiplay/transmission-freq-hz STRING same V1_1_2_PROP_ID
10002 sim/multiplay/chat STRING same V1_1_2_PROP_ID
10100 sim/multiplay/generic/string[0] STRING same V1_1_2_PROP_ID
10101 sim/multiplay/generic/string[1] STRING same V1_1_2_PROP_ID
10102 sim/multiplay/generic/string[2] STRING same V1_1_2_PROP_ID
10103 sim/multiplay/generic/string[3] STRING same V1_1_2_PROP_ID
10104 sim/multiplay/generic/string[4] STRING same V1_1_2_PROP_ID
10105 sim/multiplay/generic/string[5] STRING same V1_1_2_PROP_ID
10106 sim/multiplay/generic/string[6] STRING same V1_1_2_PROP_ID
10107 sim/multiplay/generic/string[7] STRING same V1_1_2_PROP_ID
10108 sim/multiplay/generic/string[8] STRING same V1_1_2_PROP_ID
10109 sim/multiplay/generic/string[9] STRING same V1_1_2_PROP_ID
10110 sim/multiplay/generic/string[10] STRING same V1_1_2_PROP_ID
10111 sim/multiplay/generic/string[11] STRING same V1_1_2_PROP_ID
10112 sim/multiplay/generic/string[12] STRING same V1_1_2_PROP_ID
10113 sim/multiplay/generic/string[13] STRING same V1_1_2_PROP_ID
10114 sim/multiplay/generic/string[14] STRING same V1_1_2_PROP_ID
10115 sim/multiplay/generic/string[15] STRING same V1_1_2_PROP_ID
10116 sim/multiplay/generic/string[16] STRING same V1_1_2_PROP_ID
10117 sim/multiplay/generic/string[17] STRING same V1_1_2_PROP_ID
10118 sim/multiplay/generic/string[18] STRING same V1_1_2_PROP_ID
10119 sim/multiplay/generic/string[19] STRING same V1_1_2_PROP_ID
10200 sim/multiplay/generic/float[0] FLOAT same V1_1_PROP_ID
10201 sim/multiplay/generic/float[1] FLOAT same V1_1_PROP_ID
10202 sim/multiplay/generic/float[2] FLOAT same V1_1_PROP_ID
10203 sim/multiplay/generic/float[3] FLOAT same V1_1_PROP_ID
10204 sim/multiplay/generic/float[4] FLOAT same V1_1_PROP_ID
10205 sim/multiplay/generic/float[5] FLOAT same V1_1_PROP_ID
10206 sim/multiplay/generic/float[6] FLOAT same V1_1_PROP_ID
10207 sim/multiplay/generic/float[7] FLOAT same V1_1_PROP_ID
10208 sim/multiplay/generic/float[8] FLOAT same V1_1_PROP_ID
10209 sim/multiplay/generic/float[9] FLOAT same V1_1_PROP_ID
10210 sim/multiplay/generic/float[10] FLOAT same V1_1_PROP_ID
10211 sim/multiplay/generic/float[11] FLOAT same V1_1_PROP_ID
10212 sim/multiplay/generic/float[12] FLOAT same V1_1_PROP_ID
10213 sim/multiplay/generic/float[13] FLOAT same V1_1_PROP_ID
10214 sim/multiplay/generic/float[14] FLOAT same V1_1_PROP_ID
10215 sim/multiplay/generic/float[15] FLOAT same V1_1_PROP_ID
10216 sim/multiplay/generic/float[16] FLOAT same V1_1_PROP_ID
10217 sim/multiplay/generic/float[17] FLOAT same V1_1_PROP_ID
10218 sim/multiplay/generic/float[18] FLOAT same V1_1_PROP_ID
10219 sim/multiplay/generic/float[19] FLOAT same V1_1_PROP_ID
10220 sim/multiplay/generic/float[20] FLOAT same V1_1_PROP_ID
10221 sim/multiplay/generic/float[21] FLOAT same V1_1_PROP_ID
10222 sim/multiplay/generic/float[22] FLOAT same V1_1_PROP_ID
10223 sim/multiplay/generic/float[23] FLOAT same V1_1_PROP_ID
10224 sim/multiplay/generic/float[24] FLOAT same V1_1_PROP_ID
10225 sim/multiplay/generic/float[25] FLOAT same V1_1_PROP_ID
10226 sim/multiplay/generic/float[26] FLOAT same V1_1_PROP_ID
10227 sim/multiplay/generic/float[27] FLOAT same V1_1_PROP_ID
10228 sim/multiplay/generic/float[28] FLOAT same V1_1_PROP_ID
10229 sim/multiplay/generic/float[29] FLOAT same V1_1_PROP_ID
10230 sim/multiplay/generic/float[30] FLOAT same V1_1_PROP_ID
10231 sim/multiplay/generic/float[31] FLOAT same V1_1_PROP_ID
10232 sim/multiplay/generic/float[32] FLOAT same V1_1_PROP_ID
10233 sim/multiplay/generic/float[33] FLOAT same V1_1_PROP_ID
10234 sim/multiplay/generic/float[34] FLOAT same V1_1_PROP_ID
10235 sim/multiplay/generic/float[35] FLOAT same V1_1_PROP_ID
10236 sim/multiplay/generic/float[36] FLOAT same V1_1_PROP_ID
10237 sim/multiplay/generic/float[37] FLOAT same V1_1_PROP_ID
10238 sim/multiplay/generic/float[38] FLOAT same V1_1_PROP_ID
10239 sim/multiplay/generic/float[39] FLOAT same V1_1_PROP_ID
10300 sim/multiplay/generic/int[0] INT same V1_1_PROP_ID
10301 sim/multiplay/generic/int[1] INT same V1_1_PROP_ID
10302 sim/multiplay/generic/int[2] INT same V1_1_PROP_ID
10303 sim/multiplay/generic/int[3] INT same V1_1_PROP_ID
10304 sim/multiplay/generic/int[4] INT same V1_1_PROP_ID
10305 sim/multiplay/generic/int[5] INT same V1_1_PROP_ID
10306 sim/multiplay/generic/int[6] INT same V1_1_PROP_ID
10307 sim/multiplay/generic/int[7] INT same V1_1_PROP_ID
10308 sim/multiplay/generic/int[8] INT same V1_1_PROP_ID
10309 sim/multiplay/generic/int[9] INT same V1_1_PROP_ID
10310 sim/multiplay/generic/int[10] INT same V1_1_PROP_ID
10311 sim/multiplay/generic/int[11] INT same V1_1_PROP_ID
10312 sim/multiplay/generic/int[12] INT same V1_1_PROP_ID
10313 sim/multiplay/generic/int[13] INT same V1_1_PROP_ID
10314 sim/multiplay/generic/int[14] INT same V1_1_PROP_ID
10315 sim/multiplay/generic/int[15] INT same V1_1_PROP_ID
10316 sim/multiplay/generic/int[16] INT same V1_1_PROP_ID
10317 sim/multiplay/generic/int[17] INT same V1_1_PROP_ID
10318 sim/multiplay/generic/int[18] INT same V1_1_PROP_ID
10319 sim/multiplay/generic/int[19] INT same V1_1_PROP_ID
10500 sim/multiplay/generic/short[0] INT SHORTINT V1_1_2_PROP_ID
10501 sim/multiplay/generic/short[1] INT SHORTINT V1_1_2_PROP_ID
10502 sim/multiplay/generic/short[2] INT SHORTINT V1_1_2_PROP_ID
10503 sim/multiplay/generic/short[3] INT SHORTINT V1_1_2_PROP_ID
10504 sim/multiplay/generic/short[4] INT SHORTINT V1_1_2_PROP_ID
10505 sim/multiplay/generic/short[5] INT SHORTINT V1_1_2_PROP_ID
10506 sim/multiplay/generic/short[6] INT SHORTINT V1_1_2_PROP_ID
10507 sim/multiplay/generic/short[7] INT SHORTINT V1_1_2_PROP_ID
10508 sim/multiplay/generic/short[8] INT SHORTINT V1_1_2_PROP_ID
10509 sim/multiplay/generic/short[9] INT SHORTINT V1_1_2_PROP_ID
10510 sim/multiplay/generic/short[10] INT SHORTINT V1_1_2_PROP_ID
10511 sim/multiplay/generic/short[11] INT SHORTINT V1_1_2_PROP_ID
10512 sim/multiplay/generic/short[12] INT SHORTINT V1_1_2_PROP_ID
10513 sim/multiplay/generic/short[13] INT SHORTINT V1_1_2_PROP_ID
10514 sim/multiplay/generic/short[14] INT SHORTINT V1_1_2_PROP_ID
10515 sim/multiplay/generic/short[15] INT SHORTINT V1_1_2_PROP_ID
10516 sim/multiplay/generic/short[16] INT SHORTINT V1_1_2_PROP_ID
10517 sim/multiplay/generic/short[17] INT SHORTINT V1_1_2_PROP_ID
10518 sim/multiplay/generic/short[18] INT SHORTINT V1_1_2_PROP_ID
10519 sim/multiplay/generic/short[19] INT SHORTINT V1_1_2_PROP_ID
10520 sim/multiplay/generic/short[20] INT SHORTINT V1_1_2_PROP_ID
10521 sim/multiplay/generic/short[21] INT SHORTINT V1_1_2_PROP_ID
10522 sim/multiplay/generic/short[22] INT SHORTINT V1_1_2_PROP_ID
10523 sim/multiplay/generic/short[23] INT SHORTINT V1_1_2_PROP_ID
10524 sim/multiplay/generic/short[24] INT SHORTINT V1_1_2_PROP_ID
10525 sim/multiplay/generic/short[25] INT SHORTINT V1_1_2_PROP_ID
10526 sim/multiplay/generic/short[26] INT SHORTINT V1_1_2_PROP_ID
10527 sim/multiplay/generic/short[27] INT SHORTINT V1_1_2_PROP_ID
10528 sim/multiplay/generic/short[28] INT SHORTINT V1_1_2_PROP_ID
10529 sim/multiplay/generic/short[29] INT SHORTINT V1_1_2_PROP_ID
10530 sim/multiplay/generic/short[30] INT SHORTINT V1_1_2_PROP_ID
10531 sim/multiplay/generic/short[31] INT SHORTINT V1_1_2_PROP_ID
10532 sim/multiplay/generic/short[32] INT SHORTINT V1_1_2_PROP_ID
10533 sim/multiplay/generic/short[33] INT SHORTINT V1_1_2_PROP_ID
10534 sim/multiplay/generic/short[34] INT SHORTINT V1_1_2_PROP_ID
10535 sim/multiplay/generic/short[35] INT SHORTINT V1_1_2_PROP_ID
10536 sim/multiplay/generic/short[36] INT SHORTINT V1_1_2_PROP_ID
10537 sim/multiplay/generic/short[37] INT SHORTINT V1_1_2_PROP_ID
10538 sim/multiplay/generic/short[38] INT SHORTINT V1_1_2_PROP_ID
10539 sim/multiplay/generic/short[39] INT SHORTINT V1_1_2_PROP_ID
10540 sim/multiplay/generic/short[40] INT SHORTINT V1_1_2_PROP_ID
10541 sim/multiplay/generic/short[41] INT SHORTINT V1_1_2_PROP_ID
10542 sim/multiplay/generic/short[42] INT SHORTINT V1_1_2_PROP_ID
10543 sim/multiplay/generic/short[43] INT SHORTINT V1_1_2_PROP_ID
10544 sim/multiplay/generic/short[44] INT SHORTINT V1_1_2_PROP_ID
10545 sim/multiplay/generic/short[45] INT SHORTINT V1_1_2_PROP_ID
10546 sim/multiplay/generic/short[46] INT SHORTINT V1_1_2_PROP_ID
10547 sim/multiplay/generic/short[47] INT SHORTINT V1_1_2_PROP_ID
10548 sim/multiplay/generic/short[48] INT SHORTINT V1_1_2_PROP_ID
10549 sim/multiplay/generic/short[49] INT SHORTINT V1_1_2_PROP_ID
10550 sim/multiplay/generic/short[50] INT SHORTINT V1_1_2_PROP_ID
10551 sim/multiplay/generic/short[51] INT SHORTINT V1_1_2_PROP_ID
10552 sim/multiplay/generic/short[52] INT SHORTINT V1_1_2_PROP_ID
10553 sim/multiplay/generic/short[53] INT SHORTINT V1_1_2_PROP_ID
10554 sim/multiplay/generic/short[54] INT SHORTINT V1_1_2_PROP_ID
10555 sim/multiplay/generic/short[55] INT SHORTINT V1_1_2_PROP_ID
10556 sim/multiplay/generic/short[56] INT SHORTINT V1_1_2_PROP_ID
10557 sim/multiplay/generic/short[57] INT SHORTINT V1_1_2_PROP_ID
10558 sim/multiplay/generic/short[58] INT SHORTINT V1_1_2_PROP_ID
10559 sim/multiplay/generic/short[59] INT SHORTINT V1_1_2_PROP_ID
10560 sim/multiplay/generic/short[60] INT SHORTINT V1_1_2_PROP_ID
10561 sim/multiplay/generic/short[61] INT SHORTINT V1_1_2_PROP_ID
10562 sim/multiplay/generic/short[62] INT SHORTINT V1_1_2_PROP_ID
10563 sim/multiplay/generic/short[63] INT SHORTINT V1_1_2_PROP_ID
10564 sim/multiplay/generic/short[64] INT SHORTINT V1_1_2_PROP_ID
10565 sim/multiplay/generic/short[65] INT SHORTINT V1_1_2_PROP_ID
10566 sim/multiplay/generic/short[66] INT SHORTINT V1_1_2_PROP_ID
10567 sim/multiplay/generic/short[67] INT SHORTINT V1_1_2_PROP_ID
10568 sim/multiplay/generic/short[68] INT SHORTINT V1_1_2_PROP_ID
10569 sim/multiplay/generic/short[69] INT SHORTINT V1_1_2_PROP_ID
10570 sim/multiplay/generic/short[70] INT SHORTINT V1_1_2_PROP_ID
10571 sim/multiplay/generic/short[71] INT SHORTINT V1_1_2_PROP_ID
10572 sim/multiplay/generic/short[72] INT SHORTINT V1_1_2_PROP_ID
10573 sim/multiplay/generic/short[73] INT SHORTINT V1_1_2_PROP_ID
10574 sim/multiplay/generic/short[74] INT SHORTINT V1_1_2_PROP_ID
10575 sim/multiplay/generic/short[75] INT SHORTINT V1_1_2_PROP_ID
10576 sim/multiplay/generic/short[76] INT SHORTINT V1_1_2_PROP_ID
10577 sim/multiplay/generic/short[77] INT SHORTINT V1_1_2_PROP_ID
10578 sim/multiplay/generic/short[78] INT SHORTINT V1_1_2_PROP_ID
10579 sim/multiplay/generic/short[79] INT 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[42] 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[72] 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
Note  This table is is current for FlightGear 2017.2; but may have been changed. Refer to see flightgear/src/MultiPlayer/multiplaymgr.cxx (line 129).

Related content

Wiki articles

Forum topics

Source code

XDR handling

Message types

Multiplayer system

External links

  • Ludovic Brenta  (May 3rd, 2016).  Re: [Flightgear-devel] dual-control-tools and the limit on packet size .
  • Ludovic Brenta  (Oct 21st, 2016).  Re: [Flightgear-devel] C172 MP alert on console .