-
Notifications
You must be signed in to change notification settings - Fork 51
MBIN Format
MBIN Files use a binary data format to store different types of Game Components. It includes a 96-byte header structure that is common to all MBIN files as well as a data structure that is specific to the type of data template that is defined in the MBIN header.
There are approximately 1100 different data templates. Some are only used internally within other templates.
Offset | Size | Type | Name |
---|---|---|---|
0x0000 | 0x0004 | byte[4] | MagicID |
0x0004 | 0x0004 | uint32 | FormatID |
0x0008 | 0x0008 | uint64 | Timestamp |
0x0010 | 0x0008 | uint64 | TemplateGUID |
0x0018 | 0x0040 | char[64] | TemplateName |
0x0058 | 0x0008 | byte[8] | Padding |
Always 0xCCCCCCCC for *.MBIN files. Always 0xDDDDDDDD for *.MBIN.PC files.
Always 2500 (integer).
0x0 for most files. 0xFFFF.. for TkGeometryData files. Timestamp eg. 201607201542 (decimal) on global files and older MBINs, likely removed the code that set it at some stage.
Unique across templates (files using the same template share the same GUID). Doesn't appear to be used/required.
The name of the template for the type of Game Component data that is stored in the MBIN file.
Used for alignment of the following MBIN data to 16-byte boundaries.
MBINCompiler re-purposes some of the data within the header that NMS doesn't actually used in the game.
Offset | Size | Type | Name |
---|---|---|---|
0x0000 | 0x0004 | byte[4] | MagicID |
0x0004 | 0x0004 | uint32 | FormatID |
0x0008 | 0x0008 | char[8] | MbinTag |
0x0010 | 0x0008 | char[8] | MbinVersion |
0x0018 | 0x0040 | char[64] | TemplateName |
0x0058 | 0x0008 | byte[8] | Reserved |
Same as vanilla.
Same as vanilla.
Always "MBINCver". This is planned to be changed in the new format.
A version string in the format "XX.YY.ZZ" matching the MBINCompiler version that was used.
Same as vanilla.
Not currently used.