Actor Attribute Keys - League-of-Fabulous-Developers/FoundryVTT-Fabula-Ultima GitHub Wiki

Attribute Keys

These attribute keys are useful for Active Effects, macros, and anything else that interacts with the Foundry Virtual Tabletop API.

Characters and NPCs

Determining the actor type can be accessed through: actor.type

Both Characters, Companions, NPCs share similar data structures.

Actor Attributes

Main Stat Attributes

  • Replace <key> with one of the following: dex, ins, mig, wlp
    • Base: system.attributes.<key>.base
    • Current: system.attributes.<key>.current

Example: Improve/Reduce Attribute

  • Attribute Key: system.attributes.<key>
  • Choose Custom under Change Mode
  • Change Effect Value to upgrade | downgrade

Resource Attributes

  • Level {number}: system.level.value
  • HP Max {number}: system.resources.hp.max
  • HP Current {number}: system.resources.hp.value
  • HP Bonus {number}: system.resources.hp.bonus
  • MP Max {number}: system.resources.mp.max
  • MP Current {number}: system.resources.mp.value
  • MP Bonus {number}: system.resources.mp.bonus
  • IP Max {number}: system.resources.ip.max
  • IP Current {number}: system.resources.ip.value
  • IP Bonus {number}: system.resources.ip.bonus
  • Fabula Points {number}: system.resources.fp.value

Derived Stats

  • Initiative Value {number}: system.derived.init.value
  • Initiative Bonus {number}: system.derived.init.bonus
  • Defense Value {number}: system.derived.def.value
  • Defense Bonus {number}: system.derived.def.bonus
  • Magic Defense Value {number}: system.derived.mdef.value
  • Magic Defense Bonus {number}: system.derived.mdef.bonus

Example: Increase Defense/Magic Defense by X

  • Attribute Key: system.derived.<key>.bonus
  • Choose Upgrade under Change Mode
  • Change Effect Value to 2 for +2 bonus DEF

Example: Improve/Reduce Defense/Magic Defense to X

  • Attribute Key: system.derived.<key>.value
  • Choose Upgrade under Change Mode | Downgrade under Change Mode
  • Change Effect Value to 12 for 12 DEF | Effect Value to 4 for 4 DEF

Affinity

  • Physical: system.affinities.physical
  • Air: system.affinities.air
  • Bolt: system.affinities.bolt
  • Dark: system.affinities.dark
  • Earth: system.affinities.earth
  • Fire: system.affinities.fire
  • Ice: system.affinities.ice
  • Light: system.affinities.light
  • Poison: system.affinities.poison

Affinity Types

  • Vulnerable = -1
  • Normal = 0
  • Resistance = 1
  • Immunity = 2
  • Absorption = 3

Example: Editing Affinities

  • (Global) Base affinities: system.affinities.<key>.base
  • Current affinities: system.affinities.<key>.current

To override the current affinity with active effects:

  • Attribute Key: system.affinities.<key>.current
  • Choose Override under Change Mode
  • Adjust Effect Value to the desired affinity type value.

Example: Apply Vulnerability

  • Attribute Key: system.affinities.<key>
  • Choose Custom under Change Mode
  • Change Effect Value to downgrade

Example: Grant Resistance

  • Attribute Key: system.affinities.<key>
  • Choose Custom under Change Mode
  • Change Effect Value to upgrade

Example: Grant Immunity/Absorption

  • Attribute Key: system.affinities.<key>.current
  • Choose Upgrade under Change Mode
  • Change Effect Value to 2 for Immunity | 3 for Absorption

Status Effect Immunities (Available in V2.4.0+)

  • Attribute Key: system.immunities.<key>.base

Immunity Types

  • slow | dazed | weak | shaken | enraged | poisoned

Example: Grant Status Effect Immunity

  • Attribute Key: system.immunities.<key>.base
  • Choose Override under Change Mode
  • Change Effect Value to true

Replace the the following:

Change Mode: Override Effect Value: true

Global Accuracy Bonuses

  • Accuracy Check {number}: system.bonuses.accuracy.accuracyCheck
  • Melee Accuracy Check {number}: system.bonuses.accuracy.accuracyMelee
  • Ranged Accuracy Check {number}: system.bonuses.accuracy.accuracyRanged
  • Magic Check {number}: system.bonuses.accuracy.magicCheck
  • Opposed Check {number}: system.bonuses.accuracy.opposedCheck
  • Open Check {number}: system.bonuses.accuracy.openCheck
