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

Personal tools

Difference between revisions of "Roll Templates"

From Roll20 Wiki

Jump to: navigation, search
(Using Roll Templates)
m (D&D 5E by Roll20)
 
(111 intermediate revisions by 28 users not shown)
Line 1: Line 1:
Roll Templates are a special facet of the Character Sheets system which provide additional layout and styling options for the dispay of roll results.
+
{{revdate}}
 
+
Roll Templates are a special facet of the [[Character Sheets]] system which provide additional layout and styling options for the display of roll results.
==Using Roll Templates==
+
[[File:Roll template default example2.JPG|right|thumb|350px|The output of a '''default template''' used in {{Text Chat}}]]
 
+
=Using Roll Templates=
If you're using a Character Sheet, there's a really good change you'll use a Roll Template just by clicking the roll button on the sheet, or by calling a sheet roll in a macro or ability. '''You don't have to do anything extra to do this, it's already set up for you in advance by the sheet author.'''
+
{{NavMacroDocs}}
 +
If you're using a Character Sheet, there's a really good chance you'll use a Roll Template just by clicking the roll button on the sheet, or by calling a sheet roll in a macro or ability. '''You don't have to do anything extra to do this, it's already set up for you in advance by the sheet author.'''
  
 
If you're interested in using Roll Templates in your own custom macros or creating your own custom templates, read on further.
 
If you're interested in using Roll Templates in your own custom macros or creating your own custom templates, read on further.
  
Using a roll template is very easy. Just include a special flag in your chat message which tells Roll20 that you want to use a Roll Template, and then provide all of the data that you want to include. Here's an example that uses the "default" template (which all games have access to, regardless of the game system or character sheet you are using):
+
Using a roll template is pretty easy. Just include a special flag in your chat message which tells Roll20 that you want to use a Roll Template, and then provide all of the data for the rolls and info that you want to include inside <code><nowiki>{{ }}</nowiki></code>-sections . Here's an example that uses the "default" template (which all games have access to, regardless of the game system or character sheet you are using):
  
<pre>
+
<pre style="overflow:hidden;white-space:pre-wrap">
&{template:default} {{rollname=Test Attack}} {{attack=[[1d20]]}} {{damage=[[2d6]]}}
+
&{template:default} {{name=Test Attack}} {{attack=[[1d20]]}} {{damage=[[2d6]]}}
 
</pre>
 
</pre>
  
The &{template:<template_name>} is the part that tells the system to use a Roll Template, and specifies the name of the template you want to use. Then you just provide all the data for the template in the format {{<propertyname>= <value>}}. The "propertyname" that you should use depends on the template -- the Character Sheet documentation should let you know what's available, and we've provided documentation on all of the built-in templates below. "Value" can be either text or an inline roll, including macros, abilities, etc. Note that if you use a macro or ability, it must be an inline roll, not a "/roll" command.
+
[[File:Roll template default example.JPG||left]]
 +
The <code>&{template:<template_name>}</code> is the part that tells the system to use a Roll Template, and specifies the name of the template you want to use. Then you just provide all the data for the template in the format <code><nowiki>{{<propertyname>= <value>}}</nowiki></code>. The <code>propertyname</code> that you should use depends on the template, and sometimes can be whatever you want -- the Character Sheet documentation should let you know what's available(or you can take a look at existing macros and see how they are structured), and we've provided documentation on all of the built-in templates below. <code>Value</code> can be either text or an [[Inline Roll|inline roll]], including macros, abilities, etc. Note that if you use a macro or ability, it must be an inline roll, and not a <code>/roll</code> command.
  
Here's an example that uses a "%{Character|attack}" ability:
+
{{orange| Macros for roll templates are sensitive to leading spaces, so '''<code><nowiki>{{name=Dexterity}}</nowiki></code>''' will work, but  '''<code><nowiki>{{ name=Dexterity}}</nowiki></code>''' won't. }}
  
<pre>
+
Here's an example that uses a <code>%{Character|attack}</code> ability:
&{template:default} {{rollname=Test With Ability}} {{attack= %{Character_Name|attack} }} {{damage= #damagemacro }}
+
</pre>
+
 
+
'''When Can I Use Roll Templates?'''
+
 
+
You can use a Roll Template in general messages (without a command like "/desc" or "/emote") and whispers. You can't use roll templates with the "/roll" command; instead, Roll Templates are meant to be used with inline rolls. As long as they use inline rolls, you can use Roll Templates with macros, Character Abilities, and sheet authors can use them inside of their Roll Buttons on sheets.
+
 
+
==Built-In Roll Templates==
+
 
+
The following roll templates are built-in to Roll20 and can be used in any game.
+
 
+
'''Default'''
+
 
+
To use the default template, use "&{template:default}".
+
 
+
{| class="wikitable"
+
|-
+
! Property !! Expected Value
+
|-
+
| rollname || The name of the roll, shown in the header of the roll listing
+
|-
+
| attack || The attack roll
+
|-
+
| attackadvantage || For systems that have advantage (such as 5E), the second attack roll. Will be shown next to the first attack roll.
+
|}
+
 
+
==Creating a Roll Template==
+
 
+
If you are a '''Sheet Author''', you can include as many roll templates as you want in your Character Sheet HTML and CSS. We'll let you know how below.
+
 
+
If you are a '''Mentor''', you can create your own Roll Templates if you are using the "Custom" character sheet option with your game. Follow the instructions below.
+
 
+
===Defining the Layout of the Roll Template===
+
  
The first step in creating a Roll Template is defining the layout, including what properties you are going to make available to be filled in by player. Roll Templates are just HTML, and you have access to all the same HTML as any other part of a Character Sheet (including <code>div</code> and <code>table</code>). Here's an example of the layout of a Roll Table:
+
<pre style="overflow:hidden;white-space:pre-wrap">
<pre>
+
&{template:default} {{name=Test With Ability}} {{attack= %{Character_Name|attack} }} {{damage= #damagemacro }}
<div class='sheet-rolltemplate-test'>
+
    <table>
+
<tr><th>{{rollname}}</th></tr>
+
<tr><td><span class="tcat">Attack: </span>{{attack}} | {{attackadvantage}} vs AC</td></tr>
+
{{#damage}}
+
<tr>
+
<td><span class="tcat">Damage: </span>{{damage}} <span class="tcat">Crit: </span>{{dmgcrit}}</td>
+
</tr>
+
<tr>
+
<td><span class="tcat">Type: </span>{{dmgtype}}</td>
+
</tr>
+
{{/damage}}
+
<tr>
+
<td><span class="tcat">Effect: </span>{{atteffect}}</td>
+
</tr>
+
    </table>
+
</div>
+
 
</pre>
 
</pre>
  
Your template should have a <code>div</code> with a class of "sheet-rolltemplate-<template_name>". "template_name" is the same name that will be used in the &{template:<template_name>} portion of the command, and should not contain spaces.  You can put the roll template anywhere you want in your Character Sheet's HTML, but we recommend putting it at the very end. It will automatically be "removed' from your template so it isn't shown as part of the sheet in the Character view.
+
==When Can I Use Roll Templates?==
 +
Which rolltemplates that are available in your game, is dependent on what [[CS|character sheet]] template is used in your game, as rolltemplates are coded into character sheets.
  
After that, it's up to you to decide how to structure your roll. We recommend a table layout, but it's up to you.  
+
For example, to use the <code>&{template:simple}</code> template that is used on the [[D&D 5E by Roll20]] sheet for Ability & Skill rolls, you need to have that sheet template in your game, or it won't work. See [[D%26D_5e_by_Roll20_Roll_Templates#Simple|D&D 5E simple template]] for more.
  
Inside of the template, you have access to following:
+
You can use a Roll Template in general messages (without a command like <code>/desc</code> or <code>/emote</code>) and whispers. You can't use roll templates with the <code>/roll</code> command; instead, Roll Templates are meant to be used with inline rolls. As long as they use [[Inline Rolls|inline rolls]], you can use Roll Templates with macros, Character Abilities, and [[Sheet Author|sheet authors]] can use them inside of their [[Button#Roll Button|Roll Buttons on character sheets]].
  
'''Properties'''
+
==Examples of Roll Templates==
 +
Here are some examples of roll different templates. Only the '''default''' template is available in any game, the others can be used if the corresponding sheet is used in your [[campaign]].
  
You can include any property you'd like by using the double-curly-braces. So {{myproperty}} would output whatever (inline roll, text. etc.) is given to the template via {{myproperty=<value>}} in the roll. To create a new property, just add it to your template and give it a unique name. Again, avoid the use of spaces to ensure maximum compatibility with all helper functions.
+
===Default===
 +
{{main|Default Roll Template}}
 +
{{:Roll Templates/Default}}
  
'''Logic'''
+
===D&D 5E by Roll20===
 +
{{main|D&D 5e by Roll20 Roll Templates}}
  
If you do <code>{{#<property>}}</code> followed by <code>{{/<property>}}</code>, all of the parts between those two tags will only be shown if the property contains a value. This can be useful for providing several different parts to a template which may only be used some of the time. For example, the "Effect" part of a roll may only apply to spells, so if the roll doesn't provide an effect, that section will not be shown.
+
The [[D&D 5E by Roll20]]-character sheet has 10 built in roll templates.
  
You can also do <code>{{^<property>}}</code> followed by <code>{{/propety}}</code> to mean the opposite -- that is, only show the section if the given property does not exist.
+
{{ex}}
 +
[[File:5e-rolltemplate-ex1-2021.png|200px|right|none]]
 +
Rolls stealth for selected npc token, using its stealth proficiency. Using the <code>&{template:npcatk}</code> template from it.
 +
<pre>/w gm &{template:npcatk} {{attack=1}} {{name=Shadow}} {{rname=Shadow Stealth}} {{rnamec=Hide}} {{r1=[[@{selected|d20}+@{selected|npc_stealth} + 6]]}} {{always=1}} {{r2=[[@{selected|d20}+@{selected|npc_stealth} + 6]]}} {{description=While in dim light or darkness, the shadow can take the Hide action as a bonus action. Its stealth bonus is **also** improved to +6 }}</pre>
  
'''Helper Functions'''
+
===Pathfinder by Roll20===
 +
{{main|Pathfinder by Roll20/Roll Templates}}
  
There are several helper functions dealing with rolls provided as well. You use these just like the normal Logic pattern above, but you are calling a function and providing a property. The section contained between the tags will only be shown if the function evaluates to true.
+
The [[Pathfinder by Roll20]] character sheet has two different templates, one for PC (<code>&{template:pc}</code>) and one for NPC (<code>&{template:npc}</code>), that individually handles every types of roll.
  
{| class="wikitable"
+
They share mostly the same fields but are styled differently, and the NPC template handles attacks slightly differently. Otherwise, they generally can be used indifferently for macro purpose.
|-
+
! Helper Function !! Shows Section If
+
|-
+
| <code>{{rollWasCrit() <rollname>}}</code> || If the provided roll contains any crits, the section will be shown. For example, <code>{{rollWasCrit() attack}}</code> would check the "attack" property for an inline roll that has at least one critical roll.
+
|-
+
| <code>{{rollWasFumble() <rollname>}}</code> || Same as rollWasCrit(), but checks for any fumbles (rolls of 1).
+
|-
+
| <code>{{rollTotal() <rollname>}}</code> || Checks the total of an inline roll for the value. If they match, the section is shown. For example, <code>{{rollTotal() attack 10}}</code> would check the "attack" property for an inline roll that totaled 10.
+
|}
+
  
Note: All helper functions will only check the first inline roll found in a property.
+
[[File:PF wiki Template.jpeg|framed|right]]
 +
Example with PC template:
 +
<pre style="overflow:auto;white-space:pre-wrap;">&{template:pc} {{showchar=[[1]]}} {{charname=charname}} {{name=name}} {{type=ability}} {{roll=roll}} {{descflag=1}} {{desc=desc}} {{shownotes=[[1]]}} {{notes=notes}}</pre>
  
'''Important:''' When you "close" the section of a helper function, you must put the entire function call including all arguments. For example, <code>{{rollWasCrit() attack}}</code> would be closed by <code>{{/rollWasCrit() attack}}</code>.
+
=Creating a Roll Template=
 +
''Main Page:'' '''[[Building Character Sheets/Roll_Templates]]'''
  
Heres's an example roll template that would only show its Critical Damage section if the Attack roll is a crit:
+
You can create & use custom Roll Templates by [[Building Character Sheets|Editing/Building Character Sheets]], as they are a part of the Character Sheet's code.
  
<pre>
+
The main page details what parts & features goes into creating a roll template, along with showing the code for a number of existing Roll Templates.
    <table>
+
<tr><th>{{rollname}}</th></tr>
+
<tr><td><span class="tcat">Attack: </span>{{attack}}</td></tr>
+
<tr>
+
<td>
+
                              <span class="tcat">Damage: </span>{{damage}}
+
                              {{rollWasCrit() attack}}
+
                              <span class="tcat">Crit: </span>{{dmgcrit}}
+
                              {{/rollWasCrit() attack}}
+
                        </td>
+
</tr>
+
</table>
+
</pre>
+
  
===Styling Roll Templates===
+
= See Also =
 
+
* '''[[Complete Guide to Macros & Rolls‎]]'''
To style a Roll Template, just include CSS for it in the CSS for your Character Sheet. Here's a quick example that should give you a good idea of how to do it (in this example, the roll template's name is "customtest"):
+
** {{Text Chat}} - where the roll results appear, & info on the common chat commands
 
+
** [[Dice Reference]] - Comprehensive list of how the Roll20 dice-rolling syntax works, and list the features available
<pre>
+
** [[Macros]] - How to create macros, and other info on how the Roll20 <span style="font-family:Pictos;">q</span>Text Chat works, like referencing stats on character sheets, roll queries, nesting macros & initiative
.sheet-rolltemplate-customtest table {
+
*** [[Reusing_Rolls#Rolltemplate_Helper_functions|Reusing Rolls in Roll Templates]]
    width: 100%;
+
** [[Roll Templates]] - a method of formatting roll results in the chat, with some extra functions
border: 1px solid;
+
** [[API]]''({{Pro}} Only)'' - API commands can be used in the <span style="font-family:Pictos;">q</span>Text Chat
color: black;
+
* [[BCS|Building Character Sheets]]
font-size: 1em;
+
** [[Building Character Sheets/Roll Templates|Creating Roll Templates]]
font-family: "Helvetica Neue", Helvetica, sans-serif;
+
** [[Sheet Author Tips]] More advanced tips for creating/maintaining sheets, workflow, & useful tools
}
+
** [[Custom Sheet Sandbox|Sheet Sandbox]] – the better editor to use when you code your character sheets
 
+
* {{hc|articles/360037257334-How-to-Make-Roll-Templates Official version of this page}} - Often lacking compared to any pages on sheet development on the community wiki
.sheet-rolltemplate-customtest th {
+
<br>
background-color: rgba(112, 32, 130,1);
+
<br>
color: #ffffff;
+
padding: 2px;
+
border-bottom: 1px solid black;
+
line-height: 1.6em;
+
font-size: 1.2em;
+
font-family: "Georgia", serif;
+
text-shadow: 1px 0 0 #000, 0 -1px 0 #000, 0 1px 0 #000, -1px 0 0 #000;
+
}
+
 
+
.sheet-rolltemplate-customtest .userscript-tcat {
+
font-weight: bold;
+
}
+
 
+
.sheet-rolltemplate-customtest td {
+
padding: 5px;
+
border-bottom: 1px solid black;
+
}
+
 
+
.sheet-rolltemplate-customtest tr:nth-child(odd) {
+
background-color: rgba(217, 217, 214,1);
+
}
+
 
+
.sheet-rolltemplate-customtest tr:nth-child(even) {
+
background-color: rgba(233, 233, 233,1);
+
}
+
 
+
.sheet-rolltemplate-customtest .inlinerollresult  {
+
display: inline-block;
+
min-width: 1.5em;
+
text-align: center;
+
border: 2px solid rgba(167, 168, 170,1); /*Cool Gray 6 C*/
+
}
+
 
+
.sheet-rolltemplate-customtest .inlinerollresult.fullcrit {
+
border: 2px solid #3FB315;
+
}
+
 
+
.sheet-rolltemplate-customtest .inlinerollresult.fullfail {
+
border: 2px solid #B31515;
+
}
+
 
+
.sheet-rolltemplate-customtest .inlinerollresult.importantroll {
+
border: 2px solid #4A57ED;
+
}
+
</pre>
+
  
Notice that all of the styles begin with ".sheet-rolltemplate-<templatename>". You can then style your own custom HTML (such as the tables, divs, and classes that you used). Note that any classes you include in your roll template layout (such as "tcat" in the above example) will have ".userscript-" added to the beginning of them for security reasons. The easiest thing to do is to create your layout, then perform a roll in-game and inpect the resulting HTML so you can make sure you are accounting for any security filtering that is taking place.
+
[[Category:Docs]]
 +
[[Category:Macros]]
 +
[[Category:Roll Templates]]
 +
[[Category:Character Sheets]]

Latest revision as of 00:08, 11 January 2023

Roll Templates are a special facet of the Character Sheets system which provide additional layout and styling options for the display of roll results.

The output of a default template used in q Text Chat

Contents

[edit] Using Roll Templates

If you're using a Character Sheet, there's a really good chance you'll use a Roll Template just by clicking the roll button on the sheet, or by calling a sheet roll in a macro or ability. You don't have to do anything extra to do this, it's already set up for you in advance by the sheet author.

If you're interested in using Roll Templates in your own custom macros or creating your own custom templates, read on further.

Using a roll template is pretty easy. Just include a special flag in your chat message which tells Roll20 that you want to use a Roll Template, and then provide all of the data for the rolls and info that you want to include inside {{ }}-sections . Here's an example that uses the "default" template (which all games have access to, regardless of the game system or character sheet you are using):

&{template:default} {{name=Test Attack}} {{attack=[[1d20]]}} {{damage=[[2d6]]}}
Roll template default example.JPG

The &{template:<template_name>} is the part that tells the system to use a Roll Template, and specifies the name of the template you want to use. Then you just provide all the data for the template in the format {{<propertyname>= <value>}}. The propertyname that you should use depends on the template, and sometimes can be whatever you want -- the Character Sheet documentation should let you know what's available(or you can take a look at existing macros and see how they are structured), and we've provided documentation on all of the built-in templates below. Value can be either text or an inline roll, including macros, abilities, etc. Note that if you use a macro or ability, it must be an inline roll, and not a /roll command.


Here's an example that uses a %{Character|attack} ability:

&{template:default} {{name=Test With Ability}} {{attack= %{Character_Name|attack} }} {{damage= #damagemacro }}

[edit] When Can I Use Roll Templates?

Which rolltemplates that are available in your game, is dependent on what character sheet template is used in your game, as rolltemplates are coded into character sheets.

For example, to use the &{template:simple} template that is used on the D&D 5E by Roll20 sheet for Ability & Skill rolls, you need to have that sheet template in your game, or it won't work. See D&D 5E simple template for more.

You can use a Roll Template in general messages (without a command like /desc or /emote) and whispers. You can't use roll templates with the /roll command; instead, Roll Templates are meant to be used with inline rolls. As long as they use inline rolls, you can use Roll Templates with macros, Character Abilities, and sheet authors can use them inside of their Roll Buttons on character sheets.

[edit] Examples of Roll Templates

Here are some examples of roll different templates. Only the default template is available in any game, the others can be used if the corresponding sheet is used in your campaign.

[edit] Default

Main Page: Default Roll Template


The Default Roll Template is available in all Roll20. You don't have to even have a character sheet template selected for your game to use it.


Property Expected Value
name The name of the roll, shown in the header of the roll listing. (If not used in a roll, the header will appear at the top of the roll template as a purple bar with no text.)
(anything) You can have any number of rows with any name you want, making the template somewhat flexible. The "property" name will be bold.

The default template is special, and will list out whatever argument you give it in a table. It will put in the middle of the purple header anything you define in the {{name= }} section, and then with every subsequent {{ }} segment, it will alternate with white & gray background.

If a = is used in the {{ }} rows, the roll template will align the = in the middle, and all rows will have the = in the same spot. If any row have lots of more text/content on either side of the =, it will be pressed to the side of the template for all rolls.


Example:

&{template:default} {{name=Test Attack}} {{attack=[[1d20+3]]}} {{note= This is some note content}} {{Saving Throw= vs Will}}

Roll template default example2.JPG

Notice that the content of the roll template is pressed to the left side, due the text segment on the Note-row. If that segment is removed, the content of the remaining rows will be closer to the center.

Here is a fairly close example of the default template's HTML& CSS with it's dependent CSS classes. If you intend to make your own roll template, or want to start from the default template, the best idea is to start with the code from Jakob's Better Default Template.

[edit] Examples

Some more examples using the default roll template. These should give more examples on how they can be used.


Roll template rolls that has inline labels, which will make it easier to look at the roll breakdown(when you hover your mouse over the result).

&{template:default} {{name=Mage Bolt}} {{attack=[[1d20+3[int]+2[proficiency] ]]}} {{Damage= [[3d6[base dmg]+3[int mod]+1d8[Elder Wand bonus] force dmg]]}} {{DC [[14]] Will Save= The enemy must make the save, or take an extra [[1d8]] fire dmg. }}

You can have rolls on both sides of the =

&{template:default} {{name=Greatsword of the Nomads}} {{attack= has advantage, pick higher result}} {{[[1d20+4]]=[[1d20+4]]}} {{Damage= [[2d6+2]]}} {{If critical= Apply only if attack is critical}} {{Crit damage= deals [[2d6]] more on crit}} {{Special Crit= The Greatsword of the Nomads deals on crit an extra [[1d8]] radiant damage, and the defender needs to make a DC [[14]] Con save or gain a level of exhaustion}}

Several attacks at a time

&{template:default} {{name=Fist of Fury}} {{Attack1= [[1d20+5]]}} {{Damage1= [[1d6+3]]}} {{Attack2= [[1d20+5]]}} {{Damage2= [[1d6+3]]}} {{Offhand= [[1d20+4]]}} {{Damage1= [[1d4+3]]}}

Short Rest Macro

It asks you how many to spend & what hit dice to use, and displays how much was recovered as well as how many where spent(using the Reusing Rolls-trick).

&{template:default} {{name=Short Rest}} {{Recover=  You heal [[ [[?{How many hit dice do you spend?|1}]]?{What's your Hit dice?|d4|d6|d8|d10|d12} ]] hit points, having spent $[[0]] of their hit dice.}}

Show Token info

Select a token on the map, and call this macro to get info on the token. If the token represents a character, it will show it's character_id & character_name, otherwise just show "selected|character_id" & "selected|character_name" if they are missing.

&{template:default} {{name=Token Info }} {{TokenID=@{selected|token_id} }} {{CharacterID=@{selected|character_id} }} {{TokenName=@{selected|token_name} }} {{characterName=@{selected|character_name} }} {{Bar1=@{selected|bar1} / @{selected|bar1|max} }} {{Bar2=@{selected|bar2} / @{selected|bar2|max} }} {{Bar3=@{selected|bar3} / @{selected|bar3|max} }} &{error}


[edit] D&D 5E by Roll20

Main Page: D&D 5e by Roll20 Roll Templates

The D&D 5E by Roll20-character sheet has 10 built in roll templates.


Example:

5e-rolltemplate-ex1-2021.png

Rolls stealth for selected npc token, using its stealth proficiency. Using the &{template:npcatk} template from it.

/w gm &{template:npcatk} {{attack=1}} {{name=Shadow}} {{rname=Shadow Stealth}} {{rnamec=Hide}} {{r1=[[@{selected|d20}+@{selected|npc_stealth} + 6]]}} {{always=1}} {{r2=[[@{selected|d20}+@{selected|npc_stealth} + 6]]}} {{description=While in dim light or darkness, the shadow can take the Hide action as a bonus action. Its stealth bonus is **also** improved to +6 }}

[edit] Pathfinder by Roll20

Main Page: Pathfinder by Roll20/Roll Templates

The Pathfinder by Roll20 character sheet has two different templates, one for PC (&{template:pc}) and one for NPC (&{template:npc}), that individually handles every types of roll.

They share mostly the same fields but are styled differently, and the NPC template handles attacks slightly differently. Otherwise, they generally can be used indifferently for macro purpose.

PF wiki Template.jpeg

Example with PC template:

&{template:pc} {{showchar=[[1]]}} {{charname=charname}} {{name=name}} {{type=ability}} {{roll=roll}} {{descflag=1}} {{desc=desc}} {{shownotes=[[1]]}} {{notes=notes}}

[edit] Creating a Roll Template

Main Page: Building Character Sheets/Roll_Templates

You can create & use custom Roll Templates by Editing/Building Character Sheets, as they are a part of the Character Sheet's code.

The main page details what parts & features goes into creating a roll template, along with showing the code for a number of existing Roll Templates.

[edit] See Also