Star Trek Online Wiki

Look through the looking glass in the latest Star Trek Online release, Season Twenty-six: Stormfall.

Check out the new Star Trek: Lower Decks themed items, now available in the Lobi Store!
And as always, Spoiler warnings ahead!


Star Trek Online Wiki

Unusualy, if you are using the latest version of "Windows 10" Hold Windows+G For a game recorder!

Disambig icon.png For default key binds, see Key binds.
Disambig icon.png For full list of console commands, see List of console commands.


Simple Keybinding[]

Information on simple key binding and their functions can be found by following this link.


This article discusses both typing key binds into the local/chat window and editing the script in a bind file; however, its primary focus is to enable the player to create a permanent file by which through editing one can have a permanent way to edit, save and restore scripts to make them permanent.

Following these steps, manipulating a bind file to add/remove becomes easy and enjoyable. This guide provides easy-to-read instructions to customize the gaming experience, regardless of experience level in coding and computers.

Considerations: Writing your scripted keybind file[]

Although this is a safe and recommended way to bind key combinations, there are a few things to consider:

  1. The system always works. However, if the syntax is wrong, the commands may not work as expected or at all.
  2. If the first character is not followed by a space, that will be ignored Ex: |Slipstream
  3. Writing the incorrect syntax will not break the game; however, it may show in the local/chat window the error 'Command not recognized'.
  4. If the binds get disarranged, simply use the "Reset to Default" in your Options:Key Binds menu, delete the bind-file and reload the game.
  5. Black box theory; as long as the syntax is correct and the command is recognized by the game: input equals output.
  6. Key binds aren't a hack and isn't considered cheating. They are an integral, and after making one, an essential part of the game.
  7. To ensure the key binds work in the order intended, due to timing constraints; you must pause between each keystroke, or if you wish to execute several keystroke rapidly you must list them in forward and reverse order. Example: A, B, C - may execute A, C, B; however by binding them thus: A, B, C, B, A, you ensure they execute A, B, C.
  8. Always include closing quote when binding multiple powers to a single key.
  9. Always include the separator $$ between multiple commands when binding multiple powers to a single key.

First line in the script[]

I highly suggest if you're interested in scripting, that your first scrip include a key bind to load the script file being used. This way you don't have to type the lengthy directory prefix for the file's location every time you make a change in the script. See: [Script to reload Script file]

Rally Point Bug[]

BOFF abilities to Set Rally Points are compromised if your script contains a line or lines which contains a reference to "ContextAction 1" ex: Leftclick "ContextAction 1", This bug only affects RPG & Targeting keybinds as Rallypoint isn't used in SPACE. :-)

Bug workaround[]

