MetaModel Binary (.meta.xml)
Despite the extension .xml, these files in the STR container are compiled binary MetaModel resources containing class definitions, attributes, and object states.
Header
| Offset |
Type |
Name |
Description |
| 0x00 |
UInt32 |
Magic |
File signature. |
| 0x04 |
UInt32 |
Version |
Format version. |
| 0x08 |
UInt32 |
Size |
Total file size. |
| 0x0C |
UInt32 |
Flags |
Meta flags. |
| 0x10 |
UInt128 |
GUID |
16-byte resource GUID. |
| 0x20 |
UInt32 |
NameHash |
Hash of the name. |
| 0x24 |
UInt32 |
PathHash |
Hash of the path. |
| 0x28 |
UInt32 |
SourceHash |
Hash of the source. |
Section Offsets (Int32)
Offsets are absolute. If 0 or negative, the section is empty.
| Offset |
Name |
Description |
| 0x2C |
AssetOffset |
Start of Asset array. |
| 0x30 |
StateOffset |
Start of State array. |
| 0x34 |
VariableOffset |
Start of Variable array. |
| 0x38 |
AttributeOffset |
Start of Attribute array. |
| 0x3C |
PredicateOffset |
Start of Predicate array. |
| 0x40 |
PartOffset |
Start of Part array. |
Section Counts (UInt16)
Located at 0x4C.
| Offset |
Name |
| 0x4C |
AssetCount |
| 0x4E |
StateCount |
| 0x50 |
VariableCount |
| 0x52 |
AttributeCount |
| 0x54 |
PredicateCount |
| 0x56 |
PartCount |
Data Structures
Strings
Strings are stored as relative pointers (Int32) to null-terminated arrays. The pointer is relative to the current position.
Attribute Structure
| Type |
Name |
Description |
| Byte[4] |
Value |
Raw value (interpretation depends on type). |
| RelPtr |
Name |
Attribute name. |
| RelPtr |
Scope |
Scope name. |
| UInt32 |
UIndex |
Unknown index. |
| UInt32 |
ID |
Attribute ID. |
| Int32 |
Type |
Value Type Flags. |
Value Type Flags
- 0x01: Boolean (Value[0])
- 0x02: Integer (Big Endian)
- 0x04: Float
- 0x08: String Pointer (Absolute offset to string)
- 0x10: Asset Pointer (Absolute offset to Asset)
- 0x20: Matrix Pointer (Absolute offset)
State Structure
| Type |
Name |
Description |
| UInt32 |
ClassID |
Class identifier. |
| RelPtr |
ClassName |
Class name string. |
| RelPtr |
Name |
State name string. |
| Int32 |
AttrArrOffset |
Absolute offset to array of Attribute pointers (Int32). |
| UInt16 |
AttrCount |
Number of attributes. |
| UInt16 |
ObjType |
Object type. |
| Int32 |
PartArrOffset |
Absolute offset to array of Part pointers. |
| Int32 |
PredArrOffset |
Absolute offset to array of Predicate pointers. |
| UInt16 |
PartCount |
Number of parts. |
| UInt16 |
PredCount |
Number of predicates. |