/
PFRPG2 - PC Feature Automation

PFRPG2 - PC Feature Automation

Basics

If enabled in the campaign options, an automation field will appear in various different types of Fantasy Grounds (FG) data records.  Currently supported records are:

  • Feats

  • Class Features

  • Items

  • Lookup data and lookup data features

  • Ancestry features

Enabling view/editing of the automation data

To view and/or edit data record automation data the “Show Ability Automation Field” in the Campaign Options “Experimental Development” section needs to be changed from “Off”.

The options are:

  • Off - the automation field is never shown.  Note - this does not disable automation.

  • On - the automation field is shown all the time.  It will not be shown if the NPC record is locked and there is no data in the field.

  • Edit Only - the automation field will only be shown when the NPC record is unlocked.  It will be hidden when the NPC record is locked, even if there is data in the field.ield.

Editing the automation field

The automation field is a string field that contains text which is used by the ruleset to carry out certain actions (see Automation Actions below) when the record is first added to the PC, with some record/automation combinations having additional functionality.

The data takes the form of:

  • One or more automation actions

  • Each automation action is enclosed in square brackets  [automation action string]

  • The automation actions includes one keyword at the beginning of the string and then one or more additional data entries - some separated by spaces, some using a pipe symbol “|”

For example:[Will trained] will set the PC’s will save proficiency level to trained, unless it is already trained or higher.

Item Automation

Automation gets applied when an item is added to a PC and also as an item is equipped.  If the automation type supports deletion the deletion automation is also ran when the item is unequipped or removed - some automation types have specific handling of item carried state, this is detailed in the automation type “Item support?” details below.

Multiple automation actions in the same record

An ability can have multiple actions - simply put each individual actions within the square brackets.

For example:[Will trained][Fortitude trained]

XREF (Cross Reference) Functionality

Character effects (in the Combat tab of the PC sheet) allow substitution of various values using curly brackets {...}  One of these substitution values is {XABC} where ABC is a three digit upper case code that refers to the Cross Reference data stored in the PC sheet.

Referring to the screenshot below:

  1. Clicking on the three-bars icon at the bottom of the Character Effects section on the PC Combat tab will open the X-Ref Variables window.

  2. This character has one x-ref variable: BIR = fire

  3. Whenever {XBIR} is used in a PC effect in this section of the character sheet, not in the combat tracker, the value for BIR will be substituted.  In this case, DMG: 4 melee, {XBIR}; AC: -1 becomes DMG: 4 melee, fire; AC: -1

X-Ref variables in use

The current variables known to be in use are detailed in the table below.

X-Ref Variable

Use

Source

BIR

Barbarian Instinct Rage

Core Rules

DVH

Dwarven Vengeful Hatred

Core Rules

SDA

Old version = KDA

Suli Dualborn “A”

= First energy resistance

Lost Omens Ancestry Guide

SDB

Old version = KDB

Suli Dualborn “B”

= Second energy resistance

Lost Omens Ancestry Guide

KDE

Kobold Draconic Exemplar

Advanced Player’s Guide

DFR

Deep Fetchling Resistance

Lost Omens Ancestry Guide

Action keywords

