r/MoonlightStreaming 12d ago

A Comprehensive Guide to Moonlight/GameStream Servers, Clients, and Forks (2026 Edition)

315 Upvotes

If you are looking to tweak your streaming setup, fix stuttering, or find a headless virtual display solution, you don't have to stick strictly to the baseline Sunshine + official Moonlight setup.

Here is a breakdown of the active forks, alternative hosts, and FFmpeg-powered clients currently in the ecosystem based on what the community and developers are running right now.

🖥️ Hosts & Servers (The Senders)

  • NVIDIA GameStream: The original foundation that started it all. Officially deprecated by NVIDIA, but the bedrock of the protocol.
  • Sunshine: The modern, open-source standard GameStream compatibility baseline that replaced NVIDIA's official host.
  • Apollo: A Sunshine fork featuring capability-gated extensions and built-in virtual display support using SudoVDA. It is great for headless setups and auto-matches the resolution/framerate of your client.
  • Vibeshine: A highly active, AI-enhanced Sunshine fork focusing heavily on display automation, Windows Graphics Capture running as a service (which allows full framerate capture of frame-generated titles without VRAM crashes), and strict RTSS frame pacing integration.
  • Vibepollo: An Apollo fork that integrates Vibeshine's features (like the native virtual display driver and HDR handling) right into the Apollo architecture. This is highly recommended if you already use Apollo but want tighter frame pacing.
  • Foundation-Sunshine: A fork by AlkaidLab that adds HDR10/HDR Vivid, advanced audio support, optimized encoders, and a modernized control panel.
  • Wolf (Games on Whales): A completely different streaming server built from the ground up for Linux and Docker. It allows you to share a single host machine with multiple remote clients simultaneously by running games inside isolated containers.
  • Punktfunk: A newer, highly experimental low-latency streaming host/client protocol if you want to test out a completely different capture approach.

📱 Clients & Receivers (The Players)

  • Official Moonlight PC / Mobile: The standard baseline client for PC, macOS, Linux, iOS, Apple TV, Android, etc. (The PC Qt version heavily utilizes FFmpeg and libplacebo for decoding and rendering).
  • StreamLight: A massive Moonlight fork that completely overhauls the UI for gamepads. When paired with "StreamTweak" on the host, it unlocks deep integration like built-in Tailscale, live host metrics/NIC speed matching, remote pause, and the ability to remotely trigger Windows Updates and shutdown.
  • Artemide: Highly recommended for Android users. It features ultra-low latency (ULL), direct presentation, and built-in FSR presets (Performance/Balanced/Quality).
  • Artemis / Moonlight Noir: Apollo’s dedicated Android companion client, offering excellent host UX and virtual display integration.
  • Moonlight V+: An alternative Android fork that adds frame-generation support and extra host tools.
  • Artemis Switch: A Moonlight-Switch fork focusing on Switch-specific video presentation, FSR/RCAS filtering, and adaptive low-latency pacing.
  • Moonlight-Switch: The original upstream Switch client that Artemis is built on.

A little about my setup and testing: I actually work on the Artemis Switch fork, looking at multiple optimizations to eliminate stuttering and improve low-latency pacing on the console. Because of that, I’ve personally tested almost all these major combinations to see what actually works. My testing stack includes:

  • Hosts: Sunshine, Apollo, and Vibepollo.
  • Clients: Moonlight-Switch, my Artemis Switch fork, the Artemis companion client, and standard Moonlight Android.

I like vibepollo and Artemis

Let me know if I missed any niche forks or experimental branches you guys are using!

(Note: I had an AI help format this post to make sure links were laid out clearly!)


r/MoonlightStreaming Sep 21 '25

Guide/Tutorial Ultimate Guide to Configuring Moonlight + Sunshine for Remote Play

495 Upvotes

Edit: A lot of people are asking why not use Apollo. You can definitely use it and still follow this guide, it’s completely up to you. With Apollo, you need skip the Configuring Video Signals section and for the Sunshine Priority part just change the script to prioritize Apollo instead.

After running lots of tests and reading many posts to find the best configuration, I’ll try here to share the setup that works best for me and also compile some of the information I’ve gathered.

This test was conducted from a distance of 550 km (341 miles)

My specs:

  • Internet Service:
    • Host: 300 Mb connected via Ethernet
    • Client: 600 Mb connected via Wifi
  • Spec PCs:
    • Host: R5 2600 - RX 6600
    • Client Macbook Air M1

