Character Vault
Any Concept / Any System
Compendium
Your System Come To Life
Roll20 for Android
Streamlined for your Tablet
Roll20 for iPad
Streamlined for your Tablet

Personal tools

Difference between revisions of "Macros/Pathfinder Examples"

From Roll20 Wiki

Jump to: navigation, search
Line 18: Line 18:
 
'''Boolean Math:''' Using the Identity property of 1 and the multiplicative property of 0, combined with Queries, you can make ON / OFF type switches in your macros. This is as close as you can get to conditionals in the Macro system. Real If/Then/Else requires Mentor subscriptions and the API.
 
'''Boolean Math:''' Using the Identity property of 1 and the multiplicative property of 0, combined with Queries, you can make ON / OFF type switches in your macros. This is as close as you can get to conditionals in the Macro system. Real If/Then/Else requires Mentor subscriptions and the API.
 
Note: Pathfinder almost always rounds down, so always use the "Floor" function to force it when finding the 1/2 of something.
 
Note: Pathfinder almost always rounds down, so always use the "Floor" function to force it when finding the 1/2 of something.
Example: <code>(Two-Handed Weapon Damage) [[ 1d12 + 5[STR] + ( ?{Two-Handed Weapon?|0}[TwoHanded?] * floor( 5[STR] * .5) ) ]]</code>
+
Example: <pre>(Two-Handed Weapon Damage)  
 +
[[ 1d12 + 5[STR] + ( ?{Two-Handed Weapon?|0}[TwoHanded?] * floor( 5[STR] * .5) ) ]]</pre>
 
Reason: Since regular weapon damage adds 1x your strength, and a Two-handed Weapon adds 1.5x your Strength you can add Query * HalfYourStrength. By using a 1 in your query result, you add the extra 1/2 str. If you reply 0, the added result is zero so effectively just your regular strength.
 
Reason: Since regular weapon damage adds 1x your strength, and a Two-handed Weapon adds 1.5x your Strength you can add Query * HalfYourStrength. By using a 1 in your query result, you add the extra 1/2 str. If you reply 0, the added result is zero so effectively just your regular strength.
  
Line 24: Line 25:
 
'''Calculated Dice Roll:'''
 
'''Calculated Dice Roll:'''
 
Mostly for Casters where damage of spells is often dependent on your level, you can use math and attributes to determine how many dice to roll. This is also an example of grouping rolls with { } and comparing them with KL1 (keep Lowest)
 
Mostly for Casters where damage of spells is often dependent on your level, you can use math and attributes to determine how many dice to roll. This is also an example of grouping rolls with { } and comparing them with KL1 (keep Lowest)
'''''Example:''''' CureLightWounds would does 1d8+ Level, but only up to level 5 at max giving us <code>[[ 1d8 + ( { 5 , @{Level} }kl1) ]]</code> This takes the number 5, compares it to your @{Level} attribute, and keeps the lower of the two. So if you're level 2, you'll end up rolling 1d8+2. if you're level 12, you'll roll 1d8+5
+
'''''Example:''''' CureLightWounds would does 1d8+ Level, but only up to level 5 at max giving us <code>[[ 1d8 + ( { 5 , @{Level} }kl1) ]]<//code> This takes the number 5, compares it to your @{Level} attribute, and keeps the lower of the two. So if you're level 2, you'll end up rolling 1d8+2. if you're level 12, you'll roll 1d8+5
 
