A D&D 5e dice roller with both CLI and 3D visualization in a single binary!
Powered by Bevy game engine with real physics simulation.
- Characters and app settings are stored locally in an embedded SurrealDB (SurrealKV) datastore at
characters.surrealdb. - By default on Windows this lives under
%LOCALAPPDATA%\DnDGameRolls\characters.surrealdb. - Older installs may have a legacy SQLite database at
%LOCALAPPDATA%\DnDGameRolls\characters.db; on first run the app can migrate data into SurrealDB.
The publishable CLI crate lives at crates/dndgamerolls-cli.
- Dry-run publish locally:
cargo publish -p dndgamerolls-cli --dry-run - GitHub Actions workflow:
.github/workflows/publish-cli-crates-io.yml(manual dispatch; usesCARGO_REGISTRY_TOKEN)
| Rolling Dice | Results Display |
|---|---|
![]() |
![]() |
| Command Input | Command History |
|---|---|
![]() |
![]() |
| Dice Roller Tab | Character Setup |
|---|---|
![]() |
![]() |
| Cup Container | Fine Control Settings |
|---|---|
![]() |
![]() |
Download the MSI installer for v0.2.18 from the Releases page:
dndgamerolls-installer.msi- Full Windows installer with Start Menu shortcut and PATH integration
Or download the portable ZIP:
dndgamerolls-x86_64-pc-windows-msvc.zip- Portable executable
Download the DMG installer for v0.2.18 from Releases:
DnDGameRolls-0.2.18-universal-apple-darwin.dmg- Universal binary (Intel + Apple Silicon)DnDGameRolls-0.2.18-aarch64-apple-darwin.dmg- Apple Silicon (M1/M2/M3)DnDGameRolls-0.2.18-x86_64-apple-darwin.dmg- Intel Macs
Installation:
- Open the DMG file
- Drag "DnD Game Rolls" to the Applications folder
- Right-click the app and select "Open" on first launch (required for unsigned apps)
Download the .deb package for v0.2.18 from Releases and install:
sudo dpkg -i dndgamerolls_*.deb
sudo apt-get install -f # Install dependencies if neededcargo install dndgamerollscargo binstall dndgamerollsgit clone https://github.com/edgarhsanchez/dndgamerolls.git
cd dndgamerolls
cargo build --releaseThe executable will be at: target/release/dndgamerolls.exe
Simply run without --cli to launch the 3D dice simulator:
# Launch 3D simulator with default d20
dndgamerolls
# Launch with specific dice
dndgamerolls --dice 2d6 --dice 1d20
# Launch with skill modifier applied
dndgamerolls --dice 1d20 --checkon stealthUse --cli for headless command-line rolling:
# Roll dice with skill modifier (no GUI)
dndgamerolls --cli --dice 2d10 --checkon perception
# Roll with advantage
dndgamerolls --cli --dice 1d20 --checkon stealth --advantage
# Traditional subcommands also work
dndgamerolls skill stealth
dndgamerolls --advantage skill perception
dndgamerolls attack dagger
dndgamerolls stats# View character stats
dndgamerolls stats
# Skill check with expertise
dndgamerolls skill stealth
# ๐ฒ Stealth Check (Expertise)
# Roll: 15 + 9 = 24
# Skill check with advantage
dndgamerolls --advantage skill perception
# Attack roll with damage
dndgamerolls attack dagger
# CLI mode: Roll 2d10 + perception modifier
dndgamerolls --cli --dice 2d10 --checkon perceptionFor more examples, see the screenshots directory.
A visual 3D dice rolling experience with physics simulation.
| Key | Action |
|---|---|
| SPACE | Roll a complete set of dice (D4, D6, D8, D10, D12, D20) |
| 1 | Spawn D4 (tetrahedron) |
| 2 | Spawn D6 (cube) |
| 3 | Spawn D8 (octahedron) |
| 4 | Spawn D10 (pentagonal trapezohedron) |
| 5 | Spawn D12 (dodecahedron) |
| 6 | Spawn D20 (icosahedron) |
| R | Clear all dice |
| W/A/S/D | Move camera |
| Q/E | Rotate camera |
Press / or Enter to open command input, then type commands like:
--dice 2d6 --checkon stealth- Roll 2d6 with stealth modifier1d20 --checkon perception- Roll d20 with perception modifier--dice 1d20 --dice 1d8 --modifier 3- Roll multiple dice with bonus
Press 1-9 to quickly reroll from command history shown on the right.
- ๐ฒ All standard D&D dice types (D4, D6, D8, D10, D12, D20)
- โก Real-time physics simulation with Rapier3D
- โ๏ธ Size-based dice weight (D20 is heavier than D4, affects rolling)
- ๐จ Crystal-themed translucent dice with size variation
- ๐ฆ Glass dice box with realistic bouncing
- ๐ฏ Automatic result detection when dice stop
- ๐ก Dynamic lighting and shadows
- ๐ Command history for quick rerolls
- ๐ฎ Mouse-controlled throw direction with 3D arrow indicator
- ๐ Quick roll panel for skills, saves, and ability checks
- โ๏ธ Settings panel with customizable background color
- ๐ง Dice box shake settings (duration + editable curve)
- ๐ Character sheet editor with full D&D 5e support
- โน๏ธ DnD Info tab with rules reference
- ๐ฅ Contributors tab with GitHub profile avatars (loaded at runtime)
- ๐ Auto-recovery for dice that fall out of bounds
The CLI mode provides quick command-line dice rolling without the 3D GUI.
# Ability Checks
dndgamerolls strength # or str
dndgamerolls dexterity # or dex
# Skill Checks
dndgamerolls skill stealth
dndgamerolls skill perception
# Saving Throws
dndgamerolls save dex
dndgamerolls save wisdom
# Attack Rolls
dndgamerolls attack shortsword
dndgamerolls attack dagger
# View Character Stats
dndgamerolls statsUse --cli with --dice and --checkon for flexible dice rolling:
# Roll 2d10 with perception modifier
dndgamerolls --cli --dice 2d10 --checkon perception
# Roll 1d20 with stealth and advantage
dndgamerolls --cli --dice 1d20 --checkon stealth --advantage
# Roll multiple dice types
dndgamerolls --cli --dice 1d20 --dice 2d6 --modifier 5
# Add custom modifier
dndgamerolls --cli --dice 3d8 --modifier 10Add --advantage or --disadvantage before the subcommand:
dndgamerolls --advantage skill stealth
dndgamerolls --disadvantage attack shortsword
dndgamerolls --cli --dice 1d20 --checkon perception --advantageBy default, CLI mode loads character data from the local SurrealDB database (characters.surrealdb).
You can explicitly provide a JSON file as one-off input via --file:
dndgamerolls -f path/to/character.json intelligenceYou can also select which local character to use:
dndgamerolls --character "Thorin" stats
dndgamerolls --character-id 3 skill stealth- ๐ฒ D&D 5e compliant rolls (d20 + modifier)
- โจ Advantage/Disadvantage support
- ๐จ Colored output with critical success/failure highlighting
- ๐ Displays both dice roll and final total
- ๐ฏ Automatic modifier calculation from character stats
- ๐ก๏ธ Attack rolls with weapon stats
- ๐พ Loads character data from SQLite by default (optional one-off JSON input)
- ๐พ Loads character data from SurrealDB by default (optional one-off JSON input)
- ๐ญ Shows expertise on relevant skills
- Natural 20: Critical success (highlighted in green)
- Natural 1: Critical failure (highlighted in red)
- Advantage: Roll twice, take the higher result
- Disadvantage: Roll twice, take the lower result
- Proficiency Bonus: Automatically applied to proficient saves/skills
- Expertise: Double proficiency bonus (shown in character stats)
If you pass --file, the tool expects a JSON file with your character stats.
cargo build --releaseCopy the executable to a directory in your PATH for easy access:
# Windows
copy target\release\dndgamerolls.exe C:\Users\YourName\.cargo\bin\
# Or install directly from source
cargo install --path .Now you can run dndgamerolls from anywhere!
DnD Game Rolls is a fully offline application that does not collect any personal data. See PRIVACY.md for our complete privacy policy.
See LICENSE for details.








