<– Back to “Improved Game Link Profile for MSFS 2020/2024”
This profile makes use of three custom inputs I added to the Game Link MSFS plugins: roll_dynamic, pitch_dynamic and yaw_dynamic. You can see the code for these plugins on GitHub. (They make use of some math functions that are not currently available in Game Link.)
This profile was designed for use with the Yaw 3. I’m told it works with the Yaw 2 but I don’t know if it behaves exactly the same or if the multipliers I use need to be tuned for use with the Yaw 2.
This table describes how positive and negative values are interpreted by MSFS and the Yaw 3 motion rig:
negative | positive | |
MSFS x axis (lateral) | left | right |
MSFS y axis (vertical) | down | up |
MSFS z axis (longitudinal) | backward | forward |
Yaw 3 Motion Rig | pitch up, roll right | pitch down, roll left |
Simulates sideways forces based on lateral acceleration. The roll_dynamic version (“Coordinated” profile) uses the turn_coordinator_ball variable to dampen acceleration data to simulate how coordinated forces are balanced laterally and directed down into the seat in a real aircraft. In other words, the motion rig will not tilt to one side or the other when the turn is coordinated but only backwards to simulate the increased force down into the seat. However, the raw accelerationBodyX version (“Raw” profile) ignores this effect and treats all lateral forces as uncoordinated: the motion rig will always tilt into the turn.
Since this doesn’t use the aircraft’s roll attitude as its input, we get nice side benefits like feeling side-slips, cross-winds, turbulence, rough landings, etc. – anything that’ll come through in acceleration telemetry. However, I think this is somewhat dampened in the roll_dynamic version for now.
Keep in mind that this is based on acceleration which is a measure of change in velocity over time. We feel change in velocity (including direction), not constant velocity. As long as an acceleration is ongoing, you can feel it and the profile will simulate that by maintaining the tilt.
Adds initial sideways sensation of initiating a change in roll attitude. Helps things feel more responsive.
Used to simulate how downward gravity force shifts front-to-back with pitch attitude and is reduced with bank angle. (This custom variable is based on trigonometry instead of raw pitch angle.)
Used to simulate positive and negative G’s from body-relative vertical acceleration – tilting back for positive, forward for negative. This applies regardless of orientation: in turns, climbs, dives, etc. Since this doesn’t use pitch attitude for its input, you’ll get nice side benefits like feeling turbulence, rough landings, stalls, etc. – anything that’ll come through in acceleration telemetry. I’ve kept this separate from pitch_dynamic to allow for easier relative scaling adjustments.
Remember that this is acceleration data which reflects ongoing change in velocity, not constant velocity. This means that it tilts back or forward only as long as you’re increasing or decreasing your climb or descent rate — it will ease off when your climb or descent rate turns constant. Or it’ll pitch the opposite direction as you start to reverse a dive or climb — even while the aircraft is still pitched up or down. Again, this is simulating the forces felt, not the orientation of the aircraft.
Used to simulate forward/backward acceleration — tilting back for forward acceleration. As with all acceleration data, this is reflecting changes in velocity, not constant velocity. This means that it tilts back or forward only as long as you’re increasing or decreasing velocity.
Used to simulate rotation about the body-relative vertical axis (yaw). This custom input variable tries to scale the magnitude of the motion based on the size of the aircraft and how far you would be from the center of rotation. There’s no length telemetry in MSFS so it uses the totalWeightYawMOI data as a rough substitute. It uses Game Link’s INCREMENT type to rotate by increments rather than moving to a specific position. If you have a yaw limit set, Game Link will stop moving in that direction but it will still allow movement in the opposite direction.
Used to simulate turning motions while on ground only. Tests for being both on ground and not a helicopter to avoid double rotation.
Used to simulate turning motions while in a helicopter, regardless of on ground or not. (Kept separate from the above to allow for independent scaling.)
Set to allow vibration effects to trigger up to 50 times per second. Whether a vibration occurs at any given moment depends on what input is sent to AMP. Turning this off will disable all vibration effects.
There’s an upper limit to how quickly the Yaw 3 can vibrate. It feels like it tops out somewhere under 100 Hz.
Simulates engine vibrations for piston engines only (more rough).
Simulates engine vibrations for all non-piston engines only (more smooth).
Simulates ground surface vibrations on up to three contact points (like nose gear, left & right gear) and it’s scaled up by velocity.
Applies only to aircraft models with mis-numbered contact points (eg, Cessna 172): same as above, simulates ground surface vibrations on up to three contact points.
Vertical/Horizontal Axes Someday?
The Yaw 3 only supports roll, pitch and yaw motion but if there were ever an ability to add vertical and horizontal translation motions (“heave”, “surge”, “sway”), the trick would be to modify the profile to separate transitory forces (like turbulence) from long duration ones (like positive/negative G’s) in the x,y,z body-relative acceleration data from MSFS (maybe with high and low pass filtering) – and to do so without introducing lag.
Version History
Version 2.1, 2025-02-11 (download): Requires Game Link v2.73 or newer
- Depends on my updated custom plugins for both MSFS 2024 and 2020
- –> These are included in Game Link v2.73 and later so I’ve removed them from the package but they can be downloaded separately here.
- Now keeps telemetry (and motion rig) disabled while selecting an aircraft or loading a flight
- No more unexpected motion while loading!!
- Added new custom variables
- roll_dynamic – rough simulation of coordinated lateral forces
- pitch_dynamic – acceleration from vertical gravity component based on pitch and bank angles
- yaw dynamic – rotational acceleration scaled by aircraft size
- Renamed “velocity” input variable as “ground velocity” to clarify which MSFS variable this is.
- Added MSFS variables “sim on ground”, “delta heading rate”, “total weight yaw MOI”
- Replaced timer code with more efficient function
- Improved roll effects:
- Improved roll initiation effect by limiting strength
- Removed misguided inertial/centrifugal effect
- Uses actual lateral acceleration forces now — which means:
- No longer based on roll orientation to fake forces
- Includes lateral effects of turbulence now (not just in pitch & yaw)
- Includes lateral effects from side-slipping
- Two versions of roll behavior now:
- “RAW” version (uses raw accelerationBodyX):
- Less realistic but more consistent and more responsive (not dampened)
- Does NOT simulate coordinated forces
(tilts to the inside of banked turns even when it shouldn’t)
- “COORDINATED” version (uses roll_dynamic):
- More realistic but less responsive (dampened)
- Rough simulation of coordinated vs uncoordinated lateral forces
- Expect some unintuitive but realistic behaviors:
- No sideways tilt in a banked turn when the forces are balanced and coordinated into your seat
- Feel slip or skid to the inside or outside of a turn
- Pitching down in smaller planes generates an uncoordinated side force despite being level
- (Surprised me — I had to look up why it was happening.)
- Different planes have different designs and will behave differently
- dihedral wings, yaw damping, differential ailerons, swept wings, etc
- some will and some won’t need rudder correction to keep coordinated to various degrees
- some planes won’t generate any lateral force during normal banked turns
- CAVEATS since it relies on MSFS’s “turn coordinator ball” variable:
- Dampened and oscillates in big maneuvers
- Doesn’t behave consistently in some aircraft? (eg, seems to stick in F/A-18 Hornet)
- May diminish lateral turbulence feeling?
- Improved pitch effects:
- Improved turbulence effects during high G maneuvers
- Removed direct dependency on pitch attitude:
- gravity/lift component now comes from trig components of pitch/bank angles
- better handling of positive/negative g forces (ascent/descent, stalls, etc)
- Adjusted yaw effects:
- Rotational acceleration effect now scaled to size of aircraft (slower for larger aircraft)
- —> still needs more tuning though
- Fixed double application of rotation while helicopter still in contact with ground
- Rotational acceleration effect now scaled to size of aircraft (slower for larger aircraft)
- Adjusted vibration effects:
- Restored and improved runway surface vibrations (accidentally disabled in 2.0)
- Added workaround for badly configured aircraft (missing or misnumbered contact points)
- Adjusted prop plane engine rpm vibrations
Version 2.01, 2025-01-19 (download):
- Patch fix: Removed line in MSFS plugins (not profile) that was pausing sim if it saw an extreme altitude (> 53818 ft)
- Such altitudes are actually possible and not necessarily invalid
Version 2.0, 2025-01-15 (download):
- Includes custom plugins for both MSFS 2024 and 2020
- Provides McFredward’s nice additions like smoothly transitioning to neutral position when you pause the sim
- Includes his added input variables (normalized roll and yaw values, etc.)
- Fixes a problem in YawVR’s original plugin where many input variables are mislabeled or have wrong values.
- Old profiles are not compatible with this plugin and can even crash Game Link!
- Took advantage of this situation to reorganize/regroup existing variables
- Adds various new input variables like Airspeed, Engine Type, Engine Count, Sim Pause State, etc.
- Reorganized the list of input variables
- Provides McFredward’s nice additions like smoothly transitioning to neutral position when you pause the sim
- Adjusted roll effects:
- roll amount now normalized with pitch angle (better behavior with extreme pitch)
- Adjusted pitch effects:
- Tuned overall pitch effect again
- Adjusted vibration effects:
- Improved contact/compression point handling for landing impacts
- oops: looks like I also broke runway surface vibrations (fixed in 2.1)
- Improved handling of engine rpm vibrations
- Now piston engines are handled differently than all others (turboprops, jets)
- Reduced significantly for non-piston engines
- I recommend adding transducers and using SimHaptic
- has different effects for different aircraft, responds to rpm, plus many other kinds of haptics
- Improved contact/compression point handling for landing impacts
My pre-2.0 profiles are no longer compatible because there was a bug in the original plugins that caused many of the telemetry variables to give incorrect values. Game Link’s plugins were updated to include my fix and other improvements.
Version 1.3, 2025-01-03 (download) – no longer compatible with current Game Link!
- Adjusted yaw effects:
- restricted rotational velocity effect to aircraft with rotors (helicopters)
- previous conditional would cause yaw jump when transitioning between slow and fast flight
- now relying on only rotational acceleration for yaw effects on ground and in flight for fixed wing aircraft
- reduced amount of yaw on rotational acceleration slightly
- restricted rotational velocity effect to aircraft with rotors (helicopters)
- Adjusted roll effects:
- reduced roll amount for rotational acceleration (essentially ground movements)
- Adjusted pitch effects:
- restored lost acceleration variable – now responds better to turbulence and ground impact on landing
- increased overall pitch effect
- Adjusted vibration effects:
- added contact/compression point for rear wheels (most noticeable on landings)
- reduced intensity of engine rpm vibrations
- -50% for single engine, even less with more engines (bigger aircraft)
- still doesn’t correspond well to engine type or engine rpm
- can’t make smooth or realistic enough and make smoother with faster engine rpm
- I recommend disabling this and adding transducers and using SimHaptic instead
- has different effects for different aircraft, responds to rpm, plus many other kinds of haptics
Version 1.2, 2024-12-29: (download) – no longer compatible with current Game Link!
- Adjusted roll effects:
- Handles full roll over smoothly now by reversing roll past +/-90 degrees
- moves as slow or as fast as the roll maneuver now
- full inverted ends up full upright
- Strengthened main inverse roll effect slightly
- Disabled additional roll effect from rotational acceleration
- can’t find a way to gently washout the return motion
- Added inverse roll from yaw movements using rotational velocity
- adds centrifugal force feel to yaw maneuvers
- also good for ground steering motion
- Handles full roll over smoothly now by reversing roll past +/-90 degrees
- Adjusted pitch effects:
- Strengthened pitch effects to include some missing pitch motions
- Adjusted longitudinal acceleration to not drown out rotational acceleration
- Removed smoothing that was masking aircraft shake during extreme pitching
- Adjusted yaw effects:
- reduced multiplier on rotational acceleration and removed smoothing
- need a way to washout unwanted return movement though
- Limited rotational velocity-based yaw motion to slow speeds
- still gives ground taxiing motions and helicopter hovering rotations
- added bonus of simulating stall/tail spin with yaw sliding/slipping effect
- reduced multiplier on rotational acceleration and removed smoothing
- Vibration effects:
- Restored constant vibration frequency to 50 Hz
- Can’t feel difference with higher hertz, lower values are even rougher
- I’ve switched to using dedicated transducers and SimHaptic
- Much more immersive and provides lots of different telemetry haptics
- Restored constant vibration frequency to 50 Hz
Version 1.1, 2024-12-25: (download) – no longer compatible with current Game Link!
- Redesigned around focusing on mimicking perceived forces rather than aircraft orientation
- Inverse roll effect to mimic centrifugal force plus secondary longitudinal rotational velocity
- (need to find a way to calculate true force of turn rather than using roll position)
- Pitch effect to mimic longitudinal acceleration and velocity
- Inverse pitch effect for dive/climb forces overcoming gravity
- Inverse roll effect to mimic centrifugal force plus secondary longitudinal rotational velocity
- Added yaw effect based on rotational acceleration and velocity
- Tweaked vibration hertz value but left McFredward‘s engine vibrations as is
- engine vibrations still feel too rough