SimConnect.NET
0.1.18
dotnet add package SimConnect.NET --version 0.1.18
NuGet\Install-Package SimConnect.NET -Version 0.1.18
<PackageReference Include="SimConnect.NET" Version="0.1.18" />
<PackageVersion Include="SimConnect.NET" Version="0.1.18" />
<PackageReference Include="SimConnect.NET" />
paket add SimConnect.NET --version 0.1.18
#r "nuget: SimConnect.NET, 0.1.18"
#:package SimConnect.NET@0.1.18
#addin nuget:?package=SimConnect.NET&version=0.1.18
#tool nuget:?package=SimConnect.NET&version=0.1.18
SimConnect.NET
A modern, high-performance C# wrapper for Microsoft Flight Simulator's SimConnect SDK. It simplifies flight simulation development by providing async/await patterns and high-level abstractions, enabling real-time aircraft data monitoring, AI object management, and seamless integration with the simulator through a clean, type-safe API.
⚠️ Beta Software Notice
SimConnect.NET is currently in beta development. APIs may change, features may be added or removed, and breaking changes are expected between releases. Use in production environments at your own discretion and always test thoroughly before deploying.
Features
- Async/Await Support: Modern asynchronous patterns for all SimConnect operations
- High-Level Abstractions: Simplified API for common flight simulation tasks
- Type-Safe Interface: Strong typing with automatic data type inference
- Real-Time Data: Efficient aircraft data monitoring and SimVar access
- AI Object Management: Create and manage AI aircraft and objects
- Multi-Framework Support: Compatible with .NET 8.0 and .NET 9.0
Quick Start
Install the NuGet package:
dotnet add package SimConnect.NETBasic usage example:
using SimConnect.NET; var client = new SimConnectClient(); await client.ConnectAsync(); // Get aircraft data var altitude = await client.SimVars.GetAsync<double>("PLANE ALTITUDE", "feet"); var airspeed = await client.SimVars.GetAsync<double>("AIRSPEED INDICATED", "knots"); Console.WriteLine($"Altitude: {altitude:F0} ft"); Console.WriteLine($"Airspeed: {airspeed:F0} kts");
Requirements
- Microsoft Flight Simulator 2020 or later
- .NET 8.0 or .NET 9.0 runtime
- SimConnect SDK (included with Flight Simulator)
Documentation
For comprehensive documentation, examples, and API reference, visit our GitHub repository: https://github.com/stopbars/SimConnect.NET
Contributing
We welcome contributions from the community! Please visit our GitHub repository for contribution guidelines, issue reporting, and development information.
License
This project is licensed under the MIT License. See the LICENSE file in the GitHub repository for details.
Disclaimer
SimConnect.NET is an independent third-party software project. We are not affiliated with, endorsed by, or connected to Microsoft Flight Simulator or any other simulation software.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.18 | 472 | 12/29/2025 |
| 0.1.17 | 352 | 11/14/2025 |
| 0.1.16-beta | 220 | 10/20/2025 |
| 0.1.15-beta | 315 | 9/23/2025 |
| 0.1.14-beta | 380 | 8/25/2025 |
| 0.1.13-beta | 224 | 8/24/2025 |
| 0.1.12-beta | 120 | 8/23/2025 |
| 0.1.11-beta | 147 | 8/22/2025 |
| 0.1.10-beta | 201 | 8/21/2025 |
| 0.1.9-beta | 206 | 8/20/2025 |
| 0.1.8-beta | 205 | 8/10/2025 |
| 0.1.7-beta | 151 | 8/10/2025 |
| 0.1.6-beta.1 | 148 | 8/9/2025 |
| 0.1.5-beta | 185 | 8/9/2025 |
| 0.1.4-beta | 233 | 8/8/2025 |
| 0.1.3-beta | 280 | 8/7/2025 |
### Added
- Subscribe to simulator system events via `SimConnectClient.SubscribeToEventAsync` and handle notifications through `SystemEventReceived`, enabling callbacks for SimConnect system events like `4sec` and pause state changes.
- Typed system event dispatch and events: `FrameEventReceived`, `FilenameEventReceived`, `ObjectAddRemoveEventReceived`, and `SystemEventEx1Received` now surface frame-rate, filename, object add/remove, and EX1 payloads instead of dropping them.
- Helpers to control and clean up subscriptions: `SetSystemEventStateAsync` and `UnsubscribeFromEventAsync` wrap the native APIs for toggling and stopping system event notifications.
- Test runner now includes a system-event subscription test and a state toggle test to exercise the full subscribe/on/off/unsubscribe flow.
- Bundled `SimConnect.dll` updated to the latest SDK build to align with current simulator versions.
### Performance
- Message processing loop no longer spins up a worker task per dispatch; `SimConnect_GetNextDispatch` is polled synchronously to reduce context switches and lower idle CPU.
- SimVar setters use pooled pinned buffers instead of per-call unmanaged allocations and extra `Task.Run` hops, and request timeouts now rely on linked cancellation sources instead of `Task.Delay`, cutting allocations on hot paths.