This macro will report spell slots: /w @{selected|character_name} &{template:npcaction} {{rname=@{selected|character_name}}}{{name=spell slots}}{{description=Level 1 - @{selected|lvl1_slots_expended}|@{selected|lvl1_slots_total} Level 2 - @{selected|lvl2_slots_expended}|@{selected|lvl2_slots_total} Level 3 - @{selected|lvl3_slots_expended}|@{selected|lvl3_slots_total} Level 4 - @{selected|lvl4_slots_expended}|@{selected|lvl4_slots_total} Level 5 - @{selected|lvl5_slots_expended}|@{selected|lvl5_slots_total} Level 6 - @{selected|lvl6_slots_expended}|@{selected|lvl6_slots_total} Level 7 - @{selected|lvl7_slots_expended}|@{selected|lvl7_slots_total} Level 8 - @{selected|lvl8_slots_expended}|@{selected|lvl8_slots_total} Level 9 - @{selected|lvl9_slots_expended}|@{selected|lvl9_slots_total}}} Here is the output: You can remove the higher levels if you think they would be distracting. As for restoring slots with a macro, this is not possible without the API. Macros can only read and report values. They cannot write to a sheet or a token.