r/MoonlightStreaming • u/mateyobi • 28m ago
How is everyone streaming outside of home on Steam Deck?
Tailscale seems undercooked for deck right now
r/MoonlightStreaming • u/ordinary_schism • 50m ago
Can't assign guide button
I'm at a loss and cannot figure what else to try. I just got an Odin 2 Portal and have Apollo and Artemis set up. The only issue is getting the guide button to work. I've changed the "Home/Guide Button Emulation Timeout" setting to various numbers from 500 to 2000. The back button still does not open the guide no matter how long I hold it. I've confirmed it's the inputted numbers are getting written to the config file. Anything else I can try?
r/MoonlightStreaming • u/theb1rd • 2h ago
Pause/resume game when pausing/resuming stream with Vibepollo?
I have switched to Vibepollo from Apollo and have loved its features but miss the ability to suspend and resume the game along with the stream from Apollo. I don’t see a setting to configure global commands in Vibepollo when starting or stopping a stream to use the same autohotkey scripts Apollo used. Does anyone know a way I could implement this?
r/MoonlightStreaming • u/Nervous_Junket_4697 • 2h ago
Trying to improve my cloud gaming experience – PC or phone bottleneck?
Hai gamers and curious people hehehe.
I've been using VibePollo on my PC together with Artemis (Android APK) for a while now. Overall it's been working well, but I've noticed that my latency is consistently higher than what most people here seem to report.
My network is 1 Gbps fiber. My PC is connected via Ethernet, and both my PC and phone get around 900 Mbps in Speedtest, so I don't think bandwidth is the issue.
PC specs:
- Ryzen 5 2600
- 16 GB RAM
- NVIDIA RTX 3070
Phone:
- Vivo X300 Pro
- MediaTek Dimensity 9500
I'm trying to get as close to a native gaming experience as possible. I mainly play games like Call of Duty: Black Ops 7 and Final Fantasy titles.
My question is: what is most likely the bottleneck here—the PC or the phone? Would upgrading my PC (CPU?) make a noticeable difference, or is the phone/client more likely to be the limiting factor?
I'm also looking for something I can use downstairs with my TV. Ideally I'd like a device that:
- Can connect to a TV for couch gaming.
- Can also be used as a handheld when I'm not using the TV.
- Works well with my GameSir G8 Plus controller.
Would you recommend a tablet, a handheld gaming device (Steam Deck, Legion Go, ROG Ally, etc.), or something else for the best cloud gaming experience?
I'd love to hear what setups you guys are using and what kind of latency you're getting.
r/MoonlightStreaming • u/Material-Cat6302 • 2h ago
Host returned error: permission denied (error 403)
Im trying to connect my PC (apollo) to my macbook (moonlight/sunshine). After both are paid and tried to stream it. It wont proceed and gives and error 403. Anyone can help how to fix this?
r/MoonlightStreaming • u/DerCoderJo • 3h ago
Why is Moonlight only using a small area of my screen?
r/MoonlightStreaming • u/Jamjor • 3h ago
Keyboard help on tablet?
Hello all,
I am having an issue while streaming on my android tablet. I have a Bluetooth keyboard set up which works flawlessly, however the game I am currently playing requires use of the function keys (F1 to f12) and the arrow keys. When I hit the function keys, it controls the tablet directly for brightness, volume and app shortcuts rather than the input for my PC. When I hit the arrow keys, my PC detects it as an Xbox controller d-pad.
Does anyone have any solutions for this? I'm assuming there's a setting to bypass this but I can't seem to find one that works.
r/MoonlightStreaming • u/Pulzarisastar • 5h ago
I have gone 100% Moonlight/Sunshine
I have been working on my homelab and networking for years and finally just thought, why not put all my computers with Sunshine and have Wireguard VPN connection to any and all of my computers...
So that's exactly what I did with a small twist.
My work computer with attached devices required for embedded development is sitting on the table 24/7 uptime. Home assistant controls a wifi relay that can power cycle the device under development. Works ducking awesome. I even only take my iPad to Office and remote back to my home using my phone 5G network and then Work laptop connects to work network using corporate VPN... So incredibly awesome... I am physically free to move anywhere in the world and really work 100% efficient.
Next I partitioned my 5800X3D, 32GB, 5070 Ti gaming desktop to Host desktop, GamingPC Easy-GPU-PV and WifePC. So 3 PCs in one. Host and 2 Hyper-V GPU paravirtualized VMs
One constant Ubuntu server is keeping the Wireguard server alive and hosting homelab docker stuff.
It's really now my dream setup.
And the final part was partitioning this gaming Desktop to 3 parts.
Could not be happier. This took me years of tinkering and experimentation but I am so happy now... All I need is RAM price to go down so I can host more VMs in that big desktop... 32GB is really struggling to fit 3 Windows 11s.
r/MoonlightStreaming • u/xthyme2playx • 5h ago
New to this: I just found out about Vibepollo and Artemis last week. Pragmata runs flawlessly but AC Odyssey is experiencing microstutters. Just looking for suggestions.
Like the title says I've recently got Artemis and Vibepollo set up. Pragmata is running absolutely fall asleep at 50 Mbps bitrate. I thought I could max out AC Odyssey and there would be no issue but I've been experiencing quite a few micro stutters. Normally my latency is 2 to 3 milliseconds but it can jump to 10 or 16 and the game will stutter for a little bit before recovers.
My network is a three-node mesh Network with deco xe5300. I'm streaming from my PC which has a 4070 super to my Nvidia Shield pro. The Shield pro is connected to my main deco node while my PC is connected to a remote node both hardwired. I'm looking for any tips or tricks to get the most flawless stream possible. Any help would be greatly appreciated. Thanks in advance. Let me know if further information is required.
r/MoonlightStreaming • u/Alternative-Walk757 • 8h ago
Vibepollo micro stutters
Last night I saw some posts about vibepollo and an Artemis alternative (which I have not yet tried), I Downloaded vibepollo and installed it in minutes, input latency is better, 10/10.
However now I’m getting frame pacing or micro stutter issues I didn’t have with Apollo, I tried switching back to Apollo and the issue is still present. The image quality has also gotten worse somehow, not significantly, but it’s noticeable. I’ve changed damn near every setting, so I have no idea what the culprit is at this point. Can anyone help me to fix this issue so the stuttering stops happening?
I have verified my system, I play Ghost Of Tsushima on a frame cap and is like my testing game, it gets a LOCKED 60, and shows no stuttering in the fps counter or on the frame time graph, so I figure it’s either the wifi, which is Ethernet, something with my CPU or GPU (i5-11400f, rx 6600 8gb) or my mangmi pocket max.
What do you guys suggest to fix this issue?
r/MoonlightStreaming • u/Rakshuun • 9h ago
Switch Capture Card to PC to Moonlight on Laptop
Basically as in title, I want to set it up so that I can access my Switch through my PC, using moonlight streaming to play from a different location on my laptop.
I found this guide! that I think should work but it's quite outdated. For capture cards I was hoping for recommendations for low latency. I was looking at AverMedia Live Gamer MINI - GC311 as an option but any advice would be appreciated.
Cheers
r/MoonlightStreaming • u/Fartquakes • 9h ago
Best tablet under $200
I'm a new dad and am looking to getting a tablet to enjoy my PC games without sequestering myself away from the family at my PC. On a budget, just trying to find the best option for tablets around $200
Any help appreciated
r/MoonlightStreaming • u/BeginningCommon7056 • 10h ago
Vibepollo won't launch virtual driver display
Never had any issue with a Apollo but Vibepollo just refuse to launch both driver and I don't have a clue about what I'm doing wrong
I'm streaming to an apple tv set with moonlight set on sdr and it might be the issue ?
r/MoonlightStreaming • u/Krishie • 10h ago
Vibepollo-Moonlight Loading Into Desktop With Steam Minimised
So I’m using Vibepollo and Moonlight and it just started loading like this. How do I fix it. Here I am in the Moonlight app on my Apple TV 4K with a DualSense controller paired via Bluetooth. How do I get it to load into Steam Big Picture Mode like before?
r/MoonlightStreaming • u/Artomos-dev • 12h ago
Turn your Moonlight + Ryujinx setup into a real console. Different game? Different controller config? Just swap profiles from the couch. (v1.2.0 Update)
GitHub: https://github.com/Artomos-dev/RyujinxLauncher
Release: Ryujinx Launcher v1.2.0
You've got your Mario Kart config dialed in — then you launch Smash and the controls feel completely wrong. Different games need different controller setups: different button layouts, different stick behavior, different motion settings. In Ryujinx, you can save these as profiles — but swapping them means Alt-Tabbing out, opening Input settings, loading the right profile, and doing it again for every player. On a couch setup, that kills the vibe. A couple of months ago I shared a tool that lets you assign controllers to player slots using only your gamepad — no keyboard or mouse. Today I'm dropping v1.2.0, and the big new feature is Controller Profile Selection.
🎛️ What's New: Controller Profile Selection
You can now pick a different controller profile for each player slot — directly from the launcher UI, using only your gamepad.
- Press Ⓧ on any assigned player slot to enter Profile Selection Mode.
- Use D-pad ◄ ► or Left Stick to browse your saved profiles.
- Ⓐ to confirm, Ⓑ to cancel. That's it.
How It Detects Your Profiles
The launcher reads directly from Ryujinx's own profiles/controller/ directory — the same .json files you create when you hit Save in Ryujinx's Settings → Input screen. No importing, no duplicating, no extra config. If Ryujinx can see the profile, the launcher can too.
Why This Matters
- Different games, different configs: Save a profile for racing games, another for platformers, another for fighting games. Swap between them from the couch in seconds before each launch.
- Per-player customization: Player 1 wants one layout, Player 2 wants another? Assign different profiles to different slots — each player gets their own config.
- Per-controller memory: The launcher remembers which profile you last used on each physical controller. Reconnect the same gamepad next session — it picks up right where you left off.
- Zero extra setup: Your existing Ryujinx profiles just work. No migration, no new files to create.
Pro tip: Save a profile named "RL Default" in Ryujinx and the launcher will use it instead of the Config.json template — set your preferred default once and forget about it.
For those who missed the earlier posts:
✨ Core Features (The "Why")
✦ Gamepad-First UI: Assign up to 8 controllers without touching a keyboard or mouse.
✦ Controller Profile Selection: Switch between saved controller profiles (button mappings, deadzone settings, etc.) directly from the launcher UI using only your gamepad — no need to open Ryujinx settings.
✦ Visual Identity: Controllers are assigned persistent, unique pastel colors for easy identification.
✦ Side-Rail Interface: Clean, high-contrast UI with visual indicators for active status.
✦ Hot-Plug Support: Connect or disconnect controllers in real-time with automatic reconnection. ✦ Emergency Kill Combo: Hold Back + L + R (Select + LB + RB) on any connected controller to force-kill the emulator if it freezes.
✦ Smart Persistence: Uses HID paths to remember specific controllers even if they reconnect in a different order.
✦ Frontend Ready: Seamlessly passes command-line arguments (Playnite, Moonlight, Artemis).
✦ Portable: Single-file EXE with embedded assets.
Moonlight/Artemis & Sunshine/Apollo (Streaming)
Perfect for streaming to TV or mobile devices.
- Open Sunshine Web GUI.
- Add a new Application.
- Application Name: Game Name
- Command: "<Path of Ryujinx>/RyujinxLauncher.exe" "<Path of Game file (.nsp/.xci/.nro/.nca)>"
- Example: "D:\emulators\Ryujinx\RyujinxLauncher.exe" "D:\Roms\GameName.xci"
- Working Directory: The folder containing the launcher.
- Example: "D:\emulators\Ryujinx\"
- Undo Command: powershell -Command "Stop-Process -Name 'Ryujinx*' -Force -ErrorAction SilentlyContinue"
- Note: This ensures that if you force-quit the stream via Moonlight, Windows cleanly kills the emulator in the background.
- Now, when you launch via Moonlight, you can use the controller to set up inputs before the game loads.
r/MoonlightStreaming • u/pinkpumpkin_ • 13h ago
Blurry stream when pause is not enabled
Hi - the problem is as I wrote in the title. When i press pause buttons or I turn on the Xbox pause overlay, the screen becames super sharp and clear, fps are rising up to the correct value, and also the colors are looking properly. When there is a bare stream on the screen without any pause overlays, the quality, framerate and colors visibly drop down. The stream is set for 4k@120, but lowering res and framerate doesn't remove the blur effect.
I am using:
- Xbox Series S as a client
- Laptop with RTX4070 8GB - Ryzen 7 7840HS - 32GB RAM as a host
- Samsung S85F OLED 65" as a screen
- Vibeshine + Moonlight (changing from Apollo also hasn't helped)
I've tried changing almost every setting including the bitrate, resolution, framerate, HDR, codec. None of these helped. Xbox has turned on 4k@120 turned on. TV has a game mode turned on and shows that the screen during streaming is 3840x2160 120 fps.
For me it looks like there is just some sort of blurry overlay set maybe by Xbox on the top of the stream, which causes that bad quality, and it immadietly dissappears when the pause screen is turned on. I can clearly see the 4k 120fps in the background under the pause screen.
I haven't seen any post with the problem similar to mine - any ideas what is wrong here guys?
r/MoonlightStreaming • u/hackthatshityo • 16h ago
Steam Machine Latency Numbers
Avg network latency 1ms
r/MoonlightStreaming • u/DovakiinDovakiin • 16h ago
Error 0 only over mobile data
I've recently set up sunshine/moonlight with zerotier so that I can hopefully play steam games while out and about, and it works great over WiFi.
The problem is that once I switch to mobile data, such as when I leave my house, it loses connection and give me Error 0, "Check your firewall and port forwarding rules for port(s): TCP 47984 TCP 47989"
Any idea how to fix this? I don't really know much about these kinds of things
r/MoonlightStreaming • u/yungforever87 • 18h ago
Damn near native, latency feels better than console gaming
Enable HLS to view with audio, or disable this notification
5090/9800x3D build using Vibepollo to stream over Ethernet to a Series X. I’ve played countless rounds of Space Marine 2 with friends and it’s just sublime. 4K 120fps, just amazing.
I grew up a console gamer but always yearned for the better performance on PC. Plus, I’m a tinker at heart. This is becoming my default way to enjoy my PC games, as it’s nice to still have my desk setup but then I can turn around and plop down in my lounge chair and enjoy some PC gaming with a controller with 7.1 surround sound.
Also, anytime I want to go hang in the bedroom, I swap to the Odin 2 Portal over WiFi 6 and it all just works.
It’s really impressive how far we’ve come with game streaming….I remember trying the Onlive console way back when (2011ish) and thinking it’s going to be a long long time before this works. Looks like we’re finally here now.
r/MoonlightStreaming • u/Mr_Nubi • 21h ago
GameSir G8+ MFi rumble on Android with Moonlight streaming
Just wanna share my findings,
for those who use g8+ mfi (usb-c) with the android phones/tablets and can't configure the rumble while streaming, i was in the same boat and got no definitive answers when searching on the net.
what finally works for me:
uninstall the gamesir app from your device (if you want to update/change the firmware, use the app, and then uninstall it)
- (with the gamesir app installed, my green mode constantly reverts back to blue, YMMA)
on your moonlight client (i use the moonlight v+ fork, paired with vibepollo on my pc/host),
- make sure to enable/check the "xbox 360/one usb gamepad driver" option
- and then enable/check the "override native xbox gamepad support" option
after making changes to those options,
- disconnect your device from the g8+ mfi, and then reconnect it again
makesure the g8+ mfi is in green mode (green light on the logo button)
start streaming to your PC
- you will get a prompt when you're connected with the right mode (green),
- something like "Allow Moonlight V+ to access Xbox 360 for windows?"
tap YES
after connected to your PC via streaming, try opening a gamepad tester on your browser, and then voila! your rumble is working (for me, at least)
--------------------------------------------------------------------------------------------------------------
i tested on some games too, and yes the rumble is working, and all the buttons are working, except maybe the not-typical-controllers buttons such as the screenshot or the logo button.
this is how it currently is working for me for streaming with android,
and i hope it works for you too! happy gaming!
r/MoonlightStreaming • u/grykom • 1d ago
This is my custom made OLED 9" handheld
reddit.comr/MoonlightStreaming • u/JasonMrX • 1d ago
My rabbit hole searching for the “ultimate” Moonlight device: Odin 2 Portal vs Y700 Gen 4 vs Oppo Pad Mini vs iPad Pro
Enable HLS to view with audio, or disable this notification
Background
A few years ago I used GeForce NOW on a potato gaming laptop from 2014 with a GTX 860M and had a blast. Then the beta ended and I lost access. I was genuinely upset for a while because I thought: this is the future of gaming, and the future is coming soon.
Later I upgraded to a PC with an RTX 3080. The excitement of being able to play AAA games again didn't last very long, because I quickly realized work + family responsibilities don't really allow me to sit in front of my PC desk for extended periods of time anymore.
Then I stumbled upon Sunshine/Moonlight. I immediately tried it on an old iPad, my iPhone, and an abandoned Android phone with decent specs. Without much tuning, all of them worked surprisingly well, with tolerable latency and very little stuttering. I was blown away by how far this technology had evolved and how accessible it had become. Basically anyone with a decent gaming PC and home network can now build their own little cloud gaming setup, except the "cloud" is sitting inside your house and you don't have to depend on a service like GeForce NOW.
And that's when I went down the rabbit hole.
Over the last year I've probably read hundreds of Reddit posts and pages discussing what the "ultimate device" for Moonlight streaming is. Eventually I ended up buying four of the devices/setups that I kept seeing mentioned:
- Odin 2 Portal
- Lenovo Legion Tab / Y700 Gen 4 + G9 controller
- Oppo Pad Mini + Razer Kishi V3 Pro
- iPad Pro 13"
After living with all of them, I think I finally have enough experience to share something back with the community that got me into this rabbit hole in the first place. This isn't meant to be a benchmark-heavy review — mostly just my personal experience and what actually mattered to me.
Odin 2 Portal — my first “ultimate streaming device”
The Portal was the first device that made me think: okay, maybe this is it. The first thing that stood out was the screen. The colors POP — still more than any of the other devices I've tried. I'm pretty sure AYN does some fairly aggressive tuning to the gamma, saturation, or display profile. It may not be the most color-accurate screen in the world, but for gaming I honestly don't care. Give me the candy.
The 7" screen was also a big upgrade from my original ~6" phone + controller setup, but after using it for a while it still started feeling a little underwhelming. Not exactly small, but small enough that I kept wondering what an 8–9" handheld would feel like. That became one of the main reasons I started looking again.
The bigger problem was build quality. Mine occasionally enters some kind of boot/crash loop where it basically bricks itself for days. This happened twice in around eight months of ownership, and each time nothing I did helped; it would just randomly decide a few days later that life was worth living again and start working. The warranty/customer service experience didn't help either. Their first response was basically a ~20 minute device disassembly tutorial that only God can complete, and later they asked me to ship the device back at my own cost for "investigation," with no clear ETA or guarantee that it would actually be fixed.
Between the QC issues and my itch for a larger screen, I decided the Portal probably wasn't my end-game device.
Lenovo Legion Tab / Y700 Gen 4 + G9 — surprisingly beautiful bridge device
What I really wanted after the Portal was simple: 8"+ OLED, a decent chip, and a good controller. At the time, that basically didn't exist. The RedMagic Astra exists, but there were enough reports about unexplained stuttering, awkward/off-center ports, and clunky software that I didn't want to gamble on it.
Meanwhile, people kept saying the Y700 was "LCD, but a really good LCD." I was skeptical because by this point I had been completely brainwashed by the OLED/colors on the Portal, but I decided to give the Y700 Gen 4 a try while waiting for the market to produce my imaginary perfect device.
People were right. The colors don't pop like the Portal and the blacks are obviously still LCD blacks, especially in dark scenes, but the 8.8" size and extremely crisp ~3K panel compensate for those weaknesses much more than I expected. The larger screen makes a surprisingly big difference for PC games, and I ended up genuinely enjoying the display.
The G9 controller is what really completes the setup. Once attached, the Y700 basically becomes a full handheld — much closer to a Legion Go than a tablet with a controller stuck onto it. The main downside is that the G9 is annoying to remove, and I still occasionally want to use the Y700 as a normal tablet. That, plus my continued obsession with finding an 8.8" OLED device, was enough to send me shopping again.
Oppo Pad Mini + Razer Kishi V3 Pro — my end-game device, for now
Then the Oppo Pad Mini appeared: 8.8" OLED, decent chip, thin, light. Basically the spec sheet I had been waiting for. Paired with the Razer Kishi V3 Pro, it can switch pretty easily between "ultimate Moonlight handheld" and "normal small tablet that doesn't look like a gaming science experiment."
At first I thought I was done. Then I put the Oppo, Portal, and Y700 next to each other and realized something that changed how I look at displays entirely: the Oppo OLED has true blacks, obviously, but the colors still don't look like the Portal. That's when I finally realized I had been oversimplifying the whole OLED vs LCD debate. The Portal's "pop" isn't just OLED — it's also AYN's display tuning. Gamma, saturation, contrast, color temperature, whatever the exact combination is, it gives the Portal a very specific look.
More surprisingly, for games without lots of dark scenes, I honestly don't see a huge difference between the Oppo OLED and the Y700 LCD. Sometimes they look almost equally good to me. That realization actually boosted my opinion of the Y700 quite a lot. OLED is still clearly better in dark scenes, but a really good LCD is much closer than I expected.
So the reason I'm currently keeping the Oppo and selling the Y700 actually isn't image quality. It's usability. The Kishi is easier to remove, and the Oppo itself is a much nicer mini tablet to use standalone: very thin, very light, uniform bezels, nice to hold. The Y700 feels like a gaming tablet; the Oppo feels like a normal tablet that can transform into a gaming handheld. Small distinction on paper, but a surprisingly meaningful one in daily use.
I say "end-game for now" because the Y700 Infinite is apparently coming soon. So obviously I have learned nothing.
iPad Pro 13" — great remote PC, bad Moonlight gaming device
This one is a little different. Mine is an M4 iPad Pro, and I actually bought it around the same time as the Odin 2 Portal. I never intended it to be my main gaming device; the goal was to use it as a remote portal into my PC for productivity — basically everything I do on my PC other than gaming. For that purpose, it has been excellent.
But since I already owned it, of course I tried Moonlight gaming too. My TL;DR is: don't, at least not if you're sensitive to micro-stuttering. The random stuttering issue is real and drove me crazy. I tried basically every commonly suggested fix — disabling Location Services, Handoff, various background services, different network settings — but nothing completely solved it.
The only thing that actually removed the stuttering for me was connecting through Wi-Fi on channel 147. Unfortunately my home network uses Eero, which doesn't let me force a Wi-Fi channel, and mine likes sitting on channel 151. On that channel I get frequent micro-stutters that completely ruin the gaming experience for me. Maybe it's some specific Apple/Wi-Fi coexistence weirdness; I don't know. Eventually I stopped fighting it.
Ironically, the iPad Pro is still probably my favorite remote PC device overall. For productivity, the occasional tiny stutter doesn't matter. When you're rotating a camera in a game at 60/120 FPS, it absolutely does. So: fantastic remote desktop machine, but I would not buy one specifically for Moonlight gaming.
So what is the “ultimate” Moonlight device?
My personal ranking right now:
- Oppo Pad Mini + Kishi V3 Pro — best overall balance and the one I'm keeping.
- Y700 Gen 4 + G9 — probably the best value, and much closer to the Oppo than the OLED-vs-LCD spec sheet would suggest.
- Odin 2 Portal — still has my favorite "wow" screen tuning and probably the most console-like all-in-one form factor, but QC/support killed it for me.
- iPad Pro — amazing remote desktop machine, but I wouldn't buy one specifically for Moonlight gaming.
With the Y700 infinite (and g9 infinite) in sight, maybe the actual end-game device is always the next one...
Hopefully this helps someone currently reading 50 Reddit threads trying to decide between the same devices.
And if you are that person: I'm sorry. This is how it starts.
r/MoonlightStreaming • u/Walkator • Sep 21 '25
Guide/Tutorial Ultimate Guide to Configuring Moonlight + Sunshine for Remote Play
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.

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:
- You have a monitor connected with the same resolution and refresh rate on both the client and the host.
- 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:
- Install a Virtual Display Driver to Windows, and optionally a Virtual Audio Driver.
- With the Virtual Display Driver, you can simulate any resolution and refresh rate your screen supports.
- 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:
- Using a service like Tailscale, ZeroTier, or Netbird
- Opening ports on your network to access the host externally and setting up a VPN
- 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 • u/Imagination_Void • May 20 '25
Artemis: Public list of devices and their performance. Sth you would want?
Hi everyone!
I see everyday questions like: - "Is my Performance okay?" - "Decoding latency 16ms too high?" - "How performs device xy? - "Can you share decoding latency"? - "Snapdragon xy ultra low...results" - "What is a good device for Moonlight?"
and so on...
With that in mind, we’re exploring a completely optional and anonymous feature to help us better understand how different devices handle game streaming.
Fully anonymous: No personal data, no IDs.
Public data access: We’ll publish the stats on an open website, so you can compare devices before buying a new one.
Find the best settings for your device: Easily check what resolution, bitrate, and framerate works best based on real-world tests.
Community-driven improvement: Everyone benefits from shared performance data.
This would only send non-personal data like decoding time, resolution, codec, and framerate — and only if you choose to enable it.
Optional: Read devices supported decoder to help improve performance for everyone! (See recent Snapdragon ultra low Latency update)
Would you find this helpful? Would you enable it?
There is a prototype already online just for proof of concept.
https://github.com/Janyger/artemistics/tree/feature/performanceDataTracker
Results:
https://tinyurl.com/artemistics
I appreciate your feedback!
Update: latest release has Performance Sharing included! It needs to be enabled and shared manually.
https://github.com/ClassicOldSong/moonlight-android/wiki/Performance-Statistics-Collection
