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

Personal tools

Advanced Dungeons and Dragons

From Roll20 Wiki

Revision as of 21:30, 19 February 2017 by AquaAlex (Talk | contribs)

Jump to: navigation, search

This page is about both playing an DMing (DM and GM are the same in AD&D) Advanced Dungeons & Dragons 1st and 2nd Edition on Roll20.


Macros and Attributes

Macros and attributes are best used when the time reduction of using the macro is greater than the time to make the macro, or set up and apply the attribute. For example, setting up a macro to roll 1d20 /r d20 is not an efficient use of a macro, but rolling 3 attacks and adding the modifier after it might be worth attributes for the modifiers and a macro for the entire process. Remember that abilities are essentially macros but are visible to and usable by everyone that can edit the character.

Also, when you use attributes, remember that the computer just replaces the call command with the "value" it represents. This value doesn't have to be a number. For example, you could have an attribute that places something after the rest of the chain and fill this macro with the weapon you are currently using and the name of that weapon would appear where that attribute is. This substitution happens first in the chain of events, so you could even put something like 1d6+5 in an attribute at the end of a damage roll and it would roll the d6 and add both the d6 roll and the 5 to the result you would have otherwise received.


Some common/recommended uses of macros/attributes when playing AD&D on Roll20 are: (not an exhaustive list)


All players put their save value in an attribute on the corresponding character page then the DM and/or Player (depending on style of play) makes a macro that rolls the save

ex: A DM macro for rolling the Fort save of 4 players

/r 1d20+@{PC 1|Fort}} PC1
/r 1d20+@{PC 2|Fort}} PC2
/r 1d20+@{PC 3|Fort}} PC3
/r 1d20+@{PC 4|Fort}} PC4

When using the pre-set 3.5 character sheet (set by the DM in the game settings) you can create more advanced macros to extract key information. Using inline rolls (see dice reference) you can take a lot of the work out of calculating a roll, even setting the target needed with a prompt pop-up:

@{selected|character_name} performs a Fortitude check:
[[1d20 + @{selected|fortitude} + ?{Other Bonus|0}]] v DC ?{DC Target:|10}.

Returns a result of:
Ziechael performs a Fortitude check:
14 v DC 10.

Using inline cleans up the result and hides the calculations (which can still be seen when hovering your pointer over the result). The ?{...|...} acts as a prompt with the first ...'s being the question asked to the user and the second ...'s being the default but editable answer, again see dice reference for details.

You will note the macro started with @{selected|character_name}, this would require the user to have selected a token on the map first but works great for generalised macros, remember to use @{selected|...} for each instance of wanting to look up information from the character sheet. This can also work for @{target|...} which would prompt the user to select a target token on the map.

Ability Checks

Ability checks are simple rolls which are measured against a target number and receive bonuses from a characters stats and may be subject to other modifiers from temporary boosts or GM discretion.

