Search public documentation:


Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 Home > Editor & Tools Programming > Adding Editor Hotkeys
UE3 Home > Input / Output > Adding Editor Hotkeys

Adding Editor hot keys


The bind hot keys dialog lets users remap default hot key bindings in the editor to key combinations of their choice.

For a summary of how to bind editor hot keys and create new editor hot key commands, see the Editor Hotkeys page._

Adding Hotkeys

The default keybindings are defined in the BaseEditorKeyBindings.INI configuration file. Engine-defined categories and commands are defined in BaseEditor.INI in the Engine\Config director. Game-specific categories and commands should be added to the DefaultEditor.INI file in the \Config directory.


Command Categories can be added by adding a new EditorCategories entry under the [UnrealEd.UnrealEdOptions] section of the BaseEditor.INI configuration file.

EditorCategories group together list of commands. Hotkeys are unique within a category. This means that you can bind the hotkey Spacebar in Matinee and Kismet separately; however you cannot bind Spacebar in Matinee to two different commands.




This is the name of the category to display the command in.


This is the optional parent of the category.

Note that Categories can also be nested by defining a Parent that points to another category. For example:

EditorCategories=(Parent=”Matinee”,Name="Matinee Nested")


Commands can be added by adding a new EditorCommands entry under the [UnrealEd.UnrealEdOptions] section of the BaseEditor.INI configuration file.

Here’s an example of a hotkey command:

;Matinee Commands
(Parent="Matinee", CommandName="Matinee_TogglePlayPause",
Description="Matinee_TogglePlayPause_Desc", ExecCommand="Matinee TogglePlayPause")


This is the category to display the command in.

CommandName and Description

These properties represent localizable strings. The CommandName should be unique.


This is the exec command to execute when the hotkey is pressed.

Default Keybindings

Hotkey default keybindings are stored in BaseEditorKeyBindings.INI in the Engine\Config directory and DefaultEditorKeyBindings.INI in the \Config directory. Default keybindings are automatically bound when the editor is started and then overridden by any custom keybindings the user has made.

A hot key default can be added by adding a new Keybindings entry under the [UnrealEd.UnrealEdKeyBindings] section of the configuration file.

Here’s an example of a default keybinding:



Whether or not the hotkey includes holding the CTRL key modifier.


Whether or not the hotkey includes holding the ALT key modifier.


Whether or not the hotkey includes holding the SHIFT key modifier.


The Unreal key name of hotkey that is being bound.


Name of the command to bind the hotkey to. Commands are defined in BaseEditor.INI and DefaultEditor.INI.


CategoryName, CommandName and Description map directly to strings that can be localized in UnrealEd.INT.

For example, for the above command and category would be as follows in UnrealEd.INT:


Matinee_TogglePlayPause=Toggle Play/Pause
Matinee_TogglePlayPause_Desc=Toggles between the playing and paused states in Matinee.

How it works

Hot key commands are actually exec commands with a unique name and some localized text. When a key combination is entered, the InputKey function for the current FEditorLevelViewportClient-derived Editor window is called. If there is support for handling hotkey bindings, and the key combination matches one of the default keybindings for the current editor, then the overridden Exec function is called for the command if one is available in the current UnrealEd options.