I can vouch for how nasty it is to integrate gamepad support. I have been doing it manually in my current project.
I am on my 3rd design for how to handle it, and I’m contemplating rearchitecting a 4th time. It’s hard to make it usable.
It would be much easier to create a reusable system if
- UE would let you specify that a button is hovered programmatically (and otherwise let focus = hover for non-mouse input)
- UE would let you pass function references in blueprints