Morrowind Mod:File Format Conventions

The UESPWiki – Your source for The Elder Scrolls since 1995
Jump to: navigation, search

Listed here are conventions used in describing Morrowind file formats. As much as possible, language-agnostic terminology is used.

C (Count)[edit]

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 subrecords 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.

Count Usage
? Unknown
+ Required
- 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).

Data Types[edit]

Type Size Description
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.
  • Size is size of string text + 1 for string terminator.
  • Both this type and the 'string' type use Windows 1250 (Polish), 1251 (Russian), and 1252 (everything else) encodings. The specific encoding selected is not recorded in the plugin itself, but instead hardcoded in Morrowind's executable.
string  ?? String which is not terminated, taking the full length of the field.
struct  ?? Collection of other data types.
  • Used to group items that logically belong together (e.g., cell data). The structure format is included in the Info field as a series of indented lines (: type - description).
  • Structure size is listed below it in the format: (X bytes).