The controller is assembled and programmed, so it’s time to put it through its paces, play some games, and see how well it works!

This post is part of a series on creating a custom controller for Overwatch using a Nerf revolver.  Check out the project page here.

Control Overview

First things first – a demonstration of all of the separate controls working in Overwatch.

For full disclosure, I recorded the gameplay separately to make everything cleaner. This is why I’m not holding the capacitive touch constantly to prevent the mouse moving. The LED indicator was used to sync the videos, which means they should be 1:1 with the controller’s response time.


The controller moves the mouse according to the rotation of the controller as detected by a gyroscope.

When the player’s thumb is placed over the capacitive sensor, aim inputs are stopped.

Primary Fire

The left mouse button is pressed when the trigger is pulled.

Alternate Fire (“Fan the Hammer”)

The right mouse button is pressed when the hammer is pulled back.


Turning the cylinder in either direction presses the ‘e’ key.


When the controller is twisted to the right the ‘e’ key is pressed.


If the player points the controller straight down, the ‘q’ key is pressed.

DDR Pad Setup

As I’ve said a number of times now, the controller is solely for McCree’s gun-related skills: firing, aiming, reloading, etc. This is so I can keep in the game’s style of a one-handed gunslinger. All of the movement controls are handled with a DDR-style dance pad.

The dance pad I’m using is Chinese-made and has a USB connection. I picked it up for $20 off of Ebay and it seems to do the job well-enough. The pad is seen by Windows as a USB game controller, so I mapped the buttons to their respective keyboard controls using JoyToKey.

The controls are setup as follows:

  • The arrows are mapped to WASD (↑ ← ↓ →) for movement.
  • is mapped to LShift, which is McCree’s combat roll ability.
  • is mapped to Space for jumping.
  •  is mapped to my character’s voiceline, just for a bit of flavor.
  • is mapped to the “Thank You” communication line, which is frequently useful.
  • Select is mapped to Tab to check heroe selections and the score.
  • Start is mapped to Escape to access the menu and go back in the menu system.

The one obvious thing that’s missing is crouch, but as ADAD / crouch spamming is out of the question on the dance pad I don’t really see a need for it.

A few people have asked me why I’m using a dance pad rather than a one-handed controller like a Wii Nunchuck or a Playstation Navigation Controller in my off hand. I chose the dance pad because I wanted my other hand free to fan the hammer on the revolver, but I have no doubt that it would make my movement smoother.


I was constantly loading Overwatch while I was programming to test out features, but I had never played an actual game with the controller. Now it’s time to put it to the test and see how it plays.

Last weekend was a “Free Weekend” for Overwatch, which was the perfect opportunity. This meant I could try out the controller on a new account and hopefully get placed in games that were more in-line with my Nerf skills.

Game #1: Free-For-All Deathmatch

The first game was a free-for-all (FFA) deathmatch. Deathmatch is fast-paced and omni-directional, which makes it the most difficult standard gamemode to play with a custom controller. This is a trial by fire, which in theory should show the controller’s flaws the clearest.

And show the controller’s flaws it did. I ended up in dead last with 3 kills and 13 deaths, but I learned a lot about how the controller works from just this one game.

Game #2: Payload, Attacking Side

The second game was attacking on the Junkertown map, which is pure payload. This is the opposite of the FFA experience – there is an objective that progresses forward, which gives the map “sides”. Most of the time the enemies are going to be in front of you and you won’t need to whip around quickly, which in theory should make moving and aiming easier to handle. The map was just released so there was a dedicated playlist for it in the arcade.

This game went far better and our team ended up winning. l died a few times to Junkrat’s passive grenades, but I got a double-kill with my ultimate and a card for 9 objective eliminations (12 eliminations total). I even flashed the enemy Tracer a few times.

Games #3 – 6: Loss Central

To finish off the first playtest I played four more games: three on Junkertown and one more FFA deathmatch.

All three Junkertown games I lost, and lost badly. I did not play well, although I think smurfs playing during the free weekend are partly to blame for the lopsided matchmaking.

The deathmatch game went better than before. I finished in 6th place with 8 kills, 8 assists, and 16 deaths. I started getting the hang of the controller, but I was still far from “good”.

Games #7 – 19: Getting Better

After fixing a couple of problems with the flashbang ability, I started the second playtest much more hopeful. I purchased a second copy of the game and was playing after the free weekend had ended. With a few more games under my Nerf belt the matchmaking should have started putting me with other new players closer to my skill level.

For the second playtest I was exclusively doing quick play games. I played a total of 13 games, winning 6 and losing 7. Two of those were on control point maps, two on payload maps, four assault maps, and the remaining five were hybrid.

Overall I’d say I did fairly well. Most games I was either silver or bronze damage and eliminations, although three of the games I had 2 or more gold medals. I got a lot better at the dance pad movement and I’m starting to be able to trigger a lot of the controls without thinking.

The highlight of the first two playtests was my 9th game – attacking on Temple of Anubis. On the second point I was able to sneak behind the enemy and pull off a triple kill with my ultimate, and then follow it up shortly thereafter with two kills on the remaining players. This got me play of the game and singlehandedly won it for our team. All with a Nerf controller!


At this point the controller is officially working! Using the Nerf gun and a dance pad I can play McCree in Overwatch with full access to all of the controls. It’s a little messy at the moment, but that’s what I’m going to work on in the next post.

Next Post: Bug Fixing and Refinements


Mason · September 30, 2017 at 7:11 pm

Dude, you should post this on Reddit … they will love it !!

    Dave · September 30, 2017 at 7:44 pm

    Haha thanks! I probably will, I just want to get everything 100% done and documented first.

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Would you like to know more?