Actor Values are properties that exist on Actors. They include things like attributes (Health, Magicka), skills (One-Handed, Lockpicking), derived statistics (Carry Weight, Fire Resistance), and user-defined variables (Variable01). You can access and modify these values in a variety of ways by using the 'ActorValue' functions in Papyrus (GetActorValue, SetActorValue, Damage Actor Value, and so forth). They are also modified by the game itself-- Health is damaged, fortified, and restored in combat. Magicka is reduced when casting spells, and so on.
GetActorValue will return the current value of the Actor Value. This is defined as the sum of four parts:
- The Base Actor Value
- The Permanent Modifier
- The Temporary Modifier
- The Damage Modifier
The Base Actor Value can come from a variety of places. Sometimes, the value is set on the Actor Form. It can also come from the character's race, or be derived from a formula. Most actor values have an "implicit" base value, which is usually 0 but in some cases can be 1 or 100. Some Actor Values are "Enumerations", and can only have one of a set of specific values.
The Permanent Modifier is adjusted whenever you call ModActorValue in script. It is also adjusted when Abilities or Enchantments change the value. If you have a circlet that increases your Magicka by 10 points, those 10 points will be added to the Permanent Modifier.
The Temporary Modifier is used for temporary Actor Value buffs or drains. If you have a 30 second Fortify Health potion, the 30 points will go into Health's Temporary Modifier.
The Damage Modifier is used for damage only. So if you cast a spell that costs 10 points, the 10 points will go into the Damage modifier. Values in the Damage modifier will be negative. If you call DamageActorValue, the amount you specify will go into the Damage Modifier.
List of Actor Values
The current list of Actor Values is:
- Marksman (Archery)
- Speechcraft (Speech)
- SkillMod values are changed by perks and fortify skill enchantments. The automatic perk PerkSkillBoosts translates those into actual game effects.
- SkillPowerMod values are changed by fortify skill potions. The automatic perk AlchemySkillBoosts translates those into actual game effects. The effect is usually the same as increasing the skill level of the associated skill, except for the magic schools: Alteration = duration, Conjuration = duration, Destruction = magnitude, Illusion = magnitude, Restoration = magnitude.
- AI Data
- Other Statistics
- attackDamageMult (try 5 for good ex.)
- ShoutRecoveryMult (Handles the shout cooldowns)
- WeaponSpeedMult (values of 1 to 5 work well, 0 to reset)
- User-Defined Actor Values
User Defined Actor Values
There are ten special User-Defined Actor Values ('Variable01'-'Variable10'). These have no inherent effect, but are used by scripts, packages, and conditions to maintain state information.
- Changes to the below actor values, if modified with SetActorValue - Actor for instance, will not persist in consecutive saves.
- Changes made to the player's SpeedMult actor value will not take effect instantly, whether these changes are scripted or the result of a Spell. Speed changes are applied only when the player's inventory weight or carry capacity change.
- If you are changing the player's speed with a Value Modifier magic effect, you can force the changes to apply and to wear off properly using an ActiveMagicEffect script attached to the magic effect. OnEffectStart, you'll want to modify the carry capacity actor value for the player (akTarget): increase it by 0.1, and then decrease it by 0.1 immediately after. Do the same thing OnEffectFinish.