Token Variables
Token Variables - along with the Gauge API - have been deprecated in Microsoft Flight Simulator 2024 in favour of the new Vars API and Event API, which work with the more extensive and supported Simulation Variables and Key Events.
WASM/C++ Gauges have access to information about the Microsoft Flight Simulator 2020 simulation state through a set of token variables (see the Token Variable Index for all available). The state information provided to the token variables depends on the various aircraft *.cfg files, since each aircraft will have access to different token variables depending on its capabilities. For example: the Cessna 182 provides access to GROUND_ALTITUDE, as does every other aircraft. The Cessna 182, however, doesn’t provide access to the TURB_ENGINE_1_VIBRATION variable because the Cessna 182 has a reciprocating engine, not a turbine engine. Therefore, it’s important to make sure that the *.cfg files you’re using for your aircraft and gauges support the token variables those gauges require.
The following pages contain the different token variables, grouped into categories, although you may find it easier to use the Search function or check the Token Variable Index (below) to find the variable you are looking for:
- General Simulation
- Vehicles
- Warnings And Failures
- General Aircraft
- Autopilot
- Electrics
- Engines
- Fuel
- Gear And Hydraulics
- Radio Navigation
- Surfaces
- Helicopters
UNIVERSAL_VAR Types
Each token variable returns a specific type of data. The following structure shows how the UNIVERSAL_VAR variable is defined and the types that could be returned:
typedef union UNIVERSAL_VAR {
FLOAT64 n; // any number.
BOOL b; // any boolean
ENUM e; // any enumerated value
FLAGS f;// any flags field
PVOID p;// any pointer
VAR32 d;// any binary coded decimal
VAR32 o;// any binary coded octal
} UNIVERSAL_VAR, *PUNIVERSAL_VAR, **PPUNIVERSAL_VAR;The tables on the various Token Variable pages list the module variable name and specifies which UNIVERSAL_VAR union member to use with each variable.
Accessing A Tokenized Variable Through The Gauge API:
Instantiate a MODULE_VAR variable initializing the GAUGE_TOKEN ID structure member. You can set the ID to one of the token variables provided in the Token Variable Index. For example:
typedef struct MODULE_VAR
{
GAUGE_TOKEN id;
PVOID var_ptr;
VAR_TYPE var_type;
UNIVERSAL_VAR var_value;
UNIVERSAL_VAR var_old;
} MODULE_VAR, *PMODULE_VAR, **PPMODULE_VAR;To update the contents of the variable from Flight Simulator state information, use lookup_var:
lookup_var(PMODULE_VAR module_var)After the lookup_var function is called, the value of a MODULE_VAR variable is stored in the var_value member of the structure.
Token variables are read-only. Any attempt to set these variables through the var_ptr variable may result in program crashes and incompatibility with future versions of Microsoft Flight Simulator 2024.
The following code example shows how the MODULE_VAR variable is used. Note that this is a callback function and, in this specific example, it is for a sprite element:
MODULE_VAR attitude_bank = { ATTITUDE_INDICATOR_BANK_DEGREES };
FLOAT64 flight_director_bank_cb(PELEMENT_SPRITE pelement)
{
lookup_var(&attitude_bank);
// Offset by attitude card's bank
return attitude_bank.var_value.n - pelement->source_var_0.var_value.n;
}Token Variable Index
Below you can find indexed all the Token Variables available, presented this way to facilitate finding the required variable at a glance or through the search system:
A
AIRCRAFT_ENGINE_MIXTURE_AVAILABLE
APU_BLEED_PRESSURE_RECEIVED_BY_ENGINE
ATC_RUNWAY_HEADING_DEGREES_TRUE
ATC_RUNWAY_RELATIVE_POSITION_X
ATC_RUNWAY_RELATIVE_POSITION_Y
ATC_RUNWAY_RELATIVE_POSITION_Z
ATC_RUNWAY_TDPOINT_RELATIVE_POSITION_X
ATC_RUNWAY_TDPOINT_RELATIVE_POSITION_Y
ATC_RUNWAY_TDPOINT_RELATIVE_POSITION_Z
ATTITUDE_INDICATOR_BANK_DEGREES
ATTITUDE_INDICATOR_PITCH_DEGREES
AUTOPILOT_AIRSPEED_ACQUISITION
AUTOPILOT_AIRSPEED_HOLD_CURRENT
AUTOPILOT_AIRSPEED_MAX_CALCULATED
AUTOPILOT_AIRSPEED_MIN_CALCULATED
AUTOPILOT_ALTITUDE_MANUALLY_TUNABLE
AUTOPILOT_HEADING_MANUALLY_TUNABLE
AUTOPILOT_MANAGED_SPEED_IN_MACH
AUTOPILOT_MANAGED_THROTTLE_ACTIVE
B
BATTERY_ESTIMATED_CAPACITY_PCT
BOARDINGRAMP_ELEVATION_CURRENT
BOARDINGRAMP_ORIENTATION_CURRENT
BOARDINGRAMP_ORIENTATION_TARGET
C
CATERINGTRUCK_AIRCRAFT_DOOR_CONTACT_OFFSET_Z
CATERINGTRUCK_ELEVATION_CURRENT
D
E
ENGINE1_TRANSMISSION_TEMPERATURE
ENGINE2_TRANSMISSION_TEMPERATURE
ENGINE3_TRANSMISSION_TEMPERATURE
ENGINE4_TRANSMISSION_TEMPERATURE
ENGINE_1_FUELFLOW_BUG_POSITION
ENGINE_2_FUELFLOW_BUG_POSITION
ENGINE_3_FUELFLOW_BUG_POSITION
F
G
GEAR_EMERGENCY_HANDLE_POSITION
GENERAL_ENGINE1_GENERATOR_ACTIVE
GENERAL_ENGINE1_GENERATOR_SWITCH
GENERAL_ENGINE1_MIXTURE_LEVER_POS
GENERAL_ENGINE1_PROPELLER_LEVER_POS
GENERAL_ENGINE1_THROTTLE_LEVER_POS
GENERAL_ENGINE1_THROTTLE_MANAGED_MODE
GENERAL_ENGINE2_GENERATOR_ACTIVE
GENERAL_ENGINE2_GENERATOR_SWITCH
GENERAL_ENGINE2_MIXTURE_LEVER_POS
GENERAL_ENGINE2_PROPELLER_LEVER_POS
GENERAL_ENGINE2_THROTTLE_LEVER_POS
GENERAL_ENGINE2_THROTTLE_MANAGED_MODE
GENERAL_ENGINE3_GENERATOR_ACTIVE
GENERAL_ENGINE3_GENERATOR_SWITCH
GENERAL_ENGINE3_MIXTURE_LEVER_POS
GENERAL_ENGINE3_PROPELLER_LEVER_POS
GENERAL_ENGINE3_THROTTLE_LEVER_POS
GENERAL_ENGINE3_THROTTLE_MANAGED_MODE
GENERAL_ENGINE4_GENERATOR_ACTIVE
GENERAL_ENGINE4_GENERATOR_SWITCH
GENERAL_ENGINE4_MIXTURE_LEVER_POS
GENERAL_ENGINE4_PROPELLER_LEVER_POS
GENERAL_ENGINE4_THROTTLE_LEVER_POS
GENERAL_ENGINE4_THROTTLE_MANAGED_MODE
GENERAL_ENG_FUEL_PUMP_SWITCH_EX1
GENERAL_ENG_HOBBS_ELAPSED_TIME
GENERATOR_ALTERNATOR_1_BUS_AMPS
GENERATOR_ALTERNATOR_1_BUS_VOLTAGE
GENERATOR_ALTERNATOR_2_BUS_AMPS
GENERATOR_ALTERNATOR_2_BUS_VOLTAGE
GENERATOR_ALTERNATOR_3_BUS_AMPS
GENERATOR_ALTERNATOR_3_BUS_VOLTAGE
GENERATOR_ALTERNATOR_4_BUS_AMPS
GENERATOR_ALTERNATOR_4_BUS_VOLTAGE
H
I
INTERACTIVE_POINT_JETWAY_LEFT_BEND
INTERACTIVE_POINT_JETWAY_LEFT_DEPLOYMENT
INTERACTIVE_POINT_JETWAY_RIGHT_BEND
INTERACTIVE_POINT_JETWAY_RIGHT_DEPLOYMENT
INTERACTIVE_POINT_JETWAY_TOP_HORIZONTAL
J
K
L
M
N
O
P
PAYLOAD_STATION_NUM_SIMOBJECTS
PLANE_ALT_ABOVE_GROUND_MINUS_CG
PLANE_HEADING_DEGREES_MAGNETIC
PLANE_TOUCHDOWN_HEADING_DEGREES_MAGNETIC
PLANE_TOUCHDOWN_HEADING_DEGREES_TRUE
PLANE_TOUCHDOWN_NORMAL_VELOCITY
PRESSURIZATION_CABIN_ALTITUDE_GOAL
PRESSURIZATION_CABIN_ALTITUDE_RATE
PRESSURIZATION_PRESSURE_DIFFERENTIAL
PROPELLER_1_FEATHERING_INHIBIT
PROPELLER_2_FEATHERING_INHIBIT
PROPELLER_3_FEATHERING_INHIBIT
R
RADIATOR_COOLING_FLAPS_POSITION
RECIP_ENGINE1_ALTERNATE_AIR_POS
RECIP_ENGINE1_COMBUSTION_SOUND_PCT
RECIP_ENGINE1_COOLANT_RESERVOIR_PCT
RECIP_ENGINE1_EMERGENCY_BOOST_ACTIVE
RECIP_ENGINE1_EMERGENCY_BOOST_ELAPSED_TIME
RECIP_ENGINE1_FUEL_PRESSURE_PSF
RECIP_ENGINE1_INDUCED_VELOCITY
RECIP_ENGINE1_MANIFOLD_PRESSURE
RECIP_ENGINE1_MIXTURE_LEVER_POS
RECIP_ENGINE1_NUMBER_OF_TANKS_USED
RECIP_ENGINE1_THROTTLE_LEVER_POS
RECIP_ENGINE1_TURBOCHARGER_FAILED
RECIP_ENGINE2_ALTERNATE_AIR_POS
RECIP_ENGINE2_COMBUSTION_SOUND_PCT
RECIP_ENGINE2_COOLANT_RESERVOIR_PCT
RECIP_ENGINE2_EMERGENCY_BOOST_ACTIVE
RECIP_ENGINE2_EMERGENCY_BOOST_ELAPSED_TIME
RECIP_ENGINE2_FUEL_PRESSURE_PSF
RECIP_ENGINE2_INDUCED_VELOCITY
RECIP_ENGINE2_MANIFOLD_PRESSURE
RECIP_ENGINE2_MIXTURE_LEVER_POS
RECIP_ENGINE2_NUMBER_OF_TANKS_USED
RECIP_ENGINE2_THROTTLE_LEVER_POS
RECIP_ENGINE2_TURBOCHARGER_FAILED
RECIP_ENGINE3_ALTERNATE_AIR_POS
RECIP_ENGINE3_COMBUSTION_SOUND_PCT
RECIP_ENGINE3_COOLANT_RESERVOIR_PCT
RECIP_ENGINE3_EMERGENCY_BOOST_ACTIVE
RECIP_ENGINE3_EMERGENCY_BOOST_ELAPSED_TIME
RECIP_ENGINE3_FUEL_PRESSURE_PSF
RECIP_ENGINE3_INDUCED_VELOCITY
RECIP_ENGINE3_MANIFOLD_PRESSURE
RECIP_ENGINE3_MIXTURE_LEVER_POS
RECIP_ENGINE3_NUMBER_OF_TANKS_USED
RECIP_ENGINE3_THROTTLE_LEVER_POS
RECIP_ENGINE3_TURBOCHARGER_FAILED
RECIP_ENGINE4_ALTERNATE_AIR_POS
RECIP_ENGINE4_COMBUSTION_SOUND_PCT
RECIP_ENGINE4_COOLANT_RESERVOIR_PCT
RECIP_ENGINE4_EMERGENCY_BOOST_ACTIVE
RECIP_ENGINE4_EMERGENCY_BOOST_ELAPSED_TIME
RECIP_ENGINE4_FUEL_PRESSURE_PSF
RECIP_ENGINE4_INDUCED_VELOCITY
RECIP_ENGINE4_MANIFOLD_PRESSURE
RECIP_ENGINE4_MIXTURE_LEVER_POS
RECIP_ENGINE4_NUMBER_OF_TANKS_USED
RECIP_ENGINE4_THROTTLE_LEVER_POS
RECIP_ENGINE4_TURBOCHARGER_FAILED
RECIP_ENG_ANTIDETONATION_FLOW_RATE
RECIP_ENG_ANTIDETONATION_TANK_MAX_QUANTITY
RECIP_ENG_ANTIDETONATION_TANK_QUANTITY
RECIP_ENG_ANTIDETONATION_TANK_VALVE
RECIP_ENG_ENGINE_MASTER_SWITCH
RECIP_ENG_NITROUS_TANK_MAX_QUANTITY
RECIP_ENG_NITROUS_TANK_QUANTITY
RECIP_ENG_NUM_CYLINDERS_FAILED
S
T
TOTAL_UNUSABLE_FUEL_QUANTITY_GALLONS
TRAILING_EDGE_FLAPS0_LEFT_ANGLE
TRAILING_EDGE_FLAPS0_RIGHT_ANGLE
TURB_ENGINE_1_FREE_TURBINE_TORQUE
TURB_ENGINE_1_THROTTLE_COMMANDED_N1
TURB_ENGINE_2_FREE_TURBINE_TORQUE
TURB_ENGINE_2_THROTTLE_COMMANDED_N1
TURB_ENGINE_3_FREE_TURBINE_TORQUE
TURB_ENGINE_3_THROTTLE_COMMANDED_N1
TURB_ENGINE_4_FREE_TURBINE_TORQUE
TURB_ENGINE_4_THROTTLE_COMMANDED_N1
TURB_ENG_AFTERBURNER_PCT_ACTIVE
