
Update: - This has been resolved, can't adjust the title so I'll update that here. Thank you everyone :) I think, and am hoping, that I've gotten most of this worked out myself. But I only half understand this. In short, I'm trying to set up a api for calculating damage vs the target's armor. However, the target's armor may vary based on where you're hitting. So I set it up like this in a macro at first. /roll 1d20 + @{selected|Damage} - @{target|?{Hit Location|Head|Torso|Arms|Legs|Tail|Wings|Other}Armor} This didn't work. The output was correct, it sent "rolling 1d20 + 10 - @{target|HeadArmor}" into the chat. But it never asked for a target and all it did was roll the d20, it ignored the rest despite saying it rolled it. After poking it a little, I believe this is calculating the roll before getting the input. So my next idea was for it to get the input, then send it over to the API, and have the API just echo the full expression back and roll it. And that's where I'm stuck. I put this in the macro !Rattack /roll 1d20 + @{selected|Damage} - @{target|?{Hit Location|Head|Torso|Arms|Legs|Tail|Wings|Other}Armor} And then I put this in the API (Along with a few lines borrowed from someone else's script to identify the !Rattack, that part seems to work. Realism.Attack = function(msg, who) { sendChat(msg.who, "msg.content"); } When I run this, it just sends "msg.content" in the chat. So I assume that is not the right way to echo the message back. What do I replace "msg.content" with? I can't seem to find that on google. I don't need anything complex, I only half understand what I'm doing so I might not be able to work with anything too complex. Thanks in advance for your time. :)