Epic Rolls

Epic Rolls

Free
Version: V14
FVTT: V14
Any System
Download
Changelog

    Turns group rolls into a show. When the GM asks the party for a check or a saving throw, every player sees a banner with the characters' portraits, rolls from their own card, and watches the other results come in live. At the end the module says whether the group succeeded, with sound effects, and posts a recap in the chat.

    Only the GM can start an Epic Roll.

    ℹ️

    Epic Rolls works with any game system through TheRipper93's System Abstraction, a module that Foundry installs together with it. In the systems it supports, you get that system's checks, saves and skills, and its roll window. In the other systems you can still use Custom Formula rolls. Before version 7.0.0 the module was called Epic Rolls 5e and worked only with D&D 5e.

    Getting Started

    Epic Roll ButtonEpic Roll Button
    1. Open the Chat tab in the sidebar and click the Epic Roll button (the d12 icon above the chat box). The Configure Epic Roll window opens.
    2. In the Selected list, check the characters who will roll.
    3. In the middle column, click the roll to make, for example Athletics.
    4. On the right, type a number in DC.
    5. Click Start Epic Roll.

    The Epic Roll banner opens for everyone. Each player clicks the die on their character's card to roll. Once everyone has rolled, the module announces Success! or Failure! and posts the results in the chat.

    You can also open the window with a hotkey: in Configure Controls, assign a key to Open Epic Roll Menu (it has no key by default).

    Configuring the Roll

    Configure Epic RollConfigure Epic Roll

    The Configure Epic Roll window has three columns.

    Who Rolls

    The left column lists the characters taking part.

    • Selected: the characters who will roll. When the window opens, it contains the tokens you have selected on the scene or, if none, the characters of the players who are online. Click - to remove one.
    • Available: all player characters and the creatures on the current scene. Click + to add one. Use Search to find a name.
    • Right-click a selected character to make it a contestant (see Contests).

    What to Roll

    The middle column lists every roll you can ask for. The groups come from your game system: in D&D 5e they are Ability Check, Saving Throw (including death saves), Skill and Tool. Every system also has Initiative and Custom Formula. Use Search at the top to find a roll quickly.

    • Click a roll to select it.
    • Shift + Click or Ctrl + Click more rolls to let each character choose which one to make, for example Athletics or Acrobatics to climb a wall. Each player then picks their roll from their card.
    • Custom Formula: type any dice formula (for example 1d100) to roll that instead of a check. It can't be combined with other rolls.

    Roll Options

    The right column sets how the roll works. Each option has a short description under it:

    • DC: the number to beat. Leave it empty for a roll without success or failure.
    • Show DC: let players see the DC.
    • Use Average: the group succeeds if the average of all results reaches the DC. When it's off, the group succeeds if at least half of the characters succeed. In systems where results can't be averaged (for example, "roll under" systems), half of the characters must succeed whether this is on or off.
    • Allow Reroll: players can click their result to roll again. The roll then doesn't end on its own: the GM ends it with the Conclude Epic Roll button.
    • Skip Roll Dialog: roll right away with the character's bonuses, instead of first opening the system's roll window (where you can add a situational bonus, for example). On by default.
    • Show Outro Text: show the big Success! / Failure! text at the end.
    • Blind Roll: players see question marks instead of the results.
    • Private Roll: each result is visible only to the GM and to the player who rolled it. It can't be used together with Blind Roll.
    • Hide Names: players see ??? instead of the names of characters they don't own, for example a mysterious rival.
    • Auto Color and Color: the color of the banner. With Auto Color on, it depends on the type of roll; otherwise, pick it with the Color slider.
    • Label: a custom title for the roll, shown in the intro and in the chat.

    Click the floppy disk icon next to Roll Options to Save as Default: the next Epic Rolls start with the same options.

    At the bottom:

    • Start Epic Roll: start the roll for everyone.
    • Save to Macro: create a macro that starts this exact roll, to reuse it from the hotbar.

    Contests

    A contest is a roll of one group against another, for example the party's Stealth against the guards' Perception.

    1. Right-click the characters of the opposing side in the Selected list: they are marked as contestants.
    2. Click the roll for the main group, and Right-click the roll for the contestants. If you don't pick a roll for the contestants, they make the same roll as the main group.

    The contestants appear on the right of the banner, after a "VS". The average of their results becomes the DC that the main group has to beat.

    During the Roll

    Epic RollEpic Roll

    After a short intro with the name of the roll, the banner shows a card for each character.

    • Hover a card to see the character's name. Once they have rolled, the card shows the result and which roll they made.
    • Click the die at the bottom of the card to roll. Any user who owns the character can roll, and the GM can roll for everyone. If the character can choose between several rolls, a menu opens first: pick the roll to make.
    • With Skip Roll Dialog on, the roll is made immediately with the character's bonuses. Shift + Click the die to open the system's roll window instead. With Skip Roll Dialog off, it works the other way around.
    • In systems with advantage, like D&D 5e, hover the die to show the ADV and DIS buttons, and click one to roll with advantage or disadvantage.
    • The GM can click a result to roll it again (players can only do that when Allow Reroll is on).
    • The GM can cancel the Epic Roll with the red X in the top right corner.

    When everyone has rolled, the outro plays with the success or failure sound, and the banner closes.

    Recent Rolls

    Recent RollsRecent Rolls

    Right-click the Epic Roll button to see your last rolls. Click one to open the Configure Epic Roll window with the same characters, rolls and options.

    The first entry, Roll Initiative, rolls initiative as an Epic Roll right away: for the selected tokens or, if none is selected, for everyone in the combat. Player characters roll against the other creatures.

    Inline Roll Requests

    Request Epic RollRequest Epic Roll
    ℹ️

    This feature works only in the D&D 5e system.

    D&D 5e lets you write roll requests in journals and descriptions, like [[/check acrobatics dc=15]]. Epic Rolls adds a Request Epic Roll button (the d12 icon) next to them: click it to open the Configure Epic Roll window with that roll and DC already set.

    The Inline Roll Requests setting chooses how this works:

    • Show Epic Rolls Icon (default): adds the d12 button, the normal request button still works as usual.
    • Always use Epic Rolls: the normal request button opens the Epic Roll window instead.
    • Disabled: leave roll requests as they are.

    After the Roll

    Recap MessageRecap Message

    When the roll ends, a recap message is posted in the chat with the name of the roll, each character's result and whether it beat the DC, and the final Success or Failure. When a character could choose between several rolls, the recap shows which one they made.

    The recap is posted only when a GM is connected. Epic Rolls needs a connected GM to start a roll in any case.

    Settings

    In Game Settings -> Configure Settings -> Epic Rolls:

    • Aspect: click Configure Aspect to change the artwork of the Epic Roll (see Aspect).
    • Recap Message: who can see the recap message: None (no message), GM (default) or Public. With Hide Names or Private Roll on, the recap is always sent to the GM only.
    • Cleanup Messages: delete the individual roll messages from the chat when the Epic Roll ends, since the recap already shows all the results. Off by default.
    • Inline Roll Requests: see Inline Roll Requests.
    • Intro Sound, Success Sound, Failure Sound: the sounds played when the roll starts and when it ends in success or failure. Pick any audio file.

    In Configure Controls:

    • Open Epic Roll Menu: opens the Configure Epic Roll window. No key by default.

    Aspect

    Configure AspectConfigure Aspect

    Configure Aspect sets the images Epic Rolls uses, so the banner can match your game:

    • Banner: the background of the banner behind the title of the roll and the character cards.
    • Roll Badge: the badge behind the die on each character card.

    By default they are the D&D 5e system artwork. In other systems, or if you clear a field, Epic Rolls uses its plain style. Reset to Defaults puts the D&D 5e images back, and Save Changes applies the change for everyone.

    Advanced

    API

    You can start an Epic Roll from a macro or another module. The easiest way to get the data for a roll is to set it up in the Configure Epic Roll window and click Save to Macro.

    /* Calling this function while an Epic Roll is in progress will queue the request */
    ui.EpicRolls5e.requestRoll(data)

    A GM must be connected, since the GM's client runs the roll.

    Where data is an object with the following properties:

    /**
     * @typedef {Object} EpicRollData
     * @property {string[]|Actor[]} actors - The actors (or their UUIDs) participating in the roll.
     * @property {string[]|Actor[]} [contestants] - The contestants (or their UUIDs), if any.
     * @property {string} type - The roll to make (more below).
     * @property {string[]} [types] - Several rolls each actor can choose from (replaces type).
     * @property {string|null} contest - The roll the contestants make, if any.
     * @property {string[]} [contests] - Several rolls each contestant can choose from (replaces contest).
     * @property {Object} options - Options for the roll.
     * @property {number} options.DC - The Difficulty Class of the roll.
     * @property {boolean} options.showDC - Whether to display the DC to players.
     * @property {boolean} options.useAverage - Whether to use the average of the results to determine success.
     * @property {boolean} options.allowReroll - Whether to allow rerolls.
     * @property {boolean} options.showRollResults - Whether to show the outro text.
     * @property {boolean} options.blindRoll - Whether the roll is blind.
     * @property {boolean} options.privateRoll - Whether each result is visible only to the GM and the roller.
     * @property {boolean} options.hideNames - Whether to hide the names of non-owned actors.
     * @property {boolean} options.autoColor - Whether to color the banner based on the roll type.
     * @property {number} options.color - The banner hue rotation.
     * @property {string} options.formula - A dice formula, for custom rolls.
     * @property {string} options.customLabel - A custom label for the roll.
     * @property {boolean} options.noMessage - Whether to hide the chat message.
     */

    If the request is invalid, the roll doesn't start, the GM gets an error notification and requestRoll returns { error }. The error is "noActors", "missingActor" (an actor can't be found), "noType", "noContest" (contestants without a roll for them) or "noGM" (no GM connected).

    The type and contest properties (and the entries of types and contests) are the keys of the system's rolls, as given by TheRipper93's System Abstraction. In D&D 5e they are:

    "skill.ath"              // a skill check (Athletics)
    "save.wis"               // a saving throw (Wisdom)
    "save.death"             // a death saving throw
    "check.int"              // an ability check (Intelligence)
    "tool.herb"              // a tool check (Herbalism Kit)
    "initiative.initiative"  // initiative
    "custom.formula"         // the dice formula in options.formula

    For example, this asks the selected tokens for a DC 15 Athletics or Acrobatics check and waits for the result:

    const actors = canvas.tokens.controlled.map((t) => t.actor);
    const result = await ui.EpicRolls5e.requestRoll({
        actors,
        type: "skill.ath",
        types: ["skill.ath", "skill.acr"],
        options: { DC: 15, showDC: true },
    });
    if (!result.error && !result.canceled) ChatMessage.create({ content: result.success ? "You made it across!" : "You fall!" });

    The returned result object has the following properties:

    /**
     * @typedef {Object} EpicRollResults
     * @property {boolean} canceled - Whether the GM canceled the roll.
     * @property {boolean|undefined} success - Whether the group succeeded (undefined if there is no DC or contest).
     * @property {EpicRollResult[]} results - One result for each actor that rolled.
     */
     
    /**
     * @typedef {Object} EpicRollResult
     * @property {Actor} actor - The actor that rolled.
     * @property {number} value - The total of the roll.
     * @property {Roll} roll - The roll.
     * @property {string} rollKey - The roll the actor made (e.g. "skill.acr"), useful with types.
     * @property {Object} check - The system's result: success, criticalSuccess, criticalFailure, levelOfSuccess, ...
     */