Advanced Magic - Spell Points System 5e
FoundryVTT module for using Spell Point in D&D5e.
Not using spellpoints for your games? Well, you should, spellpoints are much better than slots!!
This module uses the variant rules found in the DMG to allow characters to cast spells using a resource named "Spell Points". It also allows you to create your custom Spell Points / Mana rules and advancement system.
Changelog
https://github.com/misthero/dnd5e-spellpoints/blob/main/CHANGELOG.md
Installation Instructions
- Copy
https://github.com/misthero/dnd5e-spellpoints/releases/latest/download/module.json
into the module installer inside Foundry when it asks for the manifest - Launch your world, go to Settings → Module Settings and enable "Advanced Magic - Spell Points System 5e" (
dnd5e-spellpoints
) - Find the SpellPoints item from the module compendium and import it
- Drag the item onto every character or NPC that should use Spell Points
Notice: Slots won't disappear from character sheets, but they won't be used.
Features
- Configurable formulas: All numerical fields use FoundryVTT's Roll class
- SpellPointMaximum Base Formula (applies only with spell slots)
- SpellPointMaximum Slot Multiplier (default:
1
) - Health Penalty Multiplier (from Advanced Magic)
- Variant rule to cast spells using HP when out of spell points
DnD v3/v4 Specific Features (spellpoints Item)
- Configurable Item Name
- Automatic spellpoint bar on character sheet
- Per-character configuration and progression
- Class-specific progression (Full/Half/Third casters)
- Custom spell level costs
Example Custom Formulas
DMG
Base Formula: 0
Spell Point Multiplier: 1
Advanced Magic
Base Formula:
ceil(
(
1 * @spells.spell1.max +
2 * @spells.spell2.max +
3 * @spells.spell3.max +
4 * @spells.spell4.max +
5 * @spells.spell5.max +
6 * @spells.spell6.max +
7 * @spells.spell7.max +
8 * @spells.spell8.max +
9 * @spells.spell9.max
) / 2
)
+
@attributes.spelldc - 8 - @attributes.prof
Spell Point Multiplier: 0
Making Your Own Formula
Foundry VTT V9+ macro script:
console.log(actor.getRollData())
Test formulas in chat:
/roll { @abilities.wis.mod, @abilities.int.mod, @abilities.cha.mod}kh
Active Effects
Use attribute key: dnd5espellpoints
Active Effect Examples
Attribute Key | Change Mode | Value | Result |
---|---|---|---|
dnd5espellpoints.system.uses.max |
Custom | 5 |
Set max uses to 5 |
dnd5espellpoints.system.uses.max |
Custom | +5 |
Increase max by 5 |
dnd5espellpoints.system.uses.max |
Custom | *5 |
Multiply max by 5 |
Macro Helpers
// Get spellpoints item
const item = getSpellPointsItem(actor);
// Modify spellpoints
alterSpellPoints(actor, '-1d20'); // Remove random value
alterSpellPoints(actor, '10'); // Set uses to 10
alterSpellPoints(actor, null, '+10'); // Increase max by 10
alterSpellPoints(actor, '5', '10'); // Set uses=5 and max=10
To Do
- Add configurable daily limits for high-level slots (6+)
Incompatibility
None currently reported