Also, if you needed a bit more control over the timing of things, you could use ZeroFrame and run the commands separately but as part of a batch: !{{ !modbattr --charid @{target|character_id} --powerpoints| -5 {&template:default} ({)name=Power Points(}) ({)description= Text(}) }} That would run the ChatSetAttr command first, then the template line. In certain cases, a script like CSA might have an asynchronous process that leads to the next line running before you want it to... in other words, it might run before CSA has had a proper chance to modify whatever you are asking it to. If you find that you are running into that sort of a race condition, you can slow a line (and subsequent lines) down with a delay tag which you hide with a line-deferral: !{{ !modbattr --charid @{target|character_id} --powerpoints| -5 (^) {&template:default} ({)name=Power Points(}) ({)description= Text(}){^&delay 1} }} That would use the " ^ " character to break up (or defer) the delay tag. The delay is set for 1 second, so if the script from the previous command (in this case, CSA) tried to step out of the way (asynchronously) and let execution continue to the next command, we are actually going to manually wait a full second. That gives control back to CSA and gives it time to finish. I bring this up because a lot of times I think people want to use a script (like CSA or TokenMod) to modify something which they immediately want to report on or read, but they don't give it time to finish in a multi-command line.