Thursday 7 March 2019

Tabletop Simulator's SteamVR binding walkthrough

SteamVR's action+binding system is a very powerful tool for allowing the player to express exactly how they wish a game's controls to operate.  It's also a very useful mechanism for allowing a myriad of VR hardware to all function on any game which supports it, as you can tailor the controls to the specific buttons, triggers, sticks and pads your controller has.  This is a great design on Valve's part, as it means any hardware developer can make their own VR system without having to worry that with a limited consumer base no developer will write code specifically for their setup.  This system means that the developer just has to makes the game work with SteamVR, after which every piece of hardware should be able to be used with their game.

However, this versatility does come at a slight cost: setting up a control scheme in it is a little more involved than <Press the key for this action> that players are used to dealing with.  This post will walk through the default bindings that Tabletop Simulator uses for Vive and Rift, which will hopefully give you an idea of how to (a) customize the controls on those platforms to suit yourself and (b) create your own bindings if you have less common hardware.

You may access the controller binding interface inside VR or on your desktop in a web browser.

To access it in desktop mode you must be running SteamVR in the background, and in fact running Tabletop Simulator in VR as well might be helpful, since the SteamVR UI is still a bit beta...

The control schemes on both platforms are effectively the same on both hands, so here we'll predominantly look at the Left Controller (with some notes where applicable if there is some variance).

These bindings are accurate to version 11.1 of Tabletop Simulator.

N.B. If you're interested in the Rift controls it will be worth having a quick read through the Vive section, as it will cover some basic generalities not covered in the Rift section, and go into each action in more detail.


First up is the Grip button.  On Vive this is predominantly used for movement, which is bound with the Enable Movement action; this is bound as a button (if you wished to add another such binding you would click on the + icon at the top right and select BUTTON).

This needs to be bound under Held: as long as you hold the button movement will be enabled (hit "More options" when adding to show the options available other than Click) - movement in Tabletop Simulator is done by holding the button down and pulling or pushing yourself as if you had grabbed onto something.

Next up is Display Tooltips.  This will simply cause tooltips to appear on the controllers as long as the button is held down.  Doubling these on top of the move button is convenient, as it means the player has easy access to some helpful info without it getting in the way of other actions, or being context dependent.  Once you are used to the controls you might want to disable tooltips; you can do so by deleting this binding (hover over it and click the trash can).

Button 14 is one of many (20!) bindings which emulate joypad buttons.  This can be used in-game by turning on Joypad Emulation in the VR settings, allowing you to bind VR inputs in the standard control settings window.  The first ten joypad buttons are listed as if they were on a 360 controller, and are assigned to the controllers here in a roughly analogous layout.  The last ten buttons are simply listed with a numerical index.  In effect it doesn't matter what button goes where, as long as you have a button assigned to the inputs on the controller you want to use.  Note that in the default controls these buttons are assigned uniquely, scattered over both VR controllers; in this slot the right controller has Button 19 bound instead.  As all the Button bindings do the same thing (emulate joypad presses) we'll ignore them after this.

Finally, there is _grip_held.  This, along with every other binding starting with an '_' symbol, is used for the legacy binding of the old VR controls.  They can be ignored, and we'll be skipping them from now on.