Attribute Paths for Third-Party Modules

Many FoundryVTT modules (such as Aeris Tokens, Token Action HUD, Always HP, etc.) need to know the data paths used by the DCC system to read values like movement speed, hit points, or armor class from your tokens. This page lists the most commonly needed paths.

All paths are relative to the actor and use the system. prefix.

Quick Reference

These are the paths most commonly requested by modules:

Value Path Type Example
Movement Speed system.attributes.speed.value String "30"
Hit Points (current) system.attributes.hp.value Number 12
Hit Points (max) system.attributes.hp.max Number 16
Armor Class system.attributes.ac.value Number 14
Initiative Bonus system.attributes.init.value String "+2"
Level system.details.level.value Number 3
Alignment system.details.alignment String "l", "n", or "c"

Note: Movement speed is a string, not a number. It may contain unit markers like "30'" or multiple values like "25/50/100". Modules that expect a numeric value may need the speed entered without units.

Movement

Value Path Notes
Current Speed system.attributes.speed.value Computed from base + armor penalties (if auto-compute is on)
Base Speed system.attributes.speed.base Before armor penalties
Swim Speed system.attributes.speed.swim Empty if not set; enable "Show Swim/Fly Speed" in Advanced Settings
Fly Speed system.attributes.speed.fly Empty if not set; enable "Show Swim/Fly Speed" in Advanced Settings
Special Movement system.attributes.speed.special Free-text for notes like "Infravision 60'"

For Aeris Tokens and similar modules: Use system.attributes.speed.value for all actor types (Player, NPC, and Party).

Hit Points

Value Path Notes
Current HP system.attributes.hp.value
Maximum HP system.attributes.hp.max
Minimum HP system.attributes.hp.min Usually 0
Temporary HP system.attributes.hp.temp

Armor Class

Value Path Notes
AC Value system.attributes.ac.value Total AC (auto-computed or manual)
Check Penalty system.attributes.ac.checkPenalty Armor check penalty
Speed Penalty system.attributes.ac.speedPenalty Armor speed penalty

Initiative

Value Path Notes
Initiative Bonus system.attributes.init.value Formatted as string like "+2"
Initiative Die system.attributes.init.die Usually "1d20"

Ability Scores

DCC uses six abilities: str, agl, sta, per, int, lck.

Value Path Pattern Example
Score system.abilities.<ability>.value system.abilities.str.value
Maximum system.abilities.<ability>.max system.abilities.str.max
Modifier system.abilities.<ability>.mod system.abilities.str.mod

Replace <ability> with: str (Strength), agl (Agility), sta (Stamina), per (Personality), int (Intelligence), lck (Luck).

Saving Throws

DCC uses three saves: frt (Fortitude), ref (Reflex), wil (Will).

Value Path Pattern Example
Save Total system.saves.<save>.value system.saves.frt.value

Attack Bonuses

Value Path Notes
Base Attack Bonus system.details.attackBonus May contain dice like "1d3" for warriors
Melee To-Hit system.details.attackHitBonus.melee.value Computed total
Missile To-Hit system.details.attackHitBonus.missile.value Computed total
Melee Damage Bonus system.details.attackDamageBonus.melee.value Computed total
Missile Damage Bonus system.details.attackDamageBonus.missile.value Computed total

Combat Dice

Value Path Notes
Action Die system.attributes.actionDice.value e.g. "1d20"
Hit Die system.attributes.hitDice.value e.g. "1d8"
Critical Die system.attributes.critical.die e.g. "1d10"
Critical Table system.attributes.critical.table e.g. "III" or "M"
Fumble Die system.attributes.fumble.die e.g. "1d4"

Character Details

Value Path
Level system.details.level.value
Class Name system.class.className (Players only)
Occupation system.details.occupation.value
Title system.details.title.value
Experience Points system.details.xp.value
Alignment system.details.alignment
Languages system.details.languages

Currency

Value Path
Platinum system.currency.pp
Electrum system.currency.ep
Gold system.currency.gp
Silver system.currency.sp
Copper system.currency.cp

Tips for Module Authors

  • Speed is a string. Unlike many systems, system.attributes.speed.value returns a string (e.g. "30") not a number. Parse it if you need numeric comparisons.
  • Same paths for all actor types. Player, NPC, and Party actors all share the same base attribute paths. You can use the same path for all "Movement Property Path" fields.
  • Some values are computed. Values like system.attributes.ac.value, system.abilities.str.mod, and system.saves.frt.value are automatically recalculated when their inputs change. They will always reflect the current state including Active Effects.
  • Modules can extend the schema. The DCC system fires a dcc.defineBaseActorSchema hook that lets modules add custom fields to the actor data model.