Best way to switch out button prompts when the player changes from mouse and keyboard to controller?

I’m looking for the best way to check what input devices are currently being used (mouse/keyboard, 360 controller, etc) and switch out the button prompts to accommodate the player. I know that an option to switch input methods in the options menu is easiest way to achieve this, but for the sake of a slick player experience, doing it on the fly would be ideal.

In your PlayerController C++ class you can store a bool bIsInKeyboardMode then override these functions

	virtual bool InputAxis(FKey Key, float Delta, float DeltaTime, int32 NumSamples, bool bGamepad) override;
	virtual bool InputKey(FKey Key, EInputEvent EventType, float AmountDepressed, bool bGamepad) override;
	virtual bool InputMotion(const FVector& Tilt, const FVector& RotationRate, const FVector& Gravity, const FVector& Acceleration) override;

Use bGamepad to check if input has changed and assume that InputMotion can only be called by gamepad.

When a change occurred you can call a BlueprintEvent and update your HUD/Menus accordingly.

Hope it helps.

Perfect. Cheers for the speedy reply.