Recently we’ve seen a stark increase in questions about controller mapping and rebinding Skyrim VR on various message boards and forums. I attribute this to the Valve Index controllers, at least they were the reason for me to learn this stuff. There’s a reason, they are bugged and a fix is necessary and available, but I’m of the opinion that this information is beneficial for everyone, no matter which controllers they use. I’ll go into details for Index controllers later, don’t worry. For now you need to know that there’s a bug with the Index controllers that makes the A-buttons unusable as soon as you open the SteamVR overlay, also it is not exactly perfectly mapped from the beginning, so rebinding it is worth it.
So here we are with another guide to aid you through the jungle of SkyrimVR, may we bring some civilization to the mess Bethesda has left for us.
I want to emphasize that is is indeed possible to remap everything in Skyrim even without the Steam controller rebinding, and it’s not as hard as you might think!
Let’s start with the basics: Skyrim VR has hard coded controller mappings which you can’t change ingame. Annoying, I know, but you gotta work with what you have. They are stored in the SkyrimVR.bsa archive of the original game. You can override them by unpacking the archive (using a bsa extraction tool), taking out a file called “controlmapvr.txt” in the folder “/Data/Interface/Controls/PC/”, change it to your liking and installing it like a regular mod by zipping it and putting it into your mod installer download folder. The folder structure in the zip must be the same as in the bsa.
There are some pre-existing mods that manipulate said file. Before messing around with it yourself, get one of these and see if you’re already happy with it:
- Oculus Hotkey Mapping – this has a good explanation on the hotkey system, this is made with the Spellsiphon mod in mind
- Different Oculus Hotkey Mapping – this has a good explanation on the controlmapvr.txt interpretation
- Valve Index A-Button Fix – this is a “fix” (read: workaround) for the bug using the Index controllers where the A-Buttons stop working after using the steamVR menu overlay. Requires an additional SteamVR Controller Bind change.
- VRIK Player Avatar – has its own optional Index control mapping
To my knowledge there are no predefined controlmaps for Vive wands or WMR.
There are also small programs that generate the controlmapvr.txt file for you with a GUI:
Unfortunately there is no such tool for WMR.
Okay, now we got the basic stuff for folks that just want to download a black box. But the actual purpose of this guide is to empower you to make the Skyrim controller mapping easy. Let’s understand the controlmapvr.txt file!
So, you extracted the bsa or you downloaded one of the mods or tools, and now you have one of these magical files. Opening it up (e.g. in Notepad++) you see a lot of text. This might be daunting at first, but you can learn it, I promise. Let’s ignore the text at the beginning, that’s just comments. The important stuff is the columns with 0xff and other entries for each row with a description at the beginning. Here’s what you need to know:
Three different mappings exist, one for Vive wands, one for Oculus touch controllers, and one for WMR controllers. These are the columns of the file. Both have two columns, one for the right and one for the left hand controller. Bethesda even messed that one up, cause right hand comes first, i.e. left, left hand second, to the right of the right hand column.
Where’s the Index, you ask? Well, the Index controllers are being recognized like Oculus touch controllers, so essentially you need to change the oculus columns to adjust the index mapping. Importantly: sometimes they get erroneously recognized as Vive wands. Rarely, but I had it happening. One dead giveaway for this is when you scroll through a list and the joysticks behave like the Vive wand touchpads, so the list scrolls along even after you moved the stick. Breaks everything, you can’t even navigate to save the game, just force close it with the task manager and restart the game. This fixed it for me… it might be necessary in rare cases to check a new character, maybe something in the save does something that prevents skyrim from accepting the Index controllers as oculus. Easiest way to do this is to type “coc Riverwood” after starting the game. Often there’s an easy fix: When starting SkyrimVR on the Index, always make sure that your controllers are switched on and the headset is not in sleep mode BEFORE starting the game (wiggle them all a little)!
So, let’s get to the core: you can rebind basically everything with this easy formula:
- Find the columns for your controllers, and the rows for the action you want to change
- 0xff means the action is unassigned
- 0x21 is trigger
- 0x02 is grip
- 0x20 is joystick click (Oculus) or touchpad press (Vive wands or WMR), or A, if you are on Index and using the A button fix binding (which I recommend)
- 0x07 is A (not working for Vive)
- 0x01 is B (Oculus) or Thumb button (Vive wands)
- You can, if you want, combine buttons with “+” , and have two bindings for the same action, with “,”, e.g. have shout to 0x02+0x21 for grip plus trigger. I noticed some strange behavior with stuck trigger then on Index, and it felt strange to me personally, so I reverted this, but you might like it. It opens some extra buttons, obviously.
- UNCONFIRMED: 0x03, 0x04, 0x05, 0x06 are the touchpad locations, North, East/West, South, West/East for Vive wands. This does NOT work for Index, I tried it.
That’s it. With this knowledge you should be able to create a binding however you want it! Some of the rows are not perfectly named and there are overlaps between some of them, so if you change things further down prepare for some strange behavior until you understand it. Don’t change too many things at once! It might be worth it though, I switched some things from left to right for example, in the loot menu.
Last, but not least: You CAN re-route any button to any different button in the steamVR binding, of course. This is how the Index A-Button Fix works: it makes the A button a joystick click and then uses the joystick click (0x20) in the controlmapvr file instead of A (0x07). Easy peasy.
Hope this helps some lost players, good luck with adjusting it and have fun playing the game!