Hey, Manny... Two things you have to be aware of with macros like this. First, roll queries use this basic syntax: ?{Prompt|First option label,FirstOptionValue|Second option label,SecondOptionValue} All of that punctuation matters. ?{...|...,...|...,...|...,...} Once the parser passes the opening brace (the left brace), it it encounters any of the other punctuation listed, it interprets it as part of the structure of the roll. That means that when you try to use values in the roll query that, themselves, contain these punctuation elements, you'll break your query unless you take action. What you have to do is replace the actual punctuation of the embedded material with the HTML element. | = | } = } , = , Now, how many of them do you have to replace? Remember, they only matter if the parser encounters them. That means that if they're gone by the time the roll query is examined, the roll query parser won't encounter them. So the second thing you have to remember is the Roll20 order of operations . Attributes (as you have in your macros) are expanded before the roll query is parsed, so by the time the roll query runs, those elements (and the associated punctuation) are no longer there. Therefore, for attribute calls, you don't have to do HTML replacements just because they are in a query. HTML replacements are easy enough. Take the roll template parts: &{template:rolls} ...becomes... &{template:rolls} This one: {{header=^{awareness}}} ...doesn't actually contain an attribute call that Roll20 will parse, so all of those right braces must be replaced... {{header=^{awareness}}} The next template part is a bit trickier: {{dice=[[{1d20+({@{Sir Gerhart (Andy)|awareness}+(?{Mod.|0})-20,0}kh1),1d0+20}kl1 [Roll]]]}} The attribute call @{Sir Gerhart (Andy)|awareness} will be parsed and processed before the roll query, so there's nothing to replace, there. However, the inline roll won't happen until after the roll query. That means that the right braces of the keep-low mechanics have to be replaced, as do the commas just before each: ...-20,0}kl1),1d10+20}kl1... ...as does the double right brace of the end of the template part. However, also in there is an embedded roll query: ?{Mod.|0} While it is perfectly possible to embed a roll query in a roll query, each of the command punctuation listed above will need to be replaced in the embedded query. In this case, that means the vertical pipe and the right brace (if it were a more complex query with value/option pairs separated by commas, those commas would also require replacement): ?{Mod.|0} In the end, this template part should read: {{dice=[[{1d20+({@{Sir Gerhart (Andy)|awareness}+(?{Mod.|0})-20,0}kl1),1d10+20}kl1 [Roll]]]}} The next 2 template parts are very similar to this one. Finally when you have versions of these macro command lines with the appropriate HTML substitutions to make them work in a roll query, then you're going to want to plug them into your new roll query like this: ?{Which skill to roll?|Boating,...HTML-SubbedBoatingMacro...|Awareness,...HTML-SubbedAwarenessMacro} You can quickly see how this can get out of hand if you're listing many skills and have to handle the replacements for each. For this reason, many people opt for a chat menu, instead... or even an API solution... but that's not what you asked. Hopefully this helps.