Esx: Difference between revisions

From OpenMW Wiki
Jump to navigation Jump to search
mNo edit summary
Line 8: Line 8:


=== Record ===
=== Record ===
  4 bytes: char Name[4]
  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: long Size
  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: long Header1
  4 bytes, integer. Unknown.
     Unknown value, usually 0 (deleted/ignored flag?).
     -- Unknown value, usually 0 (deleted/ignored flag?).
  4 bytes: long Flags
  4 bytes, integer. Record flags.
    Record flags.
    --  0x00002000 = Blocked
          0x00002000 = Blocked
    --  0x00000400 = Persistant
          0x00000400 = Persistant
  Record size bytes, SubRecords[].
  ? 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: char Name[4]
  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: long Size
  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.
  ? bytes: Sub-Record 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

Wiki letter w.png

This article is not complete yet, work in progress


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.