Hello MrSheet,
I didn't really understand why you need to detect which controller was used by the user as C2 already do the job for this, the easiest solution you have was to make function based event to call when action need to be performed ...
-----------------------------------
On keyboard 'F' press
or ---> function call "interact".
On gamepad button 'A' press
-----------------------------------
On function "interact" ---> YOUR ACTION EVENT HERE
-----------------------------------
And this normally works ...
But for mouse it's a little trickier you need to make two distinct event to perform this if it was based on mouse position (Mouse.X, Mouse.Y) if not it will work the same as the previous one with mouse click.
Hope this could help if not post the sample capx and i will try to solve it with you =)