Esx: Difference between revisions
Jump to navigation
Jump to search
(→Record) |
m (→Record types) |
||
Line 34: | Line 34: | ||
=== Record types === | === Record types === | ||
[[Tes3]], Main header | [[Tes3]], Main header. | ||
[[Gmst]], Game setting | [[Gmst]], Game setting. | ||
[[GLOB]], Global variable. |
Revision as of 10:55, 21 February 2013
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.
Gmst, Game setting.
GLOB, Global variable.