How to save and share editor key bindings?

I’m wondering how to save and share editor key bindings. That is, any changes made to the “Editor Preferences” → “Keyboard Shortcuts” page. I get the Export button, but it seems to require being “Imported” via the same page. What I want is to set the default config so I can share it in the repository, just like the settings in the other config files, so that the other members of my team don’t have to do the same bindings.
(Namely, it’s the classic unbinding of Esc for Stop since we, like everyone, is using Esc for pause.)

According to the Configuration Files doc key bindings should be placed in Config/DefaultEditorKeyBindings.ini, but I can’t get this to work. I’ve tried the following but without success, but I don’t know if it’s because I’m using the wrong binding names or if this just doesn’t work.

[/Script/UnrealEd.UnrealEdKeyBindings]
.KeyBindings=(bCtrlDown=False,bAltDown=True,bShiftDown=False,Key="Q",CommandName="PlayWorld_StopPlaySession")
.KeyBindings=(bCtrlDown=False,bAltDown=True,bShiftDown=False,Key="Q",CommandName="PlayWorld_Stop")

I’ve also tried with “+” instead of “.”

1 Like

I finally got this to work (using UE5, but I expect older versions will also work).

Here’s an example file that sets two keybindings for StopPlaySession and two for AddBlendListPin.
All entries after the first must start with a period as mentioned in the doc you read Configuration Files | Unreal Engine Documentation

The file is placed at: [ProjectDirectory]\Config\DefaultEditorKeyBindings.ini

[UserDefinedChords]
UserDefinedChords=~OpenBracket~~Quote~BindingContext~Quote~:~Quote~PlayWorld~Quote~,~Quote~CommandName~Quote~:~Quote~StopPlaySession~Quote~,~Quote~ChordIndex~Quote~:0,~Quote~Control~Quote~:false,~Quote~Alt~Quote~:false,~Quote~Shift~Quote~:true,~Quote~Command~Quote~:false,~Quote~Key~Quote~:~Quote~Q~Quote~~CloseBracket~
 
.UserDefinedChords=~OpenBracket~~Quote~BindingContext~Quote~:~Quote~PlayWorld~Quote~,~Quote~CommandName~Quote~:~Quote~StopPlaySession~Quote~,~Quote~ChordIndex~Quote~:1,~Quote~Control~Quote~:false,~Quote~Alt~Quote~:false,~Quote~Shift~Quote~:true,~Quote~Command~Quote~:false,~Quote~Key~Quote~:~Quote~W~Quote~~CloseBracket~
 
.UserDefinedChords=~OpenBracket~~Quote~BindingContext~Quote~:~Quote~AnimGraph~Quote~,~Quote~CommandName~Quote~:~Quote~AddBlendListPin~Quote~,~Quote~ChordIndex~Quote~:0,~Quote~Control~Quote~:false,~Quote~Alt~Quote~:false,~Quote~Shift~Quote~:true,~Quote~Command~Quote~:false,~Quote~Key~Quote~:~Quote~U~Quote~~CloseBracket~
 
.UserDefinedChords=~OpenBracket~~Quote~BindingContext~Quote~:~Quote~AnimGraph~Quote~,~Quote~CommandName~Quote~:~Quote~AddBlendListPin~Quote~,~Quote~ChordIndex~Quote~:1,~Quote~Control~Quote~:false,~Quote~Alt~Quote~:false,~Quote~Shift~Quote~:true,~Quote~Command~Quote~:false,~Quote~Key~Quote~:~Quote~I~Quote~~CloseBracket~

If you open the editor and modify keybindings, those values are saved at [ProjectDirectory]\Engine\Saved\Config\WindowsEditor\EditorKeyBindings.ini – This file takes precedence over DefaultEditorKeyBindings.ini, so if there are conflicts, the saved/config entries will be used.

You can look at that file to copy/paste the specific keybindings you need. Don’t forget the period at the beginning though.