From Hastur
Jump to: navigation, search

This article is imported from the Hastur wiki. See the import log for details. Warnings:

  • Buried links.

I am currently working on a new version of my Taunt-O-Matic. It is used to manage rotating binds for taunts, dialogues and emotes for City of Heroes.


Related pages:

Old Version

The City of Heroes Taunt-O-Matic is a Perl script designed to build keybinds with rotating actions or emotes. These can be set up be loaded in sequence or semi-randomly. The script is intended for users who store their binds in manually edited text files. It not designed to be compatible with the Speed on Demand generator or other keybind generators.

Current Version

The current release is 0.1. It's bugged, but you can get it to work as long as you use the --root option and store your source files in Base/ and load the output from Auto/ and you should be fine.

Yes, I am aware that the --root option is not documented.

Reporting Bugs

Yes, there are bugs, and the documentation could be better. Please PM Hunter on the official EU forums if you have any problems with this script.


  • Common binds for all heroes.
  • Hero specific binds and action loops. These can override the common binds.
  • Action loops can be sequential or random.
  • Code tag substitution makes it easier to use colored speech bubbles.
  • Files are generated for several heroes at once.


The City of Heroes Taunt-O-Matic is free software and is distributed under the GNU General Public License version 2.



Required downloads:

The Taunt-O-Matic requires a Perl installation, such as ActivePerl.


  • Unpack the example files under C:\COH\. The files will be stored under C:\COH\Base.
  • Unpack the program package (tom.zip) under C:\COH\. The files will be stored under C:\COH\Taunt-O-Matic.
  • Copy the shortcut (Taunt-O-Matic.lnk) to your desktop. Edit the shortcut and add any desired flags.

Click on the icon to run the script. A window will pop up and display a list of processed files and directories. THe windows will close by itself after a few seconds.


The example assumes that we have two heroes (Officer Steele and Vita), and that files are stored under C:\COH.

Source Data Files

Files for each hero are stored in a separate directory. In addition, common binds are stored directly under the source root.

C:\COH\Base\Officer Steele\hero.txt
C:\COH\Base\Officer Steele\arrest.txt
C:\COH\Base\Officer Steele\miranda.txt

Note that the name of the directory for each hero has nothing to do with the actual hero name in game.

Sample Action Loops

In order to set up an action loop, use the ?> file or => file directives to reference action files:

CTRL+L emote "Loading <hero> keybinds$$bindloadfile <file>
I say <yellow>$name down! Send backup!
P say I am arresting $target. Be ready to back me up!
  1. Arrest taunts (T) and Miranda lecture (L). The Miranda rights will always be
  2. read in order, while the taunts are randomized.
T ?> arrest.txt
M => miranda.txt

Sample Action File

Populate the referenced action file with simple or compound actions. Sample arrest taunts for Officer Steele:

local You are under arrest, $target!$$powexec_name Taunt
local Go ahead, $target! Make my day...$$powexec_name Taunt
local Freeze, $target!$$powexec_name Taunt
local Do you feel, lucky, $target?$$powexec_name Taunt

Creating Output

To generate files for all the hero output directories, start the Taunt-O-Matic:


This will generate new files in the output directory (C:\COH\Auto). All the hero directories are read, and the following files will be generated:

C:\COH\Auto\Officer Steele\hero.txt
C:\COH\Auto\Officer Steele\arrest-0.txt
C:\COH\Auto\Officer Steele\arrest-1.txt
C:\COH\Auto\Officer Steele\arrest-2.txt
C:\COH\Auto\Officer Steele\arrest-3.txt
C:\COH\Auto\Officer Steele\miranda-0.txt
C:\COH\Auto\Officer Steele\miranda-1.txt
C:\COH\Auto\Officer Steele\miranda-2.txt

The binds for taunt and Miranda rights are set up so that when a key is pressed, a taunt will be displayed, and the the next file will be read. This causes the next key do be redefined, so that a different taunt will be displayed when the key is pressed again.

Load Files

The common or hero file must be loaded into City of Heroes. Example:

/bindloadfile C:\COH\Auto\Officer Steele\hero.txt
/bindloadfile C:\COH\Auto\common.txt

If you use a keybind to load your file, simply press CTRL+L to reload it.

  • Comment*: At present, the load is the last command in an auto-loading command line. This breaks any previous AFK command, making a class of binds where you open the chatline with an /afk message impossible. If it has no bad side effect, could we move the load command to the start of the line? Or would that trigger recursion bugs? --Starfox

It shouldn't be a problem. I'll look into it. --Hunter