Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account
This post has been closed. You can still view previous posts, but you can't post any new replies.

Matt's Guide to Great Macros!

1445741072

Edited 1642910836
Matt
Plus
Are you completely new to macros? Check out this introduction first! Rule 0: As you read through these methods, remember that there is pretty much only one rule concerning macros: they should be clear and concise. They should be long enough that they are easy to understand but short enough that they do not clog the whole chat. They should allow the DM and other players to quickly and easily identify the important parts of your powers. With that in mind, here's a bunch of tips to make macros easier to work for you! (If you want to see a video tutorial of some of these tips, you can watch that here .) Part 1: Using Attributes Effectively Hi, everyone, this is the current attack template: (Power Name) (Action Class) ✦ (Action Type) ✦ (Keywords) (Range) ✦ (Target(s)) /me attacks with a [[1d20 + (your attack bonus) ]] vs (AC / Fortitude / Reflex / Will, pick applicable, remove the rest ). Hit: [[(Power or Weapon damage) ]] (damage type, if any) damage (and any conditions applied by the hit). Miss: (If the attack deals any damage or has other effects on a miss, put this here.) (Crit : [[ (total damage and special effects on a critical hit) ]] Effect: (If the attack has any special effects, list those here) This is a pretty solid starting point for macros, and if you make a character that always has the same attack bonus or damage bonus or dice, then this is probably good for you. The only downside is that every time you level, you will have to change some of those numbers in all of your macros. What if I told you there was a way that you would only have to change one number on your sheet and it would automatically update all of your macros? Well, you can , and it's super simple. You can use the attributes in your journal entry to call your (fairly constant) attack and damage bonuses. For instance, if you have an attribute called "attack bonus" in every macro, you could have [[1d20 + @{attack bonus}]] and  all you have to do is change that one number and you're good to go whenever you level up or get a new piece of equipment. Now, people who have varying attack bonuses (because of different weapons, proficiency bonuses, enhancement bonuses, etc.) may want to break things down even further for their macros. For instance, you could do [[1d20 + @{Str} + @{Half Level} + @{proficiency} + @{expertise} + @{Enhancement}]], and then whenever you go up a level, get a new item or better stats, or change tiers of play (e.g. to paragon or epic), you just change those numbers for the attributes. If you have attacks that don't use proficiency or enhancement (like a minotaur's goring charge) or if you have a mix of weapon and implement abilities, you can just leave those out for that macro. This seems really wordy and complicated, but it's actually quite simple: once you do it once, you can copy/paste it to almost all your macros, and will save you lots of macro-editing time in the future! Part 2: Macro prompts! You can also have the macro prompt you for bonuses, saving you and your fellow players time, by adding in a ? prompt in the macro. For instance, if we add a ?{atk bonus|0} to our previous macro, we get [[1d20 + @{Str} + @{Half Level} + @{proficiency} + @{expertise} + @{enhancement} + ?{atk bonus|0}]]. This allows you to add in bonuses from combat advantage, flanking, leader bonuses, etc. to your roll right away. In my experience, this is also useful for reminding you to look for bonuses that people gave you that you may have forgotten about ! You can just as easily use attributes and prompting statements in your damage macro as in your attack macro! The format of the prompt is ?{Thing it will ask you for|Default value}. For instance, attack bonus will usually be 0, but you could also use it for things like: /me makes a bluff check to ?{reason|hide the truth}. With this macro, every time you make a bluff check, it would prompt you for a reason, with the default output being "<Character name> makes a bluff check to hide the truth" Part 3: Making Reasonable Blast/Burst Macros Making blast and burst macros can be a challenge because the number of attacks you have to roll will vary depending on the situation. By 4e rules, you roll an attack against each individual enemy, but one damage roll that is the same for every target (excluding crits). I've seen several solutions to this from players and DMs. The option most preferred by our DMs is Rolling a list of attack rolls as part of your burst/blast macro . For example : /me makes a Freezing burst attack! [[d20+7]], [[d20+7]], [[d20+7]], [[d20+7]], [[d20+7]] vs Reflex Hit: [[1d6+6]] cold damage. Crit: [[6+6+1d8]] cold damage. The DM then takes however many attack rolls as are needed. For instance, if there are 3 creatures in the burst, they will take the first 3 attack rolls (usually counting monsters in "book order," left-to-right, top-to-bottom). If for some reason you need more rolls, you can just hit it again, and the DM will still take the first damage roll for everybody. The good thing about this method is that everything is compact in one macro. The bad thing is that adding in conditional modifiers to each of the different rolls involves a little messy coding, but you can just leave them out altogether and tell the DM about them individually. Ultimately, whatever method you choose, remember it should follow Rule 0 ! Part 4: Expanded Crits (not widely applicable) If you take a weird paragon path/feat, you may crit with some powers with a 19-20 or an 18-20. If this is the case, then you can attach cs20cs19 (for crit success on 20 or 19) to your 1d20 so it gives a green box for a crit success for those numbers. For instance, instead of saying [[1d20 + (attack bonus)]], you would say [[1d20cs20cs19 + (attack bonus)]]. You can also use something like [[1d20cs>18]] for a crit for anything 18 or above. Note that this > sign actually means "greater than or equal to"! With all this together, you get a pile of complicated bonuses that you just call up from your sheet which you can change as you need to, and it will work for all your macros. So even though your macros look wordier (see below), they are actually much more organized and will barely need to be adjusted ever again! For example, this is a macro made for a level 5 character that did not need to be changed at all until the character hit level 21. Sly flourish At-Will ✦ Standard ✦ Martial, Weapon ✦ Melee or Ranged 5/10 /me makes an Sly Flourish attack (with CA) [[1d20cs18cs19cs20 +@{Dex} + @{proficiency} + @{expertise}+ @{Half Level}+ @{Weapon Enhancement}+ 2 + ?{atk mod|0}]] vs AC. Hit: [[1d@{DaggerDie}+ @{Dex} + @{Weapon Enhancement} +@{Item Bonus} + @{Focus} +@{CHA} + @{Sneak Damage} +?{dmg mod|0}]] damage. Crit: [1d@{MaxDaggerDie}+ @{Crit Die} @{Dex} + @{Weapon Enhancement} +@{Item Bonus} + @{Focus} +@{CHA} + @{Sneak Damage|Max}+?{dmg mod|0}]] damage. If you don't understand everything going on in these macros, that's fine, but you too can use these tricks to make your life easier and your macros better. Part 5: Drop Low, Stay High! For some classes (like avengers), you roll twice and take the highest result a lot . Actually rolling the whole macro twice can be a pain. Additionally, other classes may want take the biggest of several rolls automatically. There are two functions that allow you to do this: "Keep highest" and "Drop Lowest,"  which have the commands kh(number) and dl(number) respectively. For example, if you're an avenger, your attack macro will have [[2d20kh1 + (attack  bonus)]], telling it to roll 2d20's and keep the highest 1 die roll. To do this with attributes, you have to put them in {} and separate them by commas, putting the kh on the outside. For instance, if you wanted the higher of your Dex or Int, you could say [[ {@{Dex}, @{Int} }kh1]]. Similarly, if you were going to roll for stats (which you don't do in this campaign !), you might roll [[4d6dl1]] to drop the lowest. Note that [[4d6dl1]] and [[4d6kh3]] are equivalent. (Side note: Even less frequently used are "keep lowest" and "drop highest," which have the kl and dh commands, which are coded the same as the kh and dl macros. Make sure you use the right one!) Part 6: They Won't Be Able to Show it on the News Because it Will be SO BRUTAL Lots of weapons use Brutal 1 or Brutal 2 rolls, which means you reroll every die until it comes up as something other than a 1 (for Brutal 1) or a 1 or 2 (for Brutal 2). Roll20 has an easy way to macro this: you just write the normal roll and then add r<1 or r<2 to the end of it. For instance, if you were using an execution axe (1d12, brutal 2), the roll would be [[1d12r<2 + bonuses]]. Keep in mind that the r<2 works for anything less than or equal to 2. Some powers, items, and feats (e.g. Axe Expertise) allow you to reroll a 1 only once, in which case you could use the "ro" function, e.g. [[2d6ro1]] which will reroll each 1 only once. Part 7: Organize your Macros! Roll20 has recently started doing this thing where it alphabetizes your token action macros, rather than having them appear in the order you put them in. To turn off this "feature," go to your in-game settings tab (the cog on the far right at the top of the chat window) and scroll through till you find it. When you re-order your macros in your journal entry, you may want to drag them into place twice (as shown in this video ). Sometimes they move around if you don't put them in place twice. In general, macros for player characters should be put as token actions rather than in the macro bar, for several reasons: they take up less space when you don't need them, they all can show on the screen  at the same time rather than having to scroll, GMs can look at them if you're having trouble getting them to work, and if you have multiple PCs, you only get the relevant macros appearing rather than all of the macros for all of your characters. If you find that you have a lot of macros and they are clogging up your screen when you click on your token, you could abbreviate your macro names, e.g. instead of "At-Will-Energizing-Strike-Augment-1," you could say "Energ-A1" or something similar. You also have the option of consolidating several similar macros into drop-down menus (See Part 8, Method 4 below).
1585759951

