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.
- Unbind...Bind
- Fancy Costume Changes
- Coalition/Global Channel Name ID
- Empathy Bind Set
- Ice Tanker Bind Set (Coming soon...)
- Invulnerability Tanker (& Brute) Bind Set (Coming soon...)
- Mastermind Bind Set (Coming soon...)
- Peacebringer Bind Set (Coming soon...)
- Super Reflex Bind Set (Coming soon...)
- Force Fields (Bubbles) Bind Set (Coming soon...)
- Auto Super Jump
- Inertial Reduction Auto Jump
- Auto HS/CGT/Synapse Submission of Collected Badges (Coming soon...)
- Auto Target Vengeance (Coming soon...)
- Special Event/Giant Monster Target Binds
- AFK "I'm typing!" Bind (Coming soon...)
- Toggle Panic Button (Coming soon...)
- Battlecry Binds (Coming soon...)
- Quick Teleport/Recall (Coming soon...)
- Location Coordinates Bind (Coming soon...)
- Sapper Target Bind
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.
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):
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
-
[KEY] "+ $$powexec_name [POWER]$$bind_load_file c:\binds\[TOON]CC1.txt"
c:\binds\[TOON]CC1.txt
-
[KEY] "- $$cc [COSTUME NUMBER]$$bind_load_file c:\binds\[TOON]CC.txt"
Replace the following:
- [TOON]
The name of your hero/villain. - [KEY]
The key/button (or combination thereof) you want to bind this to. - [POWER]
The name of the power you want to mask the costume change. This needs to match the power name in the power icon 'tool tip' in game. Capitalisation of the name doesn't matter but if there's a space in the name it needs to be preserved here. - [COSTUME NUMBER]
The number of the outfit you want to switch to. Note these are numbered from zero, not one. So if you want to switch to the second costume on the left in your in game costume window you want to use cc 1. Normal range is 0 - 3, if your toon completed the Halloween 2006 Event and you have a 5th slot that is cc 4.
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
-
[ "+ $$powexec_name elude$$bind_load_file c:\binds\BobcatCC1.txt"
-
shift+[ "+ $$powexec_name elude$$bind_load_file c:\binds\BobcatCC1.txt"
-
] "+ $$powexec_name elude$$bind_load_file c:\binds\BobcatCC1.txt"
-
shift+] "+ $$powexec_name elude$$bind_load_file c:\binds\BobcatCC1.txt"
c:\binds\BobcatCC1.txt
-
[ "- $$cc 0$$bind_load_file c:\binds\BobcatCC.txt"
-
shift+[ "- $$cc 1$$bind_load_file c:\binds\BobcatCC.txt"
-
] "- $$cc 2$$bind_load_file c:\binds\BobcatCC.txt"
-
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):
- Elude
- Whirlwind
- Pulsar/Thunder Clap
- Teleport (remember this is a point targetted power so you need to click a ground location while the costume key is depressed for the animation to fire)
- Nova/Inferno/etc.
- Aid Self
- Hibernate
- Steamy Mist
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.
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:
-
/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:
-
/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.
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:
- Numpad 0
Healing Aura - Numpad +
Recovery Aura - Numpad -
Regeneration Aura - Numpad *
RA Call - So my team-mates know to gather on my location for the PBAoE buff(s). - Numpad 1 to Numpad 8
Heal Other (on the team member in slot #1 - #8) - Shift + Numpad 1 - Numpad 8
Absorb Pain - Ctrl + Numpad 1 - Numpad 8
Clear Mind - Alt + Numpad 1 - Numpad 8
Fortitude - Numpad 9
Reset binds
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. ;)
Ice Tanker Bind Set
Coming soon...
Invulnerability Tanker (& Brute) Bind Set
Coming soon...
Mastermind Bind Set
Coming soon...
Peacebringer Bind Set
Coming soon...
Super Reflex Bind Set
Coming soon...
Force Fields (Bubbles) Bind Set
Coming soon...
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!).
-
/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! :)
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.
-
/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'.
Auto HS/CGT/Synapse Submission of Collected Badges
Coming soon...
Auto Target Vengeance
Coming soon...
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.
AFK "I'm typing!" Bind
Coming soon...
Toggle Panic Button
Coming soon...
Battlecry Binds
Coming soon...
Quick Teleport/Recall
Coming soon...
Location Coordinates Bind
Coming soon...
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).

Test wrote:
March 30th, 2007 at 12:54 pm
Hello
Bye
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.