Note: Grouped rolls like KL1 and Calculated Dice Roll's currently don't play nice with each other. The only way to combine them is to do a plain regular /roll and inside THAT, do your comparisons. For example, Fireball (Your level of d6' up to 10d6) would come out as <code>/r [[ {10, @{CasterLevel} }kl1 ]]d6</code>
 
Note: Grouped rolls like KL1 and Calculated Dice Roll's currently don't play nice with each other. The only way to combine them is to do a plain regular /roll and inside THAT, do your comparisons. For example, Fireball (Your level of d6' up to 10d6) would come out as <code>/r [[ {10, @{CasterLevel} }kl1 ]]d6</code>
 
Unfortunately that leaves us with the messy graphical dice, but it does calculate correctly. In these cases, I'll often forgo the level comparison and just put in my level attribute and replace it with the max number when I hit that level (ie: <code>[[ (@level)d6]]</code> until I hit level 10 and just make it [[10d6]]
 
Unfortunately that leaves us with the messy graphical dice, but it does calculate correctly. In these cases, I'll often forgo the level comparison and just put in my level attribute and replace it with the max number when I hit that level (ie: <code>[[ (@level)d6]]</code> until I hit level 10 and just make it [[10d6]]
Line 31: Line 32:
 
'''Passive Rolls for GMs:'''
 
'''Passive Rolls for GMs:'''
 
If you have your players keep Perception, Sense Motive, etc attributes defined in their character journals, you can use @{Target|Attribute} or @{Selected|Attribute} to determine if the character made their check without notifying the player that it happened. This assumes that the Tokens are bound to the Character Journal correctly.
 
If you have your players keep Perception, Sense Motive, etc attributes defined in their character journals, you can use @{Target|Attribute} or @{Selected|Attribute} to determine if the character made their check without notifying the player that it happened. This assumes that the Tokens are bound to the Character Journal correctly.
Example: <code>/w GM @{Selected|TokenName} Passive Perception [[ @{Selected|Perception} + 10]]</code>
+
Example: <pre>/w GM @{Selected|TokenName} Passive Perception [[ @{Selected|Perception} + 10]]</pre>
 
Since it's the GM whispering to the GM, only they see the roll.
 
Since it's the GM whispering to the GM, only they see the roll.
  
Line 38: Line 39:
 
If your player-base is consistent you can make one macro to test all their passive checks and use it for any NPC or monster that might try to stealth, bluff, or traps, etc. NOTE: Spacing gets a bit messy after 4 players without reworking it
 
If your player-base is consistent you can make one macro to test all their passive checks and use it for any NPC or monster that might try to stealth, bluff, or traps, etc. NOTE: Spacing gets a bit messy after 4 players without reworking it
 
Example: (Secretly rolling generic monster's stealth check and comparing it to player's rolled perceptions)
 
Example: (Secretly rolling generic monster's stealth check and comparing it to player's rolled perceptions)
<code>
+
<pre>
 
/w GM NPC Stealth[[ (1d20 + ?{Stealth bonus?|0} ) ]]
 
/w GM NPC Stealth[[ (1d20 + ?{Stealth bonus?|0} ) ]]
 
/w GM Player's Name:[[ 1d20 + @{PlayerName1|Perception} ]]
 
/w GM Player's Name:[[ 1d20 + @{PlayerName1|Perception} ]]
Line 44: Line 45:
 
/w GM Player's Name:[[ 1d20 + @{PlayerName3|Perception} ]]
 
/w GM Player's Name:[[ 1d20 + @{PlayerName3|Perception} ]]
 
/w GM Player's Name:[[ 1d20 + @{PlayerName4|Perception} ]]
 
/w GM Player's Name:[[ 1d20 + @{PlayerName4|Perception} ]]
</code>
+
</pre>
  
 
'''Calculating Crits:''' Aside from using plain text to describe what constitutes a crit, you can use inline rolls to tell you the actual final roll value.
 
'''Calculating Crits:''' Aside from using plain text to describe what constitutes a crit, you can use inline rolls to tell you the actual final roll value.
 
ex: Rapiers crit on an 18-20. If I have a +6 attack bonus, that means you would crit on a total roll of 24,25, or 26. (18+6 or higher)
 
ex: Rapiers crit on an 18-20. If I have a +6 attack bonus, that means you would crit on a total roll of 24,25, or 26. (18+6 or higher)
 
You essentially repeat your attack roll portion and replace 1d20 with your lowest crit range (18). Note that when you don't use a roll, you can't use the [ ] descriptions inside an inline roll. Game Note: Pathfinder Crits are your damage and bonus' rolled multiple times, not the result multiplied.
 
You essentially repeat your attack roll portion and replace 1d20 with your lowest crit range (18). Note that when you don't use a roll, you can't use the [ ] descriptions inside an inline roll. Game Note: Pathfinder Crits are your damage and bonus' rolled multiple times, not the result multiplied.
<code>
+
<pre>
 
/me stabs with his Keen LongSpear!
 
/me stabs with his Keen LongSpear!
 
Attack:[[1d20 + 6[AttackBonus] ]] for [[1d6 + 4[STR] ]] Dmg
 
Attack:[[1d20 + 6[AttackBonus] ]] for [[1d6 + 4[STR] ]] Dmg
 
Crits on [[ 19 + 6 ]] for addt'l [[ ( 1d6 + 4[STR] ) + ( 1d6 + 4[STR] ) ]]
 
Crits on [[ 19 + 6 ]] for addt'l [[ ( 1d6 + 4[STR] ) + ( 1d6 + 4[STR] ) ]]
</code>
+
</pre>
  
 
<big>'''EXAMPLES'''</big>
 
<big>'''EXAMPLES'''</big>
  
 
'''Initiative:''' (the decimal point = my total init bonus. Used for breaking ties with enemies rolling the same, higher bonus wins). The &{tracker} part automatically adds the roll to the turn order. You *MUST* have your token selected for this macro to work correctly.
 
'''Initiative:''' (the decimal point = my total init bonus. Used for breaking ties with enemies rolling the same, higher bonus wins). The &{tracker} part automatically adds the roll to the turn order. You *MUST* have your token selected for this macro to work correctly.
<code>
+
<pre>
 
/me leaps into action! [[1d20 + 11.11 &{tracker}]]
 
/me leaps into action! [[1d20 + 11.11 &{tracker}]]
</code>
+
</pre>
  
 
'''Initiative''' (As an ABILITY on my character journal using Attributes instead. I usually just make an attribute for it and don't bother with the math)
 
'''Initiative''' (As an ABILITY on my character journal using Attributes instead. I usually just make an attribute for it and don't bother with the math)
 
Note: The benefit of using the full calculation (dex + init bonus) instead of just a flat number, is that it will dynamically update if your dex goes up through Cat's Grace or other temporary effects.
 
Note: The benefit of using the full calculation (dex + init bonus) instead of just a flat number, is that it will dynamically update if your dex goes up through Cat's Grace or other temporary effects.
<code>
+
<pre>
 
/me leaps into action! [[1d20 + @{DEX}[Dex] + @{InitBonus}[Traits] + ( @{DEX} + @{InitBonus} )*.100 &{tracker}[TieBreaker] ]]
 
/me leaps into action! [[1d20 + @{DEX}[Dex] + @{InitBonus}[Traits] + ( @{DEX} + @{InitBonus} )*.100 &{tracker}[TieBreaker] ]]
</code>
+
</pre>
  
 
'''Defense''' - I like having a macro that shows all my defenses and makes all my saving throws in one click. I put plain numbers inside [[ ]] for emphasis.
 
'''Defense''' - I like having a macro that shows all my defenses and makes all my saving throws in one click. I put plain numbers inside [[ ]] for emphasis.
<code>
+
<pre>
 
/me defends himself from the assault!
 
/me defends himself from the assault!
 
[DEFENSES]
 
[DEFENSES]
Line 75: Line 76:
 
Fort[[1d20 + 3]]|Ref[[1d20+7]]|Will[[1d20+1]]
 
Fort[[1d20 + 3]]|Ref[[1d20+7]]|Will[[1d20+1]]
 
CMD:19 Concentration:[[1d20 +11]]
 
CMD:19 Concentration:[[1d20 +11]]
</code>
+
</pre>
  
 
'''Defense''' (More complex using attributes and token bars, assuming HP and AC are tracked on token bars and it's currently selected). I use a token bar to track AC instead of an attribute because AC changes frequently in PF. The FlatFooted or Touch calculation may change with different class/feats/etc)
 
'''Defense''' (More complex using attributes and token bars, assuming HP and AC are tracked on token bars and it's currently selected). I use a token bar to track AC instead of an attribute because AC changes frequently in PF. The FlatFooted or Touch calculation may change with different class/feats/etc)
<code>
+
<pre>
 
/me defends himself from the assault!
 
/me defends himself from the assault!
 
[DEFENSES]
 
[DEFENSES]
Line 85: Line 86:
 
Fort[[1d20 + @{Fort} ]]|Ref[[1d20+@{Ref} ]]|Will[[ 1d20+@{Will} ]]
 
Fort[[1d20 + @{Fort} ]]|Ref[[1d20+@{Ref} ]]|Will[[ 1d20+@{Will} ]]
 
CMD:[[ 10d1[BASE] + @{BAB}[BAB] + @{STR}[STR] + @{Dex}[DEX] ]] | Evasion | Uncanny Dodge
 
CMD:[[ 10d1[BASE] + @{BAB}[BAB] + @{STR}[STR] + @{Dex}[DEX] ]] | Evasion | Uncanny Dodge
</code>
+
</pre>
  
 
'''Generic Roll:''' A generic dice roll that asks for how many dice, what sided dice, and what modifiers you are adding to the roll. Mind the spacing around the d?, it matters here.
 
'''Generic Roll:''' A generic dice roll that asks for how many dice, what sided dice, and what modifiers you are adding to the roll. Mind the spacing around the d?, it matters here.
<code>
+
<pre>
 
[[ ?{Number of Dice|1}d?{Type of Die|6} + ?{Modifiers|0} ]]
 
[[ ?{Number of Dice|1}d?{Type of Die|6} + ?{Modifiers|0} ]]
</code>
+
</pre>
  
 
'''Weapon 1''' (Mathematically speaking, power-attack should almost ALWAYS be used, so I don't keep separate macros without it)
 
'''Weapon 1''' (Mathematically speaking, power-attack should almost ALWAYS be used, so I don't keep separate macros without it)
 
NOTE: Attack macros are the one place I ALWAYS use a roll query for misc bonus'. It changes constantly in PF.
 
NOTE: Attack macros are the one place I ALWAYS use a roll query for misc bonus'. It changes constantly in PF.
/<code>
+
<pre>
 
me grips his GreatSword firmly and swings Powerfully!
 
me grips his GreatSword firmly and swings Powerfully!
 
Attack:[[1d20 + 5[AttackBonus] -1[PowerAttack] + ?{Misc Bonus/Penalty?|0} ]] for [[2d6 + 6[STR*1.5] + 3[PowerAttack] + ?{Damage Bonus?|0}[Damage Bonus] ]] Dmg
 
Attack:[[1d20 + 5[AttackBonus] -1[PowerAttack] + ?{Misc Bonus/Penalty?|0} ]] for [[2d6 + 6[STR*1.5] + 3[PowerAttack] + ?{Damage Bonus?|0}[Damage Bonus] ]] Dmg
 
Crit Threat: 19-20/x2
 
Crit Threat: 19-20/x2
 
Confirm:[[1d20 + 5[AttackBonus] -1[PowerAttack] + ?{Misc Bonus/Penalty?|0} ]] for addt'l [2d6 + 6[STR*1.5] + 3[PowerAttack]+ ?{Damage Bonus?|0}[Damage Bonus] ]]
 
Confirm:[[1d20 + 5[AttackBonus] -1[PowerAttack] + ?{Misc Bonus/Penalty?|0} ]] for addt'l [2d6 + 6[STR*1.5] + 3[PowerAttack]+ ?{Damage Bonus?|0}[Damage Bonus] ]]
</code>
+
</pre>
  
 
'''MultiAttack:''' (Note: As you get high enough to make 3 or more attacks, I start reworking the fluff text or rework it to query main or second attack)
 
'''MultiAttack:''' (Note: As you get high enough to make 3 or more attacks, I start reworking the fluff text or rework it to query main or second attack)
<code>
+
<pre>
 
/me grips his GreatSword firmly and swings powerfully!
 
/me grips his GreatSword firmly and swings powerfully!
 
Attack1:[[1d20 + 5 -1[PowerAttack]]] for [[2d6 + 6[STR*1.5] + 3[PowerAttack] ]] Dmg
 
Attack1:[[1d20 + 5 -1[PowerAttack]]] for [[2d6 + 6[STR*1.5] + 3[PowerAttack] ]] Dmg
Line 110: Line 111:
 
Crit Threat: 19-20/x2
 
Crit Threat: 19-20/x2
 
Confirm2:[[1d20 + 5 -1[PowerAttack] -5 ]] for addt'l [[2d6 + 6[STR*1.5] + 3[PowerAttack] ]] Dmg
 
Confirm2:[[1d20 + 5 -1[PowerAttack] -5 ]] for addt'l [[2d6 + 6[STR*1.5] + 3[PowerAttack] ]] Dmg
</code>
+
</pre>
  
 
'''MultiAttack:''' (Using attributes and Queries. Meant to cover each attack and determines what the bonus' and penalties should be )
 
'''MultiAttack:''' (Using attributes and Queries. Meant to cover each attack and determines what the bonus' and penalties should be )
 
NOTE: Pain in the butt, but this covers weapon enchantments, misc bonus' like Bless, and the -5/-10 penalties for your multiple attacks at higher levels.
 
NOTE: Pain in the butt, but this covers weapon enchantments, misc bonus' like Bless, and the -5/-10 penalties for your multiple attacks at higher levels.
<code>
+
<pre>
 
/me grips his GreatSword firmly and swings powerfully!
 
/me grips his GreatSword firmly and swings powerfully!
 
[Melee]
 
[Melee]
 
Attack:[[1d20 + @{BAB}[BAB] + @{STR}[STR] + @{Weapon1Bonus} -3[PowerAttack] + ?{Misc Attack Bonus|0}[Misc Bonus] - ( (?{Main:0, Second:1, or Third:2 attack?|0})*5 )[BAB Penalties] ]] for [[2d6 + (floor(@{STR}*1.5))[1.5 STR] + 9[PowerAttack] + ?{Misc Damage Bonus?|0} ]] Dmg
 
Attack:[[1d20 + @{BAB}[BAB] + @{STR}[STR] + @{Weapon1Bonus} -3[PowerAttack] + ?{Misc Attack Bonus|0}[Misc Bonus] - ( (?{Main:0, Second:1, or Third:2 attack?|0})*5 )[BAB Penalties] ]] for [[2d6 + (floor(@{STR}*1.5))[1.5 STR] + 9[PowerAttack] + ?{Misc Damage Bonus?|0} ]] Dmg
</code>
+
</pre>
  
 
'''Rapid + MultiShot:''' This is a massive time/sanity saver for those ranged types who combine multishot and rapidshot. Also Monk Flurries.
 
'''Rapid + MultiShot:''' This is a massive time/sanity saver for those ranged types who combine multishot and rapidshot. Also Monk Flurries.
 
Note: Due to spacing, this is REALLLY bare-bones output and should be explained to the GM, but it's VERY condensed. The HIT portion should be fleshed out to use attributes and better techniques, but detract from the example here.
 
Note: Due to spacing, this is REALLLY bare-bones output and should be explained to the GM, but it's VERY condensed. The HIT portion should be fleshed out to use attributes and better techniques, but detract from the example here.
Sample Output: The !xx! are the crit target and damage rolls.
+
'''''Sample Output:''''' The !xx! are the crit target and damage rolls.
 
[Rapid/Multi]
 
[Rapid/Multi]
 
Hit112(!23!):10(!15!) Dmg
 
Hit112(!23!):10(!15!) Dmg
Line 128: Line 129:
 
Hit31(!18!):7(!9!) Dmg
 
Hit31(!18!):7(!9!) Dmg
 
'''''Actual Macro:''''' (and yes, it's a pain to read, but the output is sooooo nice and clean! )
 
'''''Actual Macro:''''' (and yes, it's a pain to read, but the output is sooooo nice and clean! )
<code>
+
<pre>
 
/me draws his bow and peppers his enemies with arrows!
 
/me draws his bow and peppers his enemies with arrows!
 
[Rapid/Multi]
 
[Rapid/Multi]
Line 135: Line 136:
 
Hit3[[1d20 + 5 -2 -5]](![[20 + 5 -2 -5]]!):[[ 1d8 + 3 ]](![[ { 1d8 + 3 ,1d8 + 3 } ]]!) Dmg
 
Hit3[[1d20 + 5 -2 -5]](![[20 + 5 -2 -5]]!):[[ 1d8 + 3 ]](![[ { 1d8 + 3 ,1d8 + 3 } ]]!) Dmg
 
Hit3[[1d20 + 5 -2 -10]](![[20 + 5 -2 -10]]!):[[ 1d8 + 3 ]](![[ { 1d8 + 3 ,1d8 + 3 } ]]!) Dmg
 
Hit3[[1d20 + 5 -2 -10]](![[20 + 5 -2 -10]]!):[[ 1d8 + 3 ]](![[ { 1d8 + 3 ,1d8 + 3 } ]]!) Dmg
</code>
+
</pre>
  
  
 
'''Stabilization Check:''' In PF, when you reach negative HP you have to roll a DC 10 Con check with penalties for the number of negative HP you have. If your negative HP exceeds your total CON, well... it's time to roll another character. As an Ability, assumes HP are tracked in Bar3 on your token and you have an attribute named CON that has your bonus in the left field and max Con in the right field.
 
'''Stabilization Check:''' In PF, when you reach negative HP you have to roll a DC 10 Con check with penalties for the number of negative HP you have. If your negative HP exceeds your total CON, well... it's time to roll another character. As an Ability, assumes HP are tracked in Bar3 on your token and you have an attribute named CON that has your bonus in the left field and max Con in the right field.
<code>
+
<pre>
 
/me tries to convince himself the large hole in his chest is just a flesh wound...
 
/me tries to convince himself the large hole in his chest is just a flesh wound...
 
[Stabilize]
 
[Stabilize]
Line 145: Line 146:
 
On Fail: Take [[1]] Dmg.
 
On Fail: Take [[1]] Dmg.
 
If Neg HP([[ @{Selected|Bar3} * -1 ]]) = Con([[@{Selected|Con|Max} ]]) ... !! DEATH !!
 
If Neg HP([[ @{Selected|Bar3} * -1 ]]) = Con([[@{Selected|Con|Max} ]]) ... !! DEATH !!
</code>
+
</pre>
  
  
 
'''Perception''' (basic macro; most used skillcheck in the game)
 
'''Perception''' (basic macro; most used skillcheck in the game)
<code>
+
<pre>
 
/me look around and listens carefully...
 
/me look around and listens carefully...
 
[Perception][[1d20 + 8 + ?{Favored Terrain/Other Bonus?|0} ]]
 
[Perception][[1d20 + 8 + ?{Favored Terrain/Other Bonus?|0} ]]
</code>
+
</pre>
  
 
'''Knowledges:''' (the extra blank line keeps them lined up nicely, usually not an issue unless you're a knowledge whore like wizards.)
 
'''Knowledges:''' (the extra blank line keeps them lined up nicely, usually not an issue unless you're a knowledge whore like wizards.)
<code>
+
<pre>
 
/me considers the topic thoughtfully...
 
/me considers the topic thoughtfully...
  
Line 163: Line 164:
 
Dungeon[[ 1d20 + 9 ]] | Nobility[[1d20 + 7]]
 
Dungeon[[ 1d20 + 9 ]] | Nobility[[1d20 + 7]]
 
Engineer[[ 1d20 + 7 ]] | History[[1d20 + 7 +2]]
 
Engineer[[ 1d20 + 7 ]] | History[[1d20 + 7 +2]]
</code>
+
</pre>
  
  
 
'''Athletics:''' (generally any skillcheck representing a physical action)
 
'''Athletics:''' (generally any skillcheck representing a physical action)
<code>
+
<pre>
 
/me rolls his shoulders and prepares for a feat of ATHLETICS!
 
/me rolls his shoulders and prepares for a feat of ATHLETICS!
 
Acrobatics:[[1d20 + 10]]
 
Acrobatics:[[1d20 + 10]]
Line 173: Line 174:
 
Swim:[[1d20+7]] Ride:[[1d20+3]]
 
Swim:[[1d20+7]] Ride:[[1d20+3]]
 
Fly: [[1d20 -1]]
 
Fly: [[1d20 -1]]
</code>
+
</pre>
  
  
 
'''Sneaky:'''
 
'''Sneaky:'''
<code>
+
<pre>
 
/me indulges in a bit of legerdemain and skulduggery...
 
/me indulges in a bit of legerdemain and skulduggery...
 
Disable Device: [[ 1d20 + 12 ]]
 
Disable Device: [[ 1d20 + 12 ]]
Line 183: Line 184:
 
Sleight of Hand:[[ 1d20 + 7]]
 
Sleight of Hand:[[ 1d20 + 7]]
 
Disguise: [[1d20 + 4]]]
 
Disguise: [[1d20 + 4]]]
</code>
+
</pre>
  
  
 
'''Conversation:'''
 
'''Conversation:'''
<code>
+
<pre>
 
/me tries to remember long-lost conversation skills...
 
/me tries to remember long-lost conversation skills...
 
Bluff/*Feint*: [[1d20 + 6]]
 
Bluff/*Feint*: [[1d20 + 6]]
Line 193: Line 194:
 
Intimidate:[[1d20 + 4]]
 
Intimidate:[[1d20 + 4]]
 
Sense Motive:[[1d20 + 7]]
 
Sense Motive:[[1d20 + 7]]
</code>
+
</pre>
  
  
 
'''Color spray:''' (Complicated spells that also include rolls are excellent for a macro)
 
'''Color spray:''' (Complicated spells that also include rolls are excellent for a macro)
<code>
+
<pre>
 
/me raises his hands and links his thumbs before a cone of scintillating color erupts from his palms!
 
/me raises his hands and links his thumbs before a cone of scintillating color erupts from his palms!
 
[Color Spray]
 
[Color Spray]
Line 204: Line 205:
 
3 or 4 HD:Blinded,stunned [[1d4]] rounds, then stunned [[1]] round
 
3 or 4 HD:Blinded,stunned [[1d4]] rounds, then stunned [[1]] round
 
5 or more HD: stunned for [[1]] round.
 
5 or more HD: stunned for [[1]] round.
</code>
+
</pre>
  
  
 
'''Grease:'''
 
'''Grease:'''
<code>
+
<pre>
 
/me cups his palm as though he were standing on a mound in a field and chants the verbal component "Uncto"!
 
/me cups his palm as though he were standing on a mound in a field and chants the verbal component "Uncto"!
 
[Grease]
 
[Grease]
 
DC[[14]] Ref Neg | SR:No
 
DC[[14]] Ref Neg | SR:No
 
[[10]]ft. radius or single object for [[2]] minutes
 
[[10]]ft. radius or single object for [[2]] minutes
</code>
+
</pre>
  
  
 
'''Flaming Sphere:''' (example of fleshing out all the rolls so you don't have to touch the macro itself again, just attributes on your sheet)
 
'''Flaming Sphere:''' (example of fleshing out all the rolls so you don't have to touch the macro itself again, just attributes on your sheet)
 
'''''NOTE:''''' The 1d1+9 as the base instead of just plain 10 is to enable text descriptions within the macro, like [SpellLevel], which only work when there is a dice roll involved.
 
'''''NOTE:''''' The 1d1+9 as the base instead of just plain 10 is to enable text descriptions within the macro, like [SpellLevel], which only work when there is a dice roll involved.
<code>
+
<pre>
 
/me gestures as though he was molding a small sphere in his hands and utters, "Flamma Globus"!
 
/me gestures as though he was molding a small sphere in his hands and utters, "Flamma Globus"!
 
[Flaming Sphere]
 
[Flaming Sphere]
Line 224: Line 225:
 
Dur:[[@{Gol|Level}[Level] ]] Rd. Rng:[[100 + { @{Gol|Level} * 10 } ]]ft.
 
Dur:[[@{Gol|Level}[Level] ]] Rd. Rng:[[100 + { @{Gol|Level} * 10 } ]]ft.
 
Burning Sphere uses caster's move to shift 30ft each round, co-occupying a 5-ft. area. Any creature in this area suffers [[3d6]] fire damage.
 
Burning Sphere uses caster's move to shift 30ft each round, co-occupying a 5-ft. area. Any creature in this area suffers [[3d6]] fire damage.
</code>
+
</pre>
  
  
 
'''Mad Monkeys:''' (assuming augmented summoning, which boosts STR/CON of summoned creatures)
 
'''Mad Monkeys:''' (assuming augmented summoning, which boosts STR/CON of summoned creatures)
<code>
+
<pre>
 
/me scratches beneath his armpits while hopping on one leg, strangely ape-like phrases escape his lips as he chants...
 
/me scratches beneath his armpits while hopping on one leg, strangely ape-like phrases escape his lips as he chants...
 
[MadMonkeys]
 
[MadMonkeys]
Line 236: Line 237:
 
Melee[[2d6]] + DC[[16]] vs Fort Nauseated and Deafened [[1]]rd.
 
Melee[[2d6]] + DC[[16]] vs Fort Nauseated and Deafened [[1]]rd.
 
Free Act:Disarm/Steal[[ 1d20 + 7[Level] + 5[CHR] ]] vs. CMD
 
Free Act:Disarm/Steal[[ 1d20 + 7[Level] + 5[CHR] ]] vs. CMD
</code>
+
</pre>
  
 
'''Black Tentacles:'''
 
'''Black Tentacles:'''
<code>
+
<pre>
 
/me closes his eyes while chanting, channeling the horror of Japanese school girls through the ages..
 
/me closes his eyes while chanting, channeling the horror of Japanese school girls through the ages..
 
[BlackTentacles]
 
[BlackTentacles]
Line 248: Line 249:
 
CMD to escape[[10d1[BaseCMD]+7[Level]+4[STR]+1[Size] +5[Bonus]]]
 
CMD to escape[[10d1[BaseCMD]+7[Level]+4[STR]+1[Size] +5[Bonus]]]
 
Tentacles Cannot be Damaged, only dispelled
 
Tentacles Cannot be Damaged, only dispelled
</code>
+
</pre>
  
  
 
'''GlitterDust:'''
 
'''GlitterDust:'''
<code>
+
<pre>
 
/me raises his hands and tosses a handful of glittering dust into the air while canting, "Coruscantes Et Cinere"!
 
/me raises his hands and tosses a handful of glittering dust into the air while canting, "Coruscantes Et Cinere"!
 
[GlitterDust]
 
[GlitterDust]
Line 259: Line 260:
 
[[10]]ft. radius, targets blinded and invisible creatures revealed, stealth receive -40 penalty.
 
[[10]]ft. radius, targets blinded and invisible creatures revealed, stealth receive -40 penalty.
 
Blinded creates may attempt to save at the end of their turn.
 
Blinded creates may attempt to save at the end of their turn.
</code>
+
</pre>
  
  
 
'''Alchemist Bomb:''' When bombs and splash weapons miss, you roll for where it actually lands.
 
'''Alchemist Bomb:''' When bombs and splash weapons miss, you roll for where it actually lands.
<code>
+
<pre>
 
/me pulls the pin and counts to 5... NO! I mean 3!!
 
/me pulls the pin and counts to 5... NO! I mean 3!!
 
[Flask]
 
[Flask]
Line 272: Line 273:
 
[[4]] | X | [[5]]
 
[[4]] | X | [[5]]
 
[[6]] | [[7]] | [[8]]
 
[[6]] | [[7]] | [[8]]
<code>
+
</pre>

Revision as of 14:39, 12 September 2014

INTENT

To illustrate specific techniques for macros specifically designed for the Pathfinder RPG system and to demonstrate their use through examples. As you read through this article you will find certain techniques simplified or unused in order to emphasize the topic method. The examples provided are not necessarily meant to be used as-is(Though everything posted is functional). Rather, they're offered as an example of a particular method to be combined with other techniques for you to craft your own comprehensive macros using all techniques you're comfortable with employing.


TIPS AND TECHNIQUES

Spacing: Spacing inside a roll rarely matters, as it does not generally effect the results of a roll. When I make macros I space everything far apart so its easier to see where I might have made an error, and to make it easier to adjust later on as needed.

When figuring out result spacing in the chat window, I try to get things to fit on as few lines as possible. I can be a bit obsessive about this, but it makes for cleaner macros and speeds the game along if you can see and comprehend the results easily.


Group your Macros: To save your own screen space and to avoid having dozens of macros I combine similar rolls into one macro: Ex: Conversation skills (bluff,sense motive, diplomacy, etc) can all be rolled at once in a single macro, rather than a macro button for each one.


Boolean Math: Using the Identity property of 1 and the multiplicative property of 0, combined with Queries, you can make ON / OFF type switches in your macros. This is as close as you can get to conditionals in the Macro system. Real If/Then/Else requires Mentor subscriptions and the API. Note: Pathfinder almost always rounds down, so always use the "Floor" function to force it when finding the 1/2 of something.

Example:
(Two-Handed Weapon Damage) 
[[ 1d12 + 5[STR] + ( ?{Two-Handed Weapon?|0}[TwoHanded?] * floor( 5[STR] * .5) ) ]]

Reason: Since regular weapon damage adds 1x your strength, and a Two-handed Weapon adds 1.5x your Strength you can add Query * HalfYourStrength. By using a 1 in your query result, you add the extra 1/2 str. If you reply 0, the added result is zero so effectively just your regular strength.


Calculated Dice Roll: Mostly for Casters where damage of spells is often dependent on your level, you can use math and attributes to determine how many dice to roll. This is also an example of grouping rolls with { } and comparing them with KL1 (keep Lowest) Example: CureLightWounds would does 1d8+ Level, but only up to level 5 at max giving us [[ 1d8 + ( { 5 , @{Level} }kl1) ]]<//code> This takes the number 5, compares it to your @{Level} attribute, and keeps the lower of the two. So if you're level 2, you'll end up rolling 1d8+2. if you're level 12, you'll roll 1d8+5 Note: Grouped rolls like KL1 and Calculated Dice Roll's currently don't play nice with each other. The only way to combine them is to do a plain regular /roll and inside THAT, do your comparisons. For example, Fireball (Your level of d6' up to 10d6) would come out as <code>/r [[ {10, @{CasterLevel} }kl1 ]]d6 Unfortunately that leaves us with the messy graphical dice, but it does calculate correctly. In these cases, I'll often forgo the level comparison and just put in my level attribute and replace it with the max number when I hit that level (ie: (@level)d6 until I hit level 10 and just make it 10d6


Passive Rolls for GMs: If you have your players keep Perception, Sense Motive, etc attributes defined in their character journals, you can use @{Target|Attribute} or @{Selected|Attribute} to determine if the character made their check without notifying the player that it happened. This assumes that the Tokens are bound to the Character Journal correctly.

Example:
/w GM @{Selected|TokenName} Passive Perception [[ @{Selected|Perception} + 10]]

Since it's the GM whispering to the GM, only they see the roll.


Corollary to Passive GM Roll: If your player-base is consistent you can make one macro to test all their passive checks and use it for any NPC or monster that might try to stealth, bluff, or traps, etc. NOTE: Spacing gets a bit messy after 4 players without reworking it Example: (Secretly rolling generic monster's stealth check and comparing it to player's rolled perceptions)

/w GM NPC Stealth[[ (1d20 + ?{Stealth bonus?|0} ) ]]
/w GM Player's Name:[[ 1d20 + @{PlayerName1|Perception} ]]
/w GM Player's Name:[[ 1d20 + @{PlayerName2|Perception} ]]
/w GM Player's Name:[[ 1d20 + @{PlayerName3|Perception} ]]
/w GM Player's Name:[[ 1d20 + @{PlayerName4|Perception} ]]

Calculating Crits: Aside from using plain text to describe what constitutes a crit, you can use inline rolls to tell you the actual final roll value. ex: Rapiers crit on an 18-20. If I have a +6 attack bonus, that means you would crit on a total roll of 24,25, or 26. (18+6 or higher) You essentially repeat your attack roll portion and replace 1d20 with your lowest crit range (18). Note that when you don't use a roll, you can't use the [ ] descriptions inside an inline roll. Game Note: Pathfinder Crits are your damage and bonus' rolled multiple times, not the result multiplied.

/me stabs with his Keen LongSpear!
Attack:[[1d20 + 6[AttackBonus] ]] for [[1d6 + 4[STR] ]] Dmg
Crits on [[ 19 + 6 ]] for addt'l [[ ( 1d6 + 4[STR] ) + ( 1d6 + 4[STR] ) ]]

EXAMPLES

Initiative: (the decimal point = my total init bonus. Used for breaking ties with enemies rolling the same, higher bonus wins). The &{tracker} part automatically adds the roll to the turn order. You *MUST* have your token selected for this macro to work correctly.

/me leaps into action! [[1d20 + 11.11 &{tracker}]]

Initiative (As an ABILITY on my character journal using Attributes instead. I usually just make an attribute for it and don't bother with the math) Note: The benefit of using the full calculation (dex + init bonus) instead of just a flat number, is that it will dynamically update if your dex goes up through Cat's Grace or other temporary effects.

/me leaps into action! [[1d20 + @{DEX}[Dex] + @{InitBonus}[Traits] + ( @{DEX} + @{InitBonus} )*.100 &{tracker}[TieBreaker] ]]

Defense - I like having a macro that shows all my defenses and makes all my saving throws in one click. I put plain numbers inside [[ ]] for emphasis.

/me defends himself from the assault!
[DEFENSES]
AC:[[18]]|[[18]]Flat|[[13]]Touch
Fort[[1d20 + 3]]|Ref[[1d20+7]]|Will[[1d20+1]]
CMD:19 Concentration:[[1d20 +11]]

Defense (More complex using attributes and token bars, assuming HP and AC are tracked on token bars and it's currently selected). I use a token bar to track AC instead of an attribute because AC changes frequently in PF. The FlatFooted or Touch calculation may change with different class/feats/etc)

/me defends himself from the assault!
[DEFENSES]
HP:[[ @{Selected|BAR3 ]] / [[ @{Selected|Bar3|MAX} ]]
AC:[[ @{Selected|Bar1} ]]|[[ @{selected|Bar1} ]]Flat|[[10 + @{DEX} ]]Touch
Fort[[1d20 + @{Fort} ]]|Ref[[1d20+@{Ref} ]]|Will[[ 1d20+@{Will} ]]
CMD:[[ 10d1[BASE] + @{BAB}[BAB] + @{STR}[STR] + @{Dex}[DEX] ]] | Evasion | Uncanny Dodge

Generic Roll: A generic dice roll that asks for how many dice, what sided dice, and what modifiers you are adding to the roll. Mind the spacing around the d?, it matters here.

[[ ?{Number of Dice|1}d?{Type of Die|6} + ?{Modifiers|0} ]]

Weapon 1 (Mathematically speaking, power-attack should almost ALWAYS be used, so I don't keep separate macros without it) NOTE: Attack macros are the one place I ALWAYS use a roll query for misc bonus'. It changes constantly in PF.

me grips his GreatSword firmly and swings Powerfully!
Attack:[[1d20 + 5[AttackBonus] -1[PowerAttack] + ?{Misc Bonus/Penalty?|0} ]] for [[2d6 + 6[STR*1.5] + 3[PowerAttack] + ?{Damage Bonus?|0}[Damage Bonus] ]] Dmg
Crit Threat: 19-20/x2
Confirm:[[1d20 + 5[AttackBonus] -1[PowerAttack] + ?{Misc Bonus/Penalty?|0} ]] for addt'l [2d6 + 6[STR*1.5] + 3[PowerAttack]+ ?{Damage Bonus?|0}[Damage Bonus] ]]

MultiAttack: (Note: As you get high enough to make 3 or more attacks, I start reworking the fluff text or rework it to query main or second attack)

/me grips his GreatSword firmly and swings powerfully!
Attack1:[[1d20 + 5 -1[PowerAttack]]] for [[2d6 + 6[STR*1.5] + 3[PowerAttack] ]] Dmg
Crit Threat: 19-20/x2
Confirm1:[[1d20 + 5 -1[PowerAttack]]] for addt'l [[2d6 + 6[STR*1.5] + 3[PowerAttack] ]] Dmg
Attack2:[[1d20 + 5 -1[PowerAttack] -5 ]] for [[2d6 + 6[STR*1.5] + 3[PowerAttack] ]] Dmg
Crit Threat: 19-20/x2
Confirm2:[[1d20 + 5 -1[PowerAttack] -5 ]] for addt'l [[2d6 + 6[STR*1.5] + 3[PowerAttack] ]] Dmg

MultiAttack: (Using attributes and Queries. Meant to cover each attack and determines what the bonus' and penalties should be ) NOTE: Pain in the butt, but this covers weapon enchantments, misc bonus' like Bless, and the -5/-10 penalties for your multiple attacks at higher levels.

/me grips his GreatSword firmly and swings powerfully!
[Melee]
Attack:[[1d20 + @{BAB}[BAB] + @{STR}[STR] + @{Weapon1Bonus} -3[PowerAttack] + ?{Misc Attack Bonus|0}[Misc Bonus] - ( (?{Main:0, Second:1, or Third:2 attack?|0})*5 )[BAB Penalties] ]] for [[2d6 + (floor(@{STR}*1.5))[1.5 STR] + 9[PowerAttack] + ?{Misc Damage Bonus?|0} ]] Dmg

Rapid + MultiShot: This is a massive time/sanity saver for those ranged types who combine multishot and rapidshot. Also Monk Flurries. Note: Due to spacing, this is REALLLY bare-bones output and should be explained to the GM, but it's VERY condensed. The HIT portion should be fleshed out to use attributes and better techniques, but detract from the example here. Sample Output: The !xx! are the crit target and damage rolls. [Rapid/Multi] Hit112(!23!):10(!15!) Dmg Hit223(!23!):10(!12!) Dmg Hit31(!18!):7(!9!) Dmg Actual Macro: (and yes, it's a pain to read, but the output is sooooo nice and clean! )

/me draws his bow and peppers his enemies with arrows!
[Rapid/Multi]
Hit1[[1d20 + 5 -2]](![[20 + 5 -2]]!):[[ { 1d8 + 3 , 1d8 + 3 } ]](![[ { 1d8 + 3 , 1d8 + 3 } + { 1d8 + 3 , 1d8 + 3 } ]]!) Dmg
Hit2[[1d20 + 5 -2]](![[20 + 5 -2]]!):[[ 1d8 + 3 ]](![[ { 1d8 + @{STR} ,1d8 + @{STR} } ]]!) Dmg
Hit3[[1d20 + 5 -2 -5]](![[20 + 5 -2 -5]]!):[[ 1d8 + 3 ]](![[ { 1d8 + 3 ,1d8 + 3 } ]]!) Dmg
Hit3[[1d20 + 5 -2 -10]](![[20 + 5 -2 -10]]!):[[ 1d8 + 3 ]](![[ { 1d8 + 3 ,1d8 + 3 } ]]!) Dmg


Stabilization Check: In PF, when you reach negative HP you have to roll a DC 10 Con check with penalties for the number of negative HP you have. If your negative HP exceeds your total CON, well... it's time to roll another character. As an Ability, assumes HP are tracked in Bar3 on your token and you have an attribute named CON that has your bonus in the left field and max Con in the right field.

/me tries to convince himself the large hole in his chest is just a flesh wound...
[Stabilize]
DC 10 Con Check:[[ 1d20 + @{Con}[Con Mod] + @{Selected|Bar3}[Neg HP] ]]
On Fail: Take [[1]] Dmg.
If Neg HP([[ @{Selected|Bar3} * -1 ]]) = Con([[@{Selected|Con|Max} ]]) ... !! DEATH !!


Perception (basic macro; most used skillcheck in the game)

/me look around and listens carefully...
[Perception][[1d20 + 8 + ?{Favored Terrain/Other Bonus?|0} ]]

Knowledges: (the extra blank line keeps them lined up nicely, usually not an issue unless you're a knowledge whore like wizards.)

/me considers the topic thoughtfully...

Linguistic[[ 1d20 + 7 ]] | Appraise[[1d20+10]]
Arcana[[ 1d20 + 15 ]] | Nature[[1d20 + 10]]
Planes[[1d20 + 11]] | Religion[[ 1d20 + 11 ]]
Dungeon[[ 1d20 + 9 ]] | Nobility[[1d20 + 7]]
Engineer[[ 1d20 + 7 ]] | History[[1d20 + 7 +2]]


Athletics: (generally any skillcheck representing a physical action)

/me rolls his shoulders and prepares for a feat of ATHLETICS!
Acrobatics:[[1d20 + 10]]
Jump:[[1d20+3]] Climb:[[1d20+8]]
Swim:[[1d20+7]] Ride:[[1d20+3]]
Fly: [[1d20 -1]]


Sneaky:

/me indulges in a bit of legerdemain and skulduggery...
Disable Device: [[ 1d20 + 12 ]]
Stealth:[[ 1d20 + 12 ]]
Sleight of Hand:[[ 1d20 + 7]]
Disguise: [[1d20 + 4]]]


Conversation:

/me tries to remember long-lost conversation skills...
Bluff/*Feint*: [[1d20 + 6]]
Diplomacy:[[1d20 -3 ]]
Intimidate:[[1d20 + 4]]
Sense Motive:[[1d20 + 7]]


Color spray: (Complicated spells that also include rolls are excellent for a macro)

/me raises his hands and links his thumbs before a cone of scintillating color erupts from his palms!
[Color Spray]
DC[[14]] Will Neg | SR:[[1d20 + 7]]
2 HD: Unconscious, blinded, stunned [[2d4]] rounds then blinded and stunned [[1d4]] rounds, then stunned [[1]] round.
3 or 4 HD:Blinded,stunned [[1d4]] rounds, then stunned [[1]] round
5 or more HD: stunned for [[1]] round.


Grease:

/me cups his palm as though he were standing on a mound in a field and chants the verbal component "Uncto"!
[Grease]
DC[[14]] Ref Neg | SR:No
[[10]]ft. radius or single object for [[2]] minutes


Flaming Sphere: (example of fleshing out all the rolls so you don't have to touch the macro itself again, just attributes on your sheet) NOTE: The 1d1+9 as the base instead of just plain 10 is to enable text descriptions within the macro, like [SpellLevel], which only work when there is a dice roll involved.

/me gestures as though he was molding a small sphere in his hands and utters, "Flamma Globus"!
[Flaming Sphere]
DC[[1d1+9[Base] + 2[SpellLevel] + @{Gol|GolInt}[INT] ]] Ref Neg | SR:[[1d20+@{Gol|Level}[Level] ]]
Dur:[[@{Gol|Level}[Level] ]] Rd. Rng:[[100 + { @{Gol|Level} * 10 } ]]ft.
Burning Sphere uses caster's move to shift 30ft each round, co-occupying a 5-ft. area. Any creature in this area suffers [[3d6]] fire damage.


Mad Monkeys: (assuming augmented summoning, which boosts STR/CON of summoned creatures)

/me scratches beneath his armpits while hopping on one leg, strangely ape-like phrases escape his lips as he chants...
[MadMonkeys]
Rng[[40]]ft|Dur[[7]]rd
Spd[[30]]|Climb[[20]]|Area[[10]]ft
HP[[22+8]]|AC[[15]]
Melee[[2d6]] + DC[[16]] vs Fort Nauseated and Deafened [[1]]rd.
Free Act:Disarm/Steal[[ 1d20 + 7[Level] + 5[CHR] ]] vs. CMD

Black Tentacles:

/me closes his eyes while chanting, channeling the horror of Japanese school girls through the ages..
[BlackTentacles]
Rng[[170]]ft|Dur[[7]]rd(D)
Area[[20]]ft Radius|SR:No
On caster turn or enter area:
Grapple[[1d20+7[Level]+4[STR]+1[Size] ]] & [[1d6+4[STR] ]] dmg/rd
CMD to escape[[10d1[BaseCMD]+7[Level]+4[STR]+1[Size] +5[Bonus]]]
Tentacles Cannot be Damaged, only dispelled


GlitterDust:

/me raises his hands and tosses a handful of glittering dust into the air while canting, "Coruscantes Et Cinere"!
[GlitterDust]
DC:[[10 + 2 + @{Gol|GolInt} +1 ]]Will Neg | SR:No
Dur:[[@{Gol|Level} ]] rds | Rng[[100 + (10*@{Gol|Level} ) ]]ft
[[10]]ft. radius, targets blinded and invisible creatures revealed, stealth receive -40 penalty.
Blinded creates may attempt to save at the end of their turn.


Alchemist Bomb: When bombs and splash weapons miss, you roll for where it actually lands.

/me pulls the pin and counts to 5... NO! I mean 3!!
[Flask]
Hit:[[1d20+5]] for [[1d6+3]]dmg.
Adj. take [[1]] dmg
If Miss, it lands at [[1d8]]
[[1]] | [[2]] | [[3]]
[[4]] | X | [[5]]
[[6]] | [[7]] | [[8]]