Rebind Input | hyperPad Documentation
Logo
Interaction

Rebind Input

Published September 30, 2026
Rebind Input

Use Rebind Input to let your players change a control during play. You can also read the current choice or restore the control you authored.

The gameplay connection stays in place. For example, a player can change the controller button for Jump while your existing Jump behavior keeps its movement settings.

Find it in Interaction > Controls.

Properties

Rebind Input properties set to Player 1, Binding Jump, and Operation Listen.

These settings listen for a replacement for Player 1’s Jump binding.

PropertyDefaultWhat it does
Player1The player whose binding you want to change or read. Match the target's player number.
Input BehaviorNo selectionSelect Map Control Inputs, Controller Event, or a Keyboard Event or Mouse Event that identifies one specific input. Cancel and Reset All work without a target.
BindingFirst mapping row, or the event's single inputSelect the mapping row by its friendly name. A concrete event has one binding. Different rows keep your controller, keyboard, and mouse alternatives separate.
OperationListenChooses whether to capture, cancel, read, or reset a binding.

A specific Keyboard Event key can be rebound. Any key and On Sequence do not identify one binding. Mouse Event can identify a click, movement, or one scroll direction. Any scroll does not identify one direction to rebind.

Map Control Inputs uses positive player numbers. To rebind a Controller Event authored with Player 0, use Player 0 here too. That all-controller event is left out of the generated per-player Controls table.

Operations and event timing

OperationWhat happensWhen the bottom event connection runs
ListenWaits for a compatible input and saves it for the selected binding.When capture succeeds, is cancelled, or cannot start because the target is unavailable. It does not run for each prompt update.
CancelStops the active listening operation. The saved binding stays unchanged. No target is required.Immediately. The listening behavior also completes with cancellation.
ResetRemoves the selected binding's saved override and restores its authored control.Immediately after the reset attempt.
Reset AllRemoves every saved binding override for this player in the current project. No target is required.Immediately. A target-free Reset All reports success.
Get BindingReads the selected binding's current saved or authored control.Immediately after the read.

Starting another Listen replaces the active listening operation. Keep one rebinding request active in your UI.

Which controls can replace each other?

Capture stays within the selected binding's input family and type.

Selected bindingCompatible capture
Controller button or triggerAnother controller button or trigger.
Controller movementA stick or D-pad.
Keyboard buttonOne keyboard key.
Keyboard movementFour distinct keyboard keys, in the order Up, Right, Down, Left.
Mouse button or scroll directionA mouse button or scroll direction.
Mouse movementRelative mouse movement.

For keyboard movement, follow prompt as each key is collected. If you press a key already chosen for another direction, listening stays on the current step. The four keys are saved only when the complete set is accepted.

An incompatible input leaves listening active. To offer both keyboard and controller support for one action, author separate rows in Map Control Inputs. Rebinding changes an existing row; it does not add another device alternative to your game.

Outputs

OutputWhat it contains
controlThe saved or queried control identifier, such as buttonA, keyboard:44, or mouse:1. Read it for a successful Listen, Get Binding, or Reset. Reset All can succeed with no single control to return.
labelA readable label for control. Controller face buttons use their position. A keyboard movement binding shows the actual four selected keys.
promptThe current capture instruction. It changes while listening, such as asking for the next movement key.
progressCapture steps completed. It starts at 0; keyboard movement advances through 1, 2, and 3, then finishes at 4. Other successful captures finish at 1. A cancelled Listen returns 0.
successtrue when a binding is successfully captured, read, or reset. Reset All returns true without a target. false means capture was cancelled or the requested binding was unavailable.
cancelledtrue when listening was cancelled. An unavailable target returns false for both success and cancelled.
deviceIDThe input device that supplied a successful capture. A controller returns its session ID. Keyboard and mouse return keyboard and mouse.

Read prompt and progress while listening if you want your UI to show the next step. Prompt updates do not run the bottom event connection. You can read these outputs from a separate UI update behavior.

Capture outputs describe a capture attempt. Get Binding, Reset, and Reset All do not start a new capture. The separate Cancel operation reports success and cancelled; do not use its other outputs as a fresh capture result. Use Get Binding to show the current control after an operation.

Cancelling capture

Players can cancel with Escape or the controller's Menu button. Those controls are reserved for cancellation while listening. The right face button remains available to bind. Your custom UI should also provide a Cancel action.

Release a control that was already held when listening began, then press it again. Captured input is held back from gameplay until it returns to neutral.

The generated Controls overlay supplies a 15-second fallback for controller capture when a Menu button is unavailable or unconfirmed. Universal also applies this fallback to its controller capture service. A custom native Rebind Input flow should provide Cancel rather than rely on a timeout. Keyboard and mouse capture do not use this controller timeout.

The generated overlay also handles the mouse click that opens capture and clicks on its Cancel button. Prefer that UI for mouse rebinding. This article's custom connection example selects a controller binding.

Connection guide: change Jump and refresh its label

This is an illustrative example. First author a controller row in Map Control Inputs, give it the friendly name Jump, and connect it to your game's jump input.

Connection guide for Rebind Input: exact behavior settings, execution connections, and data drags.

  1. Create a Change button Object and a Jump Binding label Object.
  2. Add Started Touching for the Change button. Connect its bottom event connection to Rebind Input.
  3. Set that Rebind Input to Listen, Player 1, your Map Control Inputs behavior, and the Jump controller row.
  4. Connect Listen to a second Rebind Input. Set this one to Get Binding with the same Player, Input Behavior, and Binding.
  5. Connect Get Binding to Set Label. Select Jump Binding as Object A.
  6. Drag the green label output from the Get Binding instance into Set Label's Text property.
  7. Create a Cancel button Object. Connect its Started Touching behavior to another Rebind Input set to Cancel. This Cancel behavior needs no target.

Choose the label output from Rebind Input set to Get Binding for Set Label’s Text field.

Use the label output from the instance set to Get Binding. It reads the saved choice after Listen finishes.

Listen finishes on either capture or cancellation. Get Binding then reads the current choice, so the label shows the previous control if your player cancels. You can also execute Get Binding when your UI first opens to display the initial choice.

Saved choices

Overrides are saved for the current project, player, behavior, and binding. Changing one controller row leaves its keyboard and mouse alternatives intact. Reset All affects that player's saved bindings across the project, including authored controls in other scenes. It does not reset another player's choices or change controller assignments.

Controls defined in your project can be rebound before their scene loads. If gameplay decides a control's player or input source through another behavior's output, it becomes available after that live behavior resolves those values.

Saved choices are stored by the player runtime. They do not identify a particular piece of controller hardware and do not promise transfer between devices or player apps. Use Assign Controller to choose a connected device for a player. Connect or pair the physical device through the platform's own setup.