Spell Notes
Personal, per-user text attached to a spell. Notes are scoped per user and per spell: two players viewing the same spell on the same actor each see their own note.
Opening the notes dialog
Section titled “Opening the notes dialog”Each spell row shows a sticky-note icon when the Notes element is enabled in Details Customization. Clicking the icon opens the Spell Notes dialog for that spell.
The outlined icon means no note is saved for that user, actor, and spell, while the solid, highlighted icon means a note exists.
The dialog positions itself next to the icon that opened it, preferring the right side, falling back to the left, then centering when space is tight.
If the icon does not appear, confirm the Notes element is enabled in Details Customization.

Dialog fields
Section titled “Dialog fields”| Field | Description |
|---|---|
| Notes textarea | Free-form text. Auto-sizes between three and eight rows based on existing content length. |
| Character counter | Shows characters remaining. Enters a warning state as the note approaches the limit and an error state when the limit is exceeded. |
| Save button | Submits the form. Disabled while the textarea is empty or over limit. |
| Cancel button | Closes without saving. |
The maximum note length is the world-level setting Maximum Note Length. See Installation and Settings.
Storage
Section titled “Storage”Notes live in the module’s user-spell-data compendium pack, inside a journal entry named User Spell Data. Each user owns a page on that journal.
Notes survive actor-item rebuilds and spell book re-opens because they are keyed by spell UUID rather than by the actor’s item. Removing and re-adding a spell to an actor does not clear its note.
A session-scoped cache avoids re-reading the journal on every lookup. Saving a user’s notes updates that user’s cache entry immediately; deleting a user from the world clears their cached entry.
Saving a note refreshes every matching sticky-note icon in the current view, keeping the outlined-versus-solid state in sync without a full re-render.
Per-user, per-actor scope
Section titled “Per-user, per-actor scope”When a player opens the dialog, the note is saved to their own user. When a GM opens the dialog on a player-owned actor, the note attaches to that player, not the GM; a GM annotating their own actor uses their own note.
A GM does not see a player’s notes unless impersonating that user.
Two players on the same shared actor can each annotate the same spell with different text; each sees only their own.
Notes are not broadcast; they stay local to the owning user’s journal page and are never surfaced through party-mode sharing.
Description injection
Section titled “Description injection”Notes can be injected into the spell’s description on the actor sheet, so they appear inline in the spell tooltip or sheet. The client-scope setting Inject Notes into Spell Descriptions controls whether notes are injected and whether they are prepended or appended. Each user chooses their own preference. See Installation and Settings.
Injection runs when a spell is added to an actor, when a spell’s description changes, and when a note is saved from the dialog. Changing the injection setting does not bulk-strip or reapply existing notes; a new value takes effect on the next spell add, description change, or note save.
Note text is sanitized before injection: simple formatting is preserved, and unsafe HTML is stripped.
Compendium copies and actor-owned copies of the same spell resolve to the same note entry.
Visibility control
Section titled “Visibility control”The sticky-note icon appears only when the Notes element is enabled in Details Customization and the spell has a resolvable UUID.
A player who does not want the icon disables the Notes element in Details Customization. That is a client-scope setting: it affects only that user’s UI.