Not sure if this is the right place for this since it is specific to 5e - but using the 5E OGL companion, I have found a effective, but not so elegant way to track Spell Points as Ammo. Because the template for SPELLCARD has no AMMO entry in the template, you are stuck using a roll template for every Spell that you want to track AMMO with. So what you can do is change every spell to ATTACK from SPELLCARD. This will convert the spell to a normal roll template, and will add it as an attack to the character sheet. In order for it to roll, you need to add a 1 to the damage field. I also like to check the box for "include spell description in attack", just to get that Spell Card feel, without the spell card. Now all of your spells will be on the attacks section of the character sheet. If you have AMMO tracking on the OGL sheet, you can create a resource called "Spell Points". Reddit user u/Christroyilator made a macro that you can paste in the Max field, but I like the "clean" look of just a number. The Spell Points resource should either be in the class_resource or the other_resource field, since those can be linked to your token bars. And since Mana is always blue, I would reccomend linking it to your tokens blue bar. As for the actual ammunition, for each spell, you will need to put "Spell Points, X" where X is the number of spell points it costs to cast that spell. For example - Disguise Self is a level 1 spell so it will have ammunition Spell Points, 2. *** But what about spells that can be cast at multiple levels? This was a question that seemed like it should have an easy answer, but as it turned out was kinda tricky. I learned along the way certain things about the different fields in the sheet. Normally when a spell can be cast at multiple levels, it will do a hidden query and the result will be added from the Higher Level field on the spell. We want to be able to manipulate this query, so what I recommend is that you remove this and put it in the "damage" field. So for example a spell like Sleep is normally a roll of 5d8 and has a higher level field of 2d8 for each spell level beyond the first. So what you can do is put the damage to 3d8+2*?{Spell Level?|1|2|3|4|5|6|7|8|9} and remove the number from the higher level. This will make it functionally the same, but will make the template only have 1 roll. You can reuse this query as well in the ammunition field, however that is where we run into a problem. The ammunition field allows for queries, but does not allow for math for some reason. The damage field does though, so the not so elegant solution I found is to change the query to convert the spell level directly to spell points, then use the following formula to convert it back to the spell level -ceil((3*query-3)/4). The end result for the sleep spell looks like this - 3d8+[[2*ceil((?{Spell Level|1,2|2,3|3,5|4,6|5,7|6,9|7,10|8,11|9,13}*3-3)/4)]]d8 then in the ammunition field, you can put Spell Points, ?{Spell Level} The end result is that if you click the spell Sleep, it will ask you what level, will roll the appropriate amount of dice for the spell level, and will subtract the correct amount of spell points from the Spell Points resource automatically. To expand this to make it a bit more comprehensible, I have gone ahead and made a attribute on a character named "Macros" and the attribute is called "SLQ" (short for Spell Level Query) specifically - SLQ=[[ceil((?{Spell Level|1,2|2,3|3,5|4,6|5,7|6,9|7,10|8,11|9,13}*3-3)/4)]] so the damage section of the attack is now 3d8+[[2+@{Macros|SLQ}]]d8 and the ammunition is still Spell Points, ?{Spell Level} That said, tt does seem to work much faster if I make a attribute on the character using the spell and make the damage 3d8+[[2+@{SLQ}]]d8 Using this, I can make every scalable spell deduct the appropriate number of spell points. **Note - If you want to utilize this without the API, adding ?{Spell Level|1,2|2,3|3,5|4,6|5,7|6,9|7,10|8,11|9,13} to the description of a spell can help a lot, and you can simply subtract the number from the Blue bubble. You also don't have to use the OGL companion script - I am sure it is easy to use ChatSetAttr to do the same thing, but I don't know if it would be possible to make it all 1 button like this.