Spell Book Settings (Class Rules)
The Spell Book Settings dialog is the per-actor configuration point for Spell Book. It controls which spell lists each spellcasting class draws from, cantrip and spell swap rules, ritual casting behavior, preparation bonuses, wizard mechanics, and per-actor overrides for global rule settings.
The window title reads Spell Book Settings - {actor name}.

Opening the Dialog
Section titled “Opening the Dialog”The dialog opens from several entry points:
- Spell Book sidebar: Click the gear button in the Player Spell Book sidebar.
- Character sheet: Right-click the Spell Book button on the actor sheet.
- No spell list assigned notice: When a class tab has no spell list, click the notice button to open the dialog scrolled to that class’s section.
Spellcasting-Gain Notice
Section titled “Spellcasting-Gain Notice”When a class or subclass that grants spellcasting is added to a character, or spellcasting is granted during a level-up, the module whispers a chat card to you and to the character’s owners for any affected class that has no spell list assigned. The card names the affected classes. You see an Assign Spell List button that opens Class Rules for that character; an owning player sees an Open Spell Book button that opens their Spell Book.
Global Fieldset
Section titled “Global Fieldset”The top fieldset contains per-actor overrides and a shortcut. These apply to the whole actor, not a specific class.
| Field | Type | Behavior |
|---|---|---|
| Rule Set Override | Select: Use Global / Legacy / Modern | Overrides the world-level Default Spellcasting Rules setting. Use Global inherits the world value. See Ruleset Types and Meanings for what Legacy and Modern change. Sets the class defaults applied when a new class is first initialized on the actor. |
| Notify on Spell Changes | Checkbox | When on, GMs receive a whispered card whenever this actor saves a change to its prepared cantrips or spells. A class over its limit adds a warning line to that card. Inherits the world-level Notify GM on Spell Changes setting. |
| Open Details Customization | Button | Opens the Details Customization dialog. When this dialog is detached, the palette opens in the same detached window. |
Stored on the actor as:
flags.spell-book.ruleSetOverride(null= use global,"legacy", or"modern")flags.spell-book.notifyGm(always an explicittrueorfalseafter save)
Per-Class Sections
Section titled “Per-Class Sections”One fieldset renders per spellcasting class detected on the actor, sorted alphabetically. Each fieldset is headed by the class icon and name. When the actor has no spellcasting classes, a placeholder message shows instead.
Core Fields (all classes)
Section titled “Core Fields (all classes)”| Field | Type | Default | Behavior |
|---|---|---|---|
| Show Cantrips | Checkbox | true for most classes, false for Paladin and Ranger | When off, the cantrip group is hidden in the Spell Book and the class’s non-granted, non-always-prepared cantrips are removed on save. Disabled when the class has no cantrip scale value. |
| Force Wizard Mode | Checkbox | false | Shown only for wizard-eligible classes. When on, this class is treated as a wizard: spellbook tab, free starting spells, level-up free spells, scroll learning, and gold-based copying. |
| Cantrip Swapping | Select: none / level-up / long-rest | Varies by rule set and class | Controls when cantrips may be changed. Disabled when Show Cantrips is off. |
| Spell Swapping | Select: none / level-up / long-rest | Varies by rule set and class | Controls when prepared spells may be changed. |
| Ritual Casting | Select: none / prepared / always | Varies by rule set and class | prepared casts only currently prepared rituals; always casts any ritual from the list. |
| Class Spell List | Multi-select journal picker (customSpellList) | [] | Required. UUIDs of journal spell-list pages this class pulls spells from. When empty, the tab renders the “no spell list assigned” notice and no spells are available. |
| Subclass Spell List | Multi-select journal picker (customSubclassSpellList) | [] | Optional. UUIDs of journal pages that overlay the class list with subclass-specific spells. Leaving it empty means no subclass overlay. |
| Spell Preparation Bonus | Number -20..20 | 0 | Added to the class’s calculated maximum prepared spells. Negative values reduce the cap. |
| Cantrip Preparation Bonus | Number -20..20 | 0 | Added to the class’s calculated maximum prepared cantrips. Disabled when Show Cantrips is off. |
Class and Subclass Spell Lists
Section titled “Class and Subclass Spell Lists”Both multi-selects draw from the same pool of journal pages:
- The module’s built-in custom spell lists pack
- Every other JournalEntry compendium whose pages are of type
spells, excludingothertype - Minus any list UUIDs in the world-level Hidden Spell Lists setting
- Minus any stock list whose spells all come from Compendium Browser sources you have disabled
Options are grouped by Class, Subclass, and Other. Multiple selections on either field are merged at read time and de-duplicated by UUID. Lists are created, duplicated, merged, and renamed through the Spell List Manager. See Creating New Spell Lists and Modifying Existing Spell Lists.
Wizard-Only Fields
Section titled “Wizard-Only Fields”Shown only when the class is detected as a wizard or Force Wizard Mode is enabled.
| Field | Type | Default | Behavior |
|---|---|---|---|
| Starting Spells | Number >= 0 | 6 | Free spells the wizard begins with at level 1. |
| Spells Per Level | Number >= 0 | 2 | Free spells granted on each wizard level-up. |
| Spell Learning Cost Multiplier | Number >= 0 | 50 | Gold pieces per spell level charged when copying a spell into the spellbook. Cantrips are free. |
| Spell Learning Time Multiplier | Number >= 0 | 120 | Minutes per spell level required to copy a spell. Cantrips take 1 minute. |
See Wizard Spellbook Management for how these values feed into the Spellbook tab.
Rule Set Defaults
Section titled “Rule Set Defaults”The defaults applied when a class is first detected depend on the effective rule set (world setting or actor override). See Ruleset Types and Meanings for the full per-class defaults table.
Saving
Section titled “Saving”The Save button in the footer writes all changes as a single actor update:
- Global overrides are written to
flags.spell-book.ruleSetOverrideandflags.spell-book.notifyGm. - Per-class rules are merged into
flags.spell-book.classRules[<classIdentifier>]. - Turning off Show Cantrips deletes the class’s non-granted, non-always-prepared cantrips.
- The per-actor rule cache is cleared and
SpellDataManager.invalidateCache(actor)is called. - Any open Spell Book window for this actor reloads all class tabs.
Prepared spells no longer on a changed spell list are not removed. The dialog closes on submit.