Yep, but although it is caused entirely by GSX, Umberto as shown will blame Asobo in a massive post rather than fixing the issue with an if statement.
And somehow, you managed to be wrong, again:
We are talking about a failure to LOAD A FILE. And why is failing to load ? Because somewhere in the MSFS code, there must be a comparison on that file name/path using case-sensitivity. Read this again
a case-sensitive comparison to decide to LOAD a file, on a CASE-INSENSITIVE filesystem!.
Considering how easy for anyone, like a repainter/modder, not not notice a single upper/lower case change when changing a file, I'm sure this must have happened to others, without using GSX so no, it's NOT caused "entirely by GSX", you might say it's a side effect of the way GSX patches the model PATHS in the exterior.xml, which requires taking the relative path from the model.cfg, the original one made by Leonardo BEFORE any changes, I'll post it again so, maybe, you'll understand this time:
[models]
exterior=..\..\MaddogX\
Model\MaddogX_exterior.xml
interior=..\..\MaddogX\
Model\MaddogX_interior.xml
However, the actual name of the model folder is
model, all lower case. This WORKS, and of course anybody would expect to, Windows filesystem is a case-insensitive, so any standard file opening routine will surely found the file, even if the name is not *exactly* the same so no, I'm not "blaming" Leonardo for this, it's entirely understandable that anybody wouldn't pay attention to this.
However, when it must patch a livery, GSX must copy the original exterior XML, which points to the .gltf model, and change the name without any path (because the xml is copied from the base model) and add a relative path. So where the relative path is coming from ? From that model.cfg ABOVE, the one before any modifications!
So this line in the exterior .xml
<LOD minSize="0" ModelFile="MaddogX_exterior.gltf" />
Had to be changed to this:
<LOD minSize="0" ModelFile="
..\..\MaddogX\Model\MaddogX_exterior.gltf" />
With the new relative path obviously taken from the above MODEL.CFG, as it supplied with the airplane. This line LOADS the .gltf model, which is a file, so you would think it ..\..\MaddogX\Model\MaddogX_exterior.gltf on Windows is the same as ..\..\MaddogX\model\MaddogX_exterior.gltf as loading files are concerned.
In fact, considering the model.cfg with the "wrong" path WORKS, why one could possibly guess the same "wrong" path wouldn't work anymore, when is used in the exterior model ?
But apparently this is what is happening. Either somewhere in the MSFS code a string comparison is made using case-sensitivity, or it's related to the fact MSFS uses a Virtual Filesystem so they use custom loading routine that don't work like the normal Windows filesystem, those are the most likely causes, we just happened to have discovered this due to the way GSX works, but it should be clear to anybody that using case-sensitivity when handling
file loading on a case-insensitive OS, would surely soon or later cause problems.
And, it seems the Hangar view in some way "fixes" this, perhaps the code the loads the exterior model in the Hanger is DIFFERENT than the one the does the normal loading, so it explains why entering the hangar to select the Livery would fix the problem and the livery worked for the rest of the session.
And with MSFS 2024 SU3 Beta it loads right away, so maybe somebody else must have reported this, or it's just Asobo themselves who have thought that yes, maybe it's not the best idea loading stuff using case-sensitivity on Windows.
But that's besides the point. The point is that now the real issue is finally clear, I was able to modify the installer to CHECK these cases where there's an incoherency in casing in the model.cfg compared to the real name of the folder. You think that was easy ? It took a lot of effort because, almost every standard Windows path handling routine IGNORE the case, as it should be! But in the end it worked so now, the current version of the installer, explicitly checks for this case.
And while doing the fix, I could check all the airplanes supported by the Seated Passengers and, of all of them, only TWO had a case of incoherent case in the path names:
- The Leonardo Maddog, with the relative path in the model.cfg not matching the case of the path the airplane is installed into ( "Model" instead of "model" )
- The FBW A380, which comes in a folder named "Simobjects\AirPlanes" instead of "Simobjects\Airplanes" which is the actual name in the sim. However, due to the different way the airplane files are structured, this wasn't a problem for GSX, since we didn't need to look at that path when patching the copied exterior xml.
And again no, I'm not "blaming" Leonardo for this! We just happened to find an unknown quirk of MSFS that surfaced because the way GSX needs to create a new path by taking the one from the model.cfg.
About your "a massive post rather than fixing", the updated installer is already online since yesterday (before you wrote this) because, as always, when issues are found, they are ALWAYS fixed.