As we bring the Mocap feature to OVR Portal, we add WalkOVR to the system as a controller or tracker, depending on the situation. Thus, we make WalkOVR independent of the headset or controller you use.
As of May 2021, the SteamVR Controller Input system has changed. Many new games have configured their games according to the new binding system. Games that do not change the binding system continue to use the legacy binding configuration, but in order to play the games using the new binding configuration with WalkOVR, we need to publish a special binding file for these games. As WalkOVR Technical Team, we have provided our support to 43 new games using the new binding configuration system and we continue to increase this list as you request.
We would like to tell you how to configure the binding to be able to use the WalkOVR controller upon request from the users, via the SteamVR UI. Since there is no general way to create a binding configuration, in this document we will try to create the binding configuration of 2 different games step by step.
1.1. Create Binding Configuration for Half-life Alyx via SteamVR Binding UI

We assume that you can play this game with your existing controls. Before creating a binding file for this game, we examine the binding file that this game has created for several controllers.
After pressing the Close button and closing the warning screen, we click on the "walkovr_controller" text and choose a controller that uses a joystick from here. In this example, I chose the Oculus Touch controller.

After this process, the binding configurations created for the Oculus Touch controller and shared by the community are displayed on the screen.








1.2. Create Binding Configuration for Half-life Alyx via Json File
We store the binding files of all the games that we provide binding support in the “walkovr-profile” file. We update the “walkovr-profile” file when users request binding support for any game. Technically oriented people can use the extra way for binding configuration.
We will use a similar approach. In other words, we will examine the binding files shared by the game we want to create a binding file for, and we will create the WalkOVR binding file.
HalfLife Alyx Touch binding file → C:\Steam\steamapps\common\Half-Life Alyx\game\hlvr\cfg
WalkOVR profile binding file → C:\Steam\steamapps\common\SteamVR\drivers\walkovr\resources\input
WalkOVR game binding file → C:\Steam\steamapps\common\SteamVR\drivers\walkovr\resources\input\game-profiles
First, let's examine the binding file shared by the HalfLife Alyx game. In this example, we are examining the binding file that he created for Oculus Touch. While examining this file, we are looking at the parts related to Joystick->position and walking. (bindings_touch.json)
"/actions/move" : {
"sources" : [
{
"inputs" : {
"click" : {
"output" : "/actions/move/in/adjustheight"
},
"position" : {
"output" : "/actions/move/in/teleportturn"
}
},
"mode" : "joystick",
"parameters" : {
"deadzone_pct" : "5",
"maxzone_pct" : "90"
},
"path" : "/user/hand/left/input/joystick"
},
{
"inputs" : {
"click" : {
"output" : "/actions/move/in/walk"
}
},
"mode" : "button",
"parameters" : {
"force_input" : "position",
"haptic_amplitude" : "0"
},
"path" : "/user/hand/left/input/joystick"
},
]
},
When we open the bindings_touch file and look at the ones with the mode parameter joystick and the ones related to walking, I added the ones that may be necessary for us here. Note that all of these configurations are under the Move category. In other games, the main category may be different, but we will still look at the configurations related to the position and walking.
To use this configuration with walkovr_controller, you must do the following.
- First, you need to go to the WalkOVR Game binding file directory and create a new file in this directory. The name of this file should be steam.app.<steam_id>
.json Open the file you created with an application such as text editor or notepad. Copy the sample content below into the file you created.
{
"action_manifest_version": 0,
"alias_info": {},
"app_key": "steam.app.<steam_id>",
"bindings": {
<add new configuration>
},
"category": "steamvr_input",
"controller_type": "walkovr_controller",
"description": "Default walkovr_controller Locomotion bindings for Game Name",
"name": "Default walkovr_controller Locomotion bindings for Game Name",
"options": {
"returnBindingsWithLeftHand": true,
"returnBindingsWithRightHand": false
},
"simulated_actions": []
}
- Then you should open the walkovr-profile.json binding file and add the directory address of the file you created below.
"default_bindings": [
{
"app_key": "steam.app.<steam_id>",
"binding_url": "game-profiles/steam.app.<steam_id>.json"
},
.
.
.
]
Then, let's configure the binding for HalfLife Alyx in accordance with the above system.
- Navigate to C:\Steam\steamapps\common\SteamVR\drivers\walkovr\resources\input\game-profiles
- Create a new file and name it steam.app.546560.json
- Open steam.app.546560.json file and copy template given
- Copy the parts related to the position and walking in the binding_touch.json file in the empty part of the steam.app.546560.json file.
{
"action_manifest_version": 0,
"alias_info": {},
"app_key": "steam.app.<steam_id>",
"bindings": {
"/actions/move" : {
"sources" : [
{
"inputs" : {
"click" : {
"output" : "/actions/move/in/adjustheight"
},
"position" : {
"output" : "/actions/move/in/teleportturn"
}
},
"mode" : "joystick",
"parameters" : {
"deadzone_pct" : "5",
"maxzone_pct" : "90"
},
"path" : "/user/hand/left/input/joystick"
},
{
"inputs" : {
"click" : {
"output" : "/actions/move/in/walk"
}
},
"mode" : "button",
"parameters" : {
"force_input" : "position",
"haptic_amplitude" : "0"
},
"path" : "/user/hand/left/input/joystick"
},
]
}
},
"category": "steamvr_input",
"controller_type": "walkovr_controller",
"description": "Default walkovr_controller Locomotion bindings for Game Name",
"name": "Default walkovr_controller Locomotion bindings for Game Name",
"options": {
"returnBindingsWithLeftHand": true,
"returnBindingsWithRightHand": false
},
"simulated_actions": []
}
- Remove the parameters keys and input->joystick->click keys and fill in the game name, steam_id parts. Then replace path part with "/user/treadmill/input/joystick".
{
"action_manifest_version": 0,
"alias_info": {},
"app_key": "steam.app.546560",
"bindings": {
"/actions/move" : {
"sources" : [
{
"inputs" : {
"position" : {
"output" : "/actions/move/in/teleportturn"
}
},
"mode" : "joystick",
"path" : "/user/treadmill/input/joystick"
},
{
"inputs" : {
"click" : {
"output" : "/actions/move/in/walk"
}
},
"mode" : "button",
"path" : "/user/treadmill/input/joystick"
},
]
}
},
"category": "steamvr_input",
"controller_type": "walkovr_controller",
"description": "Default walkovr_controller Locomotion bindings for HalfLife Alyx",
"name": "Default walkovr_controller Locomotion bindings for HalfLife Alyx",
"options": {
"returnBindingsWithLeftHand": true,
"returnBindingsWithRightHand": false
},
"simulated_actions": []
}
- Navigate to C:\Steam\steamapps\common\SteamVR\drivers\walkovr\resources\input
- Open walkovr-profile.json file
- Add game binding file directory to default_bindings part
"default_bindings": [
{
"app_key": "steam.app.546560",
"binding_url": "game-profiles/steam.app.546560.json"
},
.
.
.
]
2.1. Create Binding Configuration for Shadow Legend VR via SteamVR Binding UI

We assume that you can play this game with your existing controls. Before creating a binding file for this game, we examine the binding file that this game has created for several controllers.
After pressing the Close button and closing the warning screen, we click on the "walkovr_controller" text and choose a controller that uses a joystick from here. In this example, I chose the Oculus Touch controller.

After this process, the binding configurations created for the Oculus Touch controller and shared by the community are displayed on the screen. Click the Edit button on the page.
Click the “default" button in the horizontal menu. Here we are looking at the Joystick subcategory (especially the position key) under the Joystick main category and other submenus related to walking.





