https://wiki.roll20.net/api.php?action=feedcontributions&user=1093402&feedformat=atomRoll20 Wiki - User contributions [en]2024-03-28T21:51:54ZUser contributionsMediaWiki 1.20.3https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-10-19T19:22:11Z<p>1093402: /* Targetting */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=240520<br />
|lastmodified=2020-05-24<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] damage! <amount> [tags..]}}<br><br />
{{API command|pf[s] [@targets] heal! <amount> [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
{{syntaxbox end}}<br />
<br />
The following strings also trigger debugging commands which are not likely to be useful when actually running a game:<br />
{{syntaxbox top|Debugging|nocat=true}}<br />
{{API command|pf[s] [@targets] debug targets}}<br><br />
{{API command|pf[s] [@targets] debug rawget <roll20-property-name>}}<br><br />
{{API command|pf[s] debug echo <string>}}<br><br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Select the script from the library and run.<br />
<br />
If you wish to use a dogfood (less tested) build, copy the script's code from the URL above and paste it into a "new script" in your PF2 campaign, then save the script.<br />
<br />
Do not attempt to use a library build and dogfood build at the same time!<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>. (A PC is defined as a token controlled by anyone who is not a GM.)<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that is listed as "taggable" below also accepts any number of tags to specify properties of the roll/value that might contribute to calculating modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Each command also automatically adds some tags based on the nature of the check made. Skill checks automatically have the name of the skill, its governing attribute, and #skill as tags. Saving throws automatically have the same of the save, its governing attribute, and #save. So, for example, a <code>roll reflex</code> command will automatically be treated as having the tags <code>#dexterity #reflex #save</code> without you needing to enter these.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls; so, for example, the modifier added above with <code>#fortitude #fear</code> would not be listed since it does not affect all Fortitude rolls, only fear related ones)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
<code>damage! <amount></code> will deal damage to the selected tokens. Tokens controlled by PCs will have the damage applied to the character's HP on their character sheet. Tokens not controlled by PCs will instead have damage applied to token bar 1, which - if it is not already set up - will be set to the current and max HP from the related character sheet. (This is because multiples of the same monster usually have the same character sheet, so this ensures that damage done to one of them is not done to all). This accepts tags to modify the amount of damage done, and adds the automatic tag <code>#damage</code>, so you can use the modifier system to represent resistances or vulnerabilities. Note that the modifier is applied to the amount of damage, so resistances should be negative modifiers.<br />
<br />
<code>heal! <amount></code> will heal the selected tokens following the same rules as <code>damage!</code> and not exceeding their max HP. It would be very unusual for a character to have a modifier that affects healing amounts, but just in case, this accepts tags in the same way as <code>damage!</code> but adds the automatic tag <code>#healing</code>.<br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
=== Supported Values ===<br />
<br />
These are legal values for <valuename> in the above command listing.<br />
<br />
* Statistics: <code>strength dexterity constitution intelligence wisdom charisma</code>. Since only a unique prefix is required, the standard abbreviations <code>str dex con int wis cha</code> also work.<br />
* Skills: <code>acrobatics arcana athletics crafting deception diplomacy intimidation medicine nature occultism performance religion society stealth survival</code>. Lore skills are not currently supported.<br />
* Saves: <code>fortitude reflex will</code>.<br />
* Perception (not technically a skill, but acts like one): <code>perception</code>.<br />
* Armor class: <code>ac</code>.<br />
* Level: <code>level</code>.<br />
* Current HP: <code>hp</code>.<br />
* Initiative modifier: <code>initiative</code>. Note that this is only the <b>additional</b> modifier added to skill rolls to calculate initiative; the base modifier for initiative rolls is the skill in question, which is variable. Use <code>!pf rollinit</code> to roll values with the initiative modifier added.<br />
* Melee to-hit with first melee weapon: <code>melee</code>. May be zero if no melee weapon is equipped.<br />
* Ranged to-hit with first ranged weapon: <code>ranged</code>. May be zero if no ranged weapon is equipped.<br />
<br />
=== Debugging Commands ===<br />
These commands are intended for people who are modifying or working on the script itself. They do not produce "pretty" output and are not intended to be used during play.<br />
<br />
* <code>debug targets</code> lists the names of all tokens targeted by the command's @ specification(s).<br />
* <code>debug rawget <attr-name></code> reads the named attribute from the Roll20 character sheet for each target and prints out its name and type. Note this uses the Roll20 internal names of the character sheet attributes, not those in the "supported values" section above (they do not always match).<br />
* <code>debug echo <message></code> prints the message back, to check that the script is responding at a basic level.<br />
<br />
== Changelog ==<br />
{{changelog version|310520|2020-05-24|* Added "damage!" and "heal!" commands<br />
* Fixed a bug in use of the selected token<br />
* Records and matches token names as well as character names if they're different<br />
* Generic autotags added for roll types}}<br />
{{changelog version|240520|2020-05-24|* Added "melee" and "ranged" property specifiers<br />
* Changed internal model from class to revealing module<br />
* No longer crashes listing modifiers if a token affected by a modifier was deleted<br />
* Results for tokens with the same name in multiple selections are no longer merged}}<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-31T22:46:18Z<p>1093402: /* Modifiers and Tags */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=240520<br />
|lastmodified=2020-05-24<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] damage! <amount> [tags..]}}<br><br />
{{API command|pf[s] [@targets] heal! <amount> [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
{{syntaxbox end}}<br />
<br />
The following strings also trigger debugging commands which are not likely to be useful when actually running a game:<br />
{{syntaxbox top|Debugging|nocat=true}}<br />
{{API command|pf[s] [@targets] debug targets}}<br><br />
{{API command|pf[s] [@targets] debug rawget <roll20-property-name>}}<br><br />
{{API command|pf[s] debug echo <string>}}<br><br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Select the script from the library and run.<br />
<br />
If you wish to use a dogfood (less tested) build, copy the script's code from the URL above and paste it into a "new script" in your PF2 campaign, then save the script.<br />
<br />
Do not attempt to use a library build and dogfood build at the same time!<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that is listed as "taggable" below also accepts any number of tags to specify properties of the roll/value that might contribute to calculating modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Each command also automatically adds some tags based on the nature of the check made. Skill checks automatically have the name of the skill, its governing attribute, and #skill as tags. Saving throws automatically have the same of the save, its governing attribute, and #save. So, for example, a <code>roll reflex</code> command will automatically be treated as having the tags <code>#dexterity #reflex #save</code> without you needing to enter these.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls; so, for example, the modifier added above with <code>#fortitude #fear</code> would not be listed since it does not affect all Fortitude rolls, only fear related ones)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
<code>damage! <amount></code> will deal damage to the selected tokens. Tokens controlled by PCs will have the damage applied to the character's HP on their character sheet. Tokens not controlled by PCs will instead have damage applied to token bar 1, which - if it is not already set up - will be set to the current and max HP from the related character sheet. (This is because multiples of the same monster usually have the same character sheet, so this ensures that damage done to one of them is not done to all). This accepts tags to modify the amount of damage done, and adds the automatic tag <code>#damage</code>, so you can use the modifier system to represent resistances or vulnerabilities. Note that the modifier is applied to the amount of damage, so resistances should be negative modifiers.<br />
<br />
<code>heal! <amount></code> will heal the selected tokens following the same rules as <code>damage!</code> and not exceeding their max HP. It would be very unusual for a character to have a modifier that affects healing amounts, but just in case, this accepts tags in the same way as <code>damage!</code> but adds the automatic tag <code>#healing</code>.<br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
=== Supported Values ===<br />
<br />
These are legal values for <valuename> in the above command listing.<br />
<br />
* Statistics: <code>strength dexterity constitution intelligence wisdom charisma</code>. Since only a unique prefix is required, the standard abbreviations <code>str dex con int wis cha</code> also work.<br />
* Skills: <code>acrobatics arcana athletics crafting deception diplomacy intimidation medicine nature occultism performance religion society stealth survival</code>. Lore skills are not currently supported.<br />
* Saves: <code>fortitude reflex will</code>.<br />
* Perception (not technically a skill, but acts like one): <code>perception</code>.<br />
* Armor class: <code>ac</code>.<br />
* Level: <code>level</code>.<br />
* Current HP: <code>hp</code>.<br />
* Initiative modifier: <code>initiative</code>. Note that this is only the <b>additional</b> modifier added to skill rolls to calculate initiative; the base modifier for initiative rolls is the skill in question, which is variable. Use <code>!pf rollinit</code> to roll values with the initiative modifier added.<br />
* Melee to-hit with first melee weapon: <code>melee</code>. May be zero if no melee weapon is equipped.<br />
* Ranged to-hit with first ranged weapon: <code>ranged</code>. May be zero if no ranged weapon is equipped.<br />
<br />
=== Debugging Commands ===<br />
These commands are intended for people who are modifying or working on the script itself. They do not produce "pretty" output and are not intended to be used during play.<br />
<br />
* <code>debug targets</code> lists the names of all tokens targeted by the command's @ specification(s).<br />
* <code>debug rawget <attr-name></code> reads the named attribute from the Roll20 character sheet for each target and prints out its name and type. Note this uses the Roll20 internal names of the character sheet attributes, not those in the "supported values" section above (they do not always match).<br />
* <code>debug echo <message></code> prints the message back, to check that the script is responding at a basic level.<br />
<br />
== Changelog ==<br />
{{changelog version|310520|2020-05-24|* Added "damage!" and "heal!" commands<br />
* Fixed a bug in use of the selected token<br />
* Records and matches token names as well as character names if they're different<br />
* Generic autotags added for roll types}}<br />
{{changelog version|240520|2020-05-24|* Added "melee" and "ranged" property specifiers<br />
* Changed internal model from class to revealing module<br />
* No longer crashes listing modifiers if a token affected by a modifier was deleted<br />
* Results for tokens with the same name in multiple selections are no longer merged}}<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-31T22:43:53Z<p>1093402: </p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=240520<br />
|lastmodified=2020-05-24<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] damage! <amount> [tags..]}}<br><br />
{{API command|pf[s] [@targets] heal! <amount> [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
{{syntaxbox end}}<br />
<br />
The following strings also trigger debugging commands which are not likely to be useful when actually running a game:<br />
{{syntaxbox top|Debugging|nocat=true}}<br />
{{API command|pf[s] [@targets] debug targets}}<br><br />
{{API command|pf[s] [@targets] debug rawget <roll20-property-name>}}<br><br />
{{API command|pf[s] debug echo <string>}}<br><br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Select the script from the library and run.<br />
<br />
If you wish to use a dogfood (less tested) build, copy the script's code from the URL above and paste it into a "new script" in your PF2 campaign, then save the script.<br />
<br />
Do not attempt to use a library build and dogfood build at the same time!<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that is listed as "taggable" below also accepts any number of tags to specify properties of the roll/value that might contribute to calculating modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Each command also automatically adds some tags based on the nature of the check made. Skill checks automatically have the name of the skill, its governing attribute, and #skill as tags. Saving throws automatically have the same of the save, its governing attribute, and #save. So, for example, a <code>roll reflex</code> command will automatically be treated as having the tags <code>#dexterity #reflex #save</code> without you needing to enter these.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
<code>damage! <amount></code> will deal damage to the selected tokens. Tokens controlled by PCs will have the damage applied to the character's HP on their character sheet. Tokens not controlled by PCs will instead have damage applied to token bar 1, which - if it is not already set up - will be set to the current and max HP from the related character sheet. (This is because multiples of the same monster usually have the same character sheet, so this ensures that damage done to one of them is not done to all). This accepts tags to modify the amount of damage done, and adds the automatic tag <code>#damage</code>, so you can use the modifier system to represent resistances or vulnerabilities. Note that the modifier is applied to the amount of damage, so resistances should be negative modifiers.<br />
<br />
<code>heal! <amount></code> will heal the selected tokens following the same rules as <code>damage!</code> and not exceeding their max HP. It would be very unusual for a character to have a modifier that affects healing amounts, but just in case, this accepts tags in the same way as <code>damage!</code> but adds the automatic tag <code>#healing</code>.<br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
=== Supported Values ===<br />
<br />
These are legal values for <valuename> in the above command listing.<br />
<br />
* Statistics: <code>strength dexterity constitution intelligence wisdom charisma</code>. Since only a unique prefix is required, the standard abbreviations <code>str dex con int wis cha</code> also work.<br />
* Skills: <code>acrobatics arcana athletics crafting deception diplomacy intimidation medicine nature occultism performance religion society stealth survival</code>. Lore skills are not currently supported.<br />
* Saves: <code>fortitude reflex will</code>.<br />
* Perception (not technically a skill, but acts like one): <code>perception</code>.<br />
* Armor class: <code>ac</code>.<br />
* Level: <code>level</code>.<br />
* Current HP: <code>hp</code>.<br />
* Initiative modifier: <code>initiative</code>. Note that this is only the <b>additional</b> modifier added to skill rolls to calculate initiative; the base modifier for initiative rolls is the skill in question, which is variable. Use <code>!pf rollinit</code> to roll values with the initiative modifier added.<br />
* Melee to-hit with first melee weapon: <code>melee</code>. May be zero if no melee weapon is equipped.<br />
* Ranged to-hit with first ranged weapon: <code>ranged</code>. May be zero if no ranged weapon is equipped.<br />
<br />
=== Debugging Commands ===<br />
These commands are intended for people who are modifying or working on the script itself. They do not produce "pretty" output and are not intended to be used during play.<br />
<br />
* <code>debug targets</code> lists the names of all tokens targeted by the command's @ specification(s).<br />
* <code>debug rawget <attr-name></code> reads the named attribute from the Roll20 character sheet for each target and prints out its name and type. Note this uses the Roll20 internal names of the character sheet attributes, not those in the "supported values" section above (they do not always match).<br />
* <code>debug echo <message></code> prints the message back, to check that the script is responding at a basic level.<br />
<br />
== Changelog ==<br />
{{changelog version|310520|2020-05-24|* Added "damage!" and "heal!" commands<br />
* Fixed a bug in use of the selected token<br />
* Records and matches token names as well as character names if they're different<br />
* Generic autotags added for roll types}}<br />
{{changelog version|240520|2020-05-24|* Added "melee" and "ranged" property specifiers<br />
* Changed internal model from class to revealing module<br />
* No longer crashes listing modifiers if a token affected by a modifier was deleted<br />
* Results for tokens with the same name in multiple selections are no longer merged}}<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-27T15:02:57Z<p>1093402: /* Debugging Commands */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=240520<br />
|lastmodified=2020-05-24<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
{{syntaxbox end}}<br />
<br />
The following strings also trigger debugging commands which are not likely to be useful when actually running a game:<br />
{{syntaxbox top|Debugging|nocat=true}}<br />
{{API command|pf[s] [@targets] debug targets}}<br><br />
{{API command|pf[s] [@targets] debug rawget <roll20-property-name>}}<br><br />
{{API command|pf[s] debug echo <string>}}<br><br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Select the script from the library and run.<br />
<br />
If you wish to use a dogfood (less tested) build, copy the script's code from the URL above and paste it into a "new script" in your PF2 campaign, then save the script.<br />
<br />
Do not attempt to use a library build and dogfood build at the same time!<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
<br />
=== Supported Values ===<br />
<br />
These are legal values for <valuename> in the above command listing.<br />
<br />
* Statistics: <code>strength dexterity constitution intelligence wisdom charisma</code>. Since only a unique prefix is required, the standard abbreviations <code>str dex con int wis cha</code> also work.<br />
* Skills: <code>acrobatics arcana athletics crafting deception diplomacy intimidation medicine nature occultism performance religion society stealth survival</code>. Lore skills are not currently supported.<br />
* Saves: <code>fortitude reflex will</code>.<br />
* Perception (not technically a skill, but acts like one): <code>perception</code>.<br />
* Armor class: <code>ac</code>.<br />
* Level: <code>level</code>.<br />
* Current HP: <code>hp</code>.<br />
* Initiative modifier: <code>initiative</code>. Note that this is only the <b>additional</b> modifier added to skill rolls to calculate initiative; the base modifier for initiative rolls is the skill in question, which is variable. Use <code>!pf rollinit</code> to roll values with the initiative modifier added.<br />
* Melee to-hit with first melee weapon: <code>melee</code>. May be zero if no melee weapon is equipped.<br />
* Ranged to-hit with first ranged weapon: <code>ranged</code>. May be zero if no ranged weapon is equipped.<br />
<br />
=== Debugging Commands ===<br />
These commands are intended for people who are modifying or working on the script itself. They do not produce "pretty" output and are not intended to be used during play.<br />
<br />
* <code>debug targets</code> lists the names of all tokens targeted by the command's @ specification(s).<br />
* <code>debug rawget <attr-name></code> reads the named attribute from the Roll20 character sheet for each target and prints out its name and type. Note this uses the Roll20 internal names of the character sheet attributes, not those in the "supported values" section above (they do not always match).<br />
* <code>debug echo <message></code> prints the message back, to check that the script is responding at a basic level.<br />
<br />
== Changelog ==<br />
{{changelog version|240520|2020-05-24|* Added "melee" and "ranged" property specifiers<br />
* Changed internal model from class to revealing module<br />
* No longer crashes listing modifiers if a token affected by a modifier was deleted<br />
* Results for tokens with the same name in multiple selections are no longer merged}}<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-23T23:42:42Z<p>1093402: </p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=240520<br />
|lastmodified=2020-05-24<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
{{syntaxbox end}}<br />
<br />
The following strings also trigger debugging commands which are not likely to be useful when actually running a game:<br />
{{syntaxbox top|Debugging|nocat=true}}<br />
{{API command|pf[s] [@targets] debug targets}}<br><br />
{{API command|pf[s] [@targets] debug rawget <roll20-property-name>}}<br><br />
{{API command|pf[s] debug echo <string>}}<br><br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Select the script from the library and run.<br />
<br />
If you wish to use a dogfood (less tested) build, copy the script's code from the URL above and paste it into a "new script" in your PF2 campaign, then save the script.<br />
<br />
Do not attempt to use a library build and dogfood build at the same time!<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
<br />
=== Supported Values ===<br />
<br />
These are legal values for <valuename> in the above command listing.<br />
<br />
* Statistics: <code>strength dexterity constitution intelligence wisdom charisma</code>. Since only a unique prefix is required, the standard abbreviations <code>str dex con int wis cha</code> also work.<br />
* Skills: <code>acrobatics arcana athletics crafting deception diplomacy intimidation medicine nature occultism performance religion society stealth survival</code>. Lore skills are not currently supported.<br />
* Saves: <code>fortitude reflex will</code>.<br />
* Perception (not technically a skill, but acts like one): <code>perception</code>.<br />
* Armor class: <code>ac</code>.<br />
* Level: <code>level</code>.<br />
* Current HP: <code>hp</code>.<br />
* Initiative modifier: <code>initiative</code>. Note that this is only the <b>additional</b> modifier added to skill rolls to calculate initiative; the base modifier for initiative rolls is the skill in question, which is variable. Use <code>!pf rollinit</code> to roll values with the initiative modifier added.<br />
* Melee to-hit with first melee weapon: <code>melee</code>. May be zero if no melee weapon is equipped.<br />
* Ranged to-hit with first ranged weapon: <code>ranged</code>. May be zero if no ranged weapon is equipped.<br />
<br />
=== Debugging Commands ===<br />
These commands are intended for people who are modifying or working on the script itself. They do not produce "pretty" output and are not intended to be used during play.<br />
<br />
* <code>debug targets</code> lists the names of all tokens targeted by the command's @ specification(s).<br />
* <code>debug rawget <attr-name></code> reads the named attribute from the Roll20 character sheet for each target and prints out its name and type. Note this uses the Roll20 internal names of the character sheet attributes, not those in the "supported values" section above (they do not always match).<br />
* <code>echo <message></code> prints the message back, to check that the script is responding at a basic level. <br />
<br />
== Changelog ==<br />
{{changelog version|240520|2020-05-24|* Added "melee" and "ranged" property specifiers<br />
* Changed internal model from class to revealing module<br />
* No longer crashes listing modifiers if a token affected by a modifier was deleted<br />
* Results for tokens with the same name in multiple selections are no longer merged}}<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-23T23:33:42Z<p>1093402: /* Syntax */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=240520<br />
|lastmodified=2020-05-24<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
{{syntaxbox end}}<br />
<br />
The following strings also trigger debugging commands which are not likely to be useful when actually running a game:<br />
{{syntaxbox top|Debugging|nocat=true}}<br />
{{API command|pf[s] [@targets] debug targets}}<br><br />
{{API command|pf[s] [@targets] debug rawget <roll20-property-name>}}<br><br />
{{API command|pf[s] debug echo <string>}}<br><br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Select the script from the library and run.<br />
<br />
If you wish to use a dogfood (less tested) build, copy the script's code from the URL above and paste it into a "new script" in your PF2 campaign, then save the script.<br />
<br />
Do not attempt to use a library build and dogfood build at the same time!<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
=== Supported values ===<br />
<br />
These are legal values for <valuename> in the above command listing.<br />
<br />
* Statistics: <code>strength dexterity constitution intelligence wisdom charisma</code>. Since only a unique prefix is required, the standard abbreviations <code>str dex con int wis cha</code> also work.<br />
* Skills: <code>acrobatics arcana athletics crafting deception diplomacy intimidation medicine nature occultism performance religion society stealth survival</code>. Lore skills are not currently supported.<br />
* Saves: <code>fortitude reflex will</code>.<br />
* Perception (not technically a skill, but acts like one): <code>perception</code>.<br />
* Armor class: <code>ac</code>.<br />
* Level: <code>level</code>.<br />
* Current HP: <code>hp</code>.<br />
* Initiative modifier: <code>initiative</code>. Note that this is only the <b>additional</b> modifier added to skill rolls to calculate initiative; the base modifier for initiative rolls is the skill in question, which is variable. Use <code>!pf rollinit</code> to roll values with the initiative modifier added.<br />
* Melee to-hit with first melee weapon: <code>melee</code>. May be zero if no melee weapon is equipped.<br />
* Ranged to-hit with first ranged weapon: <code>ranged</code>. May be zero if no ranged weapon is equipped.<br />
<br />
== Changelog ==<br />
{{changelog version|240520|2020-05-24|* Added "melee" and "ranged" property specifiers<br />
* Changed internal model from class to revealing module<br />
* No longer crashes listing modifiers if a token affected by a modifier was deleted<br />
* Results for tokens with the same name in multiple selections are no longer merged}}<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-23T23:33:08Z<p>1093402: /* Syntax */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=240520<br />
|lastmodified=2020-05-24<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
{{syntaxbox end}}<br />
<br />
The following strings also trigger debugging commands which are not likely to be useful when actually running a game:<br />
{{syntaxbox top|Debugging|nocat=true}}<br />
{{API command|pf[s] [@targets] debug targets}}<br><br />
{{API command|pf[s] [@targets] debug rawget <roll20-property-name>}}<br><br />
{{API command|pf[s] [@targets] debug echo <string>}}<br><br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Select the script from the library and run.<br />
<br />
If you wish to use a dogfood (less tested) build, copy the script's code from the URL above and paste it into a "new script" in your PF2 campaign, then save the script.<br />
<br />
Do not attempt to use a library build and dogfood build at the same time!<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
=== Supported values ===<br />
<br />
These are legal values for <valuename> in the above command listing.<br />
<br />
* Statistics: <code>strength dexterity constitution intelligence wisdom charisma</code>. Since only a unique prefix is required, the standard abbreviations <code>str dex con int wis cha</code> also work.<br />
* Skills: <code>acrobatics arcana athletics crafting deception diplomacy intimidation medicine nature occultism performance religion society stealth survival</code>. Lore skills are not currently supported.<br />
* Saves: <code>fortitude reflex will</code>.<br />
* Perception (not technically a skill, but acts like one): <code>perception</code>.<br />
* Armor class: <code>ac</code>.<br />
* Level: <code>level</code>.<br />
* Current HP: <code>hp</code>.<br />
* Initiative modifier: <code>initiative</code>. Note that this is only the <b>additional</b> modifier added to skill rolls to calculate initiative; the base modifier for initiative rolls is the skill in question, which is variable. Use <code>!pf rollinit</code> to roll values with the initiative modifier added.<br />
* Melee to-hit with first melee weapon: <code>melee</code>. May be zero if no melee weapon is equipped.<br />
* Ranged to-hit with first ranged weapon: <code>ranged</code>. May be zero if no ranged weapon is equipped.<br />
<br />
== Changelog ==<br />
{{changelog version|240520|2020-05-24|* Added "melee" and "ranged" property specifiers<br />
* Changed internal model from class to revealing module<br />
* No longer crashes listing modifiers if a token affected by a modifier was deleted<br />
* Results for tokens with the same name in multiple selections are no longer merged}}<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-23T23:31:08Z<p>1093402: /* Installation and Configuration */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=240520<br />
|lastmodified=2020-05-24<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Select the script from the library and run.<br />
<br />
If you wish to use a dogfood (less tested) build, copy the script's code from the URL above and paste it into a "new script" in your PF2 campaign, then save the script.<br />
<br />
Do not attempt to use a library build and dogfood build at the same time!<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
=== Supported values ===<br />
<br />
These are legal values for <valuename> in the above command listing.<br />
<br />
* Statistics: <code>strength dexterity constitution intelligence wisdom charisma</code>. Since only a unique prefix is required, the standard abbreviations <code>str dex con int wis cha</code> also work.<br />
* Skills: <code>acrobatics arcana athletics crafting deception diplomacy intimidation medicine nature occultism performance religion society stealth survival</code>. Lore skills are not currently supported.<br />
* Saves: <code>fortitude reflex will</code>.<br />
* Perception (not technically a skill, but acts like one): <code>perception</code>.<br />
* Armor class: <code>ac</code>.<br />
* Level: <code>level</code>.<br />
* Current HP: <code>hp</code>.<br />
* Initiative modifier: <code>initiative</code>. Note that this is only the <b>additional</b> modifier added to skill rolls to calculate initiative; the base modifier for initiative rolls is the skill in question, which is variable. Use <code>!pf rollinit</code> to roll values with the initiative modifier added.<br />
* Melee to-hit with first melee weapon: <code>melee</code>. May be zero if no melee weapon is equipped.<br />
* Ranged to-hit with first ranged weapon: <code>ranged</code>. May be zero if no ranged weapon is equipped.<br />
<br />
== Changelog ==<br />
{{changelog version|240520|2020-05-24|* Added "melee" and "ranged" property specifiers<br />
* Changed internal model from class to revealing module<br />
* No longer crashes listing modifiers if a token affected by a modifier was deleted<br />
* Results for tokens with the same name in multiple selections are no longer merged}}<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-23T23:30:04Z<p>1093402: </p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=240520<br />
|lastmodified=2020-05-24<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
=== Supported values ===<br />
<br />
These are legal values for <valuename> in the above command listing.<br />
<br />
* Statistics: <code>strength dexterity constitution intelligence wisdom charisma</code>. Since only a unique prefix is required, the standard abbreviations <code>str dex con int wis cha</code> also work.<br />
* Skills: <code>acrobatics arcana athletics crafting deception diplomacy intimidation medicine nature occultism performance religion society stealth survival</code>. Lore skills are not currently supported.<br />
* Saves: <code>fortitude reflex will</code>.<br />
* Perception (not technically a skill, but acts like one): <code>perception</code>.<br />
* Armor class: <code>ac</code>.<br />
* Level: <code>level</code>.<br />
* Current HP: <code>hp</code>.<br />
* Initiative modifier: <code>initiative</code>. Note that this is only the <b>additional</b> modifier added to skill rolls to calculate initiative; the base modifier for initiative rolls is the skill in question, which is variable. Use <code>!pf rollinit</code> to roll values with the initiative modifier added.<br />
* Melee to-hit with first melee weapon: <code>melee</code>. May be zero if no melee weapon is equipped.<br />
* Ranged to-hit with first ranged weapon: <code>ranged</code>. May be zero if no ranged weapon is equipped.<br />
<br />
== Changelog ==<br />
{{changelog version|240520|2020-05-24|* Added "melee" and "ranged" property specifiers<br />
* Changed internal model from class to revealing module<br />
* No longer crashes listing modifiers if a token affected by a modifier was deleted<br />
* Results for tokens with the same name in multiple selections are no longer merged}}<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-16T22:18:03Z<p>1093402: </p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=100520<br />
|lastmodified=2020-05-16<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
== Changelog ==<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-16T22:17:47Z<p>1093402: /* Syntax */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=100520<br />
|lastmodified=2020-05-10<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
== Changelog ==<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-16T22:17:37Z<p>1093402: /* Syntax */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=100520<br />
|lastmodified=2020-05-10<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename>} [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
== Changelog ==<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-16T22:17:17Z<p>1093402: /* Syntax */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=100520<br />
|lastmodified=2020-05-10<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename>} [tags..]}}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]>}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
== Changelog ==<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-16T22:17:04Z<p>1093402: /* Syntax */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=100520<br />
|lastmodified=2020-05-10<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename>} [tags..]}<br><br />
{{API command|pf[s] [@targets] best <valuename> [tags..]}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]>}}<br><br />
{{API command|pf[s] [@targets] assure <skillname>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
== Changelog ==<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-16T22:16:21Z<p>1093402: </p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=100520<br />
|lastmodified=2020-05-10<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename>}}<br><br />
{{API command|pf[s] [@targets] best <valuename>}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet and print it out, applying any active modifiers to it. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. Extra tags can be specified to customize modifiers. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example. It also respects modifiers and the specified tags, so if the best result is not what you expect, check a modifier isn't changing things!<br />
<br />
<code>assure <value></code> gets the Assurance value for the given skill on the selected target(s). It does not attempt to check that they have the Assurance feat. It does not accept tags or apply modifiers because the Assurance feat explicitly does not do so.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal (Age of Ashes Player's Guide)<br />
aaadministeraltaerein (Age of Ashes 2)<br />
aaorganizelabor (Age of Ashes 2)<br />
aatopplecrates (Age of Ashes 3)<br />
aadeducetraditions (Age of Ashes 4)<br />
aainfluenceregent (Age of Ashes 4)<br />
aacheckthewalls (Age of Ashes 4)<br />
aaguildinvestigation (Age of Ashes 4)<br />
aaseekthehiddenforge (Age of Ashes 4)<br />
aabuildconnections (Age of Ashes 5)<br />
aahostevent (Age of Ashes 5)<br />
aainfluenceguild (Age of Ashes 5)<br />
aaissuechallenge (Age of Ashes 5)<br />
aadistractguards (Age of Ashes 6)<br />
aainvestigatechamber (Age of Ashes 6)<br />
aaconvincemengkare (Age of Ashes 6)<br />
ecpromotethecircus (Extinction Curse 1)<br />
ecperformatrick (Extinction Curse 1)<br />
</pre><br />
<br />
== Changelog ==<br />
{{changelog version|160520|2020-05-16|* "AC" as a property specifier is treated as armor class, not a shortening of acrobatics<br />
* Assure command added<br />
* Get and Best are now taggable and respect modifiers<br />
* Some more abilities added from Age of Ashes}}<br />
{{changelog version|100520|2020-05-10|* Release}}<br />
<br><br />
<br><br />
[[Category:Pathfinder]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-12T20:51:12Z<p>1093402: /* Supported Abilities */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=100520<br />
|lastmodified=2020-05-10<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename>}}<br><br />
{{API command|pf[s] [@targets] best <valuename>}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
The symbol * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal<br />
aaadministeraltaerein<br />
aaorganizelabor<br />
ecpromotethecircus<br />
ecperformatrick<br />
</pre><br />
<br />
== Changelog ==<br />
{{changelog version|100520|2020-05-10|* Release}}</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-12T20:50:54Z<p>1093402: /* Supported Abilities */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=100520<br />
|lastmodified=2020-05-10<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename>}}<br><br />
{{API command|pf[s] [@targets] best <valuename>}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <code>creatediversion</code> for <code>createadiversion</code> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
* indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal<br />
aaadministeraltaerein<br />
aaorganizelabor<br />
ecpromotethecircus<br />
ecperformatrick<br />
</pre><br />
<br />
== Changelog ==<br />
{{changelog version|100520|2020-05-10|* Release}}</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-12T20:50:29Z<p>1093402: /* Supported Abilities */</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=100520<br />
|lastmodified=2020-05-10<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename>}}<br><br />
{{API command|pf[s] [@targets] best <valuename>}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>. Unfortunately, leaving out articles cannot be used as an abbreviation (eg, <pre>creatediversion</pre> for <pre>createadiversion</pre> will not work). Inconsistencies in article use match the main rulebook.<br />
<br />
* indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal<br />
aaadministeraltaerein<br />
aaorganizelabor<br />
ecpromotethecircus<br />
ecperformatrick<br />
</pre><br />
<br />
== Changelog ==<br />
{{changelog version|100520|2020-05-10|* Release}}</div>1093402https://wiki.roll20.net/Mod:Script_IndexMod:Script Index2020-05-12T17:10:24Z<p>1093402: </p>
<hr />
<div>{{pro only}}<br />
<br />
<div style="float:left;margin-right:15px">__TOC__</div><br />
{{apibox}}<br />
<br />
<br />
The '''API Script Index''' is a listing of community-contributed API scripts that are available for use on Roll20. If you're interested in contributing to the Roll20 API Community Scripts please visit the [https://github.com/Roll20/roll20-api-scripts API GitHub Repository] and follow the instructions in the README.md file at the bottom of the page.<br />
<br />
<br clear="both"><br />
<br />
== Scripts By Category ==<br />
<br />
=== General Purpose Scripts ===<br />
If your script incorporates ''specific'' game system rules, consider listing the script under that game system instead of one of these general purpose categories.<br />
<br />
==== Combat Scripts ====<br />
Combat scripts assist in making combat flow more easily. This can mean anything from automatically handling initiative to automating exchanges between combatants.<br />
* [[Script:Group Initiative|Group Initiative]] -- Adds the selected tokens to the turn order after rolling their initiative + configurable data.<br />
* [[Script:Initiative Tracker|Initiative Tracker]] -- Round counter and status effect manager with optional announcements to chat.<br />
* [[Script:Random Turnorder|Random Turnorder]] -- Randomly assigns a turn to selected tokens.<br />
* [[Script:TrackerJacker|TrackerJacker]] -- Graphical turnorder tracker, as well as status/condition marker tracking<br />
* [[Script:Turn Marker|Turn Marker]] -- Round counter and a moving marker that shows whose turn it is.<br />
* [[Script: Critical|Critical]] -- Quick method of determining the outcome of a critical hit.<br />
* [[Script: Fumbler|Fumbler]] -- Quick method of determining the outcome of a fumble.<br />
<br />
==== Tokens - Conditions / Status / Health ====<br />
Tokens are used to represent player characters as well as non-player characters. Naturally, both occasionally get punched around a bit. Scripts in this category deal with the changing conditions of tokens, often but not necessarily as a result of combat.<br />
* [[Script:Blood And Honor: Automatic blood spatter, pooling and trail effects|Blood And Honor]] -- Automatic blood spatter, pooling and trail effects<br />
* [[Script:Bloodied and Dead Status Markers|Bloodied and Dead Status Markers]] -- Automatic bloodied and down icons for HP tracking<br />
* [[Script:Conditions and Status Tracker|Conditions and Status Tracker]] -- Tracks the status of tokens and announces them as the duration passes.<br />
* [[Script:Flight|Flight]] -- Mark how high tokens are flying<br />
* [[Script:Flip Tokens|Flip Tokens]] -- Flip graphics horizontally and/or vertically<br />
* [[Script:Mark|Mark]] -- Places a numbered Marker under tokens, clears on turn change/close, and page change.<br />
* [[Script:Marking Conditions|Marking Conditions]] -- Set status markers on targeted on individual tokens<br />
* [[Script:Temp HP and Status|Temp HP and Status]] -- Temp hit point manager and bloodied/dying/dead status markers.<br />
* [[Script:Toggle Status|Toggle Status]] -- Toggle status marker on/off, and update character attribute to match<br />
<br />
==== Tokens - Movement, Rotation, and Size ====<br />
Scripts which are triggered by or change the location of tokens should generally be placed in this category.<br />
* [[Script:Auto Teleporting and Chat Based Teleporting|Auto Teleporting and Chat Based Teleporting]] -- Teleporting based on text commands or token locations.<br />
* [[Script:Change_Token_Image|Change Token Image]] -- Changes displayed image for tokens based on rollable table.<br />
* [[Script:Collision Detection|Collision Detection]] -- Handles collisions between player-controlled tokens and a subset of path objects on the page<br />
* [[Script:KABOOM|KABOOM]] -- Creates explosion effects that move tokens away from or towards a point.<br />
* [[Script:It's a Trap|It's a Trap]] -- Script for setting traps and detecting collisions with them at any point during movement.<br />
* [[Script:Marching Order|Marching Order]] -- Makes tokens follow each other in some specified order.<br />
* [[Script:Move Lighting|Move Lighting]] -- Move dynamic lighting polygon path objects between game layers.<br />
* [[Script:No Token Rotation|No Token Rotation]] -- Prevents tokens from being rotated<br />
* [[Script:Random Depth|Random Depth]] -- Randomly adjusts the depth of selected tokens.<br />
* [[Script:Random Rotate|Random Rotate]] -- Allows the GM to easily rotate all selected tokens to a random angle.<br />
* [[Script:Size Lock|Size Lock]] -- Toggles a state which reverts any size changes automatically.<br />
* [[Script:Slide Tokens|Slide Tokens]] -- Use an API command to move tokens along a waypoint path, instead of dragging the token and hitting space.<br />
* [[Script:Spin Tokens|Spin Tokens]] -- Allows the GM to toggle spinning of selected tokens.<br />
* [[Script:Table Token Sizer|Table Token Sizer]] -- Simple script to scale rollable tokens added to the tabletop to a given size (defaults to 3x3) an set them as not drawings.<br />
* [[Script:Token Path|Token Path]] -- Tracks movement of the token at the top of tracker, displaying its path (and distance traveled) for the round.<br />
* [[Script:Token Lock|Token Lock]] -- Allows GMs to selectively lock the movement of Player Tokens.<br />
* [[Script:Twins|Twins]] -- Links two tokens so that they mirror each other across pages.<br />
<br />
==== Lighting and Revealing ====<br />
Dynamic lighting is a subscriber feature that changes what parts of the map are visible to the players as they move their tokens around. The light-blocking walls are achieved by paths on the <code>walls</code> layer, and tokens are used as point light sources. Scripts which modify either the light emitted by tokens or the walls which block the light belong in this category.<br />
* [[Script:DLEllipseDrawer|DLEllipseDrawer]] -- Draw circles and ellipses on the dynamic lighting layer.<br />
* [[Script:Dynamic Light Recorder|Dynamic Light Recorder]] -- Save dynamic lighting paths for map tiles and automatically regenerate later<br />
* [[Script:Dynamic Lighting Animation|Dynamic Lighting Animation]] -- Animate a sequence of changes to the dynamic lighting layer<br />
* [[Script:The Darkness is Closing In|The Darkness is Closing In]] -- Example script for reducing light on a token every time it moves.<br />
* [[Script:Torch|Torch]] -- A simple script for giving lights to tokens and turning off and on dynamic lighting.<br />
* [[Script:Walls|Walls]] -- Builds dynamic lighting walls with an exported SVG path file.<br />
* [[Script:ShareVision|ShareVision]] -- Allows normal vision and darkvision to be shared.<br />
<br />
==== Jukebox ====<br />
The jukebox is a powerful tool for creating immersive gaming experiences. Make it even more powerful.<br />
* [[Script:Roll20_Audio_Master|Roll20 Audio Master]] -- Comprehensive jukebox control script; play, stop, and loop tracks. Adjust volume of tracks. Create, edit, play, stop, loop, and shuffle playlists.<br />
<br />
==== Characters - Equipment ====<br />
Most game systems have some form of equipment to make characters better. While scripts dealing with that equipment may necessarily be system-specific, there are scripts which handle equipment in a more general fashion.<br />
* [[Script:Ammo|Ammo]] -- Provides inventory management for ammunition stored in an attribute of a character.<br />
* [[Script:Ammunition Tracker|Ammunition Tracker]] -- A bunch of commands to track ammunition.<br />
* [[Script:Inventory Manager|Inventory Manager]] -- Inventory Management<br />
<br />
==== Characters - Attributes ====<br />
Manipulate one or more characters' attributes. Anything that is system-specific should be placed in the system's category below; this section is for system-agnostic attribute manipulation.<br />
* [[Script:Conditions|Conditions]] -- Track attribute-modifying conditions.<br />
* [[Script:ChatSetAttr|ChatSetAttr]] -- Create, modify, and delete character attributes via chat commands or macros.<br />
* [[Script:EasyExperience|EasyExperience]] -- Make awarding experience easy and choose your experience progression.<br />
<br />
==== Generators ====<br />
Content generation can extend the reach of your campaign while minimizing the GM's prep time.<br />
* [[Script:CharSheet|CharSheet]] -- Allow players to create their own character sheets.<br />
* [[Script:Dungeon Utils|Dungeon Utils]] -- Generates random dungeons from wall and floor images.<br />
* [[Script:namegen]] -- Generates random names of People, Towns/Cities, and Taverns<br />
* [[Script:Random Dungeon Generator|Random Dungeon Generator]] -- Generates random dungeons with geomorphic tiles.<br />
* [[Script:Terrain Generator|Terrain Generator]] -- Generate simple outdoor maps (forests, deserts, etc)<br />
* [[Script:Tile|Tile]] -- Create tiled arrays of graphics on the map layer.<br />
* [[Script:Token Name Number|Token Name Number]] -- Automatic Numbering of tokens with special placeholder.<br />
<br />
==== Roleplay ====<br />
Scripts which attempt to make the game more immersive belong in this category.<br />
* [[Script:Animation|Animation]] -- Create and display animations.<br />
* [[Script:Languages|Languages]] -- Allows characters & GMs to create and speak any language. This is a rework of What Did He Say<br />
* [[Script:Language Script|Language Script]] -- A script for auto converting text to elven or dwarven.<br />
* [[Script:What Did He Say|What Did He Say?]] -- Language based scripting<br />
* [[Script:Morality|Morality]] -- A dialog prompt that provides morality choices as decisions<br />
<br />
==== System ====<br />
Scripts in this category are a bit more ''meta'' than the ones listed above. These scripts assist with Roll20 itself more than they assist the game you're playing.<br />
* [[Script:Game Timer|Game Timer]] -- This is a simple script to court how long does player use the game room.<br />
* [[Script:API Heart Beat|API Heart Beat]] -- Provides an API Heartbeat by setting the requesting player's color continuously.<br />
* [[Script:cron|cron]] -- Schedule (possibly recurring) commands to run at some point in the future.<br />
* [[Script:DupCharToken|DupCharToken]] -- Duplicate and add identifying number to Character and Token.<br />
* [[Script:emas|emas]] -- Provides player !emas and !as commands.<br />
* [[Script:Extended Expressions|Extended Expressions]] -- Extended roll expression syntax, supporting conditionals, variable references, bitwise operators, and more.<br />
* [[Script:HiddenRolls|HiddenRolls]] -- Various types of roll hiding (unmodified roll only, final result only, only show to GM).<br />
* [[Script:Is Greater|Is Greater]] -- Trivial little script to check if the first value is greater than the second and report it to chat.<br />
* [[Script:Map Lock|Map Lock]] -- Provides locking of graphics to prevent moving/resizing/rotating them. Also highlighting.<br />
* [[Script:Measure|Measure]] -- Measure distances between multiple tokens, both from the corners and the center.<br />
* [[Script:Message of the Day|Message of the Day]] -- Greets players that log in with the contents of a particular note.<br />
* [[Script:MetaMacros|MetaMacros]] -- Precompiler enabling C-style textual substitution macros in macro definitions.<br />
* [[Script:Move Players|Move Players]] -- Allows macros to move the player ribbon for players.<br />
* [[Script:MapChange|MapChange]] -- Provides an easy and user friendly way to move players between maps.<br />
* [[Script:Object Properties|Object Properties]] -- Get and set properties of API objects.<br />
* [[Script:Page Navigator|Page Navigator]] -- Easily move players from page to page, and allow players to move to pages by moving their tokens.<br />
* [[Script:Page Size|Page Size]] -- Resizes page, optionally moving and/or scaling its contents.<br />
* [[Script:RollStats|RollStats]] -- Track and display roll statistics.<br />
* [[Script:Rollable_Table_Macros|Rollable Table Macros]] -- Use macros and chat commands with rollable tables<br />
* [[Script:StateBrowser|StateBrowser]] -- View/modify the contents of the state object.<br />
* [[Script:Store Commands|Store Commands]] -- Store a series of commands for repeated execution<br />
* [[Script:Table Export|Table Export]] -- A script for exporting Rollable Tables between accounts.<br />
* [[Script:tokenFate|Token Fate]] -- Let fate decide! Randomly selects a token from the selected group.<br />
* [[Script:Token Mod|Token Mod]] -- An interface to adjusting properties of a token from a macro or the chat area.<br />
* [[Script:TokenSync|TokenSync]] -- Synchronize changes to token with other tokens that represent the same character<br />
* [[Script:TruePageCopy|TruePageCopy]] -- Duplicate page graphics by chat command, or with the Duplicate Page button.<br />
* [[Script:Weighted Dice|Weighted Dice]] -- Automated creation of rollable tables where a minimum value is weighted with values it replaces. (example d6min4 possible values: 4 4 4 4 5 6)<br />
* [[Script:Customizable Roll Listener|Customizable Roll Listener]] -- Customizable responses to API or non API chat messages.<br />
<br />
=== Game Specific Scripts ===<br />
Scripts that deal with ''specific'' rules of a game system should be listed in a sub-heading here. If the appropriate game system is not listed, feel free to create the appropriate heading.<br />
<br />
Scripts under each system below may be designed for any use (in other words, had they been system-agnostic, they might fit under any of the sub-headings in the "General Purpose Scripts" section above).<br />
<br />
==== 13th Age ====<br />
* [[Script:Escalation|Escalation]] -- Simple Escalation Die handling script, using the new custom entries with formulae.<br />
<br />
==== Ars Magica ====<br />
* [[Script:Ars Magica 5e Stress Die|Fifth Edition stress die roller]] -- Roll a stress die with automated printout, with or without modifiers. Botch dice count can be changed in both versions.<br />
<br />
==== BASH! Ultimate Edition ====<br />
* [[Script:Dice (BASH!)|Dice]] -- Rolls the Bash UE Dice format with exploding.<br />
<br />
==== Chronique Oubliées ====<br />
* [[Script:COFantasy|COFantasy]] -- Combats, Skills and Spells support<br />
<br />
==== Cypher System ====<br />
* [[Script:Cypher_System_Sheet|Cypher System Sheet]] -- Enables the applying of stat cost, recovery roll advance, auto calculation of PC state and damage track in the Cypher System Sheet, from the roll template or sheet buttons, for both the [https://github.com/Roll20/roll20-character-sheets/tree/master/CypherSystem "English"] and [https://github.com/Roll20/roll20-character-sheets/tree/master/CypherSystemFrench "French"] versions.<br />
<br />
==== d6 System ====<br />
The "d6 System" includes a number of games from [[wikipedia:West End Games|West End Games]] which utilize the same (or very similar) game mechanics. Scripts which are more specific to a single game than the system as a whole should be categorized there.<br />
* [[Script:Wild Dice|Wild Dice]] -- Implements the Wild Dice rolling mechanic.<br />
<br />
==== d20 System ====<br />
The "d20 System" includes Dungeons & Dragons and the games it spawned which utilize the same (or very similar) game mechanics. Scripts which are more specific to D&D or one of its spinoffs than the system as a whole should be categorized there.<br />
* [[Script:Announce Roll|Announce Roll]] -- Prints an extra announcement of a critical or fumble to the chat when using /roll<br />
* [[Script:Monster Hit Dice|Monster Hit Dice]] -- Set Monster hit points from hit dice on add, usually via drag from journal.<br />
<br />
==== Dogs in the Vineyard ====<br />
* [[Script:Dice in the Vineyard|Dice in the Vineyard]] -- Dice tracker for Dogs in the Vineyard. Stacks poker-chip-styled roll tokens in defined areas for characters to spend.<br />
<br />
==== Dungeons & Dragons 4e ====<br />
* [[Script:Use Power|Use Power]] -- A script for instrumenting and tracking the use of encounter and daily powers.<br />
<br />
==== Dungeons & Dragons 5e ====<br />
* [https://github.com/Roll20/roll20-api-scripts/tree/master/5th%20Edition%20OGL%20by%20Roll20%20Companion 5th Edition OGL by Roll20 Companion] -- Companion script for '''[[D&D 5E by Roll20]]''' character sheet<br />
* [[Script:5e Shaped Companion Script|5e Shaped Companion]] -- Support script for the [[DnD5e Shaped Character Sheet|DnD5e Shaped]] Character Sheet - provides monster import, auto-ammo, auto-HD, auto-death saves, loads of config options and more<br />
* [[Script:5th Edition Greyhawk Initiative|Greyhawk Initiative]] -- Supports the use of Greyhawk Initiative from Wizards of the Coast's Unearthed Arcana.<br />
* [[Script:Spell Level (D&D 5e)|Spell Level]] --<br />
<br />
==== Earthdawn ====<br />
* [[Earthdawn - FASA Official|Earthdawn (FASA Official)]] -- A companion to the Earthdawn (FASA Official) and 1879 (FASA Official) character sheets, this provides many features such as automatically creating token actions and helping with accounting, calculating Target Numbers and checking for number of successes, Etc.<br />
<br />
==== Edge of the Empire ====<br />
* [[Script:Dice Roller (Edge of the Empire)|Dice Roller]] -- A Dice roller for the Edge of the Empire/Age of Rebellion/Force and Destiny Roleplaying Game<br />
<br />
==== Exalted, Second Edition ====<br />
* [[Script:Exalted Successes|Successes]] -- reports successes for d10 rolls per ''Exalted'' rules.<br />
<br />
==== Exalted, Third Edition ====<br />
* [[Script:exaltScript|exaltScript]] -- Adds general utility and automation to Exalted 3rd Edition campaigns.<br />
<br />
==== FATE ====<br />
* [[Script:Fate Dots|Fate Dots]] -- Provides numbered multi dots for Fate stress boxes.<br />
<br />
==== HERO Systems ====<br />
This includes Champions, Star HERO, Fantasy HERO, Traveller HERO, etc.<br />
<br />
==== Numenera ====<br />
* [[Script:Cypher Roller|Cypher Roller]] -- Script to automatically roll Cyphers in Numenera, with full descriptions.<br />
* [[Script:Numenera_Natha|Numenera Natha]] -- Adds Numenera rolls and character update functions to the Natha's Numenera character sheets: [https://github.com/Roll20/roll20-character-sheets/tree/master/Numenera_NathasNumenera_English "Numenera (tabbed)"] and [https://github.com/Roll20/roll20-character-sheets/tree/master/Numenera_NathasNumenera_French "Numenera (French)"].<br />
<br />
==== Pathfinder ====<br />
* [[Script:Creature Gen|Creature Gen]] -- Generate combat ready tokens from PRD and D20PFSRD statblocks (Obsolete - no longer supported)<br />
* [[Script:Skillbook|Skillbook]] -- Generate token action to put API buttons for skills in chat window<br />
* [[Script:HL-Import|HL-Import]] -- Import characters from Hero Lab via XML<br />
* [[Script:Pathfinder_Character_Sheet|Pathfinder_Character_Sheet]] -- Import PCs/NPCs based on the format and text placement<br />
<br />
==== Pathfinder 2nd Edition ====<br />
* [[Script:Pathfinder_2_Utilities]] -- automatically roll Pathfinder 2 abilities and display their effect references, and track modifiers.<br />
<br />
==== Ryuutama ====<br />
* [[Script:Ryuutama Token Status Markers|Ryuutama Token Status Markers]]<br />
* [[Script:Ryuutama Skill Check Totaler|Ryuutama Skill Check Totaler]]<br />
<br />
==== Savage Worlds ====<br />
* [[Script:Raise Count|Raise Count]] -- Counts raises on a roll against a given target number<br />
* [[Script:Savage_Worlds_Raise_Roller|Savage Worlds Raise Roller]] -- Rolls for extra or wildcard and then shows a list of target numbers that are success or success with raises.<br />
<br />
==== Star Wars FFG ====<br />
* [[Script:Star Wars: Fantasy Flight Games - Dice Roller|Star Wars: FFG - Dice Roller]] -- Dice Roller for the [[Star Wars: FFG (API-Compatible)]]-character sheet<br />
<br />
==== Shadowrun 5e ====<br />
* [https://github.com/Roll20/roll20-api-scripts/tree/master/Shadowrun%205th%20Edition Shadowrun 5th Edition] -- API helper for the "Shadowrun 5th Edition"-sheet by Cassie<br />
* [[Script:SR-RollExtender|SR-RollExtender]] -- Deals with Shadowrun specific rules like glitches and extended rolls.<br />
* [[Script:SR-NextPass|SR-NextPass]] -- GM aid to handle moving on to the next initiative pass<br />
<br />
==== Trail of Cthulhu ====<br />
* [[Script:GUMSHOE|GUMSHOE]] -- A point-spending script for GUMSHOE games. Integrates with supporting character sheets.<br />
<br />
==== Vampire: The Masquerade, 20th Anniversary Edition ====<br />
* [[Script:Track V20 Attributes|Track V20 Attributes]] -- Track character Disciplines, Paths, and Backgrounds for use with macros and other scripts.<br />
<br />
====WFRP2E (Havoc)====<br />
* [[Script:wfrp2e-api|wfrp2e-api]] -- Functions and Roll Templates in support of the Warhammer Fantasy Roleplay 2E Sheet by Paul "Havoc" Stein<br />
<br />
====WFRP4E====<br />
* [[Script:WFRP4e|WFRP4e]] -- Oops!, Critical Hit Location, and Critical Hit result support for Warhammer Fantasy 4th Edition.<br />
<br />
==== Zombie Dice ====<br />
* [[Script:Zombie Dice|Zombie Dice]] -- Rolls canceling Zombie Dice<br />
<br />
=== Utility Scripts ===<br />
These scripts are generally not intended to be used alone, but are often instead required by some of the above scripts. Alone, these scripts will not do anything for your campaign, but rather they create functions to be used by other scripts.<br />
* [[Script:Base64|Base64]] -- Base 64 encoding for Roll20 Scripts. (Adapted from http://www.webtoolkit.info/ )<br />
* [[Script:Command Shell|Command Shell]] -- Framework for marshalling chat commands with POSIX-shell-style arguments, permissions, and duplicate-command checking.<br />
* [[Script:ESRO|Extended Syntax Roll20 Objects]] -- Wraps objects to extend their functionality.<br />
* [[Script:GM Code|GM Code]] -- Generates a unique code to authenticate the GM.<br />
* [[Script:Interpreted sendChat|Interpreted sendChat]] -- Send a message to the chat as the same person or character that triggered a chat event<br />
* [[Script:IsGM Auth Module|IsGM Auth Module]] -- Provides a function isGM() for determining if a player id refers to a gm. Intended for use alongside other scripts.<br />
* [[Script:levenshteinDistance|levenshteinDistance]] -- Measure the difference between strings<br />
* [[Script:splitArgs|splitArgs]] -- Split a string into arguments<br />
* [[Script:Token Collisions|Token Collisions]] -- A library for detecting collisions among tokens during movement.<br />
* [[Script:Vector Math|Vector Math]] -- A library for vector mathematics.<br />
* [[Script:PowerCards|PowerCards]] -- Create nicely formatted output cards for attacks, spells, and other abilities.<br />
* [[Script:PowerCards Macro Helper|PowerCards Macro Helper]] -- Support the automatic generation of PowerCards for '''"[[D&D 5E by Roll20]]"''' character sheet actions.<br />
<br />
=== Special Thanks ===<br />
Roll20 wants to give special thanks to [https://app.roll20.net/users/235259/brian Brian] and [https://app.roll20.net/users/104025/the-aaron Aaron C. M.] for their contributions to the community and this API script index.<br />
<br />
[[Category:API|Script Index]]</div>1093402https://wiki.roll20.net/Script:Pathfinder_2_UtilitiesScript:Pathfinder 2 Utilities2020-05-12T17:07:13Z<p>1093402: Created page with "{{script overview |name=Pathfinder 2 Utilities |author={{user profile|1093402|Mark G.}} |version=100520 |lastmodified=2020-05-10 |code=Pathfinder2Utilities }} Public releases..."</p>
<hr />
<div>{{script overview<br />
|name=Pathfinder 2 Utilities<br />
|author={{user profile|1093402|Mark G.}}<br />
|version=100520<br />
|lastmodified=2020-05-10<br />
|code=Pathfinder2Utilities<br />
}}<br />
<br />
Public releases as above. Dogfood builds at https://github.com/hyphz/Roll20PF2/ .<br />
<br />
A collection of utilities for GMing and playing Pathfinder 2nd Edition, in particular support for PF2's abilities.<br />
<br />
== Syntax ==<br />
{{syntaxbox top|Example|nocat=true}}<br />
{{API command|pf[s] [@targets] get <valuename>}}<br><br />
{{API command|pf[s] [@targets] best <valuename>}}<br><br />
{{API command|pf[s] [@targets] roll <valuename> [tags..]>}}<br><br />
{{API command|pf[s] [@targets] rollinit[!] [valuename] [tags..]}}<br><br />
{{API command|pf[s] [@targets] ability <ability> [skill] [tags..]}}<br><br />
{{API command|pf[s] [@targets] mod add <name> <type> <value> <tags..>}}<br><br />
{{API command|pf[s] mod list}}<br><br />
{{API command|pf[s] mod clear}}<br><br />
{{API command|pf[s] mod del <name>}}<br><br />
{{API command|pf[s] [@targets] mod explain <tags..>}}<br><br />
<br />
{{syntaxbox end}}<br />
<br />
== Installation and Configuration ==<br />
Copy the script's code, available from the menu on the right and stored at Roll20's [https://github.com/Roll20/roll20-api-scripts API GitHub Repository]. Paste the code into a new script in your campaign's [[API:Use_Guide#The_Script_Editor|API Script Editor]]. Save the new script and it will be available inside your campaign.<br />
<br />
== Script Use ==<br />
=== Targetting ===<br />
All commands start with "!pf". Starting with "!pfs" will send the result only to the running player and the GM.<br />
<br />
Targets can be specified as a list beginning with an @ sign. Each is specified as part of a character name, in lower case with no spaces. So, for example, "Ed Goblin" could be specified as <code>edgo</code>.<br />
<br />
You can target all PCs with <code>@pcs</code>, all NPCs with <code>@npcs</code>, and all tokens with <code>@all</code>.<br />
<br />
You can target several tokens by separating their names with commas: eg <code>@edgo,billgo</code> . <br />
<br />
If you do not specify a target, all selected token(s) are targeted.<br />
<br />
If you do not specify a target and do not have any tokens selected, and you are not the GM, all tokens you control are targeted.<br />
<br />
There is no "protection" on targeting; anyone can target any token. It is assumed you are playing cooperatively!<br />
<br />
=== Modifiers and Tags ===<br />
Every command that rolls a dice (listed as "taggable") below also accepts any number of tags to specify properties of the roll that might alter modifiers, listed as hashtags after the command; eg <code>#fear #arcane</code><br />
<br />
Commands that roll skills automatically add the name of the skill and its governing attribute as tags: eg, rolling athletics will automatically add <code>#athletics #strength</code> without you needing to type them.<br />
<br />
<code>mod add</code> will add a modifier to tracking. It must be followed by a name for the modifier, its type (c, s, i, or u for circumstance, status, item or untyped, respectively) and a set of tags. Only rolls with <b>all</b> the listed tags are affected.<br />
<br />
For example, <code>!pf @edgo mod add Bravery s 2 #fortitude #fear</code> will add a modifier called "Bravery", affecting Ed Goblin, which is a +2 status bonus affecting rolls tagged with both "fortitude" and "fear".<br />
<br />
Using <code>mod add</code> with the name of a modifier that already exists will update the existing modifier. Note that this checks only for a matching <b>name</b>, not matching targets. After the above command, <code>!pf @billgo mod add Bravery s 2 #fortitude #fear</code> will update the "Bravery" modifier to refer to Bill Goblin <b>instead of</b> Ed Goblin. If you want Ed to keep the modifier, you can either add a new named modifier for Bill (<code>!pf @billgo mod add BraveryBill</code>..., or modify the modifier to include them both <code>!pf @billgo,edgo mod add Bravery</code>...)<br />
<br />
<code>!pf mod list</code> will list all current modifiers. <code>!pf mod clear</code> will erase all modifiers. <code>!pf mod del <name></code> will delete the named modifier. These don't need any targets.<br />
<br />
<code>mod explain</code> will display a table calculating how the final modifier for the given targets and tags is calculated - when rolling, normally only the final modifier is shown. So, for example, <code>!pf @edgo mod explain #fortitude</code> will show the net effect of all modifiers affecting all Fortitude rolls made by Ed Goblin (but not specific types of Fortitude rolls)<br />
<br />
=== Functional Commands ===<br />
<br />
<code>get <value></code> will read the named value from the character sheet. This can be any stat, save, skill, or certain calculated values such as <code>ac</code> or <code>level</code>. Value names can be abbreviated to any unique prefix. This is primarily intended for GMs to quickly read values from character sheets without opening them, but can be used by any player.<br />
<br />
<code>best <value></code> should be used with multiple targets. It works like <code>get</code> but displays only the highest value and the name of the target that has it. As with <code>get</code>, this is primarily intended for GMs who need to quickly know "the group's best Perception score", for example.<br />
<br />
<code>roll <value></code> (taggable) rolls the target value for all targets, applying modifiers for the given tags, and displays the results in a table. The results also include the highest level at which the roll beats the standard DC, and the highest opponent modifier such that the opponent's DC would be beaten.<br />
<br />
<code>rollinit <skill></code> (taggable) rolls initiative using the given skill, applying the initiative modifier from the character sheet. If no skill is specified the default is Perception. If a ! is included after the command (ie, <code>rollinit!</code>), the results are sent to the turn tracker. So you can quickly roll initiative for all pcs with <code>!pf @pcs rollinit!</code>.<br />
<br />
<code>ability <ability> [skill]</code> (taggable) uses the given ability, rolling the appropriate skill or attribute and displaying an abbreviated form of the ability's success/failure chart in chat. Ability names are lower case without spaces as with character names, and can be abbreviated to any unique suffix. If the ability is Secret, the roll is sent only to the GM. If the ability is one which allows the player to choose the used skill, the skill must be specified after the ability. <br />
<br />
=== Supported Abilities ===<br />
<br />
The following basic abilities from the core book are supported. This shows the string that can be entered to refer to them; any unique prefix can also be used. (For example, <code>borrowanarcanespell</code> can be abbreviated to just <code>borrow</code>, or even <code>bo</code>.) * indicates an ability is secret. + indicates that a skill must be specified.<br />
<br />
<pre><br />
aid+<br />
balance<br />
borrowanarcanespell<br />
climb<br />
coerce<br />
commandananimal<br />
concealanobject*<br />
craft<br />
createadiversion<br />
createforgery*<br />
decipherwriting+*<br />
demoralize<br />
disarm<br />
disabledevice<br />
earnincome+<br />
feint<br />
forceopen<br />
gatherinformation<br />
grapple<br />
hide*<br />
highjump<br />
identifyalchemy*<br />
identifymagic*+<br />
impersonate*<br />
learnaspell+<br />
lie*<br />
longjump<br />
maneuverinflight<br />
palmanobject<br />
perform<br />
pickalock<br />
recallknowledge*+<br />
repair<br />
request<br />
seek*<br />
sensedirection*<br />
sensemotive*<br />
shove<br />
sneak*<br />
squeeze<br />
steal<br />
subsist+<br />
swim<br />
track<br />
treatdisease<br />
treatpoison<br />
treatwounds<br />
trip<br />
tumblethrough<br />
</pre><br />
<br />
The two uses of Medicine are represented as separate abilities: <code>stabilize</code> and <code>stopbleeding</code>.<br />
<br />
<code>identifycreature</code> is technically a special case of Recall Knowledge but is supported as a separate ability as a reminder.<br />
<br />
The following class special abilities or skill feats are also supported. Note that the script makes no attempt to check that targets actually have these abilities.<br />
<br />
<pre><br />
awesomeblow<br />
battleassessment*<br />
battleprayer<br />
delaytrap<br />
evangelize<br />
goblinsong<br />
recognizespell*+<br />
sabotage<br />
sacreddefense<br />
scaretodeath<br />
trainanimal<br />
trickmagicitem<br />
whirlingthrow<br />
</pre><br />
<br />
Also, the following custom actions from Adventure Paths are included. They are prefixed by abbreviations indicating the adventure path in order to minimise accidental matching.<br />
<br />
<pre><br />
aabefriendalocal<br />
aaadministeraltaerein<br />
aaorganizelabor<br />
ecpromotethecircus<br />
ecperformatrick<br />
</pre><br />
<br />
== Changelog ==<br />
{{changelog version|100520|2020-05-10|* Release}}</div>1093402