X-Plane 12 allows for three distinct ways of trimming the flight controls:

  1. Non-reversible control trim, in which only a small Flettner-type trim control surface is actuated by the trim. This does not directly change the position of the flight control, but instead requires airflow over the control surface in order to move its centering point.
  2. Reversible control trim, in which the flight controls are pre-loaded to modify the centering point. The flight control moves to the new centering point even if no airflow over the control is present
  3. Trimmable horizontal stabilizer, in which the center point of the elevator itself does not change, but rather the incidence of the whole stabilizer is changed, providing up or down force.

X-Plane 12 allows assigning different types of trim to different axes, so it is possible to have a trim tab on the elevator, but a pre-loaded centering spring on the rudder, as is common with many general aviation aircraft like the Cessna 182.

For aircraft creators

If your aircraft is configured to have a trimmable horizontal stabilizer, there is no change in behavior from X-Plane 11. You continue to define the stabilizer deflection range, and set the amount of available elevator trim to 0. The “elevator trim” input is translated into a change in stabilizer incidence and the elevator itself remains untouched. You might want to look into changing the behavior of aileron and rudder trim for your aircraft though, as most airliners do not use tabs on ailerons and rudders, but change the center point of the flight controls instead. This won’t change the behavior in flight (with airflow), only the response on the ground (no airflow).

If you are using the control surface override sim/operation/override/override_control_surfaces to write your own control deflections to all surfaces you will need to actuate the THS directly with the dataref sim/flightmodel2/controls/stabilizer_deflection_degrees to set your trim. Your pitch trim input is no longer automatically applied to the stabilizer incidence if you are overriding the flight controls since you indicated you are responsible for it.

By default, aircraft will have non-reversible trim systems that require airflow to change the flight control deflection. This was the default behavior in X-Plane 11 and before. The only difference now is that the change in center point will be visibly reflected in the datarefs sim/cockpit2/controls/total_pitch_ratio, /total_roll_ratio and /total_heading_ratio
By ticking the checkbox for reversible trim in an axis, the trim is applied to the flight control directly even when there’s no airflow.

With sufficient airflow, there will be no difference in behavior whatsoever between both types of trim.

For hardware makers and cockpit builders

In the past, using control loading hardware in combination with anything but a trimmable horizontal stabilizer required editing the aircraft to have 0 elevator trim range to get realistic control loading behavior.

In X-Plane 12, the flight control hardware instead can configure an axis as control loaded, by adding the keyword “ffb” to the axis definition in its .joy file, like so:

Axis 2: joy_use_roll
Axis 1: joy_use_ptch ffb
Axis 0: joy_use_thro reverse

This would signify a flight control hardware where the pitch axis is control loaded, but not the roll axis. The throttle axis is reversed. The keywords “reverse” and “ffb” can also be used together if necessary.

Signifying the axis as control-loaded, X-Plane will expect the control loading software to read the respective trim datarefs, and provide forces to center the axis according to trim. X-Plane will not try to second-guess the control loading software and will not apply any center offset due to trim on its own.



  • Aircraft Development

Article type:

  • Tech Note


  • X-Plane 12