Tes4Mod:Save File Format/Location Data

Cell Changed
The Cell Changed subrecord is present when byte 31 (0x80000000) is set in an ACHR/ACRE/REFR record's overall Flags. Its length is a constant 16 bytes.  It contains information about the original position of an actor who has moved from one cell to another.  When present, it is always the first subrecord to appear.

In analyzed save files, Cell Changed subrecords have only been seen in ACHR and ACRE change records.  However, occasionally REFR change records are seen for creature-related objects such as LVLC, which perhaps could also change cells.  Therefore, it seems safest to assume that this subrecord could appear for any of the three change record types.

The x/y/z data in this subrecord is identical to the contents of the original mod record's DATA subrecord; the cell is the same as the CELL group in which the record originally appeared.  One theory is that this data is used when cells are reset, to ensure that the actor is respawned at its original location (or perhaps is only respawned if it would not produce a duplicate).



Created
The Created subrecord is present when byte 1 (0x00000002) is set in an ACHR/ACRE/REFR record's overall Flags. Its length is a constant 36 bytes.  It contains information about the base item and the object's position.

The only subrecord that precedes the Created subrecord is Cell Changed, if both were to appear in the same record.

Note that newly-created ACHR/ACRE/REFR (e.g., placed instances of items) are only identified by this section -- they are not also listed in the save file's createdData section.  The createdData section is reserved for new item definitions, e.g. custom-defined potions, weapons, or other item types.

Earlier documentation listed "Base Object" as the subrecord corresponding to byte 1; the Base Object subrecord was listed as a 4-byte subrecord containing the same information as base_item in the Created subrecord.  The earlier information was probably based on an incomplete analysis of the record's contents.



Moved
The Moved subrecord is present when byte 2 (0x00000004) is set in an ACHR/ACRE/REFR record's overall Flags. Its length is a constant 28 bytes.  It contains information about the object's new position.

The only subrecord that precedes the Moved subrecord is Cell Changed, if both were to appear in the same record.  It appears in the same relative location as the Created subrecord, and presumably appears in place of the Created subrecord for pre-existing objects.  Moved and Created subrecords have never been seen together, and it is assumed that they never would appear simultaneously, since all of the information provided in the Moved record is already covered by the Created record.  



Havok Moved
This Havok Moved subrecord is present when byte 3 (0x00000008) is set in an ACHR/ACRE/REFR record's overall Flags, but only if neither Created nor Moved appears (if neither flag 1 nor 2 is set). Its length is a constant 28 bytes, and uses the same format as a Moved subrecord.  It contains information about the object's new position.

The only subrecord that precedes the Havok Moved subrecord is Cell Changed, if both were to appear in the same record.  It appears in the same relative location as the Created and Moved subrecord, and appears in place of those records.  Presumably it is used for objects which only moved as a result of the havok physics (e.g., because they were bumped, or the table on which they were located was jostled), as opposed to objects which were grabbed or dropped in a new location by the player.  Objects that were Havok Moved are normally re-positioned in their original locations when the cell is reset.

Note that this subrecord is only one part of the "Havok Moved" data.  Additional data can be added to the Miscellaneous section, although details of the additional data are poorly understood.

Oblivion Flag
The Oblivion Flag subrecord is present when byte 23 (0x00800000) is set in an ACHR/ACRE/REFR record's overall Flags, but only if none of Created, Moved, or Havok Moved) appears (if none of flags 1, 2, 3 or set). Its length is a constant 4 bytes, and contains information about the Oblivion cell in which the object is located.

The only subrecord that precedes the Oblivion Flag subrecord is Cell Changed, if both were to appear in the same record, but only because data is added for the Oblivion Flag only in the absence of the other preceding sections.  Otherwise, no data is added to the record; the Oblivion cell information can instead be retrieved from the cell entry in one of the other sections.

One theory for this subrecord's rationale is that it is used when an Oblivion World is de-activated and all the change records associated with that world need to be found and deleted.  Oblivion worldspaces are unique in that they are de-activated, and then later new instances of the entire worldspace may be created, with no memory of the earlier worldspace -- the cell reset on an Oblivion worldspace needs to be more thorough than on any other cell, and this subrecord is part of the mechanism for the thorough reset.