Modules/Addons/ ArtPacks/Compendiums

These are general guidelines that will help you get started creating modules for the Roll20 Marketplace. Whether you are using your own home-brewed game or creating modules on behalf of a publisher, using licensed content, there are best practices that should be followed for higher-quality content and a better user experience. If you have any questions that aren't answered here, please don't hesitate to contact us.

What Goes Into a Module

Modules are complete adventure campaigns, laid out in full in Roll20. They should utilize the Roll20 platform to the fullest:

  • All adventure text should be organized into Handouts
  • Link between Handouts whenever possible: for example, you can link a character’s name in a Handout, to pull up that Character Entry.
  • Maps should be aligned to the grid
  • Maps, tokens, and other information should be layered: when possible, GM information (such as trap doors and additional notes) should be scrubbed from the map background and re-created on the GM Info Overlay
  • Encounters should be laid out, with enemy and NPC tokens placed as described in the adventure text
  • Tokens should be linked to a Character entry in the Journal; enemy and NPC Character entries should have a filled-out Character Sheet.
  • While not required, using advance features such as Dynamic Lighting on maps will increase the value of the module. Depending on the game and what you wish to accomplish, you can also explore using additional Roll20 tabletop features such as Rollable Tables, Jukebox, custom Card Decks, etc.

Payment & Distribution

The Roll20 Marketplace exists as a distribution center, promoting professional level content. You retain ownership of your content and receive 70% of all sales (with the remaining 30% going to Roll20 for distributing, advertising, and hosting the content, along with handling all credit card transaction fees).

How to Get Started

Learn how to use the Roll20 tabletop to the fullest! If you’re new to Roll20, the best way to learn about the many features available is to take our tutorial.

Licensing & Copyright

Many game systems have Open Game Licenses that grant permission to creators to modify, copy, and redistribute some of the content designed for the games, notably game mechanics. In some cases, you will be required to request a license or other specific permission to use game-related content in a module you sell for profit. Research and awareness of what is covered in any game’s OGL, or additional legal requirements, is the responsibility of the creator.


If you wish to collaborate with an artist to create unique custom tokens for your module, this is absolutely encouraged. Fees and other payment for such commissions must be decided and executed between the module creator and the artist.

All content released on Roll20 must be wholly original. Any content that features another person's work without their knowledge and approval is prohibited. This includes free content you find on forums or anywhere else online.

Regarding content (textures, programs you use, etc) you acquire from a website, company, or any other source: you must be certain you hold the proper license to release such content for profit. For example, many sites that offer textures for artwork creation require you to purchase an "extended license" if you are planning to modify the image and use it in a product you sell for profit. It is the Creator's responsibility to attain these licenses. We stress these issues to protect all Creators from legal issues and copyright infringement.

A Note About Working with Publisher Graphics

Images provided by a publisher are typically designed for print which uses a different color system (CMYK) and a far higher print resolution (~300 PPI/DPI) than what is needed for web content. Leaving the resolution that high and keeping the CMYK color system puts a lot of stress on an individual user's bandwidth to download every single graphic that's displayed on the Roll20 tabletop. This can cause undesirable lag when playing the module. Images uploaded to Roll20 should be converted over to the RGB color system and their resolution should be downgraded to 72 PPI/DPI. You also may want to adjust the color balance and intensity as well as image contrast. Designing for print requires you to tone down on colors and contrast for an image to print as desired. These images may look very drab and muted on a monitor without a necessary touch up.

Image Presets

  • Any Image that Requires Transparency (Tokens, GM Layer labels, trap icons, etc.): 72 DPI/PPI, RGB Color, PNG file type
  • Any Image that DOES NOT Require Transparency (Handout images, battle maps, Character portraits, etc.): 72 DPI/PPI, RGB Color, JPG file type, each grid square should be 140 x 140 pixels in size

Game Setup

A module creator must put together their game materials within a Roll20 Game. Once a module is primed for release on the Marketplace, a master copy of the game is made and kept on our servers. This copy is used to generate the module for any user who has purchased it from the Marketplace. Here are some requirements to keep in mind when designing the module in Roll20:

Regarding Addons

