Can HTML instruments be overridden (as per the docs) in MSFS 2024?

I’ve got a mod that overrides an html instrument in a third party aircraft. This was all working in MSFS 2020, but it doesn’t work in MSFS 2024. I recreated the project from scratch in MSFS 2024, but the files in html_ui aren’t getting loaded by the VFS. The documentation still says you can do this, but I’m wondering if the documented approach is no longer supported due to the VFS locking of html_ui. If that is the case, what is the correct way to override an html instrument in MSFS 2024?

This is what the docs say to do: Replacing An HTML/JS/CSS Instrument, but it doesn’t seem to work now.

I am not sure exactly what the rules are about what can and can’t be overridden in the VFS.

If it’s core avionics, some of the core avionics cannot be overriden. The recommended way to modify them is with plugins:

This has the advantage of not getting certain files stuck at an older version, and multiple devs can have packages adding functionality without overriding each others mods. The plugin system is also available in MSFS2020.

You can’t override any HTML (avionics or not) from the base sim in 2024

Thanks @runshotgun. So just to be clear, I’m not trying to override anything in the base sim. I’m overriding a third party aircraft that lives in the community folder, so that is where the html_ui folder containing the instrument that I’m trying to modify lives as well. Can you confirm that VFS file locking applies to local html_ui directories in the community folder? I can’t seem to find anything definitive anywhere; the dev stream seemed to suggest that it was core sim files only and I haven’t seen anything in the current docs beyond a small note that some VFS files are now protected.

Thanks @tracernz. I was aware of the plug in system, but my understanding is that it can only be used if the hooks for the plugin system are created in the original aircraft, which is not the case for the thing I’m trying to modify.

Just reading through the Avionics Framework Getting Started docs and have a working project. Just got through the discussion on Event Bus and Refs and Component Lifecycle.

Now looking at the Plugins docs and it seems to be restricted to high level framework topic but no specifics. It would be nice to have sample code. Maybe a template that shows how to create a custom MFD engine page component that simply displays Hello World when you press the MFD Engine key to that show how to register plugins, hook into SoftKey menu actions and add custom pages to the MFD. I did notice the SR22 aircraft has a gloriously customised engine display page that appears to be implemented as a Plugin and although the code is nicely commented, it’s hard to grok how things are tied together by looking at the large .js build file.

Darren,

Fortunately you are in luck. Working Title and Microsoft have kindly provided the source to the SR22T plugin, which can be found at their GitHub: msfs-avionics-mirror/src/workingtitle-aircraft-sr22t at main · microsoft/msfs-avionics-mirror · GitHub. While not a step-by-step starter guide, it is much better than trying to decipher through the built JS. I believe as of now this is the only non-built plugin source available from them.

The root GitHub page also provides the source for all other Working Title core instruments, such as the G3000/5000, G3X, WT21, Epic, etc along with the various SDKs such as msfssdk and garminsdk GitHub - microsoft/msfs-avionics-mirror: MSFS Avionics Source Code Mirror. Hope that helps!

-Zach

2 Likes

Thanks Zach. That sure helps. I suggested to WT team that the Aviation Framework docs list references to sr22 and Citation source code as concrete examples that use plugin code to customise aircraft-specific instruments. It would still be nice to have minimal Plugin sample code and more detailed concept discussion, similar to the MSFS SDK sample code for aircraft like the DA62, though as trying to figure things out in a reverse engineering style from code comments and package framework imports is challenging.

1 Like

side note - the html_ui VFS subtree is locked from overrides but panel/panel.cfg can be overridden, so the latter provides a simple and possibly safer vector by which you can replace an instrument for a given aircraft by pointing the corresponding entry in panel.cfg to the VFS directory unique to your replacement gauge. Like all plane mods it’s not necessarily robust against updates of the base plane but that’s business as usual.

1 Like

Also, as far as I understand it, the instrument you wish to override has to support Plugin overrides so your plugin can subclass it.