Inside Unreal: Introduction to Common UI

I decided to give up on keyboard nav because it wasn’t essential for my game, it can make do without it, but I still want it.

And yes, now echoing what you have posted, I find it really odd that they bothered with a solution that doesn’t support multiple inputs - the most obvious scenario is WASD+Arrow keys for menu nav haha. Sensing a pattern.

This is one of the best plugins ever developed for Unreal, together with GAS.

But there is one pending issue, I think: clicking with the mouse outside the widget it loses the focus, and even gamepad doesn’t work anymore. Is there a way to handle this, different of polling frequently to check the focus state?

@Vaei @eobet @BlenderGamer @Ciberus @E_PepeGamer

I hope my tutorial helps and would welcome your feedback!

2 Likes

add an empty border that covers the whole screen and you wont lose focus on click

edit: an overlay may work too

1 Like

Btw I also solved it in similar way for ItemSlot’s and added selectable support for CommonTileView’s/other “lists” widgets

1 Like

This is great, but how do you solve keyboard navigation?
Do you have to run a OnTck and check every button if keyboard is focused and then trigger the hover state manually? Very painful.

Do you have to run a OnTck and check every button if keyboard is focused and then trigger the hover state manually

Yes as example i have equipement screen, cant use “list” here. On Construct I just save all buttons in array :upside_down_face:

On click “Change” i searching for selected “ItemSlot” in buttons array and “do something”(in my case navigate to another screen)



If its possible better to use “lists” like CommontTileView/ListView/TreeView its easier to take selected item for example I have EquipItemScreen on press “E” you can get selected item


Hope it will helps a bit

Found how to solve issue with keyboard navigation - mouse click in random space should not remove focus from buttons

1 Like

Hello! I was wondering how I can use Enhanced Input instead of the inputs from the common UI input action data table? I believe this is possible and I know there’s an option to turn it on, but I can’t find a way to make it work on my own.

Check this link. Note it’s still flagged as experimental in 5.4 so this system structure may change in the future.

1 Like

I did it by overriding CommonActivatableWidget::GetDesiredInputConfig() in BP. Some widgets I want to show, but allow the character to move around, but some I want to disable the movement of the character while they’re on the stack

1 Like