To fix the rallypoint bug, follow these steps:

  1. remove "ContextAction 1" commands from your script.
  2. From the command line type "/unbind_All"
  3. Reload scripts (see

Note: To leave a keybind clear use: <key> ""

What is a key bind?[]

Like the Key bind ability found under Main Menu/Options/Key binds, Key binds are a shortcut for a predefined action assigned to a key on your keyboard; when pressed, it invokes an operation.

A keybind is also a scripted line in a text file which using STO's scripting language, proper format and syntax assigns a key to one or more than one predefined action. When loaded into the game from your computer, pressing a key on your keyboard invokes one or more than one operation to occur in a predefined order.

Both methods produce keybinds; the details and limitations on how to accomplish this will be given below.

Why use key binds?[]

The purpose of a key bind is to provide a quick and efficient set of commands without the need for multiple key-presses. One example can be during combat; using multiple key-presses can limit the amount of space for skills due to keyboard limitations, whereas a customized bind could assign the same skills to one key.

The game parses multiple skills bound to a key faster than activating them separately. More seasoned players can remove debuffing skills on teammates with just one bind. By adding at least three seconds, the alternative is selecting a teammate and then activating the debuffing skill.

Key binds permit a Captain the ability to maximize their potential. Multiple key binds can dramatically increase a Captain's capabilities.


This article contains lingo not familiar to all players. A legend has been provided:

  1. A "Key" is any button present on a keyboard that includes alphanumerical characters and function keys.
  2. A "Press" is the action of pushing and holding a key in the pressed position.
  3. A "Release" is the action of releasing a held key.
  4. A "Tap" is the action of pushing and releasing a key.
  5. A "Drag" is the action of holding down a mouse button and dragging the mouse.
  6. A "Click" is the action of holding down and releasing a mouse button.
  7. A "DoubleClick" is the action of Clicking twice.
  8. A "Press" is the action of holding down a mouse button.
  9. A "Left+Right" Click is the action of Clicking both the left and right mouse buttons at the same time.
  10. A "Mouse Scroll" is the action of rotating the wheel of the mouse either up or down, if present.

Loading & Saving Keybind file[]

Manipulating the bind file is quick, simple and only requires a basic text editor such as Notepad or Notepad++. Simply insert the desired binds with the proper syntax, and then save the file from your computer and then load the file from the game. STO keeps the last copy of the file you loaded from logon to logon so you only need to load the file if you modify the file. Remember to make a backup of your changes, for if you accidentally reset and save the file from the game, you will lose the file you are modifying.
Including the following commands will allow you to quick load, or quick save the current keybind file.

Comments and Keybind the Load and Save of a keybinding File
/ bind_load_file C:\Workstations\_Game Binds\STO_Bind_Space.txt Loads your existing file
/ bind_save_file C:\Workstations\_Game Binds\STO_Bind_SpaceTest.txt Saves current with new name.
Note: The actual file location should be used. This can be any location on your local machine that you remember. Plus you will be able to save and load a file for Space, RPG, and Shooter Mode.

STO Wiki Commands File[]

For a list of all console commands, see the List of console commands article. Note: this page is out of date and needs work.

There are three classifications of commands in this article:


These commands cause an action/power to be perform once each time the command is given, or in script, each time the key is pressed.

Distribute Shield Power
Local/Chat Scripted
  /+power_exec Distribute_Shields     p "+power_exec Distribute_Shields"
When scripting the bindfile.txt the first character is the letter (symbol or key on the keyboard) used to bind this action (here: the letter p is used) followed by a blank space, and then note the action is always enclosed in double quotes. This means, when the bind file is loading into the game, the 'p' key on the keyboard will perform this power or action.


These commands cause an action/power to be toggled on or off during a single key press.

Turn Left
Local/Chat Scripted
  /+turnleft     p "+turnleft"
When scripting the bindfile.txt the first character is the letter used to bind this action (here: the letter p is used) followed by a blank space, and then note the action is always enclosed in double quotes.


These commands cause an action/power to be toggled on or off until canceled by user input.

Strafe Left (Continuous- press key once to strafe left continuous, again to stop)
Local/Chat (do action) Scripted (bind to 'p' key)
  /++left     p "++left"

Using Commands[]

Commands can be used/manipulated in two ways:

Chat Window[]

Entering a command in the chat window requires that it be prefixed with '/' (forward slash). This method uses the syntax:

Chat Window Commands - single command key bind syntax
Syntax Example
 /bind <key> <toggle><command> <Param1> <Param2> ...    /bind p +STOTrayExecByTray 0 0
This command will bind to the p key the power stored in your personal tray Row 1, Column 1.

A list of commands recognized in-game is available by entering the following command in the chat window:


This command will generate a list of commands in the [system] chat channel which can usually be found under the NPC tab; it is yellow by default. Note: This list can be quite long.

Bind File[]

This method uses the syntax:

Bind file: scripting syntax for a single command key bind
Syntax Example
 <key> "<toggle><command> <Param1> <Param2> ..."    p "+STOTrayExecByTray 0 0"
Scripts the code to bind to the p key the power stored in your personal tray Row 1, Column 1.

Commands in the bind file must be loaded in-game before being usable. Either method will generate the same result. Using a bind file has the benefit recognizing other binds previously created.

Clearing Binds[]

This command will erase all customized key 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.

Command Variables[]

Many commands require parameters to function properly. These parameters will appear as text between <chevrons> and are required to assign a value to most commands; some commands require more than one input. These include:

Binaries <bin>[]

Binaries are either 1/+ (on) or 0/- (off). Binary inputs are denoted as <bin>; Typing /combatlog 1 will toggle the combatlog on, while /combatlog 0 will toggle it off. To verify the value of activation in a binary command, simply enter /combatlog.

Integers: <int>[]

Integers are whole numbers: 0, 1, 2, 3 and so on. The input requirement is denoted by <int> or <value>.

Strings: <string>[]

A string is a sequence of characters required to properly execute. Examples include, but are not limited to: player names, power names and chat channels. When scripting key bind commands, all commands are considered strings and inserted in the script between two quotes.

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.

Basics of the Bind[]

Some things to note:

  1. The player must be in space to manage space key binds.
  2. The player must be on the ground to manage ground key binds.
  3. The player must be in shooter mode to manage shooter mode key binds.


To create a bind that works, there must be proper syntax or it will not function.

Single Command Syntax[]

To summarze:

Single Command Key Binding Syntax
Chat Script
 /bind <key> <toggle><command> <Param1> <Param2> ...    <key> "<toggle><command> <Param1><Param2> ..."
Note the absence of the '/bind' and the presence of " (quotation) for the bind file.
The quotation marks are required in the bind file.

<key> is the keyboard shortcut to execute the command.
<toggle> is an optional parameter to indicate '+' (single action) and '++' (continuous action).
<command> is the game command that is desired.
<Param#> is any parameter(s) the command may require.

Multiple Commands Syntax - $$[]

The key to using multiple commands is putting multiple commands in succession. This is accomplished by $$ (double dollar signs).

Bind file: Multiple Commands Syntax - $$

Chat    /bind <key> <toggle><command> <param1> $$ <toggle><command2> <param2> $$ ...
Script    <key> "<toggle><command> <param1> $$ <toggle><command2> <param2> $$ ..."

Special Keys & Names[]

Most keys the syntax for <key> is just the character itself. Special keys use custom syntax, examples include:

Special Keys*

Script Name    Description of Key
Alt+Tab    ***CAUTION*** DON'T USE*
Lbutton or Rbutton    Left Mouse Button
Shift    Shift Key*
LShift or Rshift    Left or Right Shift Key*
Leftdrag or Rightdrag    Press Left or Right Mouse Button while dragging mouse
Rightdoubleclick or Leftdoubleclick Click Left or Right Mouse Button Twice
Middleclick    Click Mouse Wheel, if available
MButton    Middle Mouse Button
Mousechord    Press both Left and Right mouse buttons simultaneously
Wheelplus or Wheelminus    Scroll Mouse Wheel UP or DOWN
Numpad1    The number "1" key on the number pad† 
Button4 through Button8    Mouse Button 4 through Button 8$dagger
F5    F5 key† 
Scroll   Scroll, Pause, Break Key* 
NumLock    Numlock Key* 
Control    Control, PrtScn, SysRq Key* 
`  Accent key (`); commonly known as the Tilde (~) key‡  
Alt    Alt key* 
Script Name of Named Keys
Pageup or Pagedown
Up Up Arrow
Down Down Arrow
Left Left Arrow
Right Right Arrow

