If you're going to hardcode the token IDs, you can first collect them just by selecting each token individually and running: @{selected|token_id} Or, if you have the Metascript Toolbox installed, you can select each of your "squads" as a group and run: !forselected(^) @^(selected.token_id) {^&simple} However, allow me to introduce you to a couple of scripts that can help automate this part... Install the MetascriptToolbox, and you'll get a script called SelectManager. SelectManager can automatically select tokens on the map in many ways (name, partial names, bar values, status markers, etc.). The particulars of that syntax is discussed here. For example, if all of GroupA was named "GroupA-1", "GroupA-2", etc., then you could use: {&select GroupA*} And those tokens would be selected for purposes of the API (you would use that construction right in the command line of your other script, in this case ScriptCards, and the tokens would be "selected" by the time ScriptCards sees the message). Another script to consider is Assemble... which uses the idea of pre-built groups of tokens as a way to speed things up. It gives you an interface to quickly build your "group" and save it to an attribute for quick retrieval. Assemble will work with SelectManager (the attribute of assembled token_ids will expand into the {&select} tag) or it will directly work with a script that offers a place to put the IDs of the tokens you wish to affect. For instance, if you'd collected all of your GroupA token IDs into an attribute named "Battle01_GroupA" on a character named "BattleGroups", you would retrieve it by: @{BattleGroups|Battle01_GroupA} SelectManager would want those IDs separated by commas, so if you collected them that way (the default for Assemble), you could use that attribute in a SelectManager {&select} tag: {&select @{BattleGroups|Battle01_GroupA} } If you were to use it in a script like TokenMod, which offers you an argument of "--ids", you'd want to collect the IDs separated by spaces. Then you could use it like: !token-mod --ids @{BattleGroups|Battle01_GroupA} --set bar1_value... You can put the different attributes referring to your different groups into a query dropdown and use the same command line for each of them, if necessary: ?{Which group?|Group A,@{BattleGroups|Battle01_GroupA}|Group B,@{BattleGroups|Battle01_GroupB},Group C,@{BattleGroups|Battle01_GroupC}} I'm not sure of the ScriptCards syntax, but these at least will make the token selection process automation work easier for you. Simply applying damage to a token (or backing character) would be easy enough to do with TokenMod (for the former) or ChatSetAttr (for the latter).