Difference between revisions of "Macros/Pathfinder Examples"
From Roll20 Wiki
Jake Johnson (Talk | contribs) m (→TIPS AND TECHNIQUES) |
Stephanie P. (Talk | contribs) (→TIPS AND TECHNIQUES) |
||
Line 17: | Line 17: | ||
− | '''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 conditional statements in the Macro system. Real If/Then/Else requires a | + | '''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 conditional statements in the Macro system. Real If/Then/Else requires a '''Pro''' subscription 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: (Two-Handed Weapon Damage) | Example: (Two-Handed Weapon Damage) |
Revision as of 23:23, 27 July 2015
Contents |
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.
This is a collaborative work with several contributors. Styles and methods will varry
TIPS AND TECHNIQUES
Spacing: Spacing inside a roll rarely matters, as it does not generally affect the results of a roll. When making macros, spacing everything far apart will make it easier to see where you 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, try to get things to fit on as few lines as possible. It makes for cleaner macros and speeds the game along if you can see and comprehend the results easily. Please also see the "Roll Templates" section towards the bottom of this article
Group your Macros: To save your own screen space and to avoid having dozens of macro buttons, 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 conditional statements in the Macro system. Real If/Then/Else requires a Pro subscription 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. Tidbit: Use * .5 instead of /2 in any programming or scripting system to avoid accidentally dividing by 0 or using the wrong Slash mark.
Extension: Roll20 gives you 3 token bars, but many people only use one - health. You can use bar2 and bar3 to store boolean values. I use bar2 to represent Power Attack. My L7 Fighter's attack roll looks like this:
#Single-Attack /w gm Power Attack: [[@{selected|bar2}]] /w gm Threatens at [[17 + 12 - 2*@{selected|bar2}]] [[d20 + 12 - (2*@{selected|bar2})[Power Attack Penalty] ]] vs AC [[2d6 + 6 + (6*@{selected|bar2})[Power Attack Bonus] ]] Normal Damage! [[2d6]] Vital Strike Damage!
High and Low Tier:
Using Boolean Math, you can create a switch that instantly changes *almost* all aspects of your table from low tier to high tier and back: (This assumes you use attributes to roll your attacks; see "Generic Attack Macro" in the "Macro Examples" section.) In this section I use (1-x) as "opposite of x", where x is a boolean value. 1-0=1, 1-1=0. (1-x) flips the boolean value.
To begin, set up a character, "Tier", with the following attribute:
High: 0
Now, in every macro, use boolean math to add in BOTH High and Low tier bonuses. For example:
#Roll-Saves /emas @{selected|token_name} attempts to avoid your attacks! /desc [[d20 + (@{selected|fort})*(1-@{tier|high)[Low Tier Bonus] + (@{selected|fort-h})*(@{tier|high)[High Tier Bonus]] Fortitude /desc [[d20 + (@{selected|ref})*(1-@{tier|high)[Low Tier Bonus] + (@{selected|ref-h})*(@{tier|high)[High Tier Bonus]] Reflex /desc [[d20 + (@{selected|will})*(1-@{tier|high)[Low Tier Bonus] + (@{selected|will-h})*(@{tier|high)[High Tier Bonus] ]] Will
This can be done anywhere the same effect occurs with different numbers in high and low tier. I use it in EVERY macro.
When I create the table, on the splash screen I create a token on the GM layer. I link the token to "Tier", and I link Bar1 to "High". When the table makes and we determine tier, I set the value of Bar1 to 1 for high, 0 for low. (It's defaulted to 0 anyway.) Then everything (except HP) is automatically calculated with the appropriate value for the tier. For HP, I leave every token's Bar1 unlinked until they reach that encounter. (Otherwise I'll forget to change it.) With each encounter, I link Bar1 of each NPC to either HP or HP-H, depending on high or low.
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 One)
Example: CureLightWounds does 1d8 + CasterLevel, but only up to level 5 at max, giving us [[ 1d8 + ( { 5 , @{Level} }kl1) ]]
This takes the raw number "5", compares it to your @{Level} attribute, and keeps the lower of the two. 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 (CasterLevel of d6' up to 10d6) would come out as /r [[ {10, @{CasterLevel} }kl1 ]]d6
Unfortunately that leaves us with the messy graphical dice. It does calculate correctly, though. In these cases, It's common to forgo the level comparison and just put in your level attribute and replace it with the max number when you hit that level (ie: [[ (@level)d6]]
until you hit level 10 and just change it to [[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 individual made their check without notifying the player that it happened. This assumes that the Tokens are bound to the Character Journal correctly.
/w GM @{Selected|Token_Name} Passive Perception [[ @{Selected|Perception} + 10]]
Since it's the GM whispering to the GM, only they will see the roll.
Corollary to Passive GM Roll:
If your player-base is consistent, you can test all their passive checks at the same time and use it as a general macro for anything that might try to stealth, bluff, traps, etc. NOTE: Spacing gets a bit messy after 4 players without reworking it, as the Roll20 chat window only gives you 5 lines of text before posting your character name again.
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: Recently added Dice Rolling options now let you specify your crit range within the initial roll. 1d20cs19 will display the result with a green critical highlight on a 19 or 20. 1d20cs15, on a 15-20, etc.
Pathfinder Crits are your damage and most bonus' rolled multiple times, not the result multiplied. Since your original attack damage is already on the screen, only add one more damage roll for an x2 weapon, and two extra damage rolls for a 3x, etc.
/me stabs with his Keen LongSpear(19-20x3)! Attack:[[1d20cs19 + 6[AttackBonus] ]] for [[1d6 + 4[STR] ]] Dmg C.Confirm:[[1d20 + 6[AttackBonus] ]] Addt'l Crit Damage:[[ ( 1d6 + 4[STR] ) + ( 1d6 + 4[STR] ) ]]
Template NPCs and Players
Some use lots of attributes on my NPCs, and ask their players for a few as well. To keep from having to do the same work over and over, have a table titled "Template." On that template have three characters:
NPC Player Tier
NPC has the following EMPTY attributes: (information in <> is descriptive of what I will fill in for each NPC in that box)
HP: <low tier hp> / <low tier hp max> HP-H: <high tier hp> / <high tier hp max> Fort: <fort save bonus> Fort-H: <fort save high tier> Ref: <Reflex save bonus> Ref-H: <Reflex save high tier> Will: <Will save bonus> Will-H: <Will save high tier> Attack1-Name: <Name of Attack1> Attack1: <Attack1 Bonus Low Tier> / <Damage roll low tier> Attack1-H: <Attack1 Bonus High Tier> / Damage roll high tier> Attack1-Target: <AC, Touch, CMD, Automatic - Reflex for Half, etc.> / <die result that threatens OR DC of spell save> Attack2-Name: <Name of Attack2> Attack2: <Attack2 Bonus Low Tier> / <Damage roll low tier> Attack2-H: <Attack2 Bonus High Tier> / Damage roll high tier> Attack2-Target: <AC, Touch, CMD, Automatic - Reflex for Half, etc.> / <die result that threatens OR DC of spell save> Attack3-Name: <Name of Attack3> Attack3: <Attack3 Bonus Low Tier> / <Damage roll low tier> Attack3-H: <Attack3 Bonus High Tier> / Damage roll high tier> Attack3-Target: <AC, Touch, CMD, Automatic - Reflex for Half, etc.> / <die result that threatens OR DC of spell save>
Player has the following EMPTY attributes, as I will always ask for these:
HP: Init: Perception:
Finally, the Tier character has ONE attribute:
High: <Boolean value - 1 for high tier, 0 for low tier>
The template table also includes my generic Attack1, Attack2, and Attack3 macros (in the macro examples section), a "Show-Attacks" macro (also in the macro examples section), and a "Roll-Saves" macro (macro examples section under "High/Low Tier")
When I'm prepping a new table, I don't start from a blank. I start by copying "Template." Then I count the NPCs and duplicate NPC that many times. Then I just fill in the information from the stat blocks. If a particular NPC has more than 3 actions, or I think it will need to do something nobody else will (concentration checks, for example) I'll create individual abilities for that NPC at that time. But other than that, my combat prep is basically done.
MACRO EXAMPLES
Initiative: (the decimal point = your 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 your character journal using Attributes instead. This can just be an attribute for the total initiative bonus and not bother with the math, but calculations can be useful) Note: The benefit of using the full calculation (dex + misc. init bonus) instead of just a flat value, is that it will dynamically update as your dex increases through Cat's Grace or other temporary effects. NOTE:: Due to wiki layout spacing, the macro is listed on multiple lines. It should be written as a single continuous line of text.
/me leaps into action! [[1d20 + @{DEX}[Dex] + @{InitBonus}[Traits] + ( @{DEX} + @{InitBonus} )*.100 &{tracker}[TieBreaker] ]]
Defense - It's convenient to show all your defenses and make all saving throws in one click. Putting plain numbers inside [[ ]] is just for emphasis in the chat window.
/me defends himself from the assault! CMD[[ 19 ]] AC[[ 18 ]]|Flat[[ 18 ]]|Touch[[ 13 ]] Fort[[ 1d20 + 3 ]]|Ref[[ 1d20 + 7 ]]|Will[[ 1d20 + 1 ]] 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. Again the 0d0 is included to enable labeling without InLine rolls that wouldn't normally contain a dice roll.
/me defends himself from the assault! CMD:[[ 0d0+10[BASE] + @{BAB}[BAB] + @{STR}[STR] + @{Dex}[DEX] ]] HP:[[ @{Selected|BAR3 ]] / [[ @{Selected|Bar3|MAX} ]] AC[[ @{Selected|Bar1} ]]♦Flat[[ @{selected|Bar1} ]]Touch♦[[ 10 + @{DEX} ]] Fort[[1d20 + @{Fort} ]]♦Ref[[1d20+@{Ref} ]]♦Will[[ 1d20+@{Will} ]] Concentration:[[1d20 + 11]] 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.
/me ?{Your Character is...?|does something} [[ ?{Number of Dice|1}d?{Type of Die|6} + ?{Modifiers|0} ]]
Weapon 1 Mathematically speaking, power-attack should almost ALWAYS be used, so we don't often keep separate macros without it. Check out the section above on Boolean Math if you want to make an on/off flag for it. NOTE: Attack macros are the one place you definitely want to use a roll query for misc bonus'. It changes constantly in PF. NOTE2:: Due to wiki layout spacing, the first Attack and Confirm are on multiple lines. They should be written as a continuous line of text. The 1d20cs19 makes the results highlight green on a 19-20 crit range.
/me grips his GreatSword firmly and swings Powerfully! Attack:[[1d20cs19 + 5[AttackBonus] -1[PowerAttack] + ?{Misc Bonus/Penalty?|0}[Misc. Bonus] ]] for [[2d6 + 6[STR*1.5] + 3[PowerAttack] + ?{Damage Bonus?|0}[Damage Bonus] ]] Dmg Confirm:[[1d20 + 5[AttackBonus] -1[PowerAttack] + ?{Misc Bonus/Penalty?|0}[Misc. Bonus] ]] 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, you would likely rework it to query main or second attacks, re-arrange the fluff text for better spacing). The 1d20cs19 makes the results highlight green on a 19-20 crit range.
/me grips his GreatSword firmly and swings powerfully! [Crit:19-20/x2] H1:[[1d20cs19 + 5 -1[PowerAttack] + ?{Misc Bonus/Penalty?|0}[Misc. Bonus] ]] for [[2d6 + 6[STR*1.5] + 3[PowerAttack] + ?{Damage Bonus?|0}[Misc. Bonus] ]] Dmg C1:[[1d20 + 5 -1[PowerAttack] + ?{Misc Bonus/Penalty?|0}[Misc. Bonus] ]] for addt'l [[2d6 + 6[STR*1.5] + [PowerAttack] + ?{Damage Bonus?|0}[Misc. Bonus] ]] Dmg H2:[[1d20cs19 + 5 -1[PowerAttack] -5 + ?{Misc Bonus/Penalty?|0}[Misc. Bonus] ]] for [[2d6 + 6[STR*1.5] + 3[PowerAttack] + ?{Damage Bonus?|0}[Misc. Bonus] ]] Dmg C2:[[1d20 + 5 -1[PowerAttack] -5 + ?{Misc Bonus/Penalty?|0}[Misc. Bonus] ]] for addt'l [[2d6 + 6[STR*1.5] + 3[PowerAttack] + ?{Damage Bonus?|0}[Misc. Bonus] ]] Dmg
MultiAttack: (Using attributes and Queries. This should cover each attack and determines what the bonus' and penalties should be ) NOTE: Complex, but this covers weapon enchantments, misc bonus' such as Bless, and the -5/-10 penalties for your multiple attacks at higher levels. NOTE2: Due to wiki layout spacing, this appears on multiple lines. The macro itself would be continuous line.
/me grips his GreatSword firmly and swings powerfully! [Melee] Attack:[[1d20 + @{BAB}[BAB] + @{STR}[STR] + @{EnchantmentBonus} -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 who combine multishot and rapidshot. Also Monk Flurries. Note: Due to spacing, this is extremely bare-bones output and should be explained to the GM. It's VERY condensed to accommodate spacing. These should be fleshed out to use attributes, attack bonus queries, and other better techniques, but would detract from the example here. Sample Output: The !xx! are the crit confirm, and damage rolls.
Mark G. (GM): [Rapid/Multi] MS:20(!17!)=20+!21! RS:16(!13!)=10+!12! H2:23(!17!)=4+!14! H3:5(!9!)=10+!18!
Read left-to-right "Multishot attack MS rolled a 20, rolled a 17 to confirm any possible crits. Normal attack did 20 damage, if crit add an additional 21
Actual Macro: and yes, it can be difficult to read, but the output is clean! NOTE:: Due to wiki layout spacing, the first Hit1 is on multiple lines. It should be written as a continuous line of text.
/me draws his bow and peppers his enemies with arrows! [Rapid/Multi] MS:[[1d20cs19 + 15 -2]](![[1d20 + 15 -2]]!)=[[{ 1d8 + 3 , 1d8 + 3 }]]+![[{ 1d8 + 3 , 1d8 + 3, 1d8 + 3 ,1d8 + 3 }]]! RS:[[1d20cs19 + 15 -2]](![[1d20 + 15 -2]]!)=[[ 1d8 + 3 ]]+![[{ 1d8 + 3 , 1d8 + 3 }]]! H2:[[1d20cs19 + 10 -2]](![[1d20 + 10 -2]]!)=[[ 1d8 + 3 ]]+![[{ 1d8 + 3 , 1d8 + 3 }]]! H3:[[1d20cs19 + 5 -2]](![[1d20 + 5 -2]]!)=[[ 1d8 + 3 ]]+![[{ 1d8 + 3 , 1d8 + 3 }]]!
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. Written 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; Perception is the 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 movement 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: Various rogue-type actions
/me indulges in a bit of legerdemain and skulduggery... [SNEAKY] Disable Device: [[ 1d20 + 12 ]] Sleight of Hand:[[ 1d20 + 7]] Disguise: [[1d20 + 4]]] Stealth:[[ 1d20 + 12 ]]
Conversation: Basic Conversation skills
/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. Avoid transcribing entire spell descriptions though.
/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: Simplest form without anything fancy. Most appropriate for one-shots
/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: Using 1d1+9 as the base DC instead of just plain 10 enables 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] + @{Int}[INT] ]] Ref Neg | SR:[[ 1d20 + @{Level}[Level] ]] Dur:[[ @{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. Macros are great for summons and repeat effects
/me scratches, hopping on one leg, strangely ape-like phrases escaping 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]] 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 throughout 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[[1d1+9[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:[[ @{Level} ]] rds | Rng[[100 + (10*@{Level} ) ]]ft [[10]]ft. radius, targets blinded and invisible creatures revealed, stealth receive -40 penalty. Blinded creatures may attempt to save at the end of their turns.
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]]
Generic Attack Macros that work for ALL of your NPCs
Assumes NPCs all copied from a template (or manually created but why?) that contains Attributes:
Attack1: <attack bonus - 0 for automatic hits with saves> / <damage roll> Attack1-Target: <AC, Touch, CMD, Reflex Negates, etc.> / <Minimum Threat OR Save DC> Attack1-Name: <Name of Attack> (Attack2, Attack3 similarly)
As for the macro, I like to keep it in the Macros box, NOT in the abilities box. If something needs tweaking, I can go to ONE place and tweak it for ALL NPC's instead of to EACH character sheet.
#Attack1: /emas @{selected|token_name} attacks @{target|token_name} with its @{selected|Attack1-Name}! /w gm [[@{selected|Attack1-Target|Max} + @{selected|Attack1}]] to threaten/save /desc [[d20 + @{selected|Attack1}]] vs @{selected|Attack1-Target}]] /desc [[@selected|Attack1|Max}]] damage!
Works for spells and attacks. If a spell requires a touch attack AND a save, modify Attack1-Target|Max to be the difference between the DC and the attack bonus, so that when added they will accurately display the DC.
Useful along with this:
#Show-Attacks: /w gm Attacks for @{selected|token_name} /w gm Attack1: @{selected|Attack1-name} /w gm Attack2: @{selected|Attack2-name} /w gm Attack3: @{selected|Attack3-name}
DEFAULT ROLL TEMPLATES
With the advent of Roll Templates, formatting options for Macros have a lot more options than before. The more complex (and let's be honest, "Clean", looking Templates are specific to the Character Sheet you're using. However, there is also a "Default" Template that can be used with any game, regardless of Character Sheet.
NOTE: In many cases, the Default Template results in much cleaner macros. However the more tightly spaced macros tend to suffer due to alignment and spacing limitations inherent to the Default Template format. ANY Macro created as a Roll Template will need some fiddling to get the spacing to look nice.
General Usage: To use the Default Template, start off with regular Macro or Ability creation.
The basic format is:
&{template:default} {{name=Header Bar Text}} {{LeftColumnContent=RightColumnContent}}
Note: When using Roll Templates, you must keep everyone on one line of text. This includes any macros or procs that you might call from within the macro.
Ex.&{template:default} {{name=Perception}} {{Perception:=[[1d20 + 2 ]]}}
Every curly brace pair {{ }} you add, adds another Row to the template's output in chat. The = symbol is was defines LeftColumn|RightColumn. If you leave it out entirely, each {{ }} pair will use the entire row. If even one {{ }} is used within your macro, columns will be created.
A note about MarkDown language formatting:
Since there is built-in formatting in the Default Template, we have to make extensive use of the MarkDown language formatting marks.* italics * ** bold ** *** bold italics ***
Roll Template Examples:
Note: These examples are displayed with line breaks for readability. They must be entered as one contiguous line of text to function correctly
(Melee Weapon)
&{template:default} {{name=Melee Attack}} {{Hit:=[[1d20cs>17 + 5[STR] + 10[BAB] +3[WeaponBonus] + ?{AttackMod|0} ]]}} {{Dmg:=[[1d8 + 5[STR] + 3[WeaponBonus] + ?{DamageMod|0} ]]}} {{Confirm:=[[1d20 +4[CritFocus] + 5[STR] + 10[BAB] +3[WeaponBonus] + ?{AttackMod|0} ]]}} {{CritDmg:=[[1d8 + 5[STR] + 3[WeaponBonus] + ?{DamageMod|0} ]]}} {{Note:=**Crits** cause **[Nauseated](http://www.d20pfsrd.com/gamemastering/conditions#TOC-Nauseated)**}}
(Knowledges)
&{template:default} {{name=Knowledges}} {{Arcana[[ 1d20 + 20 ]]=**Appraise**[[1d20 + 10]]}} {{Linguistic[[ 1d20 + 7 +5]]=**Nature**[[1d20 + 15 +1[Book]]]}} {{Planes[[1d20 + 18 ]]=**Religion**[[ 1d20 + 11 ]] }} {{Dungeon[[ 1d20 + 7 ]]=**Nobility**[[1d20 + 7 ]]}} {{Engineer[[ 1d20 + 7 ]]=**History**[[1d20 + 18 +2[Book] ]]}} {{Geography[[ 1d20 + 11 ]]=**Local**[[1d20 + 11 ]]}}
(Conversation) Note how I have two template calls here. Because the first one uses "=" to make columns, the language list would have been squished.
&{template:default} {{name=Conversation}} {{Bluff[[ 1d20 + 10 ]]=**Diplo**[[ 1d20 + -1 ]]}} {{Sense Motive[[ 1d20 + 2 ]]=**Intim**[[ 1d20 + -1 ]] }} &{template:default} {{name=Languages}} {{*Common, Elven, Read-Lips }}