I can think of a few issues with implementing this idea (which I do like): 1. Calculating the number of spells that can be prepared for a single-classed character isn't too difficult. 0.5 * Spellcasting Modifier + Level for full casters, 0.5 * Spellcasting Modifier + 0.5 * Level for half casters. So the sheet would just need to see which class is selected and do the calculation based on the spellcasting modifier. (Cleric, Druid, and Wizard are full casters who prepare spells; Paladin is the only half caster that prepares spells; all other classes are 'known' casters and don't get to change their spells during a long rest.) Certainly doable. 2. Calculating the number of spells that can be prepared for a multi-classed character is a little trickier. Still doable, but now the sheet has to check for how many levels in each class and then do the calculation and sum. This also adds a wrinkle of whether there will be a check to make sure you have prepared the correct number of spells for each class . 3. There will also need to be a way to exclude spells that are known from non-spellcasting class features, such as Racial Traits (e.g. Tiefling's Hellish Rebuke or the Hat of Disguise Disguise Self spells). For that case, it would already be nice if there was a different color dot or something to distinguish between spells that have been prepared for the class versus other features. With that, Kyle G's suggestion to add a calculation is a good workaround in the meantime. But I would simply use 'spellcasting_ability' instead of 'wisdom_mod' as it'll work for any base class. [[@{spellcasting_ability}@{base_level}]] If you want a better macro that shows how many spells are prepared per level with a total at the bottom, then here is a macro you can use: /w gm &{template:npcaction} &{noerror} {{rname=@{selected|character_name}}} {{name=Prepared Spells}} [[ [[0@{selected|repeating_spell-1_$0_spellprepared} + 0@{selected|repeating_spell-1_$1_spellprepared} + 0@{selected|repeating_spell-1_$2_spellprepared} + 0@{selected|repeating_spell-1_$3_spellprepared} + 0@{selected|repeating_spell-1_$4_spellprepared} + 0@{selected|repeating_spell-1_$5_spellprepared} + 0@{selected|repeating_spell-1_$6_spellprepared} + 0@{selected|repeating_spell-1_$7_spellprepared} + 0@{selected|repeating_spell-1_$8_spellprepared} + 0@{selected|repeating_spell-1_$9_spellprepared}]] + [[0@{selected|repeating_spell-2_$0_spellprepared} + 0@{selected|repeating_spell-2_$1_spellprepared} + 0@{selected|repeating_spell-2_$2_spellprepared} + 0@{selected|repeating_spell-2_$3_spellprepared} + 0@{selected|repeating_spell-2_$4_spellprepared} + 0@{selected|repeating_spell-2_$5_spellprepared} + 0@{selected|repeating_spell-2_$6_spellprepared} + 0@{selected|repeating_spell-2_$7_spellprepared} + 0@{selected|repeating_spell-2_$8_spellprepared} + 0@{selected|repeating_spell-2_$9_spellprepared}]] + [[0@{selected|repeating_spell-3_$0_spellprepared} + 0@{selected|repeating_spell-3_$1_spellprepared} + 0@{selected|repeating_spell-3_$2_spellprepared} + 0@{selected|repeating_spell-3_$3_spellprepared} + 0@{selected|repeating_spell-3_$4_spellprepared} + 0@{selected|repeating_spell-3_$5_spellprepared} + 0@{selected|repeating_spell-3_$6_spellprepared} + 0@{selected|repeating_spell-3_$7_spellprepared} + 0@{selected|repeating_spell-3_$8_spellprepared} + 0@{selected|repeating_spell-3_$9_spellprepared}]] + [[0@{selected|repeating_spell-4_$0_spellprepared} + 0@{selected|repeating_spell-4_$1_spellprepared} + 0@{selected|repeating_spell-4_$2_spellprepared} + 0@{selected|repeating_spell-4_$3_spellprepared} + 0@{selected|repeating_spell-4_$4_spellprepared} + 0@{selected|repeating_spell-4_$5_spellprepared} + 0@{selected|repeating_spell-4_$6_spellprepared} + 0@{selected|repeating_spell-4_$7_spellprepared} + 0@{selected|repeating_spell-4_$8_spellprepared} + 0@{selected|repeating_spell-4_$9_spellprepared}]] + [[0@{selected|repeating_spell-5_$0_spellprepared} + 0@{selected|repeating_spell-5_$1_spellprepared} + 0@{selected|repeating_spell-5_$2_spellprepared} + 0@{selected|repeating_spell-5_$3_spellprepared} + 0@{selected|repeating_spell-5_$4_spellprepared} + 0@{selected|repeating_spell-5_$5_spellprepared} + 0@{selected|repeating_spell-5_$6_spellprepared} + 0@{selected|repeating_spell-5_$7_spellprepared} + 0@{selected|repeating_spell-5_$8_spellprepared} + 0@{selected|repeating_spell-5_$9_spellprepared}]] + [[0@{selected|repeating_spell-6_$0_spellprepared} + 0@{selected|repeating_spell-6_$1_spellprepared} + 0@{selected|repeating_spell-6_$2_spellprepared} + 0@{selected|repeating_spell-6_$3_spellprepared} + 0@{selected|repeating_spell-6_$4_spellprepared}]] + [[0@{selected|repeating_spell-7_$0_spellprepared} + 0@{selected|repeating_spell-7_$1_spellprepared} + 0@{selected|repeating_spell-7_$2_spellprepared} + 0@{selected|repeating_spell-7_$3_spellprepared} + 0@{selected|repeating_spell-7_$4_spellprepared}]] + [[0@{selected|repeating_spell-8_$0_spellprepared} + 0@{selected|repeating_spell-8_$1_spellprepared} + 0@{selected|repeating_spell-8_$2_spellprepared} + 0@{selected|repeating_spell-8_$3_spellprepared} + 0@{selected|repeating_spell-8_$4_spellprepared}]] + [[0@{selected|repeating_spell-9_$0_spellprepared} + 0@{selected|repeating_spell-9_$1_spellprepared} + 0@{selected|repeating_spell-9_$2_spellprepared} + 0@{selected|repeating_spell-9_$3_spellprepared} + 0@{selected|repeating_spell-9_$4_spellprepared}]] ]] {{description=Lvl 1: $[[0.computed]] Lvl 2: $[[1.computed]] Lvl 3: $[[2.computed]]
Lvl 4: $[[3.computed]] Lvl 5: $[[4.computed]] Lvl 6: $[[5.computed]]
Lvl 7: $[[6.computed]] Lvl 8: $[[7.computed]] Lvl 9: $[[8.computed]]
$[[9.computed]] / [[@{selected|spellcasting_ability}@{selected|base_level}]]}} Of if you want to add a Trait to your character that can be clicked on, it will look like this: Level 1: $[[1.computed]] Level 2: $[[2.computed]] Level 3: $[[3.computed]] Level 4: $[[4.computed]] Level 5: $[[5.computed]] Level 6: $[[6.computed]] Level 7: $[[7.computed]] Level 8: $[[8.computed]] Level 9: $[[9.computed]] Total: $[[10.computed]] / [[@{spellcasting_ability}@{base_level}]] }} {{{[[ [[0@{repeating_spell-1_$0_spellprepared} + 0@{repeating_spell-1_$1_spellprepared} + 0@{repeating_spell-1_$2_spellprepared} + 0@{repeating_spell-1_$3_spellprepared} + 0@{repeating_spell-1_$4_spellprepared} + 0@{repeating_spell-1_$5_spellprepared} + 0@{repeating_spell-1_$6_spellprepared} + 0@{repeating_spell-1_$7_spellprepared} + 0@{repeating_spell-1_$8_spellprepared} + 0@{repeating_spell-1_$9_spellprepared}]] + [[0@{repeating_spell-2_$0_spellprepared} + 0@{repeating_spell-2_$1_spellprepared} + 0@{repeating_spell-2_$2_spellprepared} + 0@{repeating_spell-2_$3_spellprepared} + 0@{repeating_spell-2_$4_spellprepared} + 0@{repeating_spell-2_$5_spellprepared} + 0@{repeating_spell-2_$6_spellprepared} + 0@{repeating_spell-2_$7_spellprepared} + 0@{repeating_spell-2_$8_spellprepared} + 0@{repeating_spell-2_$9_spellprepared}]] + [[0@{repeating_spell-3_$0_spellprepared} + 0@{repeating_spell-3_$1_spellprepared} + 0@{repeating_spell-3_$2_spellprepared} + 0@{repeating_spell-3_$3_spellprepared} + 0@{repeating_spell-3_$4_spellprepared} + 0@{repeating_spell-3_$5_spellprepared} + 0@{repeating_spell-3_$6_spellprepared} + 0@{repeating_spell-3_$7_spellprepared} + 0@{repeating_spell-3_$8_spellprepared} + 0@{repeating_spell-3_$9_spellprepared}]] + [[0@{repeating_spell-4_$0_spellprepared} + 0@{repeating_spell-4_$1_spellprepared} + 0@{repeating_spell-4_$2_spellprepared} + 0@{repeating_spell-4_$3_spellprepared} + 0@{repeating_spell-4_$4_spellprepared} + 0@{repeating_spell-4_$5_spellprepared} + 0@{repeating_spell-4_$6_spellprepared} + 0@{repeating_spell-4_$7_spellprepared} + 0@{repeating_spell-4_$8_spellprepared} + 0@{repeating_spell-4_$9_spellprepared}]] + [[0@{repeating_spell-5_$0_spellprepared} + 0@{repeating_spell-5_$1_spellprepared} + 0@{repeating_spell-5_$2_spellprepared} + 0@{repeating_spell-5_$3_spellprepared} + 0@{repeating_spell-5_$4_spellprepared} + 0@{repeating_spell-5_$5_spellprepared} + 0@{repeating_spell-5_$6_spellprepared} + 0@{repeating_spell-5_$7_spellprepared} + 0@{repeating_spell-5_$8_spellprepared} + 0@{repeating_spell-5_$9_spellprepared}]] + [[0@{repeating_spell-6_$0_spellprepared} + 0@{repeating_spell-6_$1_spellprepared} + 0@{repeating_spell-6_$2_spellprepared} + 0@{repeating_spell-6_$3_spellprepared} + 0@{repeating_spell-6_$4_spellprepared}]] + [[0@{repeating_spell-7_$0_spellprepared} + 0@{repeating_spell-7_$1_spellprepared} + 0@{repeating_spell-7_$2_spellprepared} + 0@{repeating_spell-7_$3_spellprepared} + 0@{repeating_spell-7_$4_spellprepared}]] + [[0@{repeating_spell-8_$0_spellprepared} + 0@{repeating_spell-8_$1_spellprepared} + 0@{repeating_spell-8_$2_spellprepared} + 0@{repeating_spell-8_$3_spellprepared} + 0@{repeating_spell-8_$4_spellprepared}]] + [[0@{repeating_spell-9_$0_spellprepared} + 0@{repeating_spell-9_$1_spellprepared} + 0@{repeating_spell-9_$2_spellprepared} + 0@{repeating_spell-9_$3_spellprepared} + 0@{repeating_spell-9_$4_spellprepared}]] ]] }}} &{noerror}