Keyboard Layout-Independent Input (KiBLII for short) extends Unreal Engine 4 with effortless support for all keyboard layouts that are available on Windows 10 (and earlier versions). When you enable the KiBLII plugin, all the key bindings react to the same physical keys combination, regardless of the keyboard layout. This works for both the game and the editor and does not interfere with text input.
You can welcome players into your game with input bindings tailored for their keyboard with almost no additional work on your end. You can code your game with your fancy mechanical DVORAK keyboard while keeping standard WSAD bindings that your players will use.
- Compatible with the Enhanced Input.
- Automatic translation of all key events to standard US QWERTY keyboard layout.
- Text input using system keyboard layout, be it DVORAK, AZERTY or something entirely different.
- Blueprint functions to translate keys from QWERTY back to the system keyboard layout.
- Customized InputKeySelector widget, that displays bound keys using their true character.
- Font asset containing over 1600 characters needed to display keys from all standard Windows keyboard layouts.
- Works only on Windows platform. On Linux and MacOS the plugin provides InputKeySelector widget and Blueprint functions that work with the system keyboard layout. This way the project can easily be developed and deployed on those platforms.
- Will not work with PixelStreaming.
- Update for UE 5.0 EA and git branches: 5.0, UE5-main
- Fixed potential bug in ToUnicode function usage
- Fixed handling of gamepad
- Fixed 4.25 issue with switching keyboard layout during gameplay
- Fixed handling of dead-keys
To use KiBLII plugin, you have to enable it first:
- Open ‘Plugins’ window. You can do this through ‘Edit’ menu in the menu bar.
- In the navigation panel, on the right side of the window, select ‘Input’ group from ‘Installed’ section.
- In the list of plugins, on the left side of the window, find ‘Keyboard Layout-Independent Input’ plugin.
- Make sure that the plugin is marked as ‘Enabled’. You will have to restart the editor for this change to take effect.
You can now use a keyboard with any layout and all key bindings in the editor and in the game will see your keyboard as a standard US QWERTY keyboard. For example, the standard ‘WSAD’ movement bindings will be triggered by keys that are in the same physical positions on your keyboard as on QWERTY keyboard (e.g. ‘ZSQD’ on AZERTY and ‘,OAU’ on DVORAK).
This will not interfere with text input, only with key bindings.
When using KiBLII plugin, you should set input mappings as you would for standard US QWERTY keyboard. That is, for example, ‘WSAD’ keys for basic movement. The plugin will handle input translation under the hood.
You can learn more about input mappings in UE4 documentation about Input.
If you want to display your mappings, you can retrieve them from ‘Input Settings’ object. Before displaying them, you have to remap them from QWERTY to the system keyboard layout. You can do it using ‘Rempa Key Qwerty to System’ function from KiBLII Functions Library. Here are example blueprint scripts you can use to display your action and axis input mappings:
When displaying input mappings, you should remember that they can include many unicode characters that can be missing from regular fonts. The KiBLII plugin provides a font for this purpose: KiBLIINotoSansFont. This asset uses Noto Sans font and is configured to handle over 1600 unicode characters, which covers all characters used by standard Windows keyboard layouts.
If you want to allow your player to rebind input in-game, you can use KiBLIIInputKeySelector widget. It works exactly the same as UE4 InputKeySelector widget with the difference that it displays system layout instead of QWERTY layout key representation.
For information on this topic, you can check the example project in the downloads section.
The KiBLII plugin can be active in editor and/or in game builds of UE4 project. By default it’s enabled in both, but you can change it in the project settings.
- Open ‘Project Settings’ window. You can do this through the ‘Edit’ menu in the menu bar.
- In the navigation panel, on the right side of the window, scroll all the way down to the ‘Plugins’ category and click on the ‘KiBLII’ section.
‘Enable in Game’ enables the plugin in non-editor builds. This option has no effect on PIE.
‘Enable in Editor’ enables the plugin in editor builds. This means that the KiBLII plugin will be active in the entire UE4 editor, including in-editor key bindings and PIE.
Both options require the engine to be restarted.
Font Test Function
KiBLII Functions Library provides ‘Get Keyboard Layouts Chars’ function, which returns a string that contains all the characters that can appear in standard Windows keyboard layouts. You can use this string to test a font that you would like to use to display input mappings.