Returns number of currently connected game controllers.
Takes no parameters.
Returns integer count (0-4, number of physically connected controllers).
Input
Parameters & Returns
Parameters
This function takes no parameters.
Returns
Int
Quick Summary
Returns number of currently connected game controllers.
Takes no parameters.
Returns integer count (0-4, number of physically connected controllers).
Technical Exegesis...
Returns number of currently connected game controllers. Takes no parameters. Returns integer count (0-4, number of physically connected controllers). Queries system for connected XInput/DirectInput devices, useful for detecting available controllers and multiplayer setup.
Returns number of currently connected game controllers. Takes no parameters. Returns integer count (0-4, number of physically connected controllers). Queries system for connected XInput/DirectInput devices, useful for detecting available controllers and multiplayer setup.
Return value: 0=no controllers connected (keyboard/mouse only), 1=one controller connected (single player with controller), 2-4=multiple controllers connected (local multiplayer), maximum 4 controllers supported (XInput limitation, ports 0-3).
Use cases: (1) Multiplayer setup (determine how many players can join with controllers), (2) Input method detection (If inpGetControllerAmount()>0 Then show controller prompts Else show keyboard prompts), (3) Controller hotplug detection (poll each frame to detect controller connect/disconnect), (4) UI adaptation (adjust menu for number of players based on connected controllers), (5) Automatic player assignment (assign player IDs based on controller count).
Common patterns: check controllers = controllerCount%=inpGetControllerAmount(): If controllerCount%>0 Then controllers available; multiplayer setup = maxPlayers%=inpGetControllerAmount(): For i=0 To maxPlayers%-1: create player slot; hotplug detect = currentCount%=inpGetControllerAmount(): If currentCount%<>lastCount% Then controller connected or disconnected: lastCount%=currentCount%.
Hotplug detection: call inpGetControllerAmount each frame or periodically (detects controllers plugged/unplugged during gameplay), compare to previous frame count (If count changed Then handle connect/disconnect), Windows automatically detects XInput devices (system-level hotplug support), use with inpIsControllerConnected for per-controller detection (check specific port connection status).
Performance: very fast query (~0.001ms, simple system call), safe for per-frame calls (negligible overhead), no controller update required (queries system directly, not cached state).
Controller handles: inpGetControllerAmount returns physical connection count (actual hardware connected), controller handles created with inpCreateController persist regardless of connection (handle valid even if controller unplugged), use inpIsControllerConnected with handle to check specific controller status (handle-based connection check).
XInput limitation: maximum 4 controllers supported (XInput API limit), controllers assigned to ports 0-3 (player 1-4), additional controllers beyond 4 ignored (won't appear in count), most games support 2-4 players (limitation is acceptable).
Platform dependency: Windows XInput system used (Xbox controller standard), most modern controllers compatible (Xbox, PlayStation controllers with XInput mode, generic XInput devices), some controllers require drivers (check manufacturer for XInput support).
Related: inpCreateController creates controller handle for specific port, inpIsControllerConnected checks if specific controller connected, inpUpdateController updates controller state from hardware.