ApoY2k said: This is real gold, man. I digged through it for a while and I think I figured most of it out. I will try to create a similar sheet for my stuff. Two questions: Why does the first { in the command buttons not need escaping? (?{template:...) And: What do you mean by storing the query options? I didn't quite see where you applied that. I'm only escaping the ending brackets because the roll template fields end at the first }} that they see (similarly to how roll queries end at the first } that they see) even if that double bracket is inside a command button syntax. So in order for the template fields to show up correctly, you need to escape those double brackets that are inside a command button an additional time on top of the escaping needed for nesting the roll queries. I'll touch on the storing query options part at the end. And another thing; How do you decide what to put in separate Macros? Is there a rule? Could I just create several Macros and call upon them to make the whole thing easier to read? There's not a really a rule and it doesn't matter for the running of the macro. I could have put all of this in a single macro, but I found it easier conceptually to split the parts out into like with like (spells in one macro, bow attacks in another - which also just so happens to be the master macro, and damage calculations as their own separate macros). For the storing of query responses; if you look in the longbow-damage ability, you'll see that the queries for things that were answered in the attack ability are escaped x times, but then my queries for damage specific things are escaped X+1 times. This means that my responses for things like Deadly Aim (penalty to attack, bonus to damage) from the attack are put in the damage ability so that I don't then have to re-answer these queries while still asking me for damage specific prompts when I trigger the damage ability because those prompts escaped X+1 times are not recognized as queries until the message is sent back to chat when the command button is clicked. Also note that all inline roll brackets are html escaped in the api command buttons, the command buttons won't work with inline roll results.