1. Tabletop Simulator
  2. News

Tabletop Simulator News

Update v12.3 Attach Tool, Server Browser & Search Improvements, and much more!

Hey everyone, hope you are all doing ok in these crazy times! We have another great update for you guys today that adds a brand new tool called Attach which lets you stick objects together. We also have a much needed performance optimization on the server browser due to all the new players joining us! Welcome everyone new hope you all our enjoying the game! We have a ton more below in the full patch notes.



Attach Tool


  • The new tool is used for combining objects into a single object.
  • This attach is in a parent child relationship where one object is the owner of the other.
  • Want to add modular pieces to your figures? This is the perfect tool.
  • You might be thinking this sounds like the old joint tool but this lets you merge objects and even put them in and out of bags.
  • This is also much more performant compared to the old joint tool because it's just one object with multiple visuals combined.


Combine Tools


  • Includes the Attach, Fixed Joint (old joint tool), Hinge Joint, and Springs Joint tools.
  • Exposes the Hinge Joint and Spring Joint tools without being hidden in a menu.
  • Hinge joints are just like a door, but they can even have motors!
  • Springs joints are just like sound objects are connect with a spring.
  • All joint properties can be configured in the right click contextual menu -> Joints.


Server Browser


  • Improved Server Browser performance.
  • Server Browser window is now resizable.
  • Server Browser search text is now persistent.
  • Server Browser search now looks in country codes if you use square brackets, i.e. [GB]
  • Fixed some search bugs in Server Browser (also, see below).


Search


Search inputs are now more powerful (applies to Server Browser and in-game Search dialog).

  • Ignores case and inflections: A and รƒยก will both be found by a.
  • Will filter to entries which match all space-separated words in search.
  • Use comma to add another set of words.
  • Start a word with - to negate it, removing any entries which it matches.
  • Negation only applies to the set of words it is grouped with.
  • A set of words which are all negated will apply to every set of words.


Example: gloom -fantasy, scythe, -casual will find any servers with "gloom" (but not "fantasy") or "scythe", so long as they do not contain "casual".

Spectator View


  • Fixed alt-zoomed objects not displaying on spectator view.
  • Fixed objects in hidden zones showing when view restricted.
  • Spectator Zoom may appear at cursor or at a fixed position.
  • Spectator Zoom may be restricted.
  • See System Console section for details.


VR


  • Changed Wall Mode to Tilt Mode, and added Tilt Angle setting.


General


  • Special thanks to modzero for helping us track down a security vulnerability that we hotfixed.
  • Added Drag Selectable toggle to components: when disabled the object will not be included in a drag selection (unless SHIFT held).
  • Alt-zoomed books (i.e. PDFs) may now be page-turned with the mouse wheel.
  • Split Zoom Toggle key binding into Zoom Toggle and Pan actions.
  • Alt-Zoom may now be fixed in place on the screen instead of following pointer (see System Console section below)
  • Made collapsed context menus more obvious.
  • Added entry in Misc settings to set size of collapsed menus.
  • Objects which can go in hand will be drawable by hitting 1 on them, like cards etc. Can be disabled in Misc settings.
  • Fixed context menus being stuck.
  • Fixed turn indicator not displaying.
  • Fixed scaling on custom figurine colliders.
  • Fixed BBCode showing up in steam/discord rich presence.
  • Fixed some UI theming issues.


Lua


UI


  • Fixed a bunch of bad interactions between 2D XML UI, 3D XML UI, the normal UI, and invisible objects. Everything should now behave as you would expect.


Object values


Allows objects to behave similarly to poker chips: when set, the object will display its value when hovered over, and if multiple objects which share a flag are selected the total value will be displayed.

  • object.value - integer value of object.
  • object.value_flags - flags for object values.


Book objects (e.g. PDFs)


  • book.page_offset - Offset virtual book numbers are from numbers rendered on pages.
  • book.getPage(offsetPageNumbering = false) - Get current page. If offsetPageNumber is true then factor in the page_offset.
  • setPage(page, offsetPageNumbering = false) - Set current page.
  • setHighlight(x1, y1, x2, y2) - Set highlight box on current page.
  • clearHighlight() - Clear highlight.


Browser objects (e.g. Tablet)


  • browser.url - URL which currently wants to display.
  • browser.pixel_width - The pixel width the browser is virtually rendering to.


Attach Tool


  • To go along with the new Attach tool there is new Object functions available to create these bindings in script.
  • object.addAttachment(Object) - The Object supplied as param is destroyed and becomes a dummy Object child.
  • object.removeAttachment(index) - Use getAttachments() to find out the index property.
  • object.destroyAttachment(index) - Use getAttachments() to find out the index property.
  • object.removeAttachments() - Detaches the children of this Object.
  • object.destroyAttachments() - Destroys the children objects without detaching them.
  • object.getAttachments() - Returns a table in the same format as getObjects() for containers.