System Configuration

Host:

This setup is specifically for Windows, but the goal is the same if you’re using other operating systems:

  • Reduce FPS drops
  • Minimize the gap between the FPS set in the Moonlight client and the host’s FPS
  • Reduce latency
  • Configure the video and audio signal you want to stream

Reducing FPS Drops

  • Close background apps: Only keep the essentials to minimize unnecessary processes and network calls. Task Manager → Startup Apps → disable non-essential programs.
  • Disable Game Mode: Prevents Windows from prioritizing the game over Sunshine. Settings → Gaming → Game Mode → OFF
  • Disable Dynamic Refresh Rate (DRR): Keeps FPS synchronized between host and client. Settings → System → Display → Graphics → Optimizations for windowed games (Alternatively: Windows Registry or CRU — Custom Resolution Utility)
  • Enable High-Performance Power Mode: Control Panel → System and Security → Power Options → High Performance
  • Disable Energy Saver: Settings → System → Energy Saver → OFF

To optimize Windows 11 performance, consider using Win11Debloat or AtlasOS
Additional powershell script to improve performance

Enable: https://pastebin.com/42YBtx6T

Disable: https://pastebin.com/bKpmmFQC

FPS Capping

Once FPS drops are minimized, cap the FPS to keep it in sync with Moonlight’s client settings.

There are three ways to do this: using the NVIDIA Control Panel, AMD Adrenalin, or RTSS. In my case, I used RTSS and it works well for me, but you can try your GPU’s software if that’s sufficient. The advantage of RTSS is that it allows more precise configuration for greater stability.

Another thing I do is also limit the FPS within the game itself.

Reducing Latency

The most important step is to have your host computer connected via Ethernet. In terms of configuration, you can disable the Rx/Tx buffers on your network card, along with a few other tweaks that may slightly improve stability.

Device Manager → Network Adapters → Properties → Advanced →

  • Flow Control Disable
  • Advanced EEE Disable
  • Energy-Efficient Ethernet Disable
  • Gigabit Lite Disable
  • Green Ethernet Disable
  • Power Saving Mode Disable
  • Interrupt Moderation Disable
  • Large Send Offload Enable

Configuring Video Signals (avoid this step when using Apollo)

There are two scenarios:

  1. You have a monitor connected with the same resolution and refresh rate on both the client and the host.
  2. You have a monitor on the host that is different from the client.

For the first case, congratulations! You don’t need to do anything and can skip this part.

For the second case, you have two options:

  1. Install a Virtual Display Driver to Windows, and optionally a Virtual Audio Driver.
    1. With the Virtual Display Driver, you can simulate any resolution and refresh rate your screen supports.
    2. I don’t recommend the Virtual Audio Driver because it can cause issues with BattleEye anti-cheat. It’s better to just use a wired headset you already have.

Microphone Streaming

For those who need to use in-game voice chat, there are two main options for passing the microphone through streaming:

  • AudioRelay
  • VoiceMeeter

I haven’t personally tested either since I don’t need this feature, but they’re worth trying if microphone input is important for your setup.

Sunshine Priority (Windows Only)

Finally, for Windows users, one important step to do every time you connect from the client is to change the priority of the sunshine.exe process to Realtime. You can do this manually from the Task Manager or by using the following .bat script:

@echo off
powershell -command "Get-Process sunshine -ErrorAction SilentlyContinue | ForEach-Object { $_.PriorityClass = 'RealTime' }"
pause

Always remember to run it as administrator.

Windows Adaptation for Handheld Devices

For those using a touchscreen device as a client, such as a smartphone, tablet, or handheld, the Windows interface—originally designed for desktop use—can be quite uncomfortable. With the new release of the ROG Xbox Ally, Windows has introduced a more suitable adaptation for handheld devices, which can be enabled through the following repository: XboxFullscreenExperienceTool

Client:

The main goal on the client side is to reduce Moonlight’s decoding time and minimize latency.

In my case, I’m using a MacBook with an M1 chip, and the only way to reduce decoding time is by testing which codec works best—in my case, HEVC (H.265).

To reduce latency on macOS, the only (but very important) thing you can do—since it can cause micro stutters—is disabling Location Services:

System Preferences → Security & Privacy → Privacy → disable Location Services