Most keys and key combinations are problem free; but listed below are some examples that should be taken into consideration: One possible key combination that may cause game instability or crashes is the Alt+Tab combination: This key combo can be assigned in the game but may conflict with Windows Alt-Tab command which allows the user to select another window causing an Operating System/Game failure. By not assigning Alt-Tab, this problem can be avoided.

*Take care when using these keys as they can cause conflict between the game console and operating system when used with other keys (Note: not all keys have this problem, an example would be "LShift" or "RShift" vs "Shift"

The other keys of this type are named similarly by changing the parameter. Ex: Numpad0...9, F1...5, and Shifta...z, etc.

Many other of the symbol keys can be used similarly, to discover their names, either look them up in a table, or one could bind the key through the Options/KeyBind, then /bind_save_file <path>temp.txt and look at the file in question for the key bind and discover its name.

Note: Similarly, many actions in the Main Menu/Options/KeyBind window can be assigned keys, then saving the /bind_save_file <path>temp.txt file and looking up the key bind simply for the purpose of identifying their script name.


Generating a Bind file[]

The player's basic key binds for a character can be found in the Options:Key Binds menu. To generate a character's bind file, write the following in the chat window:

/bind_save_file <filename>.txt

Locating a Bind File[]

For those using Windows 7 & Vista it is located:

C:\Users\Public\Games\Cryptic Studios\Star Trek Online\Live


C:\Users\<user>\Games\Cryptic Studios\Star Trek Online\Live

For the Steam users, it will be located:

C:\Program Files (x86)\Steam\steamapps\common\star trek online\Star Trek Online\Live

For XP it will be located:

C:\Program Files\Cryptic Studios\Star Trek Online\Live

Loading/Saving a Bind File[]

To load a bind file from the root STO directory, simply type the following command:

/bind_load_file <filename>.txt

To save:

/bind_save_file <filename>.txt

A bind file isn't limited to the root directory and can be placed anywhere on the computer. In order to load it, it must be specified entirely as:

/bind_load_file C:\<path to file>\<filename>.txt

To save the file:

/bind_save_file C:\<path to file>\<filename>.txt

Working with Binds[]

Single Commands[]

In the Options:Key Binds menu, the default binds are as follows:

i = Inventory
k = Skills
u = Status
o = People
j = Missions
l = Log
m = Map

There are very specific commands associated with these functions. When the mouse is placed over "Inventory" or similar, the following pop-up appears: Use manually with /GenSendMessage Root ShowInventory. The command /GenSendMessage Root ShowInventory is what's toggled on/off when the key "i" is pressed. A couple examples of this are as follows:

Skills = /GenSendMessage Root ShowPowers
Map = /GenSendMessage Root ShowMap

The following is a list of commands that will bring up the respective windows:

Skills GenSendMessage Root ShowPowers
People GenSendMessage Root ShowPeople
Missions GenSendMessage Root ShowMissions
Captain's Log GenSendMessage Root ShowCaptainLog
Map GenSendMessage Root ShowMap
Fleet GenSendMessage Root ShowFleet
Hail Starfleet GenSendMessage Root ShowRemoteContacts
Review Tickets GenSendMessage TicketWindow_Root ShowWithoutScreenshot
Assignments GenSendMessage Root ShowShipCrewAssignments
Status GenSendMessage Root ShowStatus
Tray Powers GenSendMessage Root ShowTrayPowers
Inventory GenSendMessage Root ShowInventory

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:

i ""
k ""
u ""
O ""
j ""
l ""
m ""

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).

Keybinding Chat & Emote[]

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.

Emote Script Sample (cut and paste)[]

So, you're going to Risa for the Big Summer Event and you want to enter the dance contest; but, you don't want to type all the emotes for dancing. The following, my own personal dance emotes script, is an example of an emote script. Feel free to modify it in anyway you like.