If your adventure or product is to be sold as an addon, you must ensure the following.

  • Create a new game. Do not copy a previous game, particularly if that game was used as a marketplace product. This will create gameID conflicts which can not be resolved if the original and copy are combined into a customer's game.
  • Do not transmogrify handouts or other elements from past products that were submitted to the Roll20 Marketplace. This will create handoutID conflicts which can not be resolved if the original handout and transmogrified handout are combined into a customer's game.
  • Create a folder in the game journal named after the title of your product. In this folder place all of your instruction handouts, and use it as a top level folder for any other content. Remember, as an addon, your content is added into an ongoing game. If content is not in this top level folder it will be sorted among all of the GMs other handouts and may not be noticed.

Character Sheet

A Character Sheet of the intended RPG system should be loaded for use in the game's settings. Every NPC and PC character in your adventure should have its own dedicated character journal which has a sheet with pre-loaded stats. They should all also have a linked token to their sheet.


Review & Feedback from Roll20

Once your module is in near-complete form (maps & tokens are laid out, handouts & character entries are created, etc), you can send it through our web form for review. Simply send us the link to your Game Details page, along with an explanation of the adventure included, and the game system you’re using.

Feel free to ask specific questions if there are elements of your adventure you don’t know how to incorporate!

Banner & Product Description

When your module is complete and has been approved for sale on the Roll20 Marketplace, you will be asked to send in the details for the product page.

  • Banner Image: This will serve as the advertising image for your module on the site. Banner images must be 512x512 pixels, and should include the module title and publisher name.
  • Product Description: Write a description to explain what is included in your module, to entice Roll20 users to purchase it. Make note of any Roll20 features you’ve used, any included custom artwork, as well as tidbits about the actual adventure.
  • Price: modules must be priced $4.99 or higher.
  • Up to 6 display images, showing off the interior of your module.

Page Creation

You will be given access to a blank Compendium book to start editing and fill with content. During the process of creating the staging area for the book, you'll want to assemble a list of Categories needed for your game system (Rules, Monsters, Items, Spells, etc). You will want to have the organization structure straightened out before work on the Compendium begins.

Once you're given the URL for the new Compendium book by the Roll20 Team, you create new pages by tacking on the name of the new page at the end of the URL in the address bar and hitting Enter. (example: Page) For special characters like spaces, parenthesis, and apostrophes, once you hit Enter, the page name will be adjusted to use HTML Code for the needed ASCII characters automatically.

Since the page does not yet exist, the Compendium will display a page that says:

Not Found: [page name]

We don't currently have a page that matches that name. Try again?

Or maybe you'd like to create this page?

Below this will be a drop down menu for the Category you wish to add the page to. If this is the very first page, you'll not have any available Category to choose from in the drop-down other than Miscellaneous to start with, so this is where you should start adding your own Categories.

Once you've set or added a Category to the page, click on the blue Create Page button to create it. This will drop you onto the newly created page to start editing it.

Building A Compendium Manually

If you have no existing online database to create JSON files from, you'll need to build the Compendium directly in Roll20.

Editing a Page

Once created, a Compendium page will be split up into two distinct parts: A Text Editor and then an Attributes Table underneath.

Text Editor

The text editor can switch between a WYSIWYG and an HTML version by clicking on the </> button which is the last button on the right side of the text editor's toolbar. You may find that writing your Compendium entries in HTML may make Sheet integration easier as you won't get tripped over by unseen/unexpected formatting that can sometimes occur when working in the WYSIWYG version of the editor. The text editor is where you would include monster/class/race bios, feats, and abilities. Any data that can not be contained in a single input field should be placed here. Use heading tags (<h1>, <h2>, <h3>, Etc.) in a consistent manner to split your content up for efficient integration. It is incredibly important that text formatting is also kept consistent throughout the entirety of the Compendium book.

Dynamic Linking

You do not need to manually create page links within the text copy of your Compendium pages. Page linking is done automatically after Roll20 initiates a Compendium build. This automated process scans through the text contents of every single entry of the Compendium to match strings up with any available page titles. When a match is found (the page name and string must be identical save for Capitalization), the string is automatically hyperlinked to the matched page.

Creating Category List Pages

Once the individual entries of a Category are created, creating index pages (I.e. Monsters by NameEquipment by TypeSpells by School, etc) are automatically generated by adding this search template in the Text Editor for the desired index page and saving it.

{{SearchIndex|***filter parameters***|}}

You can use multiple of the following filtering parameters all at once. Simple separate the filters apart with a space as you list them between the two vertical bars.

Category: Assigning the Category attribute will list all entries under the specified Category. The entries will be listed by their entry names in Alphanumerical order.


