misthero / dnd5e-spellpoints

FoundryVTT module for spellpoints magic system 5e
MIT License
8 stars 16 forks source link
foundryvtt magic spell-points

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 character to cast spells using a resource named "Spell Points". It also allow to create your custom Spell Points / Mana rules and advancement system.

Changelog

https://github.com/misthero/dnd5e-spellpoints/blob/main/CHANGELOG.md

Installation Instructions

Old v1 verion Instructions

You are ready to go, now spells cast by player's characters will use spell points instead of slots.

Notice: Slots won't disappear from character sheets, but they will always stay full as long as this module is enabled.

Features

DnD v3 Specific Features (spellpoints Item)

Example Custom Formulas

DMG

By the DMG, a character will always have enough spell points to create the spell slots they would normally have. This can be calculated by starting with 0 and adding up the spell point cost of every slot they would normally have, multiplying it by 1.

Base Formula

0

Spell Point Multiplier

1

Advanced Magic

See the Advanced Magic spell point system for why characters may not always have enough spell points to cast all of their normal spell slots.

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: Create a macro with the following script:

console.log(actor.data.data)

Foundry VTT V10+: Create a macro with the following script:

console.log(actor.getRollData())

While selecting a token, execute the macro. Then, look at the console. This will tell you all the data that is available to you when writing a formula.

You can test out a formula by rolling it in chat while selecting a token. The following formula would determine the largest modifier which are typically used for spell casting, and it would roll it in chat.

/roll { @abilities.wis.mod,  @abilities.int.mod,  @abilities.cha.mod}kh

It is also possible to add a module or create your own module that edits or adds information to actor.system. This new information will be available to the formulas with no concerns over compatibility.

To do

Incompatibility

None at the moment but please let me know if any.