Copy and Paste this into a textfile, then save as your first script file. Filename: STO_Bind_Dance.txt Author: --Cyberchip (talk) 04:03, 20 January 2016 (UTC)

NOTE: This script should contain no extra <CR>s. (Each line should start with a | comment, <key>bind code, or be a blank line. Some lines may appear split (but are not) depending upon your screen size and format.
|the first letter is the <key> to press (keybind) for each of the following dances, this is how I remember them:
|(d)ance, (c)lub, (l)egkick, (r)aise the roof, r(o)bot, (s)idestep, s(n)ake, (T)herunningman, (w)avehands
|(R)aisetheroof or (r)aisetheroof, (S)amba, Samba_(A)dvanced
|and a few other emotes
|(b)low kiss, (B)ye  
|(t)ake drop or interact 

Shift+D e Dance_Basic
d e Dance
c e Dance_Club
l e Dance_Legkick
r e Dance_Raisetheroof
o e Dance_Robot
s e Dance_Sidestep
n e Dance_Snake
Shift+t e Dance_Therunningman
w e Dance_Wavehands
Shift+r e Dance_Raisetheroof
Shift+s e Dance_Samba
Shift+a e Dance_Samba_Advanced
b e Blow Kiss
B e Bye

t "+InteractWindow"

|This is the default for loading the basic RPG file I use.
|Note: CHANGE this next line for your own Drive:\directory_location\filename.txt of your basic RPG file to use <key> '/' to reload your RPG script file after dancing.

/ bind_load_file Q:\Workstations\_Game Binds\STO_Bind_RPG_LIST.txt

|Add the following line to your regular RPG script file to access this dance file, be sure to replace the Drive:\directory_location\STO_Bind_Dance.txt with where you place this file.
|NOTE: After adding this next load file script command to your RPG.txt file, you will be able to access the dance script from your RPG key bind file with the '.' (period) key; then when done dancing, you can use the <key> '/' to return to your RPG script from this script file.

. bind_load_file Q:\Workstations\_Game Binds\STO_Bind_Dance.txt

|The following examples could be replaced with the location of your key binding script file and location
|each one could load the specific RPG file for a specific character faction or testing file and basic RPG script file, change them to conform to your files and locations, or delete them if unneeded.

7 bind_load_file Q:\Workstations\_Game Binds\STO_Bind_RPG_FED.txt
8 bind_load_file Q:\Workstations\_Game Binds\STO_Bind_RPG_KDF.txt
9 bind_load_file Q:\Workstations\_Game Binds\STO_Bind_RPG_ROM.txt
0 bind_load_file Q:\Workstations\_Game Binds\STO_Bind_RPG_Test.txt
- bind_load_file Q:\Workstations\_Game Binds\STO_Bind_RPG.txt

Multiple Commands (with Examples)[]

You are well on your way to key bind scripting. But, what about targeting or healing with one key? Well, that's more than one command. How do I do make that magic happen?

The key to using multiple commands is to concatenate. That's a programming word for putting multiple commands one after the other. To do this in STO you use $$ (double dollar signs). So the new bind command looks something like:

/bind <key> <toggle><command> <param1> $$ <toggle><command2> <param2> $$ ... 

(to add bind typed through command line [chat])
- or -

<key> "<toggle><command> <param1> $$ <toggle><command2> <param2> $$ ..." 

(to add bind through a texted script)

Example: Let's say you use the three tray display which causes you to lose 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:

/bind F5 GenJailAdd Hud_Weapons_Root $$ GenJailAdd Hud_Bridgecrew_Trays_Root

(to add bind typed through command line [chat])
- or -

F5 "GenJailAdd Hud_Weapons_Root $$ GenJailAdd Hud_Bridgecrew_Trays_Root"

(to add bind through a texted script)
Effect: Pressing <key> F5 once, opens the weapons HUD display and opens the Bridge Crew Tray.

Toggle Commands[]

Several commands use toggles, either plus (+) or PlusPlus (+++), to turn them on or toggle. These operators I have classified as Non-continuous and Continuous.

Using + (plus) in front of a command, turns the command is ON while the key is pressed, and off when released. Using ++ (double-plus) causes the action to continue even after the key is released. (continuous)

The syntax for a non-continuous commands is:

/bind <key> <bin><command><param1><...>

(to add bind typed through command line [chat])
- or -

<key> “<bin><command>"

(to add bind through a texted script)


/bind numpad4 +left

(to add bind typed through command line [chat])
- or -

numpad4 “+left”

(to add bind through a texted script)
Effect: Pressing <key> Number Pad 4 and holding, causes you to turn left while 4 is pressed. The turn stops when the key is released.

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

(to add bind typed through command line [chat])
- or -

numpad4 “++left”

(to add bind through a texted script)
Effect: Pressing <key> Number Pad 4 once results in a continuous left-hand turn. Tap again to cancel the turn.

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 divided into ten (10) trays by ten (10) slots. If you use the three-tray display you see:

1st Tray =  1  2  3  4  5  6  7  8  9  0  (number row)
2nd Tray = C1 C2 C3 C4 C5 C6 C7 C8 C9 C0  (CTRL+number row)
3rd Tray = A1 A2 A3 A4 A5 A6 A7 A8 A9 A0  (Alt+number row)

For the purposes of scripting, the trays are numbered 0 thru 9; with the first (1st) tray being 0 and the last tray (10th) being 9. Your slots are similarly numbered starting at 1st through 9th, and scripted going to 0 through 9. This convention stems from the fact that computers use Base 2, and counting actually starts at zero (0) not one (1); hence 0, 1, 2, 3 … 9 and not … 1, 2, 3 .. 10.

To use the Second Tray (2), fourth (4th) power tray designated by C4, you can use Control+4 to execute the associated power; however, in keybind scripting language this would be +STOTrayExecByTray 1 3.

Alt-8 gets the third (3rd) tray eighth (8th) power; and in keybind scripting language, this would be +STOTrayExecByTray 2 7 , and so on through +STOTrayExecByTray 9 9 as seen below

1st Tray = 0 0, 0 1, 0 2, 0 3, 0 4, 0 5, 0 6, 0 7, 0 8, 0 9
2nd Tray = 1 0, 1 1, 1 2, 1 3, 1 4, 1 5, 1 6, 1 7, 1 8, 1 9
10th Tray = 9 0, 9 1, 9 2, 9 3, 9 4, 9 5, 9 6, 9 7, 9 8, 9 9

Using Multiple Powers[]

Those are the default binds Cryptic provides. However any key can be bound to any Tray, and scripted

/bind <key> +STOTrayExecByTray <tray> <slot> $$ +STOTrayExecByTray <tray> <slot> $$ ...

(to add bind typed through command line [chat])
- or -

<key> “+STOTrayExecByTray <tray> <slot> $$ +STOTrayExecByTray <tray> <slot> $$ ...”

(to add bind through a texted script)

With Beam overload in Tray 3 8, and Target Subsystem Shields in Tray 2 4, the bind looks something like this:

/bind 4 +STOTrayExecByTray 2 7 $$ +STOTrayExecByTray 1 3

(to add bind typed through command line [chat])
- or -

4 “+STOTrayExecByTray 2 7 $$ +STOTrayExecByTray 1 3”

(to add bind through a texted script)

Effect: Tapping the 4 key activates Target Subsystems Shields. Tapping it again activates Beam Overload.

Examples of Multiple Commands and Multiple Powers (Cut and Paste)[]

The following scripts can be cut and paste to engage an effective Evasive Maneuvers Command with Disable Tractor Beam and can be added to your Space script or modified any way you choose.

This script sets tray locations as follows: Tray 1 8 (0 7): any debuff power that disables tractor beams Tray 1 9 (0 8): Evasive Maneuvers Tray 8 1 (7 0): Weapons Battery it also uses command powers Throttle Adjust, and Loads Presets.

Evasive Maneuver[]

(E)vasive Maneuvers activates by pressing and holding shift key then <key> 'e' three or (optionally) four times. [To include the option: remove braces ( and )) from the command], to remove the option: Remove braces () and command between braces. Ex: ( $$ StatsPreset_Load Preset_2)

