CommonUI – Gamepad Input Type Incorrect When Using

Hello Epic Support Team,

I’m using CommonUI for UI navigation in my Unreal Engine project. Originally, I used the default CommonUI navigation system, where the gamepad moves between buttons or items using directional inputs (Up/Down/Left/Right). This worked correctly — when using the gamepad, GetCurrentInputType returned Gamepad, and when using the keyboard, it returned Keyboard.

However, our project includes many widgets, and setting up navigation manually for each one is time-consuming. To simplify this, we decided to implement gamepad navigation like a mouse, where the cursor moves freely and can click on widgets — the cursor should remain visible at all times.

To achieve this, I created a custom class named VirtualCursorWidget, derived from CommonActivatableWidget. Other widgets inherit from this class. With this setup, the virtual cursor moves and clicks correctly only if I disable Support Gamepad in:

Project Settings → Common Input Settings → Input → Windows → Default → Support Settings

But when I disable “Support Gamepad,” GetCurrentInputType() always returns Keyboard, even though I’m using only the gamepad.

If I enable “Support Gamepad,” the function continuously switches between Keyboard and Gamepad (“Keyboard Gamepad Keyboard Gamepad…”), even though I’m only using the gamepad.

The default CommonUI navigation system doesn’t have this issue — input type detection works correctly.

It seems the problem occurs only when using a custom virtual cursor setup.

Could you please help me understand why this happens or suggest the correct way to keep the cursor visible and controlled by the gamepad while maintaining accurate input type detection?

Thank you for your time and support.

Hello,

From my understanding of what’s happening, is the game is switching rapidly between gamepad and mouse due to the virtual cursor sending mouse input events.

This discussion post here: How to stop virtual gamepad cursor rapidly swapping between input modes with Common UI?

describes a solution to keeping the cursor visible and controlled by gamepad with accurate input type detection.

If the above does not work for you, the official docs talk about Gamepad Navigation With Synthetic Cursors that also references how to implement/troubleshoot a custom behavior for it. I think the main difference is their custom cursor is derived from UCommonUIActionRouteBase.

https://dev.epicgames.com/documentation/en\-us/unreal\-engine/commonui\-input\-technical\-guide\-for\-unreal\-engine\#customizesyntheticcursorbehaviorincommonui

Please let me know if the above information works for you!

Regards

Hi,

Wanted to check-in to see if the above information helped out, or if the issue is still occurring for you?

Thank you