Microsoft Flight Simulator 2024 & 2020
FFB-Bridge talks to Microsoft Flight Simulator over SimConnect's TCP transport — both MSFS 2024 and MSFS 2020 are supported. On a fresh install this works out of the box on Windows and needs a single config tweak under Linux / Proton. The bridge's Support page (sidebar → Support → Health checks) can do the tweak for you — this guide covers both the one-click path and the manual one.
MSFS connects on Windows and Linux. The macOS build supports X-Plane only — see X-Plane 11 / 12.
What MSFS installation do you have?
The default SimConnect location depends on how MSFS was installed. The paths below are for MSFS 2024, which FFB-Bridge auto-detects across all three install sources. It helps to know which one you're on if something goes sideways.
MSFS 2020 connects the same way over SimConnect TCP. The bridge's auto-detection and one-click Health-check fixes target the 2024 config file, so on 2020 you may need to confirm the port the bridge is using (it defaults to 500 on Windows). If 2020 listens on a non-standard port, set it from the
SimConnect config Health-check row, or point the bridge straight at the file with
FFB_BRIDGE_MSFS_CONFIG=<path-to-SimConnect.xml>.
| Install | SimConnect.xml location |
|---|---|
| Win Steam / standalone | %APPDATA%\Microsoft Flight Simulator 2024\SimConnect.xml |
| Win Microsoft Store / Xbox Game Pass | %LOCALAPPDATA%\Packages\Microsoft.Limitless_8wekyb3d8bbwe\LocalCache\SimConnect.xml |
| Linux Steam + Proton | ~/.steam/steam/steamapps/compatdata/2537590/pfx/drive_c/users/steamuser/AppData/Roaming/Microsoft Flight Simulator 2024/SimConnect.xml |
Windows — out of the box
Every stock MSFS 2024 install ships with SimConnect TCP enabled on port 500, bound to all IPv4 interfaces. The bridge defaults to 127.0.0.1:500 on Windows. Launch MSFS, then launch FFB-Bridge — the
Sim chip on the Dashboard should go green within a second or two of the sim reaching the main menu.
If it doesn't, open the Support page and run Health checks. The SimConnect config row tells you what it found in the XML and whether the port it's using matches the port the bridge is talking to.
Ports other than 500
Some tools — FSUIPC, SPAD.neXt — add their own TCP entries in the same SimConnect.xml. If MSFS is listening on a different port than the bridge expects, the
SimConnect config row on the Support page's Health checks tab offers an inline Use port :X
button. Click it and the bridge's preferences are updated to that port; no MSFS restart needed.
Linux — one-click fix via the Support page
MSFS under Proton ships the same stock SimConnect.xml
as the Windows build, with TCP listening on port
500. But Linux treats ports below 1024 as privileged, and the Proton user-namespace process cannot bind them. The listen silently fails and no socket ever opens.
The fix is to add a parallel <SimConnect.Comm>
entry on an unprivileged port (the bridge uses 5111 by default). Open the Support page → Health checks; the SimConnect config row will show the privileged port and offer a Fix… button.


Fix… merges a new entry into the existing XML (never rewrites it). If the existing file is unparseable, the installer first backs it up as
SimConnect.xml.bak-YYYY-MM-DD-HHMMSS and writes a fresh generated config. Either way, restart MSFS after the install so it re-reads SimConnect.xml.
FFB-Bridge probes the well-known prefixes for Steam, Steam-Flatpak, Heroic, and Lutris. If you run MSFS from a non-standard location, set
FFB_BRIDGE_MSFS_PREFIX=/path/to/prefix in your environment before launching the bridge. For a bare-metal override of just the XML file,
FFB_BRIDGE_MSFS_CONFIG=/path/to/SimConnect.xml
takes precedence.
Manual configuration
If you'd rather hand-edit, the XML looks like this:
<?xml version="1.0" encoding="Windows-1252"?>
<SimBase.Document Type="SimConnect" version="1,0">
<Descr>SimConnect Client Configurations</Descr>
<Filename>SimConnect.xml</Filename>
<!-- FFB-Bridge: unprivileged TCP for Proton-on-Linux -->
<SimConnect.Comm>
<Descr>FFB-Bridge TCP</Descr>
<Protocol>IPv4</Protocol>
<Scope>local</Scope>
<Port>5111</Port>
<MaxClients>64</MaxClients>
<MaxRecvSize>41088</MaxRecvSize>
<DisableNagle>False</DisableNagle>
</SimConnect.Comm>
<!-- Keep any existing entries below this line. -->
</SimBase.Document>
After saving, open FFB-Bridge's Mock Sim page, switch the input source back to Live, and the bridge will pick up the new config. You can also go to the Support page → Diagnostics and watch the log for SimConnect connected after relaunching MSFS.
SimVars the bridge reads
For reference — you don't need to configure any of this — here's the set of MSFS SimVars the bridge subscribes to:
AIRSPEED INDICATEDAIRSPEED MACHG FORCEELEVATOR POSITIONAILERON POSITIONELEVATOR TRIM PCTAILERON TRIM PCTSTALL WARNINGOVERSPEED WARNINGSIM ON GROUNDGROUND VELOCITYVERTICAL SPEEDBRAKE LEFT POSITIONBRAKE RIGHT POSITIONGEAR HANDLE POSITIONFLAPS HANDLE INDEXTRAILING EDGE FLAPS LEFT PERCENTTRAILING EDGE FLAPS RIGHT PERCENTAUTOPILOT MASTERSPOILERS HANDLE POSITIONROTATION VELOCITY BODY XROTATION VELOCITY BODY ZGENERAL ENG REVERSE THRUST ENGAGED:1SURFACE TYPEGENERAL ENG PCT MAX RPM:1GENERAL ENG COMBUSTION:1TITLEATC MODELCATEGORYCAMERA STATEACCELERATION BODY XROTATION ACCELERATION BODY XROTATION ACCELERATION BODY ZROTATION ACCELERATION BODY YCRASH FLAGELEVATOR DEFLECTIONAILERON LEFT DEFLECTIONINCIDENCE BETAENG VIBRATION:1CONTACT POINT COMPRESSION:0CONTACT POINT COMPRESSION:1CONTACT POINT COMPRESSION:2AUTOPILOT FLIGHT DIRECTOR BANKAUTOPILOT FLIGHT DIRECTOR PITCHACCELERATION BODY ZROTOR RPM PCT:1ROTOR GOV ACTIVE:1COLLECTIVE POSITION
If MSFS doesn't recognise a variable name, the bridge logs it as a warning on the Diagnostics page but continues — missing variables default to sensible zeros. This is how the bridge tolerates third-party aircraft that don't implement every SimVar.
Troubleshooting
See Troubleshooting for:
- MSFS connects but no forces — most often the ARM gauge in the top strip is still DISARMED; covered there.
- MSFS pause / Active Pause quiets dynamic effects immediately and holds a neutral spring while paused.
- If a long stutter or pause drops roll force after resume, export a support bundle and file feedback from the same session.