Binds & Macros

What are binds / macros?

Skip the /bind explanation and get straight to my bind/macro sets.

Curveball's guide to /bind explains it nicely so allow me to shameless crib: ;)

UNDERSTANDING WHAT /BIND IS

City of Heroes comes with a set of predefined in-game navigation and control commands. Pressing the W key moves your character forward, pressing the A key rotates your character to the left, pressing the D key rotates your character to the right, and so on. If you're not happy with these commands, you can open up the options panel, press the controls button, and replace some of them with key strokes our mouse button clicks of your own choosing. But you can't do this with every single key in the game. If you want more control over how the in-game commands are assigned to keys, you must use /bind.

In it's simplest form, /bind tells the game "from now on, when this button is pressed I want you to trigger that action." That action could be anything -- start a power, bring up a UI panel, send a message to another player. It's even possible to assign multiple actions to the same bind, though there are limits, and the more complex your /bind the greater a chance that something unexpected (and perhaps unwanted) will happen. That button can be almost any button on your keyboard or mouse, though again there are some limits. But essentially, /bind is telling the game that when you press the F key you want to activate the Hover power.

What /bind is not

/bind is NOT a macro language, and it cannot be used to automate your actions. In some games it is popular to write macros or shortcuts that allow you to queue up a number of attacks: for example, to start out with jab, then punch, then haymaker, and then to repeat until you no longer have a target. This is not possible using /bind, though it is possible to do some interesting things with it that come close.

There are in fact macros in the game, but they are slightly different than macros in other games. Macros will also be covered at the end of this guide, since they share many similarities to /bind (and enough differences to make them important).

Macros are largely the same as binds except you end up with a power tray icon you can click instead of having to press a key/button to fire it off. There are some things that can only be done by one and not the other though.

If you want more info on the specifics, or a general backgrounder on binds with a view to making your own I recommend you check out Curveball's /bind guide on the official CoH boards.

My Binds & Macros

Important Note: If you're planning on using these binds without editing them at all you're best keeping them in c:\binds\. The simpler binds don't care where they are but the ones made up of multiple files do. If you want to store them somewhere else you'll need to go into the bind files and change all the /bindloadfile commands to point to the new location.

Oh, and a note for those who don't know how to load a bind file, in your chat window type:

/bindloadfile c:\binds\example.txt

Changing c:\binds\example.txt for the path to your bind file obviously.

If you don't see what you're looking for in the list above, feel free to contact me, if what you're looking for is possible then I should be able to sort out a bind to do it for you.

Unbind...Bind

First up, this is a useful thing to know. If you ever want to unbind a key, because you've messed it up or it's a broadcast for an event a year ago and you keep hitting it *stares at High Beam*, this is what you need:

/bind [KEY] "nop"

Just change [KEY] for the key you want to unbind. For the curious, nop stands for 'no operation', nop is an assembly language keyword for that does just that, absolutely nothing. If you seriously mess up your binds you can always go to Menu -> Options -> Keybinds in the CoX client and reset all your binds with the relevant button there.

Back to my binds list

Fancy Costume Changes

Ever seen someone in CoH with a fancy costume change bind where they fire off a power to hide the change? If you're tried writing your own you probably ran into the problem whereby the costume change happens as soon as the power is fired and, usually, the change happens before the fancy animation which you were hoping would mask the change. Well, maybe I can help you with that. :)

Here's a couple of examples (click the pictures for the animations):

Catkin - Fancy Costume Change
Blind Bobcat - Fancy Costume Change

The problem is, you can't do delays in binds/macros, as soon as the command is reached/doable it's actioned. This behaviour is how binding was designed in CoH/V so people can't have entire attack sequences on one key.

So, we could have the costume change on one key and the power on another so you trigger the power then the change at the right time, but that's pretty much still doing everything manually right? What this bind set will allow is for you to have ONE key for the costume change. You press and hold a key and the power to mask the costume change fires. When you release the key the costume change itself happens so you can time it exactly. Yes, you still have to time it manually but at least it's all on one key now right? ;)

For this to be doable we have to use multiple bind files, here are the templates:

c:\binds\[TOON]CC.txt

CODE:
  1. [KEY] "+ $$powexec_name [POWER]$$bind_load_file c:\binds\[TOON]CC1.txt"

c:\binds\[TOON]CC1.txt

CODE:
  1. [KEY] "- $$cc [COSTUME NUMBER]$$bind_load_file c:\binds\[TOON]CC.txt"

Replace the following:

If a real world example would help explain this to you the aforementioned Bobcat's costume change binds follow. Note: This puts all of her costume change binds in one file, [ for costume 1, shift + [ for costume 2, ] for costume 3 and shift + ] for costume 4.

c:\binds\BobcatCC.txt

CODE:
  1. [ "+ $$powexec_name elude$$bind_load_file c:\binds\BobcatCC1.txt"
  2. shift+[ "+ $$powexec_name elude$$bind_load_file c:\binds\BobcatCC1.txt"
  3. ] "+ $$powexec_name elude$$bind_load_file c:\binds\BobcatCC1.txt"
  4. shift+] "+ $$powexec_name elude$$bind_load_file c:\binds\BobcatCC1.txt"

c:\binds\BobcatCC1.txt

CODE:
  1. [ "- $$cc 0$$bind_load_file c:\binds\BobcatCC.txt"
  2. shift+[ "- $$cc 1$$bind_load_file c:\binds\BobcatCC.txt"
  3. ] "- $$cc 2$$bind_load_file c:\binds\BobcatCC.txt"
  4. shift+] "- $$cc 3$$bind_load_file c:\binds\BobcatCC.txt"

Download BobcatCC.txt and BobcatCC1.txt to edit for your own uses.

If you're not sure which powers would be good for costume changes you couldn't go wrong with one of these (note that this is a far from complete list):

Issue 8 Update: Since one of the Issue 8 patches the 'commands' "+[space]" and "-[space]" have been reporting 'Unknown Command' where they never did before. It's not a problem, just ignore these messages, I haven't yet found a way of getting rid of them without breaking the down/up dual bind key functionality.

Back to my binds list

Coalition/Global Channel Name ID

Two similar problems you can find yourself running in to with large numbers of people on Coalition/Global Channels is remembering just who on earth they are!

For example, if I talk in a global channel the text is prefixed with my global handle @TheCatFanatic, but what toon am I on if someone is looking for someone their level? Am I playing CoH or CoV?

If however, I speak in the coalition channel my current toon name is listed which could be TigerTank, Blind Bobcat, SchrodingersCat or any number of other names, which person (Global Handle/Nickname) is this? What level are they?

So, to alleviate this problem in our SG we append the missing info automatically via two binds so they output like so:

Global Channel:
@GlobalName [H, lev50, ToonName]: <message>

Coalition:
ToonName [lev50, Nickname]: <message>

This is the bind you want for global channels:

CODE:
  1. /bind [KEY] "show chat$$beginchat /send [CHANNEL] [[X], lev$level, $name]: "

Change [KEY] for the key to bind to and [X] to "H" or "V" depending on which side of the game this toon is on. Change [CHANNEL] to the global channel name for this bind to send to. $level and $name are automatically changed to your toon's level and name by the client. Some people like to put their nickname in this bind if their global handle is a little obscure and people forget who it belongs to.

NOTE: The global channel name can't have a space in if this bind is to work, you would need (and can't have) nested quotes in the bind for that to work. You can however do it if you make a macro instead of a bind (since you don't need quotes encapsulating the entire bind).

This is the bind you want for coalition:

CODE:
  1. /bind [KEY] "show chat$$beginchat /c [lev$level, [NICKNAME]]: "

Change [KEY] for the key to bind to and [NICKNAME] for the name everyone knows you by. Note you don't need to fill in your toon level manually. The game client will automatically translate $level to whatever security level your toon currently is. Note: $level is security level, not combat level! Levelling up won't update this number until you have also been to see a trainer.

Personally I have CoH and CoV sets of both binds stored together in a file for quick loading on a new toon.

Back to my binds list

Empathy Bind Set

This is a nice little bind set I worked up for my empath in CoH. It allows me to play my empath with the numpad (+ movement keys). The numpad keys are bound as follows:

The 1 - 8 binds are set-up like the Fancy Costume Changes binds. When you press one of these keys the relevant team member is targeted, when you release it the heal is fired. Otherwise you need two key presses to target and fire the power. You don't need to hold down the key for any length of time with these binds, the client can keep up with normal key press speeds.

The 'Reset binds' bind is included in this set because (very) occasionally the client will get confused and you'll end up with the key functionality reversed. So, if you depress 1 heal other will fire on whoever happened to be targeted and upon releasing the key again it will then target team member 1.

Here are the files you need, empathy.txt and empathy1.txt. All you probably want to edit is the RA Call bind in empathy.txt, unless your empath also happens to be a cat. ;)

Back to my binds list

Ice Tanker Bind Set

