Skyrim Mod:Save File Format/ACHR Changeform

The UESPWiki – Your source for The Elder Scrolls since 1995
Jump to: navigation, search


ACHR change form[edit]

The ACHR change form contains information about actor instances, including but not limited to their:

  • Position
  • Inventory
  • Skill levels
  • Perks (Todo: check if accurate)
  • Spells (Todo: check if accurate)
  • Shouts (Todo: check if accurate)

Change form flags[edit]

ACHR change form flags
Bit Value Constant Name Pretty Name (In code)
1 0x00000002 CHANGE_REFR_MOVE Moved
2 0x00000004 CHANGE_REFR_HAVOK_MOVE Havok Moved
3 0x00000008 CHANGE_REFR_CELL_CHANGED Cell Changed
4 0x00000010 CHANGE_REFR_SCALE Scale
5 0x00000020 CHANGE_REFR_INVENTORY Inventory
6 0x00000040 CHANGE_REFR_EXTRA_OWNERSHIP Ownership Extra
7 0x00000080 CHANGE_REFR_BASEOBJECT BaseObject
10 0x00000400 CHANGE_ACTOR_LIFESTATE Life State
11 0x00000800 CHANGE_ACTOR_EXTRA_PACKAGE_DATA Package Data Extra
12 0x00001000 CHANGE_ACTOR_EXTRA_MERCHANT_CONTAINER Merchant Container
17 0x00020000 CHANGE_ACTOR_EXTRA_DISMEMBERED_LIMBS Dismembered Limbs
18 0x00040000 CHANGE_ACTOR_LEVELED_ACTOR Leveled Actor
19 0x00080000 CHANGE_ACTOR_DISPOSITION_MODIFIERS Disp Modifiers
20 0x00100000 CHANGE_ACTOR_TEMP_MODIFIERS Temp Modifiers
21 0x00200000 CHANGE_ACTOR_DAMAGE_MODIFIERS Damage Modifiers
22 0x00400000 CHANGE_ACTOR_OVERRIDE_MODIFIERS Override Modifiers
23 0x00800000 CHANGE_ACTOR_PERMANENT_MODIFIERS Permanent Modifiers
25 0x02000000 CHANGE_REFR_PROMOTED Promoted
26 0x04000000 CHANGE_REFR_EXTRA_ACTIVATING_CHILDREN Activating Children
27 0x08000000 CHANGE_REFR_LEVELED_INVENTORY Leveled Inventory
28 0x10000000 CHANGE_REFR_ANIMATION Animation
29 0x20000000 CHANGE_REFR_EXTRA_ENCOUNTER_ZONE Enc Zone Extra
30 0x40000000 CHANGE_REFR_EXTRA_CREATED_ONLY Created Only Extra
31 0x80000000 CHANGE_REFR_EXTRA_GAME_ONLY Game Only Extra

Structure[edit]

The ACHR change form is much the same format as the REFR change form with a few differences.

Name Data Present if flag set
Initial data Initial type see Initial type
Havok data vsval count

uint8[count]

CHANGE_REFR_HAVOK_MOVE
Unknown integer uint32
Unknown data uint8[4]
Flags Change form flags CHANGE_FORM_FLAGS
Base object (TODO: check if this is correct for ACHR) refId CHANGE_REFR_BASEOBJECT
scale float CHANGE_REFR_SCALE
Extra data Extra data if one or more of these is set:

CHANGE_REFR_EXTRA_OWNERSHIP

CHANGE_REFR_PROMOTED

CHANGE_ACTOR_EXTRA_PACKAGE_DATA

CHANGE_ACTOR_EXTRA_MERCHANT_CONTAINER

CHANGE_ACTOR_EXTRA_DISMEMBERED_LIMBS

CHANGE_REFR_EXTRA_ACTIVATING_CHILDREN

CHANGE_REFR_EXTRA_ENCOUNTER_ZONE

CHANGE_REFR_EXTRA_CREATED_ONLY

CHANGE_REFR_EXTRA_GAME_ONLY

CHANGE_ACTOR_LEVELED_ACTOR

Inventory Inventory CHANGE_REFR_INVENTORY or CHANGE_REFR_LEVELED_INVENTORY
Animation vsval count

uint8[count]

CHANGE_REFR_ANIMATION
TODO: Parse rest of ACHR form

Inventory[edit]

Name Type Description
count vsval
items Inventory item[count]

Inventory item[edit]

Name Type Description
item refId
item count sint32 eg. player have 1000 gold, then this is 1000.
extra count vsval
extra datas Extra data[extra count]