Yea, the best place to start is using DirectInput if you are interested in creating your own. The one I will be releasing will have full access to the POVs, Sliders, Axis, Rotations, up to 128 buttons, you name it. It will basically give you access to everything DirectInput exposes through the DIJOYSTATE2 structure. No, you won’t need to worry about headers on this one aside from enabling the plugin. I would need to modify the engine source to expose it fully like a GamePad but it comes up as a registered IInputDevice. What you’ll end up doing is for instance within your PlayerController or Pawn Blueprint, is create or get the currently running instance and then you can use Event Dispatchers to Bind your own internal events to for when things like an Axis value changes or a button was pressed. No need for C++
I specifically developed these plugins for my new game but I know there’s a demand out there and that it can help others out so I want to make sure I get them out to the community soon