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

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.