find_free_input_key
List unbound input keys to avoid mapping collisions. Filter by keyboard, gamepad, mouse, or touch before binding new shortcuts.
Instructions
Which keys are still FREE: lists every input key not bound by any Enhanced Input mapping context or legacy mapping, filterable by category (keyboard / gamepad / mouse / touch) and substring. The complement of list_all_input_mappings and the tool to run before binding a new keyboard shortcut, since a collision compiles silently and only shows up in play. Trustworthy where the Python route is not: InputMappingContext.mappings is deprecated and returns empty, which makes every taken key look available.
Returns: { free_keys:[{key,display_name,is_gamepad,is_mouse,is_analog}], free_key_count, bound_key_count, bound_keys:[...] }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional case-insensitive substring matched against the key name or display name. | |
| category | No | Optional key category filter: one of 'keyboard', 'gamepad', 'mouse', 'touch'. Absent = all categories. | |
| bindable_only | No | When true (default), only keys where FKey::IsBindableInBlueprints() is true are considered (skips AnyKey/gestures/etc.). |