A light, Roll20 syntax compatible, python dice roller
Project description
PyRoll20
An easy to use, Roll20 syntax compatible,python dice roller.
Installing
pip3 install pyroll20
Usage Example
import pyroll20
print(pyroll20.roll(user_input="2d20"))
>> [12,8]
or with a modifier
import pyroll20
print(pyroll20.roll(user_input="2d20+5"))
>> 23
Modifiers
'h' # Highest Rolls - 5d20h3 returns the 3 highest rolls from the five d20 that were rolled.
'l' # Lowest Rolls - 5d20l3 returns the 3 lowest rolls from the five d20 that were rolled.
'+' # Adds to sum - 5d20+3 adds 3 to the sum of the five d20 that were rolled, always returns a single integer.
'-' # Subtracts from sum - 5d20-3 subtracts 3 from the sum of the five d20 that were rolled, always returns a single integer.
'.-' # Subtracts from each individual roll - 5d20.-3 subtracts 3 from each of the five d20 that were rolled.
'.+' # Adds to each individual roll - 5d20.+3 adds 3 to each of the five d20 that were rolled.
't' # Sum of all rolls - 5d20t returns the sum of the five d20 that were rolled.
'e' # "Exploding dice - 5d20e if any of the five rolls goes critical, it gets re-rolled and added to the individual roll.
Advantage & Disadvantage
Adding adv or disadv after the roll like so
import pyroll20
print(pyroll20.roll(user_input="2d20 adv"))
>> [17,16]
'adv' # This will roll the provided argument twice, then return the roll with the higher average and discard the other one.
'disadv' # This will roll the provided argument twice, then return the roll with the lower average and discard the other one.
Notes
If sides are provided but no roll number, the roll number defaults to 1, for example d20 is a valid input.
License
This project is licensed under the GNU GENERAL PUBLIC LICENSE v3.
TODO
Wrap it in some sort of gui for a standalone app.[Maybe]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.