I made a web page where you can simulate a complex dice roll sequence with conditionals (e.g. re-roll when roll is a 1) using a Python-like syntax. (Click the “Toggle Syntax” button to view examples)

It needs a second to load because it has to load a Python interpreter in the background (I’m not good at web development) but once that’s done, it works really well.

It’s still very barebones and I still have to work out some problems.

Maybe some of you could use it, though.

There’s also just the Python version available to run locally here

Everything is GPLv3, enjoy!

  • Pennomi
    link
    English
    623 hours ago

    Extremely impressive! I wrote a dice probability calculator myself recently, but abandoned perfect calculations in favor of a million roll simulation. What you have done is really quite lovely.

    • illectrilityOP
      link
      fedilink
      823 hours ago

      Thank you very much. I, too, initially used a sampling approach but that was obviously inefficient and inaccurate. Getting this to work was a HUGE pain so it’s nice to read some kind words about it, thank you

  • @[email protected]
    link
    fedilink
    522 hours ago

    This is super cool!

    Does it support things like max/min to simulate advantage/disadvantage?

    It would be really cool to mathematically compare different kinds of rolls, like the cascading dice damage post from a couple weeks ago (even if its not built into the notation, just writing out the logic by hand)

    • illectrilityOP
      link
      fedilink
      422 hours ago

      No, there is no advantage or disadvantage functionality. I made it purely for balancing, so finding out the average damage a character would do. In that case I would just write out all the different rolls the character would do when attacking and have the program calculate using that. It’s pretty barebones

    • illectrilityOP
      link
      fedilink
      2
      edit-2
      9 hours ago

      Pretty similar but I couldn’t get re-rolls to work on there. That’s the main reason I made this

  • jcr
    link
    fedilink
    Français
    119 hours ago

    I am working on a dice expression evaluator on my side, and I will certainly reuse your code if I can ! Thanks for giving the example, as a GNU enthusiast, it is very nice ! Great job making it work !

    • illectrilityOP
      link
      fedilink
      19 hours ago

      Best of luck to you. I think my code is quite messy but if you can use any of it, feel free!

  • @[email protected]
    link
    fedilink
    English
    123 hours ago

    Cool. I used to have an app that would do this and it was great to play with for various scenarios. Nice to see a website version.