Esx: Difference between revisions
Jump to navigation
Jump to search
m (→Record types) |
mNo edit summary |
||
Line 8: | Line 8: | ||
=== Record === | === Record === | ||
4 bytes | 4 bytes, char[4]. Name. | ||
4-byte record name string. all CAPS, not null-terminated. | -- 4-byte record name string. all CAPS, not null-terminated. | ||
4 bytes | 4 bytes, integer. Record size. | ||
Size of the record not including the 16 bytes of header data. | -- Size of the record not including the 16 bytes of header data. | ||
4 bytes | 4 bytes, integer. Unknown. | ||
Unknown value, usually 0 (deleted/ignored flag?). | -- Unknown value, usually 0 (deleted/ignored flag?). | ||
4 bytes | 4 bytes, integer. Record flags. | ||
-- 0x00002000 = Blocked | |||
-- 0x00000400 = Persistant | |||
Record size bytes, SubRecords[]. | |||
-- All records are composed of a variable number of sub-records. There | |||
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 | ||
is no sub-record count, just use the record Size value to determine | -- when to stop reading a record. | ||
when to stop reading a record. | |||
==== Sub-Record ==== | ==== Sub-Record ==== | ||
The sub-record is the tail of the record and it contains data specific to the | The sub-record is the tail of the record and it contains data specific to the | ||
record type. | record type. | ||
4 bytes | 4 bytes, char[4]. Name. | ||
4-byte sub-record name string, all CAPS, not null-terminated | -- 4-byte sub-record name string, all CAPS, not null-terminated | ||
4 bytes | 4 bytes, long. Size of sub-record. | ||
Size of the sub-record not including the 8 bytes of header data. | -- Size of the sub-record not including the 8 bytes of header data. | ||
Size of sub-record bytes, various format. Sub-Record data. | |||
Format depends on the sub-record type. | -- Format depends on the sub-record type. | ||
=== Record types === | === Record types === |
Revision as of 11:10, 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[4]. Name. -- 4-byte record name string. all CAPS, not null-terminated. 4 bytes, integer. Record size. -- Size of the record not including the 16 bytes of header data. 4 bytes, integer. Unknown. -- Unknown value, usually 0 (deleted/ignored flag?). 4 bytes, integer. Record flags. -- 0x00002000 = Blocked -- 0x00000400 = Persistant Record size 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[4]. Name. -- 4-byte sub-record name string, all CAPS, not null-terminated 4 bytes, long. Size of sub-record. -- Size of the sub-record not including the 8 bytes of header data. Size of sub-record bytes, various format. Sub-Record data. -- Format depends on the sub-record type.
Record types
Tes3, Main header.
Gmst, Game setting.
GLOB, Global variable.