Spell Book
Because preparing your spells shouldn't feel like an IRS audit.

Supporting The Module
What You Get
Player Spell Book
A separate window for managing a character's spellcasting, opened from a button the module adds to the dnd5e sheet's Spells tab. One tab per spellcasting class, plus a Learn tab for wizard-enabled classes. Preparation checkboxes, filters, favorites, personal notes, comparison, loadouts, party-mode indicators. Draggable, detachable into its own browser window, supports 2014 and 2024 rules.
Spell List Manager
GM tool for authoring class spell lists. Create new lists, merge existing ones, or edit any stock list from a locked pack. Edits to locked packs auto-clone into your world on save and hide the original. Split-panel view with drag-and-drop between Available Spells and the current list, bulk-select mode for large edits, and a per-list registry toggle that surfaces the list's spells in class labels across Foundry.

Filters
Substring search on name. Level and range as min/max inputs. Dropdowns for school, casting time, target, damage type, condition, save, and source. A five-checkbox Properties group (Verbal, Somatic, Material, Concentration, Ritual) with tri-state click cycling: include, exclude, or ignore. Flat toggles for Costly Material Components, Prepared Only, and Favorites Only. Shift-clicking the reset button also unchecks every prepared spell on every tab.
Wizard Spellbook
Per-class journal-backed spellbook for wizards and wizard-enabled classes. Gold and time copying (50 gp and 2 hours per spell level by default). Scroll learning with optional scroll consumption. Free spells on character creation (6 by default) and on level-up (2 per level). Ritual casting modes: none, prepared, or always-from-book (the last auto-injects ritual-mode items on save). Unlearn support.

Spell Loadouts
Per-class named preparation sets. Capture whatever's currently checked without saving first. Apply from the dialog, or right-click the Loadouts sidebar button for a quick-apply context menu. Hovering a loadout shows every spell in it, sorted by level, with inline icons.

Spell Comparison
Side-by-side table for any number of spells. Columns: level, school, casting time, range, duration, components, damage. The damage cell highlights whichever spell rolls the most dice.
Party Coordination
Every party caster's prepared set on one screen. Per-level spell chips with actor tags, click a member card to filter to that caster, and a Synergy Analysis panel that flags low ritual count, damage-type overlap, duplicated prep, and save diversity.


Details Customization
Turn specific metadata pieces on and off per spell row: level, components, school, casting time, range, damage type, condition, save, concentration, material components. Player and GM configurations are independent. Changes apply to open windows live.

Also Included
- Spell Notes. Per-user personal annotations on any spell. Optional injection into the dnd5e sheet's spell description (before or after).
- Subclass Spell Lists. Pick the Life Domain or Oath of Devotion list directly instead of relying on dnd5e's registry to auto-merge.
- Swap Timing. Per-class cantrip and spell swapping: level-up, long-rest, or never. Long-rest completion prompts when the window opens.
- GM Notifications. Optional chat message when a player prepares past their class limit. World toggle with per-actor override.
- Troubleshooter. GM diagnostic that generates a JSON report to paste into a GitHub issue or Discord.
- Light and dark themes. Light uses the dnd5e parchment texture with copper accents.
For the Tinkerers
Public API at SPELLBOOK.api (also at game.modules.get('spell-book').api ):
// Launch the Spell Book for the current actor
SPELLBOOK.api.spellBookQuickAccess();
// Find spells not covered by any class list
await SPELLBOOK.api.spellsNotInLists();
// Scroll scan for a wizard
const scrolls = await SPELLBOOK.api.scrollScanner(actor);
// Dump everything about a spell (pack, source book, filter data)
SPELLBOOK.api.debugSpell('Revivify');
Hooks: spellBookOpened { actor, app } , spellBookClosed { actor } .
Installation
- Open Foundry's Configuration and Setup screen
- Click Install Module in the Add-on Modules section
- Paste this URL in the Manifest URL field:
https://github.com/Sayshal/spell-book/releases/latest/download/module.json - Click Install
- Enable Spell Book in the Manage Modules section