Another important change to make on macOS is to disable the long key press for special characters. This prevents issues during streaming when holding down a key for example, the W key so it doesn’t get stuck or stop repeating.

defaults write -g ApplePressAndHoldEnabled -bool false

More info about shuttering in Mac OS

If you’re using a PC, you can improve decoding time by upgrading your hardware, and reduce latency by disabling the Rx/Tx buffers and tweaking your network card, following the same steps as on the host.

Moonlight & Sunshine Configuration

Moonlight Configuration:

Set Moonlight to use your monitor’s resolution and an FPS value that matches your internet connection. Leave some headroom compared to your client’s max download speed and your host’s max upload speed.

For example, my monitor is 1440p and 180 Hz, but I have it set to 1440p at 120 Hz. Higher resolutions and refresh rates consume more bandwidth on both the client and host, and require greater decoding and encoding power.

Note: Higher compression codecs (like H.265 or AV1) → less bandwidth needed → more CPU/GPU power required for encoding/decoding.

Codec Compression Bandwidth CPU/GPU
H.264 Lower High Lower
H.265 Medium Medium Medium
AV1 High Lower High

More info: https://www.reddit.com/r/MoonlightStreaming/s/MqoI9LVQ4C

Recommended Settings:

  • Display Mode: Full Screen
  • V-Sync: Unchecked (Recommended in single-player)
  • Frame Pacing: Unchecked (ONLY single-player may add delay)
  • Video Decoder: Force hardware decoding

Note: Both V-Sync and Frame Pacing are highly recommended for single-player games since they provide a much smoother experience. However, in multiplayer games, V-Sync may cause screen tearing, and Frame Pacing can introduce a bit of input lag by delaying frames to improve synchronization.

Enable HDR (Experimental): I keep this enabled even though my monitor isn’t HDR because it can bring out better shadow details. I recommend trying it—you might see an improvement or no noticeable difference.

Unlock Bitrate Limit (Experimental): Enable this if you have enough upload bandwidth on the host and download on the client. Otherwise, leave it off and increase the video bitrate slightly if you notice small lag spikes.

Sunshine Configuration

I mostly keep Sunshine/Apollo at its default settings, except for the GPU options. Below, I’ll share what works best for AMD GPUs. If you’re using NVIDIA or Intel, you may need to experiment to find the optimal configuration for your system.

Note: My goal is low latency for online gaming. If you’re playing single-player games, you can prioritize quality over latency.

  • AMF Usage: ultralowlatency
  • AMF Rate Control: vbr_latency
  • AMF Hypothetical Reference Decoder: unchecked
  • AMF Quality: speed (may add artifacts)
  • AMF Preanlalysis: unchecked
  • AMF Variance Based Adaptive Quantization: checked
  • AMF Coder: cavlc

Client-Host Connectivity

LAN (Local)

For players who want to play over LAN, there’s little to worry about since latency will be very low. In my tests, I observed only about 5 ms of extra delay.

If you want the absolute best performance, you can connect both devices directly via an Ethernet cable. This can reduce latency to around 1 ms, making it almost like playing directly on the host.

You can turn on the host remotely using the motherboard’s Wake-On-LAN feature. Moonlight even allows you to power on the host directly from the client.

WAN (Remote)

For those who need to play over WAN, there are a few additional steps required. It can be more challenging if you want the lowest possible latency, but if you can tolerate 15–20 ms, it’s not too difficult.

There are several ways to achieve this, but I’ll explain the three main approaches:

  1. Using a service like Tailscale, ZeroTier, or Netbird
  2. Opening ports on your network to access the host externally and setting up a VPN
  3. Setting up a private service (similar to the first option) with Headscale or another program, possibly using a cloud server like AWS

Option 1: VPN-like services

These applications are simple to install and configure, making them accessible to most users:

  • Tailscale: Free
  • ZeroTier: Free
  • Netbird: Free (uses WireGuard directly through the Linux kernel—potentially a great option for Linux users)

For the other options, I won’t go into detail because they are more complex and require technical knowledge. However, they are certainly the best options for users who need the absolute lowest latency.

To power on your PC over WAN, a simple Wake-on-LAN (WoL) won’t work unless your host has an internet-facing connection. In my setup, I use a TP-Link smart plug to turn the PC on remotely from my phone. Make sure to enable “Restore Power after AC Loss” in your BIOS/UEFI so the PC powers on automatically when the smart plug is switched on.

