Keychain is a plugin for the Godot Engine that aims to give the player full control over the input actions of the game. Created by Orama Interactive.
This plugin works for Godot 4.0. For the 3.x version, see the 3.x branch.
Screenshot from Pixelorama.
- Easy to use shortcut re-mapping system, for all input types, keyboard, mouse, gamepad buttons and gamepad axes. Great for accessibility purposes.
- Add multiple input events (shortcuts) to each action, of multiple input types.
- Group your inputs together, and choose whether certain input actions are global or local. Global events cannot be re-assigned anywhere else, local events can, but not to other events in the same group.
- Choose between different shortcut profiles and create custom ones.
- Save shortcut modifications.
- Support for localization.
- Automatically deletes old input actions that have been deprecated during development of your project, so there is no need to worry over this.
If you wish to support the development of this plugin, consider supporting us on Patreon.
Copy the addons/keychain
directory into your Godot project files, and then enable Keychain
in Project Settings > Plugins.
Find the ShortcutEdit scene in res://addons/keychain/ShortcutEdit.tscn
and drag and drop it in the settings scene of your project. To put your input actions into groups, you can edit the actions
and groups
dictionaries found in the Keychain.gd
autoload script. Note that you cannot create new input actions this way, they must already exist in the Project Settings' Input Map.
You can also create your own shortcut profile by creating new ShortcutProfile
resources and preloading them in the profiles
array. Or you can create shortcut profiles using the addon itself while your project is running, and they will get saved as .tres
Godot resource files inside user://shortcut_profiles
.
In order to make certain actions not appear in the settings, you can add their names (as they're found in the Input Map) in the ignore_actions
array.
If you'd like to avoid editing the addon files themselves to ensure easy updating, you can access the Keychain
autoload and edit the variables from somewhere else in your project.