Request a Roll
A system-agnostic roll request tool for Foundry VTT. The GM asks one player, a few, or the whole table for **any** die formula; players answer from a sidebar tab with their own modifier.
No system assumptions, no character sheet integration, no ability lists — if Foundry can roll the formula, this module can request it. 2d3, 4d6kh3, 1d100, whatever you type.
Features
- Any formula. Type it directly, or use the quick-pick chips.
- Pick your targets. One player, a selection, all players, or everyone including other GMs.
- Roll-offs. Rank everyone's result and declare a winner, ties flagged.
- Optional DC. Results are marked pass/fail automatically.
- Three visibility levels. Everyone, Secret (the roller and the GM, but no other player), or Blind (the GM only — not even the roller). One click reveals a restricted result to the table.
- Player modifiers. Requests can invite a modifier so a player can punch in their own
+3for whatever stat you asked about — or you can turn that off for a flat roll. A modifier may itself be a die (+1d4) for characters whose bonus is rolled rather than fixed. - Per-player dice. Optionally let players change the die itself, for roll-offs where the characters do not all roll the same one. The field is pre-filled with the die you asked for, and any result rolled with a different die is labelled with it.
- Sidebar tab. Sits directly after Chat rather than in a floating window, and badges the tab with the number of rolls you owe.
Requirements
Foundry VTT v14 (verified 14.365). It is written to also run on v13, with one caveat: v13 did not expose Sidebar.TABS as a static property, so the sidebar button may not appear there. The module detects this and logs a notice; the interface is still reachable:
Installation
Paste this manifest URL into Foundry's Install Module dialog:
https://github.com/jmarasch/request-a-roll/releases/latest/download/module.json
Usage
As GM. Open the Request a Roll tab in the sidebar. Optionally label the request ("Perception", "who goes first"), enter a formula, choose who to ask, and send. Set a DC for automatic pass/fail, choose Roll-off to rank the results, and set visibility to keep results from the table. You can include yourself as a target, so the GM can take part in an opposed roll-off.
As a player. A request appears under Your Turn with a notification. Type a modifier if the GM allowed one and press Roll (or hit Enter in the modifier box). The roll is evaluated on your own client, so Dice So Nice and similar modules behave normally.
How it works
Requests live in a single world-scoped setting. World settings are readable by every client and writable only by GMs, which gives synchronisation for free. Because players cannot write world settings, a player's result is sent to the GM over the module's socket channel, and exactly one GM — game.users.activeGM — performs the write. That avoids every connected GM racing to apply
the same update.
Rolls are always evaluated on the rolling player's own client so their dice modules fire; only the resulting numbers travel to the GM.
Visibility
| Level | Roller sees | Other players see | GM sees |
|---|---|---|---|
| Everyone | ✅ | ✅ | ✅ |
| Secret | ✅ | ❌ | ✅ |
| Blind | ❌ | ❌ | ✅ |
These map onto core's own roll modes — publicroll, gmroll and blindroll respectively — so chat messages behave exactly like any other roll at that visibility. Blind is for checks where knowing the number is itself a spoiler: a player who sees their own 3 on a perception check knows to be suspicious even though their character noticed nothing.
A caveat worth understanding. Visibility is enforced in the interface, not by the server. Restricted results are stripped from the player-facing render and the chat message is whispered, so a player will not see the number in normal play. However, the underlying world setting is replicated to every client, so someone who opens the browser console can read it. This is the same limitation that applies to most Foundry modules storing shared state.
If you need secrecy that survives a determined player, the change is to keep totals solely in GM-whispered chat messages rather than in the shared setting.