|Shift+e Diable Tractor Beams    Set impulse to maximum  Evasive Maneuvers and (optionally set power preset to Defense) [set to 3 for Speed]
Shift+e "+STOTrayExecByTray 0 7 $$ throttleadjust .99 $$ +STOTrayExecByTray 0 8( $$ StatsPreset_Load Preset_2)"

Attack Maneuver[]

After Evasive Maneuvers and turning to attack, the next series which can be cut and paste into your script, does this by Cutting the throttle to 10%, Setting power preset to 'Attack', then (optionally selecting Weapons Battery in Tray 8 1 (7 0)).

(A)ttack by Pressing <key> A two or (optionally) three times.

| Set throttle to 10%, Preset power to Attack, (optional: Activate Weapons Battery)
a "throttleadjust .10 $$ StatsPreset_Load Preset_1( $$ +STOTrayExecByTray 7 0)"

If desired, both Evasive maneuvers, and the attack sequences can be modified as desired; for example, the Evasive Maneuvers sequence could also Eject Warp Plasma, or the Attack sequence could also be set to apply Tractor Beam, then setting off a "Gravity Well"

First-person POV[]

You can add the ability to switch between third-person and first-person point of view either by using L and the Home key or using L as a toggle. In the first method, save to l.txt the content

|Enter first-person FOV. Back up to a wall first. Press Home to reset.
l "cam_distance_interp_speed 0 $$ CamMouseLook 0 $$"

These instructions are adapted from a Steam post with the text

1. Do these commands in game:

/bind L "cam_distance_interp_speed 0"
/bind Lbutton "CamMouseLook 0"

2. Press 'B' for overshoulder mode

3. Back up into a wall so you can not see yourself.

4. Press L


