Esx

Format of Morrowind's ESM Plug-In File
Basic Overall Format:

The ESM/ESP/ESS files are composed entirely of Records with this format.

Record
4 bytes: char Name[4] 4-byte record name string. all CAPS, not null-terminated. 4 bytes: long Size Size of the record not including the 16 bytes of header data. 4 bytes: long Header1 Unknown value, usually 0 (deleted/ignored flag?). 4 bytes: long Flags Record flags. 0x00002000 = Blocked 0x00000400 = Persistant ? bytes: SubRecords[] All records are composed of a variable number of sub-records. There is no sub-record count, just use the record Size value to determine when to stop reading a record.

Sub-Record
The sub-record is the tail of the record and it contains data specific to the record type. 4 bytes: char Name[4] 4-byte sub-record name string, all CAPS, not null-terminated 4 bytes: long Size Size of the sub-record not including the 8 bytes of header data. ? bytes: Sub-Record data. Format depends on the sub-record type.

Record types
Tes3, Main header record.

Gmst, Game setting record.