Emulating a Controller With a Keyboard

This is a tutorial on using UCR, which emulates an xbox controller and uses your keyboard as input. This is useful in cases where multiple people only have a keyboard to play games with, and the game does not let you use a different set of keys for each player. It can also be useful if the host can't or doesn't want to give you actual keyboard permissions. UCR can take a while to set up, so if possible, use a controller instead.

Note: There's also a built-in basic "keyboard to controller" emulation when you join games hosted via Arcade Beta, which requires no setup. It lacks button rebinding, d-pad, and the right analog stick, so you may only use it for games with simple controls, like Overcooked.

Installing UCR

You will want to setup UCR on the guest's computer, instead of the host. This will allow the host to use their mouse and keyboard as normal, while the guest uses the emulated controller.

  1. Download UCR and Interception then unzip them both
  2. Go to Interception's folder -> command line installer
  3. Hold shift and right-click install-interception.exe, then click Copy as path

  4. interception_copy_as_path.png

  5. Open command prompt as administrator

  6. run_as_administrator_cmd.png

  7. Paste the path, type " /install" (with the space), and press enter
  8. You should see a success message. If you don't, you might have done something wrong. You can get a general idea of how a correctly entered command looks like below, although the path you copied may look different

  9. Restart your computer

  10. command_prompt_example.png

Creating a profile

  1. Open UCR from its folder
  2. Click the plus icon next to Profiles
  3. On Input Devices, select a keyboard (starting with K:) from Core_Interception. If you see multiple keyboards, you can choose one and if things don't work later on, re-create a profile with another keyboard selected
  4. On Output Devices, select ViGEm Xbox 360 Controller 1. If you don't see ViGEm, reinstall Parsec then restart your PC
  5. Name the profile anything you want and hit Create


Configuring the profile

Once you create the profile, double-click it in the list to start configuring which keys on the keyboard will trigger a button on the controller. The following is what you do for each button:

  1. Choose a plugin on the left (each plugin is explained further below this article)
  2. Name your plugin anything you want and hit Accept
  3. On the right side, click the blue buttons to choose your key and controller button
  4. Repeat for every button in the controller


In the example above, I set my keyboard key "L" to trigger the face button "A" in the controller. There are three plugins you can choose, and each of them are for a specific set of buttons on the controller. Click a section below to learn more about each.

Button to Button - Normal buttons

Use it for normal buttons (A, B, Start, Dpad, etc.). There's nothing special to this, just click the blue buttons to select what key on your keyboard and button on the controller it is.

Button to Axis - Left and right triggers

Use for the left trigger (LT) and right trigger (RT). Map as normal, but set Axis on Release to -100. If you forget to set this to -100, you may find your triggers are permanently activated when in-game.


Buttons to Axis - Analog sticks

Use for the left stick (LX, LY) and right stick (RX, RY). You'll be mapping two keys at once for each axis, such as W and S for up and down.


To make sure the directions aren't inverted, you need to map in this specific order:

  1. LX (left stick, horizontal): map the right key first, then left
  2. LY (left stick, vertical): up then down
  3. RX (right stick, horizontal): right then left
  4. RY (right stick, vertical): up then down

The example below maps the left stick to WASD.


Activating and troubleshooting

To activate the mapping, select the profile and hit the play button to activate. You can then test if the controller works as expected with gamepad-tester.com


Other considerations