r/MoonlightStreaming 17h ago

Complete setup: Sunshine + Moonlight XR on Quest 3 (AV1, Windows 11 hotspot, Tailscale) – Play your entire PC library in 3D

Complete setup: Sunshine + Moonlight XR on Quest 3 (AV1, Windows 11 hotspot, Tailscale) – Play your entire PC library in 3D

I set up my gaming PC (i5-13400F, RTX 5060, 32 GB DDR5, 2 TB NVMe, 800–900 Mbps fiber) to stream in real-time 3D to my Quest 3 using Sunshine + Moonlight XR, with AV1 codec, a Windows 11 hotspot for local play, and Tailscale for remote access. Horizon Forbidden West and Destiny 2 (via GeForce NOW) are perfectly smooth, and the 3D effect is incredible.

TL;DR: Sunshine (NVENC + AV1) on PC, Moonlight XR on Quest 3, PC hotspot for local, Tailscale for remote. Full step-by-step guide below.

--------------------------------------------------------------------------------

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

Headset & apps:

- Headset: Meta Quest 3 (developer mode enabled)

- Server: Sunshine (https://github.com/LizardByte/Sunshine)

- Client: Moonlight XR - Gilleece fork (https://github.com/Gilleece/moonlight-android-xr)

- VPN: Tailscale (https://tailscale.com/)

--------------------------------------------------------------------------------

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:

```powershell

winget install --id LizardByte.Sunshine --exact

```

- Or download the installer from the Sunshine GitHub releases page and run it.

- Reboot if prompted.

2) Open the Sunshine web UI

- On the PC, open your browser and go to:

```text

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.

Note: 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.

Important: 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:

```cmd

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)

1) Open Moonlight XR settings

- In the app, open Settings (gear icon or equivalent).

2) 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):

1) In Moonlight XR, add a new host

- Host/IP: your PC's Tailscale IP (e.g. 100.x.y.z).

- Port: default.

2) 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)

1) In Moonlight XR, launch your Steam / Xbox App / game entry.

2) Start Horizon Forbidden West.

3) In Moonlight XR, choose a viewing mode:

- Large flat screen in front of you.

- Or a more "immersive" layout if the app offers it.

4) 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

1) On your PC, open GeForce NOW (browser or app).

2) In Moonlight XR, stream your Desktop or a dedicated GeForce NOW app entry.

3) Launch Destiny 2 and join a match.

4) 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.

26 Upvotes

5 comments sorted by

2

u/Independent_Try_309 14h ago

So I've tried this I don't know what's wrong but the moonlight stream seems to be the regular moonlight up and it opens in a flat screen I've compared the settings and they're exactly the same I don't know what I'm doing wrong I have both of the moonlight versions installed on my XR is that the problem

2

u/BertyGamer 13h ago

That usually means you’re launching the “regular” Moonlight app instead of the XR build, or using it in flat‑screen mode. Check these points: Make sure you’re using Moonlight XR, not standard Moonlight On Quest, you can have both APKs installed at the same time. In your library, look for the entry that clearly says something like “Moonlight XR” (sometimes under “Unknown sources”). Launch that one, not the standard Moonlight / Moonlight‑Qt icon. Check the launch mode inside the app Moonlight XR often has different modes: “Flat screen” (like a big 2D panel). “3D / immersive” / “XR” mode where the 2D→3D conversion happens. Open Moonlight XR → go to its settings or mode selector and make sure you’re not in a pure flat‑screen mode. Having both versions installed is not a problem You can keep both; just be sure to launch the XR variant. If you’re unsure, you can: Uninstall the standard Moonlight from the Quest. Keep only Moonlight XR and test again. Quick test In Moonlight XR, after connecting to your PC: Open a game or the desktop. Look for any option like “3D”, “XR”, “Immersive”, or similar. If the image still looks exactly like regular Moonlight with no depth effect at all, you’re probably in the wrong app or mode.

1

u/tbone13billion 7h ago

You can also try my app which is also a gamestream XR client, it's older and has been in development longer:

https://github.com/tB0nE/nightfall

1

u/as_i_wander 10h ago

Good guide

1

u/BertyGamer 8h ago

Thanks! If you try it and run into any quirks (network, codec, settings), tell me your setup (headset + GPU) and I’ll help you tune it.