Get Controllers | hyperPad Documentation
Logo
DocumentationInteractionGet Controllers
Interaction

Get Controllers

Published September 30, 2026
Get Controllers

Use Get Controllers to read the connected controllers and their current player assignments. You can use the result to build a controller chooser or show how many controllers are available.

Find it in Interaction > Controls.

Properties

Get Controllers has no device-selection properties. Each execution reads the full connected-controller list.

Input and event connections

Run this behavior when you need a fresh snapshot. Its bottom event connection runs immediately after controllers and count have been written.

A snapshot stays as it was when you read it. Run Get Controllers again to refresh it. Controller Status can trigger that refresh when a connection or assignment changes.

Outputs

OutputWhat it contains
controllersAn array of connected physical controllers and their player assignments. With no controllers connected, the array is empty.
countThe number of records in controllers. With no controllers connected, it is 0. Keyboard and mouse do not add to this count.

Get Controllers has no direct deviceID output. Each controller's ID is inside its dictionary in the controllers array.

Controller records

Each item in controllers is a dictionary for one connected physical controller. Read a dictionary from the array before reading a field such as deviceID.

FieldWhat you can read
deviceIDThe controller's ID for the current play session. Use this value with Assign Controller.
nameThe name supplied by the platform. Two controllers can have the same name.
vendorNameThe vendor or name reported for the controller. This may match name.
connectedtrue for an item in this connected-controller list.
playerIndexIts assigned player number. 0 means it is connected but unassigned.
deviceTypecontroller. Keyboard and mouse are outside this list.
connectionOrderA number used to keep devices in connection order. Use deviceID to identify a device, rather than its array position.
controlsWhen available, an array of control identifiers such as buttonA, leftStick, and buttonMenu. Check whether this field is present before using it.

The Universal player can also supply capabilitiesKnown, standardizedProfile, and observedControls. These fields are optional across platforms. capabilitiesKnown tells you whether the full control list is confirmed. standardizedProfile tells you whether the platform recognizes a standard gamepad layout. observedControls lists controls that have produced input during this session. A recognized layout describes possible controls; it does not confirm that every button exists on the connected device.

Use the behavior's controller list for a chooser. Avoid treating a missing capability field as proof that a controller has no buttons.

Connection guide: show the connected-controller count

This is an illustrative example for a label in your own UI.

Connection guide for Get Controllers: exact behavior settings, execution connections, and data drags.

  1. Create a label Object called Controller Count.
  2. Add Get Controllers and run it when this UI opens.
  3. Connect its bottom event connection to Set Label.
  4. In Set Label, select Controller Count as Object A.
  5. Drag the green count output from Get Controllers into Set Label's Text property.

Choose Get Controllers’ count output for Set Label’s Text field.

The label shows the number from the latest snapshot. The green data reference supplies the number; the white execution connection updates the label after it has been read.

For a list of device names, your game needs to read the individual dictionaries in controllers. This count example does not select a controller or extract a device ID. The generated Controls overlay already provides a controller chooser.

Players, IDs, and pairing

A newly connected controller is assigned to the first free positive player slot. Use Assign Controller to change that choice.

Player numbers are slots in your game, not permanent controller identities. Device-to-player choices last for the current session. Use fresh deviceID values from this list or a controller event when making an assignment.

Controllers must already be connected through the platform's supported setup. Get Controllers does not pair Bluetooth hardware. The maximum number of connected controllers depends on the device and operating system.