ExtraData
From GECK
Contents
Overview
ExtraData is tied to References, and is used by the game engine to store "extra" information about such references, some of which can be save-baked. In essence, they help make each reference unique, by keeping track of their health, ownership, etc.
For example, when the game needs to store/retrieve information about the current health of a Weapon reference that's on the ground, it uses ExtraData. If the weapon reference has no such Health ExtraData, then its current health is assumed to be its base health. Otherwise, its current health is determined by the Health ExtraData.
- For Items, this is what GetCurrentHealth checks for. Otherwise, if the reference is a DestructibleObject, it checks for its ObjectHealth ExtraData.
- Note that Actors keep track of health changes in a different way, using ActorValues.
Types of ExtraData
ExtraData comes in many different types. Below is a list of such types:
Number | ExtraData Type | Notes | Related Function(s) |
---|---|---|---|
0 | Unknown00 | ||
1 | Havok | ||
2 | Cell3D | ||
3 | CellWaterType | ||
4 | RegionList | ||
5 | SeenData | ||
6 | EditorID | ||
7 | CellMusicType | ||
8 | CellClimate | ||
9 | ProcessMiddleLow | ||
10 | CellCanopyShadowMask | ||
11 | DetachTime | ||
12 | PersistentCell | ||
13 | Script | ||
14 | Action | ||
15 | StartingPosition | ||
16 | Anim | ||
17 | Unknown11 | ||
18 | UsedMarkers | ||
19 | DistantData | ||
20 | RagdollData | ||
21 | ContainerChanges | ||
22 | Worn | ||
23 | WornLeft | ||
24 | PackageStartLocation | ||
25 | Package | ||
26 | TrespassPackage | ||
27 | RunOncePacks | ||
28 | ReferencePointer | ||
29 | Follower | ||
30 | LevCreaModifier | ||
31 | Ghost | ||
32 | OriginalReference | ||
33 | Ownership | ||
34 | Global | ||
35 | Rank | ||
36 | Count | Returns the amount of stacked items in a placed reference. | GetRefCount, SetRefCount - if called on a placed reference. |
37 | Health | Determines the current health of an Item. | GetCurrentHealth |
38 | Uses | ||
39 | TimeLeft | ||
40 | Charge | ||
41 | Light | ||
42 | Lock | Holds Lock information, like if a Container is locked or not, what its lock difficulty is, etc. | GetLocked, GetIsLockBroken, GetLockedOut/SetLockedOut, GetLockLevel, Lock, Unlock |
43 | Teleport | ||
44 | MapMarker | ||
45 | Unknown2D | ||
46 | LeveledCreature | ||
47 | LeveledItem | ||
48 | Scale | ||
49 | Seed | ||
50 | NonActorMagicCaster | ||
51 | NonActorMagicTarget | ||
52 | Unknown34 | ||
53 | PlayerCrimeList | ||
54 | Unknown36 | ||
55 | EnableStateParent | ||
56 | EnableStateChildren | ||
57 | ItemDropper | ||
58 | DroppedItemList | ||
59 | RandomTeleportMarker | ||
60 | MerchantContainer | ||
61 | SavedHavokData | ||
62 | CannotWear | ||
63 | Poison | ||
64 | Unknown40 | ||
65 | LastFinishedSequence | ||
66 | SavedAnimation | ||
67 | NorthRotation | ||
68 | XTarget | ||
69 | FriendHits | ||
70 | HeadingTarget | ||
71 | Unknown47 | ||
72 | RefractionProperty | ||
73 | StartingWorldOrCell | ||
74 | Hotkey | ||
75 | Unknown4B | ||
76 | EditorRefMovedData | ||
77 | InfoGeneralTopic | ||
78 | HasNoRumors | ||
79 | Sound | ||
80 | TerminalState | ||
81 | LinkedRef | ||
82 | LinkedRefChildren | ||
83 | ActivateRef | ||
84 | ActivateRefChildren | ||
85 | TalkingActor | ||
86 | ObjectHealth | Determines the current health of a DestructibleObject. | GetCurrentHealth |
87 | DecalRefs | ||
88 | Unknown58 | ||
89 | CellImageSpace | ||
90 | NavMeshPortal | ||
91 | ModelSwap | ||
92 | Radius | ||
93 | Radiation | ||
94 | FactionChanges | ||
95 | DismemberedLimbs | ||
96 | ActorCause | ||
97 | MultiBound | ||
98 | MultiBoundData | ||
99 | MultiBoundRef | ||
100 | Unknown64 | ||
101 | ReflectedRefs | ||
102 | ReflectorRefs | ||
103 | EmittanceSource | ||
104 | RadioData | ||
105 | CombatStyle | ||
106 | Unknown6A | ||
107 | Primitive | ||
108 | OpenCloseActivateRef | ||
109 | AnimNoteReciever | ||
110 | Ammo | ||
111 | PatrolRefData | ||
112 | PackageData | ||
113 | OcclusionPlane | ||
114 | CollisionData | ||
115 | SayTopicInfoOnceADay | ||
116 | EncounterZone | ||
117 | SayToTopicInfo | ||
118 | OcclusionPlaneRefData | ||
119 | PortalRefData | ||
120 | Portal | ||
121 | Room | ||
122 | HealthPerc | ||
123 | RoomRefData | ||
124 | GuardedRefData | ||
125 | CreatureAwakeSound | ||
126 | WaterZoneMap | ||
127 | Unknown7F | ||
128 | IgnoredBySandbox | ||
129 | CellAcousticSpace | ||
130 | ReservedMarkers | ||
131 | WeaponIdleSound | ||
132 | WaterLightRefs | ||
133 | LitWaterRefs | ||
134 | WeaponAttackSound | ||
135 | ActivateLoopSound | ||
136 | PatrolRefInUseData | ||
137 | AshPileRef | ||
138 | CreatureMovementSound | ||
139 | FollowerSwimBreadcrumbs | ||
140 | CellImpactSwap | ||
141 | WeaponModFlags | ||
142 | ModdingItem | ||
143 | SecuritronFace | ||
144 | AudioMarker | ||
145 | AudioBuoyMarker | ||
146 | SpecialRenderFlags |
Notes
- Although certain functions allow adding ExtraData to references, the game engine is usually selective about what kind of ExtraData it wants to save depending on the reference's type.
- For all references, ContainerChanges is saved.
- For Actors, PersistentCell, PackageStartLocation, RunOncePacks, ItemDropper, LastFinishedSequence, HeadingTarget, InfoGeneralTopic, and HasNoRumors are saved.
- A quick test using SetRadius reveals that Radius ExtraData is not saved on Actors, unlike the above.