Couch Lag

Moonlight controller not working: fixes for Sunshine, Apollo and Steam

Short answer: First find out whether the host sees a controller at all. Test in Steam Big Picture: if the pad works there but not in a game, it’s a game or Steam Input setting. If nothing works anywhere, the host’s virtual gamepad driver is missing (Sunshine on Windows needs one), the client isn’t allowed to send input (Apollo), or the game needs the pad connected before it starts.

Checked October 30, 2026 against Moonlight PC v6.2.0 and Sunshine v2026.914.233613 (latest stable releases) and their documentation. Sources are listed at the end of the page.

1. Narrow it down in two minutes

What you seeMost likely areaGo to
No input anywhere on the host, not even on the desktopHost gamepad driver, or input permissionsStep 2 or 3
Works in Steam Big Picture, not in one gameSteam Input or the gameStep 4
Works only if the pad was on before the game startedThe game doesn’t support hot-plugStep 5
Works, but laggy or drops outBluetooth on the clientStep 6

Moonlight’s own troubleshooting page suggests the Steam Big Picture test: if input works there, the problem is specific to the game.

2. Sunshine on Windows: pick a gamepad driver

Sunshine creates a virtual controller on the host, and on Windows that needs a driver. Its docs describe two:

  • Virtual HID Driver (LizardByte’s, an optional paid upgrade). It adds Xbox One, Xbox Series, DualSense, Switch Pro and generic pads, plus motion, touchpads, LEDs and adaptive triggers where supported. It needs an active machine licence, and Sunshine needs driver version 2026.914.1218.10 or newer.
  • ViGEmBus (free, but end of life). It only emulates Xbox 360 and DualShock 4 pads, and Sunshine needs version 1.17 or newer.

Choose in Sunshine’s web UI under Configuration › Input: all available drivers, Virtual HID only, or ViGEmBus only. Sunshine keeps asking until you save a choice. With “all”, Sunshine falls back to ViGEmBus whenever the Virtual HID licence isn’t valid. Restart the PC after installing a driver. Also check that the controller option (default enabled) hasn’t been turned off, and that gamepad (default auto) is set to a type your driver supports. With ViGEmBus only auto, x360 and ds4 are available.

Linux hosts: Sunshine’s docs say the udev rules must be reloaded after install. Run sudo udevadm control --reload-rules, then trigger the hidraw and input subsystems as the docs show, or reboot. If input still fails, add your user to the input group.

3. Apollo: check the client’s permissions

Apollo gives full permissions only to the first client you pair. Every client paired after that gets just “View Streams” and “List Apps”, so it can watch but not control. Open Apollo’s web UI and grant input permissions to that device. Apollo’s README covers this under its permission system.

4. Works in Steam but not in the game

  1. Moonlight’s fix: in Steam Big Picture, go to Settings › Controller Settings and untick the gamepad “Configuration Support” boxes.
  2. Sunshine’s variation: leave only Generic controller support ticked in Steam.
  3. If other controllers are plugged into the host, disable them so the streamed controller is the “first” one. Sunshine’s docs note this can matter.

5. The game only sees a controller connected at launch

Some games don’t notice a controller that appears after they start. Moonlight PC has Force gamepad #1 always connected in its gamepad settings for exactly this. Only turn it on for games that need it. If Moonlight PC is in the background (for example behind a launcher), turn on Process gamepad input when Moonlight is in the background.

6. Client-side checks

  • Bluetooth: on some devices Bluetooth shares the Wi-Fi antenna. Moonlight’s docs call this a hardware limit and suggest pairing the pad to the PC instead when you’re at home.
  • Android and Google TV: Moonlight recommends testing your controller first, because PlayStation controllers over Bluetooth in particular can lag or disconnect. A built-in “Xbox 360/One USB gamepad driver” (on by default) covers devices without native Xbox support. If your pad has no Select or Mode button, use L1+Start for Select, and Start+Select (or R1+Start) for Mode.
  • Apple TV, iPhone, iPad: on iOS and tvOS 13 or later, Xbox One S and PS4 controllers work over Bluetooth with all their buttons. Older MFi pads may lack L3, R3 and Select.
  • Wheels and flight sticks: Moonlight’s FAQ says these can’t be passed through as-is. It suggests VirtualHere for USB pass-through (one device free).

FAQ

Why does my controller work in Steam but not in the game?

Steam Input may be translating it into something the game doesn’t expect. Moonlight suggests unticking the controller “Configuration Support” boxes in Steam Big Picture’s controller settings, and Sunshine suggests leaving only Generic controller support enabled.

Do I need ViGEmBus for Sunshine?

On Windows Sunshine needs a virtual gamepad driver. ViGEmBus 1.17 or newer is the free, end-of-life option for Xbox 360 and DualShock 4. LizardByte’s Virtual HID Driver is a paid upgrade with more controller types and features.

Why can only my first device control games on Apollo?

Apollo grants full permissions to the first paired client only. Later clients get “View Streams” and “List Apps” until you add input permissions for them in Apollo’s web UI.

Sources