If you haven't already set up the ChatSetAttr, go to your game's page and in the settings menu (gear), go to API scripts. There are two "kinds" of scripts: ones that you can automatically add to your game from the "Roll20 API Script Library", and they'll update as the authors update them, or you can manually add them. In this case we're going to add it from the "Roll20 API Script Library" drop down. Find "ChatSetAttr" and click "Add Script". You should see some stuff happening in the API Output Console. There are several ways to use macros. First, from a character sheet button. Depending on the sheet, those may or may not allow you to edit them. Another way is from the Attributes & Abilities tab, where you can add an Ability macro. Also you can run any macro by simply typing (or pasting it) into the chat. And of course there's also the Macros tab (where chat, and character sheets are). If a character has a "wands-charges" attribute with a value of, say, "42", then you can type this into the chat or make a macro: !setattr --sel --wand-charges|41 You have to have the character selected for this to work. It's also not very dynamic, as it only ever changes the value to "41". So try the following: !setattr --sel --wand-charges|[[@{selected|wand-charges}-1]] This sets the selected character's "wand-charges" to the existing value minus 1. The "[[" and "]]" make it an in-line calculation. You could even do something like: !setattr --sel --wand-charges|[[@{selected|wand-charges}-1d6]] Which would reduce the value by 1d6. There's a whole lot more you can do with this and a lot of different ways you can put it all together, but I hope this got you started.