Creating New Spell Lists
Custom spell lists define the pool of spells a class, subclass, or homebrew group can draw from. The Spell List Manager writes new, merged, and duplicated lists into the module’s spell-book.custom-spell-lists pack. System content is never edited in place.
Prerequisites
Section titled “Prerequisites”- You are logged in as a GM.
- The Spell List Manager is opened from the Compendium sidebar tab footer.
Creating a new list
Section titled “Creating a new list”
- Open the Spell List Manager.
- In the sidebar header, click Create List.
- In the Create List dialog, fill in:
- Name: display name for the list.
- Class: dropdown of detected class identifiers, plus a Custom option at the bottom.
- Custom identifier: disabled until you pick Custom above. Accepts lowercase letters, digits, hyphens, and underscores.
- Subclass Spell List: check if this list represents a subclass rather than a base class.
- Click Create List.
The new list is written to the custom pack’s Custom Spell Lists folder with flags { kind: 'custom' }, selected automatically, and shown in the split view with an empty Current List panel on the right. The module registers the new list’s identifier with dnd5e.registry.spellLists immediately.
Naming guidance
Section titled “Naming guidance”- Class based:
Wizard - Core,Cleric - Divine - Subclass:
Wizard - Bladesinger,Cleric - Twilight Domain - Setting or theme:
Low Magic - Restricted,Underdark Spell List - Versioned:
Wizard - Core (Homebrew v2)
Adding spells
Section titled “Adding spells”Editing is always implicit. There is no mode to enter.
- Browse Available Spells on the left. Click the list in the sidebar to switch the sidebar to filter mode. Filters include Search, Spell Level, School, Casting Time, Damage Type, Condition, Save, Concentration, Material Components, Range (min/max in ft or m), Compendium Source, Spell Source, and a Ritual Only checkbox. A Reset Filters button at the bottom clears them all.
- Add spells using any of:
- Click the + button on a spell row.
- Drag a spell row from Available onto the Current List panel.
- Drop a supported spell document onto the Current List panel from any other drag source.
- Remove spells from the Current List panel via the trash icon.
- Click the Save (floppy) icon in the list header to persist changes.
Note that the guard against duplicate adds only rejects the exact same UUID; the same spell from two different packs adds independently.
Available Spells renders in batches of 50; scroll to the bottom of the panel and the next batch appends automatically.
Bulk editing
Section titled “Bulk editing”For large additions or removals, toggle Selection Mode via the checkmark in the top-right of the footer.
- Click spell rows in either panel to flag them. Shift-click selects a range between the last clicked row and the current one.
- The footer shows a live add/remove counter.
- Click Bulk Save, confirm the add/remove counts in the dialog, or click Cancel Selection to exit without saving.
- Bulk Save stages the changes into the same pending edits as single add/remove. Click the Save (floppy) icon in the list header afterward to persist them.
Duplicating a standard list
Section titled “Duplicating a standard list”If you want a custom copy of a stock class list rather than a blank one, edit it directly:
- Select the standard list in the sidebar.
- Add or remove a spell.
- Click Save. The module automatically:
- Creates a duplicate in the Modified Spell Lists folder with flags
{ kind: 'duplicate', originalUuid, originalName, originalModTime, originalVersion }. - Adds the original’s UUID to
HIDDEN_SPELL_LISTSso the stock entry is hidden. - Maps original to duplicate via
customSpellListMappings. - Registers the duplicate with
dnd5e.registry.spellLists; added spells show their class label on item sheets immediately.
- Creates a duplicate in the Modified Spell Lists folder with flags
The Restore button in the list header resets the duplicate’s spells to match the original’s current list at any time. Deleting the duplicate un-hides the original and clears the mapping.
For the full edit flow see Modifying Existing Spell Lists.
Merging lists
Section titled “Merging lists”
- In the sidebar header, click Merge Lists.
- In the dialog:
- Spell Lists to Merge: multi-select source lists (grouped by Spell Lists, Custom Spell Lists, Merged Spell Lists, Player Spell Books). Requires two or more.
- Merged List Name: required.
- Hide Source Lists after Merge: optional; adds the selected source UUIDs to
HIDDEN_SPELL_LISTSafter the merge.
- Click Merge Lists.
The new list appears in Merged Spell Lists with flags { kind: 'merged', sourceListUuids: [...] } and contains the deduplicated union of all source spells. Merged lists are independent of their sources; edits to a source after the merge do not propagate.
Assigning a list to characters
Section titled “Assigning a list to characters”The module does not auto-load custom lists onto actors. Use one of the two paths below.
Per actor via Spell Book Settings (recommended)
Section titled “Per actor via Spell Book Settings (recommended)”Open the character sheet’s Spell Book, click the cog icon in the header to open Spell Book Settings, then set:
- Class Spell List: one or more list UUIDs for the class’s primary list (
customSpellList). - Subclass Spell List: one or more list UUIDs for the subclass (
customSubclassSpellList). Explicit only; the module does not infer subclass lists from the registry.
See Class Rules for all fields in the dialog.
Global via the registry toggle
Section titled “Global via the registry toggle”In the selected list’s header, tick Add to Spell Registry. This adds the UUID to REGISTRY_ENABLED_LISTS and calls dnd5e.registry.spellLists.register immediately. Any class or subclass matching the list’s identifier resolves to it system-wide.
Saving spell changes on a custom or duplicated list registers it with dnd5e.registry.spellLists the same way automatically, whether or not this toggle is checked. Two lists sharing an identifier can conflict this way even without ever touching the toggle.
Validation before play
Section titled “Validation before play”Before exposing a new list to players, confirm:
- No missing or broken compendium references on spell rows.
- No deprecated or removed spells from source material.
- No duplicate or unintended entries. The add guard only rejects exact UUID matches, so two copies of the same spell from different packs can both appear.
- The list is assigned via Spell Book Settings, or the registry toggle is enabled.