Controls Overlay
Use the generated Controls overlay to let your players choose a controller and change their bindings. You can change its graphics, fonts, positions, and colors in the editor.
Controls Overlay is the internal behavior that updates this menu. The template adds it to the menu’s Behavior Trees. It is hidden from the Add Behavior list. For your own input actions, use Controller Event. For a custom binding menu, use Rebind Input.
Open the menu
The editor adds one editable Controls overlay when you configure mapped inputs. Open it with Load Overlay and select the generated overlay. Keep the pause setting on when you want gameplay to wait while the player changes controls. Active overlays can still receive input.
The template adds Menu and Escape shortcuts when those keys are available for its opener. It also adds a Controls entry to pause overlays that it recognizes. If your game already uses Menu or Escape, or has its own pause flow, add a Load Overlay connection to the UI you want to use.
Select the generated Objects to change the menu’s graphics, text, and layout. The editor shows faint outlines for hidden tab and listening elements. Those outlines do not appear when you run the game.
Select Controller Body, then open its color picker to change the tint.
What your players can change
Choose Controller, Keyboard, or Mouse to see one device's bindings at a time. Each row shows an action name, its current control, and Change. Only alternatives you authored for that device appear. An empty tab explains that no controls are set up for it.
The template shows up to four action rows per page. Previous and Next appear when the selected device has more than four actions. Unused rows stay hidden. Alternatives with the same source and action name share an action. A second alternative in the same device family uses another row.
The Controller tab shows the device assigned to the selected player. Arrows appear when you can choose another connected controller or assign one to an empty player slot. Keyboard and Mouse tabs show their own device title.
The controller drawing highlights the selected binding on the Controller tab. Its buttons sit inside the body. You can replace the artwork with your own Graphic. Mapping uses standard controller positions, so a different drawing does not change the controls.
The source graphics are white with transparent backgrounds. The template applies charcoal, gray, and mint tints. Change an Object's tint to match your game.
Tap Change to open a focused listening prompt. It shows the action, the current binding, and what to press next. Cancel keeps the previous binding and returns to the list. Navigation, device assignment, and reset controls stay hidden while listening.
In the normal list, Reset selected restores the highlighted binding. Reset all restores the selected player's authored defaults across the Project. Done closes the overlay.
Keep the generated connections
This teaching diagram shows the generated Done button’s complete execution chain. All three behaviors belong to the object named Controls: Done. It is a focused part of the generated template; the other menu connections stay in place.
- Started Touching listens to the Controls: Done object and absorbs its touch.
- Its bottom white execution connector runs Controls Overlay with Operation
Done. Object A identifies the shared Controls Menu anchor. - Controls Overlay’s bottom white execution connector runs Close Overlay. The generated close action has Resume All Scenes off and Unload When Finished on.
Done cancels an active capture before the close action runs. Keep this order when you customize the button. The timer, controller, and keyboard connections are separate parts of the same template.
Operations
These operations are saved on the generated helper behaviors. You normally customize the menu objects and keep these helpers connected.
| Operation | What it does |
|---|---|
Refresh | Updates labels, visible binding rows, capture status, page information, and controller highlights. The generated Timer runs it every 0.2 seconds and starts immediately. |
NextPlayer, PreviousPlayer | Selects another player slot that appears in the menu’s bindings or controller assignments. |
NextController, PreviousController | Cycles connected controllers and assigns the selected device to the selected player. |
Navigate, NextSource | Moves the selection between actions and device tabs. |
SelectSource | Selects the Controller, Keyboard, or Mouse tab. Switching tabs selects the first action. Tapping the active tab keeps the current selection. |
NextBinding, PreviousBinding | Selects the next or previous game input. |
NextPage, PreviousPage | Moves through the binding table’s pages. |
SelectCell | Selects a visible action row. The generated rows use the current device tab. |
Rebind, RebindCell | Starts capture for the selected authored binding. Add alternatives in Map Control Inputs before rebinding them. |
Cancel | Stops capture and keeps the existing binding. |
Reset | Restores the selected authored default. |
ResetAll | Restores every saved binding for the selected player. |
Done | Cancels capture, then allows the connected Close Overlay action to run. |
Back | Cancels an active capture and stays in the menu. When no capture is active, it continues to the connected close action. |
Object references and input values
The template stores these references on its helper behaviors. Keep them pointed at the corresponding objects when editing its Behavior Trees.
| Reference or value | Purpose |
|---|---|
| Layout Version | The generated layout uses version 3. Existing customized overlays retain their saved layout. |
| Layout Size, Layout Objects | The design canvas size and the Objects that belong to it. The helper centers and scales this composition together to keep labels and artwork aligned on different screens. It uses your saved positions and scales when the overlay opens. Overlays without these values keep their existing positioning. |
| Source Tabs, Diagram Objects | Label and highlight references for each tab, and the drawing Objects visible for each device. |
| Normal Objects, Capture Objects | Visibility groups that switch between the binding list and the listening prompt. |
| Paging Objects, Reset Objects, Device Selector Objects | Groups shown only when the current state needs those controls. Device Selector Objects contains the controller chooser arrows and their labels. |
| Capture Title, Binding, and Prompt Labels | The action being changed, its current binding, and the next capture instruction. |
| Device Status, Empty State, and Source Caption Labels | The assignment or device guidance, the empty-tab message, and the selected device caption. |
| Object A | The shared Controls Menu anchor. It holds the selection state for this overlay instance. |
| Player Label, Controller Label | The labels showing the selected player and the current device or assigned controller. |
| Binding Label, Source Label, Selection Label | Optional labels showing the selected action and current binding. |
| Status Label, Page Label | The normal-list instruction or result, and the current page. |
| Table Rows | Version 3 records contain an action label, one binding label, a background, a selection highlight, and the row's Object IDs. Older templates retain their three-column records. |
| Diagram Labels, Diagram Highlights | Object IDs for highlights at standard controller positions. Older templates can also supply action labels. |
| Row Index, Source | The visible row slot and device family used by RebindCell or SelectCell. Source current uses the active tab. |
| x, y, Navigation Step | Direction values used to move between actions and tabs. Keyboard steps move once per press. |
| Event Player | The Controller Event output that identifies the player operating the menu. |
Outputs
Controls Overlay has no draggable data outputs. It writes the referenced labels and updates the selected binding or assignment. Its white execution output continues to the behaviors connected after the operation.
Capture and pairing
Your player pairs a controller through the platform’s Bluetooth, USB, or other supported setup. The overlay selects a controller that is already connected.
Escape or the controller’s Menu button cancels a capture. The template also has a Cancel button. When a selected controller has no confirmed Menu control, controller capture has a 15-second fallback timeout. Keyboard and mouse capture should use Cancel or Escape. Captured inputs stay out of gameplay until they return to neutral.
For keyboard movement, the player presses four different keys in this order: Up, Right, Down, Left. The menu displays the keys that were saved. A mouse row captures a button, a wheel direction, or movement according to the authored input’s type.
Device assignments apply to the current session. Binding choices are saved for the project, player, and authored binding. Paired phone controllers use the same bindings and player assignments as physical controllers. See Play with your phone for pairing.
