> For the complete documentation index, see [llms.txt](https://fast-studios.gitbook.io/input-hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fast-studios.gitbook.io/input-hub/manual/rebinding.md).

# Rebinding Menu

Let the player change the keys, the sensitivity and more, with everything saved for you.

Players expect to change the controls: move Jump to another key, turn down the mouse sensitivity, invert the camera. Input Hub gives you the pieces of a full controls screen, ready to use and fully restylable, and it saves what the player picks without any code.

## A Controls Screen in One Click

Select a Canvas and go to **`GameObject > Fast Studios > Input Hub > Binding Menu`**, then **Legacy** for Unity Text or **TMP** for TextMesh Pro. You get a complete controls screen:

* A **list** with one row per action, each with a **Primary** and a **Secondary** column and a **Reset** button. It scrolls when there are more actions than fit.
* **Keyboard**, **Gamepad** and **Current device** buttons to pick which device the list edits.
* A **search** field.
* **Reset all**, with a question before it does anything.
* A question before a key is taken from another action: "Space is already used by Jump".
* A **profiles** bar to keep several sets of keys and share them as a code.
* A dark **overlay** that says "Press a key" while a row waits for the new key.
* A **tab** and a **title**, ready for when you group the list by map or by section.

The whole list shows in the Game view without pressing Play, so you see every change as you make it.

{% hint style="success" %}
Every part of it is a plain Unity UI object, with no style of its own: change the sprites, the fonts, the colors and the layout freely. The components only bring the behavior. [Making It Yours](/input-hub/manual/rebinding/making-it-yours.md) shows where each part is.
{% endhint %}

**`GameObject > Fast Studios > Input Hub > More > Player Settings`**, **Legacy** or **TMP**, makes ready made option rows: **Mouse Sensitivity**, **Controller Sensitivity** and **Invert Y** for a **Look** axis, and **Hold Time** and **Tap Time** for every action. Delete the rows your game doesn't need. See [Player Settings](/input-hub/manual/rebinding/player-settings.md).

{% hint style="success" %}
What the player changes is saved by itself, and comes back the next time the game starts. You don't need to write any saving code. See [Player Save](/input-hub/manual/player-save.md) to choose where it goes.
{% endhint %}

## The Pieces

| Component                                                                                       | What it does                                                                                              |
| ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| [**Making It Yours**](/input-hub/manual/rebinding/making-it-yours.md)                           | Not a component: where each part of the screen is, to give it the look of your game.                      |
| [**Binding Menu**](/input-hub/manual/rebinding/binding-menu.md)                                 | The list of actions to rebind, with tabs, titles, search and conflict rules.                              |
| [**Binding Row and Binding Slot**](/input-hub/manual/rebinding/binding-row-and-binding-slot.md) | One row of the list, and one key of a row. A Binding Slot also works on its own, anywhere.                |
| [**Axis Setting and Action Setting**](/input-hub/manual/rebinding/player-settings.md)           | Sliders, toggles and dropdowns for sensitivity, inversion, dead zone, hold time, hold or toggle and more. |
| [**Show When**](/input-hub/manual/rebinding/show-when.md)                                       | Shows or hides any part of the screen depending on a toggle, a dropdown, a map or the device.             |
| [**Bind Presets**](/input-hub/manual/rebinding/bind-presets.md)                                 | Ready made gamepad layouts the player picks from, like the presets of Apex Legends.                       |
| [**Bind Profiles**](/input-hub/manual/rebinding/bind-profiles.md)                               | Several named sets of keys, keys per hero, and share codes.                                               |

The [Atlas](/input-hub/manual/atlas.md) is another way to rebind: a drawing of the keyboard or the controller where the player clicks a key to change it.

## Learning From the Examples

The **Settings** example scene shows a complete controls screen, and the variations rebuild the screens of well known games with the same components: Minecraft, Outer Wilds, Apex Legends and Overwatch. They are the best place to see what these components can do. See [Settings](/input-hub/manual/example-scenes/settings.md) and the [Variations](/input-hub/manual/example-scenes/variations.md) in Example Scenes.