To get out of first person change maps or press Home.
Same can be done in a ship, though it's weird.

In the second method, create the keybind files l_fppov_on.txt and l_fppov_off.txt. In l_fppov_on.txt, save

|Enter first-person FOV.
l "cam_distance_interp_speed 0 $$ CamMouseLook 0 $$ bind_load_file l_fppov_off.txt $$"

In l_fppov_off.txt, save

|Exit first-person FOV.
l "CamReset $$ bind_load_file l_fppov_on.txt $$"

then load the first keybind via the command

/bind_load_file l_fppov_on.txt

Back up to a nearby wall, so that your view looks first-person only because there is nothing behind you, then press L. Press it again to reset. First-person POV doesn't work well for combat because over-the-shoulder is closer to what your character actually sees. However, first-person POV is useful for getting a closer look at high-detail areas. A good place to use first-person POV is on Deep Space 9.

Activation Limitations[]

Keybinds aren't the be all end all of Star Trek Online; there are some limitations to using them:

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).

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.

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.


There are two phases to using a compound keybind. Phase 1 occurs when you press the keybind button the first time. Phase 2 occurs when you press the button a second time within a short duration. Any repeated button pressing without a pause longer than 0.5 seconds will maintain Phase 2.

In Phase one the order is from left to right. In Phase 2 the order is from right to left. If you have a keybind that activates all the slots in tray 10, then pressing the button once will run ability in slot 1 and queue the ability in slot 2. If we press the button a second time with out a long pause between the first press, we will enter phase 2. If Slot 2 has not yet activated we will replace it in the queue with the ability in slot 10, and it will be next. Any repeated key presses of the same keybind with in a short duration will maintain phase 2 and queue items.

This feature can be used to create a fail safe queue order. Creating a mirror of a command will allow the priority to be fixed.

A standard command activating the full tray 10 using the keybind import file method would appear as follows:

numpad0 "+STOTrayExecByTray 9 0 $$ +STOTrayExecByTray 9 1 $$ +STOTrayExecByTray 9 2 $$ +STOTrayExecByTray 9 3 $$+STOTrayExecByTray 9 4 $$ +STOTrayExecByTray 9 5 $$ +STOTrayExecByTray 9 6 $$ +STOTrayExecByTray 9 7 $$+STOTrayExecByTray 9 8 $$ +STOTrayExecByTray 9 9"

The keyset is assigned to the numerical keypad's 0 key. If we create a mirror set of this key we can ensure that the priority will always be given to the abilities in the lower slots.

numpad0 "+STOTrayExecByTray 9 0$$+STOTrayExecByTray 9 1$$+STOTrayExecByTray 9 2$$+STOTrayExecByTray 9 3$$+STOTrayExecByTray 9 4$$+STOTrayExecByTray 9 5$$+STOTrayExecByTray 9 6$$+STOTrayExecByTray 9 7$$+STOTrayExecByTray 9 8$$+STOTrayExecByTray 9 9$$+STOTrayExecByTray 9 8$$+STOTrayExecByTray 9 7$$+STOTrayExecByTray 9 6$$+STOTrayExecByTray 9 5$$+STOTrayExecByTray 9 4$$+STOTrayExecByTray 9 3$$+STOTrayExecByTray 9 2$$+STOTrayExecByTray 9 1$$+STOTrayExecByTray 9 0"

In this set we are listing all the slots from slot 1 through slot 10 and then back to slot 1 again. If we do this then in Phase 1 Slot 1 will get first priority since it is listed first. In Phase 2 Slot 1 will get first priority again since it is listed last.

This is an important feature since it allows you to prioritize your abilities. Those in lower slots receive priority. Using this method will allow you to setup a complex chain of buffs, debuffs, and attacks that might require a specific order. Or it may allow you to maintain abilities that you would like to keep up at all times.


Q: My code isn't working, how can I find out what's going wrong?[]

As you've noticed, this is not a friendly coding system, there are literally, no errors generated. (This is also a saving grace, as errors are also ignored, except where the error messes up your scripting intentions.) Note: The one exception I've found is the Rally Point bug: What this means is that when the system finds an error, it skips over what it doesn't understand. So, if you were to put in an opening quote " without an ending quote. Example:

E "+power_exec Distribute_Shields
t "interactwindow"

The interpreter, or parser would include one or more lines that follow as part of the first line, and so this and one or more following commands would not work. So, you would press 'e' and it would not distribute shields, or you would press 't' and it would not take the drop, nor would it activate the action. What the game parser saw is this:

E "+power_exec Distribute_Shields t "interactwindow" as a single command, which to the parser is nonsense.

But, sometimes problems are not that easy to solve. The best way I've found to troubleshoot a huge file is to do the following steps: 1st: Recognize that if you have one particular key that is not working, the problem can be:

