Switcheroo - Input Device Detection

minifloppy - Oct 26, 2018

Easily detect whether the player is using a gamepad or the keyboard/mouse combo, and react accordingly.

  • Supported Platforms
  • Supported Engine Versions
    4.18 - 4.25
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.

To provide a great user experience, games should let the player switch from a gamepad to the keyboard/mouse combo (and vice-versa) seamlessly and at any time. Implementing this simple feature in the correct way, however, can be very time consuming.

Switcheroo provides a plug and play solution to detect which device the player is currently using, taking extra care to filter out edge cases and false positives (such as input coming from a loose analog stick, or from involuntary mouse movements), so you don't need to deal with the gritty details and can concentrate on the user experience.

Technical Details


  • State-of-the-art input detection. The plugin automatically filters out edge cases and false positives (such as input coming from a loose analog stick, or from involuntary mouse movements) and is highly customizable.
  • Easy to use. The plugin provides a simple API that can be used from both Blueprints and C++.
  • Plug and Play. Switcheroo doesn't require any special setup (like custom GameInstance or PlayerController classes): enabling the plugin is all it takes to be up-and-running.
  • Lightweight. The plugin logic is implemented in native C++ code and runs at the Slate application level with no impact on performance.
  • Supported. Switcheroo is actively used in my company's upcoming game, and will receive all the needed lifetime upgrades.
  • Full source code. Switcheroo comes with full, heavily commented source code.

Number of C++ Classes: 3.

Network Replicated: N/A.

Supported Development Platforms: Windows, Mac, Linux.

Supported Target Build Platforms: tested on Windows, Mac, Linux, but should work on PS4, XBox One, Switch and HTML5 too.

Documentation: Online Docs

Example Project: Project Download