ActorValue

From GECK
Jump to: navigation, search

For the list of current Actor Values, see Stats List.

Actor Values are the collection of stats that every NPC and Creature uses for various game mechanics.

There are different types of actor values, S.P.E.C.I.A.L. attributes, skills, and derived attributes. SPECIAL attributes are used simply as they are entered into the actor's form in the GECK. Skills are derived from a formula that uses SPECIAL attributes and game settings, and an offset that can be entered in the GECK. Derived attributes are also derived from formulas that use SPECIAL attributes and game settings, but except for health do not have an offset that can be entered into the GECK.

Determining the final value of an actor value is a multi-step process. First the base value is found, either from a field in the GECK (as with the SPECIAL attributes) or from a formula (as with skills and derived attributes). For skills, this base value includes any GECK entered offsets.

This base value can be overridden by the SetActorValue command (and this override can be undone with UnsetAV). The game uses this base value as a starting point, which can be gathered by GetBaseActorValue. It then adds three pools of values to it:

  • Temporary Pool: These come from a few in-game sources, and so far can't be altered in a scripted fashion. Namely, it is safe to say they come exclusively from Base Effects active on the actor, of the "Value Modifier" archetype (and special derivatives such as "Value and Parts"), and with the "Recover" flag (with one exception explained in the next point). Think of ingestibles like Buffout, which temporarily increase HP and STR, or the various object effects found on armor pieces altering stats until you take the armor off, all of them target the temporary pool. The combined value of this pool can be gathered with GetActorValueModifier <actor value> 2.
  • Permanent Pool: These are permanent adjustments to the value, and can be manipulated through ModActorValue. Other than this command, the in-game sources for this modifier come from skill books, which can alter the various skill actor values, and one special case: effects found in Actor Effects of type "Ability", using base effects like in the above point (value modifier with "Recover" flag), and which have no conditions defined for the effect to be active, will modify the permanent pool instead of the temporary one, but only for the player character. This is used for example by the Life Giver perk, which gives the player an ability that permanently raises Health. The combined value of this pool can be gathered with GetActorValueModifier <actor value> 1. The combined base value + the permanent modifier is gathered by GetPermanentActorValue. Finally, using ForceActorValue will alter the permanent modifier to get to the value selected.
  • Damage Pool: This pool can only hold a negative modifier to the actor value. It can be manipulated through DamageActorValue and RestoreActorValue. The game's combat system puts damage to actors' Health here of course, the other in game source of it is from base effects like those of the previous points, but which don't use the "Recover" flag.

The console command GetActorValueInfo can detail information of all the parts that involve getting the final value, which is what is returned by GetActorValue.

Also of note:

  • A negative temporary modifier cannot lower the final value of a skill or SPECIAL actor value below 0, and the magnitude of active effects can even be altered by the game when applied to observe this limitation. i.e. an armor that lowers Agility by 2 points will only lower it by 1 if the player has an Agility of 1 when they equip it. In rare cases, this can be a problem if the other parts of the value change after the temporary modifier is applied, since its magnitude will not be updated afterwards.
  • For the player character, the base values of the SPECIAL actor values are defined as SetAV overrides, which get updated when distributing them in Chargen or when using AddSPECIALPoints
  • Points put into skills at level up are added to the SetAV override value, and this is added to the base value instead of replacing it.


ActorValue Dialog

The ActorValue dialog allows you to set information related to each specific Actor Value. Not all of the info you can supply is actually used for every actor value. Currently, ActorValues can only be viewed and edited through the Character menu on the main window.

  • Actor Value List: Each actor value has a name and a type. Right-click in the list for additional options.
  • Script Name: Editor name (no spaces). This is the name used to reference the actor value when using the GetActorValue, SetActorValue, DamageActorValue, RestoreActorValue, ModActorValue and ForceActorValue functions.
  • Type: Actor values are used for different purposes. The type of each is shown in a non-editable text field. Includes (but is not limited to) Primary Statistics, Skills, Derived Statistics, and Actor Values (general).
  • In-Game Name: Display name. Where appropriate, this is the name of the actor value that'll be displayed in-game. It's used for skills and primary statistics for the most part.
  • Abbreviation: Shortened name.
  • Description: An overview regarding the selected actor value. For actor values that are displayed in-game (mainly in the Pip-Boy), you can enter a text description here that can be displayed in the interface.
  • Image: Actor values such as skills and stats can have images associated with them that are displayed in the user interface. Select these images here.

User Defined Actor Values

There are ten user defined actor values. They have no defined game functions, but can be used by quests to establish permanent data on the actor. Keep in mind that setting one of the variables on an actor implicitly defines that variable for all actors.

Using these values to store extra information has the potential to cause conflicts with other mods. If you need to store information on an actor, use a token (an unplayable, therefore invisible, piece of armor) instead. Alternatively, Auxiliary Variables can be used, but cannot accurately track information for dynamically-spawned references. If for very, very specific reasons you must use an AV, record it here.

  • Variable01
    • Used by doctors to conditionalize the medical services packages/dialogue
    • Used by generic Protectrons ("ticket checking" robots)
    • Used by a Variety of FFE stuff uses this value for specific things
    • Used in Chargen in a couple of places to conditionalize packages
    • ... actually used all over the place. SUMMARY: Don't use this for anything non-specific.
  • Variable02
    • Used by CG04 guard packages
    • Used by Super Mutant captives
    • Used by Capitol Building Behemoth Hide Script
    • Used by Anchorage Strike Team Member Script
    • Used by Anchorage Montgomery Script
  • Variable03
    • Used by vendors to initiate following the player if they go into back rooms, etc.
    • Used by a lot of Anchorage scripts and a few packages
  • Variable04
    • Used by Capitol Building Behemoth Hide Script
    • Used by Tunnelers in Lonesome Road
    • Used by Slave Escape script in The Pitt
  • Variable05
    • TenpennyResidentSCRIPT (unused)
    • Used by all Fallout 3 DLC in scripts and packages
  • Variable06
    • Used by Zeta Cryo Freeze Script
    • Used by Point Lookout Man Master script
    • Used by The Pitt Slave Escape script
    • Used by The Pitt Raider Ambush Package
  • Variable07
    • Used by LenfantMutantMoveScript (only one use)
    • Used by Zeta Steamworks LD Script
    • Used by Zeta Steam Sally Ignore Script
    • Used by Zeta Cryo Freeze Room Script
  • Variable08
    • Used by The Pitt Slave Hurt Script
    • Used by Anchorage Observe Trigger Script
    • Used by Zeta Teleporters, Doors and Robot Pods
  • Variable09
    • Used by MS13CollarScript
    • Used by Anchorage Strike Team Scripts
    • Used by General Jing Wei Script
  • Variable10
    • Water beggars
    • Player addiction
    • Anchorage Strike Team Member Script
    • Anchorage Montgomery Script
Setting it to 2 on the beggars will kill them immediately.

Mod Usage

  • Variable01
  • Variable02
  • Variable03
  • Variable04
  • Variable05
  • Variable06
    • Mart's Mutant Mod uses Var06 for tracking Increased Spawns, on NPCs only.
  • Variable07
    • Impervious Power Armour uses Var07 for tracking Damage Reduction on PCs and NPCs.
  • Variable08
    • Impervious Power Armour uses Var08 for tracking Damage Reduction on PCs and NPCs.
  • Variable09
    • Bottle Rinse Repeat uses Var09 for tracking milked brahmins.
  • Variable10

See Also