All About FSUIPC

What is FSUIPC?

FSUIPC is an add-on utility program for various flight simulators whose main functions are two-fold:

  1. To provide a uniform interface to 3rd-party applications to communicate with the Flight Simulator. This interface is common over all versions of FSUIPC and all supported sumulators. This function of FSUIPC is provided free-of-charge (i.e. no license required). and facilitating the creation of custom applications by developers. A list of some of the 3rd-party products that use FSUIPC to interact with the Flight Simulator can be found here.

2. To provide a replacement or enhancement to a flight simulators controller/device assignment capabilities. This allows assignments of your controllers buttons/switches/axis to many functions not directly available in the simulator, either via offst control (see below) or custom controls. Facilities are also provided for controlling lvars. For MSFS2020 and MSFS224, you can also use hvars and Input Events, and all MobiFlight “Presets” are available for diect assignment.
Advanced axes  calibration facilities are also provided, and can be used regardless of where the axis is assigned.

Other functionality is also provided, includes
– extenive logging facilites
– flight auto-save and load facilities
– sending GPS data via COM ports
– support for lua scripts with additional lua functions provided for FS support

For further details on all functionality provided, please see the individual Product pages as the exact functionality can depend on the product or simulator used.

Why “FSUIPC”?

FSUIPC stands for Flight Simulator Universal Inter-Process Communication, and is derived from the initial purpose of FSUIPC when originally conceived way back in the 90’s.

What are “offsets”?

You may have read/heard of the term ‘offset’ in many places where FSUIPC is discussed or mentioned.  FSUIPC maintains and updates an in-memory list of information on the current state of the sim and user’ aircraft, such as aircraft position, the state of lights, yoke position, engine state etc. An ‘offset’ is the position of this information in the memory area used to hold this data. This information can be both read and updated (write) and writes are reflected in the sim, i.e. writing to the offset that holds the position of the aircraft will change the aircrafts position in the simulator.

Most (but not quite all) information regarding the current state of an aircraft can be found in offsets, and it is also possible to add other information to FSUIPC Offsets (from FSUIPC6 and onwards). It is this data that is used by many third-party products to both read and change the current state of the aircraft (write). 

