Use your VR controller as a light gun for emulators and games. This tool tracks your Valve Index (or other SteamVR-compatible) controller and emulates an Xbox 360 controller, mapping your pointing direction to the analog stick for light gun-style aiming.
- Windows 10/11
- .NET 9.0 Runtime
- SteamVR
- ViGEmBus Driver (for virtual controller emulation)
- The app tracks your VR controller's position and orientation via SteamVR
- A -45° pitch offset is applied to simulate holding a gun naturally
- You calibrate by pointing at 3 corners of your screen (Top-Left, Top-Right, Bottom-Right)
- The app calculates where your pointing ray intersects the virtual screen plane
- Screen coordinates are mapped to an emulated Xbox 360 left stick
- Multiple Controller Support: Enable left hand, right hand, or both controllers simultaneously
- Shared Calibration: Calibrate once with any controller, and all controllers use the same screen calibration
- Multiple Virtual Controllers: Each enabled VR controller creates its own virtual Xbox 360 controller
- Works with Any SteamVR Controller: Valve Index, HTC Vive, Oculus/Meta Quest (via Link), and other SteamVR-compatible controllers
- Install ViGEmBus - Download and install from the link above
- Start SteamVR - Make sure your VR headset and controller are tracked
- Run VRLightGun.exe
- Select Controllers - Check the boxes for which controllers you want to use (Left Hand, Right Hand, or both)
- Calibrate:
- Click "Start Calibration"
- Point at the top-left corner of your monitor and pull the trigger
- Point at the top-right corner and pull the trigger
- Point at the bottom-right corner and pull the trigger
- Play! - The calibration is saved to
calibration.jsonand loads automatically next time
| VR Controller | Xbox 360 |
|---|---|
| Trigger | A Button |
| Grip | B Button |
| Menu Button | X Button |
| Trackpad Press | Y Button |
| System Button | Start |
| Trackpad Touch | Back |
| Pointing Direction | Left Stick |
A 3D debug visualization shows:
- Your controller position (green sphere)
- Calibration points (colored spheres: Yellow=TL, Cyan=TR, Magenta=BR)
- The pointing ray (orange line)
- The calibrated screen plane (white outline)
dotnet build
dotnet runMIT