Linux support please.
subject says everything.
+1 - The world is going linux
I've read that it works on Linux, but the procedure is certainly roughly documented. It would be great to have a space in UEVR's own tutorials.
I've read that it works on Linux, but the procedure is certainly roughly documented. It would be great to have a space in UEVR's own tutorials.
Yes it does work, though support is not 1:1 with Windows. For example, of all UE games I have tried (6 or so), all but one have worked seamlessly with UEVR. Satisfactory is currently crashing for me upon injection.
For future reference, these steps work on linux (using proton via steam):
- Use protontricks -s to find the appid of your game.
- Install dotnet 6 via protontricks:
protontricks-launch --no-bwrap --appid <appid here> --no-background-wineserver /path/to/dotnet_installer.exe - Launch uevr:
protontricks-launch --no-bwrap --appid <appid here> --no-background-wineserver /path/to/uevr.exe - Import profile
- Close uevr
- Launch the game via Steam
- Once loaded in, alt-tab out, and launch uevr again (see command above)
- Wait until it detects the exe, and inject.
Make sure you choose openxr if using wivrn/envision, or openvr if using alvr.
+1
Important note for Linuxers using UEVR: I first tried running uevr (which is now called UEVRInjector.exe) in a directory that was not in the prefix, e.g. /dados/uevr -- it didn't work. Moving this directory to the prefix, e.g. ~/.local/share/Steam/steamapps/compatdata/399810/pfx/drive_c/uevr, and calling it from there, made it work:
protontricks-launch --no-bwrap --appid 399810 --no-background-wineserver /home/patola/.local/share/Steam/steamapps/compatdata/399810/pfx/drive_c/uevr/UEVRInjector.exe
Gameplay here, btw https://youtu.be/7DWyXGcPyWg
@Patola Could you elaborate on "didn't work"?
Did it not open at all? Did it open but not detect an exe? Did it detect an exe but fail to inject? Did it inject but crash? Etc
I was able to inject in many games without issue regardless of the exe location, but I'm wondering if there's some funniness for some games (like satisfactory in my case, it fails to inject and just freezes video)
The message in the console said it couldn't find the file. I reckon it couldn't map /dados/uevr/UEVRInjector.exe to z:\\dados\\uevr\UEVRInjector.exe or similar path that the utility saw internally.
Do you need the complete output?
I've been noticing a pattern here that when I download an UEVR Profile from https://uevr-profiles.com and apply it to the UEVR in my games, it doesn't seem to work, at least not completely, The inputs do seem to work properly, but the 6DOF by making the arm disappear and the gun follow the hand motions do not seem to apply. Maybe that's due to the uobjecthook subdirectory in the zip file being all lowercase? Or any other reason?
Attaching the log.txt file from AppData/Roaming/UnrealVRMod/Indiana-Win64-Shipping/log.txt that seems to pertain to UEVR initializing from my last attempt with The Outer Worlds: Spacer's Choice Edition (appid 1920490). But I have this same issue in practically every game, like Trepang², Borderlands 3, Blair Witch and others.
Note that doing the changes manually by making the arm invisible, then finding the gun skeletal mesh, then adjusting it etc. does work.
Ah, and for the record, I've used this plugin → https://github.com/gwizdek/OuterWorlds-UEVR-Plugin on Steam
Never mind, I'm an idiot. I had not realized that the name of the .zip file actually binds to the executable file, when I was downloading the profiles I would rename them to recognize what game they referred to. "un-renaming" them makes them work as intended.
Hello, I am too trying to use UEVR on linux. I use ALVR and Quest 3 But every time I try to inject, it says: VR_init failed installation path could not be located (110)
Steam games works fine Should I somehow point UEVR to steamvr binary path?
Hello, I am too trying to use UEVR on linux. I use ALVR and Quest 3 But every time I try to inject, it says: VR_init failed installation path could not be located (110)
Steam games works fine Should I somehow point UEVR to steamvr binary path?
You have to provide all useful data for people to help, like the game you're trying, what did you do previously, the command you're running, your distro, knowing your GPU can be helpful, even details like the filesystem type (btrfs, ext4, ntfs etc.) can sometimes help. Do not spare any details. Collecting and pasting the UEVR log like I did can help too.
The game is: "Spirit of the North 2" friend asked to try.. The game installed in lutris 0.5.18 using proton-cachyos-9.0-20250426-slr-x86_64_v3 Ubuntu 24.04, I run it in x server FS: Ext4 NVIDIA RTX3090 Driver Version: 575.57.08 CUDA Version: 12.9 ALVR streamer v20.14.0 (changed from UDP to TCP port as recomended somewhere in net) Steam downloaded and installed from steam site SteamVR beta installed from Properties->Betas menu Placed this into Launch options (as ALVR logs recommended):
__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 VK_DRIVER_FILES=/usr/share/vulkan/icd.d/nvidia_icd.json /home/minyor/.local/share/Steam/steamapps/common/SteamVR/bin/vrmonitor.sh %command%
Here is how I start UEVR (using game's wineprefix):
WINEFSYNC=1 WINEPREFIX=/data/Downloads/wine /home/minyor/.local/share/lutris/runners/proton/proton-cachyos-9.0-20250426-slr-x86_64_v3/files/bin/wine64 /data/Downloads/VR/UEVR/UEVRInjector.exe
Thanks
Here is how I start UEVR (using game's wineprefix):
WINEFSYNC=1 WINEPREFIX=/data/Downloads/wine /home/minyor/.local/share/lutris/runners/proton/proton-cachyos-9.0-20250426-slr-x86_64_v3/files/bin/wine64 /data/Downloads/VR/UEVR/UEVRInjector.exe
This way of starting UEVR is incorrect.
- WINEPREFIX is incorrect, since you are using proton
- It's better to start it via protontricks, not manually; and
- as I've mentioned in my messages here, there are directories outside of the game tree that it can't access. For this exact reason I have been copying the uevr directory to the game's wineprefix and starting if from there (via protontricks), like
~/.local/share/Steam/steamapps/compatdata/1778840/pfx/drive_c/uevr, and then start UEVR from there after having started the game:protontricks-launch --no-bwrap --appid 1778840 --no-background-wineserver ~/.local/share/Steam/steamapps/compatdata/1778840/pfx/drive_c/uevr/UEVRInjector.exe
This is a non-steam game, it doesn't have --appid Tried to put UEVR folder inside of drive_c folder in game prefix and run from there but no change If I try to start UEVR from lutris, like with "Run EXE inside Wine prefix" option or with "Open Wine console" and start UEVR from there, then UEVR for some reason fails to see the game pid and so Inject btn is inactive
I have some progress, tried to run the game and UEVR from proton built in in steam like this:
WINEFSYNC=1 WINEPREFIX=/data/Downloads/wine "/home/minyor/.local/share/Steam/steamapps/common/Proton - Experimental/files/bin/wine64" /data/Downloads/wine/drive_c/UEVR/UEVRInjector.exe
That way it injects without an error But then after I pick my headset, the game crashes with some exception Well, at least now I know how to inject properly :)
Make sure you choose openxr if using wivrn/envision, or openvr if using alvr.
What if you're not using Envision? I only have the WiVRn flatpak installed.
Make sure you choose openxr if using wivrn/envision, or openvr if using alvr.
What if you're not using Envision? I only have the WiVRn flatpak installed.
It can work without envision (just the WiVRn flatpak), but it's like 100 times more awkward to do anything and you'll always be outdated. On envision you can add stuff like wlxoverlay-s to be able to see your screen and operate it in VR -- something that I find essential for these tasks (been using UEVR a lot lately). Why make your life more difficult? Use envision. It's open source and doesn't cost a dime.
Make sure you choose openxr if using wivrn/envision, or openvr if using alvr.
What if you're not using Envision? I only have the WiVRn flatpak installed.
It can work without envision (just the WiVRn flatpak), but it's like 100 times more awkward to do anything and you'll always be outdated. On envision you can add stuff like wlxoverlay-s to be able to see your screen and operate it in VR -- something that I find essential for these tasks (been using UEVR a lot lately). Why make your life more difficult? Use envision. It's open source and doesn't cost a dime.
I'm only asking because some Linux distros, such as SteamOS, Fedora Silverblue, and NixOS have an immutable file system. Now you can disable the read-only file system, however, whenever there's an update, like a SteamOS update for instance, anything you install outside of flatpak (via pacman for instance) may be wiped with the next SteamOS update.
Alternatively, you can use Distrobox to install all the necessary stuff in a container system so that you can use Envision with WiVRn that way, without having to disable the read-only file system.
envision uses git to dump stuff under ~/.local/share/envision and compiles and executes from there, so it should work the same under immutable filesystems provided they have the compilers and of course the envision package itself. There's nothing that really ties it to traditional packaging systems.
envision uses git to dump stuff under
~/.local/share/envisionand compiles and executes from there, so it should work the same under immutable filesystems provided they have the compilers and of course the envision package itself. There's nothing that really ties it to traditional packaging systems.
Alright then. Now there is one I want to know, do you have to build a profile on Envision? Because when you click on "Build Profile" it gives you this to type into the terminal to install. For instance, for Arch Linux sudo pacman -Syu avahi avahi cli11 cmake eigen gcc gcc glib2-devel glib2 gst-plugins-base-libs ffmpeg ffmpeg ffmpeg libglvnd libnotify libpipewire ffmpeg systemd-libs libva libx11 libxcb libxrandr ninja nlohmann-json openssl patch systemd-libs vulkan-headers x264 is what you type to install. Now SteamOS is based on Arch Linux yes technically, but because it has a read-only file system, it may not work without disabling it. So, I wanna ask if building a profile is necessary on Envision or not.
Yes, you have to have a profile, you can do it by duplicating one of the built-in profiles (right-click on the pull-down list at the bottom and choose "duplicate profile" and then you can edit it) and it even allows you to change components like xrizer instead of opencomposite. But I think this is becoming offtopic for the UEVR repository, I suggest you open an issue on the envision gitlab repo requesting immutable system support or documentation to continue this conversation, and I'll gladly partake of the discussion there. You can also consult the Adventures in Linux VR or their Discord community. There are plenty of people there to help you on that and solve your doubts.
Ok, at this point I got a playlist for my UEVR gameplays on Linux, 14 at this time and it will eventually grow to many dozen titles. Most of them have custom instructions for each game (say, when to run the injection, some games like Borderlands 3 require it to be very early to inject), although they follow the general recipe described here. The instructions are in the video descriptions and some of them have extra steps on a pinned comment. The specific versions of software I used (UEVR, WiVRn, etc.) are also shown. I hope it proves useful. https://www.youtube.com/watch?v=X_5FBRsRP-g&list=PLoRF2wMS15vV65fXuudiHHpYZlNMZpkQB
I use steamtinkerlaunch to make the process of using UEVR easier. Install stl as steam compat tool then select it as compat tool for the UEVR games. In the stl ui do the following:
- One time command: install the dotnet6 runtime
- configure the game:
- Use custom command: UEVRInjector.exe
- disable steam runtime for the custom command (otherwise it doesnt see the game process)
- Inject custom command
- Save and play These steps only have to be done once but for each game.
I have also made a custom index controller binding for OpenXR as the default config doesnt work correctly.
I use steamtinkerlaunch to make the process of using UEVR easier. Install stl as steam compat tool then select it as compat tool for the UEVR games. In the stl ui do the following:
- One time command: install the dotnet6 runtime
- configure the game:
- Use custom command: UEVRInjector.exe
- disable steam runtime for the custom command (otherwise it doesnt see the game process)
- Inject custom command
- Save and play These steps only have to be done once but for each game.
When you use Steam Tinker Launch, when disabling the runtime for the custom command, are you referring to the Steam Linux Runtime? Or are you referring to something else? I'm trying to test this with ACE COMBAT 7: SKIES UNKNOWN.
When you use Steam Tinker Launch, when disabling the runtime for the custom command, are you referring to the Steam Linux Runtime? Or are you referring to something else? I'm trying to test this with ACE COMBAT 7: SKIES UNKNOWN.
I am referring to the option Use Steam Linux Runtime with Custom Command which is enabled by default and needs to be turned off.
hey! I lost (VR-)gaming a bit out of sight, but currently consider playing a bit more often again (winter...).
Good to read UEVR does work under linux.
I have a few questions if you don't mind:
- does it accept command line arguments (without even opening the gui)
- does it work with mono instead of dotnet6
The reason I ask is, because it would be great if we had some tool to directly launch a supported game into VR without any manual interaction. Nice to see @farmboy0 uses steamtinkerlaunch already :) Of course I would consider adding that functionality there (might be hard to get back into the code though...)
I recently found this promising project https://github.com/LorenDB/kaon which might also be a good choice for such a zero-conf feature.