Note that for most users. you do not need to use or understand how offsets work. However, for advanced users, FSUIPC provides controls to directly manipulate this offset area, and offsets are fundamental to how third-party products interact with FSUIPC (via the SDKs, or Software Development Kits, that we also provide.

The information held in offsets can also be used to populate displays in external hardware, usually via software provided by the hardware or by using addioma; software such as MobiFlight or SIOC from OpenCockpits.

For further information on offsets, see this article provided by Sim Avionics.

History of FSUIPC

FSUIPC is based on an original idea and program by Adam Szofran called FS6IPC, which is an (add-on) module (dll) used in FS95 (also known as FS6).  This module was designed to allow external (i.e. separate) programs to communicate with and control Microsoft Flight Simulator 95.

The code for FS6IPC was handed over to Peter Dowson who then developed the first version of FSUIPC, released in 1997 for FS98, and also as a replacement for FS6IPC in FS95. This was a freeware only version that provided the facilities to allow developers to write applications to interact with the simulator, using the ‘offsets’, described above, and the first release of the FSUIPC SDK (Software Development Kit) was also provided.

Controller/joystick assignment functionality, with calibration as well as other facilities,  was later added, resulting in the first payware version of FSUIPC, FSUIPC3 for FS2004, released in 2003.

In these early versions of FSUIPC, there was no API available to interact with the simulator, and various ‘hacking’ techniques were used, by trial and error, to extract the data from the simulator. This was a known limitation and so the SimConnect API was developed. Due to his experience in developing FSUIPC, Pete played a key part in devloping the SimConnect API, and was awarded Microsoft’s Most Valued Professional (MVP) for his work.

In October 2006, FSUIPC4 was released, supporting Microsoft’s FSX simulator. Although this version still employed some “hacking” techniques, this was the first version that also used the SimConnect API.

Prepar3D version 1 was released in November 2010, and FSUIPC4 was updated to be compatible with this simulator. FSUIPC4 was contiually updated and made compatible with all versions of FSX, as well as P3D versions up to an including version 3 (latest supported version being 3.4).

With the release of Prepar3d version 4 in 2017, FSUIPC was updated to a 64-bit program (all earlier versions were 32-bit) and the “hacking” access to data was removed, resulting in the first SimConnect-only version of FSUIPC, FSUIPC5.

Pete officially retired from FSUIPC delopement and support in 2019, at the age of 76, at passed on the reins to his son,  John.  John continued supporting and deloping FSUIPC, releasing his first updated version, FSUIPC6 in 2020, which added support for Prepar3d version 5, and later support for Prepar3d version 6 was added in 2023.

John was also an early beta-tester for MSFS2020, and released FSUIPC7 soon after the release of MSFS2020, initially as a (free) beta release.  MSFS2020 is quite different from previous simulators, and the early releases were quite problematic and the simulator was continually updated to correct issues and add functionality at an alarming speed. There were many FSUIPC7 releases during this period to keep up-to-date with these simulator releases, but eventually the payware version of FSUIPC7 was released to the public.

FSUIPC7 (and also FSUIPC6, although to a lesser extent) is continually being supported and updated by John, and was made compatible with MSFS2024 on release.

Why Choose FSUIPC?

FSUIPC is well known and loved by the Flight Sim community and has been an essential add-on for many for over 20 years.

There is aso la large eco-system of programs (both freeware and payware) available that use FSUIPC, covering all areas of flight simulation such as training, navigation, ATC, etc. And due to the sim-agnostic nature of the programming interface provided by FSUIPC, many programs developed for the earlier versions of FSUIPC (for FSX, for example) still work today with the later/current version. There is also an active community of both developers and users that provide various tools, whether it be add-on / external programs or lua plugin scripts.

FSUIPC comes fully documented, with an extensive set of manuals provided covering all aspects of FSUIPC. If you would like to see the documentation, this is available for FSUIPC7 here and for FSUIPC6 here (N.B. The stand-alone documentation packs may not be completely up-to-date, but the latest documentation is included with each product download).

We also take pride in the support we provide, which takes priority, and is considered to be one of the best, if not the best, supported products in the business.

FSUIPC was, for many years, the only product in its class. We undertand that there are now competing products, and in fact welcome this (the more choice for the user, the better!). These products do have a more modern and, perhaps, user’ friendly interface, but we believe the functionality and support provided by FSUIPC is second-to-none,

Finally, unlike many other products, you only need to puchase a license for each FSUIPC product once, and this includes all update for the lifetime of that product, and also support for the lifetime of the product (or until I retire!). That is, no anual subscripion is necessary.

 

What is WideFS?

WideFS is used for extending the IPC interface provided by FSUIPC over a network. It is an optional addition to FSUIPC that allows FSUIPC client programs to run on a separate networked PC (i.e. on another PC that is not running the Flight Simulator) using separate displays, i.e. the displays attached to the network PC and not the displays on the PC running the Flight Simulator. 

It is NOT a program for linking several copies of the Flight Simulator. nor will it allow scenery or cockpit views to be displayed on multiple PCs. It is purely for running external applications on a separate PC while communicating to the FS (via FSUIPC) as if running on the same PC.

For further details, please see the WideFS7 product page.

Frequently Asked Questions on FSUIPC (before purchase)

Do I need a license for FSUIPC?

That depends. You can download and install FSUIPC without a license, but only the unlicensed features will be available. If you want to use FSUIPC for your assignments or for using lua scripting, you will need a license.

Where can I buy a license for FSUIPC / WideFS?

License for FSUIPC and WideFS are only available from SimMarket. There is a purchase/buy button for each available product on the home page and on each individual product page that will take you to the SimMarket page where you can buy a license..

Do I have to pay for updates?

No. All updates to each version of FSUIPC are free for the lifetime of the product. Note however that each version of FSUIPC (and WideFS) is considered a separate product. That is, if you have a license for FSUIPC6, this includes all updates to FSUIPC6. It does not include a license for FSUIPC7 or FSUIPC4.

Can I use FSUIPC7 on an XBox?

No. FSUIPC7 is only available for PCs.

Will FSUIPC affect my FPS?

Anything running on your PC will consume resources (memory & CPU time) and can affect your FPS. However, FSUIPC makes no use of you GPU and should cause no substantial drop in FPS, although you may lose a couple of frames per second, and possibly a few more if your rig is heavily CPU bound.
FSUIPC does contain inbuild features to set an affinity mask so that it can be moved off of the main cores used by the Flight Simulator, and you can also you a separate affinity mask to specify the cores used for Lua threads.

Is support available?

Yes. Support is provided by the FSUIPC support forums and via Discord. Both licensed and unlicensed versions are supported, and support is free for the lifetime of the product (or until I retire!).

Are my controllers/devices supported?

This is a difficult question to answer. FSUIPC natively supports all HID joystick type devices (games controllers), and separate device drivers are provided to support most GoFlight and PFC devices. VRInsight devices arr also supported, and many people use FSUIPC to support home-built equipment (useingLeo Bodnar, Arduino, etc) although some other (free) software may be needed (e.g. SIOC).
The Lua library integrated into FSUIPC also contains a com library that allows to to use any non-HID device, but you would have to write your own Lua scripts to control the device if using this library (although there may also be some lua scripts already available).
If in any doubt, it is recommended to try FSUIPC with a trial license.