How to connect a controller to Moonlight & Sunshine — any pad, up to 4 players
Your stream looks perfect, but the controller won't show up — or you can only get one working. It's almost always the client device's Bluetooth, not Moonlight itself. Here's how to feed it any pad, cleanly, up to four at once.
The thing nobody tells you about Moonlight controllers
Moonlight doesn't have its own controller magic. It passes through whatever controller your PC has already paired — and Sunshine turns that into a virtual gamepad on the gaming PC. That works fine when your PC's Bluetooth pairs the pad cleanly. It falls apart when the PC's Bluetooth won't cooperate:
- A PC with no Bluetooth adapter gives Moonlight nothing to forward — there's no radio to pair a pad with in the first place.
- A PC whose Bluetooth won't reliably pair your DualSense or Xbox pad, or drops the connection mid-session, leaves Moonlight with nothing stable to forward either.
- Trying to connect two or more Bluetooth pads to one PC often means fiddly re-pairing, mis-assigned ports, or drivers that only recognise one pad at a time.
The fix isn't a Moonlight setting. It's supplying your PC with a controller it can actually use.
Host or client — where does the controller go?
The question everyone asks first: connect the controller to the client — the device you're streaming to — never the host. Moonlight captures the pad on the client and sends its inputs upstream; Sunshine then recreates it on the gaming PC as a virtual gamepad, as if it were plugged in locally. Pairing the pad straight to the host works against the stream: you'd be tied to the host's Bluetooth range anyway, and a second "local" pad can fight the virtual one for player 1.
Which means the whole controller experience lives or dies on the client's ability to see your pad — and that's exactly the part Controller Gateway replaces when the client can't.
Sunshine's virtual gamepad setting (the "virtualpad")
On the host, Sunshine's Audio/Video → Gamepad setting decides what kind of virtual pad it creates from the client's controller:
- Auto — the right choice for almost everyone. Sunshine matches what the client sends.
- X360 — forces an Xbox 360 (XInput) virtual pad. Pick this for older games that only speak XInput.
- DS4 — forces a DualShock 4 virtual pad, which is what you want for PlayStation-native titles or when you need touchpad and gyro passthrough.
If the virtual gamepad never appears on the host at all, check that Sunshine installed its virtual-controller driver during setup — and that the client actually has a pad to forward, which brings us back to the point above.
Controller Gateway is the missing input layer
Pair your controllers to your phone, and Controller Gateway relays them to your PC as standard Xbox controllers — which Moonlight forwards without complaint. One controller free, up to four players with the one-time £2.99 unlock, low latency, and no dependence on the PC's own Bluetooth at all.
Get Controller GatewayHow to set it up
- Install the free Controller Gateway PC receiver.
- Pair your controller to your phone, then Find PC → Start.
- Run Moonlight on the PC — the relayed pad is already a standard Xbox controller, so it forwards straight through Sunshine's virtual gamepad on the host.
The relay hop adds about 1–5 ms on 5 GHz Wi-Fi — well under a single frame at 60 Hz (16.7 ms). Ideal for streaming, where every millisecond matters.
Local co-op, done right
Because each controller is relayed as its own player, you get clean P1–P4 assignment even when pairing multiple Bluetooth pads directly to the PC normally breaks. One controller is free; up to four needs the one-time £2.99 in-app unlock. Great for couch co-op and party games streamed to the TV.
Give Moonlight a controller it can actually use.
Any pad, on your PC, up to four players — independent of the PC's own Bluetooth.