(a) before that line of code if you left out a closing quote, or some such thing.
(b) after the code, if you've defined the key bind twice, to something else, and forgot you put it there.
Note: if you place two commands, say one at the beginning, and one near the end, the last one will be the one that gets assigned to that key bind. Example:
t "+power_exec Distribute_Shields
t "interactwindow"
In this case, "interactwindow" will be the bind that sticks, as it replaced the first Distribute Shields.
(c) So, you will have to troubleshoot in the following way:
  1. Make a backup of your Bind file.
  2. Scrutinize the entire file looking for typos(misspellings), missing quotes, $$, and spaces, then try again if found.
  3. Take out most of the commands leaving in the first 10, 20, or half the commands. (Troubleshooting by halves), use some judgement as the problem will exist somewhere around the key bind that failed, so be sure to test the key binds before and after the failing key bind, including the one that failed.
Note: If testing a key bound to a tray location, place something that will fire when activated in that tray slot. For example: Place a tribble in the tray for testing RPG or Shooter binds, Fireworks in the tray for Space or other similar ability.
  1. Go into the key commands, and Reset To Defaults or use /unbind_All in the command line.
  2. load the bind file manually which now has fewer commands.
  3. test the bind file to see if the commands included in the file, especially the one that failed.
  4. if the key bind previously failing now works (which is unlikely), the error is located in the missing code(2). Add more lines, test again.
  5. if the key bind previously failing still fails or fails again, the error is located in the code now loaded, the upper half if it's the first time, the part just added, or yet to be removed. Remove lines, test again.
  6. After you do steps 4-8 as many times as needed, till you find the line or lines causing the problem.
  7. This will not tell you 'what' is wrong with the code, that you will have to learn on your own. But, it will almost always be spelling or syntax.
  8. If you have more than one error, when you add back the rest of the lines after fixing the code, you may have to do this process all over again with the lines added after finding the error until all the bugs are removed from your code.

Q: Is there a way to make a bind code so I can reload the file quickly once I have made changes to the code.[]

Yes!! Use this example to add a line of code to your file, I put mine at the top fo the file for easy editing. Of course, the directory, path or name of the file will have to be changed to the ones you're using. After you load the file again manually, you'll be able to press the key you've assigned, to automatically load the updated file.

/ bind_load_file C:\Workstations\_Game Binds\STO_Bind_VestaI.txt
Note: I also create a file with a list of my bind files in command format to manually load a file for the first time. For example, you could create a bind file, that lets you load the bindings for each ship in your fleet.
/ bind_load_file C:\Workstations\_Game Binds\STO_Bind_FleetList.txt

and the contents of that file could look like this.

v bind_load_file C:\Workstations\_Game Binds\STO_Bind_VestaI.txt
d bind_load_file C:\Workstations\_Game Binds\STO_Bind_D_deridex.txt
s bind_load_file C:\Workstations\_Game Binds\STO_Bind_Space.txt
r bind_load_file C:\Workstations\_Game Binds\STO_Bind_RPG.txt
k bind_load_file C:\Workstations\_Game Binds\STO_Bind_RPG_KDF.txt
f bind_load_file C:\Workstations\_Game Binds\STO_Bind_RPG_FED.txt
t bind_load_file C:\Workstations\_Game Binds\STO_Bind_RPG_Test.txt

And, let's not forget the needful Dance moves, for those Summer Getaways on Risa!

. bind_load_file C:\Workstations\_Game Binds\STO_Bind_RPG_DanceMoves.txt

In fact, you could go wild and create a script that loads scripts. This can come in handy with ships that have multiple layouts like Dyson Science Destroyers. Note that swapping scripts in and out can take time, how much time I have yet to test... noticeable. Plus without clearing all the keybinds first, you may get unwanted results from mixing binds.

Q: Why does my character jump before moving forward? or Why do I have to press the left mouse or right mouse again to look around?[]

A: Star Trek has modified the mouse key movements so that mouse assignments for movement in RPG mode are no longer needed and included as a default action. If you have commands like:

Mousechord "+Forward"
Rightdrag "+CamRotate"
Leftdrag "+CamMouseLook"

