Skip to content

FAQ

Frequently asked questions about Spell Book.


Spell Book is a FoundryVTT module that replaces the default spell management experience with an organized, rule-aware interface. It handles spell preparation, multiclass spellcasting, wizard spellbook management, party coordination, loadouts, and more.

Spell Book is built exclusively for the dnd5e system (5.3.0 or later). It is not compatible with other game systems.

  • Click the Spell Book button on a character sheet.
  • Run SPELLBOOK.api.spellBookQuickAccess() from a hotbar macro with a token selected.
  • Through token HUD controls, if configured.

Yes. The module ships five packaged macros in the spell-book.spell-book-macros compendium. Each GM-ready event reconciles and upserts them automatically.

MacroPurpose
Spell Book Quick AccessOpen Spell Book for the selected token
Slot TrackerPost a chat card listing slot usage
Scroll ScannerScan every Item compendium for spell scrolls
Spells Not In ListsGM-only: find spells not referenced by any spell list
Flag PurgeGM-only: purge Spell Book flags from an actor

Drag any of them directly from the compendium to your hotbar, or write your own macros calling the same API functions.


Open Spell Book Settings on the actor and pick a Class Spell List for that class. Without a list assigned, the class has no spell source and the tab will be empty. When a class gains spellcasting with no list, the module already whispers you and the character’s owners a card whose button opens the right place to assign one.

Open Spell Book Settings and set a Subclass Spell List explicitly. A subclass list only appears if you point at one directly.

How do I get bonus domain / oath / patron spells?

Section titled “How do I get bonus domain / oath / patron spells?”

In Spell Book Settings, pick the subclass journal in the Subclass Spell List field. That journal holds the expanded list and its spells are granted and always prepared.

Why did some spell lists disappear from the picker and the Spell List Manager?

Section titled “Why did some spell lists disappear from the picker and the Spell List Manager?”

You disabled the Compendium Browser source those lists draw from. A stock list is hidden when every spell on it belongs to a disabled source. Re-enable the source in the Compendium Browser to restore the lists. A list already assigned to a class stays selectable, marked “(source disabled)”.

I edited a stock spell list. Where did the original go?

Section titled “I edited a stock spell list. Where did the original go?”

When you modify a bundled list, the original is moved into the Hidden Spell Lists folder automatically so it does not shadow your edits. To restore it:

  • Open the Spell List Manager, find the entry in the Hidden Spell Lists folder, and click the eye-slash icon next to it to unhide it, or
  • Delete your modified version; the original becomes visible again.

The plain eye icon on visible lists hides them; the eye-slash icon on hidden lists unhides them.

After modifying a list, the “Classes” label on a spell isn’t right.

Section titled “After modifying a list, the “Classes” label on a spell isn’t right.”
  • Spells added to a list update their class label immediately.
  • Spells removed from a list keep their old class label until a world reload. The system registry has no unregister API, so stale entries persist until the registry is rebuilt on startup. This is an upstream limitation.

Why do some spells (Fire Bolt, Shield, etc.) appear multiple times?

Section titled “Why do some spells (Fire Bolt, Shield, etc.) appear multiple times?”

Multiple source packs ship the same spell. SRD 5.1, SRD 5.2, and PHB 2024 all include many overlapping entries. All copies are legitimate; Spell Book no longer dedupes them because doing so silently hid content from some packs. Use debugSpell('spell name') to see which packs a given spell name comes from, and pick the copy you prefer in the Spell List Manager.

How do I find spells that aren’t in any list?

Section titled “How do I find spells that aren’t in any list?”

Run SPELLBOOK.api.spellsNotInLists() (GM) to audit every Item compendium against every discoverable spell list. The Troubleshooter report includes the same audit.


You’ve reached your preparation limit for that class. The footer shows your current count vs. maximum. The limit is derived from class level and spellcasting ability modifier. If the number looks wrong, check ability scores and class levels on the character sheet.

Can a player exceed their spell or cantrip maximum?

Section titled “Can a player exceed their spell or cantrip maximum?”

Yes. Preparation is not blocked. If Notify GM on Spell Changes is enabled, the GM receives a whispered card on save listing what the player added or removed, and a class that is over its limit adds a warning to that card. The player also sees an over-limit toast while editing.

”Notify GM” doesn’t fire for some players.

Section titled “”Notify GM” doesn’t fire for some players.”

There are two controls:

  • A world setting (notifyGmOnSpellChanges) that enables the feature globally.
  • A per-actor override exposed in that actor’s Spell Book Settings.

Both must be enabled for notifications to fire for a given actor.

What does a locked/disabled spell checkbox mean?