This will list every single entry that is under the "Monsters" category.

GroupBy: This filter is typically used alongside the Category filter to help sort the resulting list. This will assemble the entries into groups. An example from the D&D 5th Edition SRD is listing [Monsters by their Type] (aberration, goblinoid, ooze, etc) or [Challenge Rating]. Entries within a group will then be listed alphanumerically.

{{SearchIndex|Category:Monsters GroupBy:Type|}}

This will list the various Monster Types available and then sort the Monster entries via their "Type" Attribute.

Source: If there's a Compendium that is comprised of multiple books, a "Source" Attribute will likely be created to designate which book an entry page is being pulled from. This makes you able to create an index strictly listing content only from a designated source.

{{SearchIndex|Category:Monsters GroupBy:Type Source:Bestiary2|}}

This will generate a list of entries under the "Monsters" category, grouped by their "Type" attribute, and will only use entries listed with the "Source" Attribute "Bestiary2".

Attributes Table

Below the Text Editor is the Attributes Table. This area is to input traditional statblock content that is consistent throughout your Categories: Armor Class, Languages, Weaknesses, Immunities, HP, XP, Passive Perception, etc., for Monsters. Weight, Item Type, Armor Class, Stealth rating for Items. Damage Type, Weight, Properties, Damage Die for Weapons. Commonly these Attributes are already broken down into a table within your rule book to carry it over into your Compendium entries.

Adding Attributes

When you're starting off with a new page, there will be no Attributes assigned to it. To start adding Attriburtes, click on the Edit Attributes link to the right of the Attributes heading. This will not only reveal hidden Attributes (if there are any), but also add a new link at the bottom of the Attributes Table labeled + Add New Attribute.

A drop down menu labeled Choose an attribute... will appear on a new table row. If you have created Attributes previously on other entries, those Attributes will appear as options on this drop down menu. The first option on the menu is Create new attribute... and likely will be what you'll be using mostly until you have all of your desired Attributes created.


Once selected, an empty field will appear to the right of the drop down menu and a smaller field directly below the drop down menu with the temporary text ,"New Attr Name", within it. As you might expect, the "New Attr Name" field is for the name of the Attribute you wish to create. The blank field on the right is the value the current entry has for this new Attribute. In the example image above, the attribute being created keeps track of an entry's "Element". I am assigning the Element for this entry the value of "Fire". An Attribute's value can be numerical or it could be a string.

Continue adding Attributes as you need in this fashion, either creating them from scratch or choosing from the drop down menu. When you are done, scroll up to the Attributes heading and where the Edit Attributes link used to be. While in Edit Mode, this link's label will change to Save Attributes. Clicking on this not only saves your changes, but it also logs any newly created Attributes so they can be brought up again on a new page.

Editing or Deleting Attributes

You can't delete Attributes until they're saved down first. Once saved, you can click on the Edit Attributes link again to return to Edit Mode. Any previously added/created Attributes will have a pen and trash can icon appear on the right side of the Attribute row when you hover your mouse over any one of them. Clicking on the pen icon will open the Attribute up once more so it can be edited, while the trash can icon will delete the Attribute. Remember to click on Save Attributes to exit out of Edit Mode and save your changes.

Designing for Sheet/Compendium Integration

In order to design a Compendium with character sheet integration in mind, it is recommended that a Compendium editor reaches out to the sheet Author(s) currently maintaining Sheets for their given game system. In order for a Compendium to integrate with a Character Sheet, the Compendium should be using matching Attributes used by the Sheet. Vice versa, the Sheet must be scripted to take advantage of the compendium-drop Event so that it can correctly parse and format the Compendium's content into attack rolls, items, spell slots, feats, etc once a Drag and Drop event occurs onto a sheet field or Tabletop. The Character Sheet & Compendium forum was designed intentionally so that Sheet and Compendium authors would have an easier time collaborating with one another.

Compendium Compatibility

To get started, we recommend reading up on the Compendium Integration section on the Building Character Sheets wiki page on how to enable Drag-and-Drop Functionality on your sheet.

Automated Journal Generation and Statted Token Creation

If you use the 5th Edition OGL by Roll20.html sheet on GitHub as an example; examining lines 7 and 5738 demonstrates how token generation and creating Journals (rather than a Handout) with their NPC version auto-toggled occurs after a Compendium Drag and Drop to the Tabletop.

Was this article helpful?
17 out of 37 found this helpful