#dice #dice-rolling #dice-roller #string #rng #dnd #advantage

dnd_dice_roller

A simple dice rolling library for dnd dice strings

7 releases (4 breaking)

0.5.1 Apr 18, 2021
0.5.0 Apr 10, 2021
0.4.0 Aug 21, 2020
0.3.0 May 10, 2020
0.1.0 Mar 30, 2020

#406 in Games

Download history 7/week @ 2024-03-14 25/week @ 2024-03-28 23/week @ 2024-04-04

60 downloads per month
Used in holding

MIT license

30KB
544 lines

dnd_dice_roller

A simple Rust library for taking a DnD like dice string as an input and calculating a result.

Supports advantage and disadvantage.

Usage

use dice_roller::dice::{Dice, RollType};
use std::str::FromStr;

let dice = Dice::from_str("2d20 + 1")?;
// Roll dice uses thread RNG
let result = dice.roll_dice();

A single d20 with a plus five modifier and advantage
let second_dice = Dice::new(1, 20, Some(5), RollType::Advantage);
let results = second_dice.roll_dice();

Example inputs

d6
2d6
2d6 + 3
d20 advantage
d20 adv
d20 a
2d20 + 4 advantage
2d20 - 2 adv
1d6 - 1 disadvantage
1d6 dadv
d6 d

Dependencies

~1.5–2.2MB
~44K SLoC