Actor Value

Revision as of 11:56, 7 November 2011 by imported>Jbrowne
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Overview

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:

  • Attributes
    • Health
    • Magicka
    • Stamina
  • Skills
    • OneHanded
    • TwoHanded
    • Marksman (Archery)
    • Block
    • Smithing
    • HeavyArmor
    • LightArmor
    • Pickpocket
    • Lockpicking
    • Sneak
    • Alchemy
    • Speechcraft (Speech)
    • Alteration
    • Conjuration
    • Destruction
    • Illusion
    • Restoration
    • Enchanting
  • AI Data
    • Aggression
    • Confidence
    • Energy
    • Morality
    • Mood
    • Assistance
  • Other Statistics
    • HealRate
    • MagickaRate
    • StaminaRate
    • SpeedMult
    • InventoryWeight
    • CarryWeight
    • CritChance
    • MeleeDamage
    • UnarmedDamage
    • Mass
    • VoicePoints
    • VoiceRate
    • DamageResist
    • PoisonResist
    • FireResist
    • ElectricResist
    • FrostResist
    • MagicResist
    • NormalWeaponsResist
    • Paralysis
    • Invisibility
    • NightEye
    • DetectLifeRange
    • WaterBreathing
    • WaterWalking
    • JumpingBonus
    • WardPower
    • WardDeflection
    • EquippedItemCharge
    • EquippedStaffCharge
    • ArmorPerks
    • ShieldPerks
    • BowSpeedBonus
  • User-Defined Actor Values
    • Variable01-Variable10
  • Obsolete/Unused
    • PerceptionCondition
    • EnduranceCondition
    • LeftAttackCondition
    • RightAttackCondition
    • LeftMobilityCondition
    • RightMobilityCondition
    • BrainCondition
    • IgnoreCrippledLimbs
    • Fame
    • Infamy
    • FavorActive
    • FavorsPerDay
    • FavorsPerDayTimer

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.

  Since other scripts and packages may depend on the values in these variables, it is important to make sure that you don't change a variable that may already be in use by that actor. Consult the table below for the most common uses for each variable.


Variable Reserved Use
Variable01
  • Used by cart drivers and horses to track state.
  • Used by Ambush Packages to record whether the ambush has been triggered.
Variable02
  • Used by the Ebony Blade so once an actor has witnessed its power, it is immune to it.
Variable03
  • Used to track if a guard recently asked about crimegold.
  • Used to track if an NPC notices player wearing an Amulet of Mara.
Variable04
  • Used for a triggered package transition on defaultMasterPackage.
Variable05
  • Used by NPCs stuck in web.
Variable06
  • Used as a combat state flag on a number of packages.
    • Used by HoldPosition*UntilReleased packages as a way to 'release' enemies from their post once the player passes it.
    • Used by the Hag's End Hagraven to track her boss battle state.
    • Used by the Frostmere Crypt Wispmother to track her battle state.
Variable07
  • (Vampires) Track if the NPC has been bitten by the player.
  • (Wisp) Used to track when child wisps are dead, triggering berserk script.
Variable08
  • (Werewolves) Used to tell when when the player (as a werewolf) has fed on a body already, to prevent further feeding.
Variable09
  • Used by innkeepers to conditionalize room rental dialogue.
Variable10
  • Used to decide if an actor is going to use the "Weapon Drawn" version of the DefaultMasterPackage.