Manipulating the bindfile is quick, simple and only requires a basic text editor; i.e., notepad. Insert the desired binds with the proper syntax, save and load. You'll find it's fun and snap! The job's a game.
And every task you undertake
Becomes a piece of cake
A lark! A spree!
It's very clear to me
(Sorry, damn showtunes creep into everything. Where were we? Ah, yes...)
Follow these steps and you can easily manipulate your file for adding or removing any bind action allowable. It is my intention to provide instructions and explanation so even the least computer savvy can use this technique to up their game; so, I ask that you please excuse any perceived condescension.
Lastly, do not worry this is safe; I do it regularly. There are a few things to remember:
1. The system always works.
2. If you do something wrong it won't break the game.
3. If you get flummoxed and need to get back to basics, use "Reset to Default" in your Key Binds Option tab, Exit, Delete the bindfile and Restart the game.
4. Black box theory. BS in = BS out
5. Keybinds are not a hack. Keybinds are not cheating. They are an integral part of the game provided by Cryptic. (Thank you, Cryptic.)
6. Keybinds work in reverse. First bind listed is the last activated; Last is First.
1.1 What is a keybind?
A keybind is a keyboard shortcut or "hotkey". It is a set of one or more predefined actions assigned to a keyboard key which, when pressed, invoke an operation or a series of operations triggered by the user.
1.2 Why Do We Keybind?
The big reason that got me started was that in the midst of combat I would inadvertently open a Gameplay Window thus obscuring the combat at hand. In the heat of battle, I frantically mashed buttons in a vain attempt to quickly to close the window. This merely served to exacerbate the problem and completely cover the field of view with multiple windows. When the windows were finally clear, the only remaining window was "DEFEATED" with the 'respawn" button awaiting my attention.
The most relevant reason, is to increase our speed, effectiveness and efficiency during combat. Keybinds increase the speed with which you can react to the dynamic environment of combat. They increase your efficiency in battle by reducing the time it takes to issue a command. They increase your effectiveness by simplifying the ability to direct those commands when and where they are most needed.
You will much faster at parsing out any give power with keybinds. You can easily target a teammate and drop a Science Team to clear that Jam Sensors by hitting one key. The alternative is having to find your teammate, select that teammate, search for the appropriate power, and then activate that power.
Keybinds are your friends; they make life easier.
Just to make sure everyone understands MY meanings ...
1.3.1 Key = any button present on a keyboard. This includes: 1) alphabetic characters, 2) the number pad and 3) the function keys.
1.3.2 Press = the action of restraining (pushing and holding) a key in the down position.
1.3.3 Release = the action of releasing a restrained key.
1.3.4 Tap = the action of pushing and subsequently releasing a key.
I classify commands in three categories (these may or may not be the correct terminoloy, but it works for me.):
These commands cause an action/power to be perform once each time the command is given. (A sure giveaway is the presence of "exec" in the command.)
Ex: Distribute Shield Power = /+power_exec Distribute_Shields
These commands cause an action/power to be turned on or off during the press of a key.
Ex: Turn left = /+left
These commands cause an action/power to be turned on or off until another user input cancels the action/power.
Ex: Turn left = /++left
2.1 Using Commands
Commands can be used/manipulated it two ways:
2.1.1 Chat Window
Entering a command in the chat window requires that it be prefixed with '/' (forward slash). Without it whatever command you type will be merely be seen in the chat channel you currently have selected.
You can get a list of commands available by typing (in the chat window):
(Yeah, you've just used your first command.) This command will generate a list of commands in the [system] chat channel which can usually be found under the NPC tab and is yellow by default. I have compiled a list of these commands here. This is the default list generated. (I may update the annotated sheet's comment section as time allows.)
This method uses the syntax: /bind <key> <toggle><command> <Param1><Param2> ...
2.1.2 Bind File
Entering commands in the bind file requires the bind file to be loaded before the binds become usable.
Either method will generate the same result. Personally, I prefer to use the bindfile and load the file afterward. This has the benefit of being able to see all the other binds previously created, so you don't reuse keys for different commands. If you end up using one key for different commands, only the last bind will be used.
This method uses the syntax: <key> "<toggle><command> <Param1><Param2> ..."
2.2 Clearing Binds
This command will erase all user generated binds and restore the Cryptic defaults.
Using the "Reset to Default" button will only reset the game to the key binds created by cryptic. Any binds that these don't overwrite will still exist. To get rid of them completely use this command, exit, delete and restart.
2.3 Command Variables
The next topic is command input. Many commands require parameters to function properly. These parameters will appear as text in between <chevrons>. These parameters are required in order to assign a value to whatever command you are trying to issue; some commands require more than one input. So, let's go through some of the more common parameters. (Yes, more definitions.)
2.3.1 Binaries <bin>
Binaries, also known as toggles, are either 1/+ (on) or 0/- (off). Generally, binary inputs are denoted as <bin>. For example, typing /combatlog 1 will turn on the combatlog, and /combat 0 will turn it off. If you type /combatlog by itself without a value it will print the current value assigned to combatlog in the [system] chat channel. This can be used to verify the value of a command and make sure the value has been changed.
2.3.2 Integers: <int>
Integers are whole numbers; 0, 1, 2, 3 and so on. The input requirement is denoted either by <int> or <value>. Generally I will attempt to stay with <int>.
2.3.3 Strings: <string>
A string is a sequence of characters required by commands in order to properly to execute. Examples include: player names, power names, chat channels, etc.
2.3.4 Parameters: <Param#>
A parameter is a reference or value that is passed to a command. In this case, <Param#> is loosely used to identify any of the above.
1) You must be in space to manage your space keybinds.
2) You must be on the ground to manage your ground keybinds.
3) Additionally, ground binds are currently limited to the changes you can make through the Key Binds tab in the Options menu. Hopefully, at some point, Cryptic ** Nudge. Nudge. Wink. Wink. ** will give us control over our BO abilities on the ground as much as we have in space.
Now that you know the various parts of commands and what it takes to issue a command, let's move on to the bind itself. Everyone uses binds; most just don't realize it. For example, many folks use WASD keys (** shudder**) to pilot their ship or for maneuvering on the ground. All the keys you use to cause an action to occur are keybinds. Initially, these were set to default values by Cryptic and can be found in the Options menu under the tab heading Key Binds. You can also access this menu by typing /keybinds in the chat window.
Keyboard layouts are available for the beginner; an excellent set of mappings are available at STO Academy:
or, when directly editing a keybind file, we use the syntax:
<key> "<toggle><command> <Param1><Param2> ..."
<key> is the key you wish use to execute the command.
<toggle> used in the form of '+' (plus) or '++' double-plus, but rarely may not be necessary.
<command> is the game command you wish to execute.
<Param#> are any parameters the command may require.
Note the absence of the '/bind' and the presence of " (quotation) for the bind file. The quotation marks are required in the bind file.
Throughout the rest of this guide I will provide both options for use. The first will be the command line used in the chat window and second used in the bindfile itself. So ...
3.1.2 Multiple Commands Syntax
Okay, you're well on your way to being a Binder. But wait, what's that you say? You've got the single command line binds down, but didn't you say something about targeting someone and healing them with one key? That's more than one command. How do I do make that magic happen?
The key to using multiple commands is concatenation. A big word that means putting multiple commands one after the other. To do this you use $$ (double dollar signs). So our now our syntax looks something like:
Go to your options menu (<esc>, select Options) there you will find a tab called "Key Binds". Those are your current keybinds. So, first things first, you need a file to modify. To generate (saving) a bindfile, you can type the following in the chat window as above:
In the "Live" folder there will be a file with the name (<filename>.txt) you provided. Double-click on this to open and it should use notepad. Now, you should have a bindfile that has all your basic keybinds.
You could also open a new notepad document and save it to the Live folder. Since all your binds are default, unless you have changed anything, either way gets you the same result.
3.3 LOCATING A BINDFILE
For those using Windows7 & Vista it is located here:
So as long as you use the complete path to the file you can put it anywhere you like.
3.4 LOADING/SAVING A BINDFILE
To save your binds to a .txt file, use:
If the file name provided exists, it will be overwritten, otherwise a file will be created.
Effect: After this is run, all binds on the active character will be saved to <filename>.txt inside your Star Trek Online/Live
This saves the file in your Documents folder:
/bind_save_file C:\Users\<your user name>\Documents\<filename>.txt
So as long as you use the complete path to the file you can put it anywhere you like.
Note: Multiple files are possible. I use keybinds_space_####.txt as the file name where the ##### are the first letters of my assigned BOs. This way I know which bind file applies to which BO roster. Ground is much more simple as I take the same BOs every time so i use keybinds_ground.txt.
To load your bind file from a .txt file use
This will load all the changes you just made into your game and overwrite the included designations. It will only overwrite the keys included in the file; nothing else. (We can fix that later.)
In a folder other than the "Live" folder use:
/bind_load_file C:\Users\<your user name>\Documents\<filename>.txt
Special thanks to psytce for correcting me. I never though to save the file anywhere else.
So, now that you have a bindfile, what are you going to do with it? So let's switch back to STO quick and enter the Options:Key Binds menu. Scroll to the bottom and you'll find the default keybinds under the heading "Gameplay Windows". Cryptic has already assigned these as:
i = Inventory
k = Skills
u = Status
o = People
j = Missions
l = Log
m = Map
There are very specific commands associated with these functions. If you hover your cursor over the item "Inventory", a window pops up with "Use manually with /GenSendMessage Root ShowInventory". This means that, if you enter "/GenSendMessage Root ShowInventory" in the chat window, your inventory window will open. Enter it again and the window disappears. You now have control of the inventory window. Hover over each of the actions listed and the associate command will be shown.
Note: some of the command keys have been changed to facilitate mnemonic recall and accommodate my play style. 'S' is used for Status instead of 'U'. 'P' is now People instead of 'O'.
If you use the mouse to navigate, like I do, you can cut'n'paste these commands directly into your bindfile. All you WASD-ers (I should open thread about the inefficiency of that.), you can do the same without fear that your A & S keys will be hijacked.
The next step is to clear the previous designations to prevent my window calamity from still occurring. (Remember I said I'd fix that.) To do so, you simply use double-quotes (""). So, add these:
One more step and we're done ...
You will note that there are many keys with "(null)" next to them. The means that there was no value present when you created the file. You have to remove the '(null)' because the game doesn't recognize this as a valid command and will deny your file. So, just do a find/replace. In notepad, ctrl+h opens this window. In the "find" type (null). Do not put anything in "replace". Press "Replace All" and voila all the nasty nulls disappear.
Phew. Finally, With these changes made, save your bindfile. Just to make sure the changes are there open it again and, hopefully these changes are in place, close it again.
Now, let's test the magic. Go to STO and load (/bind_load_file <filename>.txt) your bind file. Press 'Control' and tap the 'I' key. You should see your Inventory window pop open. Do it again and it closes. 'Control+M' opens and closes your map.
Bravo, you're on your way to becoming a keybind freakazoid like me. (Binds are like tatoos ... once you have one, you want more.)
Alright, I lied. Open that file and let's add a few more ...
/bind Add throttleadjust .10
- or –
Add "throttleadjust .10"
Effect: When the numberpad plus key is tapped the ship's throttle will increase by one-tenth(.10).
/bind subtract throttleadjust -.10
- or –
subtract "throttleadjust -.10"
Effect: When the numberpad subtract key is tapped the ship's throttle will decrease by one-tenth(.10).
4.1.1 THE EXCEPTION TO THE RULE
Now, there is an exception to every rule and here it is: Commands differ when it comes to chat channels, but the syntax remains the same. You simply drop the use of quotation marks ("") all together.
/bind a Team Welcome to my parlor, gentlemen.
- or –
a Team Welcome to my parlor, gentlemen.
Effect: When the A-key is tapped, "Welcome to my parlor, gentlemen." is expressed in the Team chat channel.
One final note, you cannot have linefeeds (code that moves the cursor down one line) in the string, so be careful if you put these together in an editor. Notepad has a "Word Wrap" feature (under Format) that I disable when saving the file.
My thanks to Naevius for pointing this out.
4.2 Multiple Commands
Okay, you are well on your way to being a Binder. But wait, what's that you say? Yeah, I've got the single command binds down; that's easy peasy, but didn't you say something about targeting blah-blah and healing blah-blah one key? Well, that's more than one command. So, now your wondering: How do I do make that magic happen?
The key to using multiple commands is concatenation. That's a big word for putting multiple commands one after the other. To do this you use $$ (double dollar signs). So our now our bind command looks something like:
Let's say you use the three tray display which causes you to loose your bridge crew display and weapons display. (The one with the bridge officers in their pretty colors and their powers next to them.) I can give all that back with one of my favorite keybinds:
Effect: Tapping F5 opens the weapons HUD display and opens the Bridge Crew Tray.
4.3 Toggle Commands
Several commands use toggles, either plus (+) or minus (-), to turn them on or off. These operators I have classified as Non-continuous and Continuous.
By placing a + (plus) in front of a command, the command is ON while your key is pressed, and off when released. Using ++ (double-plus) causes the action to continue even after the key is released.
The syntax for a non-continuous commands is:
/bind <key> <bin><command><param1><...>
- or -
/bind numpad4 +left
- or -
Effect: Causes you to turn left while the number pad 4-key is pressed. The turn stops when the key is released.
You could assign another key with -left. When pressed it will cause the first pressed key to stop the left turn. However, this is negated by simply releasing the initial key.
The second toggle command, Continuous, uses the ++ (double plus). With this toggle the bind is activated when the key is tapped and deactivated when the key is tapped again. This TOGGLES (hence the name) the command ON and OFF.
/bind numpad4 ++left
- or -
Effect: TApping the 4-key on the number pad results in a continuous left-hand turn. When the key is tapped again, the turn is canceled.
4.4 Using Powers (in space)
To use your powers and your Bridge Officer powers in space you need be able to reference their location within the powers display. The powers display is divide into ten (10) trays by ten (10) slots. If you use the three-tray display you see:
For the purposes of binding, the trays are numbers 0 thru 9; with the first (1st) tray being 0 and the last (10th) being 9. Your slots are similarly numbered starting at 1 = 0 and going to 0 (or 10) = 9. This convention stems from the fact that counting actually starts at zero (0) not one (1); hence 0, 1, 2, 3 … not … 7, 8, 9, 0.
So to use the fourth (4th) power in Second (2nd) tray designated by C4, you can use Control+4 to execute the associated power. Alt-8 gets the eighth (8th) power in the third (3rd) tray and so on.
When using powers in keybinds you have to identify the power by tray and slot convention. Using the previous examples: C4 is Tray1 Slot3 and A8 is Tray2 Slot7. The quick way to make this translation is to subtract one from the tray and slot you are looking to use.
The syntax for binding a tray power is:
/bind <key> +TrayExecByTray <tray> <slot>
- or -
<key> “+TrayExecByTray <tray> <slot>”
Notice the plus (+) before the command used to activate the command. This is an execute command.
So, let's use those examples. We'll put Beam Overload in the C4 position and Target Subsystems Shields in the A8 position. To activate either one you would use:
/bind Control+4 +TrayExecByTray 1 3
- or -
Control+4 “+TrayExecByTray 1 3”
Effect: Pressing the control key and tapping the 4-key would activate your beam overload. And ...
/bind Alt+8 +TrayExecByTray 2 7
- or -
Alt+8 “+TrayExecByTray 2 7”
Effect: Pressing the Alt key and tapping the 8-key activates your Target Subsystems Shields.
4.5 Using Multiple Powers
Now, you say, “That's all well and great but those are the default binds Cryptic provides. I want more.” (Don't you always.) “What about putting more than one together?” To which I say, Auntie Em its a twister. It's a twister!, er ... use this syntax:
Keybinds aren't the be all end all of Star Trek Online; there are some limitations to using them:
5.1 Multiple powers = Multiple presses
Many times you will be required to press the <key> multiple times to activate each power bound to that <key>. So, if you have ten (10) powers bound to one key, you will likely have to press that key 10x to get each one to activate.
Now, you're gonna groan, “But isn't that what the binds are for? Why can't we activate all these power with the press of a button?” The answer to that is what I call the “I win button” or, conversely, the “I'm indestructible button” (aka, hammer meet anvil). Cryptic has graciously incorporated (Thank you, again.) the multiple press requirement to prevent anyone from creating just such a monster (or two).
5.2 Cooldowns slooooow ya down.
When the powers being activated share cooldowns such as with the Emergency Power to X powers. Say you have Emergency Power to Shields 1 & 2. If, In the above example, EPtS1 is in A8 and EPtS2 is in C4 pressing the 4-key the first time will activate the first EPtS. Pressing it again immediately afterward will not result in the second EPtS being activated. Since there is a 30s shared cooldown any keypress within those 30s is ignored. Once the cooldown is clear the second (or more) power can be activated.
Everything has an "Activation Time" attached to it. Some are instant with 0s. Others are delayed by .5s. This WILL affect your bind activation sequence.
5.3 Relax it's only a game.
You MUST allow time for the power to activate before pressing the <key> again. If you don't, it is possible that a power will be skipped over and won't be activated until it is next in line. What does this mean? Well, all you button mashers out there pounding on your keyboard like your fingers are auditioning for River Dance need to s l o o o o w d o o o o w n.
The last command in the string will be the first command activated.
You can string together as many commands as you like. But, Keybinds activate in the reverse order in which they are entered. So, the last command listed activates first and the first last.
There is a more indepth method, fairly complex and confusing method using slider commands to tweak the power setting to exactly where you want them. If anyone wants to know more send me a PM and I'll help you out.
Note: It is fine to group similar keybinds together and give them a Title. The system will ignore the Title, in this case Power Presets, and continue loading the binds.
Q: I'm having a hard time finding my teammates to send them heals. Is there an easy way to do this.
A: Of course; there are actually two ways:
Method #1: The F1 - F5 keys are designated Self (F1), Teammate 1 (F2) and so on. You could bind the desired command to a single button and use the F-key to target your teammate and the bound key to apply the power. So you'd do this:
<key> "+TrayExecByTray <row> <slot>"
Then you just tap F-key and then <key> to get your teammate the help they need.
Method #2: I have binds for 30 separate keys set to target any given teammate and send them the needed aid. It looks something like this:
i "Target_self $$ +TrayExecByTray 6 8"
o "TargetTeammate 1 $$ +TrayExecByTray 6 8"
p "TargetTeammate 2 $$ +TrayExecByTray 6 8"
[ "TargetTeammate 3 $$ +TrayExecByTray 6 8"
] "TargetTeammate 4 $$ +TrayExecByTray 6 8"
In this example, my Science Team is located on the seventh tray in the ninth position; hence 6 8. The keys i, o, p, [ (right bracket), and ] (left bracket) are used to apply a Science Team to Myself (i), the first teammate in the list (o) ...
This makes removing that dastardly Jam Sensors or the equally troublesome Scramble Sensors quick and easy. A teammate need but ask and I shall deliver unto them.
Q: Esc, Option, Key Bind tab. Esc, Option, Key Bind tab. I'm tired of having to do this over and over each time I want to change a predefined keybind. Is there an easier way.
A: Bouncing in and out can get tiresome; so try:
This will bind a key to open the keybinds tab. Hit it again and *poof* it closes.
Q: I want to be able to distribute my shields constantly during battle. You say you've done it, but you said it wasn't a toggle thingy. What gives?
A: I have bound the distribute shields command (/+power_exec Distribute_Shields) to my fire button. I use the space bar as my fire button; so everytime I press the space bar either I Fire Weapons or I activate a power. Distribute shields is one of those dozen powers.
space "GenSendMessage HUD_Root FirePhasers $$ +power_exec Distribute_Shields"
This will alternate firing all your energy weapons and distributing your shields each time you presst the space bar. Downside of this is it fires ALL energy weapons ... cannons & beam. If you want to only fire one type of weapon, you'll have to bring each weapon into the powers tray and use a series of +TrayExecByTray <row> <slot>.
Note: You really don't have to spam the fire button to fire your weapons unless you have each weapon individually represented in the bind. The next time you have the opportunity, find a buddy. Open a PvP challenge and test this. Press your fire buttion ONCE. Count how long it takes for all your weapons to cycle; I'll bet that for every energy weapon that is activated you'll have just as many seconds to wait. If you fire 4 weapons ... ~4 sec; 8 ... ~8s.
THAT is how often you MUST to press your fire button to maintain a constant rate of fire ... not every quarter second. Give your keyboard a break. (It also might last a little longer.)
Q: Can I make my torpedoes high yeild and fire them at the same time?
Q: I PvP alot and end up in PuGs where everyone is shooting at a different target. I want to be able to provide some leadership and get everyone focusing on the same target. Can you help?
A: Hehehe, oh can I. My teammates all get a giggle when I call out targets in team chat. Try this:
<key> Team Make your target: $target.
The $target string will capture your target's identity and insert it in the phrase.
I have rotating phrases (Set weapons to maximum and hit ...; I despise ...; Dispense with ...). Suffice it to say I have quite a few (and growing). My method is a little more complex, but anyone who wants additional assistance with jazzing <jazz fingers> things up, send me a PM and we'll get ya going.
Keybinding is simple and easy, once you know how. Using keybinds will up your game and make you more responsive to the demands of combat. They help you assist your teammates quickly in time of need. AND, when others use them, they help your teammates keep you alive.
Hopefully, I haven't completely confused everyone and now you have at least an insight as to how to bind commands to keys and how it all goes together. If you are confounded I will do my best to clear things up just keep the questions coming; I'm here to help.
7.1 test, Test, TEST
One last thing about multiple commands, timing is everything in this game. Be sure to test it first to see that everything is happening when you want it to happen. You don't want to use your beam overload before your target subsystems shields ... kind of a waste.
Finally, I'm not a Vulcan. This is not a perfect work; there may be (probably are) errors or omissions. This is also my first attempt at providing a guide for others to learn from. What may seem logical to me may not to you. If you find something wrong, please let me know and if you know the answer, definitely let me know. I know there is more I can learn. When something new is found or corrected, I will make the change and notate it for everyone to see.
Nice! A note on combining abilities in a single key: you cannot have linefeeds in the string, so be careful if you put these together in an editor. And there is some upper limit on characters - you can't really have one key activate an entire row of buttons.