Dice Roll
dice_rollRoll 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.
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.5.0 permits DM and PLAYER rolls, not spectators; secret routing and the shared user budget remain server-authoritative. Each send creates a new roll; never retry on missing results. Calls queue with a 2.1-second minimum between actual sends, retaining the older 30/minute policy. Newer servers allow higher rates but cap characterName at 200 and purpose at 300 characters; server errors remain visible through events_poll. 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 | |||