The primary goal is to ensure the Tracking Thread is never delayed by the Render Thread. Most players use the in-game UI, but manual edits to the configuration file allow for disabling hidden smoothing filters that the UI doesn’t expose.
File Path & Preparation
- Locate the file:
%AppData%\..\LocalLow\Hyperbolic Magnetism\Beat Saber\settings.cfg - Backup the file before making any manual changes.
- Launch Option: Right-click Beat Saber in Steam > Properties > Launch Options and add:
-vrmode openxr(This is mandatory for the lowest latency in 2026).
Optimized “Zero Latency” Configuration Table
| Parameter | Recommended Value | Technical Purpose |
_controllerSmoothing | 0 | Disables software-side jitter filtering for raw input. |
_smoothCamera | 0 | Disables desktop smoothing to free up CPU cycles for tracking. |
_audioLatency | 0 | Sets the baseline audio sync (calibrate this in-game after). |
_pauseOnHeadsetOut | false | Prevents a sensor check that can cause micro-stutters. |
_renderingQuality | 0 | Forces “Custom” mode to prevent the auto-fidelity scaler from fluctuating. |
{
"_version": "1.34.0",
"_vrResolutionScale": 1.0,
"_menuVRResolutionScale": 1.0,
"_controllerSmoothing": 0,
"_smoothCamera": 0,
"_audioLatency": 0,
"_pauseOnHeadsetOut": false,
"_renderingQuality": 0,
"_mainEffectGraphicsSettings": 0,
"_bloomGraphicsSettings": 0,
"_mirrorGraphicsSettings": 0
}
HowTo: Engineering the Ultimate Response Rate
Follow these GameEngineer.net technical steps to eliminate tracking lag:
- The OpenXR Transition: In 2026, SteamVR adds an unnecessary translation layer ($OpenVR \to Driver$). By using the
-vrmode openxrlaunch option, you communicate directly with the headset’s runtime (Oculus/Meta, WMR, or Valve), shaving off $2\text{–}5\text{ms}$ of input delay. - Polling Rate vs. Refresh Rate: Your controller polling is often tied to your headset’s refresh rate. If you are on a Valve Index or Quest 3, always run at 120Hz or 144Hz. This reduces the “Input Sampling Gap,” making “wiggles” and fast streams significantly more accurate.
- Disable Controller Vibration: For top-tier competitive play, many pros set vibration to
0. High-intensity haptic feedback can cause minute “sensor noise” inside the controller’s IMU, leading to tracking “drift” during extremely fast swings. - CPU Priority (Process Lasso): Use Process Lasso to set
Beat Saber.exeto High Priority and ensure it is pinned to physical cores only (disabling SMT/Hyperthreading). This ensures the tracking data is processed at the exact microsecond it arrives from the USB/Radio bus. - Audio Latency Calibration: After setting
_audioLatencyto0in the config, use the in-game BetterLatencyAdjuster mod. Match the “Click” to the “Flash.” In VR, even a $10\text{ms}$ audio mismatch will make you swing “early,” which feels like tracking lag but is actually a cognitive sync error.
Technical Explanation: IMU Prediction and Pose Latency
VR tracking relies on an Inertial Measurement Unit (IMU) combined with optical tracking. Because sensors have an inherent delay, the system uses Pose Prediction to guess where your hand will be when the frame is actually displayed.
When you use “Controller Smoothing” (even at low levels), you are adding an Exponential Moving Average (EMA) filter to the raw data. This averages out jitter but adds a phase shift—meaning the saber on screen is physically behind your hand by several milliseconds. By setting _controllerSmoothing to 0 and using OpenXR, you remove the EMA filter, relying on raw, unadulterated IMU data. This results in “shakier” sabers if your hands aren’t steady, but provides the most immediate, $1:1$ reaction time possible in the engine.