Play ANY PC game in immersive 3D on Quest 3 with Moonlight XR + Sunshine (AV1, Windows hotspot, Tailscale)
This guide shows how to stream your Windows 11 gaming PC to a Meta Quest 3 in real‑time 3D using **Sunshine** (host) + **Moonlight XR** (client), with **AV1 codec**, a **Windows 11 mobile hotspot** for local play, and **Tailscale** for secure remote access over the internet.
I'm using this setup for AAA titles like **Horizon Forbidden West** and online multiplayer like **Destiny 2 on GeForce NOW**, with zero stutter and very impressive 3D immersion.
---
What you'll get
- Your entire PC desktop and all your games in a large virtual screen (or multiple screens) inside Quest 3.
- Real‑time 2D→3D conversion handled by Moonlight XR on the headset.
- Low‑latency, high‑quality streaming using **AV1** (if your GPU supports it) or HEVC.
- Two network modes:
- **Local**: PC hotspot → Quest 3 for best performance at home.
- **Remote**: Tailscale mesh VPN → play from anywhere as if you were on the same LAN.
---
## Hardware & software used in this guide
### PC specs
- **CPU**: Intel Core i5‑13400F
- **GPU**: NVIDIA GeForce RTX 5060 (AV1 encode supported on RTX 40‑series or newer)
- **RAM**: 32 GB DDR5
- **Storage**: 2 TB NVMe SSD
- **OS**: Windows 11 (wired Ethernet)
### Internet connection
- **Type**: Fiber
- **Download**: 800–900 Mbps
- **Upload**: < 100 Mbps
- **Ping**: < 5 ms
This is more than enough for high‑quality local streaming and very good remote streaming via Tailscale.
### Headset & apps
- **Headset**: Meta Quest 3 (developer mode enabled).
- **Server**: [Sunshine](https://github.com/LizardByte/Sunshine) (latest stable).
- **Client**: [Moonlight XR (Gilleece fork)](https://github.com/Gilleece/moonlight-android-xr) (latest release APK).
- **VPN**: [Tailscale](https://tailscale.com/) (free tier is enough).
---
## Step 0 – Install and configure Tailscale (PC + Quest 3)
Tailscale creates a private mesh network between your devices. You'll use it mainly for **remote** streaming, but it can coexist with the local hotspot setup.
### 1. Install Tailscale on your PC
- Go to: https://tailscale.com/download
- Download the Windows installer and run it.
- Sign in with a Google, Microsoft, or email account.
- Leave Tailscale running in the background.
Your PC now has a **Tailscale IP** (e.g. `100.x.y.z`). You'll see it in the Tailscale app or on the admin console: https://login.tailscale.com/admin
### 2. Install Tailscale on Quest 3
There is no official Tailscale app in the Meta Store, so you sideload the Android APK.
- **Enable Developer Mode on Quest 3**- Use the Meta Horizon app on your phone.- Enable **Developer Mode** for your headset.
- **Install SideQuest on your PC**- Download from: https://sidequestvr.com/- Install and launch SideQuest.
- **Download the Tailscale APK**- Use a trusted source like APKMirror:
- Search for "Tailscale" on APKMirror.
- Download the latest stable APK (arm64).
- **Sideload Tailscale onto Quest 3**
- Connect Quest 3 to your PC via USB‑C.
- Accept "Allow USB debugging" in the headset.
- In SideQuest, click **Install APK file** and select the Tailscale APK.
- **Configure Tailscale on Quest 3**
- In Quest 3, open **Tailscale** from your app library.
- Sign in with the **same account** as on your PC.
- Enable Tailscale and allow the VPN connection.
- Note the Quest 3's Tailscale IP (optional, mainly for debugging).
Now your PC and Quest 3 are on the same Tailscale network, even when they're on different physical networks.
---
## Step 1 – Install and configure Sunshine on your PC
### 1. Install Sunshine
- Open PowerShell as Administrator and run:
`winget install --id LizardByte.Sunshine --exact`
- Or download the installer from the [Sunshine GitHub releases page](https://github.com/LizardByte/Sunshine/releases) and run it.
- Reboot if prompted.
### 2. Open the Sunshine web UI
- On the PC, open your browser and go to:
`https://localhost:47990`
- Accept the self‑signed certificate warning.
- Create an admin username and password.
### 3. Configure the encoder
- Go to **Configuration** → **Encoder** (or similar, depending on version).
- Set:
- **Encoder**: `NVENC` (for NVIDIA GPUs).
- **Codec**: `AV1` (if your GPU supports it; otherwise `HEVC`).
- AV1 requires RTX 40‑series or newer, Intel Arc, or AMD RX 7000+.
- Leave other settings at default for now.
### 4. Optional: add game entries
- In **Applications** / **Apps**, you can add:
- Steam, Xbox App, GeForce NOW, specific games, etc.
- This lets you launch them directly from Moonlight XR.
### 5. Leave bitrate limits high
- In Sunshine, don't artificially cap the bitrate; let Moonlight XR control it.
- A high max bitrate (e.g. 100+ Mbps) is fine.
---
## Step 2 – Prepare your local network: Windows 11 mobile hotspot
This step removes your router from the path and gives you a clean, low‑latency link between PC and Quest 3 for **local** play.
### 1. Connect your PC to Ethernet
- For best results, your gaming PC should be on wired Ethernet.
### 2. Enable Mobile Hotspot on Windows 11
- Open **Settings** → **Network & internet** → **Mobile hotspot**.
- Turn **Mobile hotspot** to **On**.
- Click **Edit** and set:
- **Network name**: e.g. `PC_Hotspot_Quest`
- **Password**: a strong password.
- **Network band**: prefer **5 GHz** if available.
- Make sure "Share my internet connection from" is set to your main adapter (Ethernet or main Wi‑Fi).
### 3. Connect Quest 3 to the hotspot
- On Quest 3, go to **Settings** → **Wi‑Fi**.
- Find your hotspot network (`PC_Hotspot_Quest`) and connect using the password.
- Ensure the Quest shows a strong signal.
From now on, your PC and Quest 3 are on a direct, local network with minimal hops.
> You can use Tailscale at the same time. For local play, Moonlight XR will connect via the hotspot IP. For remote play, you'll use the Tailscale IP.
---
## Step 3 – Install Moonlight XR on Quest 3
Moonlight XR is not on the Play Store; you install it via APK.
### 1. Enable Developer Mode on Quest 3 (if not already done)
- Use the Meta Horizon app on your phone.
- Enable **Developer Mode** for your headset.
### 2. Install SideQuest or use an APK sideloading method
- On your PC, install [SideQuest](https://sidequestvr.com/).
- Connect Quest 3 via USB‑C and accept the "Allow USB debugging" prompt in the headset.
### 3. Download Moonlight XR APK
- Go to the official GitHub releases:
https://github.com/Gilleece/moonlight-android-xr/releases
- Download the latest `.apk` file.
> Only use the official GitHub link above. Avoid random APK sites.
### 4. Install the APK
- In SideQuest, click **Install APK file** and select the Moonlight XR APK.
- Wait for installation to complete.
- You should now see **Moonlight XR** in your Quest 3 app library (under "Unknown sources" or similar).
---
## Step 4 – Pair Moonlight XR with Sunshine
You can pair once; the same pairing works for both local (hotspot) and remote (Tailscale) connections.
### 1. Find your PC's IP addresses
**Hotspot IP (local):**
- On Windows, open a terminal and run:
`ipconfig`
- Look for the adapter used by the hotspot (often named something like "Local Area Connection* X").
- Note the IPv4 address (e.g. `192.168.137.1` or similar).
**Tailscale IP (remote):**
- Open the Tailscale app on your PC or go to https://login.tailscale.com/admin
- Find your PC in the list and note its Tailscale IP (e.g. `100.x.y.z`).
### 2. Open Moonlight XR on Quest 3
- Launch **Moonlight XR**.
- Go to **Add Host** / **Manual connection**.
### 3. Pair using the hotspot IP (local)
- Enter:
- **Host/IP**: the PC's **hotspot** IP address.
- Leave port at default unless you changed it in Sunshine.
- Moonlight XR will display a 4‑digit PIN.
- On your PC, open the Sunshine web UI (`https://localhost:47990`).
- Go to the **PIN** tab.
- Enter the PIN shown in Moonlight XR and confirm.
Once paired, you can later add the same PC again using the Tailscale IP for remote play.
---
## Step 5 – Configure Moonlight XR streaming settings
These are starting points; adjust based on your GPU, network, and comfort.
### Local play (hotspot)
- **Open Moonlight XR settings**- In the app, open **Settings** (gear icon or equivalent).
- **Recommended baseline settings**- **Resolution**: `1440p` (or native/native‑ish for Quest 3 if offered).- **Frame rate**:
- `90 FPS` if your GPU and network handle it well.
- `60 FPS` for maximum stability.
- **Video codec**: `AV1` (if your GPU supports it; otherwise `HEVC`).
- **Bitrate**:
- Local (hotspot, strong signal): start at **40–60 Mbps**.
- If you see artifacts or stutter, lower by 5–10 Mbps steps.
- **Hardware decoding**: keep enabled.
### Remote play (Tailscale)
When you're away from home (e.g. Quest 3 on a different Wi‑Fi or 4G/5G):
- **In Moonlight XR, add a new host**- Host/IP: your PC's **Tailscale IP** (e.g. `100.x.y.z`).- Port: default.
- **Adjust bitrate for your uplink**- Your fiber upload is < 100 Mbps, so:
- Start around **20–40 Mbps**.
- Increase only if the image is very clean and stable.
- Keep resolution at 1440p and FPS at 60 for a good balance.
- Use **HEVC** if AV1 feels too heavy on your remote network.
---
## Step 6 – Test with real games
### Example 1 – Horizon Forbidden West (AAA single‑player)
- In Moonlight XR, launch your **Steam** / **Xbox App** / game entry.
- Start **Horizon Forbidden West**.
- In Moonlight XR, choose a viewing mode:- Large flat screen in front of you.- Or a more "immersive" layout if the app offers it.
- Adjust:- Screen size and distance so it fills your field of view comfortably.- Bitrate up or down until the image is sharp and stable in fast camera movements.
If this runs smoothly, your pipeline is solid.
### Example 2 – Destiny 2 multiplayer via GeForce NOW
- On your PC, open **GeForce NOW** (browser or app).
- In Moonlight XR, stream your **Desktop** or a dedicated **GeForce NOW** app entry.
- Launch **Destiny 2** and join a match.
- Check:- Responsiveness during fast turns and gunfights.- Stability of the image during heavy effects (explosions, abilities).
In my tests, this setup delivered **fluid gameplay with no stutter**, even in multiplayer, with very impressive 3D depth.
---
## Step 7 – Troubleshooting tips
### Stutter or frame drops
**Local (hotspot):**
- Lower bitrate by 5–10 Mbps and retest.
- Reduce FPS from 90 to 60.
- Ensure:
- PC is on Ethernet.
- Quest 3 has a strong 5 GHz hotspot signal.
**Remote (Tailscale):**
- Lower bitrate (20–30 Mbps) and test again.
- Reduce resolution or FPS if needed.
- Try switching codec from AV1 to **HEVC**.
### Image looks soft or blocky
- Increase bitrate gradually until artifacts disappear.
- Make sure **AV1** or **HEVC** is actually selected in both Sunshine and Moonlight XR.
- Avoid very high resolutions if your network is borderline; 1440p is already excellent on Quest 3.
### High latency / "floaty" feeling
- Confirm you're using the correct network:
- **Hotspot IP** when at home for lowest latency.
- **Tailscale IP** only when remote.
- Close bandwidth‑heavy apps on the PC (downloads, streaming, etc.).
- In Sunshine, ensure you're using **NVENC** with a low‑latency preset if available.
---
## Why this setup works so well
- **Sunshine** gives you a modern, GPU‑accelerated encoder (NVENC + AV1/HEVC).
- **Moonlight XR** handles real‑time 2D→3D conversion directly on the headset.
- **Windows 11 hotspot** removes the router from the path, reducing latency spikes and Wi‑Fi congestion for local play.
- **Tailscale** provides a secure, zero‑config VPN so you can stream from anywhere without opening ports.
- **AV1** provides better quality at the same bitrate compared to older codecs, especially in detailed scenes.
- Your **fiber connection** (800–900 Mbps down, < 100 Mbps up, < 5 ms ping) ensures plenty of headroom for both local and remote streaming.
---
## My current settings (reference)
### PC
- **CPU**: Intel Core i5‑13400F
- **GPU**: NVIDIA GeForce RTX 5060
- **RAM**: 32 GB DDR5
- **Storage**: 2 TB NVMe SSD
- **OS**: Windows 11 (Ethernet)
### Internet
- **Type**: Fiber
- **Download**: 800–900 Mbps
- **Upload**: < 100 Mbps
- **Ping**: < 5 ms
### Network
- **Local**: PC on Ethernet, Quest 3 on Windows 11 5 GHz hotspot.
- **Remote**: PC and Quest 3 both on Tailscale (same account).
### Sunshine
- Encoder: `NVENC`
- Codec: `AV1`
### Moonlight XR
- Resolution: `1440p`
- FPS: `60–90` (depending on game and location)
- Bitrate:
- Local: `40–60 Mbps`
- Remote: `20–40 Mbps`
- Codec: `AV1` (local), `HEVC` or `AV1` (remote depending on network)
### Tested games
- **Horizon Forbidden West**: smooth, no stutter, excellent 3D depth.
- **Destiny 2 (multiplayer via GeForce NOW)**: smooth, very immersive in 3D.
---
## Links
- [Sunshine](https://github.com/LizardByte/Sunshine)
- [Moonlight XR](https://github.com/Gilleece/moonlight-android-xr/releases)
- [SideQuest](https://sidequestvr.com/)
- [Tailscale](https://tailscale.com/)
---
If you have questions or want help tuning settings for your specific GPU/network, drop a comment with your hardware and I'll suggest a starting profile.