Grid Global Class


  • Grid options menu is now available to scripting as Grid.show_lines = true
  • int type
  • bool show_lines
  • Color color
  • float opacity
  • bool thick_lines
  • float offsetX
  • float offsetY
  • float sizeX
  • float sizeY


Misc


  • object.drag_selectable - Drag Selectable toggle of object.
  • object.getSelectingPlayers() - Returns table of players currently selecting the object.
  • object.addToPlayerSelection(player_color) - Add object to player's selection.
  • object.removeFromPlayerSelection(player_color) - Remove object from player's selection.
  • player.clearSelectedObjects() - Clears a player's current selection.


Fixes:


  • Fixed log not outputing to external API.


System Console


  • cam_load, cam_load_zero, cam_save, cam_save_zero - Load and save camera positions.
  • dev_autoconfirm_browser_url_change - Disables browser page load confirmation. Use with caution!
  • hand_component_hotkey_draw - Controls whether objects which can go in hands will respond to the draw 1 hotkey.
  • load & save - Load and save games.
  • spectator_restrict_zoom - Restrict view of spectator zoom if object should be hidden to spectators.
  • spectator_show_zoom - Display alt-zoom in spectator window.
  • spectator_zoom_follows_pointer - Alt-zoom aopears at pointer position in spectator window.
  • spectator_zoom_position - Position on spectator window alt-zoom appears if above is turned off.
  • ui_context_menus_collapsed_height - Height of collapsed context menus.
  • ui_games_window - Visibiliy of Games window.
  • ui_server_browser_search - search text in Server Browser.
  • ui_server_browser_window - Visibility of Server Browser window.
  • zoom_position - Position on screen to display alt-zoom if above is disabled.
  • zoom_follows_pointer - Alt-zoom follows mouse pointer.
  • vr_tilt_mode, vr_tilt_angle - VR Tilt Mode toggle, and angle setting.

New DLC - Wingspan

We're happy to announce the release of our latest DLC game - Wingspan, created by Elizabeth Hargrave & Stonemaier Games. This release includes the European Expansion and our usual digital flair to enhance the digital play experience. Grab a copy from our Steam store page here - https://store.steampowered.com/app/610703/Tabletop_Simulator__Wingspan/

Winter Sale - Tabletop Simulator & DLC up to 50% off

Tabletop Simulator and DLC is on sale for up to 50% off during the Winter Sale!

Check out our discounts here: https://store.steampowered.com/dlc/286160/Tabletop_Simulator/

New DLC - Unearth

We've got a new DLC available for you today:

Unearth is a bend-your-luck game of dice placement and set collection. Designed by Jason Harner and Matthew Ransom, it plays in under an hour with 2-4 players. Each player leads a tribe of Delvers, represented by five dice (3 six-sided, 1 four-sided, and 1 eight-sided). Players take turns rolling and placing dice in an attempt to claim Ruins.

The game's elegant core mechanic is accessible to players of all skill levels. High rolls help players claim Ruins, while low rolls help players collect Stones. This opens two paths to victory: claiming sets of Ruins or using Stones to build Wonders. Delver cards help you affect your dice rolls or dice in play, and Wonders can grant abilities that impact the late game.

https://store.steampowered.com/app/610702/Tabletop_Simulator__Unearth/

Update v12.2 - Theme Editor, Chat Filter, Picture-in-Picture and More!

We've got yet another great update for you today featuring a Custom Theme Editor (dark mode included), Global Chat Filter, Picture-in-Picture and many scripting improvements!

Theme Editor & Dark Mode

Alongside the new Dark theme, you may now edit the colours of the user interface however you wish using the Theme Editor. Find it in the Configuration->Interface window.

Global Chat

The Global Chat now has a Profanity filter that the user can enable to filter out profanity, spam and misbehaviour. Can be enabled/disabled in chat settings, or with /filter & /nofilter

Picture-in-Picture / Spectator View
  • Spectator view can now be used for picture-in-picture, if you are not using it on another monitor. Can be enabled by right-clicking background in game and selecting Picture-in-Picture.
  • Console commands added for this, and some spectator commands reworked. See below.
  • Fixed restricted visiblity (which shows the world as a Grey player sees it).
  • Fixed fog-of-war view.
  • Fixed pointer visibility.


