- What Is Character Sheet Templating?
- The Case Against Pug (and Sheet Templating generally)
- Setting Up The Handlebars Character Sheet Generator
- Basic Templating with Handlebars
- Handlebars Templating: Things Get Complex
- Handlebars Templating: What are Helpers?
- Handlebars Templating: When You Want to Stop Handlebars
- Handlebars Templating: Nesting in All Its Forms
- Handlebars Templating: Handling Generator Errors
- Handlebars Templating: Helpers
- Handlebars Templating: Partials
I have mixed feelings about writing this post, because I am going to be arguing against a tool that has become popular among many Roll20 writers that I respect. But Pug, and sheet templating in general, do create a problem on Roll20. Let me explain.
The Roll20 repository is a place where anyone can post sheets for anyone to use. It has grown so big and fast (over 100 sheets, and multiple copies for some of them) precisely because it is so easy to submit sheets. You don’t need to be a professional webdesigner, you can literally anyone who loves a game enough to spend the time creating a sheet for it.
A key element in the success of this repo (which is short for repository) is that no one, other than roll20 themselves, has ownership over the sheets submitted. It’s accepted that whoever submits a sheet will one day move on to other pastures, abandoning the sheet, and anyone else can continue to contribute to that sheet.
The problem with sheet templating is that if it becomes an accepted norm, it imposes a barrier on that process. Sheet templating usually requires higher skill to use, which means fewer people can contribute – fewer people creating new sheets and fewer people taking over sheets that haver been abandoned.
This is not a theoretical concern. It has already happened on a smaller scale. There used to be a very popular sheet (for pathfinder, I think), which had a team of developers eager to work on it. But one of those devs was more skilled and experienced the others, and argued for the includion of a process and tools that owuld make the proces sof writing for that sheet easier (for him). I’m sure with a team of ptrofessional programmers it would have been a positive improvement.
But one day, inevitably, that developer moved on and abandoned the sheet. No one who remained understood his process, so one by one the remaining amateur developers found themselves overwhelmed and drifted away. Everyone who came on to the project took one look at how much work it would take to get up to speed, if they even could understand it, and ran away screaming.
And so, a very popular sheet was abandoned. That sheet still exists but can no longer be updated. If templating becomes the norm in roll20, this will happen to all sheets.
The Way Forward
Honestly, I’m a fan of sheet templating and what it can do for authors. But I think it is a tool for private development. Once a sheet is submitted, it becomes the property of the community, and should be provided in a format that anyone can use.
Files for pug, handlebars, or whatever templating system was used can be submitted, but there should be no expectation that they be used. If you really want to use the templating system, the onus is on you to backport any changes into the templating files.
(Incidentally this is one of the strengths of the handlebars tool – given that you can mix and match templated and normal code, you can continue to use this tool no matter what is done to the files.)
I want to sing the praises of Agon (Official) and it’s developer. Jakob Oesinghaus used Pug to develop the sheet, but the custodian of the Roll20 wiki, pointed out the limitations for new developers, and Jakob made the changes to his code base so anyone could come in and update the code. If every templating developer approached their projects like this, I’d have no concerns.
My Position
Say no to Pug!
Personally I think Roll20 should ban the use of Pug and all templating systems. This wouldn’t stop people using it on their own files before submitting them to Roll20’s github (and personally, I see no harm in that – I think people should do it), but it would make it clear that the people using Pug have to conform to the contributions of others, and not vice-versa.
Hi there
I like your recent posts about templating in R20. I have been a software developer for 35 years, mainly on old-fashioned Business Basic languages, developing CHUI apps on Unix the GUI apps on Windows. Only moved to mainstream languages and web development in the last 5 years. I like coding sheet workers and API Mods in Javascript, but doing CSS without the help of a library like Bootstrap (don’t even tell me about this Tailwind non-sense) is a pain in the a*s. What I need from R20 is a set of standard UI components that would be easily configurable (colors, fonts, texts, etc). Implementing an RPG system is mainly doing back-end code, not losing hours figuring out CSS tricks to show multiple tabs on a sheet. My 0.02 € 😉
I don’t know if Roll20 will ever give us what you really want, but there is a new way of designing character sheets soon to be released (a beta will be available in a month or two). I hope it doesn’t make everything I’ve written obsolete! But I hope it’s a good move.
Yes I think I have seen a post about a new framework or something, where they say you’d be able to develop a sheet using Vue front-end library. Guess that’s what they are using for the newest stuff (Marvel Multiverse, PF2E remastered, new D&D5 sheet). Nice UX, but again I am not a web designer and have enough work modeling the rpg rules in the sheet-workers. Well, at least they’re not enforcing Zuck’s React abomination on us…
I don’t know anything about the new approach, other than it’ll be in Vue. There’s a risk it’ll make most things on this site obolete (I have mixed feelings about that!), but I do hope it’ll make things simpler. Apparently there’ll be more information this month.