Open-source project
Roll20/roll20-character-sheets avatar
Roll20/roll20-character-sheets

roll20-character-sheets: the community sheet library behind Roll20

Character sheet templates created by the community for use in Roll20 VTT. Submit a ticket at roll20.net/help if critical hotfixes are to be requested.

1,245 stars4,294 forksHTMLMIT

At a glance

What is it?
The Roll20 character sheets repository holds over 800 community-contributed character sheets for the Roll20 virtual tabletop, each one a self-contained HTML file with its own styles and scripts. It suits a tabletop player who wants a sheet for their system and a contributor who wants to build one, and the project has an unusually explicit policy on what AI may and may not contribute.
Who is it for?
Adopt roll20-character-sheets if you play on Roll20 and need a sheet for a system that does not have one, since a fork-and-submit cycle is the supported path and the maintainers ask you to improve an existing sheet where one exists. Skip it if you need a maintained product, since these are community-contributed templates with uneven quality, and note the project asks contributors to submit a ticket at roll20.net/help if critical hotfixes are needed.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly HTML, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the repository actually is

This repository is the collection of all the community-contributed character sheets available for use on Roll20, and the numbers in the README describe the scale and the labour behind it. There are over 800 community-contributed sheets, from over 300 contributors, who have written over 400,000 lines of code. The README is careful to say the sheets are mostly created for free, for use by the community, and represent dozens if not hundreds of hours of effort on the parts of their creators. The primary language is recorded as HTML, the licence is MIT, the last push was on 2026-10-15, and the repository has a single release, v0.1.3 named Hello, world! from 2023-10-02, which reflects the fact that the artefacts here are the sheets themselves rather than a released library. The homepage is roll20.net and Roll20 is described as the easy-to-use virtual tabletop that brings pen and paper gaming to the web, focused on storytelling and camaraderie.

One directory per sheet, and what a sheet must contain

The top level of the repository is the catalogue. Every sheet is a named folder, and the listing reads as a roleplaying game library, with folders such as `13th Age Glorantha`, `24XX`, `5e Darker Dungeons`, `7th Sea`, `A Song of Ice and Fire`, `ACKS`, `AD&D_2E`, `Achtung! Cthulhu`, `Advanced_Dark_Heresy_2_5` and `Action Movie World`. The naming is not standardised, with some folders using spaces, some using underscores and some punctuation, which is the practical shape of a repository grown by hundreds of contributors rather than designed by one. A character sheet requires at minimum four files in an appropriately named subfolder, and the HTML file describes the structure and functionality of the sheet, consisting of inputs to store user data, buttons to make rolls to the VTT, and repeating sections to store lists of information such as inventory. The Roll20 wiki page on Building Character Sheets is the reference for the rest.

The build tooling, and the sheet-pixie pass

The Makefile is small and shows how the sheets are processed. The `listing` target prints the top-level directories with `fd`, excluding `contrib` and limiting depth to one, sorted, which is how the catalogue in the README is produced. The `config` target copies a default release script into every one of those directories, so each sheet can be packaged the same way. The `clean` target removes the `dist` directories. And the `all` target is the interesting one, since it finds every `sheet.json` at the top level except the excluded Zelda BOTW one and pipes them through `parallel` into `bun run contrib/sheet-pixie/index.ts`, which is a build step that processes each sheet's manifest. The tooling is JavaScript and TypeScript on Bun, sitting alongside the HTML sheets, with a `contrib/` directory holding the shared tooling and a `.actions/` and `.circleci/` directory for the automation.

The AI policy, which is unusually specific

The repository carries an AI policy for community mod scripts and character sheets, with the linked article as the canonical version and a summary in the README for convenience, and the rules are worth reading closely. Code may be AI-assisted or AI-generated, so HTML, CSS and JavaScript may be written with generative AI tools, but you are fully responsible for everything you submit regardless of how it was produced, and you must be able to read, explain, debug and stand behind all of the code in your pull request. Vibe coding, submitting generated code you do not understand, is strongly discouraged, and sheets that break, introduce security issues or infringe on someone else's work may be removed. Creative content must be human-made, so in-sheet copy and descriptions and all visual assets must originate from you or your human teammates, with AI allowed to edit, proofread, post-process or format that work but not to write the copy or generate the art wholesale. AI-written technical documentation is allowed. No disclosure is required for compliant contributions, and non-compliant contributions will be removed, with misrepresentation possibly resulting in permanent de-listing of the sheet and repeated bad-faith violations a ban.

