Risk of Rain 2 VR Mod on Linux

This was a huge pain to figure out, thanks Valve. So for some reason binding files are executable on Linux, they’re also SHA1 verified, I’m assuming someone more clever than I am figured out how to do malicious things with bindings at some point. Anyway below is a guide on getting Risk of Rain 2 working in VR on Linux. WOW!!!

Installing the Mod

  1. Install and Launch Risk of Rain 2 for the first time then close it
  2. We need to get r2modman from here: https://thunderstore.io/package/ebkr/r2modman/
  3. We need to select Manual Download
  4. Extract the Archive a location you will not forget (You will need unzip)
  5. Make the .AppImage File exectuable (Right Click Properties or chmox +x r2modman-3.1.17.AppImage)
  6. Select Risk of Rain 2 as your game ( Set it to Default if you’d like)
  7. Create a Profile for your Mods and Select it
  8. Search for VRMod and install it

If you are using an HTC Vive you’re done you can “Launch Modded” from r2modman and you should be good to go. Otherwise if you’re like me prepare for the nightmare.

Configuration Valve Index/Reverb

  1. Go to the Mod’s Page on GitHub and download the appropriate controller config: https://github.com/DrBibop/RoR2VRMod
  2. Launch SteamVR and make sure your controllers are powered on
  3. Select “Launch Modded” from r2modman
  4. You’ll notice that Steam thinks you are running wine64-preloader and not RoR2 (Thanks Valve)
  5. Because of this we need to create a custom bind file so do that now. Just leave it default we’re going to overwrite it anyway. ( If you get stuck here the video guide should be up by Wednesday and I’ll update this post with a link )
  6. Exit RoR2, SteamVR and Steam(Just to be safe, Valve is insane about json parsing)
  7. This should have now created a directory within ~/.local/share/Steam/userdata
  8. We need to find specifically binding_config.json This is the file we’re going to overwrite. The best way to do this is to run find -mmin -10 -name *.json in the directory and look at the output.
  9. Now that we know where the file is navigate to that directory, we’re almost done.
  10. Open the controller settings file we downloaded earlier and change the line for app_key to system.generated.wine64-preloader instead of the RoR2 executable
  11. rename the file to bindings_config.json and overwrite the old one
  12. Set the file perms with chmod 771 bindings_config.json
  13. get the SHA1 sum from the file with sha1sum bindings_config.json and replace the sha1 in data.vdf with that.

If you did everything correctly this will have overwritten the original file you created and will make this the default active custom bind for Wine/Proton when a Non-SteamVR game is launched. Remember this because you may need to change it or make new binds in the future. This should persist across application and steam restarts. Hopefully in the future Valve can make this process a little easier by allowing us to file navigate to custom binds.


If this guide was too hard to follow i will be posting a Video Guide so please subscribe to my Youtube for when that happens. (There is a YouTube Icon in the Footer of this website.) I always post step-by- step copy & paste capable commands when I write guides like this but because of the nature of this guide in particular some user experience is necessary.

If this Helped you please consider donating to me at one of the links below. I have a progressive eye condition that effects my ability to work and am currently legally blind attempting to get corrective surgical procedures.

Thank you.

Patreon: https://www.patreon.com/hadetundying

Liberapay: https://liberapay.com/Hadet

BuyMeACoffee: https://www.buymeacoffee.com/hadet

Written on July 11, 2021