Edited 1585763178
Matt
Plus
Continued from above: Part 8: What to do with my skill checks? A common question is how the DMs want the skill checks formatted. The answer is almost certainly "however you like, as long as it is clear." That being said, there are several tried-and-true methods that we have seen that you are welcome to co-opt. Method 1: Roll a d20 and follow it with a list of modifiers . This method is a little clunky, but perfectly clear and does not require any substantial programming effort and sheet referencing and what-not. Here's an example: /me makes a skill check: [[1d20]] +15 Athletics, Acrobatics +14 History +11 Endurance +10 Diplomacy, Bluff You could also write your macro so that it tracks with you automatically with attributes, making your modifier list contain things like "+[[15-4+@{half level}]]" or "+[[@{Str}+@{Half Level}+5-@{CheckPenalty}]]". Please do NOT list every skill individually! List all the ones that have the same modifiers together and only list the ones you are most likely to use! Method 2: Use prompts! (see Part 2!) This method basically has you make one macro that uses prompts for all your skill checks, e.g. /me makes a check in ?{Skill name} and rolls a [[1d20 + ?{Skill mod|0}]] Pros: very simple and flexible, never needs to be updated. Cons: you either need to know all your skill mods off-hand or have your sheet easily accessible. If you take too long to roll a check using this macro because you don't have that info available, a DM may ask you to use a different method. Method 3: Make a separate macro for each skill . While you are certainly welcome to do this, few take this route. An example would be a one-line macro that says something like "/me makes a Stealth Check [[1d20+@{Dex}+@{Half Level}+5]]. This is acceptable, but could lead to macro clutter as you gain more powers. Method 4: The drop-down menu. The basic idea of this method is to have all your skill checks in one macro and then you pick from a drop-down prompt. The basics of coding this are covered on the roll20 wiki , but I'll go over it briefly here. The main drawback to this method is that it takes some dedication to code and write the macro carefully (and also a lot of care not to use commas, which can cause serious syntax issues! See "Advanced Usage for Roll Queries" under the link above). The basic format of the drop-down prompt is as follows: ?{Thing it asks you for|Menu option 1,what it posts in chat if you select Menu option 1|Menu Option 2,what it posts in chat if you select option 2} You can continue staggering options, followed by commas, then followed by | and then more options, as far as you like, e.g. ?{Question|option1,text1|option2,text2|option3,text3|option4,text4} and so on. This can be used for skill check macros by incorporating rolls and flavor text into the "text" portion. (Again, be careful not to include commas! Roll20 will read them as divisions in the macros). For instance: /me ?{Skill| Athletics ,tries to be athletic: [[d20+15-4+@{Half Level}]]| Acro/Stealth ,attempts acrobatics or stealthiness: [[d20+13-4+@{Half Level}]]| Nature/Percep ,tries to perceive or commune with nature [[d20+12- 4+@{Half Level}]]| Insight ,attempts to see the truth: [[d20+7-4+@{Half Level}]]} (bold added to show alternating options/text) Alex and/or Juho have come up with this template that could be used for a drop-down menu skill-check macro, but it requires you to remember to include skill modifiers that you have other than attribute and half level (racial mods, armor check penalty, etc.) in order to work and scale properly. /me performs a skill check in ?{Skill| Acrobatics ,Acrobatics: [[1d20+@{DEX}+@{Half Level}+0]]| Arcana ,Arcana: [[1d20+@{INT}+@{Half Level}+0]]| Athletics ,Athletics: [[1d20+@{STR}+@{Half Level}+0]]| Bluff ,Bluff: [[1d20+@{CHA}+@{Half Level}+0]]| Diplomacy ,Diplomacy: [[1d20+@{CHA}+@{Half Level}+0]]| Dungeoneering ,Dungeoneering: [[1d20+@{WIS}+@{Half Level}+0]]| Endurance ,Endurance: [[1d20+@{CON}+@{Half Level}+0]]| Heal ,Heal: [[1d20+@{WIS}+@{Half Level}+0]]| History ,History: [[1d20+@{INT}+@{Half Level}+0]]| Insight ,Insight: [[1d20+@{WIS}+@{Half Level}+0]]| Intimidate ,Intimidate: [[1d20+@{CHA}+@{Half Level}+0]]| Nature ,Nature: [[1d20+@{WIS}+@{Half Level}+0]]| Perception ,Perception: [[1d20+@{WIS}+@{Half Level}+0]]| Religion ,Religion: [[1d20+@{INT}+@{Half Level}+0]]| Stealth ,Stealth: [[1d20+@{DEX}+@{Half Level}+0]]| Streetwise ,Streetwise: [[1d20+@{CHA}+@{Half Level}+0]]| Thievery ,Thievery: [[1d20+@{DEX}+@{Half Level}+0]]}. Some people also use drop-down prompts for things like Augmentable Psionic Powers or Runic Powers that have multiple options under the same power. One important note: it is very difficult to nest prompts in roll20. That means that if you make your powers in drop-down prompts, you will not be able to then prompt for attack or damage bonuses without a lot of work! (Nesting a drop-down prompt in a drop-down prompt is also nightmarish). If you want to attempt this, READ THIS FIRST . It is possible, but involves very carefully avoiding any instances of things like commas, |, or }. Personally, I find the atk/dmg bonus prompts in separate macros for each power to be more useful than piling all my powers into one long, incredibly complicated and messy macro, but the choice is ultimately yours, so long as you follow Rule 0 . Again, this level of intricacy is NOT required as long as your macros are clear and concise, but for those of you who like to do this sort of programming thing with your macros, you are welcome to it. Part 9: Targeting ! (for healing and other purposes) Seeing as roll20 is a giant calculator that keeps track of your stats for you, you may think "There has got to be an easier way for my healing powers for me and my allies than saying "spend a surge and get an additional [[2d6]]." You'd be right! (Note: there is nothing wrong with this basic approach, as it is clear and functional!) You can make your macros such that they can pull your (or your allies') surge values from their attributes. The way to do this is with targeting . To pull an attribute from a token other than your own, you use the @{target|attribute} syntax. When you use this in a macro, it will prompt you to click on a token (yours or another's). It will then pull the attribute with the name "attribute" from their sheet. Since everyone has a Surge Value attribute, you could easily make a healing power macro that looks something like: /me says a prayer of Healing, allowing @{target|character_name} to spend a surge and regain [[@{target|Surge Value} + 2d6]] total hit points! If you make such a macro for one of your powers, you should be abundantly clear that the hit points regained are the TOTAL hit points, not additional hit points that should be added to their surge value. Conversely, if you choose not to target, you should be clear that the hit points are in addition to their surge value, e.g.: /me says a prayer of Healing, allowing an ally to spend a surge and regain [[2d6]] additional hit points! Theoretically, targeting could also be used to target monster defenses for attack macros, however, we don't do that here . Feel free to post questions/comments in the Discord or in the Questions thread!