Creators Guide – How to fix CTD issues on your scenery

Creators Guide – How to fix CTD issues on your scenery

Recently there have been reports of certain sceneries causing CTDs (crashes to desktop). This guide will help scenery creators with preventing these CTDs with a simple fix for all of their scenery. This fix involves renaming your modelLib.BGL file which is the source of most of the crashes. Without getting into too many technical details, it seems that using the default name for your model library (ArtProj object in the SDK) can cause conflicts with other sceneries that are also using this default name. While simply renaming your modelLib.BGL file will not fix this issue, the actual fix should be fairly easy to follow.

For this example we’ll be using the Oosterscheldekering scenery which still has the default name for the ArtProj object, modelLib.BGL. When you open the project .xml file, you’ll be greeted with the following screen (assuming you have turned on the Inspector under Project Editor -> View):

When you select your ArtProj object from the Project Editor, you’ll be greeted with the following screen where you can choose your AssetDir and OutputDir:

While your AssetDir and OutputDir may be different than the ones from the example, the general idea of this fix is the same. For this example, our folder structure is as follows:

You might have some more files or different folder names, but this is the general structure. The problem lies in the modelLib folder name, which produces a modelLib.BGL file. To rename this file, we have to change the AssetDir entry of our ArtProj object, I’d recommend simply renaming your modelLib folder in your project (as seen above) to something unique (like [scenery name]-modelLib), you can then re-select this folder in your AssetDir to end up with this:

Once you have re-selected the renamed folder for your AssetDir, you can simply re-build your package like you would normally and you should get a package with a renamed modelLib.BGL file. A good package output would have something like the following structure:

Again, your package layout or names might look slightly different depending on your settings, but the important thing is that you are no longer using the default name for your modelLib file. Now that your modelLib does not use the default name anymore, your scenery should no longer cause any conflicts with other scenery, decreasing the number of crashes people experience.

For more info regarding this, you can visit this forum post which has some other possible solutions in case you want to try those.