Rollable Tables allow you to draw from a predefined list of outcomes which, in addition to allowing text entries, can link to Actors, Items, Journal Entries, Macro Commands, Playlists, Scenes, or even other Rollable Tables. In addition, Rollable tables have full access to Compendium Packs and the entities they contain.
This article will familiarize you with rollable tables, how to create, configure and use them.
The Rollable Table Interface
New Rollable Tables can be created from the Rollable Tables directory sidebar. Like the Scenes, Actors, Items, and Journal Entires Directories, this directory can contain folders to organize your world's Rollable Tables. Only a Gamemaster or Assistant-level user can change or move folders, but any players with at least Limited permissions for a Rollable Table can see it and the folder containing it.
Creating a new Rollable Table is as simple as clicking the "Create Table" button located at the bottom of the sidebar menu.
The icon to show for your Rollable Table. Click the default (D20) image to change to an image of your choice.
The name of your Rollable Table.
- Table Description
A descriptive entry if you wish to provide a reminder of the purpose of the table.
- Roll Table Formula
The formula used when pressing the "roll" button on the table, this can simply be "1d#" where # is the number of entries in the table, but it also accepts more advanced formulae.
- Draw with Replacement
If a rollable table is set to draw with replacement, its entries are not used up when rolled. If unchecked, this option will only roll each entry in its table once until reset. This usage is intended for representing physical objects that, once claimed, cannot be claimed again. Such as a chest containing only a few items. Once those items are removed, the chest no longer contains them.
- Display Roll to Chat
This option determines whether or not players are able to see the numeric results of the roll on the table. With the results. Regardless of the state of this option, drawing from a Rollable Table will always generate a chat card for the result.
Adding results to the Rollable Table begins with pressing the + button. Every result has a number of options that can be configured to provide a highly customizable experience.
- Result Type
This dropdown selection input allows you to choose either Text, Entity or Compendium. Text allows you to enter plain text or HTML scripted entries which will be output to Chat when they are entered. Entities can be any named entity from
- Result Details
Each type of Result carries with it some specific options. Text allows you to enter plain text or HTML scripted entries which will be output to Chat when they are entered; Text entries can also utilize Foundry's Entity Links(@Entity[ID]) for advanced functionality. Entities require you to choose which type of entity the Rollable Table refers to, with a second box allowing you to type the exact name of the entity to be found. Compendium function effectively the same as Entity, but you select the compendium from which to find the entity's name.
Weight determines how many times a particular result is entered into the table. By default, every result has a weight of 1. After you have assigned your weights, pressing the scales icon at the far right of the results header will generate the appropriate Roll Formula for your results.
When a roll is made on the Rollable table, if the number falls anywhere within the range of a result that result is drawn. In a case where two or more results have an overlapping range, all results are considered drawn.
By default, Foundry supports rolling on secondary tables inside a Rollable table. To accomplish this, assign a result to the Entity - RollTable type and enter the name of the table.
If you wish to have the first table indicate that it is rolling on a sub-table, assign a text result before the secondary Rollable Table result to make a declaration, such as "A small chest containing:". Then provide both of these results the same Range.
To interact with Rollable Tables programmatically, consider using the following API concepts: