[UE5 Android] UMG Buttons not responding to touch input (Tried Z-Order, InputMode, Focus, etc.)

Hi everyone,

I am facing a persistent issue with my mobile game menu on Android (APK build). The game works perfectly on PC (mouse clicks work), but on the mobile device, the UMG buttons do not respond to touch at all.

I am using Unreal Engine 5. I have spent days debugging this and have already tried the standard fixes found on the forums, but nothing works.

Here is my setup:

  • GameMode: Custom GameMode with “Default Pawn Class” set to None (to avoid character spawning).

  • PlayerController: Custom PC (pc_menu) assigned in World Settings.

  • Logic: On BeginPlay (inside the PlayerController), I Create Widget → Add to Viewport → Set Input Mode UI Only → Show Mouse Cursor.

Here is the list of fixes I have ALREADY tried (and failed):

  1. Hierarchy & Visibility:

    • Button text is set to Not Hit-Testable (Self & All Children).

    • Button itself is Visible.

    • Root Canvas/Vertical Box is Not Hit-Testable (Self Only).

    • Checked padding/bounds, nothing is overlapping visually.

  2. Input Mode:

    • Using Set Input Mode UI Only targeting the specific Player Controller (Index 0).

    • Show Mouse Cursor is set to TRUE.

    • Project Settings > Input > “Use Mouse for Touch” is ENABLED.

  3. Virtual Joysticks / Overlays:

    • I ran Activate Touch Interface with a Empty/None interface to clear any virtual joysticks.

    • I set the HUD Class to None in World Settings.

    • My Default Pawn is None.

  4. Z-Order:

    • I set the Z-Order in the Add to Viewport node to 100 to force the UI on top of everything.
  5. Focus Issues:

    • All buttons have “Is Focusable” UNCHECKED (False).

    • I tried clearing the “In Widget to Focus” pin in the Input Mode node.

  6. Events:

    • I tried changing the button event from On Clicked to On Pressed to rule out touch sensitivity issues.

Observations:

  • When I touch the buttons on mobile, there is no hover effect, no tint change, and no print string. It feels like something invisible is blocking the input or the touch is not registering as a cursor click.

  • The virtual joysticks are successfully removed (screen is clear), but the buttons remain unresponsive.

Has anyone encountered a case where UI Only mode fails on Android despite Z-Order and Hit-Test settings being correct?

Any help would be life-saving! Thanks.

hi @aboumahassine , on touch screen device, try to connect “OnPressed” event instead of “OnClicked” to your functions

Also, please note that before doing this, I tried connecting ‘On Pressed’, and it still didn’t work.

Here is a summary of what I tried:

1. In Project Settings (Global Cleanup):

• Engine → Input → Mobile: Set Default Touch Interface to None (the box is empty).

• Goal: Prevent Unreal from loading default joysticks everywhere.

2. In the pc_menu Blueprint (New Logic):

I reworked the event chain after ‘Add to Viewport’:

Forced Activations: I added 3 nodes to ensure the controller listens to touch inputs:

• Set Enable Click Events (Checked :white_check_mark:).

• Set Enable Touch Events (Checked :white_check_mark:).

• Set Enable Mouse Over Events (Checked :white_check_mark:).

Mode Change: I replaced ‘UI Only’ with Set Input Mode Game And UI.

• Settings: ‘Do Not Lock’, and ‘Hide Cursor During Capture’ is unchecked.

Background Blocking: Since we are in ‘Game & UI’ mode, I added safeguards to prevent game movement behind the menu:

• Set Ignore Look Input (Checked :white_check_mark:).

• Set Ignore Move Input (Checked :white_check_mark:).

Cursor: I kept Set Show Mouse Cursor (Checked :white_check_mark:).

3. Character & Level Testing:

• I removed my ThirdPersonCharacter BP from the menu scene to see if the bug originated from there.

• I reactivated the joysticks inside my ThirdPersonCharacter BP logic so that we can see the joysticks in-game when the character is actually present (i.e., in the next level after pressing Start).

Result: It still doesn’t work!!! I don’t know what to do anymore :exploding_head: