Resonite

Resonite #

The current recommended Proton variant is Proton GE.

XRizer should now provide a close-to-flawless experience on most controllers and when using hand tracking.

Mirrors look cross-eyed #

When playing Resonite under Monado or WiVRn, the 3D effect of mirrors may appear way off, as if looking through them feels like your eyes are crossed. This only affects headsets with canted displays (e.g. Valve Index, Pimax).

To solve this, prepend OXR_PARALLEL_VIEWS=1 to Resonite’s launch options.

Performance #

In August 2025, Resonite updated to run FrooxEngine as a native Linux process, with the renderer being run through Proton.

Resonite is typically GPU-bottlenecked. Lowering the resolution may help. This can be easily done by prepending OXR_VIEWPORT_SCALE_PERCENTAGE=75 to Resonite’s launch options. Experiment with different values to find your preferred balance between performance and quality.

Visemes #

Currently, viseme analysis does not work on Linux due to Meta not providing a Linux native build of OVRLipSync (https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5151#issuecomment-3170453491)

There is an experimental mod developed by the community that allows for viseme analysis under Linux - https://github.com/KyuubiYoru/VisemesAtHome.

Clipboard #

As of the splittening release, Resonite only supports copy/pasting text, and does not work at all in Flatpak Steam with Wayland (issue).

This mod provides full clipboard functionality, but only works on Wayland: https://github.com/GrandtheUK/ResoniteLinuxClipboard

Audio Issues #

Resonite uses SDL for audio on Linux, but the current implementation can be a bit flaky.

In particular, the WiVRn microphone is known to be glitchy.

It is recommended that you use PipeWire as your system’s audio service, including its PulseAudio and ALSA support.

The game will default to the PipeWire API if it can, falling back to the PulseAudio API.

Glitchy audio #

The most straightforward way to fix a glitchy microphone is to use SDL’s ALSA driver with SDL_AUDIO_DRIVER=alsa %command% as the launch argument on Steam.

If that doesn’t work, you can try forcing the other drivers by specifying pipewire or pulseaudio instead of alsa in the above launch arguments.

If you want to use the PulseAudio driver, you may need SDL_AUDIO_DRIVER=pulseaudio PULSE_LATENCY_MSEC=15 PULSE_BUFFER_MSEC=250 PULSE_FRAGMENT_SIZE_MSEC=25 %command% as the launch arguments.

Virtual audio sources/sinks #

To be able to chose a virtual sink, you have two options:

  1. Use SDL_AUDIO_INCLUDE_MONITORS=1, but this works with the PulseAudio driver only (add it next to your other env var in launch arguments).
  2. Select any other source in Resonite, and manually connect the wanted input or output to Resonite’s sink using a PipeWire graph GUI (e.g. Coppwr, Qwpgraph, Helvum)

Do note that for the Audio Stream feature of Resonite, you’ll need to select a different source that the one you are using as your microphone, or else SDL will not create a sink dedicated for it. If you only have one input, use the Steam voice option.

Flatpak #

The PipeWire driver is not supported by Steam Flatpak OOtB, see this issue if you need to use the PipeWire driver on Resonite in Steam Flatpak.

FlipVR controller support with Monado #

Currently there is an experimental Monado branch that works with Shiftall FlipVR controllers. Instructions can be found here. At the time of writing, this branch is the only way to use FlipVR controllers with Resonite, as they are not supported even through SteamVR on Windows.

Mods #

Resonite has a thriving modding community with an abundance of mods that offer greater user experience, optimizations and new features.

Currently there are 2 mod loaders:

You can load RML mods with MonkeyLoader but not the other way around.

Resonite randomly gets stuck on initial loading screen when using RML #

The exact cause of this is currently unknown. Consider using MonkeyLoader if you encounter such issues starting the game as it seems to not cause the same problem.

Crashes #

Renderer issues #

Resonite’s renderer is known to randomly crash suddenly - this is currently tracked at https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5325.

There is also a known memory leak when running the renderer on Linux - however, it is uncertain currently whether this is an issue with Proton or there is something else at play - see https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5246.

OpenComposite #

Currently, OpenComposite is known to crash Resonite when used in VR, so attempting to use OpenComposite for Resonite is not recommended.

See https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5152 for more information.

Crash on loading into a world with video players #

On GE-Proton9-10 (for example), loading into a world with e.g. a YouTube video or live stream can crash the game. Try using the latest GE-Proton-RTSP release.

Controls busted after switching to desktop #

Resonite allows a VR player to take a break and switch to desktop mode by pressing the F8 key.

Because controller hot-swapping is not yet implemented in Monado & OpenComposite, turning off a controller will freeze its state, including buttons pressed and analog stick input. Resonite will continue processing VR inputs even after switching to desktop.

The end result is that desktop controls can act strangely. For example, if you were holding the grab sensor as you turned off the VR controller, picking up items or inspector windows stops working with the mouse.