Panel not showing in toolbar despite correct layout.json and mounted package

Hi everyone,

I am developing a new InGamePanel (HTML/JS) and I am stuck in a state where the package builds successfully, but the panel never appears in the toolbar list.

Here is the situation:

  1. Build is Successful: 0 Failed, 0 Skipped, 2 done.
  2. Console Log: Shows “Package mounted” and “Package registered” for my package.
  3. The Issue: The panel is completely missing from the Toolbar settings (Gear icon).
  4. Debugger: The Coherent GT Debugger does NOT list my panel’s view (SimMatePanel), which suggests the game is rejecting the XML definition before loading the HTML.

What I have tried:

  • Verified OutputDir is “html_ui/InGamePanels/SimMatePanel/”.
  • Switched to use a normal png image for the icon (used to use an svg image before)
  • Cleaned and Rebuilt multiple times.
  • Moved package to Community folder and restarted Sim

Here is my XML:

<?xml version="1.0" encoding="utf-8"?> SIMMATE_BRIDGE Utilities SimMate Bridge SimMate Flight Assistant Panel
<HtmlFile>InGamePanels/SimMatePanel/SimMatePanel.html</HtmlFile>

<IconFile>InGamePanels/SimMatePanel/test_white_icon.png</IconFile>

<WindowTitle>SimMate Bridge</WindowTitle>
<DefaultWidth>400</DefaultWidth>
<DefaultHeight>600</DefaultHeight>
<FloatingWindow>true</FloatingWindow>
<Minimizable>true</Minimizable>
<Movable>true</Movable>
<Resizable>true</Resizable>

layout.json file:

{
“content”: [
{
“path”: “ContentInfo/qinnehdev-simmate/Thumbnail.jpg”,
“size”: 5446,
“date”: 134143336981551547
},
{
“path”: “html_ui/InGamePanels/SimMatePanel/sentry_lite.js”,
“size”: 3944,
“date”: 134143461414975910
},
{
“path”: “html_ui/InGamePanels/SimMatePanel/SimMatePanel.css”,
“size”: 7214,
“date”: 134143805917070305
},
{
“path”: “html_ui/InGamePanels/SimMatePanel/SimMatePanel.html”,
“size”: 1545,
“date”: 134144646900056672
},
{
“path”: “html_ui/InGamePanels/SimMatePanel/SimMatePanel.js”,
“size”: 10469,
“date”: 134144646899864351
},
{
“path”: “html_ui/InGamePanels/SimMatePanel/SimMatePanel.xml”,
“size”: 653,
“date”: 134145012496918492
},
{
“path”: “html_ui/InGamePanels/SimMatePanel/test_white_icon.png”,
“size”: 375,
“date”: 134145009529194072
}
]
}

Has anyone seen a case where a mounted package is silently ignored like this?
(note: this is my first MSFS addon, so this is a steep learning curve for me)
Help will be much appreciated!

A few things I learned dealing with panels in 2024:

  1. You have to either mount the package from the main menu before loading in or restart the flight if you’re already in.

  2. It’s also possible, if you have a ton of mods, that the panel refuses to load entirely when in the Community folder. You might have to temporarily empty the Community folder and try again in that case.

  3. Also, this is the maximum width of the toolbar in 2024 (not an issue in 2020). Beyond 13 icons, they overflow left/right and some of them might not be accessible.

1 Like
  1. i always restart msfs entirely.

  2. this is a clean installation of msfs 2020, so only fenix and my panel moule and “liftbox” are installed (total 3 addons) in community folder)

  3. im using 2020

    thank you for the reply, if you have any more ideas itll be extremely appreciated.

The panels are quite sensitive to errors; if something is not correct, they will not be visible. Neither in the toolbar nor in Coherent GT Debugger.

For the XML for the SPB, it should look something like this:

