I was wondering if I could quickly hack ChatSetAttr in order to set character abilities, not attributes. Turns out I could!  Rough documentation (it generally works similarly to the way ChatSetAttr does):    The main commands are !setability for creating/setting and !delability for deleting abilities.  The targeting options --sel, --all, --allgm, --allplayers, --charid, --name are the same as in ChatSetAttr.  Other supported command line options shared with ChatSetAttr are --nocreate, --evaluate, --silent, --mute.  The --replace option is available, but works differently from the way it functions in ChatSetAttr. (see explanation later)  You can insert character attributes by wrapping it in double percentages, e.g. %%character_id%% will insert the character's id into the specified point in the ability.  The only new option is --token, which will set the selected abilities to be token abilities.  You can specify a pair of ability name and ability text by  --abilityname#abilitytext . Omitting '#' will create an empty ability if none exists, and will otherwise leave the ability text unchanged (this is useful for just making actions token actions via --token).  Just for !delability: --deleteall will delete all abilities for the specified characters.  Code is  here .   Disclaimer:  This is not well-tested at all, so there are probably lots of bugs!   Replacers for --replace:   This has been changed from the way it works in ChatSetAttr to make it both more useful and less confusing. A table of replaced characters follows:       Input     Replacement     \[  [[    \]  ]]    ~  -    \q  ?    \at  @    \p  %    \amp  &    \h  #     Example:  The command  !setability --all --token --Initiative#\p{%%character_id%%|initiative} will give all characters a token action ability called Initiative, with text %{CHARID|initiative}, where CHARID is the character's id.