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

Dungeons and Dragons 3.5

From Roll20 Wiki

Revision as of 14:38, 13 January 2015 by Ziechael (Talk | contribs)

Jump to: navigation, search

This page is about both playing an DMing (DM and GM are the same in D&D) Version 3.5 of D&D 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 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 D&D 3.5 on Roll20 are: (feel free to add any not included using existing as a guide)


AllPlayers 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 campaign 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}.

The above would return the result:
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.

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.

Attack Macro:
@{selected|token_name} attacks @{target|token_name} with their @{selected|weapon1name} rolling [[1d20]] + [[d0+@{selected|BAB}[BAB] +@{selected|weapon1stat}[Ability] +@{selected|size}[size] +@{selected|weapon1enh}[Weapon1 Enh] +@{selected|weapon1focus}[Weapon1 Focus] + ?{Flank (1=yes)|0}*2[Flank] +?{Other Att Bonus?|0} ]] (check for crit for @{selected|weapon1critmult}x damage on [[@{target|armorclass}]] or better; confirm crit = [[1d20+@{selected|BAB}[BAB] +@{selected|weapon1stat}[Ability] +@{selected|size}[size] +@{selected|weapon1enh}[Weapon1 Enh] +@{selected|weapon1focus}[Weapon1 Focus] + ?{Flank (1=yes)|0}*2[Flank] +?{Other Att Bonus?|0} ]]) against @{target|token_name}'s armor class of [[@{target|armorclass}]].

Returns a result of:
Ziechael attacks Goblin with their Long Sword rolling 14+7 (check for crit for 2x damage on 13 or better; confirm crit = 17) against Goblin's armor class of 13.

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'.

A similar macro can be used to determine damage (please note you need to input the weapon's damage as d4, d6, d8 etc into the 'damage' box of the weapon slot; overwriting the macro that exists there for these to work as you will use them in the lookups to allow these macros to work for any weapon), you can even tag this onto the previous macro to create one big roll out of data that can be picked as needed. I personally keep my damage separate as it can be devastating to see an attack miss that would have caused massive damage!

@{selected|token_name} hits for [[1@{selected|weapon1damage} +@{selected|weapon1damagestat}[Weapon1DamageStat] +@{selected|weapon1enh}[Weapon1 Enh] +@{selected|weapon1specialize}[Weapon1 Specialization] +?{Other Damage Bonus?|0}[Other Damage Bonus]]] damage!

Returns a result of:
Ziechael hits for 7 damage!

Again note that the macro asks the player to add any extra damage they may inflict, this can be temporary flaming weapons, racial bonus or any other damage modifier that isn't applicable to ALL damage rolls. You can even use this with a negative number to detract damage from the roll for enemies with damage reduction against certain damage types. As before, replace all 'weapon1' instances with the appropriate number for the weapon slot used for the attack that hit.

Critical damage works in much the same way but will incorporate a weapons damage multiplier for a given weapon:

@{selected|token_name} strikes mightily for [[(@{selected|weapon1critmult})@{selected|weapon1damage}]] + [[d0+(@{selected|weapon1damagestat}[Weapon1DamageStat] +@{selected|weapon1enh}[Weapon1 Enh] +@{selected|weapon1specialize}[Weapon1 Specialization])* @{selected|weapon1critmult}]] + [[d0+?{Other Damage Bonus?|0}[Other Damage Bonus]]] damage!

Returns a result of:
Ziechael strikes mightily for 12+4+0 damage!

The critical damage is set up to require some mental arithmetic to incorporate the 3.5 rules for critical hits. The multiplier only applies to base damage and doesn't multiply the weapons bonus damage or any 'other' bonus such as fire damage for a flaming sword. Again negative numbers can be used to reflect damage reductions.

Special attacks elaborate on existing macros but apply their own special rules as needed. I personally use API based power cards (require Mentor level subscription) to make my 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:

[[1d20 + @{selected|BAB}[BAB] +@{selected|weapon1stat}[Ability] +@{selected|size}[size] +@{selected|weapon1enh}[Weapon1 Enh] +@{selected|weapon1focus}[Weapon1 Focus] + (?{Flank (1=yes)|0}*2)[Flank] +?{Other Att Bonus?|0} ]] vs [[d0+(?{Flat Footed? (1=No)|0}*@{target|dex-mod} + @{target|flatac})]]

Critical hit check:
[[1d20 + @{selected|BAB}[BAB] +@{selected|weapon1stat}[Ability] +@{selected|size}[size] +@{selected|weapon1enh}[Weapon1 Enh] +@{selected|weapon1focus}[Weapon1 Focus] + ?{Flank (1=yes)|0}*2[Flank] +?{Other Att Bonus?|0} ]] vs [[(d0+?{Flat Footed? (1=No)|0}*@{target|dex-mod}) + @{target|flatac}]]

[[1@{selected|weapon1damage} + (d0 +@{selected|weapon1damagestat}[Weapon1DamageStat] +@{selected|weapon1enh}[Weapon1 Enh] +@{selected|weapon1specialize}[Weapon1 Specialization]) + (d0+?{Other Damage Bonus?|0}[Other Damage Bonus])]] + [[d1*ceil(@{selected|level}/2)@{selected|weapon1damage}]]

Critical damage:
[[(@{selected|weapon1critmult}@{selected|weapon1damage}) + (d0+@{selected|weapon1damagestat}[Weapon1DamageStat] +@{selected|weapon1enh}[Weapon1 Enh] +@{selected|weapon1specialize}[Weapon1 Specialization]* @{selected|weapon1critmult}) + (d0+?{Other Damage Bonus?|0}[Other Damage Bonus])]] + [[d1*ceil(@{selected|level}/2)@{selected|weapon1damage}]]

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.


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.


Some API codes modify or use macros. Official API forum


  • 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. D&D uses squares, so make sure you are in squares. In addition, 3.5 uses the pathfinder/3.5 diagonal measurement system. 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 will likely use the "GM notes" section to record info the players shouldn't know. Finally, you will likely benefit from setting a default token and attaching the bars (aka: the "bubbles") to a specific attribute. Remember that no max value causes a bar not to show up though the "bubble" for its current value will still show.

Dynamic Lighting

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