RPG Dice

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.