Controls

Settings and Controls

Default keyboard, mouse and VR controller bindings for the Basis client, where to rebind them, and where to find logs and library data.

Controls

Basis has a fuller set of controls than most people realise on first launch. This page is a quick reference for the defaults across desktop and VR, and where to change them.

Every keyboard binding below is rebindable in-client under Settings → Keyboard Bindings. The button for each control shows its current key, and the default in brackets if you've changed it. Escape cancels a rebind in progress, and you can reset everything back to defaults from the same panel.

Movement

ActionDefault key
Forward / Back / Left / RightW S A D
Movement (alternative)Arrow keys
JumpSpace
SprintLeft Shift
CrouchC
Fly up / downR / F

Camera (desktop)

ActionDefault
LookMove the mouse
Look (keyboard alternative)I K J L (and , .)
Toggle third-person viewF
Zoom (in third-person)Mouse scroll wheel
Interact / selectLeft mouse button

Communication and menus

ActionDefault key
Toggle microphoneV
Open chatY
Free cursor (unlock mouse for UI)Tab
Open / close menuEscape

Toggle microphone depends on your microphone mode. With push-to-talk, V transmits while held; in toggle mode it switches the mic on and off. Set the mode in the audio settings.

Switching input mode

You can move between desktop and the two XR runtimes at runtime:

KeyMode
F9Desktop
F10OpenXR
F11OpenVR

VR controllers

In VR the same actions map to the controllers rather than the keyboard:

  • Thumbstick — movement (one controller) and turning (the other).
  • Trigger — interact / select, the controller equivalent of left mouse button.
  • Grip — used for descending in fly mode and for grabbing.
  • Primary face button — jump.
  • Menu / system button — opens the menu.

VR controller bindings aren't part of the keyboard rebinding panel — they're driven by the active OpenXR / OpenVR interaction profile for your headset.

Help with Debugging

  • You can use BasisDebug.Log("<your-log-message-here>"); to print output to the Basis app's in-game console menu.

  • You can also view the Player.log file located in:

    %USERPROFILE%\AppData\LocalLow\Basis Unity\Basis Unity
    ~/.steam/steam/steamapps/compatdata/3157090/pfx/drive_c/users/steamuser/AppData/LocalLow/Basis Unity/Basis Unity/ This depends on the proton using the steamid of the selected app, building in editor will be in a different location.

    It provides a more comprehensive log of the exact Unity issues encountered while playing. This includes stack traces such as the exact line a nullreference error might have come up in.

Basis Console Menu

Where Are Library Items Stored?

  • The ItemKeyStore.json is located in:

    %USERPROFILE%\AppData\LocalLow\Basis Unity\Basis Unity
    ~/.steam/steam/steamapps/compatdata/3157090/pfx/drive_c/users/steamuser/AppData/LocalLow/Basis Unity/Basis Unity/ This depends on the proton using the steamid of the selected app, building in editor will be in a different location.

    It stores a mapping of the avatars, worlds, and props currently contained in your library.

Within the codebase, you can also find there is an EmbeddedItems class containing library items that are embedded into the application.

Edit on GitHub

Last updated on