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

ADnD 2nd Edition Character sheet

From Roll20 Wiki

Revision as of 04:45, 22 February 2017 by Elena S. (Talk | contribs)

Jump to: navigation, search



Advanced 2nd Edition (Simple Sheet) Character Sheet guide is intended to help DMs and Players better understand the Roll20 AD&D 2nd Edition Character sheet. The sheet was originally created by Dylan G. based on work by Stephen S. Continuing development and improvements are being implemented by Elena S. (Elena S. Roll20). Many thanks are due to Dylan and Stephen for the wonderful character sheet that they created.

This sheet tries it's best to support all of the core AD&D 2nd Edition rules. Support for many of the optional rules from the various Complete Handbooks as well as the Player's Option series of books are also included as optional features. The sheet is actively supported by Roll20 volunteers. Please feel free to lend your support through, feedback, testing, suggestions, coding, and keeping this guide updated and helpful.

Please post questions, comments, suggestions, etc. on the most current forum thread at:
[Dungeons & Dragons - Advanced 2nd Edition (Simple Sheet)]

You can view the archived threads at:
No currently Archived Threads. This will be updated as necessary.

The latest community version of the sheet can be found on GitHub, AD&D_2E If you are using the community Second Edition sheet, any updates to the sheet will be pushed automatically.


Here are some frequently asked questions that often come up concerning the AD&D 2nd Edition Character Sheet.

Q: Can I set sheet values from a macro?

A: No, you must be a Pro member and use the API to set sheet or token values from macros. If a token bar is mapped to an attribute, setting the token will update the sheet, but it will not call any custom sheet code and update secondary fields.

Q: I found a problem and wonder if anyone else found it yet?

A: Go to the [AD&D 2nd Edition] AD&D 2nd Edition Forum Thread first to see if your issue is already being worked on. If you don't see it, follow the instructions in the next question:

Q: I found a bug, have a question, suggestion, need help, etc. regarding the AD&D 2nd Edition Character Sheet. What should I do?

A: The best resource regarding the sheet is to post to the [AD&D 2nd Edition] AD&D 2nd Edition Forum Thread within Roll20's Character Sheets forum. Please include as much detail as possible to help isolate the bug to expedite a fix.

Q: Why can't I adjust some of the fields on the sheet?

A: There are many auto-calculated attributes found on the sheet and are depicted as number fields with a gray background. While you can adjust the "sub" attributes used to calculate these fields, you cannot adjust auto-calculated attributes directly.

Q: How will users of the AD&D 2nd Edition sheet know when the sheet is updated?

A: You can always check the bottom of the character sheet to see the latest build date and to check for announcements of upcoming changes. Updates to the sheet will be pushed automatically.

Q: How do I make a (class ability, attack, feat, spell, inventory item, racial trait, trait) macro using a sheet roll?

A: Create a Macro/Ability that includes a button's name ie %{selected|button_name}. If you mouse-over the buttons it shows you what the button's name is. e.g.(To create a macro for weapon attack 0, include %{selected|repeating_weapon_$0_Attack} within your macro.) You can also drag and drop any repeating section/row button to the macro quick bar.

Q: How do I setup an animal companion or cohort or regularly summoned creature?

A: Create a new character in the campaign, and use a new sheet to record stats for your animal companion. You may find it easier to use the "NPC" tab which has a a small subset of all fields.

Q: What can I do if my sheet isn't updating some or all of the attributes?

A: Make sure you have entered the appropriate data. While the sheet does it's best to parse each field to allow only field appropriate data, illegal characters, malformed formula, etc. can cause the sheet to stop functioning. Try clearing the problematic field(s) or using "0" to see if that fixes the issue. Toggling selectors, entering a new/different value in a field, etc. can also help trigger auto-calculation. Please report any persistent issues to the AD&D 2nd Edition thread.

Roll Templates