The PFRPG2 ruleset currently supports many different types of action keywords, with others being added during testing and ongoing development.  The following is a list of the main keyword types:

  1. Saving throw proficiency level - the names of the saving throw: fort, Fortitude, Ref, Reflex, Will.

  2. Skill proficiency level - the name of the skill - Acrobatics, Athletics, etc..

  3. Speed - modifies the speed of a PC by a numerical value.

  4. Movement- adds a string to the PC special movement field if it doesn’t already exist.

  5. Size - sets the size of the PC.

  6. Bulk - modifies the encumbrance bulk limits by a numerical value.

  7. Senses - adds a string to the PC senses field if it doesn’t already exist.

  8. Trait - adds a string to the PC traits field if it doesn’t already exist.

  9. HP - modifies a specific HP field with a numerical value.

  10. Feat - adds a feat to the PC

  11. Spell - adds a spell to a specified spell class.

  12. Spellclass - adds a spell class to the PC’s actions tab.

  13. Spellslot - adds to the current available spells in the specified spell slot rank

  14. Skill - sets the proficiency level of a names skill (same as “skill proficiency level” above, needed for custom skills.

  15. Defense - sets a specific defense proficiency level

  16. Attack - sets a specific attack/weapon proficiency level

  17. Save - sets a specific saving throw proficiency level (same as “saving throw proficiency” above.

  18. Choice - presents the user with a data selection choice.  Primarily used for class options.

  19. Options - presents the user with a number of options encoded within the automation string; also used for matching deity or XRef data to options.

  20. Effect - adds a character (“char”) effect to the PC or an “item” effect (active when an item is equipped) or a weapon “use” effect that is active during an attack or damage action.

  21. Item - adds an item to the character inventory.

  22. Weapon - adds a weapon entry to the character.  Primarily used for adding ancestry or features based unarmed attacks.

  23. Delete - used as the last entry in a record automation data.  Indicates that the base record should be removed after all automation is processed.  Primarily used for class kits, to remove the base class kit item record once all items in the kit have been added.

  24. Special handling of unique cases - currently supports the “armor proficiency” and “weapon proficiency” feats and the “divine font” class feature.

  25. Message - sends a ruleset string resource message to the chargen tracker.

  26. None - used to indicate that there is no appropriate automation in the record.  This allows correct messaging in the chargen tracker log window.

Proficiency levels

If a proficiency level is being set the full name must be used: trained, expert, master or legendary.

Note: only a higher proficiency level than the currently set value will be applied.

Each automation action is detailed below.  Fields highlighted in blue are optional.

Automation removal

Some automation actions support the removal of the automation when the record is deleted from the PC.  This relies on being able to reliably remove the automation added.  Some automation can’t be reliably removed - usually the automation that sets a specific value rather than numerically adjusts a current one or adds a one-off feature - e.g. proficiency level can’t be reliably removed because other features may have changed the base proficiency level after the automation was applied, but a numerical adjustment to speed (e.g. [SPEED +5] can be removed.  Automation removal support is detailed in each action below.

“Or” functionality

Some string additional actions support “or” functionality - using the “/” operator.  This usually means that two values are provided, the first will be added to the target field unless it already exists in the field, if so the second value will be added to the field.  If both values already exist then nothing will be added.  For example:  “/Low-light vision/Darkvision”.  If the first string “Low-light vision” doesn’t exist in the target field it will be added to that field, but if “Low-light vision” already exists in the field then “Darkvision” will be added.

FILTER functionality

Automation entries can have a FILTER:Class=XXXX entry within the automation field.  Currently only “Class” is supported.  This allows all automation after the FILTER keyword to be applied only to a character who has a specific class.

For example: [Athletics trained]FILTER:Class=Druid[FEAT add animal companion|no|druid][SPELL add heal animal|focus spells|1]

This results in every PC being trained in athletics, but only PCs whose class is “druid” will also get the additional automation (FEAT and SPELL) applied when the record with the automaton is added to the character.

Saving throw proficiency level

Sets the proficiency level of the named saving throw if the new value is higher than the existing value.

  • Keyword = short or long saving throw name - Fortitude, Fort, Ref, Reflex, Will

  • Additional data - the proficiency level

  • Remove supported?  No

Skill proficiency level

Sets the proficiency level of the named saving throw if the new value is higher than the existing value.

  • Keyword = short or long saving throw name - Fortitude, Fort, Ref, Reflex, Will

  • Additional data - the proficiency level

  • Remove supported?  No

Examples:

  • [Fort trained]

  • [Reflex expert]

  • [Will master]

Speedmisc (old = Speed)

Modifies the speed of a PC by a numerical value.  The older “speed” should be replaced with “speedmisc”, both will still work but “speedmisc” is preferred.

  • Keyword = Speedmisc

  • Additional data - the numerical number to adjust the speed miscellaneous modifier.  Supports an operator of = (set - default) + (add) or - (subtract).

  • Remove supported?  Yes - (not for set “=” operator)

Examples:

  • [SPEEDMISC +5] - adds five to the current speed miscellaneous modifier.

  • [SPEEDMISC 10] - sets the speed miscellaneous modifier to ten.

  • [SPEEDMISC -10] - subtracts 10 from the current speed miscellaneous modifier.

Speedbase

Sets the speed of a PC by a numerical value.

  • Keyword = Speedbase

  • Additional data - the numerical number to set or adjust the speed miscellaneous modifier.  Supports an operator of = (set - default) + (add) or - (subtract).

  • Remove supported?  Yes - (not for set “=” operator)

Examples:

  • [SPEEDBASE 25] - sets the base speed to 25.

  • [SPEEDBASE +5] - adds five to the current base speed

  • [SPEEDBASE -10] - subtracts 10 from the current base speed.

Movement

Adds a string to the special movement field of the PC if it doesn’t already exist.

  • Keyword = Movement

  • Additional data - the string of the movement name

  • Remove supported?  Yes

Examples:

  • [MOVEMENT Swim 20 feet]

Size

Sets the Size string of the PC.

  • Keyword = Size

  • Additional data - the string of the creature size

  • Remove supported?  No

Examples:

  • [SIZE small]

Bulk

Modifies the encumbrance bulk limits by a numerical value.

  • Keyword = Bulk

  • Additional data - the numerical number to adjust the encumbrance bulk modifier.  Supports an operator of = (set - default) + (add) or - (subtract).

  • Remove supported?  Yes - (not for set “=” operator)

Examples:

  • [BULK +2] - adds two to the current encumbrance bulk limits modifier.

  • [BULK 3] - sets the encumbrance bulk limits modifier to 3.
    [BULK -1] - subtracts 1 from the current encumbrance bulk limits modifier.

Senses

Adds a string to the senses field of the PC if it doesn’t already exist.

  • Keyword = Senses

  • Additional data - the string of the sense name

  • Supports “or” functionality.

  • Remove supported?  Yes

Examples:

  • [SENSES Darkvision]

  • [SENSES Low-light Vision]

  • [SENSES /Low-light vision/Darkvision] - uses “or” functionality - will add “Low-light vision” to the PC senses field, but will add “Darkvision” if “Low-light vision” already exists

Trait

Adds a string to the traits field of the PC if it doesn’t already exist.  Can also be used to remove a trait - [TRAIT remove <traitname>]

  • Keyword = Trait

  • Additional data - the string of the trait name to add the trait, “remove” then the string of the trait name to remove the trait if present in the current PC traits string.

    • [TRAIT abc] - adds the trait “abc” to the PC traits string if it doesn’t already exist.

    • [TRAIT remove abc] - removes the trait “abc” from the PC straits string if it exists.

  • Supports “or” functionality.

  • Remove supported?  Yes

Examples:

  • [TRAIT Elf]

  • [TRAIT Half-Elf]

  • [TRAIT remove Plant]

HP

Sets a value in, or adds a value to, an HP field.

  • Keyword = HP

  • Additional data - the HP field and the value

    • HP Field = “ancestry” (sets the Ancestry HP value), “miscperlevel” (modifies the miscellaneous per level modifier value) or “misc” (modifies the miscellaneous modifier).

    • Value = the number to set (ancestry) or adjust (miscperlevel) the target field.

  • Remove supported?  Yes (from R18t2)

  • Item support? Yes.  Applied when equipped.  Removed when not carried, or item deleted while equipped.

Examples:

  • [HP ancestry 10]

  • [HP miscperlevel 1]

  • [HP misc 5]

Feat

-- Handle feat automation.
-- Must include type of automation action.  ADD currently supported.
-- Format: <action> <feat name>|<multiple (opt)>|<distinguishing trait (optional)>
-- <feat name> - the feat name to match within the loaded data.
-- <stack/multiple (opt)> - indicates if multiple versions of this feat can be added.  Default = no.
-- Currently only supports a single trait name to distinguish the trait to select.  Is this enough?
-- An example of a feat that needs the trait is the sorcerer and wizard "counterspell" first level class feat.  Using "wizard" or "sorcerer" as trait match name will give the correct feat match.

  • Keyword = Feat

  • Additional data - operation - currently “add” only supported.

  • More data - <feat name>|<multiple (opt)>|<distinguishing trait (optional)>

  • Remove supported?  Yes

Spell

-- Spell functionality - "add" currently supported
-- Format: SPELL <action> <spell name>|<spell class name>|<spell slot level> (optional)
-- <spell name> - matches against campaign and loaded modules.
-- <spell class name> - The name of the spell class on the actions tab to add the spell to.
-- <spell slot level> - an optional spell slot level to add the spell to, if this is not specified then the spell level will be used.
-- <uses per day> - only relevant for prepared spell classes and for spells other than cantrips (which don't have daily use restrictions).  Allows the number of times the spell is prepared to be specified - requires <spell slot level> to be present - even if blank.

  • Keyword = Spell

  • Additional data - 

  • Remove supported?  Yes

Spellclass

-- Spell class functionality - "add" action currently supported