Dice Roll
dice_rollRoll server-authoritative dice for a virtual tabletop campaign, publishing results to players or sending secret rolls to the roller and DM.
Instructions
Roll server-authoritative dice and publish the result to the permitted audience. Use saved_roll_list for stored expressions; saving a macro does not execute it. Authenticated campaign users may roll. Public rolls broadcast to the campaign; v1.4.0 secret rolls go to the roller and DMs, not exclusively to DMs if a player rolls. Each send creates a new roll; never retry on missing results. Calls queue with a 2.1-second minimum between actual sends; upstream allows 30 rolls/minute/user. The bridge performs no random generation or rules calculations. Returns sent:true,confirmed:false,status:"pending" inside data: dispatch is not a business ACK. Read events_poll for results/system.error and inspect state before further action; never blindly resend. Returns {ok:true,data} on success; tool-body failures return {ok:false,error} with optional diagnostic data. Argument-schema errors are MCP errors.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| purpose | No | Optional broadcast label explaining the roll; empty string omits it, without changing dice calculation. | |
| is_secret | No | False publishes to the campaign; true requests secret delivery to the roller and DMs (wire field secret). | |
| expression | Yes | Server-parsed dice expression, e.g. 1d20+5, 2d6, or 4d6kh3; invalid syntax is reported asynchronously. | |
| character_name | No | Optional display attribution (wire characterName), not a character ID or permission credential; null omits it. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||