Quick answer: Your controller doesn't work in your game because the chain from controller to gameplay breaks somewhere: the game doesn't detect the controller (a detection/input-API issue), it's detected but its buttons aren't mapped or are mapped wrong (so inputs do nothing or the wrong thing), or the input is read but doesn't reach gameplay. It may affect all controllers (a general input problem) or specific types (a support gap).

A controller that doesn't work is a complete barrier for players who play with one. Controller support is fiddly because of the variety of controllers, connection methods, and input APIs, so 'controller not working' can fail at detection, mapping, or input delivery.

Why Controllers Don't Work

Getting controller input into the game involves detection, mapping, and delivery, and failure at any stage means it 'doesn't work.' Detection/connection: the game doesn't detect the controller (wrong or unsupported input API, the controller type isn't recognized), so it sees no controller. Mapping: the controller is detected but its buttons aren't mapped (or mapped wrong), so inputs do nothing or trigger the wrong actions (common with the variety of controller layouts). And input delivery: the input is read but doesn't reach gameplay.

Different controllers (Xbox, PlayStation, generic) and connection methods (USB, Bluetooth) add variety that can break support for specific ones. So it might be no detection, no mapping, or no delivery, and might affect all controllers or only specific types.

How to Diagnose and Fix It

Determine where it breaks and for which controllers: is the controller detected at all (if not, a detection/API issue), detected but inputs do nothing/wrong (a mapping issue), or inputs read but not affecting gameplay (a delivery issue)? And which controllers fail, all (a fundamental input problem) or specific types (support gaps)? Reports often specify the controller ('my PlayStation controller doesn't work'). Bugnet captures reports with context, so which controllers/platforms are affected surfaces.

Fix by using a robust input layer that supports common controllers via standard gamepad APIs/middleware (rather than assuming one type), mapping common layouts correctly and offering remapping, fixing input-delivery bugs, and handling connect/disconnect. See our guide on fixing a controller not working.

A controller not working breaks at detection, mapping, or delivery. Use a broad input layer that supports many controllers, offer remapping, and check whether it's all controllers or specific ones.