Remove them, and you mouse will move and look around just the way you want. Holding down the right mouse button both looks, and turns your character to face that direction, while Holding down the left mouse button just Mouselooks. The Mousechord (holding down both the left and right mouse buttons now act to add another forward into the command string and so it is like jumping (some may think this is desirable, in which case keep the command)

Q: Is there a way to add comments into my code?[]

Yes! Simply include a character, such as a vertical bar, '|' which you will not be using for keybinds at the beginning of the line. Example:

|This would be a comment

You cannot put this anywhere except at the start of the line, so no adding comments to the end or in the middle of commands. Example:

|Bind 'e' key to forward movement (Acceptable)
E "+Forward" (Acceptable)
E "+Forward" |This is a comment (Unacceptable)

Q: I don't like having to select my power setting with my mouse every time I need to change settings. How can I bind the in-game presets to keys.[]

A: I have all my presets for Weapons, Shields, Engines and Balanced bound to my F9, F10, F11 and F12 keys, respectively. The my bindfile I have:

Power Presets
F9 "StatsPreset_Load Preset_1"
F10 "StatsPreset_Load Preset_2"
F11 "StatsPreset_Load Preset_3"
F12 "StatsPreset_Load Preset_4"

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.[]

Note: This script is subject to ordering requirements, should you find that the game is not targeting the proper teammate before applying Science Team, see: [Ordering] to ensure the teammate is selected first, before the action, which in this example is the Science Team in Tray 7,9 (6,0).

A: There are two methods to accomplish this: #1 uses two keys, 1st key for team, then 2nd key for command; or #2 uses one key per command, 1st press for teammate, 2nd press for action.

Method #1: The F1 - F5 keys are designated Self (F1), Teammate 1 (F2), Teammate 2 (F3)... and so on. You could bind the desired command to a single button and use the F-key to target your teammate and a single bound key to apply the power. So you'd do this:

<key> "+STOTrayExecByTray <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:

Science Team
i "Target_self $$ +STOTrayExecByTray 6 8"
o "TargetTeammate 1 $$ +STOTrayExecByTray 6 8"
p "TargetTeammate 2 $$ +STOTrayExecByTray 6 8"
[ "TargetTeammate 3 $$ +STOTrayExecByTray 6 8"
] "TargetTeammate 4 $$ +STOTrayExecByTray 6 8"
Proper ordering examples (Teammate 1):
Proper ordering example, Single teammate, single power:
o "TargetTeammate 1 $$ +STOTrayExecByTray 6 8 $$ +Target Teamate 1" - targets teammate #1 with power in tray 7 9.
Proper ordering pattern for Single teammate, multiple powers (2 or more):
o "TargetTeammate 1 $$ +STOTrayExecByTray 6 8 $$ TargetTeammate 1 $$ +STOTrayExecByTray 6 9 $$ TargetTeammate 1 $$ +STOTrayExecByTray 6 9 $$ TargetTeammate 1 $$ +STOTrayExecByTray 6 8 $$ TargetTeammate 1" for powers in trays 7 9, and 7 10!
Note, be sure to place TargetTeammate before *and* after each +STOTrayExecByTray command as above.

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 a quick double key press shall deliver it 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:

<key> "keybinds"

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?[]

Update: This is no longer considered a best practice. Distributing your shields interrupts your weapon firing cycle causing some of your weapons to fire/come off cool down later than others. This discord becomes worse the more the shields are distributed and is especially troublesome for ships that rely on cannons. It is better to use Tactical Team to automatically distribute your shields instead. Bind Distribute_Shields to a separate key and try to activate it between your firing cycles (when your weapons show the count down animation) if you still want to use it.

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.

Try this

space "FireAll $$ +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 +STOTrayExecByTray <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 yield and fire them at the same time?[]

A: You sure can. Try this:

<key> "+STOTrayExecByTray <row> <slot> $$ GenSendMessage HUD_Root FireTorps"

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.

Q: I have to do soo much in a space mission I forget to run my maintenance skills. What can I do?[]

You can setup a keybind on your spacebar that fires your weapons, executes abilities on a tray, and distributes your shields. You will be required to press the spacebar repeatedly.

In this situation we will use Tray 3. We will place all our important tray abilities from left to right. Left having the highest priority. If we use this with the Ordering method listed above we can use the following keybind:

Space "+STOTrayExecByTray 2 0$$+STOTrayExecByTray 2 1$$+STOTrayExecByTray 2 2$$+STOTrayExecByTray 2 3$$+STOTrayExecByTray 2 4$$+STOTrayExecByTray 2 5$$+STOTrayExecByTray 2 6$$+STOTrayExecByTray 2 7$$+STOTrayExecByTray 2 8$$+STOTrayExecByTray 2 9$$+Power_Exec Distribute_Shields$$GenSendMessage HUD_Root FireAll$$+Power_Exec Distribute_Shields$$+STOTrayExecByTray 2 9$$+STOTrayExecByTray 2 8$$+STOTrayExecByTray 2 7$$+STOTrayExecByTray 2 6$$+STOTrayExecByTray 2 5$$+STOTrayExecByTray 2 4$$+STOTrayExecByTray 2 3$$+STOTrayExecByTray 2 2$$+STOTrayExecByTray 2 1$$+STOTrayExecByTray 2 0"

Now in tray 3 we can place our Emergency Power to Shields (both copies) and our Tactical Team (both copies) and while hitting space bar once a second our abilities on tray 3 will run as they become available.

Q: Is there a command I can add to my keybinds file to control Carrier Pets?[]

Yes, You can add key binds for the 4 different modes (Attack, Escort, Intercept, and Recall). Here is the keybind:

[ "Setallcarrierpetmode attack"
] "Setallcarrierpetmode escort"
; "Setallcarrierpetmode intercept"
' "Setallcarrierpetmode recall"


[ "Setallcarrierpetmode attack $$ Setallcarrierpetmode escort $$ Setallcarrierpetmode intercept $$ Setallcarrierpetmode recall"

This will allow you to cycle through the 4 modes with one key.


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.

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.

Oh, one last tidbit ...


Happy Hunting ... (klinks)


External links[]