NarraLeaf

KeyMap

KeyMap methods for setting, reading, and matching keyboard bindings for game actions.

This page is under construction.

KeyMap is responsible for storing and manipulating keyboard bindings for different game actions.

Public Methods

setKeyBinding

Set (or overwrite) the key binding for a specific action.

game.keyMap.setKeyBinding(KeyBindingType.skipAction, " ");
// Or bind **multiple** keys at once
game.keyMap.setKeyBinding(KeyBindingType.skipAction, ["Control", "F3"]);
// Remove the binding
game.keyMap.setKeyBinding(KeyBindingType.skipAction, null);
  • type: KeyBindingType | string – The action type
  • value: KeyBindingValue – A key, list of keys, or null to remove the binding

getKeyBinding

Get the current binding of an action.

const current = game.keyMap.getKeyBinding(KeyBindingType.skipAction);

addKeyBinding

Append one or more keys to an existing binding.

game.keyMap.addKeyBinding(KeyBindingType.skipAction, "F3");
// Append a list of keys
game.keyMap.addKeyBinding(KeyBindingType.skipAction, ["Alt", "Shift"]);

getKeyBindings

Get all bindings.

onKeyBindingChange

Subscribe to binding changes.

const token = game.keyMap.onKeyBindingChange(KeyBindingType.skipAction, (value) => {
    console.log("Binding changed", value);
});

token.cancel(); // stop listening

match

Determine if a key matches the predefined binding (case-insensitive).

if (game.keyMap.match(KeyBindingType.skipAction, event.key)) {
    // do something
}

See useKeyBinding for a convenient React hook that automatically updates your UI when a binding changes.

On this page