Lots of issues with UMG and console/keyboard control

I’ve been trying for a while now to make UMG work with console controller/keyboard/mouse and as great as UMG is I think the navigation support is in need of some major work. For about a year now we made do with our game working with just mouse interaction and decided we’d get console controllers working later on (using 's mouse cursor control pad plugin to hold us over). I didn’t think it would be too big a problem since the engine exports to all major consoles it would have some systems in place.

There are some systems in place but they are all filled with so many issues I’m not sure where to even begin at this point so i’ll just bullet point some of the major problems.

  • No joystick dead zone for the built in navigation (this includes handling on preview key down yourself). Using a console joystick will often send the navigation diagonal unless you are extremely precise.

  • Built in navigation options are too limited and uncontrollable. The navigation system works if your menu is reasonably grid based but for more advanced menus with lots of varied and changing layouts you need to rely on the “explicit” option. The problem is explicit isn’t always enough. For example a set of buttons might sometimes be on screen but based on the game state a different set of buttons might be the next intended navigation point. To counter this I have been using on preview key down to test the current focus and then painfully mapping the possible branches for every button. (some UMG’s have upwards of 90 buttons) There is an example of this below.

  • The concept of “focus” doesn’t interact with most UMG elements. By this what I mean, for example, is if a button is focused there is no way to visually know. It does not activate the buttons Hovered state nor is there any settings for a focused state. To counter this I have been keeping my menus simple and sticking with just buttons and then creating arrays of the button states which an event tick then swaps by checking if any button is currently focused. Below are examples of that system.

  • You cannot hide the mouse whilst remaining focused on objects. Hiding the mouse cursor in the player controller is only intended, as far as I can see, for hybrid use of game and UI. For a console controller to work I need to set focus and this means the mouse will appear whilst in UI input mode. Using the other modes it isn’t possible to grab the keyboard/controller inputs for navigation. I’ve tried a million work arounds for hiding the mouse such as an invisible mouse cursor being swapped in or setting the mouse position and interrupting click events but none of them work fully and none of them seem fit for a console release of a game.

  • Using set mouse cursor doesn’t work as expected. The mouse cursor will only update on the next mouse or focus event.

There are more smaller issues but I think those are the biggest ones that I can actively remember (this has been an ongoing fight for about a year of development now). I don’t even know if this should be considered a bug report because it seems like an incomplete aspect of the engine and I wasn’t sure where else to put this information.

I appreciate your hard work and the engine you’ve made so I hope this doesn’t come off as just ranting, I genuinely want the engine to get to the best possible point it can like you. If you need any more information please let me know.

Thanks for reading!

Hello mrcrocker,

Thank you for your information, however for tracking purposes we limit the number of issues per thread to one. I will need you to create new threads for each issue that you are having. You can then post a reply with a link to the new question on this thread and someone can follow up from there. I have provided questions below that will help narrow down what issues you are experiencing. I would suggest providing this information in your new posts.

Example questions:

  1. Can you reproduce this issue in clean project?
  2. If so, could you provide a detailed list of steps to reproduce this issue on our end?
  3. Could you provide screen shots of any settings/blueprints/widgets that may be involved?

Answer for your first issue:

As for the issue dealing with dead zones, there is a feature request in that appears to cover that issue. I have provided a link to the public tracker. Please feel free to use the link provided for future updates.

Link: Unreal Engine Issues and Bug Tracker (UE-27571)

Make it a great day

I am in the exact same boat. I really cannot believe that controller support is not better supported in the UMG menu system.