Scenery creators: please move or rename your modelLib.BGL

This issue came out several months ago, when some users reported conflicts between sceneries and/or missing objects, so we asked Asobo about this, and they confirmed which cases can be considered conflicts and which aren’t so:


CASE 1

Scenery A installed in Community\SceneryA with a modelLib-SceneryA.BGL located in the following folder inside its package: scenery\MyCompany-SceneryA\modelLib-SceneryA.BGL

Scenery B installed in Community\SceneryB with a modelLib-SceneryB.BGL located in the following folder inside its package: scenery\MyCompany-SceneryB\modelLib-SceneryB.BGL

THIS IS THE BEST SOLUTION, because by giving both the pathname and the filename unique names, it’s very unlikely we’ll end up with a name clash.


CASE 2

Scenery A installed in Community\SceneryA with a modelLib-SceneryA.BGL located in the following folder inside its package: scenery\global\modelLib-SceneryA.BGL

Scenery B installed in Community\SceneryB with a modelLib-SceneryB.BGL located in the following folder inside its package: scenery\global\modelLib-SceneryB.BGL

This is NOT a conflict, although some care should be taken on the filename, to be sure it’s not used by something else.


CASE 3

Scenery A installed in Community\SceneryA with a modelLib.BGL located in the following folder inside its package: scenery\MyCompany-SceneryA\modelLib.BGL

Scenery B installed in Community\SceneryB with a modelLib.BGL located in the following folder inside its package: scenery\MyCompany-SceneryB\modelLib.BGL

This is NOT a conflict, since the pathname is different so, even if the filename is the same, it doesn’t matter.


CASE 4

Scenery A installed in Community\SceneryA with a modelLib.BGL located in the following folder inside its package: scenery\global\modelLib.BGL

Scenery B installed in Community\SceneryB with a modelLib.BGL located in the following folder inside its package: scenery\global\modelLib.BGL

THIS IS A CONFLICT, because both the pathname and the filename are identical so, depending on the scenery loading order, objects from either A or B might show, so it better be fixed.

How to fix conflicts depends if you are users of the scenery, or developers:

USERS

Rename the modelLib.BGL file inside the package AND update the layout.json file with the new name, or use utilities to do that.

DEVELOPERS

Edit the <OutputDir> path in the .XML file in the Package Definitions folder of your project, and replace the path, for example changing it from Scenery\Global\Scenery\ to Scenery\MyCompany-MyScenery, and rebuild the project.

This will only affect the pathname ( which is enough to prevent conflicts ), because the filename of the resulting .BGL is controlled by the name of the folder in the PackageSources which contains the source .GLTF/.XML files for the models so, if you also want an unique filename, you must also rename the PackageSources\modelLib folder in your project AND edit the path in the <AssetDir> tag to match the new folder name.

GUID Conflicts - Developers

Even if your pathname and filename are unique, there’s still a chance for a conflict, which might be caused by GUIDs reused by you or other developers. Every 3D object in the sim must have an unique GUID, a common error is to copy the .XML file of the SDK sample and changing the name of the .GLTF without generating a new GUID for it.

One of the easiest way to generate GUIDs is using this free app on the Windows Store:

Be sure the .XML file located in the same folder of the .GLTF file has a unique GUID and, if you changed it, be sure you also changed it in the airport .XML source file to match, the Rebuild the project.

10 Likes