Using the character sheet you can create quick and simple macros for all abilities which when coupled with token selection (@{selected|token_name} can help resolve ability checks in one step. Here is macro that gives player a list of ability checks. The player clicks a button and the result is send to the DM. Only the DM and the player rolling will see the result.

/w gm &{template:default}{{name=@{selected|token_name} CHECKS FOR SUCCESS}}{{?{WHICH ABILITY OR SKILL WILL YOU USE?|
open normal doors, OPEN NORMAL DOORS CHECK
open magic or locked doors, OPEN MAGIC OR LOCKED DOORS CHECK
system shock, SYSTEM SHOCK CHECK
resurrection survival, RESURRECTION SURVIVAL
[[(D20cs1cf20)<[[@{selected|Charisma}}?{MISCELLANEOUS MODIFIER|+0}]]]]}}

Skill Checks

Skill checks operate in much the same way as ability checks. Have a token selected, hover over the skill on the sheet to find its 'look-up' name and use that as your modifier:

@{selected|character_name} assesses the value of an item: [[1d20 + @{selected|appraise} + ?{Other Bonus|0}]] v DC ?{DC Target:|0}.

Returns a result of:
Ziechael assesses the value of an item: 12 v DC:15.

Simply change the modifier and text to suit and simple skill checks can be generated in seconds.

Hide the Results

Sometimes an evil GM will ask a player to perform a check but doesn't want them to know if they passed or not! This can be easily replicated by adding a simple whisper into the equation:

/em Septimus searches his memory for useful information.
/w gm [[1d20 + @{selected|level} + @{selected|int-mod} + 4]] vs DC: [[?{DC?|10}]]

In the bardic knowledge check performed above the player/s will only see 'Septimus searches his memory for useful information.' in the chat box, the result of '7 vs DC:10' is then whispered to the GM so that they can decide how to mislead the failed knowledge check. Does the bard misremember, vaguely recall of just outright not know what they were hoping was in the deep recesses of their mind?


Initiative macros can directly add the initiative roll to the Turn Order Tracker by use of &{tracker} inside the roll. The token must be selected to use this feature. ex:

  [[ 1d20 + [[ @{selected|init} ]] &{tracker} ]] 

The pre-set D&D 3.5 Character Sheet Template has a built-in initiative macro which appears as a token action when the character sheet's associated token is selected. This token action cannot be removed but the macro can be modified.

The macro text for the initiative macro can be edited by pulling open (by the corner with the diagonal lines) the text box to the left of the initiative roll button on the sheet. The field itself is titled "initmacro (modify to modify initiative roll macro)" if you hover over it for a few seconds.

The numbers which appear to the right of the decimal point in the provided macro are the character's initiative value (ie dex mod + misc mod for initiative divided by 100 to get it to be to the right of the decimal point) to be used as a tie-breaker.

Attacks/attack sequences

Attributes are made to add the various values used by the attack(s) in question for both attack rolls and damage. Then a Macro(s) is written to use these values to do all the math and rolling and and the values together.

ex: attacking with a two handed weapon twice using a full attack. If Str (strength) is odd, then the .5 at the end of the damage is ignored

/me attacks twice with @{weapon}
/r 1d20+@{str}+@{enchantment}+@{attack temporary} attack 1
/r @{damage}+@{str}*1.5+@{enchantment}+@{damage temporary} damage 1
/r 1d20+@{str}+@{enchantment}+@{attack temporary} attack 2
/r @{damage}+@{str}*1.5+@{enchantment}+@{damage temporary} damage 2

Using the pre-set character sheet again can greatly increase the ease and speed of your players attacks and damage, even incorporating things like critical hits and special attacks such as a sneak attack. Again the following will require a token to be selected and a target token for the focus of the attack/damage etc. While the macro can get long and complex looking it is worth breaking down to analyse and is a great way to learn the nuances of macro building.

Main Attack Macro (depending how many weapons character has, 7 assumed)
(Set the main Attack Macro as a token action, but not for the other attack macros):
/w @{selected|token_name} &{template:default}{{name=ATTACKS}}{{[@{selected|weaponname}](!

ATTACK1 Macro:
&{template:2Eattack}{{title=@{selected|token_name} USES A @{selected|weapsize} SIZED @{selected|weaponname} TO ATTACK @{target|token_name}}}{{ac_hit=[[@{selected|ThAC0}-((D20?{ATTACK ROLL MODIFIER|+0})+(@{selected|attackadj})+(@{selected|strengthhit}*@{selected|strbonus})+(@{selected|dexmissile}*@{selected|dexbonus}))]]}}{{dmg_s=[[((@{selected|damsm}?{DAMAGE ROLL MODIFIER|+0}))+(@{selected|damadj})+(@{selected|strengthdmg}*@{selected|strbonus})]]}}{{dmg_l=[[((@{selected|daml}?{DAMAGE ROLL MODIFIER|+0}))+(@{selected|damadj})+(@{selected|strengthdmg}*@{selected|strbonus})]]}}{{ crit = Roll extra die for crit }} {{ fumble = You Fumble }}

ATTACK2 Macro:
&{template:2Eattack}{{title=@{selected|token_name} USES A @{selected|repeating_weapons_$0_weapsize} SIZED @{selected|repeating_weapons_$0_weaponname} TO ATTACK @{target|token_name}}}{{ac_hit=[[@{selected|ThAC0}-((D20?{ATTACK ROLL MODIFIER|+0})+(@{selected|repeating_weapons_$0_attackadj})+(@{selected|strengthhit}*@{selected|repeating_weapons_$0_strbonus})+(@{selected|dexmissile}*@{selected|repeating_weapons_$0_dexbonus}))]]}}{{dmg_s=[[((@{selected|repeating_weapons_$0_damsm}?{DAMAGE ROLL MODIFIER|+0}))+(@{selected|repeating_weapons_$0_damadj})+(@{selected|strengthdmg}*@{selected|repeating_weapons_$0_strbonus})]]}}{{dmg_l=[[((@{selected|repeating_weapons_$0_daml}?{DAMAGE ROLL MODIFIER|+0}))+(@{selected|repeating_weapons_$0_damadj})+(@{selected|strengthdmg}*@{selected|repeating_weapons_$0_strbonus})]]}}{{crit=RollCrit}} {{fumble=fumble}}

(each further attack macro will be the same as ATTACK2 except the _$0_ will change to increment by 1 so ATTACK3 macro will use _$1_ and ATTACK7 will use _$5_)

You can see how by telling the macro to take into account all of the possible modifiers to a roll and looking up the information from the character sheet the actual 'work' needed to be done by the player is minimised. A player using this attack roll would need to input any bonus' outside of the norm they may have (like being blessed for example which isn't a permanent bonus) and they would be prompted to 'tell' the macro if they have flanked the enemy or not (a great example of a query using the question to guide an answer: ?{Flank (1=yes)|0}). The rest is done by the macro including telling you if there was a critical hit or not. To make this more obvious we leave the original roll (rolling [[1d20]]) untainted by the bonuses to highlight easily whether a clean 20 was rolled. If so the player can then look at the 'check for crit' section to see if their 'threat' became a 'crit' or remained a hit as normal. You can even move the individual part of the macro around for layout purposes should you desire to see the roll to hit first and have the crit check at the end. When wanting to set a macro up for the other weapon slots you would just make the same macro but with every instance of 'weapon1' replaced with 'weapon2' through to 'weapon6'.

The critical damage is easy enough as you just double teh damage die resul which you can see by hovering over the result of the appropriate damage box.

Special attacks elaborate on existing macros but apply their own special rules as needed. Most DMs usee API based Power Cards (require Pro level subscription) to make special attacks look pretty but the macros used to calculate the attack, critical hit check, damage and critical damage remain the same and can be incorporated into a normal macro as with the previous examples:

Macros for Thieves Backstab:

Main Backstab Macro (depending how many weapons character has, 7 assumed)
(Set the main Backstab Macro as a token action, but not for the other backstab macros):
/w @{selected|token_name} &{template:default}{{name=BACKSTAB WEAPON}}{{[@{selected|weaponname}](!

&{template:2Eattack}{{title=@{selected|token_name} USES A @{selected|weapsize} SIZED @{selected|weaponname} TO BACKSTAB @{target|token_name}}}{{ac_hit=[[@{selected|ThAC0}-((D20?{BACKSTAB ATTACK ROLL MODIFIER|+4})+(@{selected|attackadj})+(@{selected|strengthhit}*@{selected|strbonus})+(@{selected|dexmissile}*@{selected|dexbonus}))]]}}{{dmg_s=[[((@{selected|damsm}) *@{selected|backstabmultiplier})?{BACKSTAB DAMAGE ROLL MODIFIER|+0}+(@{selected|damadj})+(@{selected|strengthdmg}*@{selected|strbonus})]]}}{{dmg_l=[[((@{selected|daml})*@{selected|backstabmultiplier})?{BACKSTAB DAMAGE ROLL MODIFIER|+0}+(@{selected|damadj})+(@{selected|strengthdmg}*@{selected|strbonus})]]}}{crit= }} {{fumble= }}

&{template:2Eattack}{{title=@{selected|token_name} USES A @{selected|repeating_weapons_$0_weapsize} SIZED @{selected|repeating_weapons_$0_weaponname} TO BACKSTAB @{target|token_name}}}{{ac_hit=[[@{selected|ThAC0}-((D20?{BACKSTAB ATTACK ROLL MODIFIER|+4})+(@{selected|repeating_weapons_$0_attackadj})+(@{selected|strengthhit}*@{selected|repeating_weapons_$0_strbonus})+(@{selected|dexmissile}*@{selected|repeating_weapons_$0_dexbonus}))]]}}{{dmg_s=[[((@{selected|repeating_weapons_$0_damsm}) *@{selected|backstabmultiplier})?{BACKSTAB DAMAGE ROLL MODIFIER|+0}+(@{selected|repeating_weapons_$0_damadj})+(@{selected|strengthdmg}*@{selected|repeating_weapons_$0_strbonus})]]}}{{dmg_l=[[((@{selected|repeating_weapons_$0_daml})*@{selected|backstabmultiplier})?{BACKSTAB DAMAGE ROLL MODIFIER|+0}+(@{selected|repeating_weapons_$0_damadj})+(@{selected|strengthdmg}*@{selected|repeating_weapons_$0_strbonus})]]}}{crit= }} {{fumble= }}

(each further backstab macro will be the same as BACKSTAB2 except the _$0_ will change to increment by 1 so BACKSTAB3 macro will use _$1_ and BACKSTAB7 will use _$5_)

The main change to the attack roll is that the flat footed armor class modifier has been incorporated using a query (technically this could be used in all attack rolls but adds an extra step that is easy enough to amend on the fly in game but since most sneak attacks will be against flat footed, or more accurately dex-modless, enemies is makes sense to add it in as an option). The damage uses the 'ceil' function (see dice reference) to calculate the damage multiplier based on the selected token players level. Again this is kept separate from the rest of the damage calculation as the multiplier only applies to the weapons base damage.


As with special attacks I like to use API based Power Cards for my spells, makes them look extra special. However the macro calculations can be extracted for general use. They can get quite complex as most spells do x amount of whatever every x levels or will generate x amount of whatever every x levels up to a maximum of x. Taking the time to really play around and familiarise yourself with the dice reference page can be a huge help in unravelling the weave.

The two main ones that teach the most lessons are cure light wounds and magic missile, some of the first spells an aspiring macro writer will encounter:

Cure Light Wounds
@{selected|token_name} heals @{target|token_name} for [[1d8+(@{selected|casterlevel},5)dh1]] hit points by divine energy. Undead are harmed for the same amount, or half the amount if a successful Will save of DC [[10+1+@{selected|wis-mod}]] is made.

Magic Missile
@{selected|token_name} shoots [[{d1*5, d1*ceil(@{selected|casterlevel}/2)}dh1}]] missiles from their fingertip dealing [[1d4+1]] damage per missile.

Notice the 'dh1', this tells the macro to drop the higher of two results which allows you to only produce the maximum result permitted by the spell. In the case of CLW it will only heal to a maximum of 1d8+5 even if your caster level is 6+. MM is a bit more complex as it needs to calculate an extra missile every 3 levels up to a maximum of 5. Using the ceiling of 1/2 of the caster level we can replicate the extra missile and by again using the drop highest function we can cap this at 5 missiles.

"Please note, my macros may look clunky to an advanced user but i've managed to pick these up within a couple of hours and to my mind, if it works I'm not going to keep messing with it!"


Some DMs find it useful to set up long description texts in a macro and put the name of the macro next to the room it is for.


/desc As You walk into the room, you all notice a few things at once. First, There is a giant pool covering half the room. Second, A rather large cave in in one corner. Finally, three lizard men are waiting for you. The Lizard men attack.

Another way of doing this is to put a token on the GM layer (a scroll token works well) in each room that has a description written out in one of the bars/bubbles (it is easiest to write out the description elsewhere, then copy/paste it into the bubble).

Then, use this macro:

/desc @{selected|bar1}

When the players get to the room, simply switch to GM layer, select the token holding the description, and hit the button for your description macro.


Say you run a version of the Defense Bonus variant where immaterial armor stacks with the Defense Bonus. You can't just use the @{selected|acitembonus} attribute to determine whether the Defense Bonus applies, but if you have a custom attribute for all creatures called "Is Wearing Physical Armor?", you can make it a boolean 1 or 0 depending on whether or not that's the case.

[[ @{selected|DefenseBonus}-(@{selected|DefenseBonus}*@{selected|Is Wearing Physical Armor?}) ]]

Admittedly, the formula could be made simpler if the attribute was "Is NOT Wearing Physical Armor".

[[ @{selected|DefenseBonus}*@{selected|Is NOT Wearing Physical Armor?} ]]

However, when looking at a character's attributes list it's easier to wrap your head around the logic of a "1" affirming a positive rather than affirming a negative.


Some API codes modify or use macros. Official API forum

Reference of Commonly Used Attributes

This is a quick reference of the names of Attributes on PC and NPC Sheets which are commonly used by DMs, and would be included in your Macros.

Player Character

D&D3.5E Name Attribute Name
HP hitpoints
AC armorclass
Touch AC touchac
Flat Footed flatac
Initiative init
Fortitude Save Bonus fortitude
Fortitude Save Macro fortitudemacro
Reflex Save Bonus reflex
Reflex Save Macro reflexmacro
Will Save Bonus will
Will Save Macro willmacro
Base Attack Bonus bab
Grapple Bonus grapple
Melee Attack Bonus meleeattackbonus
Ranged Attack Bonus rangedattackbonus
Size Modifier for Attack and AC size
Size Modifier for Special Attacks specialattacksizemod
Skill X (Replace X with the name) Xmacro
Hit Dice hitdie

Creators Note: Please add more or expand the Skills.

Note that most if not all attribute names can be found by mousing over the appropriate field on the character sheet.

NPC or Monsters

Note: There are a lot less automatic Macros in the abilities of NPC Sheets. Saves are just the modifiers by default.

D&D3.5E Name Attribute Name
HP npchitpoints
Hit Dice npchitdie
Fortitude Save npcfortsave
Reflex Save npcrefsave
Will Save npcwillsave
Grapple npcgrapple

AD&D 2nd Ed Roll Templates

The AD&D2e Character Sheet Template has several built-in Roll Templates.


Multiple roll templates can be combined in one macro if desired:


  • This section only really applies to a DM

Before you do anything else with a map, make sure you have the page settings right. Nothing is more annoying then making your map look all nice and neat and then realizing you made some critical mistake and have to start over. AD&D uses squares, so make sure you are in squares. Make it big to start with, making it smaller is easier than making it bigger. One unit is 5 ft (unless you really need to change it for some reason, 5 ft is best) and a 1 unit grid is best, with both grid color and background color depending on the map and the preference of both players and DM(some prefer no grid at all when playing but the grid really helps when hand drawing a map). Fog of War and Dynamic Lighting can wait until after you draw the map, but should be dealt with before your players see the map, as determined by play style and personal preference.

Now that that you have the major set up complete, a choice has to be made: hand draw in Roll20, import a drawing you make elsewhere, or use a drawing from online. If you pull a map from online or your library, you may need to align it and move it into position. Once you finish with your map, you now know how big it is. If you followed the earlier recommendation and made your space too big, after moving everything into place you now shrink it down to fit your actual map you are using (or just leave it too big to help confuse the players).

Characters and tokens

While each group is different on what they do for characters and tokens, A few things are standard. You will want a character page for each character. The DM will likely have a long list of NPC characters and might or might not share those with the players. If the DM shares the NPC pages, they can use the "GM notes" section to record info the players shouldn't know. Finally, you will likely benefit from setting a default token for each PC and NPC and attaching the bars (aka: the "bubbles") to a specific attribute. Remember that if you do not set a current and a max value, the bar will not to show up, but when you click on the token the "bubble" for its current value will still show.

Dynamic Lighting

You can find Advanced Dungeons and Dragons specific vision and lighting examples in the Dynamic Lighting Style Guide.


Some helpful people to ask for further help