Melee Bonuses
  • Arcane {number}: system.bonuses.accuracy.arcane
  • Brawling {number}: system.bonuses.accuracy.brawling
  • Dagger {number}: system.bonuses.accuracy.dagger
  • Flail {number}: system.bonuses.accuracy.flail
  • Heavy {number}: system.bonuses.accuracy.heavy
  • Spear {number}: system.bonuses.accuracy.spear
  • Sword {number}: system.bonuses.accuracy.sword
Ranged Bonuses
  • Bow {number}: system.bonuses.accuracy.bow
  • Firearm {number}: system.bonuses.accuracy.firearm
  • Thrown {number}: system.bonuses.accuracy.thrown

Global Damage Bonuses

  • All {number}: system.bonuses.damage.all
  • Melee {number}: system.bonuses.damage.melee
  • Ranged {number}: system.bonuses.damage.ranged
  • Spell {number}: system.bonuses.damage.spell

Weapon Damage Bonuses

  • Arcane {number}: system.bonuses.damage.arcane
  • Bow {number}: system.bonuses.damage.bow
  • Brawling {number}: system.bonuses.damage.brawling
  • Dagger {number}: system.bonuses.damage.dagger
  • Firearm {number}: system.bonuses.damage.firearm
  • Flail {number}: system.bonuses.damage.flail
  • Heavy {number}: system.bonuses.damage.heavy
  • Spear {number}: system.bonuses.damage.spear
  • Sword {number}: system.bonuses.damage.sword
  • Thrown {number}: system.bonuses.damage.thrown

Affinity Damage Bonuses

  • Physical {number}: system.bonuses.damage.physical
  • Air {number}: system.bonuses.damage.air
  • Bolt {number}: system.bonuses.damage.bolt
  • Dark {number}: system.bonuses.damage.dark
  • Earth {number}: system.bonuses.damage.earth
  • Fire {number}: system.bonuses.damage.fire
  • Ice {number}: system.bonuses.damage.ice
  • Light {number}: system.bonuses.damage.light
  • Poison {number}: system.bonuses.damage.poison

Species Damage Bonuses

  • Beast {number}: system.bonuses.damage.beast
  • Construct {number}: system.bonuses.damage.construct
  • Demon {number}: system.bonuses.damage.demon
  • Elemental {number}: system.bonuses.damage.elemental
  • Humanoid {number}: system.bonuses.damage.humanoid
  • Monster {number}: system.bonuses.damage.monster
  • Plant {number}: system.bonuses.damage.plant
  • Undead {number}: system.bonuses.damage.undead

Example: Granting "Ranged Weapon Mastery"

This skill provides an SL bonus to all range weapons. When creating a skill, you can set an active effect for it. This is how you'd create the following active effect. image As you can see here, @system.level.value represents the skill's level.

[Note]: Arithmetic Operations are now supported. Example: @system.level.value + 5 or 2 + (@system.level.value * 2)

Other Bonuses

  • Bond Strength {number}: system.bonuses.bondStrength
  • Turns {number}: system.bonuses.turns

Incoming Recovery

Applies to bonuses received when this actor recovers a specific resource.

  • Incoming Recovery (HP) {number}: system.bonuses.incomingRecovery.hp
  • Incoming Recovery (MP) {number}: system.bonuses.incomingRecovery.mp
  • Incoming Recovery (IP) {number}: system.bonuses.incomingRecovery.ip

Outgoing Recovery

Applies to bonuses granted when this actor causes another target to recover a specific resource.

  • Incoming Recovery (HP) {number}: system.bonuses.incomingRecovery.hp
  • Incoming Recovery (MP) {number}: system.bonuses.incomingRecovery.mp
  • Incoming Recovery (IP) {number}: system.bonuses.incomingRecovery.ip

Incoming Damage

The Incoming Damage bonus represents modifiers that affect how much damage an actor receives when they are targeted by an attack or damaging effect. These bonuses can be applied universally or conditionally, based on the type of damage or the attacker’s species.

Global Incoming Damage Bonuses
  • All {number}: system.bonuses.incomingDamage.all
  • Melee {number}: system.bonuses.incomingDamage.melee
  • Ranged {number}: system.bonuses.incomingDamage.ranged
  • Spell {number}: system.bonuses.incomingDamage.spell
Weapon Incoming Damage Bonuses
  • Arcane {number}: system.bonuses.incomingDamage.arcane
  • Bow {number}: system.bonuses.incomingDamage.bow
  • Brawling {number}: system.bonuses.incomingDamage.brawling
  • Dagger {number}: system.bonuses.incomingDamage.dagger
  • Firearm {number}: system.bonuses.incomingDamage.firearm
  • Flail {number}: system.bonuses.incomingDamage.flail
  • Heavy {number}: system.bonuses.incomingDamage.heavy
  • Spear {number}: system.bonuses.incomingDamage.spear
  • Sword {number}: system.bonuses.incomingDamage.sword
  • Thrown {number}: system.bonuses.incomingDamage.thrown