<?xml version="1.0" encoding="Windows-1252"?>
<SimBase.Document Type="InGamePanels" version="1,0">
  <Filename>Name_of_project.spb</Filename>
  <InGamePanels.InGamePanelDefinition id="Name_of_project_PANEL" Name="Name_of_project" url="html_ui/ingamePanels/Name_of_project/Name_of_project.html" resizeDirections="both" minWidth="48.7" minHeight="30" defaultWidth="48.7" defaultHeight="30" defaultTop="33.000" defaultRight="50.000" icon="ICON_TOOLBAR_Name_Name_of_project_PANEL" buttonVisible="true" />
</SimBase.Document>

For the package, it should look like this :

Here is my current setup:

xml file:

<?xml version="1.0" encoding="Windows-1252"?>

<SimBase.Document Type="InGamePanels" version="1,0">

  <Filename>SimMatePanel.xml</Filename>

  <InGamePanels.InGamePanelDefinition id="SimMatePanel_PANEL" Name="SimMate Bridge" url="html_ui/InGamePanels/SimMatePanel/SimMatePanel.html" resizeDirections="both" minWidth="48.7" minHeight="30" defaultWidth="400" defaultHeight="600" defaultTop="33.000" defaultRight="50.000" icon="ICON_TOOLBAR_SimMate_PANEL" buttonVisible="true" />

</SimBase.Document>

(note: I am using XML instead of SPB, I am pretty sure msfs accepts xml alright, but i am not using SPB since when i try to drag and drop my xml file into the fspackagetool.exe it outputs this:
PackageBuilder | Reading C:\MSFS SDK\Tools\bin\SimMatePanel.xml…
PackageToolConfig version is too low in file C:\MSFS SDK\Tools\bin\SimMatePanel.xml (got 0, expected 2). Please update the XML file to correct version
Failed to open project XML file: C:\MSFS SDK\Tools\bin\SimMatePanel.xml

in your xml example… version”1,0” was written, i tried changing it to 2,0, but still it didnt work and the fspackagetool.exe outputted the same error. )

I tried to make my folder structure and the xml file follow your structure, but it still fails to load into the toolbar and the Coherent GT Debugger. Also its weird that the MSFS console doesnt show any error regarding this. I’ve been trying to fix this issue for days now…

also pretty sure the issue isnt in the layout.json or the manifest.json files, but to double check here they are:
layout.json:
{
“content”: [
{
“path”: “InGamePanels/SimMatePanel.xml”,
“size”: 500,
“date”: 134139932502133642
},
{
“path”: “html_ui/InGamePanels/SimMatePanel/SimMatePanel.css”,
“size”: 7214,
“date”: 134137886944826608
},
{
“path”: “html_ui/InGamePanels/SimMatePanel/SimMatePanel.html”,
“size”: 1545,
“date”: 134139932502133642
},
{
“path”: “html_ui/InGamePanels/SimMatePanel/SimMatePanel.js”,
“size”: 10469,
“date”: 134137887275481115
},
{
“path”: “html_ui/InGamePanels/SimMatePanel/sentry_lite.js”,
“size”: 3944,
“date”: 134138673640096112
},
{
“path”: “html_ui/icons/toolbar/SimMate_icon.svg”,
“size”: 475,
“date”: 134139932502133642
}
]
}

manifest.json:

{
“dependencies”: [
{
“name”: “fs-base-ui”,
“package_version”: “0.1.10”
}
],
“content_type”: “IN_GAME_PANEL”,
“title”: “SimMate Bridge Panel”,
“manufacturer”: “qinneh.dev”,
“creator”: “qinneh.dev”,
“package_version”: “2.0.0”,
“minimum_game_version”: “1.37.0”,
“description”: “WebSocket-based SimConnect bridge for MSFS cockpit control”,
“tags”: [
“PANEL”,
“IN_GAME_PANEL”,
“SYSTEM”
]
}

hi - any ideas?

The SPB file is mandatory in the final package. The XML is used to compile this file in MSFS. If FSPackageTool.exe doesn’t work on your system, you can use the built-in tools within the simulator to compile the file into an SPB.