Meta Quest 3 · Display Tweaks
Meta Quest 3 can run its display at up to 207Hz, system-wide, using a capability Meta documents and officially supports. Almost nobody uses it, because there's no toggle for it anywhere in the headset's own settings menu.
This article explains a small pair of scripts that flip this on and off with a single command, grounded directly in Meta's own developer documentation for extended refresh rates. It covers exactly what the underlying setting does, why it has to be a script run from a computer rather than an app installed on the headset, what you're actually trading away for that extra smoothness, and full setup instructions for anyone who hasn't used ADB before.
📋 Table of Contents
- What This 207Hz Mode Actually Is, According to Meta
- Why This Has to Be a Script, Not an App
- What You're Actually Trading Away for the Extra Smoothness
- What You Need Before You Start
- Setting Up ADB for the First Time
- Running the Scripts
- Going Beyond 207Hz: What Changes at 240Hz
- The Alternative: A Real Installable App Instead
1. What This 207Hz Mode Actually Is, According to Meta
This isn't an unofficial hack pulled from reverse-engineering the headset — Meta's own developer documentation describes it directly. Quest 3's specific display panel can accept any integer refresh rate from 72Hz up to 207Hz at full resolution, with no display scaling or quality trade-off required. Meta calls this the "standard" extended refresh rate tier, and it's exclusive to Quest 3 specifically — Quest 3S uses a different display panel that tops out at 120Hz, and no other headset in the lineup supports it at all.
The setting behind it is a system debug property called debug.oculus.refreshRate. Setting it tells the entire system, not just one app, to run the display at that rate — which is exactly why it affects Home and every app you open, not just whatever happens to be running in the foreground.
2. Why This Has to Be a Script, Not an App
It's a fair question why this comes as a script you run from a computer instead of something you'd just tap on inside the headset. The reason is baked into how Android's permission system works, and it isn't something a developer can design around.
Every app on Quest — including anything you'd sideload — runs sandboxed, the same way apps do on a regular Android phone. Writing to a system debug property like debug.oculus.refreshRate requires shell-level access, the kind ADB gets when it runs commands against a device with Developer Mode enabled. A normal installed app has no path to that permission level; Meta doesn't expose a public API that lets a third-party app change the device-wide default refresh rate, because that's an operating-system-level control, not something individual apps are trusted to touch.
What Meta does expose to apps is a narrower, per-app version of this: a call that sets the refresh rate only for that one app, and only while it's the active foreground VR experience. It has no effect on Home or anything else you open afterward. That's a meaningfully different tool solving a different problem, covered further down.
3. What You're Actually Trading Away for the Extra Smoothness
A higher refresh rate means the system has dramatically less time to finish rendering every single frame, and Meta's own documentation is specific about exactly how much less:
| Refresh Rate | Time Budget Per Frame |
|---|---|
| 72Hz (default) | 13.9 milliseconds |
| 90Hz | 11.1 milliseconds |
| 120Hz | 8.3 milliseconds |
| 207Hz | 4.8 milliseconds |
| 240Hz | 4.2 milliseconds |
At 207Hz, the system has roughly a third of the time it normally gets at 72Hz to finish every frame. For Home, simple menus, and lightweight apps, that's genuinely not a problem — there's very little being rendered, so the tighter budget is easy to hit. For anything heavier — a graphically dense game, a scene with a lot of post-processing — missing that budget produces judder, which defeats the entire point of raising the rate in the first place. Meta's own guidance specifically recommends extended refresh rates for light, high-motion content: rhythm games, competitive shooters, racing titles, simple high-contrast environments — not dense, visually heavy experiences.
4. What You Need Before You Start
- Developer Mode enabled on your Quest 3, set up through the Meta Horizon companion app.
- HorizonOS version 2.7 or later on the headset — this is a hard requirement, since the extended refresh rate capability was introduced at that version.
- ADB installed on your Windows PC or Mac, which comes bundled with Android's Platform Tools package, free from Google.
- A USB cable to connect the headset to your computer, or a wireless ADB connection already paired if you'd rather skip the cable after initial setup.
5. Setting Up ADB for the First Time
- Download Android's Platform Tools package directly from Google's official developer site — this includes ADB along with a few other tools you won't need for this.
- Extract the downloaded folder somewhere easy to find, since you'll be running the scripts from inside it.
- Connect your Quest 3 to your computer with a USB cable.
- Put the headset on — a permission prompt should appear asking to authorize USB debugging from this computer. Accept it.
- If you'd rather go wireless afterward, you can connect using
adb connect <device-ip>:5555once wireless debugging has been enabled and paired at least once over USB first. - Download required files from https://github.com/shreateh/Quest-3-207-Hz-refresh-rate-scripts
6. Running the Scripts
With ADB working and the headset connected, using the scripts themselves is deliberately simple.
-
To enable 207HzDouble-click
set_207hz.baton Windows, or runset_207hz.shfrom a terminal on Mac or Linux. -
To revert back to the default rateRun
reset_default.batorreset_default.shthe same way. -
If you forget to reset it manuallyThe property clears itself automatically the next time the headset restarts, so there's no risk of getting permanently stuck at a non-default rate.
7. Going Beyond 207Hz: What Changes at 240Hz
Meta's documentation describes a second tier above this, capping out at 240Hz, but it works fundamentally differently and comes with a real, visible cost. Past 207Hz, a full-resolution frame no longer fits within the display's available bandwidth, so reaching 240Hz requires enabling display scaling — the frame gets rendered at a lower resolution, sent to the display as a smaller payload, and upscaled by the display hardware itself. That upscaling isn't free: Meta's own documentation states plainly that the result isn't identical to a natively rendered full-resolution image, and the difference shows up specifically in fine detail like small text and thin geometry.
This is a meaningfully different trade-off than the jump to 207Hz, which requires no scaling and no image-quality compromise at all. Going to 240Hz is a genuine quality-for-smoothness trade, not just "more of the same for free."
8. The Alternative: A Real Installable App Instead
Worth knowing about, even though it solves a different problem: Meta does expose a proper, sanctioned API for changing refresh rate — vrapi_SetDisplayRefreshRate in the legacy runtime, or the OpenXR extension XR_FB_display_refresh_rate. A small native app built around this could offer in-VR buttons to switch rates on the fly, with no computer or ADB involved at all. The honest limitation is that this only ever affects that one app's own rendering while it's the active foreground experience — it has no ability to change what Home or any other app runs at, since Meta simply doesn't extend that level of system control to third-party app code. The two approaches solve genuinely different problems: the script changes the system-wide default; an app built this way would only ever control itself.
Explore More Awareness & Security Content
Discover more security tips, threat analysis, hacking awareness, and practical guides designed to help you stay safe online.
Visit Awareness & Security →