Coming soon...

Back to my binds list

Invulnerability Tanker (& Brute) Bind Set

Coming soon...

Back to my binds list

Mastermind Bind Set

Coming soon...

Back to my binds list

Peacebringer Bind Set

Coming soon...

Back to my binds list

Super Reflex Bind Set

Coming soon...

Back to my binds list

Force Fields (Bubbles) Bind Set

Coming soon...

Back to my binds list

Auto Super Jump

One of the nice things about the travel power Fly is that, it may be slightly slower than the others but it has the advantage that you can turn on autorun while flying and go grab a drink while your toon is flying in the general direction of the destination. This bind will give you the same functionality with SJ, I find it especially useful with SJ because usually you'd need to be holding down two keys at least (forward + jump, and then steer your toon as well. With this bind you can just hit the key once and then steer (or not if you've aimed them well enough!).

CODE:
  1. /bind [KEY] "powexec_toggle_on Super Jump$$++autorun$$++up"

Change [KEY] for the key/button you want to bind auto SJ to. Hit it once, it'll turn on SJ (or leave it on if it's already toggled on) and set you super jumping, hit it again to stop.

It's as simple as that! :)

Back to my binds list

Inertial Reduction Auto Jump

Now, this is very much like the Auto SJ bind above. This is for the Kinetic's power Inertial Reduction. IR is very much like SJ except it's a click power instead of a toggle, you cast it on people around you as well as yourself (lowbies love this! ^^) and it runs out after two minutes (though it recharges in two minutes too so if you keep casting it you can keep going forever). This bind is like the SJ bind but puts IR on auto 'cast' so whenever it recharges it refires.

CODE:
  1. /bind [KEY] "powexec_abort$$powexec_auto Inertial Reduction$$++autorun$$++up"

Change [KEY] for the key you want to bind it to, hit it once to fire off IR (as long as it's recharged) and then you'll continually leap forward until you hit the key a second time. After that just hit Z to take IR back off of auto 'cast'.

Back to my binds list

Auto HS/CGT/Synapse Submission of Collected Badges

Coming soon...

Back to my binds list

Auto Target Vengeance

Coming soon...

Back to my binds list

Special Event/Giant Monster Target Binds

This bind is useful when you're looking for a specific mob (usually a Giant Monster like Sally or Jurrasik). This will only target the named mob so you can, for example, fly around the lake in Croatoa pressing it repeatedly until you lock on to Sally.

/bind [KEY] "target_custom_next enemy alive [NAME]"

Change [KEY] to the key/button you wish to bind this too, change [NAME] to the full or partial name of the mob you're looking for (e.g. the name displayed above the mob when targetted). For example, to bind this to V for Sally you would do the following:

/bind V "target_custom_next enemy alive sally"

You should note that this command is case insensitive; sally will match to Sally. You can cut out the 'alive' keyword if you want corpses targetted too (e.g. you're looking for Eochai but also want to know if someone defeats him before you get there). Using the 'enemy' keyword (hopefully) ensures you only target the Giant Monster, e.g not a player whose toon name contained Sally.

Back to my binds list

AFK "I'm typing!" Bind

Coming soon...

Back to my binds list

Toggle Panic Button

Coming soon...

Back to my binds list

Battlecry Binds

Coming soon...

Back to my binds list

Quick Teleport/Recall

Coming soon...

Back to my binds list

Location Coordinates Bind

Coming soon...

Back to my binds list

Sapper Target Bind

This is a nice easy one... Now, if you've ever fought Malta I'm sure you have a special place in your heart for the Sappers, yes? ;) For those who haven't yet; they have a special weapon that not only steals most/all of your Endurance but also blocks your Endurance Regeneration temporarily, as such your toggles fall, you can't fire powers due to lack of endurance and then the sapper's buddies tear into you. So, everyone always makes sure to go for the Sappers first, this bind makes it a doddle to pick them out of the crowd.

/bind [KEY] "target_custom_next enemy alive Sapper"

Change [KEY] to the key/button you wish to bind this too. Simply hit it to target the nearest live Sapper onscreen, repeated taps will cycle through them in order (from closest to furthest visible).

Back to my binds list

2 Comments

  1. Test wrote:
    March 30th, 2007 at 12:54 pm

    Hello

    Bye

  2. Frierfly wrote:
    July 7th, 2007 at 12:22 am

    I know we all love using Curveball's post as a starting point for explaining /bind and /macro but, you CAN do nested quotes in binds now… you should update this site.

Leave a comment