---
title: Resonite
weight: 50
---

# Resonite

The current recommended Proton variant is [**Proton GE**](https://github.com/GloriousEggroll/proton-ge-custom/releases/latest).

[XRizer](/docs/fossvr/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](https://lvra.gitlab.io/docs/fossvr/monado/) or [WiVRn](https://lvra.gitlab.io/docs/fossvr/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 <!-- TODO link to resolution scaling --> 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.

## Clipboard

As of the splittening release, Resonite only supports copy/pasting text, and does not work at all in Flatpak Steam with Wayland [(issue)](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5321).

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](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5260).

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.

### Crackling microphone audio

There is an issue WiVRn users have in Resonite, resulting in their microphone audio becoming crackly / glitchy to others. In order to solve this issue, it's necessary to set Resonite to use the ALSA SDL audio backend, and make sure PipeWire sample rates are configured properly.

The steps are as follows:

1. Force Resonite to use ALSA SDL backend for audio:

    Add the following to Resonite's Launch Options in Steam:

    ```
    SDL_AUDIO_DRIVER=alsa %command%
    ```

    **NOTE:** If you have already set launch arguments for Resonite, simply add `SDL_AUDIO_DRIVER=alsa` next to other env vars in your launch arguments.


2. Configure PipeWire sampling rates:

    For most if not all users, **using ALSA _WILL_ bork your audio** until you've manually configured PipeWire to use a default sample rate of 48kHz. If this happens:

    2.1. Locate the directory or create it if it doesn't exist: `~/.config/pipewire/pipewire.conf.d/`.

    **NOTE:** If you have set `$XDG_CONFIG_HOME` to something other than `~/.config` then please adjust the paths according.

    2.2 Create a configuration file (`01-sample-rates.conf` for this example) in that folder. The full path should be `~/.config/pipewire/pipewire.conf.d/01-sample-rates.conf`.

    2.3 Paste the following content into the file to define supported sample rates, and save it:

    ```
    context.properties = {
    default.clock.allowed-rates = [ 44100 48000 88200 96000 ]
    default.clock.rate  = 48000
    }
    ```

If that doesn't work, you can try forcing the other drivers by specifying `pulseaudio` (or `pipewire`) instead of `alsa` in the above launch argument.

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 vars 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](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5261#issuecomment-3228033460) if you need to use the PipeWire driver on Resonite in Steam Flatpak.

### No WiVRn mic audio

If you're using WiVRn, close and reopen it. This mostly happens after Resonite has crashed.

**NOTE:** Closing WiVRn will cause xrizer to crash Resonite if it's open.

## FlipVR controller support with Monado

Currently there is an experimental Monado branch that works with Shiftall FlipVR controllers. Instructions can be found [here](/docs/fossvr/monado/flipvr/). 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](https://wiki.resonite.com/Mods) that offer greater user experience, optimizations and new features.

Currently there are 2 mod loaders:

- [ResoniteModLoader (RML)](https://github.com/resonite-modding-group/ResoniteModLoader)

- [MonkeyLoader](https://github.com/ResoniteModdingGroup/MonkeyLoader.GamePacks.Resonite)

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.

### Crash on launching in VR mode

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

Symptoms:
- Crashes only in VR mode, where after several seconds a black window appears and closes briefly, then Resonite stops within approximately 30 seconds.
- The normal log file shows a renderer crash: `RendererProcess has exited. Shutting down.`. There's a Player.log file.

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

### Crash on launching in desktop & VR mode

Proton data can get corrupted, which will result in consistent crashes on launch. This only applies if you've already replaced OpenComposite (see above).

The symptoms are:
- Crashes 2 seconds from launch in desktop mode (and in VR)
- No log files (no main log, no Player.log, no crash log, no proton log with PROTON_LOG=1, only the boostrapper log)
- It may be accompanied by error windows if you're using a mod loader.

Navigate to compatdata in the folder above Resonite's folder (by default `.local/share/Steam/steamapps/compatdata/`) and delete the `2519830` folder; it will regenerate on the next launch. Then verify the integrity of Resonite files in Steam (right-click Resonite and go to Properties>Installed Files>Verify).

It may be enough to just verify file integrity in some cases.

This can also happen because of **incorrect Steam launch options**.

### 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.

### Hanging on Launch

Symptoms:

- Steam reports Resonite is running but Resonite does not launch.

Possible causes:
- Not having a default audio device selected. 

   **Solution:** Select an/another audio device in your volume panel and see if it works. This is likely an SDL issue.

- Improperly configured mod loaders and plugins.

   **Solution:** Try starting without Steam launch options and then re-add the env vars one by one. This is commonly caused by misconfigured MonkeyLoader.

### Crash after loading

Although this is rare, some proton updates can start crashing Resonite repetitively.

Symptoms:
- Crashes approximately 1 minute after successfully loading Resonite.
- Everything freezes in both desktop mode and VR, but you can still hear sounds, including the voices of other users.

If this happens, just switch Proton to another version such as Proton-GE or Proton-GE-rtsp.


## 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.
