Epic Rolls 5e
A module to make group rolls more engaging with some flair and sound effects. Let your other players spectate the roll and see the results in real time!
How to use
Starting a new roll
To start a new Epic Roll, simply click on the epic roll button, located in the bottom half of the chat sidebar, above the chat input box. You will be welcomed by a new window, where you can configure the roll you want to make.
Right clicking the button will open recent rolls, so you can re-use them.
- The right click menu also has a quick initiative button!
Configuring the roll
The roll configuration window is divided into 3 sections:
Player selection
In this section (on the left) you can select the actors that will participate in the roll.
Click
on the+
button in theAvailable
list to add actors to the roll.Click
on the-
button in theSelected
list to remove actors from the roll.Right clicking
on an actro will mark it as a Contestant.
Roll selection
In this section (in the middle) you can select the roll that will be made.
Click
on an option to mark it as the selected roll.Right Click
on an option to mark it as the Contestant roll.
Roll configuration
In this section (on the right) you can configure the roll itself. All the settings have a brief description under them explaining what they do.
During the roll
Once you start the roll, the animation will play for all users.
- Click on the dice icon to Roll, any user set to owner of the actor will be able to roll. The roll is Fast Forwarded by default, hold
shift
for the roll configuration window. - Click on the
ADV
orDIS
buttons to toggle advantage or disadvantage. - As a
GM
, you can cancel the roll with theX
button on the top right of the sceen. - Once all results are in, the roll will be resolved and the results will be posted in the chat. An outro animation will also play.
After the roll
After the roll is finished, the roll window will close and the results will be posted in the chat. By default this message is only visible to the GM, but you can change this in the module settings.
Module Settings
The module settings will let you customize the sounds that are played when a roll is made, and when a roll is finished with different sounds for success and faillure. By default the module uses the same sounds for success and faillure, but you can change them to whatever you want.
You can also delete chat messages generated by rolls made while in the epic rolls window. This option is suggested if you want a cleaner chat, since the roll results are displayed anyways at the end of the roll.
API
You can start an Epic Roll using the following API call:
/* Calling this function while an Epic Roll is in progress, will queue the request */
ui.EpicRolls5e.requestRoll(data)
Where data
is an object with the following properties:
/**
* Represents a skill check object.
* @typedef {Object} SkillCheck
* @property {string[]|Actor[]} actors - An array of actor UUIDs or Actors participating in the roll.
* @property {string[]|Actor[]} contestants - An array of contestant UUIDs or Actors participating in the roll.
* @property {string} type - The type of roll (more below).
* @property {string|null} contest - The type of the contest (if any).
* @property {Object} options - Options for the skill check.
* @property {number} options.DC - The Difficulty Class (DC) of the skill check.
* @property {boolean} options.showDC - Flag indicating whether to display the DC.
* @property {boolean} options.useAverage - Flag indicating whether to use average values.
* @property {boolean} options.allowReroll - Flag indicating whether to allow rerolls.
* @property {boolean} options.showRollResults - Flag indicating whether to show the outro animation.
* @property {boolean} options.blindRoll - Flag indicating whether the roll is blind.
* @property {boolean} options.hideNames - Flag indicating whether to hide non-owned participant names.
* @property {boolean} options.autoColor - Flag indicating whether to automatically assign the banner color.
* @property {number} options.color - The banner HUE rotation.
* @property {boolean} options.noMessage - Flag indicating whether to hide the chat message.
*/
The type
and contest
property can be one of the following:
/**
* Represents the type of roll.
* @typedef {string} type
* @description The type of roll.
* @example "skill.ath" - Represents a skill check for Athletics.
* @example "save.wis" - Represents a saving throw for Wisdom.
* @example "check.int" - Represents a ability check for Intelligence.
* @example "tool.Herbalism Kit" - Represents a tool proficiency check for Herbalism Kit.
*/
You can await the result of the roll that will return the results of the roll once all participants have rolled.
const results = await ui.EpicRolls5e.requestRoll(data)
The results
object will have the following properties:
/**
* Represents the result of resolving a roll.
* @typedef {Object} results
* @property {boolean} canceled - Indicates whether the roll resolution was canceled.
* @property {Array.<EpicRollResult>} results - An array of individual results for each actor involved in the roll resolution.
*/
/**
* Represents the result of an individual roll.
* @typedef {Object} EpicRollResult
* @property {Actor} actor - The actor associated with the roll result.
* @property {*} value - The value of the roll result.
* @property {*} roll - The roll object associated with the roll result.
*/