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 (3D20
) is [5, 17, 20]
, it will add a D20 for the 20 ((M20)
), yielding [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!:+2
for 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.