October 30, 2019, 7:13 am

This patch includes creating Custom UIs using Xml giving you the power of Unity's UI system with an easy to use format. We also have a brand new API documentation that is much more feature complete with examples and better looks. Can be found here: https://api.tabletopsimulator.com/

Read about the new VR Controls at the bottom of the patch notes!

Custom UI
  • Custom UI added using Xml.
  • Gives the power of Unity's UI system.
  • Docs can be found here: https://api.tabletopsimulator.com/ui/introUI/
Scripting
  • object.randomize (or shuffle/etc) now returns 'true' if shuffle occurred. For example, a deck currently being searched by a player will not shuffle, so 'false' is returned.
  • Added search events: onObjectSearchStart, onObjectSearchEnd, onSearchStart, onSearchEnd
  • Button callbacks now have a third parameter which will be set to true if the button was right-clicked or long-pressed.
  • createButton now lets you specify 'hover_color' and 'press_color'
  • Added getJSON() to Object and spawnObjectJSON() this is the same format as Objects are saved in the save files.
  • Turns class added to let you controls the turns menu from scripting.
  • Event onPlayerTurn(player) added.
Voice Chat
  • Team icon is now working.
  • Updated to latest version of voice chat.
  • Fixed more bugs with Voice Chat.
Fixes
  • Fixed items appearing faded in Search window.
  • Fixed Search window not working in VR.
  • Fixes to cosmic encounter.
VR Controls Update

The goal is to provide a more intuitive VR experience; closer to how you would play a board game IRL. This is still in development, feel free to leave us your feedback about how it feels! To enable the old control scheme type +vr_controls_original into the system console.

Note

Various commands in the system console govern vr behaviour: type help vr to see them. For example, turning 'vr_sticky_grab' on will mean you do not have to hold the trigger to maintain grip on an object; instead you press to grab, then press again to release. If you want these commands to persist then add them to your autoexec (type 'edit autoexec' and enter them there).

You can quickly switch between old and new controls if you do something like 'bind right_control !vr_controls_original' (...you can then hit right control to toggle)

Changes
  • Laser pointer now turns on and off as the player touches the touch pad, and is oriented like a pointer rather than a gun (it now matches the default steam keyboard laser).
  • Selection box now drawn from controller position instead of laser position.
Controls
Touchpad when not holding an object:
  • Center = click (buttons, UI, etc.)
  • Up = teleport
  • Left & Right = Mapped tool. Hold left or right to bind current tool to that button.
Touchpad when holding an object:
  • Center = flip

  • Left & Right = Rotate

  • Grip buttons now let you move (holding one controller) or rotate/scale (holding both). Holding any grip button will display control layout.

  • Holding menu button will reset your position.

  • Trigger now used exclusively to interact with 3D world

Advanced
  • The touchpad controls when not holding an object are set using the console bind command, and can be overwritten, so you can bind any command you want to the touchpad if you wish (left, right, and up if you disable teleport; down and center are reserved). For example: 'bind vr_right_pad_left !vr_laser_constant' will toggle the laser on and off when you hit left on the right controller's touchpad. You can use -, +, and ! bind prefixes to bind to press, release, and long press respectively. Use 'vr_unbind_all' before binding your own to remove the default bindings.

Example autoexec

-vr_controls_original
vr_unbind_all
bind +vr_right_pad_left tool_grab
bind -vr_right_pad_left tool_revert
bind +vr_right_pad_right tool_paint
bind -vr_right_pad_right tool_revert

This will mean for the right controller, as long as you hold the left pad you will be in grab mode, and as long as you hold the right pad you will be in paint mode.