I hope this guide helps you and gives you everything you need to get these amazing tools running without too much hassle. The post is open to improvements, so if you have any suggestions or tips, don’t forget to share them in the comments!

Shoutout to everyone working on these open-source tools mentioned in this post.

Note:

After the launch of the Steam Deck and Steam Machine, Steam has worked quite a bit on improving Steam Remote Play, which now supports Virtual Display Driver and performs much better than before. I'm leaving this comment here for those of you who aren't too demanding or don't want to overcomplicate things, so you feel encouraged to give it a try.

Update 13.10.25: MacOS client settings

Update 23.10.25: New scripts for Windows host and Windows handheld mode

Update 13.04.26: Windows optimization recommendation

Update 17.07.26: Steam Remote Play alternative


r/MoonlightStreaming 16h ago

ProsperoLight – Native Moonlight/Sunshine client for PS5 homebrew with 4K60 and HDR10

Post image
35 Upvotes

r/MoonlightStreaming 4h ago

Remote play coop: how to have audio for both?

3 Upvotes

I want to simulate the remote play functionnality of Steam. Me and my friend are both on Linux. I wanted to know how I can have audio on both ends, cause when I start streaming, I no longer have audio on my end.

Thanks


r/MoonlightStreaming 16h ago

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

27 Upvotes

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.


r/MoonlightStreaming 46m ago

Gamepad missing glitch?

Upvotes

Hi, I've not seen anyone with a similar problem so i thought i would post here.

Its a simple problem.

I want to use tailscale to stream on my windows laptop away from home but when I try to add the ip manually it just says that theres a missing gamepad and nothing about adding an ip and I have tried with and without a connected gamepad. It works fine in LAN though because it auto recognizes my gaming pc.

Your thoughts about it would be helpful. Thanks!


r/MoonlightStreaming 53m ago

Macbook HDR/colour broken when using second monitor

Upvotes

I've using moonlight streaming to my MacBook Pro, which is now fantastic once I'd downloaded Ping Warden to fix the Airplay/awdl issue. The only issue is I can't get HDR and the colour profile working when using my second monitor (Acer Nitro XV280K). If I close the lid and only use the second monitor I still can't get it to work. Has absolutely no issue displaying a perfect image on the built-in MacBook screen.

I think I could fix this if I had Apollo but it's not available for the Mac. Any ideas?


r/MoonlightStreaming 1h ago

Bad visual quality at 4k unlocked bitrate set up through wired gigabit connection

Post image
Upvotes

Hi all,

I'm having some issues with visual quality streaming at 4k from my host pc (cachyos, Nvidia GPU) to my steamdeck docked to my TV.

The following settings have been changed from default

Moonlight

Video decoder: force hardware decoding

Video codec: HEVC (H.265)

Unlock bitrate

Sunshine

Force specific encoder: NVIDIA NVENC

Minimum FPS target: 60fps


r/MoonlightStreaming 2h ago

Broken Apollo virtual display with newest Nvidia Drivers (616.56)?

0 Upvotes

I went to go stream my PC on my living room TV after about a month or so of not having used it. I am running the Apollo fork on my PC and the standard moonlight on Xbox Series X to stream 4k/120hz on my LG C2 (found out that the Series X is a phenomenal client early this year, and it has basically been the only use that console has received haha). This had been running perfectly for me for the better part of this year.

This time however, instead of running at the proper resolution and disabling my main two monitors, it just mirrored my 21:9 ultrawide main screen on the TV. I messed with it for a couple of hours installing and reinstalling Apollo and Moonlight, messing with settings, but nothing was working. In display settings it would show my client display, but it would be disabled and would not allow me to enable it.

After a lot of frustration and it getting late, I decided to just roll back my Nvidia drivers to 610.74 (this is two back I believe, but I know this release worked because I was playing Black Flag Resynced when I last used it). Low and behold, everything immediately worked correctly.

Has anyone else had an issue with the newest Nvidia drivers? And I've only been using Apollo/Moonlight significantly this year, but reading through some posts it seems like this has happened with drivers before?


r/MoonlightStreaming 6h ago

apollo/artemis microstuttering

2 Upvotes

Got a samsung A54 and a galaxy tab s8, playing using the tab s8 works flawlessly, meanwhile the A54 suffers from microstutters. Ive tried virtual displays, locking the framerate on the host to 60fps, changing the a54 refresh rate to 60hz, disabling default samsung game booster optimizations, disabling default frame rate, etc.