Section titled “What does a locked/disabled spell checkbox mean?”

Locked spells are always prepared. They’re granted by your class, subclass, or an item. They’re excluded from the preparation system entirely: they cannot be unprepared, and they do not count against the preparation limit.

Each spellcasting class has its own tab and its own preparation limit. You prepare spells for each class independently. Spell slots are shared across classes using standard multiclass slot calculations.

TagMeaning
PreparedCurrently prepared, ready to cast
GrantedAlways prepared via class feature or item
At WillCastable without spell slots
PactUses Warlock pact magic slots
RitualCan be cast as a ritual
InnateInnate spellcasting ability

Can I save a loadout without saving spell preparation first?

Section titled “Can I save a loadout without saving spell preparation first?”

Yes. Loadouts capture the live checkbox state of the preparation grid, so there’s no need to commit preparation before saving a loadout. Apply a loadout and then save preparation as normal.

Yes. Loadouts can be saved and applied per class, which is useful for multiclass characters.


Wizards have a total free spell capacity calculated from class level. Cantrips are always free regardless of capacity. The footer tracks how many free spells remain. Once free spells are used, learning additional spells costs gold.

Yes. When a Wizard learns a spell that exists as a scroll item, the gold cost is applied based on the spell’s level. The GM configures the gold cost formula and whether scrolls are consumed in module settings.

  • Legacy (2014): Traditional rules with no cantrip swapping.
  • Modern (2024): Updated rules allowing cantrip swapping on level-up or long rest (class-dependent).

See Ruleset Types and What They Mean for the full class-specific defaults table.


Cauldron of Plentiful Resources integration?

Section titled “Cauldron of Plentiful Resources integration?”

When the chris-premades module is active, enable the world setting Cauldron of Plentiful Resources Compatibility (cprCompatibility) in Spell Book Settings. When enabled, Spell Book calls chrisPremades.utils.actorUtils.updateAll() on the actor immediately after spell changes are saved. This triggers CPR’s automation setup on the actor’s spells. It does not redirect spell resolution or substitute enhanced compendium spell versions for stock ones.

Yes, Tidy 5e Sheet is listed as an optional relationship and the Spell Book button is wired into its character sheet header the same way it is for the default dnd5e sheet.


Advanced search (the ^-prefix syntax) was removed. Use the plain Name filter in the sidebar. Other filters (level, school, components, damage type, etc.) remain available as dropdowns.

Where does the light theme’s parchment background come from?

Section titled “Where does the light theme’s parchment background come from?”

It reuses the parchment.jpg asset shipped with the dnd5e system, so the Spell Book’s light theme matches the native sheet styling without duplicating assets.

I moved the Spell Book to a second monitor and child dialogs open on the primary monitor.

Section titled “I moved the Spell Book to a second monitor and child dialogs open on the primary monitor.”

Foundry v14’s detach-window feature is supported. When the Spell Book is detached, child dialogs (spell notes, loadout selector, party coordinator, spell comparison, learn-from-scroll, etc.) are routed to the same detached window automatically. If a dialog still opens on the wrong monitor, make sure the parent Spell Book window is the one you detached.


  1. Check that your character has the correct spellcasting class(es) configured on their sheet.
  2. Open Spell Book Settings and confirm a Class Spell List (and Subclass Spell List, if applicable) is assigned.
  3. Ask your GM to verify spell lists exist in the Spell List Manager.
  4. If spells were recently added to a compendium, reload Foundry.
  1. Reload Foundry (F5 or Settings > Return to Setup).
  2. Clear your browser cache.
  3. If the issue persists, generate a Troubleshooter report and share it on Discord or GitHub Issues.
  1. Open the Troubleshooter and export a report.
  2. Open a new issue on GitHub or post in the Discord support channel.
  3. Attach the Troubleshooter report and describe the steps to reproduce the issue.

Spell lists are stored as journal pages in Spell Book’s compendium packs. Per-actor data (preparation state, wizard spellbook, notes, loadouts) is stored as module flags on each actor document.

Yes. Use the Loadout feature to save and restore named spell preparation configurations. Loadouts are stored per-actor and can be swapped instantly. For a world snapshot, the Troubleshooter exports a plain-text .txt report file. That file contains an embedded JSON settings block under a marker line. The Import Settings button reads a .txt report file and extracts the embedded JSON from it.

Module flags remain on actor documents but are inert, so they won’t affect gameplay. Custom spell lists in the module’s compendium packs will be removed with the module. If you plan to reinstall later, your per-actor data will still be there. GMs who want a clean slate can run SPELLBOOK.api.flagPurge() before uninstalling.