Vivecraft#

Vivecraft works out of the box with a functioning Monado/WiVRn + xrizer setup.

Currently, the recommended launcher for Minecraft is Prism Launcher. It runs natively on Linux and can pull mods from Modrinth, CurseForge, FTB, and others.

Flatpak launcher users#

With WiVRn#

If your Minecraft launcher is installed via Flatpak, you must grant it access to the relevant paths before Vivecraft will work.

The command below shows how to grant the required permissions to a Flatpak installation of Prism Launcher. However, it can also be used for other launchers by replacing org.prismlauncher.PrismLauncher with the Flatpak app ID of your preferred launcher.

If your launcher is installed in the system Flatpak installation (as opposed to the user Flatpak installation), remove the --user flag from this command. You can check which one it’s in by running flatpak list and looking at the rightmost column.

flatpak override --user \
  --filesystem=xdg-config/openxr:ro \
  --filesystem=xdg-config/openvr:ro \
  --filesystem=xdg-run/wivrn \
  --filesystem=/var/lib/flatpak/app/io.github.wivrn.wivrn:ro \
  --filesystem=~/.var/app/io.github.wivrn.wivrn:ro \
  org.prismlauncher.PrismLauncher

With Envision#

If you want to use Vivecraft with Envision development profiles, your Minecraft launcher cannot be installed as a Flatpak. You must install it as a system package through your distro’s package manager.

If you’re a motivated developer, this next section is a list of technical hurdles to overcome before such a thing would be possible. It may also serve as a partial reference for common Vivecraft error messages.

Technical details
  • Vivecraft reports “Installation path could not be located (110)” - Flatpak needs access to xdg-config/openvr:ro to read the OpenVR manifest at openvrpaths.vrpath.
  • “Installation Not Found (100)” - OpenVR manifest still points to SteamVR and cannot be followed. Monado session must be running first. Or, manifest points to built development profiles in ~/.local/share/envision, so must first expose xdg-data/envision:ro.
  • “vrclient Shared Lib Not Found (102)” - xrizer is found, but Envision development profiles build the xrizer client library vrclient.so in the system environment which could be much newer than the runtime in the Flatpak, meaning Vivecraft would fail to load them with this error. Verified by running ldd on it in the container which reports “version GLIBC_2.43 not found”. OpenXR client library has the same problem as well.
    • Download xrizer nightly from GitHub, which is built with ubuntu-latest, and modify OpenVR manifest to refer to this directly, or use VR_OVERRIDE.
  • “VRInitError_Init_VRServiceStartupFailed” - xrizer does load, but according to ~/.var/app/org.prismlauncher.PrismLauncher/.local/state/xrizer/xrizer.txt, OpenXR runtime is not available.
  • Adding XR_LOADER_DEBUG=all in instance settings prints logs that show the OpenXR manifest is not found. Expose xdg-config/openxr:ro.
  • Since Envision development profiles build the OpenXR client library libopenxr_monado.so in the system environment as well, Vivecraft fails to load it, for the same reason as the vrclient.so above. There isn’t a workaround for this.
  • Monado places its IPC socket at /run/user/1000/monado_comp_ipc (that is, directly inside xdg-run) rather than in a subdirectory like WiVRn does. Flatpak cannot directly expose the whole of xdg-run, so Monado’s socket can’t be shared. This could be worked around by building with the CMake option XRT_IPC_MSG_SOCK_FILENAME=monado/comp_ipc and manually creating that directory before starting.

Troubleshooting#

xrizer error “ERROR_LIMIT_REACHED”#

This error used to happen when you hit Monado/WiVRn’s old limit of 256 actions, caused by having too many bindings created by mods.

In recent Monado and WiVRn versions, this has been fixed to allow for way more actions, so just update.

Previously, the workaround was to either remove mods or switch to VapoR, an experimental and WIP alternative to xrizer.