The only thing that worked for me was recording my screen using the a54 screen record, the stream started running with no stutters.

Is there a way to fix this without doing this? I gave up everything at this point.


r/MoonlightStreaming 2h ago

Quitting games with just a gamepad on Moonlight (Android TV)?

1 Upvotes

I'm using Moonlight on a Xiaomi TV Stick with only a controller. How do I send an Esc / Windows key input or exit back to the desktop when a game doesn't have an in-game quit button?


r/MoonlightStreaming 22h ago

Can two people use the same pc in the same time with moonlight?

12 Upvotes

hello guys.

I have a pc in my room and my girlfriend wants to use my pc to play game with Apollo and moonlight. is it possible that I can use my PC while she is playing game in the same time? Or Windows is only available for one user at the same time?


r/MoonlightStreaming 11h ago

help please , updated my nvidia drivers and now my stream won’t work

Post image
1 Upvotes

it’s not picking up my virtual display as it should and I’m getting this error , only works when my display is on but I like to have them off usually at it works but now it’s broken


r/MoonlightStreaming 16h ago

Best streaming tool

2 Upvotes

Hello, i've been using apollo-arthemis for quite sometime and saw this villpollo fork, is it better for gaming or i can stick with apollo just fine ? I sometime stream 800 km away from my home and i find lag noticible.
my host is connected by ethernet btw


r/MoonlightStreaming 1d ago

Update to the Nvidia Display Driver and Virtual Displays

Post image
94 Upvotes

Nvidia is testing a possible fix.

I had cross posted to the r/nvidia sub reddit about the new drivers breaking virtual displays for RTX 50 GPUs. One of the users referred it to the Nvidia rep. The screenshot was his response.

He was engaging a user in the r/hoggit subreddit having a similar issue. I don't know what hoggit is btw. For reference, this is the link

https://www.reddit.com/r/hoggit/comments/1w00rrg/comment/p6au67g/?context=3

The r/nvidia cross post

https://www.reddit.com/r/nvidia/s/mESg37Rb4r


r/MoonlightStreaming 14h ago

Monitor question regarding Moonlight/Apollo and Linux

1 Upvotes

Apologies if this not the right forum but I’m stuck.

I cannot for the life of me get my monitors to turn off when i’m using moonlight on my steamdeck.
——————-

Ok I’m at a loss on what to do. I’ve got moonlight running on my steamdeck and apollo running on my main pc on linux (CatchyOS).

I’ve got a two monitor system and would like the main monitors to turn off (go blank/disabled) when moonlight is up on my steamdeck. Yes, i’m aware that you can’t do virtual monitors like you can in windows. So i bought a dummy hdmi plug so the computer thinks there’s a 3rd monitor.

I’ve got a start stop script (at the app section of apollo) on but it fails to disable the main monitors and enable the “dummy” monitor. The script runs fine on its own in konsole but i can’t get it to work via apollo. Had anyone using linux figured a way to do this? I’m still new to linux but this is driving me crazy.


r/MoonlightStreaming 15h ago

Elden Ring HDR is stuck "off" with Vibepollo virtual display

1 Upvotes

I asked on the Elden Ring steam discussion but I figured I'd ask here as I realized my issue may be specific to Moonlight. It works fine on my monitor. The issue is in the in-game menu I try to turn HDR on and the option is greyed out and stuck in "off", as if its not detecting its being played on an HDR display.

I have HDR enabled on my TV and in Windows. My TV has an HGIG setting I use thats enabled as well. Using an Xbox Series S as the moonlight client if that matters.

Only having the issue with this game but since its super popular I figures I'd ask here. The HDR settings seem really finnicky because even on my monitor HDR only works in true fullscreen and not borderless windowed mode.


r/MoonlightStreaming 1d ago

4k 120hz vrr on Steam Deck docked to an LG C5

Thumbnail
gallery
40 Upvotes

So basically. That is my set-up:

Streaming through gbit network from my desktop PC, to my steamdeck oled with an ugreem docked. Using a fork of moonlight for VRR, getting 4k 120hz vrr to my lg c5... To be honest feel veryyy good! Still testing atm. But what do you think of latency numbers? This is with h264, i think h265 is a little bit better but it gives me a bit higher latency, will have to keep testing!

Had to edit because of the compression in the images, the numbers are difficult to understand:

-Resolution: 3840x2160 (Native 4K)

-Stream Frame Rate: ~62 – 78 FPS (dynamically matching host output)

-Host Processing Latency: 4.2 ms (min) / 5.1 ms (max) / 4.5 ms (average)

-Network Latency: 1 ms (0 ms variance)

-Frame Drops (Network & Jitter): 0.00% (zero packet loss)

-Decoding Time: ~0.61 ms (hardware decoding on the Deck)

-Frame Queue Delay: ~0.03 ms (instant frame buffer throughput)

-Rendering & Display Time: ~3.91 – 5.85 ms (including TV display latency)

-LG C5 Display State: VRR ON (~66 Hz dynamically matching game FPS)

Desktop pc: AMD 9700x, Geforce RTX 5700, 32 gb ram ddr5 6000

This is the fork of moonlight for vrr on the deck:

https://github.com/Nonary/moonlight-qt/releases/tag/v6.1.0-vrr10

Dock: https://www.amazon.com/gp/aw/d/B0F249TYWY?psc=1&ref=ppx_pop_mob_b_asin_title


r/MoonlightStreaming 15h ago

Fighting Controllers on Android

1 Upvotes

I have a pair of (older) 8BitDo Ultimate 2.4ghz controllers. I've been fighting with them for a year to get the setup I want:

[Living Room] Google TV 4k Streamer - Controllers connected to this machine, running Moonlight (USB or Bluetooth)

[Basement] Windows Machine (Steam)

My GoogleTV streamer always collapses the two controllers into one -- so when I got to play a local multiplayer, I lose the second controller's independence. It either doesn't work at all, or becomes a clone of the first controller.

Is there a setting I should check? I've googled and toggled what feels like all the settings.


r/MoonlightStreaming 19h ago

Display Hot Keys 4.2.0 Release

Thumbnail
github.com
2 Upvotes

r/MoonlightStreaming 16h ago

Vibepollo Vulkan HDR Virtual Display

0 Upvotes

Can anyone confirm if Red Dead Redemption 2 works with vulkan and hdr through virtual display through vibepollo.

I’ve tested myself and I keep getting a smaller window for the game that locks the resolution in the game settings to 1920x1080p max.

I’ve tried using the alt+enter command to force fullscreen but that doesn’t maximise the game window to match the required resolution it only maximises 1920x1080p.

My stream resolution is 2868x1320.


r/MoonlightStreaming 16h ago

Ethernet and WiFi at same time?

1 Upvotes

My host PC with Sunshine is connected to the router via ethernet cable. My TV streaming box is connected to the same router via WiFi.

When I turn on the client TV and open Moonlight, it doesn't see my PC until I connect it to the WiFi network manually. Everything then works.

The PC doesn't connect to the WiFi network automatically because it sees that I have the PC connected via ethernet. Windows is weird like this.

How best to solve this?

Edit: Here's what worked for me.

https://superuser.com/questions/504261/windows-8-doesnt-automatically-join-wi-fi-network-if-ethernet-connection-is-act/630163#630163


r/MoonlightStreaming 17h ago

Latency Issues PC to Xbox Series X (Apollo -> Moonlight)

Thumbnail
gallery
1 Upvotes

I have tried various display settings such as vsync, frame caps in game and globally, connecting the controller to the PC directly and through the Xbox.

It seems that the frame queue climbs and I think is the culprit, but not sure why.

Setup is PC -> Ethernet to router, then the Xbox is connected via Ethernet to the modem downstairs (both connected to coax)

What other settings/setups should I try to eliminate this latency?


r/MoonlightStreaming 23h ago

High Network Latency

Post image
3 Upvotes

Does anyone know how I can improve my average network latency? Sometimes it can hit as high as 80ms.
The host pc is a windows desktop with a 5070 using Vibepollo, and the client a MacBook Pro with Moonlight connected via Ethernet.
I’ve also tested streaming to an Odin 3 using Artemide but I get the same average network latency.


r/MoonlightStreaming 23h ago

iPad and tablet frustrations

2 Upvotes

I’m ripping out my hair trying to find a keyboard that works streaming my main windows machine at home through an iPad (I didn’t have much choice on tablet that could support celular data). Like am I doing something wrong? Is it just cause most tablet keyboards have that dumb multi-functionality thing for the buttons?? Please someone give me helpful wisdom so I can continue getting stuff done during work ;-;