General
  • Images assets are no longer resized to the nearest power of 2 thanks a bug fix by Unity. (Unity version 2019.1.14)
  • Lowered max angular velocity cap to make dice feel better and more like previous versions.
  • Various UI improvements and fixes, most notably on Color Picker, Server Browser, and Script Editor.
  • Custom Figurine object now has a Card Scale property, so the figurine card can be scaled independently from the base.
  • GM Notes section added to bottom of right-click context menu for Black player (can be disabled in Misc settings)
  • Each section in the right-click context menu can be collapsed by clicking the line above it (can be disabled in Misc settings)
  • Misc setting to control mouse shake threshold.
  • Misc setting to control whether games can add items to context menus.
  • Misc setting to control whether games can show the game-specific keyboard controls config window.
  • Misc setting to control whether a single card will behave as a deck when you type a number on it. If ON then you will draw the card. If OFF then it will change state / rotation value, etc.
  • Fixed blindfold in right-click menu not working.
  • Fixed spectators (grey players) seeing things they shouldn't (in fog-of-war for instance).
  • Fixed game freezing when you hold a stack of two objects and use alt+right-mouse to drop one.


Lua


New API events:
  • filterObjectEnterContainer(container, object) - Global version of object.filterObjectEnter
  • onPlayerChangeTeam(player, team) - Called when a player changes team.
  • onObjectHover(player, object) & object.onHover(player) - Called when a player moves their pointer over an object.
  • onObjectNumberTyped(object, player, number) & object.onNumberTyped(player, number) - Called when a player types a number on an object. Uses new property object.max_typed_number
  • onObjectStateChange(object, old_guid) & object.onStateChange(old_guid) - Called when an object changes state, after it is in its new state.
  • onObjectCollisionEnter(object, collision_info), onObjectCollisionStay(object, collision_info), onObjectCollisionExit(object, collision_info) - Called when an object collides with another. Objects must be registered with the collision handler before they will trigger these events.


New API commands:
`onNumberTyped` example:

[previewyoutube][/previewyoutube]
  • player.setUITheme(theme_script) - Sets the player's UI theme.
  • object.addContextMenuItem(label, function, keep_open = false) - Adds a right-click context menu to the object.
  • object.clearContextMenu() - Clears all items added by above.
  • addContextMenuItem(label, function, keep_open = false, require_table = false) - Same as above, but global (when user right-clicks empty space, or the table).
  • clearContextMenu() - Clears all items added by above.
  • addHotkey(label, method_name, trigger_on_key_up = false) - Add a bindable control. User may assign a key to it in Options->Game Keys.
  • showHotkeyConfig() - Shows the config window described above.
  • clearHotkeys() - Remove all controls created by above.
  • container.remainder - After using container.takeObject, if there is only one object left in the container (which means the container will be destoyed in the next frame) then this will be set to that last remaining object.
  • object.getGMNotes() & object.setGMNotes(notes) - For new GM notes feature.
  • object.registerCollisions(include_stay_events = false), object.unregisterCollisions() - Objects must be registered in order to trigger the global collision handler events detailed above. Stay events are particularly expensive, so only set that parameter to true if you absolutely require it.


Fixes:
  • Fixed filterObjectEnter not working under certain conditions.
  • Fixed decals not cleaning up correctly when using setDecals


System Console
Spectator command rework:
  • spectator_window now controls the picture-in-picture mode.
  • spectator_screen can be used to open spectator view on another monitor.
  • spectator_activate_with_resolution now has -p parameter to specify picture-in-picture. This command can be used to open picture-in-picture with specific position and size.


New commands: (for more info see above page, or use help )
  • ui_main_flip, ui_main_modding, ui_main_music, ui_main_notebook, ui_main_objects, ui_main_options - Control visibility of buttons on top menu bar.
  • spectator_panel_buttons - Whether picture-in-picture window has buttons to control it.
  • spectator_panel_corners - Whether picture-in-picture window has corners to resize it.
  • spectator_panel_locked - Whether picture-in-picture window can be moved.
  • ui_theme_color_ - Color of specified selector.
  • ui_theme_batch_start & ui_theme_batch_end - Group multiple ui_theme_color_ commands together.
  • ui_theme_count - Number of themes.
  • ui_theme_from_game_auto - Whether games can set the theme colors.
  • ui_theme_is_ - Sets current theme.
  • ui_theme_index - Index of current theme. Set to change theme.
  • ui_theme_name - Name of current theme. Set to change theme.
  • chat_filter - Whether the chat filter is enabled.
  • chat_refresh_filter - Refresh the chat filter rules.
  • card_is_a_deck_for_hotkeys - Whether the setting described above is enabled.
  • game_hotkey_bind - Bind a key to a game-generated control.
  • game_hotkey_list - List bindable controls generated by loaded game.
  • ui_context_menus_from_games - Whether games can add items to context menus.
  • game_hotkey_config_can_open - Whether games can show the game-specific control binding window.
  • ui_context_menus_can_collapse - Whether context menu section can be collapsed.
  • ui_context_menus_show_gm_notes - Whether GM notes are displayed at bottom of context menu for Black player.