- Introduction to Custom Roll Parsing
- The Structure of a Custom Roll Parsing Function
- The CRP Roll String And Many Buttons
- startRoll and Analysing Your Dice
- Changing Attributes with Custom Roll Parsing
- Using Queries in Custom Roll Parsing
- Computed Properties and CRP Roll Templates
- Callbacks and Promises with startRoll
- Action Buttons and the MacroBar
I’ve so far written 75 posts for the guide, and 26 extra posts that enhance different aspects of the guide (and another 20 posts or so on other topics). All of these posts started out with the observation, “Wow, the official documentation for Custom Roll Parsing sucks, wouldn’t it be nice if that was readable and understandable?”
This entire guide was inspired by an impulse to make the CRP guide more usable, though it has expanded to be more of a general sheet author guide since then. But now I’m finally here were it all started. I hope I can do it justice.
What Is Custom Roll Parsing?
Custom Roll Parsing is a way to create the kind of complex rolls that were previously possible only with the advanced scripting that is limited to Pro subscribers.
In Roll20, you have two types of buttons. Roll buttons were introduced first, and let you send text directly to chat. This text can include rolls, which later developed into roll templates. Roll buttons are old.
Then came action buttons, which can trigger sheet workers. With an action button you can trigger bits of code that alter a character sheet – change an attributes value, and so on. Action Buttons are much newer and have a few quirks, but they are still invaluable.
But there were no way to combine these two button types. You couldn’t send a macro to chat and change an attribute at the same time (so, you couldn’t for instance cast a spell and at the same time mark a spell used – that sounds simple but needs two separate buttons).
This is where CRP comes in – it can do things you just cant do any other way in a character sheet.
Now, much of what CRP does can in fact be duplicated with an API or Mod Script. But that requires the GM to be a Pro Subscriber and likely figure out some JavaScript. CRP dispenses with that. It is built into the character sheet, and anyone using that character sheet can use it.
So CRP is a way to do almost anything that is possible in Roll20, as long as you are working directly on the same character. And you can do it for free – when the GM chooses a character sheet for the campaign, he makes all the CRP built into the sheet available to that campaign too.
So CRP is easy.
CRP Is Not Easy
All that said, Custom Roll Parsing is probably the most complicated thing to do in Roll20, and I think the official documentation makes it even harder to understand than it already is.
Often times on the forums, someone will suggest CRP as an easy solution. When they do this, they are committing a classic programmer blunder – they know what they know, and forget other people do not know that. The sheer body of knowledge you need before you can think CRP is easy is vast.
That’s why this guide exists – to make it possible to create your own CRP functions.
The Next Posts
Over the course of October, I’ll describe each step neeeded to make CRP. In November, I’ll post a lot of system examples, so you can see what CRP looks like in use.
After all this, maybe you will be familiar enough with CRP that you too will think CRP is easy!