Using Powers
Currently, you will need to map binds to a power tray slot. You will do this using the PowerTrayExec command:
PowerTrayExec <Bin> <Slot #>
Bin: Binary state of the power, whether it's ON or OFF. (1 or 0) Slot #: The slot on your power tray to be executed. Slot #'s listed below.
Since the first argument is a binary, we can use the + and - operators with this command.
Example
+PowerTrayExec 16
Result: This will execute slot #16 so long as the assigned input is held down.
Power Tray
This shows what slot is which #:
| 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 |
| 16 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 14 |
So the bind command used to bind a single power like normal:
/bind <input> +PowerTrayExec <slot #>
This will bind a power to the input provided to function exactly like they do on your bar.
To bind a power so it stays on until something else cancels it:
/bind <input> PowerTrayExec 1 <slot #>
Because we didn't use the operator, and instead passed 1 for the binary argument, the power will stay on. This means: A charge power will attempt to fully charge, a maintain will attempt to fully maintain and so forth.
Example
/bind N "+PowerTrayExec 2 $$ +PowerTrayExec 3"
If the first power (Slot #2) is instant: Power Slot #2 will activate and then Power Slot #3 will activate in one key press.
If both powers are charges: Power Slot #2 will be fired off as a TAP ability, if possible then Power Slot #3 will activate.
IMPORTANT: The exception to these rules is the Shield power (Slot #16), it seems to interrupt any powers in the same key press as it, even if they are instant.
The purpose of this thread is to try to consolidate general asked questions, references and information in
this thread related to creating bindings and using slash commands. Please post anything you'd like to see
added and I'll try to edit it in.
Input: This is the key or button you wish to be pushed to execute the provided command. Command: This is the game command or alias you wish to run when the given input is pressed. Command Paramaters: Any parameters the command you're using may require.
Example
/bind N local Hello World!
Result: After this is run, whenever you press the N key on your keyboard, your character will say
Hello World!
Editing Binds
There a few ways you can edit your binds:
Simple binds may be modified under Options -> Key Binds
To edit a bind in game you may always do the /bind command using the same input to override a previous
bind.
You can remove a bind from an input by using /unbind <input>
Edit binds in .txt files in your Champions Online\Live folder, more on this below.
Bind .txt Files
Inside your Champions Online installation folder should be a folder named Live. You can edit .txt files
with binds there, or create a new .txt files and place binds inside. These are also a useful way to
transfer binds between characters as you can save your custom binds to a .txt file from the game interface, or load binds from a .txt file.
Formatting in a .txt file for binds is the same as running the /bind command, only it's everything
after the actual "/bind" text. Also, there is one bind per line.
Example .txt file:
Button4 "+PowerTrayExec 6"
Button5 "PowerTrayExec 1 14"
N "playersay Hello World!$$em wave"
Loading/Saving Binds
To save your binds on a character to a .txt file:
/bind_save_file <name of file>
If the file name provided exists, it will be overwritten, otherwise the file will be created.
Example
/bind_save_file test.txt
Result: After this is run, all custom binds on the active character will be saved to test.txt inside
of your Champions Online\Live folder.
To load binds to a character from a .txt file:
/bind_load_file <name of file>
If the file name provided exists, the binds it contains will override the current binds on your active
character.
Important Note: ONLY the binds the loaded file contains will be applied, it will unbind other custom
binds you may have.
Example
Let's say we have 2 .txt files, test1.txt and test2.txt.
test1.txt contains:
N "local Hello World!"
H "local Hi!"
test2.txt contains:
N "local Nice to meet you!"
If test1.txt is our current binds that we've already loaded, and then we run:
/bind_load_file test2.txt
Result:
When you press N, your character will say "Nice to meet you!"
When you press H, your character will say "Hi!"
Notice, your character will not say "Hello World!" when N is pressed since only that bind was overriden
when test2.txt was loaded.
Binary/Toggle Commands
There are several commands that accept a binary operator. (+ or -)
When you have + in front of a command, the command is ON while your input is pressed, and off on release.
Example
/bind N "+up"
Result: If you are flying, you will fly up while N is pressed, and stop when N is released.
When you have a - in front of a command, it tells that command to stop.
Example
/bind N "-PowerTrayExec 16"
/PowerTrayExec 1 16 (this will turn on your shield)
Result: When you press N, your shield will be turned off if it is on.
Toggle commands can accept a ++ operator in front of them. ++ tells the bind to switch the command between ON and OFF.
Example
/bind N "++autoForward"
Result: When you press N, you will turn on auto run. If you are already auto running, pressing N will turn auto run off.
Running Multiple Commands w/ One Bind
$$ is used to separate commands when binding. So our command from above looks like: /bind <input> "<command> [<param1><param2>...][$$<command2>[<param1><param2>]...]"
Example
/bind N "local Hello World! $$ em wave"
Important Note: While each command is separated by $$, you must also surround everything
after your input in quotes as well, as shown in the example.
Result: After this is run, whenever you press the N key on your keyboard, your character will say
Hello World! and wave.
IMPORT NOTE: When you have a bind with multiple commands, the FIRST command will determine the binary state of your ENTIRE bind. I will explain this more later in the power usage section.
The Alias Command
The alias command is for creating your own commands/functions. The command to create one is:
Example
/alias helloWorld "yell Hello World!"
Then, type /helloWorld
Result: Your character will yell to the zone, "Hello World!"
Using {} (Thanks to: Amasilver for helping with this section.)
When creating an alias, you may use {} which has a special function. This is treated as a marker of where to insert a string that will be passed to your alias.
Example
/alias helloWorld "yell {}"
(Now our alias helloWorld takes 1 string argument.)
Then, type /helloWorld Hello Everybody!
Result: Your character will yell to the zone, "Hello Everybody!"
Now, if you include multiple {} in your alias, EACH one will be replaced by the string you pass to your alias. Also, the string replacement gets interpretted BEFORE your alias is run, which opens up possibilities for more complex usage. Now for a slightly more complex example.
Example
/alias move "+{} $$ playersay Going {}!"
/bind N move left
Result: When you press N, your character will move to the left and say "Going left!"
Commonly Wanted Binds
In this section, I'll list answers to the most commonly requested binds.
How do I make my shield toggle on, so I don't need to hold the key? /bind SHIFT PowerTrayExec 1 16
How do I say something as I use a power? /bind <key> "local Hi! $$ +PowerTrayExec <slot #>"
How can I change costumes/builds when I activate my travel power?
Create the following 2 txt files, with the listed contents in your Champions Online\Live Folder.
fly.txt:
t "+PowerTrayExec 14 $$ buildset 1 $$ bind_load_file land.txt"
land.txt:
t "+PowerTrayExec 14 $$ buildset 0 $$ bind_load_file fly.txt"
Then run: /bind t "+PowerTrayExec 14 $$ buildset 1 $$ bind_load_file land.txt"
To change costumes, instead of builds:
Change "buildset <#>" to "setactivecostume 0 <#>"
How do I target myself before doing a heal? /bind N "+down1 $$ target_self $$ +PowerTrayExec <slot #>"
I'm still struggling with some of it though. I'm not very savvy with coding at all!
I'd like to be able to hold down F5 and have it turn off my End builder, select team member 1, then begin a maintain of my heal power (slot 13). Then on releasing F5 have it re-activate my End builder.
So essentially holding F5 heals Team member 1, but I can keep my End builder set to 'Toggle, Never cancels'.
I'm still struggling with some of it though. I'm not very savvy with coding at all!
I'd like to be able to hold down F5 and have it turn off my End builder, select team member 1, then begin a maintain of my heal power (slot 13). Then on releasing F5 have it re-activate my End builder.
So essentially holding F5 heals Team member 1, but I can keep my End builder set to 'Toggle, Never cancels'.
Seems quite complicated. Is it even possible?
Many thanks
Well, if your endurance builder is set to "Toggle, Never Cancels" already, we don't need to mess with that at all actually. This should do the tricK:
The down1 is a dummy command...I put that first so that way your maintain will work as expected with your keypress. Then it targets your teammate #1, and fires off the power slot you mentioned.
Can you bind a key to cycle through your active chat channel? and if so, what is the command?
Hmm... Well, there is Channel_SetCurrent <string> which you can use to switch to a specified channel. I'm not seeing something to just cycle through them unfortunately...however, if you have a preset list then it would be possible by cycling through binds. I'll use Zone and Local as examples.
If you create zone.txt (In your Champions Online\Live folder):
N "channel_setcurrent Zone $$ bind_load_file local.txt"
And create local.txt:
N "channel_setcurrent Local $$ bind_load_file zone.txt"
Then in game run: /bind N "channel_setcurrent Local $$ bind_load_file zone.txt"
Not ideal, I know, but I'm not seeing something cleaner. However, once they open up the ability to do mods, something like this should be very easy to do, since there is a command to list what channels you're in, it would be easy to parse and do something like this. (That's probably how their chat drop down menu works)
The down1 is a dummy command...I put that first so that way your maintain will work as expected with your keypress. Then it targets your teammate #1, and fires off the power slot you mentioned.
That's awesome! Thank you SO much!!! Can't wait to get home and try it out.
Hmm... Well, there is Channel_SetCurrent <string> which you can use to switch to a specified channel. I'm not seeing something to just cycle through them unfortunately...however, if you have a preset list then it would be possible by cycling through binds. I'll use Zone and Local as examples.
If you create zone.txt (In your Champions Online\Live folder):
N "channel_setcurrent Zone $$ bind_load_file local.txt"
And create local.txt:
N "channel_setcurrent Local $$ bind_load_file zone.txt"
Then in game run: /bind N "channel_setcurrent Local $$ bind_load_file zone.txt"
Not ideal, I know, but I'm not seeing something cleaner. However, once they open up the ability to do mods, something like this should be very easy to do, since there is a command to list what channels you're in, it would be easy to parse and do something like this. (That's probably how their chat drop down menu works)
Ahh, Thank you, I can create a similar file for each channel I'm on and set it to call the next channel and file.
Edit: This does not seem to work if the name of the channel has spaces in it - I tried it both as ( chat channel ) and as ( chat_channel )
Thank you very much for doing this. I was picking up various confusing details from random threads scattered hither and yon, but your explanation is very clear.
Glad to hear it helps, guys! If you ever notice any tricks anywhere else or know of any, please message me or post them here so we can try to get as much as we can in here.
@Neeroy, I'll definitely hit you up some time on that offer.
Thanks for setting this up Zvardin this is something we've needed a central location for breaking down the commands. Now, what do these pesky things do in a command line {} any one know? Has any one had any luck figuring out Power ID's so we can run the PoweExec command that runs the power by name and not by bar slot?
Thanks for setting this up Zvardin this is something we've needed a central location for breaking down the commands. Now, what do these pesky things do in a command line {} any one know? Has any one had any luck figuring out Power ID's so we can run the PoweExec command that runs the power by name and not by bar slot?
Not sure on {}, I would have thought for a long bind or aliases or something, but that doesn't seem to be the case.
I've been fooling with the PowerExec commands but nothing great yet. All I've found is... +PowerExecCategory Block is only normal Block...and +PowerExecCategory Travel is your first travel power (first one you get regardless if you move its spot). Been trying to guess some other keywords for that or PowerExec but no luck yet. If I come across anything, I'll make sure to post it.
I did find some other interesting commands that switch the power trays and so forth, but the other trays seem unuseable.
Also, what do you guys think about me adding a section for Research? For instance... I've been fiddling with some camera commands and Power Exec commands. Kind of like a "To Do" list as priorities so if anyone wants to help, or if anyone happens to already know it can be removed from the list and I'll throw it in the appropriate section.
If I have Ego Sprites in power slot 3 & Shadow Embrace in power slot 1, pressing the #2-key with this bind will fire off Ego Sprites and then attempt a full maintain on Shadow Embrace, right?
It looks like {} is for alias parameters. For example, I could make "test" an alias for "forward 1" like this:
/alias test "forward 1"
Which is equivalent to
/alias test "+forward"
and now when I type /test I'll start moving forward. Or I can use {} in the alias and then I can pass my arguments in.
/alias test2 "forward {}"
Now I try to use test2 and it says I need give it an argument. So to make this work I do this:
/test2 1
or
/+test2
tada! I'm not quite sure how this would work with commands you've chained together with $$, but it's about my bedtime so that'll have to wait for another day.
If I have Ego Sprites in power slot 3 & Shadow Embrace in power slot 1, pressing the #2-key with this bind will fire off Ego Sprites and then attempt a full maintain on Shadow Embrace, right?
It looks like {} is for alias parameters. For example, I could make "test" an alias for "forward 1" like this:
/alias test "forward 1"
Which is equivalent to
/alias test "+forward"
and now when I type /test I'll start moving forward. Or I can use {} in the alias and then I can pass my arguments in.
/alias test2 "forward {}"
Now I try to use test2 and it says I need give it an argument. So to make this work I do this:
/test2 1
or
/+test2
tada! I'm not quite sure how this would work with commands you've chained together with $$, but it's about my bedtime so that'll have to wait for another day.
Nice work! I did some testing and this could be very cool. Wherever you place {} inside an alias, gets replaced with the argument you put in. So it CAN be for parameters of other functions inside but it doesn't need to be. For instance, I tried this:
/alias test "{} Hi!"
Then did /test "playersay"
Result: My character said Hi!
Now regardless of how many {} you put in your alias, all of them get replaced by the string you pass in. So if you do..
/alias test "playersay {} $$ local {}"
And type /test "test"
Result: Your character will say test to yourself, and then test in Local.
I was trying the toggle block and the bind to cancel all powers, but while it cancels the block the block button is still highlighted and I can't interact with the environment until I manually click the button off. Just wondering if anyone else is having this experience. I'm currently using rank 1 of Energy Shield.
I was trying the toggle block and the bind to cancel all powers, but while it cancels the block the block button is still highlighted and I can't interact with the environment until I manually click the button off. Just wondering if anyone else is having this experience. I'm currently using rank 1 of Energy Shield.
Hm, you're right, don't remember it doing this before but maybe. PowersCancelAllActivations works a little strangely sometimes. For instance, while it will stop something that's charging to full so you can move around, the "Charge Bar" UI remains on the screen filling up. I'm guessing it's something related to this, where PowersCancelAllActivations doesn't seem to send all the right information to the UI, just cancels powers.
This will attempt to turn off the shield and cancel powers in one call, should work as a better catch all.
In fact, I just tried this with a charge power and I think since there's a PowerExecTray call in there it responds better with the UI too. I'll update cancelling all powers to use this bind.
So, I'm trying to attach Nanites onto my Fireball.
/bind F "+PowerTrayExec 8 $$ +PowerTrayExec 9"
8 being Nanites, 9 being Fireball.
In theory it works great, and if I disable my energy builder it works in practice also. The problem is if I don't manually disable my energy builder, it will skip the Nanites completely and just toss a fireball.
Any way that I can make the script disable my energy builder momentarily and reactivate afterwards?
This stuff is all very confusing lol Im looking to set up a bunch of keybinds to help with my farming character, if anyone can help with the following I would greatly appreciate it
Numpad 1 -
/target Flamekeeper (i tried /bind Numpad 1 /target but no luck)
/follow
Numpad 2 -
/target Harpooner
/follow
`+1 -
Im wanting this to hit force eruption and flashfire if possible. Flashfire is 4th on bar, eruption is alt+3
Any help would be great
Edit : The bountiful chi comment below would also be a big help.
So I understand the binds, commands, etc, but what I haven't figured out is how to make a power activate every X secs.
Bountiful chi resurgance, I want to press <button> and every 12.5 seconds reactivate forever.
/bind N "-PowerTrayExec 1 16"
I know this activates the power if 16 is the slot it is in, 1 = on.
Whats a way to add the timer to make it re-activate in 12.5 seconds? You could do this in CoX, and do it just by pressing CTRL-left click on the power.
Whats a way to add the timer to make it re-activate in 12.5 seconds? You could do this in CoX, and do it just by pressing CTRL-left click on the power.
That Auto-activate feature is specific to CoX . I've never seen anything like it in other games I've played, and I haven't seen any sign of it being reproduced in CO.
What you can do is use what I've come to think of as CO's 'if then' logic (what I've seen others refer to as simultaneous activation) to bind resurgence in with something else so that you don't have to remember to hit it every 12 seconds.
Some of the pro-binders here can double check my solution: The way I did it was to bind it with an attack power I was going to be mashing anyway. Say you're constantly mashing the attack power in slot 2 of your quickbar and you have resurgence in slot A1. Since binds always execute the last power execute listed if it's available, we have a natural 'if then' framework:
/bind 2 "PowerTrayExec 1 1$$ PowerTrayExec 1 7"
If Resurgence is cooled down and in the proper slot (A1), it will execute when you press '2' - if it's not available, whatever attack power you have in quickbar slot 2 will execute.
Extending the 'if then' logic:
In my case, I also have a buff that cools down every minute and a half or so. I've bound that and resurgence in together with my primary attack and my energy builder for some single button mashing:
So, when I hit 2,
- It first checks slot A1 to see if my buff is available and cooled down. If so, it activates it. If not:
- It checks slot A2 to see if resurgence is available and cooled down. If so, it activates it. If not:
- It checks quickbar slot 2 to see if it can execute my primary attack. If so, it activates it. If not:
- It activates my energy builder (which it may do every time I mash the button anyway - the energy builder seems to act like an instant).
The trick, of course, is to make sure the least available power (the one with the longest cooldown) is the last power listed and so the first to be checked, then walk back to the most available power.
Hopefully you can help me. I am using the new MashON comic strip creator and the comapions website states that I can bind the Social_screenshot command to one key by typing:
/bind [any key] social_screenshot
problem is when I do this the screenshot is never taken and I have to go to MashON to find out if it worked or not. To take a pic I have to manually type /social_screenshot which is annoying. Could you test this out and see whats wrong?
So, I'm trying to attach Nanites onto my Fireball.
/bind F "+PowerTrayExec 8 $$ +PowerTrayExec 9"
8 being Nanites, 9 being Fireball.
In theory it works great, and if I disable my energy builder it works in practice also. The problem is if I don't manually disable my energy builder, it will skip the Nanites completely and just toss a fireball.
Any way that I can make the script disable my energy builder momentarily and reactivate afterwards?
Well, I tested it out and sometimes it seems to work, but it doesn't seem fool proof.
This stuff is all very confusing lol Im looking to set up a bunch of keybinds to help with my farming character, if anyone can help with the following I would greatly appreciate it
Numpad 1 -
/target Flamekeeper (i tried /bind Numpad 1 /target but no luck)
/follow
Numpad 2 -
/target Harpooner
/follow
`+1 -
Im wanting this to hit force eruption and flashfire if possible. Flashfire is 4th on bar, eruption is alt+3
Any help would be great
Edit : The bountiful chi comment below would also be a big help.
Ok for Numpad, remember that these binds won't work if NUMLOCK is on. /bind Numpad1 "target Flamekeeper $$ follow"
/bind Numpad2 "target Harpooner $$ follow"
If I understood you right, for eruption + flashfire: (Assuming flashfire is usually hit with #4 and eruption is normally Alt+3) /bind `+1 "+PowerTrayExec 3 $$ +PowerTrayExec 9"
You will need to hit ` and 1 together at the same time.
In my case, I also have a buff that cools down every minute and a half or so. I've bound that and resurgence in together with my primary attack and my energy builder for some single button mashing:
So, when I hit 2,
- It first checks slot A1 to see if my buff is available and cooled down. If so, it activates it. If not:
- It checks slot A2 to see if resurgence is available and cooled down. If so, it activates it. If not:
- It checks quickbar slot 2 to see if it can execute my primary attack. If so, it activates it. If not:
- It activates my energy builder (which it may do every time I mash the button anyway - the energy builder seems to act like an instant).
The trick, of course, is to make sure the least available power (the one with the longest cooldown) is the last power listed and so the first to be checked, then walk back to the most available power.
This is true, and it isn't so much it actually checks if then at all. Your bind runs simulataneously. Which is why the last power will interrupt anything else, but if it tries to run the power and it's on cooldown it won't run, therefore not interrupting the power before it. And yes, the energy builder in that case should actually always activate.
An important note on your bind though is I would switch them all to +PowerTrayExec 8 etc. Instead of doing PowerTrayExec 1 8. In most cases they will function the same as you've listed, but if the main power you may be 'mashing' if it's a charge or maintain you won't be able to release your key to stop it early if you want, unless you use the binary + operator instead of manually set it to active.
Hopefully you can help me. I am using the new MashON comic strip creator and the comapions website states that I can bind the Social_screenshot command to one key by typing:
/bind [any key] social_screenshot
problem is when I do this the screenshot is never taken and I have to go to MashON to find out if it worked or not. To take a pic I have to manually type /social_screenshot which is annoying. Could you test this out and see whats wrong?
Hmm... alright, I just tried fooling with this a little bit.
It just seems random to you when it works? Mind you my test was fairly fast, but I did seem to lose 1/3 images when I took screenshots in somewhat fast succession. However, when I took a little time in between moving from room to room to take one, I got them all.
Hmm... alright, I just tried fooling with this a little bit.
It just seems random to you when it works? Mind you my test was fairly fast, but I did seem to lose 1/3 images when I took screenshots in somewhat fast succession. However, when I took a little time in between moving from room to room to take one, I got them all.
I just used /bind N SocialScreenshot
Ah I see, well I did try your way and yes it worked (Silly devs). It seemed that I was using things like the numberpad keys but when I do this it only registers on the regular keyboard number keys not the keypad, wierd. In anycase I found a better solution. I bounded the screenshot to my Xbox 360 controler with
/bind lb SocialScreenshot
and it worked, now I can take pics on the fly while playing with my xbox controller, This will make pic taking easy for MashON, thanks a bunch. (Que cheesey random jingle)
Ah I see, well I did try your way and yes it worked (Silly devs). It seemed that I was using things like the numberpad keys but when I do this it only registers on the regular keyboard number keys not the keypad, wierd. In anycase I found a better solution. I bounded the screenshot to my Xbox 360 controler with
/bind lb SocialScreenshot
and it worked, now I can take pics on the fly while playing with my xbox controller, This will make pic taking easy for MashON, thanks a bunch. (Que cheesey random jingle)
Is capslock on or off? I think it makes a difference.
If numlock was off then they get recognized as Numpad1 etc. If your numlock is ON, then the numbers on your numpad work the same as your numbers above as far as the game is concerned. Which could have been affecting it.
I was wondering if you could help with the "follow" command for hand-to-hand powers. In City of Heroes, I was able to create binds with the follow command to have my character wade directly into a fight with one key press.
Input:
/bind 1 "follow $$ +PowerTrayExec 0"
Result: Character runs toward targeted enemy and executes the power in the 0 slot.
However, with the game's basic Might build, I can't get this to work with any power *except* the one in the "zero" slot. The follow part works, but the power doesn't execute when the player arrives at the enemy. What gives?
Awesome guide, thanks very much.
However, with the game's basic Might build, I can't get this to work with any power *except* the one in the "zero" slot. The follow part works, but the power doesn't execute when the player arrives at the enemy. What gives?
The reason for this is the energy builder can be toggled to remain on, so it knows to just attack whenever you're close enough. Other powers however, are click,taps,charges etc, not toggles. There isn't going to be a way for you to automatically execute an attack when you get to someone. Part of the reason for this generally not being allowed in games, is it's very easy to script and then have someone "play" without actually being at the keyboard.
The best we can do is the command like you have: /bind <key> "follow $$ +PowerTrayExec <slot #>"
Which is something you can hit to either follow or execute the power once you -are- close enough. This obviously won't work well against moving targets however as when I tested this I noticed you automatically seem to go to walk speed as you get close to a target.
I've tried a bit but cant really get it to work. Is there a good way to make tap powers into "maintain" as in it will tap your power if you hold down the key instead of you mashing it?
But all it do is use it two times (in this case Laser sword). Its just so annyoing to be forced to mash a key. Sure you could do some keyboard macro to do it but I rather keep it safe as in something you can do ingame.
But all it do is use it two times (in this case Laser sword). Its just so annyoing to be forced to mash a key. Sure you could do some keyboard macro to do it but I rather keep it safe as in something you can do ingame.
Unfortunately, no. Games in general are moving away from automated actions...which makes sense, so while we can setup a lot of things to work over several keypresses, even if it's the same key, removing the keyboard interaction isn't likely to happen.
The best you'll be able to do is 2 power uses like that most likely since laser sword is instant.
Basically lasersword is a tap, you press the key it uses laser sword and then you have to press they key again. So you need to mash your **** off to use it. I rather hold the key N to use laser sword, I release the key it stops using laser sword. I'm not really after automated actions
I know, I was just explaining why this trend is happening more in games in general and why binds/macros tend to disallow this. If this sort of thing was going to work, CO would need to allow toggle for powers.
If I have Ego Sprites in power slot 3 & Shadow Embrace in power slot 1, pressing the #2-key with this bind will fire off Ego Sprites and then attempt a full maintain on Shadow Embrace, right?
It usually works for getting Shadow Embrace to maintain, but sometimes only gets a tap effect out of S.E. As for the Ego Sprites component, that doesn't seem to work very often. Sometimes the sprites fire but usually not. Seems rather random. Ah well, it's nice when it does work, just wish it was a bit more predictable.
My only other bind is that I've swapped block from the Shift key to the ` key (seems to play much more intuitively, can't fathom why Cryptic ever had block default to Shift instead ).
I know, I was just explaining why this trend is happening more in games in general and why binds/macros tend to disallow this. If this sort of thing was going to work, CO would need to allow toggle for powers.
This would in no way make it a toggle, only difference from how it works now is that you wouldnt have the need so smash your bound key until your fingers hurt but just hold it down like a maintain power. You cant use it together with another power like a toggle no mather how you do it and I dont want it to act like a toggle where I can just toggle it on and use other powers.
I want it to act as a maintain, button smashing is bad. This is not the thread to argue in though
Guess I'll send in a ticket and ask if its allowed to use some other way of accomplishing this as I rather not sit and buttonmash, will just make me use some other skill instead if thats the case.
Guess I'll send in a ticket and ask if its allowed to use some other way of accomplishing this as I rather not sit and buttonmash, will just make me use some other skill instead if thats the case.
If you're using a G15.. >.> It's rather easy to do a lot of things automatically.
It usually works for getting Shadow Embrace to maintain, but sometimes only gets a tap effect out of S.E. As for the Ego Sprites component, that doesn't seem to work very often. Sometimes the sprites fire but usually not. Seems rather random. Ah well, it's nice when it does work, just wish it was a bit more predictable.
Try using that bind when your energy builder is off and see if it fires more consistently. Someone else mentioned a problem when the energy builder was on for these sort of binds.
OK, here's a puzzle I've been trying to get to work but so far haven't been able to manage.
Thunderbolt Lunge is set up to cause you to backflip away from the enemy when you aren't moving when you activate it, and to kick the enemy when you are in motion.
"In motion" can include falling, jumping, following, autorunning, etc.
I can't figure out a way to bind a single keypress to cause Thunderbolt Lunge to automatically do the jump kick on its own.
I've tried binding follow or autorun followed by TL, but this just causes them to activate simultaniously as far as the game's concerned, causing you to backflip and then start running forward.
Comments
this thread related to creating bindings and using slash commands. Please post anything you'd like to see
added and I'll try to edit it in.
References
http://www.championswiki.com/index.php?title=Category:Console_commands - List of commands in the game
The Basics of Binding
To create a bind in the game, the syntax is:
/bind <input> <command> [<commandParam1><commandParam2>...]
Input: This is the key or button you wish to be pushed to execute the provided command.
Command: This is the game command or alias you wish to run when the given input is pressed.
Command Paramaters: Any parameters the command you're using may require.
Example
/bind N local Hello World!
Result: After this is run, whenever you press the N key on your keyboard, your character will say
Hello World!
Editing Binds
There a few ways you can edit your binds:
bind.
Bind .txt Files
Inside your Champions Online installation folder should be a folder named Live. You can edit .txt files
with binds there, or create a new .txt files and place binds inside. These are also a useful way to
transfer binds between characters as you can save your custom binds to a .txt file from the game interface, or load binds from a .txt file.
Formatting in a .txt file for binds is the same as running the /bind command, only it's everything
after the actual "/bind" text. Also, there is one bind per line.
Example .txt file:
Button4 "+PowerTrayExec 6"
Button5 "PowerTrayExec 1 14"
N "playersay Hello World!$$em wave"
Loading/Saving Binds
To save your binds on a character to a .txt file:
/bind_save_file <name of file>
If the file name provided exists, it will be overwritten, otherwise the file will be created.
Example
/bind_save_file test.txt
Result: After this is run, all custom binds on the active character will be saved to test.txt inside
of your Champions Online\Live folder.
To load binds to a character from a .txt file:
/bind_load_file <name of file>
If the file name provided exists, the binds it contains will override the current binds on your active
character.
Important Note: ONLY the binds the loaded file contains will be applied, it will unbind other custom
binds you may have.
Example
Let's say we have 2 .txt files, test1.txt and test2.txt.
test1.txt contains:
N "local Hello World!"
H "local Hi!"
test2.txt contains:
N "local Nice to meet you!"
If test1.txt is our current binds that we've already loaded, and then we run:
/bind_load_file test2.txt
Result:
When you press N, your character will say "Nice to meet you!"
When you press H, your character will say "Hi!"
Notice, your character will not say "Hello World!" when N is pressed since only that bind was overriden
when test2.txt was loaded.
Binary/Toggle Commands
There are several commands that accept a binary operator. (+ or -)
When you have + in front of a command, the command is ON while your input is pressed, and off on release.
Example
/bind N "+up"
Result: If you are flying, you will fly up while N is pressed, and stop when N is released.
When you have a - in front of a command, it tells that command to stop.
Example
/bind N "-PowerTrayExec 16"
/PowerTrayExec 1 16 (this will turn on your shield)
Result: When you press N, your shield will be turned off if it is on.
Toggle commands can accept a ++ operator in front of them. ++ tells the bind to switch the command between ON and OFF.
Example
/bind N "++autoForward"
Result: When you press N, you will turn on auto run. If you are already auto running, pressing N will turn auto run off.
Running Multiple Commands w/ One Bind
$$ is used to separate commands when binding. So our command from above looks like:
/bind <input> "<command> [<param1><param2>...][$$<command2>[<param1><param2>]...]"
Example
/bind N "local Hello World! $$ em wave"
Important Note: While each command is separated by $$, you must also surround everything
after your input in quotes as well, as shown in the example.
Result: After this is run, whenever you press the N key on your keyboard, your character will say
Hello World! and wave.
IMPORT NOTE: When you have a bind with multiple commands, the FIRST command will determine the binary state of your ENTIRE bind. I will explain this more later in the power usage section.
The Alias Command
The alias command is for creating your own commands/functions. The command to create one is:
/alias <command name> "<command1>[<param1><param2>...][$$<command2>[<param1><param2>]...]"
Example
/alias helloWorld "yell Hello World!"
Then, type /helloWorld
Result: Your character will yell to the zone, "Hello World!"
Using {}
(Thanks to: Amasilver for helping with this section.)
When creating an alias, you may use {} which has a special function. This is treated as a marker of where to insert a string that will be passed to your alias.
Example
/alias helloWorld "yell {}"
(Now our alias helloWorld takes 1 string argument.)
Then, type /helloWorld Hello Everybody!
Result: Your character will yell to the zone, "Hello Everybody!"
Now, if you include multiple {} in your alias, EACH one will be replaced by the string you pass to your alias. Also, the string replacement gets interpretted BEFORE your alias is run, which opens up possibilities for more complex usage. Now for a slightly more complex example.
Example
/alias move "+{} $$ playersay Going {}!"
/bind N move left
Result: When you press N, your character will move to the left and say "Going left!"
In this section, I'll list answers to the most commonly requested binds.
How do I make my shield toggle on, so I don't need to hold the key?
/bind SHIFT PowerTrayExec 1 16
How do I say something as I use a power?
/bind <key> "local Hi! $$ +PowerTrayExec <slot #>"
How can I change costumes/builds when I activate my travel power?
Create the following 2 txt files, with the listed contents in your Champions Online\Live Folder.
fly.txt:
t "+PowerTrayExec 14 $$ buildset 1 $$ bind_load_file land.txt"
land.txt:
t "+PowerTrayExec 14 $$ buildset 0 $$ bind_load_file fly.txt"
Then run:
/bind t "+PowerTrayExec 14 $$ buildset 1 $$ bind_load_file land.txt"
To change costumes, instead of builds:
Change "buildset <#>" to "setactivecostume 0 <#>"
How do I target myself before doing a heal?
/bind N "+down1 $$ target_self $$ +PowerTrayExec <slot #>"
Chat Related Commands/Binds
From BrEggo's thread:
You can switch the channel you're actively in also by using:
channel_setcurrent "<channel name>"
Example
/bind N channel_setcurrent "TeamID_Live"
Result: Puts your chat to Team.
Yes it is, but not sure in which way do you mean? With one key press, or something like a cast sequence where you can hit a button multiple times.
I'm still struggling with some of it though. I'm not very savvy with coding at all!
I'd like to be able to hold down F5 and have it turn off my End builder, select team member 1, then begin a maintain of my heal power (slot 13). Then on releasing F5 have it re-activate my End builder.
So essentially holding F5 heals Team member 1, but I can keep my End builder set to 'Toggle, Never cancels'.
Seems quite complicated. Is it even possible?
Many thanks
Well, if your endurance builder is set to "Toggle, Never Cancels" already, we don't need to mess with that at all actually. This should do the tricK:
/bind F5 "+down1 $$ TargetTeammate 1 $$ +PowerTrayExec 13"
The down1 is a dummy command...I put that first so that way your maintain will work as expected with your keypress. Then it targets your teammate #1, and fires off the power slot you mentioned.
Hmm... Well, there is Channel_SetCurrent <string> which you can use to switch to a specified channel. I'm not seeing something to just cycle through them unfortunately...however, if you have a preset list then it would be possible by cycling through binds. I'll use Zone and Local as examples.
If you create zone.txt (In your Champions Online\Live folder):
N "channel_setcurrent Zone $$ bind_load_file local.txt"
And create local.txt:
N "channel_setcurrent Local $$ bind_load_file zone.txt"
Then in game run:
/bind N "channel_setcurrent Local $$ bind_load_file zone.txt"
Not ideal, I know, but I'm not seeing something cleaner. However, once they open up the ability to do mods, something like this should be very easy to do, since there is a command to list what channels you're in, it would be easy to parse and do something like this. (That's probably how their chat drop down menu works)
That's awesome! Thank you SO much!!! Can't wait to get home and try it out.
VERY much appreciated! :D:D:D
Ahh, Thank you, I can create a similar file for each channel I'm on and set it to call the next channel and file.
Edit: This does not seem to work if the name of the channel has spaces in it - I tried it both as ( chat channel ) and as ( chat_channel )
Ok, I hadn't dealt with strings inside of a string yet, which is part of the problem here, but got a fix for you!
If you create Chat2.txt (In your Champions Online\Live folder):
N "channel_setcurrent "Channel Name 2" $$ bind_load_file Chat2.txt"
And create Chat1.txt:
N "channel_setcurrent "Channel Name 1" $$ bind_load_file Chat1.txt"
Then in game run:
/bind N "channel_setcurrent "Channel Name 1" $$ bind_load_file Chat2.txt"
So you just need to wrap your channel name in quotes.
Devs please sticky!
If you need help/input to test binds out, shoot me a msg, Z. I'm always happy to test out new binds and work out the kinks!
@Neeroy, I'll definitely hit you up some time on that offer.
Not sure on {}, I would have thought for a long bind or aliases or something, but that doesn't seem to be the case.
I've been fooling with the PowerExec commands but nothing great yet. All I've found is... +PowerExecCategory Block is only normal Block...and +PowerExecCategory Travel is your first travel power (first one you get regardless if you move its spot). Been trying to guess some other keywords for that or PowerExec but no luck yet. If I come across anything, I'll make sure to post it.
I did find some other interesting commands that switch the power trays and so forth, but the other trays seem unuseable.
Also, what do you guys think about me adding a section for Research? For instance... I've been fiddling with some camera commands and Power Exec commands. Kind of like a "To Do" list as priorities so if anyone wants to help, or if anyone happens to already know it can be removed from the list and I'll throw it in the appropriate section.
/bind 2 "+PowerTrayExec 3 $$ PowerTrayExec 1"
If I have Ego Sprites in power slot 3 & Shadow Embrace in power slot 1, pressing the #2-key with this bind will fire off Ego Sprites and then attempt a full maintain on Shadow Embrace, right?
It looks like {} is for alias parameters. For example, I could make "test" an alias for "forward 1" like this:
/alias test "forward 1"
Which is equivalent to
/alias test "+forward"
and now when I type /test I'll start moving forward. Or I can use {} in the alias and then I can pass my arguments in.
/alias test2 "forward {}"
Now I try to use test2 and it says I need give it an argument. So to make this work I do this:
/test2 1
or
/+test2
tada! I'm not quite sure how this would work with commands you've chained together with $$, but it's about my bedtime so that'll have to wait for another day.
That's correct, that should work.
Nice work! I did some testing and this could be very cool. Wherever you place {} inside an alias, gets replaced with the argument you put in. So it CAN be for parameters of other functions inside but it doesn't need to be. For instance, I tried this:
/alias test "{} Hi!"
Then did /test "playersay"
Result: My character said Hi!
Now regardless of how many {} you put in your alias, all of them get replaced by the string you pass in. So if you do..
/alias test "playersay {} $$ local {}"
And type /test "test"
Result: Your character will say test to yourself, and then test in Local.
[Edit] Added an alias command section up top!
Hm, you're right, don't remember it doing this before but maybe. PowersCancelAllActivations works a little strangely sometimes. For instance, while it will stop something that's charging to full so you can move around, the "Charge Bar" UI remains on the screen filling up. I'm guessing it's something related to this, where PowersCancelAllActivations doesn't seem to send all the right information to the UI, just cancels powers.
For your cancel all bind, try:
/bind <key> "-PowerTrayExec 16 $$ PowersCancelAllActivations"
This will attempt to turn off the shield and cancel powers in one call, should work as a better catch all.
In fact, I just tried this with a charge power and I think since there's a PowerExecTray call in there it responds better with the UI too. I'll update cancelling all powers to use this bind.
/bind F "+PowerTrayExec 8 $$ +PowerTrayExec 9"
8 being Nanites, 9 being Fireball.
In theory it works great, and if I disable my energy builder it works in practice also. The problem is if I don't manually disable my energy builder, it will skip the Nanites completely and just toss a fireball.
Any way that I can make the script disable my energy builder momentarily and reactivate afterwards?
Numpad 1 -
/target Flamekeeper (i tried /bind Numpad 1 /target but no luck)
/follow
Numpad 2 -
/target Harpooner
/follow
`+1 -
Im wanting this to hit force eruption and flashfire if possible. Flashfire is 4th on bar, eruption is alt+3
Any help would be great
Edit : The bountiful chi comment below would also be a big help.
Bountiful chi resurgance, I want to press <button> and every 12.5 seconds reactivate forever.
/bind N "-PowerTrayExec 1 16"
I know this activates the power if 16 is the slot it is in, 1 = on.
Whats a way to add the timer to make it re-activate in 12.5 seconds? You could do this in CoX, and do it just by pressing CTRL-left click on the power.
You can't - CO doesn't allow any kind of timed activation (that I've seen). Seems to want us at our keyboards pressing buttons
That Auto-activate feature is specific to CoX . I've never seen anything like it in other games I've played, and I haven't seen any sign of it being reproduced in CO.
What you can do is use what I've come to think of as CO's 'if then' logic (what I've seen others refer to as simultaneous activation) to bind resurgence in with something else so that you don't have to remember to hit it every 12 seconds.
Some of the pro-binders here can double check my solution: The way I did it was to bind it with an attack power I was going to be mashing anyway. Say you're constantly mashing the attack power in slot 2 of your quickbar and you have resurgence in slot A1. Since binds always execute the last power execute listed if it's available, we have a natural 'if then' framework:
/bind 2 "PowerTrayExec 1 1$$ PowerTrayExec 1 7"
If Resurgence is cooled down and in the proper slot (A1), it will execute when you press '2' - if it's not available, whatever attack power you have in quickbar slot 2 will execute.
Extending the 'if then' logic:
In my case, I also have a buff that cools down every minute and a half or so. I've bound that and resurgence in together with my primary attack and my energy builder for some single button mashing:
/bind 2 "DefaultAutoAttack 1$$PowerTrayExec 1 1$$ PowerTrayExec 1 8$$ PowerTrayExec 1 7"
So, when I hit 2,
- It first checks slot A1 to see if my buff is available and cooled down. If so, it activates it. If not:
- It checks slot A2 to see if resurgence is available and cooled down. If so, it activates it. If not:
- It checks quickbar slot 2 to see if it can execute my primary attack. If so, it activates it. If not:
- It activates my energy builder (which it may do every time I mash the button anyway - the energy builder seems to act like an instant).
The trick, of course, is to make sure the least available power (the one with the longest cooldown) is the last power listed and so the first to be checked, then walk back to the most available power.
/bind [any key] social_screenshot
problem is when I do this the screenshot is never taken and I have to go to MashON to find out if it worked or not. To take a pic I have to manually type /social_screenshot which is annoying. Could you test this out and see whats wrong?
Well, I tested it out and sometimes it seems to work, but it doesn't seem fool proof.
/bind F "+PowerTrayExec 0 $$ +PowerTrayExec 8 $$ +PowerTrayExec 9 $$ +PowerTrayExec 0"
I was testing with sonic device and concussor beam, so should be pretty similar other than concussor being a toggle.
Ok for Numpad, remember that these binds won't work if NUMLOCK is on.
/bind Numpad1 "target Flamekeeper $$ follow"
/bind Numpad2 "target Harpooner $$ follow"
If I understood you right, for eruption + flashfire: (Assuming flashfire is usually hit with #4 and eruption is normally Alt+3)
/bind `+1 "+PowerTrayExec 3 $$ +PowerTrayExec 9"
You will need to hit ` and 1 together at the same time.
This is true, and it isn't so much it actually checks if then at all. Your bind runs simulataneously. Which is why the last power will interrupt anything else, but if it tries to run the power and it's on cooldown it won't run, therefore not interrupting the power before it. And yes, the energy builder in that case should actually always activate.
An important note on your bind though is I would switch them all to +PowerTrayExec 8 etc. Instead of doing PowerTrayExec 1 8. In most cases they will function the same as you've listed, but if the main power you may be 'mashing' if it's a charge or maintain you won't be able to release your key to stop it early if you want, unless you use the binary + operator instead of manually set it to active.
Hmm... alright, I just tried fooling with this a little bit.
It just seems random to you when it works? Mind you my test was fairly fast, but I did seem to lose 1/3 images when I took screenshots in somewhat fast succession. However, when I took a little time in between moving from room to room to take one, I got them all.
I just used /bind N SocialScreenshot
Ah I see, well I did try your way and yes it worked (Silly devs). It seemed that I was using things like the numberpad keys but when I do this it only registers on the regular keyboard number keys not the keypad, wierd. In anycase I found a better solution. I bounded the screenshot to my Xbox 360 controler with
/bind lb SocialScreenshot
and it worked, now I can take pics on the fly while playing with my xbox controller, This will make pic taking easy for MashON, thanks a bunch. (Que cheesey random jingle)
Is capslock on or off? I think it makes a difference.
Edit: whoops, meant numlock. Silly me.
Caplocks were off.
If numlock was off then they get recognized as Numpad1 etc. If your numlock is ON, then the numbers on your numpad work the same as your numbers above as far as the game is concerned. Which could have been affecting it.
I was wondering if you could help with the "follow" command for hand-to-hand powers. In City of Heroes, I was able to create binds with the follow command to have my character wade directly into a fight with one key press.
Input:
/bind 1 "follow $$ +PowerTrayExec 0"
Result: Character runs toward targeted enemy and executes the power in the 0 slot.
However, with the game's basic Might build, I can't get this to work with any power *except* the one in the "zero" slot. The follow part works, but the power doesn't execute when the player arrives at the enemy. What gives?
The reason for this is the energy builder can be toggled to remain on, so it knows to just attack whenever you're close enough. Other powers however, are click,taps,charges etc, not toggles. There isn't going to be a way for you to automatically execute an attack when you get to someone. Part of the reason for this generally not being allowed in games, is it's very easy to script and then have someone "play" without actually being at the keyboard.
The best we can do is the command like you have:
/bind <key> "follow $$ +PowerTrayExec <slot #>"
Which is something you can hit to either follow or execute the power once you -are- close enough. This obviously won't work well against moving targets however as when I tested this I noticed you automatically seem to go to walk speed as you get close to a target.
Tried with:
/bind N "+PowerTrayExec 4 $$ +PowerTrayExec 4 $$ +PowerTrayExec 4 $$ +PowerTrayExec 4 $$ +PowerTrayExec 4 $$ +PowerTrayExec 4 $$ +PowerTrayExec 4 $$ +PowerTrayExec 4 $$ +PowerTrayExec 4"
But all it do is use it two times (in this case Laser sword). Its just so annyoing to be forced to mash a key. Sure you could do some keyboard macro to do it but I rather keep it safe as in something you can do ingame.
Unfortunately, no. Games in general are moving away from automated actions...which makes sense, so while we can setup a lot of things to work over several keypresses, even if it's the same key, removing the keyboard interaction isn't likely to happen.
The best you'll be able to do is 2 power uses like that most likely since laser sword is instant.
This bind, however, has not been:
It usually works for getting Shadow Embrace to maintain, but sometimes only gets a tap effect out of S.E. As for the Ego Sprites component, that doesn't seem to work very often. Sometimes the sprites fire but usually not. Seems rather random. Ah well, it's nice when it does work, just wish it was a bit more predictable.
My only other bind is that I've swapped block from the Shift key to the ` key (seems to play much more intuitively, can't fathom why Cryptic ever had block default to Shift instead ).
This would in no way make it a toggle, only difference from how it works now is that you wouldnt have the need so smash your bound key until your fingers hurt but just hold it down like a maintain power. You cant use it together with another power like a toggle no mather how you do it and I dont want it to act like a toggle where I can just toggle it on and use other powers.
I want it to act as a maintain, button smashing is bad. This is not the thread to argue in though
Guess I'll send in a ticket and ask if its allowed to use some other way of accomplishing this as I rather not sit and buttonmash, will just make me use some other skill instead if thats the case.
If you're using a G15.. >.> It's rather easy to do a lot of things automatically.
Try using that bind when your energy builder is off and see if it fires more consistently. Someone else mentioned a problem when the energy builder was on for these sort of binds.
Thunderbolt Lunge is set up to cause you to backflip away from the enemy when you aren't moving when you activate it, and to kick the enemy when you are in motion.
"In motion" can include falling, jumping, following, autorunning, etc.
I can't figure out a way to bind a single keypress to cause Thunderbolt Lunge to automatically do the jump kick on its own.
I've tried binding follow or autorun followed by TL, but this just causes them to activate simultaniously as far as the game's concerned, causing you to backflip and then start running forward.
Any suggestions?