Affinity Incoming Damage Bonuses
  • Physical {number}: system.bonuses.incomingDamage.physical
  • Air {number}: system.bonuses.incomingDamage.air
  • Bolt {number}: system.bonuses.incomingDamage.bolt
  • Dark {number}: system.bonuses.incomingDamage.dark
  • Earth {number}: system.bonuses.incomingDamage.earth
  • Fire {number}: system.bonuses.incomingDamage.fire
  • Ice {number}: system.bonuses.incomingDamage.ice
  • Light {number}: system.bonuses.incomingDamage.light
  • Poison {number}: system.bonuses.incomingDamage.poison
Species Incoming Damage Bonuses
  • Beast {number}: system.bonuses.incomingDamage.beast
  • Construct {number}: system.bonuses.incomingDamage.construct
  • Demon {number}: system.bonuses.incomingDamage.demon
  • Elemental {number}: system.bonuses.incomingDamage.elemental
  • Humanoid {number}: system.bonuses.incomingDamage.humanoid
  • Monster {number}: system.bonuses.incomingDamage.monster
  • Plant {number}: system.bonuses.incomingDamage.plant
  • Undead {number}: system.bonuses.incomingDamage.undead

Overrides

Damage Type Overrides

This overrides the damage type for the specific type of attack

  • All {embedded}: system.overrides.damageType.all.<key>
  • Attack {embedded}: system.overrides.damageType.attack.<key>
  • Spell {embedded}: system.overrides.damageType.spell.<key>
  • Skill {embedded}: system.overrides.damageType.skill.<key>

Pick Normal (default) or Priority for this override:

  • Normal {FU.damageTypes}: system.overrides.damageType.all.normal
  • Priority {FU.damageTypes}: system.overrides.damageType.all.priority

For the Effect Value, it can accept anything within FU.damageTypes such as fire, ice, earth, bolt, air, dark, light, poison, untyped.

Equipped Items

The following stores the ID of items inside their respective equipment slot.

  • Armor {string}: system.bonuses.equipped.armor
  • Main Hand {string}: system.bonuses.equipped.mainHand
  • Off-Hand {string}: system.bonuses.equipped.offHand
  • Accessory {string}: system.bonuses.equipped.accessory
  • Phantom Hand {string}: system.bonuses.equipped.phantom
  • Arcanum {string}: system.bonuses.equipped.arcanum

Character Specific Attributes

Character Statistics

  • Current Zenit {number}: resources.zenit.value
  • Current Experience {number}: system.resources.exp.value
  • Identity {string}: system.resources.identity.name
  • Pronouns {string}: system.resources.pronouns.name
  • Theme {string}: system.resources.theme.name
  • Origin {string}: system.resources.origin.name

NPC Specific Attributes

NPC Statistics

  • Traits {string}: system.traits.value
  • Species {'beast', 'construct', 'demon', 'elemental', 'humanoid', 'monster', 'plant', 'undead'}: system.species.value
  • Villain {"", "minor", "major", "supreme"}: system.villain.value
  • Phases {number}: system.phases.value
  • Multipart {string}: system.multipart.value
  • Rank {"soldier", "elite", "champion", "companion"}: system.rank.value
  • Champion Rank {number}: system.rank.replacedSoldiers
  • Role {"custom", "brute", "hunter", "mage", "saboteur", "sentinel", "support"}: system.role.value
  • (Deprecated in V3) Companion Player Level {number}: system.companion.playerLevel
  • (Deprecated in V3) Companion Skill Level {number}: system.companion.skillLevel
  • useEquipment {boolean}: Used to determine if an NPC can use Equipment.
    • system.useEquipment.value
  • Associated Therioforms {string}: system.associatedTherioforms

(V3.0.0) References

References another actor and a specified skill for use with companion, decoy bait, and grand summoning.

  • Companion Player {ID}: system.references.actor
  • Companion Skill {UUID}: system.references.skill

Study Roll

  • Study {0, 1, 2, 3}: Conditionally renders NPC sheet based on results.
    • system.study.value
    • Study Selection
      • Reveal All = 0
      • 10+ = 1
      • 13+ = 2
      • 16+ = 3
⚠️ **GitHub.com Fallback** ⚠️