Elite FIP Server is a .NET app which uses EliteAPI to read Elite Dangerous game information, and feed it to Matric via the Matric Integration API. It also makes some game data available via a self-hosted web server, allowing the data to be viewed via browser or browser based viwer, and the display of that data to be customised.
The integration with Matric allows Matric to reflect the current game state in the UI, with particular respect to button/toggle state (such as Landing Gear or Lights), and also other information like current target data. Using a custom touch screen display rather than a traditional keyboard increases immersion and lowers the requirement to remember all the many key bindings you might need.
Current build is available here
If you are upgrading from a previous section, please double check the Runtime Pre-requisities and any upgrade notes as they might change from version to version.
-
Elite FIP Server is a .NET 6.0 application and requires the appropriate runtime to be installed.
For v2.x releases and later, you need the .NET Desktop Runtime (Run desktop apps). For v3.x releases and later, you also need the ASP/NET Core Hosting Bundle (Run server apps).
-
Matric v2.x and the MatricIntegration.dll
Elite FIP Server supports integration with Matric v2.x via the MatricIntegration.dll provided in the Matric installation folder. This DLL must be copied to the Elite FIP Server folder or an exception will occur and the pre-packaged installation includes this file.
Aside from various libraries which VS will highlight if missing, and which are available via Nu Package Manager, Elite FIP Server requires the following:
Older versions of Elite FIP server, used the EliteJournalReader project to provide in-game events.
Use at own risk :)
- Either use the provided installer package and install to a suitable location, or build from source
- Start Matric and connect a client.
- Enable API Integration in Matric (Settings > API Integration > Enable 3rd party integration). Please note that PIN authorisation is no longer supported.
- Run the EliteFIPServer.exe file - a shortcut will be placed on the desktop if you used the installer
- Matric Integration is not enabled by default. You can start this manually from the UI, and configure it to start automatically in the Settings tab.
- The Panel Server (which pubishes game data via a built-in Web Server) can also be started manually, and configured to start automatically in the Settings tab.
Elite FIP Server v2 does not support Matric PIN authorisation. Please disable this in Matric.
Elite FIP Server no longer restricts users to a single Matric Client device - all connected Matric clients will receive game state updates
In the 'Settings' panel the Enable Logging option will enable or disable logging. By default logging is turned off. When enabled, the log is located in the User AppData\Roaming\EliteFIPServer folder. For example: c:\Users\MyUserName\AppData\Roaming\EliteFIPServer
Not recommended The Settings tab allows Matric Integration to be enabled when Elite FIP server starts. This should only be enabled if you always start Matric before starting Elite FIP Server. See Known issues for further information.
The Settings tab allows the Panel Server to be enabled when Elite FIP server starts. See Panel server for more information
To have Elite FIP server change button text when game state changes, you have to update the ButtonTextConfig.json file in the same folder where the Elite FIP Server is run from. A sample file is provided with all currently customisable buttons (the button names match those described in the current feature section below). You should not change the button name, only the Off/On text for those buttons you want to customise, and the flag to enable the update for that button.
For example, to have Elite FIP Server change the button state for the HudMode button, edit the following line:
{"ButtonName": "HudMode", "OffText":"Hud Mode", "OnText":"Hud Mode", "UpdateButtonText": false},
to something like
{"ButtonName": "HudMode", "OffText":"Combat", "OnText":"Analysis", "UpdateButtonText": true},
Save the file and either restart Elite FIP Server or go to the Settings panel and click save without changing any settings (which triggers a reload of the config file).
-
You must start Matric before starting Matric Integration in Elite FIP Server (either manually or automatically). If you start Matric Integration in Elite FIP Server before starting Matric, the Integration capability will fail and cannot be started unless you restart Elite FIP Server. It is therefore not recommended to enable Autostart of Matric integration at this time.
-
When you arrive at the final destination system of a planned route, the route information will disappear during the final hyerspace jump. This is working as intended, and is due to the sequence of events emitted by Elite Dangerous. Essentially Elite clears the route automatically during the last jump, before the arrival event in the final system, resulting in the route being cleared in FIP server. To mitigate this, Elite FIP server provides a 'Previous Route' which will show the completed route if desired. See Panel server for more information
- Elite FIP Server v2.x and later include changes that will cause some Matric decks/existing buttons to not function as expected. When upgrading from v1, please review the button name information below and change your buttons in Matric accordingly.
EliteFIPServer should work with any Deck (a sample deck is available here), and will update Matric objects based on the Matric button name assigned. To use with your own deck, set the Name field of the Matric control to the listed below as appropriate, including the prefix to indicate the type of button, and that control will be updated based on Elite state. Examples are below.
Elite FIP Server can provide several different types of button update for the same data source, to allow flexibility in designing your own deck. The button type will determine how Elite FIP Server changes the matric component, and is defined by a three letter prefix of the Name:
Changes Matric button state to on or off depending on the state in Elite. This is what might be considered a typical or standard Matric button and should be used when you need a simple toggle button (like Landing Gear), or a current state (like Mass Locked).
Sets the Matric button state to off while the corresponding game state is 'off'. When the game state is 'on', the Matric button state will be toggled on and off to provide a flashing effect. This should be used when you need a more visible alert of current state (for example, Overheat).
By default, this is the same as Indicator. For Button, you can enable an additional function which will also change the text of the button as well as the state, based on the current game state. For example. when switching between Combat and Analysis HUD modes, the button text can be set to change to show "Combat" or "Analysis" to indicate the current mode. See Usage Instructions for how to enable this.
For use with multi-position switches. All simple toggle controls support use of a 2-way multiposition switch, with position 1 being off and 2 being on. Specific controls supporting more than 2-way switches might be added later - if you have a specific use case, please contact the developer.
Used to create Guages. Specific values will depend on the button.
A flat text field, used for lables and text information like target data. These are special cases and information is provided below.
Elite Data Point | Base Matric Button Name | Indicator | Warning | Button | Switch |
---|---|---|---|---|---|
Docked (at a station) | Docked | x | x | ||
Landed (on a planet) | Landed | x | x | ||
Landing Gear | LandingGear | x | x | x | x |
Shields Down* | Shields | x | x | ||
Supercruise* | Supercruise | x | x | x | x |
Flight Assist * | FlightAssist | x | x | x | x |
Hardpoints | Hardpoints | x | x | x | x |
In wing | InWing | x | x | ||
Ship Lights | Lights | x | x | x | x |
Cargo Scoop | CargoScoop | x | x | x | x |
Silent Running | SilentRunning | x | x | x | x |
Scooping fuel | ScoopingFuel | x | x | ||
SRV Handbrake | SrvHandbrake | x | x | x | x |
SRV Turret | SrvTurret | x | x | x | x |
SRV Under Ship | SrvUnderShip | x | x | ||
SRV Drive Assist | SrvDriveAssist | x | x | x | x |
Mass locked | FSDMassLock | x | x | ||
FSD Charging | FSDCharging | x | x | ||
FSD Cooldown | FSDCooldown | x | x | ||
Low fuel | LowFuel | x | x | ||
Overheat | Overheat | x | x | ||
In danger | InDanger | x | x | ||
Being interdicted | Interdiction | x | x | ||
In Main Ship | InMainShip | x | x | ||
In Fighter | InFighter | x | x | ||
In SRV | InSRV | x | x | ||
HUD Mode | HudMode | x | x | x | x |
Night Vision | NightVision | x | x | x | x |
FSD Jump* | FsdJump | x | x | x | x |
SRV High Beam | SrvHighBeam | x | x | x | x |
On Foot | OnFoot | x | x | ||
In Taxi | InTaxi | x | x | ||
In Multicrew | InMulticrew | x | x | ||
On Foot (Station) | OnFootInStation | x | x | ||
On Foot (Planet) | OnFootOnPlanet | x | x | ||
Aim Down Sight | AimDownSight | x | x | x | x |
Low Oxygen | LowOxygen | x | x | ||
Low Health | LowHealth | x | x | ||
Cold | Cold | x | x | ||
Hot | Hot | x | x | ||
Very Cold | VeryCold | x | x | ||
Very Hot | VeryHot | x | x |
* Unlike the other indicators Shields and Flight Assist are typically 'active' and you want to be warned/informed if they are not. In these cases, the default state is 'on' and the state will change and warn if they are off. See the example deck for ideas on how this can be handled gracefully in Matric.
* Supercruise will only illuminate when actually in Supercruise (after charging and the initial short FSD jump to get there)
* FSD Jump indicator is also used when entering Supercruise, so will illuminate briefly at that point.
To indicate if Landing Gear is deployed or not, set the Name field for the control in the Matric editor to: indLandingGear To have a flashing warning when Landing gear is deployed, set the Name field for the control in the Matric editor to: wrnLandingGear When using a 2-way Multi-position switch for Landing gear, set the Name field for the control in the Matric editor to: swtLandingGear
Elite Data Point | Base Matric Button Name | Slider | Text | Notes |
---|---|---|---|---|
Fuel (Reservoir) | FuelReservoir | x | x | Slider is a percentage, text is actual value from game. |
Target data (Ship type, Faction, Rank etc) | Target | x | Custom panel showing target information in one Matric button | |
Target labels | TargetLabel | x | Fixed label for Target panel | |
Status data (Legal state, Cargo weight, Fuel etc) | Status | x | Custom panel showing status information in one Matric button | |
Status labels | StatusLabel | x | Fixed label for Status panel |
Text displays require a text button, of sufficient width and height to display the full text. If the text button is not large enough for the content, the behaviour is 'undefined'. Text size is per standard Matric setting, but for text which combines multiple Elite data points in one display, eeach field is defined on a new line.
- Significant internal refactoring
- Refreshed user interface
- Improved Route and Location Handling (including new examples and visualisation in Panel Server)
- Bug fixes and tweaks
- Added installer and application icons
- Added first pass of Navigation Route and Location data to Panel Server
- Changed data source from EliteJournalReader to EliteAPI
- Bug fixes and various optimisations and quality of life improvements (inc. fixing InSrv state)
- Added Panel Server
- Added Odyssey status fields
- Added Slider capability and first 'gauge'
- Refactored code to simplify adding new features
- Updated .NET to 6.0 (current Long Term Support version)
- Updated minimum supported Matric level to v2 (required for other changes)
- Removed PIN authentication for Matric API
- Enabled updates to all connected Matric clients
- Renamed button identifiers for consistency (breaking change)
- Added new button types (Warning and Switch)
- Added additional Status indictors
- Added Status text and labels
- Added Flight Assist, SuperCruise and FSD Jump button support
- Added indicator support for various status flags
- Initial Version
- Somfic and all the contributers to EliteAPI
- AnarchyZG - the developer of Matric, both for the software and the support
- The developers and contributors to EliteJournalReader
- The developers and contributors to all the other open tools and packages that made this feasible.