• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

Does MCX identify object type?

Messages
48
Country
us-florida
This seems like a simple question so I am probably missing it. I went to convert an object library the other day and had some problems. After interrogation using LibraryMaker, I discovered the library had FSX and FS9 objects in it...probably not a good idea but that got me to thinking, does MCX show the object type of each object somewhere?

Thanks.

Stiletto2
 
Hi,

You can't mix fs2004 and fsx mdl files in one single library. Bglcomp would not compile such a library.

Modelconverterx does not directly show which version an object was made for. In the event log you can in general see which reader is used for a mdl file.
 
Hi,

You can't mix fs2004 and fsx mdl files in one single library. Bglcomp would not compile such a library.

Modelconverterx does not directly show which version an object was made for. In the event log you can in general see which reader is used for a mdl file.

Yeah, that's what I thought but it was a working FS9 Library...go figure. Anyway I split it apart and took care of it. It makes sense that MCX wouldn't show type since it expects the whole library to be of one type. I agree!

thanks.

Stiletto2
 
Arno,
LibraryMaker (the library utility that comes with Instant Scenery) actually will compile FSX and FS9 models together into a LIB. It apparently treats all models as FS9 models where a random GUID is assigned and in the case of FSX models the GUID doesn't match the one embedded in the model. Apparently LibraryMaker uses a proprietary compiler of some sort as neither of the SDK compilers will compile such a .bgl if you manually make up an XML and try to compile it. (The FS9 compiler will actually make a .bgl but it throws out the FSX models).

Stiletto2,
IMHO a person should not use LibraryMaker to compile libraries containing FSX models (I'd suggest not using it at all), use Arno's LibraryCreatorXML instead which handles them in a conventional way where the GUIDs embedded in the .mdl are used. LibraryMaker stores these randomly assigned GUIDs in a txt file so if you lose that txt file and try to add new models in the future LibraryMaker won't allow you to, you'll need to rebuild the LIB completely in which case new random GUIDs will be generated and all your existing placements will be broken. Further LibraryCreatorXML will allow you to browse and add multiple models at once where LibraryMaker forces you to open the "Add" dialog for each model added which is a pain if you have 50 or 60 models to compile into the library.

Incidentally another way you can differentiate between FS9 and FSX models is to start Notepad and drag the .mdl into the Notepad window (don't save it, just look), at the head of the file you'll see "MDL9MDLH" or "MDLXMDL" which will tell you which compiler was used to export the model.

Jim
 
Stiletto2,
IMHO a person should not use LibraryMaker to compile libraries containing FSX models (I'd suggest not using it at all), use Arno's LibraryCreatorXML instead which handles them in a conventional way where the GUIDs embedded in the .mdl are used. LibraryMaker stores these randomly assigned GUIDs in a txt file so if you lose that txt file and try to add new models in the future LibraryMaker won't allow you to, you'll need to rebuild the LIB completely in which case new random GUIDs will be generated and all your existing placements will be broken. Further LibraryCreatorXML will allow you to browse and add multiple models at once where LibraryMaker forces you to open the "Add" dialog for each model added which is a pain if you have 50 or 60 models to compile into the library.

Incidentally another way you can differentiate between FS9 and FSX models is to start Notepad and drag the .mdl into the Notepad window (don't save it, just look), at the head of the file you'll see "MDL9MDLH" or "MDLXMDL" which will tell you which compiler was used to export the model.

Jim

Hi Jim,

You're preachin' to the choir! Yes, I only use LibraryCreatorXML to create new libraries since I absolutely hate that LibraryMaker changes the GUIDS. So, I completely agree with you. However, the libraries I am dealing with here are FS9 libraries created awhile back probably using the "EZ" tools. These libraries don't have xml files but do have .txt files so I handle them via LibraryMaker since I don't want to rebuild the libraries from scratch. I use a very quick technique to change the GUIDs back to what is in the .mdl after LibraryMaker manipulation.

Yes, the notepad look would be a quick way of checking....didn't think of that.

Thanks.

Stiletto2
 
Last edited:
Hi Jim,

Thanks for the info. I didn't know library maker would compile such a bgl.
 
LibraryMaker stores these randomly assigned GUIDs in a txt file so if you lose that txt file and try to add new models in the future LibraryMaker won't allow you to
A Library Maker .bgl without the list is more secure as it's harder to reverse compile, but I'm pretty sure you can read the GUID's from Instant Scenery and make a new list.
 
A Library Maker .bgl without the list is more secure as it's harder to reverse compile, but I'm pretty sure you can read the GUID's from Instant Scenery and make a new list.
It's no problem to decompile the library with BglAnalyze9 and get the GUIDs back out that way as well. Workarounds aside, I can't see it as a good idea to assign a random GUID to an FSX model that doesn't match the embedded GUID and then compile it into an FS9 style library though, especially when there are better tools available for compiling libraries (Notepad for example :) ).

Jim
 
Library Maker gives one no control over GUID and while MCX can be quirky in that regard, it remains vastly superior, imo. I really enjoy the ability to add models as "placeholders" and the substitute them with better ones as my project progresses. With Scenery Objects Editor it is as easy as adding a model, copying the existing GUID, deleting the place holder model and then pasting the GUID into the new one.
 
I've never used "placeholders" officially but I think I know what you're getting at. My models usually begin life as rudimentary boxes from gmax, I export them in "gmax colors" as soon as I have the basic footprint laid out, add them to my library, and place them in the sim. If the size and proportions look about right I finish modeling and texturing, otherwise I fix them and then finish modeling/texturing, but the GUID and friendly name (or reference point for that matter) never change throughout their construction. There's nothing worse than finishing up a complex model in the modeling program and then finding out it doesn't match the footprint on the PR, so after that's bitten me in the a$$ a few times, size and proportions are usually step one now. I guess that could be considered the placeholder stage. Once I initially add a new model to my library XML I just use a batch file to compile a new library with bglcomp and send the finished .bgl to the scenery folder which is pretty effortless - export a .mdl from gmax, batch it in MCX (usually), double click the batch file, start the sim.

I would think you could control the GUIDs with Library Maker by editing the txt file and then re-opening/recompiling the library, no?
 
I don't know the exact role of the Library Maker text file as it contains only GUID's, if I remember correctly. Most such documents provide relative data; 1=a, 2=b, red=255, etc. Without anything to compare the GUID's to, one must wonder if the actual order corresponds to anything and lacking any correspondence, how Instant Scenery would distinguish a edited GUID from a missing Library Maker document altogether.
 
Hi,

Actually the bgl library format is almost the same for fs2004 and fsx. The difference is in the modeldata part. This is where the mdl files are stored and as we know these are very different.

So indeed for fsx models the guid is defined twice. Once in the model and once in the bgl code that wraps around the model. In most cases you'll find the same guid twice. In bglcomp you can't specify the guid anymore (in the XML), it's read from the mdl. But it seems library maker writes it's own bgl without bglcomp.

Regarding the txt file, I thought that was only for instant scenery to link guids to names. Before fsx the name of objects was not stored in the mdl.
 
Regarding the txt file, I thought that was only for instant scenery to link guids to names. Before fsx the name of objects was not stored in the mdl.
Yes, that is correct. I just ran a test and Library Maker does indeed correlate the model name with the GUID, they are both in the text document.
 
Back
Top