Claude-skill-registry dice-roller
This skill should be used when the GM needs to roll dice or when the user asks to "roll dice", "make a dice roll", "roll for initiative", "roll a skill check", "roll damage", or needs to resolve RPG mechanics with random dice outcomes. Provides deterministic dice rolling for tabletop RPG adventures.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/dice-roller" ~/.claude/skills/majiayu000-claude-skill-registry-dice-roller && rm -rf "$T"
skills/data/dice-roller/SKILL.mdDice Roller Skill
Provides a bash script for rolling dice in RPG adventures with JSON output for programmatic use.
How to Roll Dice
Execute the dice roller script with a dice expression:
bash "${CLAUDE_PLUGIN_ROOT}/skills/dice-roller/scripts/roll.sh" "2d6+3"
The script is bundled with this skill and executes from the plugin directory.
Supported Expressions
| Expression | Meaning |
|---|---|
| Roll one 20-sided die |
| Roll two 6-sided dice, sum them |
| Roll d20, add 5 |
| Roll 3d8, subtract 2 |
| Roll 4 Fudge dice (-1, 0, +1 each) |
| Roll percentile (1-100) |
Output Format
The script outputs JSON with individual rolls and computed total:
{ "expression": "2d6+3", "rolls": [4, 2], "modifier": 3, "total": 9 }
When to Roll
For adventures with RPG rules (indicated by
System.md), use dice rolls for:
- Skill Checks: Roll per system rules, compare to difficulty threshold
- Attack Rolls: Roll to hit, then roll damage if successful
- Saving Throws: Roll to resist effects or avoid hazards
- Initiative: Roll to determine turn order in combat
Example Usage
Skill Check (d20 system):
bash "${CLAUDE_PLUGIN_ROOT}/skills/dice-roller/scripts/roll.sh" "1d20+5" # Output: {"expression": "1d20+5", "rolls": [14], "modifier": 5, "total": 19}
Narrate the outcome based on the result vs the difficulty class.
Damage Roll:
bash "${CLAUDE_PLUGIN_ROOT}/skills/dice-roller/scripts/roll.sh" "2d6+3" # Output: {"expression": "2d6+3", "rolls": [5, 4], "modifier": 3, "total": 12}
Describe the impact narratively - "Your sword bites deep, dealing 12 damage."
Best Practices
- Always narrate outcomes - players see the story, not raw numbers
- Parse the JSON output to extract the total for mechanical comparisons
- Include context in narration (what was rolled, why it matters)
- For hidden rolls (GM secrets), execute silently and narrate only the outcome