Bug: Game crashes/freezes if livery title field does not contain model number
-
Every downloadable livery has an aircraft.cfg file in "SimObjects\Airplanes\<Livery ID>\aircraft.cfg"
Inside that file is a title field which contains something like "Just Flight BAE 146-300QT VolgaDnepr (RA-76953)"
The plane seems to be relying on the model number (in bold) existing in this field, and if it can't find it the game will immediately freeze up and stop responding when you load into the world.
This behavior does not change even if you disable state saving and the interior cabin. It also still freezes even if you load in with a valid livery and then switch to a modified one using Dev Mode.
Here are a few examples that will cause the game to freeze:
"Just Flight BAE 300QT VolgaDnepr (RA-76953)"
"Just Flight BAE 146 VolgaDnepr (RA-76953)"
"VolgaDnepr (RA-76953)"Anything where it cannot find and match a valid model number in the title causes the game to freeze.
So two questions:
-
Why is the 146 relying on this field? What is breaking if the model number isn't present or is invalid?
-
Could you look at the "ui_type" field from the same file instead?
The ui_type field contains the model and variant (eg: ui_type = "146-300QT") and nothing else - it should be far more reliable than a human-readable title field. It's also good programming practice not to rely on the contents of a "title" field for anything critical.
Would be great to have a fix for this. Thanks!
-
-
The aircraft title is used to identify the variant of the 146 that is being used so the model can be configured correctly (aerials, defensive pods etc), the EFB can use the correct weights and capacities, the correct speed cards are used etc.
Unfortunately we have a very limited ability to read files in MSFS and AFAIK we are not able to read values such as 'ui_type', only the aircraft title. I'll review the SDK but that was the only reliable method for identifying the variant in use at the time the logic was coded.
Ultimately it should be simple enough for any repainters to ensure the aircraft title naming convention is used. I've not heard of this issue before, presumably because repainters would have discovered this prior to uploading it and would have recognised and used the naming convention from our aircraft.cfg files.
-
Hi Martyn,
Thanks for the response!
That's unfortunate if you are constrained to only being able to read that title. Seems like a silly limitation :(
It's less of a repainter issue and more of an end-user issue. Are you aware of Flightsim Economy (FSE)? It's a cross-sim multiplayer persistence layer (kind of like a sandboxy career mode).
FSE has a database of recognized livery names called "aliases" and it's really common to have to rename a downloaded livery that isn't in FSE's database to one that is so the client will accept your flight. That works fine, but it's also common to rename a livery to identify as a different but similar model of plane.
For example, if you own a Cessna 172 in FSE but you want to fly your Piper PA28 Arrow, you could buy an Arrow in FSE but that's expensive. You could also just rename one of your PA28 liveries to identify itself as a C172 and because the two are very similar capabilities-wise (four-seater piston props) the FSE client will accept that and let you fly the PA28 in place of the C172.
In FSE a 146 is one of the most expensive planes to buy, so I wanted to just alias it onto something my group already owns, and then I discovered that it crashed the game :P
Anyway, in case you were curious how I discovered it now you know.