Quick answer: Check four things in order: the Input Mapping Context has gamepad keys and is actually added; the game window has focus (and in PIE, the gamepad is routed to the right player); the input mode is not UI Only; and the controller is one Unreal reads natively. Unreal on Windows reads XInput (Xbox) controllers; PlayStation, Switch and generic pads need Steam Input or a plugin.

Keyboard and mouse work, the controller does nothing. Or it works in the menu but not in game, or in a packaged build but not in the editor. Gamepad problems in Unreal come from a short list of places, and showdebug enhancedinput tells you which one you are dealing with.

First: see what Enhanced Input receives

In PIE or a Development build, open the console and run showdebug enhancedinput. It lists the active mapping contexts and the current value of each action. Press buttons and move sticks:

Fix 1: gamepad keys in the mapping context

Open your Input Mapping Context and make sure each action has gamepad mappings: Gamepad Left Thumbstick 2D-Axis for move, Gamepad Right Thumbstick 2D-Axis for look, face buttons for actions. Then check the context is added at runtime, typically in the PlayerController or Character after possession:

if (APlayerController* PC = Cast<APlayerController>(GetController()))
{
    if (auto* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(PC->GetLocalPlayer()))
    {
        Subsystem->AddMappingContext(DefaultMappingContext, 0);
    }
}

Mouse look usually has a Negate modifier on Y; a right stick usually does not. Copying mouse modifiers to the stick gives inverted look.

Fix 2: focus and PIE routing

Fix 3: input mode and widget focus

After a menu calls Set Input Mode UI Only, gamepad input goes to the focused widget, not your pawn. When the menu closes, call Set Input Mode Game Only (or Game and UI) again. If the controller works in game but not in menus, that is a widget focus problem, which the UMG and Common UI posts below cover.

Fix 4: the controller itself

On Windows, Unreal reads XInput controllers (Xbox controllers and anything emulating one) out of the box. PlayStation, Switch Pro and generic USB controllers are not XInput devices:

To confirm Windows sees the controller at all, open joy.cpl (Set up USB game controllers).

Works in the editor, not in the packaged game (or the reverse)

Controller problems you cannot reproduce

Controller issues depend on hardware you probably do not own. Bugnet's Unreal SDK lets players file a report from your UMG menu (which they can reach with a mouse when the pad fails) with a screenshot and their OS and hardware attached, and you can add the connected device names as report metadata.

Frequently asked questions

Why does my controller not work in Unreal Engine?

Usually the Input Mapping Context has no gamepad keys or is never added, the window lacks focus, the input mode is UI Only, or the controller is not an XInput device that Unreal reads natively.

Does Unreal Engine support PS5 or PS4 controllers on PC?

Not natively through XInput. Most games rely on Steam Input to present them as Xbox controllers, or use the RawInput or GameInput plugins with per-device setup.

How do I debug Enhanced Input gamepad bindings?

Run showdebug enhancedinput in the console to see the active mapping contexts and live action values while pressing buttons.

showdebug enhancedinput first. It tells you whether the problem is the mapping, the focus or the device.