This is a short script I wrote for my 5E game, where my character had a number of actions that could be used a limited number of times per short rest, and I wanted my token actions to do the bookkeeping for me. There's not a lot to it, but hopefully someone else might find it useful. Here's version 1.0.0 . The script defines a command `!debit [attribute-name] [escaped-action]`, which you can use in the chat window directly or within macros. if the attribute has a positive current value, the attribute's value is decreased by one and the action is performed otherwise, the user gets a message that the current character can't perform the action at this time. The script unescapes the given action (replacing "\x" for "x" for all characters "x") to allow you to pass commands like "%\{...}" or "&\{...}". For example, Coll is a 5E Fighter and has the Class Feature "Second Wind". So, using the 5E Shaped character sheet, I create a class action for Coll: Name: Second Wind Current: 1 Max: 1 Recharge: Short Rest Gained From: Fighter Output: as a bonus action, hits his second wind, regaining [[1d10+@{fighter_level}]] hit points Which I can use in chat as: %{Coll|classaction1} This works fine, but it relies on the player to make sure Coll hasn't spent his Second Wind yet, and to update the Current value after doing so. Here's where Debit comes in. By instead using the chat command !debit classactionresource1 %\{Coll|classaction1} The class action can only be run once. After that, it will send a whisper to the player to inform them that the Coll can't do that action right now. This is my first script for Roll20, so let me know if you have any suggestions or questions. Thanks!