Morrowind Mod:File Format Conventions
Listed here are conventions used in describing Morrowind file formats. As much as possible, language-agnostic terminology is used.
If multiple fields appear in fixed groups (e.g., MAST and DATA in TES3), the Count field will span all fields which appear together. If the field name is unindented, it will always appear if the top-most field appears; if it's indented, the field may not be present, even if the top-most field is. This is most often used for repeating sets of fields which represent sub-records within the main record (e.g., collections), but is also sometimes used singly when several fields are related and only appear together or not at all. The specifics of more complex situations will be described in the text of the record.
|-||Optional - note that in some cases, a field marked as optional is always present in the base game data, but may not be present in an ESP.|
|*||Repeating - variable amount (repeat count may be zero).|
|null/empty||0||Field with no data, usually used as a marker or flag.|
|int8||1||8-bit value, signed.|
|uint8||1||8-bit value, unsigned.|
|int16||2||16-bit value, signed.|
|uint16||2||16-bit value, unsigned.|
|int32||4||32-bit value, signed.|
|uint32||4||32-bit value, unsigned.|
|float32||4||32-bit value, floating-point.|
|rgb||4||4 unsigned bytes, containing red, green, and blue values. The fourth byte is always zero.|
|type[num]||num*sizeof(type)||Array of num types.|
|zstring||??+1||Zero terminated string.
|string||??||String which is not terminated, taking the full length of the field.|
|struct||??||Collection of other data types.