I have a sort of simple dice roller web app I’ve created. When I created it a few years ago, it supported everything I know about dice rolling at the time. It no longer supports everything I know.
Right now, you can do basic Open Legend dice rolls (including exploding dice), but you can’t do advantage and disadvantage properly, as the roller doesn’t treat an exploding die as a single roll. Instead, it treats it as a separate roll. That is
3D20(M20):>1 (the closest in the dice language to an exploding D20 with advantage 2), will roll three dice. If one (or more) of them are 20, it will add a D20. It will then pick the single highest die. So, say the initial roll (
[5, 17, 20], it will add a D20 for the 20 (
[5, 17, 20, 7], then pick the highest single die (
:>1), resulting in a final roll of 20. It should instead have done
[5, 17, 20] ⇒ [5, 17, 20+7] ⇒ 27.
So, the to do list (right now) is:
- Add proper exploding dice.
- Add Open Legends menu (attribute roll, specifically, maybe others).
- Add a way to remember settings.
- Add an API?
- Better document the dice description language, maybe improve it (e.g. use
1D20! + 1D8!:+2for a attribute roll against an attribute of 3 with advantage 2.) The generic
(M#)notation could be changed to
!#. And more.
- Remember custom rolls.
- Make it prettier. Well, cleaner, anyway.
- Possibly rewrite using Vue. The dice parser and roller is a separate component, so this should be relatively easy.
If you’ve got ideas, please, feel free to add a comment.