ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0.1 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm |
| Last Crawled | 2026-04-08 13:20:21 (2 days ago) |
| First Indexed | 2021-03-07 22:59:42 (5 years ago) |
| HTTP Status Code | 200 |
| Meta Title | SimConnect SDK |
| Meta Description | null |
| Meta Canonical | null |
| Boilerpipe Text | The
SimConnect SDK
can be used by programmers to write add-on components that communicate with
Microsoft Flight Simulator 2020
. Both
in-process
modules and
out-of-process
executables have access to the SimConnect
API
, noting the following:
Out-of-process
add-on components for Microsoft Flight Simulator can be written in C, C++, or - if the managed API calls are being used - any .NET language such as C#.net or VB.net.
In-process
modules are written in C++ and compiled into WebAssembly modules.
Typically the components and modules using the SimConnect SDK will perform one or more of the following:
Add the processing for a new complex gauge, or other instrument, to
Microsoft Flight Simulator 2020
.
Replace
Microsoft Flight Simulator 2020
processing of one or more events with new logic.
Record or monitor a flight.
Extend the mission system of
Microsoft Flight Simulator 2020
.
Create and set the flight plans for AI (non-user) aircraft.
Enable new hardware to work with
Microsoft Flight Simulator 2020
.
Control an additional camera that the user can optionally select to view.
Communicate with other SimConnect clients.
The pages available in this section are:
SimConnect API Reference
Programming SimConnect Clients using Managed Code
SimConnect Samples
You can find information on how you can use the DevMode
SimConnect debug tool
to help you find issues and errors with your SimConnect apps here:
SimConnect Inspector
You can also find additional helpful information from the following pages:
Simulation Variables
Simulation Event IDs
Finally, there are some pages relating to legacy files that could be used for configuring and debugging SimConnect client/server communications (these files can still be used, although it's not recommended any longer and the functionality may be removed or changed in the future):
INI Definition
CFG Definition
XML Definition
Setup
This section describes how to set up a working development environment for SimConnect.
WebAssembly Modules
WebAssembly modules can use SimConnect internally, provided as part of the SDK. It is only required to
inlcude "simconnect.h"
. More information in
WebAssembly modules
.
C/C++ Projects
To build SimConnect add-ons, the recommended Visual Studio version is Visual Studio 2019, with a minimum version of 2005. To build the project, make sure you have completed the following steps.
For out-of-process applications, start a new
Console Application
project if the add-on will have no user interface. Start a new MFC Application if the add-on will have a user interface. In either case, set the platform as
x64
. In order to use the SimConnect functionality, it is required to include the
SimConnect.h
header file.
include "SimConnect.h"
The dependencies can be either configured
Using the Property Manager
, or via
Manual Configuration
.
Using the Property Manager
The SDK now provides Visual Studio property sheet. It can be included in:
Property Manager -> (select project) -> Add Existing Property Sheet
And selecting the Property Sheet provided in the SDK:
$(MSFS_SDK)\SimConnect SDK\VS\SimConnectClient.props
Manual Configuration
Alternatively, the configuration can be performed manually, by performing the following steps:
Add the SimConnect include folder (
$(MSFS_SDK)\SimConnect SDK\include
) to the
Additional Includes
:
Add SimConnect from the library directory (
$(MSFS_SDK)\SimConnect SDK\lib
) to the
Additional Library Directories
:
Link to the
SimConnect.lib
library, by adding the following dependencies to
Additional dependencies
:
SimConnect.lib
shlwapi.lib
user32.lib
Ws2_32.lib
Build the application using the function calls described in this document.
C# / .NET / VB.NET Projects
For C#, or other .NET language add-ons, refer to the special section on
Programming SimConnect Clients using Managed Code
, but general procedure is:
Build the application using the function calls described in this document.
An example is given with the
SimvarWatcher sample
.
Design Considerations
The design of a SimConnect add-on involves writing a client to communicate with a server running within
Microsoft Flight Simulator 2020
. The client opens up communications with the server, then requests that certain events and certain object information is passed to it. The client then waits for the information to be received from the server, and then processes it appropriately.
The recommended method of writing an add-on is to build it
out-of-process
as an application (an
.exe
file) rather than
in-process
(a
WASM
module). This is because out-of-process applications provide more stability, if they crash they typically will not crash
Microsoft Flight Simulator 2020
, and they are easier to build, test and debug. Out-of-process also supports managed code, and therefore applications can be written in
.NET
languages with their rich support for objects and ease of building the UI.
SimConnect clients are not currently thread-safe
.
SimConnect makes extensive use of ID numbers defined by the client. There are ID numbers for requests, data definitions, events, groups, and so on. These ID numbers should be unique for the client. Re-using an ID will result in the previous call using that ID becoming obsolete, and thus being ignored by the server. |
| Markdown | [Skip To Main Content](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#rh-topic "Skip To Main Content")
[SDK Documentation](https://docs.flightsimulator.com/html/Introduction/Introduction.htm "SDK Documentation")
Contents
Index
Glossary
- [Introduction](https://docs.flightsimulator.com/html/Introduction/Introduction.htm "Introduction")
- [Samples, Schemas, Tutorials and Primers](https://docs.flightsimulator.com/html/Samples_And_Tutorials/Samples_And_Tutorials.htm "Samples, Schemas, Tutorials and Primers")
- [Developer Mode](https://docs.flightsimulator.com/html/Developer_Mode/Developer_Mode.htm "Developer Mode")
- [External Asset Creation](https://docs.flightsimulator.com/html/Asset_Creation/Asset_Creation.htm "External Asset Creation")
- [Content Configuration](https://docs.flightsimulator.com/html/Content_Configuration/Content_Configuration.htm "Content Configuration")
- [Programming APIs](https://docs.flightsimulator.com/html/Programming_Tools/Programming_APIs.htm "Programming APIs")
- [SimConnect SDK]("SimConnect SDK")
- [Programming SimConnect Clients using Managed Code](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/Programming_SimConnect_Clients_using_Managed_Code.htm "Programming SimConnect Clients using Managed Code")
- [SimConnect CFG Definition](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_CFG_Definition.htm "SimConnect CFG Definition")
- [SimConnect INI Definition](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_INI_Definition.htm "SimConnect INI Definition")
- [SimConnect XML Definition](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_XML_Definition.htm "SimConnect XML Definition")
- [SimConnect API Reference](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_API_Reference.htm "SimConnect API Reference")
- [WebAssembly](https://docs.flightsimulator.com/html/Programming_Tools/WASM/WebAssembly.htm "WebAssembly")
- [JavaScript](https://docs.flightsimulator.com/html/Programming_Tools/JavaScript/JavaScript.htm "JavaScript")
- [Simulation Variables](https://docs.flightsimulator.com/html/Programming_Tools/SimVars/Simulation_Variables.htm "Simulation Variables")
- [GPS Variables](https://docs.flightsimulator.com/html/Programming_Tools/GPSVars/GPS_Variables.htm "GPS Variables")
- [Environment Variables](https://docs.flightsimulator.com/html/Programming_Tools/Environment_Variables.htm "Environment Variables")
- [Event IDs](https://docs.flightsimulator.com/html/Programming_Tools/Event_IDs/Event_IDs.htm "Event IDs")
- [Additional Information](https://docs.flightsimulator.com/html/Additional_Information/Additional_Information.htm "Additional Information")
- [How To Create An Aircraft](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/How_To_Create_An_Aircraft.htm "How To Create An Aircraft")
- [World Hub](https://docs.flightsimulator.com/html/WorldHub/World_Hub.htm "World Hub")
- [3DS Max]("3DS Max")
- [Additional Information]("Additional Information")
- [Aerodynamics](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/Flight_Model/Basic_Aerodynamics.htm?agt=index "Aerodynamics")
- [Ailerons](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Animations/Animating_Ailerons.htm?agt=index "Ailerons")
- [Aircraft]("Aircraft")
- [Aircraft Editor Menu - Resync](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/The_Flight_Model.htm?agt=index#resync "Aircraft Editor Menu - Resync")
- [Aircraft Editor Menu - Save And Resync](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/The_Flight_Model.htm?agt=index#save_resync "Aircraft Editor Menu - Save And Resync")
- [Aircraft Samples]("Aircraft Samples")
- [aircraft.xml](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/model.htm?agt=index "aircraft.xml")
- [Airframe]("Airframe")
- [Airports And Facilities]("Airports And Facilities")
- [Ambient Occlusion](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/Texturing/Ambient_Occlusion.htm?agt=index "Ambient Occlusion")
- [Animation]("Animation")
- [Animations Overview](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/Animations.htm?agt=index "Animations Overview")
- [Asset Creation]("Asset Creation")
- [Audio]("Audio")
- [Autopilot]("Autopilot")
- [Balance](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/Flight_Model/Weight_And_Balance.htm?agt=index "Balance")
- [Biomes]("Biomes")
- [Blender]("Blender")
- [Building](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/Package_Building.htm?agt=index "Building")
- [Button Animation](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/Animations/Button_Animation.htm?agt=index "Button Animation")
- [Cameras]("Cameras")
- [CFD](https://docs.flightsimulator.com/html/Developer_Mode/Aircraft_Editor/Debug/Debug_Aircraft_CFD.htm?agt=index "CFD")
- [CFG Files]("CFG Files")
- [Checklists]("Checklists")
- [Cockpit]("Cockpit")
- [Collision Mesh]("Collision Mesh")
- [Contact Points](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/Flight_Model/Wheels_And_Contact_Points.htm?agt=index "Contact Points")
- [Creating The Project](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Creating_The_Project.htm?agt=index "Creating The Project")
- [Debugging]("Debugging")
- [Decals](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/Texturing/Decals.htm?agt=index "Decals")
- [Developer Mode]("Developer Mode")
- [Dirt](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Texturing/Surface_Detail.htm?agt=index "Dirt")
- [Elevator](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Animations/Animating_The_Elevator.htm?agt=index "Elevator")
- [Emissive Elements](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/Texturing/Emissive_Materials.htm?agt=index "Emissive Elements")
- [Engines](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Animations/Animating_Engines.htm?agt=index "Engines")
- [Environment]("Environment")
- [Environment Variables](https://docs.flightsimulator.com/html/Programming_Tools/Environment_Variables.htm?agt=index "Environment Variables")
- [Examples]("Examples")
- [Exporting](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Model_Exporting.htm?agt=index "Exporting")
- [File Formats]("File Formats")
- [File Setup](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/File_Setup.htm?agt=index "File Setup")
- [Files]("Files")
- [Flight Model]("Flight Model")
- [Flights And Missions]("Flights And Missions")
- [flt](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/Additional_Information/FLT_Files.htm?agt=index "flt")
- [Gauges]("Gauges")
- [Geometry](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/Flight_Model/Geometry.htm?agt=index "Geometry")
- [Geometry Optimisation](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/Geometry_Optimisation.htm?agt=index "Geometry Optimisation")
- [Helicopters]("Helicopters")
- [Ice](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Texturing/Ice.htm?agt=index "Ice")
- [Instruments]("Instruments")
- [JavaScript]("JavaScript")
- [Landing Gear](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Animations/Animating_Landing_Gear.htm?agt=index "Landing Gear")
- [Licencing]("Licencing")
- [Lights]("Lights")
- [Livery](https://docs.flightsimulator.com/html/Samples_And_Tutorials/Samples/SimObjects_Aircraft/LiveryAircraft.htm?agt=index "Livery")
- [Living World]("Living World")
- [Localization]("Localization")
- [LODs]("LODs")
- [LODs - Aircraft LODs](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/LODs/LODs.htm?agt=index "LODs - Aircraft LODs")
- [Marketplace]("Marketplace")
- [Material Contrast](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/LODs/Material_Contrasts.htm?agt=index "Material Contrast")
- [Material Mapping](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/Texturing/Material_Mapping.htm?agt=index "Material Mapping")
- [Materials]("Materials")
- [Model Behaviors]("Model Behaviors")
- [model.cfg](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/model.htm?agt=index "model.cfg")
- [Modelling]("Modelling")
- [Modelling Process](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/The_Modelling_Process.htm?agt=index "Modelling Process")
- [Models]("Models")
- [Naming Conventions](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/File_Setup.htm?agt=index "Naming Conventions")
- [Occluder](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/Collision_Meshes.htm?agt=index "Occluder")
- [Package Building](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/Package_Building.htm?agt=index "Package Building")
- [Package Tool]("Package Tool")
- [Preparation]("Preparation")
- [Primers]("Primers")
- [Programming Tools]("Programming Tools")
- [Project Editor]("Project Editor")
- [Propellers](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Texturing/Propellers_And_Turbines.htm?agt=index "Propellers")
- [Registration Numbers](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Texturing/Registration_Numbers.htm?agt=index "Registration Numbers")
- [Rivets And Bumps](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Texturing/Surface_Detail.htm?agt=index "Rivets And Bumps")
- [RTCs]("RTCs")
- [Rudder](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Animations/Animating_The_Rudder.htm?agt=index "Rudder")
- [Samples]("Samples")
- [Scenery]("Scenery")
- [SDK]("SDK")
- [Silhouette](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/LODs/Material_Contrasts.htm?agt=index "Silhouette")
- [SimConnect]("SimConnect")
- [SimObjects]("SimObjects")
- [SimVars]("SimVars")
- [Size On Screen](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/LODs/Size_On_Screen.htm?agt=index "Size On Screen")
- [Sounds / Audio]("Sounds / Audio")
- [Surface Detail](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Texturing/Surface_Detail.htm?agt=index "Surface Detail")
- [Textures]("Textures")
- [Texturing]("Texturing")
- [Tools]("Tools")
- [Translucent Elements](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/Texturing/Translucent_Elements.htm?agt=index "Translucent Elements")
- [Turbines](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Texturing/Propellers_And_Turbines.htm?agt=index "Turbines")
- [Tutorials]("Tutorials")
- [Vehicles]("Vehicles")
- [Visual Effects]("Visual Effects")
- [Visual Effects Editor]("Visual Effects Editor")
- [VR](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/VR_Helpers.htm?agt=index "VR")
- [VR Helpers](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Cockpit/VR_Helpers.htm?agt=index "VR Helpers")
- [WASM / WebAssembly]("WASM / WebAssembly")
- [Weather]("Weather")
- [Weight](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Files/Flight_Model/Weight_And_Balance.htm?agt=index "Weight")
- [Wheels]("Wheels")
- [Windows](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Texturing/Windshield_And_Windows.htm?agt=index "Windows")
- [Windshield](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Texturing/Windshield_And_Windows.htm?agt=index "Windshield")
- [WingFlex](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Animations/WingFlex.htm?agt=index "WingFlex")
- [Wingflex Flaps](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Animations/WingFlex_-_Flaps.htm?agt=index "Wingflex Flaps")
- [Wingflex Slats](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Animations/WingFlex_-_Slats.htm?agt=index "Wingflex Slats")
- [Wingflex Spoilers](https://docs.flightsimulator.com/html/mergedProjects/How_To_Make_An_Aircraft/Contents/Modelling/Airframe/Animations/WingFlex_-_Spoilers.htm?agt=index "Wingflex Spoilers")
- [World Hub]("World Hub")
- [Wwise]("Wwise")
- [XML Files]("XML Files")
- [Yoke Animation]("Yoke Animation")
- ADC
- ADC
- add-ons
- add-ons
- ADF
- ADF
- ADI
- ADI
- ADPCM
- ADPCM
- AFM
- AFM
- AGL
- AGL
- AH
- AH
- AHRS
- AHRS
- ambisonic
- ambisonic
- AMSL
- AMSL
- AoA
- AoA
- AOC
- AOC
- API
- API
- APU
- APU
- ATC
- ATC
- BGL
- BGL
- bpp
- bpp
- Camber
- Camber
- CAS
- CAS
- CFD
- CG
- CG
- CGL
- CGL
- Chord
- Chord
- CoL
- CoL
- dB
- dB
- dBTP
- dBTP
- DDS
- DDS
- de-crab
- de-crab
- DEM
- DEM
- Dihedral
- Dihedral
- DME
- DME
- DoF
- DoF
- DRM
- DRM
- EAS
- ECU
- ECU
- EGT
- EGT
- ELT
- EPR
- EPR
- FAF
- FAF
- FIS
- FIS
- FL
- FL
- flaps
- flaps
- FLC
- FLC
- FOV
- FOV
- FSUIPC
- FSUIPC
- ft
- ft
- ftlbs
- ftlbs
- GA
- GA
- Gallon
- Gallon
- GDI+
- GDI+
- glTF
- glTF
- GPS
- GPS
- GPWS
- GPWS
- GUID
- GUID
- hp
- hp
- hPa
- IAF
- IAF
- IAS
- IAS
- ICAO
- ICAO
- ICAO code
- ICAO code
- ICU
- ICU
- IFR
- IFR
- ILS
- ILS
- Incidence
- Incidence
- inHg
- inHg
- ISA
- ITT
- ITT
- kcas
- kcas
- kias
- kias
- Knot
- Knot
- ktas
- ktas
- lbf
- lbs
- lbs
- LDA
- LDA
- LKFS
- LKFS
- LOD
- LOD
- LU
- LU
- MAC
- MAC
- Mach
- Mach
- Makefile
- Makefile
- MFD
- MFD
- MOI
- MOI
- mph
- mph
- MSL
- MSL
- MTOW
- MTOW
- N1
- N1
- N2
- N2
- NDB
- NDB
- nm
- nm
- OOI
- OOI
- OSM
- Oswald Efficiency Factor
- Oswald Efficiency Factor
- Pa
- Pa
- pbh
- pbh
- PBR
- PBR
- PCM
- PCM
- Percent Over 100
- Percent Over 100
- PFD
- PFD
- PID
- PID
- POH
- POH
- POI
- POI
- psf
- psf
- psi
- psi
- quadkey
- quadkey
- Rankine
- Rankine
- RNAV
- RNAV
- ROC
- ROC
- RPM
- RPM
- RTO
- RTO
- RTPC
- RTPC
- SDF
- SDF
- slug
- Slug sqft
- Slug sqft
- sqft
- sqft
- STOL
- STOL
- Sweep
- Sweep
- Tacan
- Tacan
- TAS
- TAS
- TCAS
- TIN
- TIN
- TOGA
- Twist
- Twist
- UI
- UI
- VASI
- VASI
- VFR
- VFR
- VFS
- VFS
- VMO
- VMO
- VOR
- VOR
- WASM
- WASM
- WEP
- WEP
- Zulu Time
- Zulu Time
- [× menu-close](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#menu-close)
- [☰ menu](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#menu)
[Home:](https://docs.flightsimulator.com/html/home.htm "Home:")
- [Programming APIs](https://docs.flightsimulator.com/html/Programming_Tools/Programming_APIs.htm "Programming APIs")
- [SimConnect SDK]("SimConnect SDK")
## SIMCONNECT SDK
The **SimConnect SDK** can be used by programmers to write add-on components that communicate with Microsoft Flight Simulator 2020. Both *in-process* modules and *out-of-process* executables have access to the SimConnect [API](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm), noting the following:
- **Out-of-process** add-on components for Microsoft Flight Simulator can be written in C, C++, or - if the managed API calls are being used - any .NET language such as C\#.net or VB.net.
- **In-process** modules are written in C++ and compiled into WebAssembly modules.
Typically the components and modules using the SimConnect SDK will perform one or more of the following:
- Add the processing for a new complex gauge, or other instrument, to Microsoft Flight Simulator 2020.
- Replace Microsoft Flight Simulator 2020 processing of one or more events with new logic.
- Record or monitor a flight.
- Extend the mission system of Microsoft Flight Simulator 2020.
- Create and set the flight plans for AI (non-user) aircraft.
- Enable new hardware to work with Microsoft Flight Simulator 2020.
- Control an additional camera that the user can optionally select to view.
- Communicate with other SimConnect clients.
The pages available in this section are:
- [SimConnect API Reference](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_API_Reference.htm)
- [Programming SimConnect Clients using Managed Code](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/Programming_SimConnect_Clients_using_Managed_Code.htm)
- [SimConnect Samples](https://docs.flightsimulator.com/html/Samples_And_Tutorials/Samples/VisualStudio/SimConnect_Samples.htm)
You can find information on how you can use the DevMode **SimConnect debug tool** to help you find issues and errors with your SimConnect apps here:
- [SimConnect Inspector](https://docs.flightsimulator.com/html/Developer_Mode/Menus/Tools/SimConnect_Inspector.htm)
You can also find additional helpful information from the following pages:
- [Simulation Variables](https://docs.flightsimulator.com/html/Programming_Tools/SimVars/Simulation_Variables.htm)
- [Simulation Event IDs](https://docs.flightsimulator.com/html/Programming_Tools/Event_IDs/Event_IDs.htm)
Finally, there are some pages relating to legacy files that could be used for configuring and debugging SimConnect client/server communications (these files can still be used, although it's not recommended any longer and the functionality may be removed or changed in the future):
- [INI Definition](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_INI_Definition.htm)
- [CFG Definition](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_CFG_Definition.htm)
- [XML Definition](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_XML_Definition.htm)
### Setup
This section describes how to set up a working development environment for SimConnect.
#### WebAssembly Modules
WebAssembly modules can use SimConnect internally, provided as part of the SDK. It is only required to `inlcude "simconnect.h"`. More information in [WebAssembly modules]().
#### C/C++ Projects
To build SimConnect add-ons, the recommended Visual Studio version is Visual Studio 2019, with a minimum version of 2005. To build the project, make sure you have completed the following steps.
For out-of-process applications, start a new **Console Application** project if the add-on will have no user interface. Start a new MFC Application if the add-on will have a user interface. In either case, set the platform as `x64`. In order to use the SimConnect functionality, it is required to include the `SimConnect.h` header file.
include "SimConnect.h"
The dependencies can be either configured [Using the Property Manager](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#using-the-property-manager), or via [Manual Configuration](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#manual-configuration).
##### Using the Property Manager
The SDK now provides Visual Studio property sheet. It can be included in:
Property Manager -\> (select project) -\> Add Existing Property Sheet
And selecting the Property Sheet provided in the SDK:
\$(MSFS\_SDK)\\SimConnect SDK\\VS\\SimConnectClient.props
##### Manual Configuration
Alternatively, the configuration can be performed manually, by performing the following steps:
- Add the SimConnect include folder (`$(MSFS_SDK)\SimConnect SDK\include`) to the `Additional Includes`:

- Add SimConnect from the library directory (`$(MSFS_SDK)\SimConnect SDK\lib`) to the `Additional Library Directories`:

- Link to the `SimConnect.lib` library, by adding the following dependencies to `Additional dependencies`:
- `SimConnect.lib`
- `shlwapi.lib`
- `user32.lib`
- `Ws2_32.lib`

- Build the application using the function calls described in this document.
#### C\# / .NET / VB.NET Projects
For C\#, or other .NET language add-ons, refer to the special section on [Programming SimConnect Clients using Managed Code](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/Programming_SimConnect_Clients_using_Managed_Code.htm), but general procedure is:
- Build the application using the function calls described in this document.
- An example is given with the [SimvarWatcher sample](https://docs.flightsimulator.com/html/Samples_And_Tutorials/Samples/VisualStudio/SimvarWatcher.htm).
### Design Considerations
The design of a SimConnect add-on involves writing a client to communicate with a server running within Microsoft Flight Simulator 2020. The client opens up communications with the server, then requests that certain events and certain object information is passed to it. The client then waits for the information to be received from the server, and then processes it appropriately.
The recommended method of writing an add-on is to build it **out-of-process** as an application (an `.exe` file) rather than **in-process** (a [WASM](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm) module). This is because out-of-process applications provide more stability, if they crash they typically will not crash Microsoft Flight Simulator 2020, and they are easier to build, test and debug. Out-of-process also supports managed code, and therefore applications can be written in `.NET` languages with their rich support for objects and ease of building the UI. **SimConnect clients are not currently thread-safe**.
SimConnect makes extensive use of ID numbers defined by the client. There are ID numbers for requests, data definitions, events, groups, and so on. These ID numbers should be unique for the client. Re-using an ID will result in the previous call using that ID becoming obsolete, and thus being ignored by the server.
In this Topic
1. [SIMCONNECT SDK](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#simconnect_sdk)
2. 1. [Setup](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#setup)
2. 1. [WebAssembly Modules](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#webassembly-modules)
2. [C/C++ Projects](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#cc-projects)
3. 1. [Using the Property Manager](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#using-the-property-manager)
2. [Manual Configuration](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#manual-configuration)
4. [C\# / .NET / VB.NET Projects](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#c-net-vbnet-projects)
3. [Design Considerations](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#design-considerations)
[©2023 Microsoft](https://www.microsoft.com/)
[Privacy Policy](https://privacy.microsoft.com/en-us/privacystatement)
[SDK Dev Support](https://devsupport.flightsimulator.com/)
[MSFS Forums](https://forums.flightsimulator.com/) |
| Readable Markdown | The **SimConnect SDK** can be used by programmers to write add-on components that communicate with Microsoft Flight Simulator 2020. Both *in-process* modules and *out-of-process* executables have access to the SimConnect [API](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/), noting the following:
- **Out-of-process** add-on components for Microsoft Flight Simulator can be written in C, C++, or - if the managed API calls are being used - any .NET language such as C\#.net or VB.net.
- **In-process** modules are written in C++ and compiled into WebAssembly modules.
Typically the components and modules using the SimConnect SDK will perform one or more of the following:
- Add the processing for a new complex gauge, or other instrument, to Microsoft Flight Simulator 2020.
- Replace Microsoft Flight Simulator 2020 processing of one or more events with new logic.
- Record or monitor a flight.
- Extend the mission system of Microsoft Flight Simulator 2020.
- Create and set the flight plans for AI (non-user) aircraft.
- Enable new hardware to work with Microsoft Flight Simulator 2020.
- Control an additional camera that the user can optionally select to view.
- Communicate with other SimConnect clients.
The pages available in this section are:
- [SimConnect API Reference](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_API_Reference.htm)
- [Programming SimConnect Clients using Managed Code](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/Programming_SimConnect_Clients_using_Managed_Code.htm)
- [SimConnect Samples](https://docs.flightsimulator.com/html/Samples_And_Tutorials/Samples/VisualStudio/SimConnect_Samples.htm)
You can find information on how you can use the DevMode **SimConnect debug tool** to help you find issues and errors with your SimConnect apps here:
- [SimConnect Inspector](https://docs.flightsimulator.com/html/Developer_Mode/Menus/Tools/SimConnect_Inspector.htm)
You can also find additional helpful information from the following pages:
- [Simulation Variables](https://docs.flightsimulator.com/html/Programming_Tools/SimVars/Simulation_Variables.htm)
- [Simulation Event IDs](https://docs.flightsimulator.com/html/Programming_Tools/Event_IDs/Event_IDs.htm)
Finally, there are some pages relating to legacy files that could be used for configuring and debugging SimConnect client/server communications (these files can still be used, although it's not recommended any longer and the functionality may be removed or changed in the future):
- [INI Definition](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_INI_Definition.htm)
- [CFG Definition](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_CFG_Definition.htm)
- [XML Definition](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_XML_Definition.htm)
### Setup
This section describes how to set up a working development environment for SimConnect.
#### WebAssembly Modules
WebAssembly modules can use SimConnect internally, provided as part of the SDK. It is only required to `inlcude "simconnect.h"`. More information in [WebAssembly modules]().
#### C/C++ Projects
To build SimConnect add-ons, the recommended Visual Studio version is Visual Studio 2019, with a minimum version of 2005. To build the project, make sure you have completed the following steps.
For out-of-process applications, start a new **Console Application** project if the add-on will have no user interface. Start a new MFC Application if the add-on will have a user interface. In either case, set the platform as `x64`. In order to use the SimConnect functionality, it is required to include the `SimConnect.h` header file.
include "SimConnect.h"
The dependencies can be either configured [Using the Property Manager](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#using-the-property-manager), or via [Manual Configuration](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_SDK.htm#manual-configuration).
##### Using the Property Manager
The SDK now provides Visual Studio property sheet. It can be included in:
Property Manager -\> (select project) -\> Add Existing Property Sheet
And selecting the Property Sheet provided in the SDK:
\$(MSFS\_SDK)\\SimConnect SDK\\VS\\SimConnectClient.props
##### Manual Configuration
Alternatively, the configuration can be performed manually, by performing the following steps:
- Add the SimConnect include folder (`$(MSFS_SDK)\SimConnect SDK\include`) to the `Additional Includes`:

- Add SimConnect from the library directory (`$(MSFS_SDK)\SimConnect SDK\lib`) to the `Additional Library Directories`:

- Link to the `SimConnect.lib` library, by adding the following dependencies to `Additional dependencies`:
- `SimConnect.lib`
- `shlwapi.lib`
- `user32.lib`
- `Ws2_32.lib`

- Build the application using the function calls described in this document.
#### C\# / .NET / VB.NET Projects
For C\#, or other .NET language add-ons, refer to the special section on [Programming SimConnect Clients using Managed Code](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/Programming_SimConnect_Clients_using_Managed_Code.htm), but general procedure is:
- Build the application using the function calls described in this document.
- An example is given with the [SimvarWatcher sample](https://docs.flightsimulator.com/html/Samples_And_Tutorials/Samples/VisualStudio/SimvarWatcher.htm).
### Design Considerations
The design of a SimConnect add-on involves writing a client to communicate with a server running within Microsoft Flight Simulator 2020. The client opens up communications with the server, then requests that certain events and certain object information is passed to it. The client then waits for the information to be received from the server, and then processes it appropriately.
The recommended method of writing an add-on is to build it **out-of-process** as an application (an `.exe` file) rather than **in-process** (a [WASM](https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/) module). This is because out-of-process applications provide more stability, if they crash they typically will not crash Microsoft Flight Simulator 2020, and they are easier to build, test and debug. Out-of-process also supports managed code, and therefore applications can be written in `.NET` languages with their rich support for objects and ease of building the UI. **SimConnect clients are not currently thread-safe**.
SimConnect makes extensive use of ID numbers defined by the client. There are ID numbers for requests, data definitions, events, groups, and so on. These ID numbers should be unique for the client. Re-using an ID will result in the previous call using that ID becoming obsolete, and thus being ignored by the server. |
| Shard | 180 (laksa) |
| Root Hash | 16031563281472846580 |
| Unparsed URL | com,flightsimulator!docs,/html/Programming_Tools/SimConnect/SimConnect_SDK.htm s443 |