Every node and event the plugin adds, listed in the node menu under Input › Keyboard Layout. Use them for key prompts, binding screens, and a player option that chooses between keys by label and keys by position. The nodes have no Target pin and can be called from any Blueprint.
Callable nodes have execution pins. Pure nodes have none and run when a connected node reads their output. On platforms other than Windows, and on dedicated servers, the nodes still work and return the fallbacks described below.
Key names#
Get Key Display Name (Keyboard Layout)#
Pure · Menu: Input › Keyboard Layout
The label printed on the player's keyboard for the key your game receives, under the current layout and switches. With Physical on, a binding to Q shows as "A" on AZERTY. Typing keys return the character on the keycap, such as ";" rather than "Semicolon". Keys outside the typing area, keys no physical key produces, and every key where the plugin is inactive return the engine's usual display name.
| Input | Type | Details |
|---|---|---|
| Key | Key | The bound key, for example from your input mapping. |
| Long Display Name | Boolean | Default on. Only matters for keys that fall back to the engine's name, for example Space Bar instead of Space. |
| Output | Type | Details |
|---|---|---|
| Return Value | Text | The label to show. Your font must contain its characters. |
After a switch changes, the labels update when On Keyboard Layout Changed fires, on the next frame. A call in the same frame as a Set … Enabled node still returns the previous labels.
Get Keyboard Layout Name#
Pure · Menu: Input › Keyboard Layout
The active keyboard layout's name as Windows lists it, in English, for example "Czech". A layout Windows has no name for returns its identifier instead.
| Output | Type | Details |
|---|---|---|
| Return Value | String | Empty where the plugin is inactive: on Mac, Linux, other platforms, and dedicated servers. |
Switches#
The setters change a switch until the game or editor closes; nothing is saved. In the editor, a value set during Play In Editor also applies to later sessions until you restart the editor. Save the player's choice in your own settings and apply it again at startup. The project defaults are in Project Settings → Plugins → Any Keyboard Layout.
A value typed at the console for the same switch takes priority for the rest of the session. The setters are then ignored, and the engine logs a warning that the change was ignored because of a higher-priority value.
Set Digits Enabled#
Callable · Menu: Input › Keyboard Layout
Turns Digits on or off: the number row always reads as One to Zero. Turning it off also turns off the editor's number-row fix.
| Input | Type | Details |
|---|---|---|
| Enabled | Boolean | On to turn the switch on. |
Set Console Key Enabled#
Callable · Menu: Input › Keyboard Layout
Turns Console Key on or off: the key left of 1 opens a console bound to Tilde.
| Input | Type | Details |
|---|---|---|
| Enabled | Boolean | On to turn the switch on. |
Set Physical Enabled#
Callable · Menu: Input › Keyboard Layout
Turns Physical on or off: typing keys report their US-QWERTY position during gameplay. Letter and punctuation bindings mean different keys on each side of this switch, so reset or convert saved custom bindings when the player changes it. Digit bindings are unaffected.
| Input | Type | Details |
|---|---|---|
| Enabled | Boolean | On to turn the switch on. |
Is Digits Enabled#
Pure · Menu: Input › Keyboard Layout
Whether Digits is on right now. Is Console Key Enabled and Is Physical Enabled report the other switches.
| Output | Type | Details |
|---|---|---|
| Return Value | Boolean | The live state, including a value typed at the console. |
Layout change event#
On Keyboard Layout Changed#
Event dispatcher · Target: Keyboard Layout Subsystem
Fires on the frame after the player switches keyboard layout, or after any switch changes, including Fix Number Row In Editor. It never fires in the middle of input handling, so rebuilding widgets from it is safe. It has no pins.
To bind it:
- In the node menu, choose Engine Subsystems → Get KeyboardLayoutSubsystem. The placed node reads Keyboard Layout Subsystem.
- Drag from its output and choose Bind Event to On Keyboard Layout Changed.
- Refresh your key labels in the bound event.
The event does not fire at startup, so also build your labels when the widget is constructed. The subsystem does not exist on dedicated servers, which have no keyboard; check that it is valid in code that also runs on a server.