Roll templates use a combination of html, css, and macro commands to format output to chat. While the HTML, CSS and sheet-roll button macros are written into the sheet, DM's and player's can utilize custom macros either within the macro-text found within the sheet or from ability macros used outside of the sheet. There are currently five different templates written into the AD&D 2nd Edition sheet: 2Edefault, 2Eattack, 2Echeck, 2Esave, and 2Espell.

Roll templates must declare the roll template used ie &{template:<template name>} and follow the syntax {{<propertyname>= <value>}} Property names that are defined within the roll template will follow the formatting and logic as given in the template.

2Edefault Properties

The header of the new 2Edefault template displays the same "name" property as the standard default template, and you can now optionally add a "subtitle" which will also display in the head of the template centered beneath the name in a reduced font size (8pt). To use the new subtitle property simply add {{subtitle = <value>}} to your macro.

The information displayed in the body of the template, as in the standard default template, uses the allprops() helper function with several specific exclusions. What all props does is allow you to create a custom property in a roll template by simply typing what it's called into the template. This typically looks like {{<user defined key> = <user defined value>}} The template then creates a table row with two columns in the template and displays the key on the left and the value on the right. You can create as many custom properties as you like! The specific exclusions in this new template are the predefined properties of desc, desc1, desc2. These will cause the template to display the value assigned to them in a single cell that spans both of the template columns, as well as reduce the font size slightly and align the text to the left. Since this template contains both the <name> and <allprops()> properties any macro you currently are using can be converted to use the new template styling by simply changing the template call from default to 2Edefault. That's it, your macro will now display using the new template to determine it's styling in chat.


Property/Key Description/Examples
{{name}} Name of your custom template.
{{ name = <Your New Template> }}
Add an optional subtitle to the template heading.
{{ subtitle = <Your Subtitle>}}
This works identically to the standard default template. You can create as many custom properties as you like.
{{ anyproperty=<Your Custom Property Value>}}
Add optional descriptive text.
{{desc=<desc value>}}
Add more optional descriptive text.
{{desc1=<desc1 value>}}
Add even more optional descriptive text.
{{desc2=<desc2 value>}}

2Edefault example

&{template:2Edefault}{{name=<Your New Template>}}{{subtitle=<Your Subtitle>}}{{anyproperty=<Your Custom Property Value>}}{{desc=<desc value>}}{{desc1=<desc1 value>}}{{desc2=<desc2 value>}}

2Eattack Properties

This is a graphical template used to resolve attacks in one simple display. It includes properties to display who is making the attack, the target of the attack, what weapon was used, the AC that the attack will successfully hit, and damage vs both Small/Medium targets and Large targets. It also includes support for custom critical hit damage.


Property/Key Description/Examples
{{title}} Name of the Attacker
{{ title=@{selected|token_name} makes an Attack! }}
{{subtitle}} Who/what the attack targets
{{ subtitle=vs. @{target|token_name} }}
{{weapon_used}} What weapon is being used for the attack
{{weapon_used=@{selected|weaponname} }}
{{ac_hit}} Enter the roll formula for determining the AC hit as an inline roll
{{ ac_hit=[[@{selected|ThAC0}-(1d20+(@{selected|attackadj})+(@{selected|strengthhit}*@{selected|strbonus})+(@{selected|dexmissile}*@{selected|dexbonus})+(?{Misc. attack bonus|+0}))]] }}
{{dmg_s}} Enter the roll formula for determining normal damage vs a Small/Medium target as an inline roll.
{{ dmg_s=[[(@{selected|damsm}+(@{selected|strengthdmg}*@{selected|strbonus})+(@{selected|damadj}))?{Misc Damage Adjustment?|+0}]] }}
{{dmg_l}} Enter the roll formula for determining normal damage vs a Large target as an inline roll.
{{ dmg_l=[[(@{selected|daml}+(@{selected|strengthdmg}*@{selected|strbonus})+(@{selected|damadj}))?{Misc Damage Adjustment?|+0}]] }}
{{crit_s}} Enter the roll formula for determining critical damage vs a Small/Medium target as an inline roll.
{{ crit_s=[[(@{selected|damsm}+(@{selected|strengthdmg}*@{selected|strbonus})+(@{selected|damadj}))?{Misc Damage Adjustment?|+0}]] }}
{{crit_l}} Enter the roll formula for determining critical damage vs a Large target as an inline roll.
{{ crit_l=[[(@{selected|daml}+(@{selected|strengthdmg}*@{selected|strbonus})+(@{selected|damadj}))?{Misc Damage Adjustment?|+0}]] }}
Add special text for critical hit results.
{{ crit= }}
Add special text for fumble results.
{{ fumble= }}

