Solved, thank you to all. Had a space in front of the macro and a trailing ) that also messed things up. This is for an AD&D 1e campaign, though I think it is generic enough to ask the wider community. It is a macro question, but one that has to do with mods, so I figured this would be the better place to ask. I have a series of Mod commands to list spells in the chat window for a spell caster. It starts with defining 2 variables separated by " --". The variables are character ID and the spell level: on("chat:message", function(msg) { if (msg.type === "api" && msg.content.startsWith("!picklevelspells")) { let chatcommand = msg.content.trim(); let args = chatcommand.split(/\s*--/); let charid = args[1]; //Character ID from !admin chat let specspelllevel = args[2] || ""; The spell level can be passed as strings, 0 to 9 and includes a choice of "all". If spell level is passed as a zero length string, the mod will run a roll query to choose. To start things off, a spells button is clicked on the main menu: Clicking the bottom button results in a roll query of spell levels choice of "all" and 0 to 9 or 0-7 if not a magic user (AD&D 1e). In the AD&D 1e sheet one can have three classes. The code example for magic users is: if (class1.toLowerCase() === "magic user" || class2.toLowerCase() === "magic user" || class3.toLowerCase() === "magic user") { if (specspelllevel === "") { btnspellchoice = '[First, Click to Choose Spell Level](!spells --' + charid + ' --?{Spell Level |All Spells,all|Cantrips,0|1st Level,1|2nd Level,2|3rd Level,3|4th Level,4|5th Level,5|6th Level,6|7th Level,7|8th Level,8|9thLevel,9})' ; } else { btnspellchoice = "!spells --" + charid + " --" + specspelllevel; } sendChat(strname, btnspellchoice); <<SNIP>> I've bolded the roll query, above. It works just fine (The selected magic user (AD&D 1e) does not have any cantrips. We actually don't use cantrips/orisons): So I'd like to put this in a token action macro, I'm wondering how to how to deal with the " --" that prefix the arguments for !picklevelspells if I were to try and put this as a macro? Plugging this into a macro; !picklevelspells --@{selected|character_id} --?{Spell Level |All Spells,all|Cantrips,0|1st Level,1|2nd Level,2|3rd Level,3|4th Level,4|5th Level,5|6th Level,6|7th Level,7}) Gives me the roll query to select all or level. But all that happens is an output to the chat tab - note that the character ID is prefixed with a sing;e dash: So I am clearly missing something in formatting the macro with !picklevelspells. Can you help? Thanks.