Contributing to an existing sheet rather than starting a new one

The contributing guidance has a strong preference, and it is explained from experience. Before submitting work, check that there is not already a sheet covering the game you intend to build one for, and if there is, be bold and suggest changes. The general shape is to fork the repository, make your changes to the sheet in question, make the pull request, and invite previous contributors to review the changes, after which the changes can be merged into the existing sheet. The stated reason is that a single sheet contributed to by a number of people is better than the cycle of contributing a sheet, losing interest, moving on, and the next contributor creating an entirely new sheet. There is a Beginner's Guide to GitHub specifically for Roll20 character sheets, and the contribution routes include reporting issues, reviewing sheet code changes, and reviewing or contributing to the documentation on the community wiki.

Community conduct, and the other documents

The Roll20 Code of Conduct applies to participation on the repository, and the README summarises it bluntly, with no racism, no sexism, no hate speech, no backseat gaming, no personal attacks, no transphobia, no misgendering, no ableism and no anti-LGBTQIA+ sentiments allowed. The document set in the `docs/` directory is what a contributor or an operator actually reads, and it is a mix of the practical and the contractual. There is a usage document, a contributing document, a database document explaining how snips data is stored, a self-hosting document for running your own instance, and two documents that are more consequential than they look, the terms of service covering what the provider and you can and cannot do, and the acceptable use policy covering what you can and cannot upload. The README's table of contents lists the contribution sections as well, with a starting a new character sheet section, a submission guidelines section, a release cadence section, an internationalization and translations section, and an uploading sheets section.

Where the project sits and what it is not

Two characteristics are worth naming before an adopter gets excited. The first is that this is a template library rather than a framework. There is no API, no build system you depend on and no package to install, the artefact is a set of HTML files that the Roll20 application loads in a browser, and a sheet that nobody maintains will quietly stop working when the platform changes. That is why the repository is not archived and the last push was in October 2026, the community keeps shipping fixes even though there is no versioned release, and it is also why the README asks for critical hotfixes to be requested through a ticket at roll20.net/help rather than through the issue tracker. The second is that the quality range is wide by construction, since the same README says the sheets represent hundreds of hours of work by individuals, which is a reason to read a sheet before relying on it rather than a reason to trust it.

Editorial conclusion

Adopt roll20-character-sheets if you play on Roll20 and need a sheet for a system that does not have one, since a fork-and-submit cycle is the supported path and the maintainers ask you to improve an existing sheet where one exists. Skip it if you need a maintained product, since these are community-contributed templates with uneven quality, and note the project asks contributors to submit a ticket at roll20.net/help if critical hotfixes are needed. Before you write a new sheet, read the AI policy, because code may be AI-assisted while the creative copy and the artwork must be human-made, and the maintainers remove non-compliant contributions and can de-list a sheet for misrepresentation.

Frequently asked questions

What is in the roll20-character-sheets repository?

The collection of all the community-contributed character sheets available for use on Roll20, over 800 sheets from over 300 contributors and over 400,000 lines of code, each in its own named folder at the repository root.

What files does a Roll20 character sheet need?

At minimum four files in an appropriately named subfolder, with the sheet's HTML file describing its structure and functionality, including inputs to store user data, buttons to make rolls to the VTT, and repeating sections to store lists such as inventory.

Can I use AI to write a Roll20 character sheet?

For code, yes. HTML, CSS and JavaScript may be AI-assisted or AI-generated, but you are fully responsible for it and must be able to read, explain, debug and stand behind everything you submit. Creative copy and all visual assets must be human-made, with AI only allowed to edit, proofread, post-process or format that work.

Should I add a new sheet or improve an existing one?

Improve an existing one where it exists. The maintainers ask you to check first, then fork, make the change, open a pull request and invite previous contributors to review, because a single sheet contributed to by many people is preferred over the cycle of a new contributor creating an entirely new sheet.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. Roll20/roll20-character-sheets on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/roll20-roll20-character-sheets.svg)](https://hysenlabs.com/projects/roll20-roll20-character-sheets)

Was this useful?