2Eattack example:

&{template:2Eattack}{{title=@{selected|token_name} makes an Attack!}}{{subtitle=vs. @{target|token_name} }}{{weapon_used=@{selected|weaponname} }}{{ac_hit=[[@{selected|ThAC0}-(1d20+(@{selected|attackadj})+(@{selected|strengthhit}*@{selected|strbonus})+(@{selected|dexmissile}*@{selected|dexbonus})+(?{Misc. attack bonus|+0}))]]}}{{dmg_s=[[(@{selected|damsm}+(@{selected|strengthdmg}*@{selected|strbonus})+(@{selected|damadj}))?{Misc Damage Adjustment?|+0}]]}}{{dmg_l=[[(@{selected|daml}+(@{selected|strengthdmg}*@{selected|strbonus})+(@{selected|damadj}))?{Misc Damage Adjustment?|+0}]]}}{{crit_s=[[(@{selected|damsm}+(@{selected|strengthdmg}*@{selected|strbonus})+(@{selected|damadj}))?{Misc Damage Adjustment?|+0}]]}}{{crit_l=[[(@{selected|daml}+(@{selected|strengthdmg}*@{selected|strbonus})+(@{selected|damadj}))?{Misc Damage Adjustment?|+0}]]}}{{crit=Immediately make another attack as a free action!}}{{fumble=Your weapon flies from your hand landing [[2d6]] ft from you.}}

2Echeck Properties

This template is used to perform Ability, Proficiency, and Rogue Skill checks. It uses logic built into the template to determine success or failure based on the information provided in the macro calling it.


Property/Key Description/Examples
{{checkvs}} Displays what attribute, proficiency, or skill is being checked against.
{{ checkvs = Strength }}
{{character}} Displays the name of the character performing the check.
{{ character = @{selected|token_name} }}
{{checkroll}} This property defines what to roll for the check being made. This should be entered as an inline roll.
{{ checkroll = [[d20cf20cs1?{Situational Modifier?|+0}]] }}
{{checktarget}} This will determine the target number of the ability, proficiency, or skill check. This should be entered as an inline roll.
{{ checktarget=[[@{selected|Strength}]] }}

2Echeck example:

&{template:2Echeck} {{ checkvs = Strength }}{{ character = @{selected|token_name} }}{{ checkroll = [[d20cf20cs1?{Situational Modifier?|+0}]] }}{{ checktarget = [[@{selected|Strength}]] }}

2Esave Properties

This template works in a similar manner as the checks template. It uses the values for the roll result and the target number based on the macro input. It performs a logical comparison to determine whether the saving throw is a success or failure and clearly displays the result, showing both the relevant target number and roll result for verification.


Property/Key Description/Examples
{{savevs}} Displays what type of saving throw is being made.
{{ savevs = Spells }}
{{character}} Displays the name of the character making a saving throw.
{{ character = @{selected|token_name} }}
{{saveroll}} This property defines what to roll for the saving throw. This should be entered as an inline roll.
{{ saveroll = [[d20?{Situational Modifier?|+0}+@{selected|spmod}]] }}
{{savetarget}} This will determine the target number of the Saving Throw. This should be entered as an inline roll.
{{ savetarget=[[@{selected|sptar}]] }}

2Esave example:

/w gm &{template:2Esave}{{savevs=Spells}}{{character=@{selected|token_name}}}{{savetarget=[[@{selected|sptar}]]}}{{saveroll=[[d20?{Situational Modifier?|+0}@{selected|spmod}]]}}

2Espell Properties

Additional Resources