add-free-cast
Grant a D&D 5e spell free casts per rest directly on the granting feature, adding it as an always-prepared spell and tracked additional spell while migrating legacy entries.
Instructions
[D&D 5e] Grant "cast without a spell slot, N per rest" the native 2024 way — Magic Initiate, Favored Enemy, lineage grants. TWO sheet entries result: the spell stays in the repertoire as a normal ALWAYS-PREPARED spell (castable with slots; imported from the compendium if missing), and a cast activity ON the granting feature projects a " - " entry into the sheet's native "Additional Spells" spellbook section with its own tracked pool (default 1/long rest) — no slot, no use-dialog. Also MIGRATES the old shape (on-spell use pool + forward activity) off the spell, and dedupes dnd5e's cached spellbook copies. Idempotent. NEVER track a free cast as a separate tracker feat or as a forward on the spell.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| uses | No | Free casts per recovery period. A number, or a formula string like "@scale.ranger.favored-enemy" for level-scaled pools. Default 1. | |
| grantedBy | Yes | The granting feature ITEM on the actor (name or id) — e.g. "Magic Initiate", "Favored Enemy", a lineage feature. The cast activity lands ON this item and the Additional Spells entry is titled "<Spell> - <feature name>". | |
| recoveryPeriod | No | When the free casts come back: "lr" long rest (default — the 2024 wording for feat-granted casts), "sr" short rest, "day", "dawn", or "dusk". | |
| actorIdentifier | Yes | Name or id of the actor (partial name match supported). Also accepts a placed TOKEN id (from list-tokens): the edit then lands on that token INSTANCE's own delta. | |
| spellIdentifier | Yes | The spell to grant a free cast of — an embedded spell on the actor (name or id), or a premium compendium uuid ("Compendium.dnd-players-handbook.spells.Item.…") to also ADD it to the repertoire (always prepared) when the actor lacks it. |