⛱️ Tabletop Simulator & All DLC is on a 50% discount throughout the duration of the Steam Summer Sale!
The Steam Summer Sale will be active from June 26th through to July 10th.
Check out our Summer Sale discount here:

Steam news
Full Steam announcements and update articles for this title.
The Steam Summer Sale will be active from June 26th through to July 10th.
Check out our Summer Sale discount here:
The Steam Spring Sale will be active from March 19th through to March 26th.
Check out our Spring Sale discount here:
Update v14.2 continues our networking overhaul as highlighted in the Tabletop Simulator 2.0 roadmap, bringing you more stable, secure and reliable networking and connectivity in addition to an engine upgrade to Unity 6.3 LTS.
More reliable connections and fewer weird edge-case disconnects
Improved NAT traversal for smoother hosting/joining
More consistent latency behavior without changing how multiplayer fundamentally works
Better privacy & security: Connections are routed through Steam relays (no direct IP exposure) and all traffic is now encrypted
This update changes the minimum requirement for MacOS users to version 12 or higher.
Codebase cleanup & reorganization
Infrastructure upgrades, including our Perforce server
MoonSharp has been updated to a newer version with many miscellaneous fixes. It addresses json.encode\\decode issues with negative numbers and other bugs. \
We've added stack traces! When Lua errors occur you should see detailed information on the functions that were in progress when the error happened.
The lua console command now prints results, no more endless lua log(...) when testing!
Added a minimum spin amount when rolling dice and coins via Randomize
Fixed frame-dependent spin variance when rolling dice and coins with Randomize
Fixed a networking issue where packets that were exactly a multiple of 1 MB could break in transit
Fixed objects not returning to an Infinite Bag after changing states \
Fixed an issue where clients could not start looping/triggered effects \
\ Fixed issues with uppercase file extensions for PDF/Text/Audio \
\ File browser no longer causes a segfault in some cases \
File browser falls back to the built-in one if the OS browser fails to load
Fixed objects teleport and falling over and over again for clients on a table flip.
Fixed hidden zones not being editable for people with permissions to change them. \
Open your Steam Library
Right-click Tabletop Simulator → Properties…
Go to the Betas tab
Select the public_beta branch from the dropdown
Close the window and let Steam download the update
You can switch back to the live version at any time by setting the beta dropdown back to “None”.Please use the "Public Beta" tag for feedback to do with this patch.
More reliable connections and fewer weird edge-case disconnects
Improved NAT traversal for smoother hosting/joining
More consistent latency behavior without changing how multiplayer fundamentally works
Better privacy & security: Connections are routed through Steam relays (no direct IP exposure) and all traffic is now encrypted
Codebase cleanup & reorganization
Infrastructure upgrades, including our Perforce server
MoonSharp has been updated to a newer version with many miscellaneous fixes. It addresses json.encode\\decode issues with negative numbers and other bugs. \
We've added stack traces! When Lua errors occur you should see detailed information on the functions that were in progress when the error happened.
The lua console command now prints results, no more endless lua log(...) when testing!
Added a minimum spin amount when rolling dice and coins via Randomize
Fixed frame-dependent spin variance when rolling dice and coins with Randomize
Fixed a networking issue where packets that were exactly a multiple of 1 MB could break in transit
Fixed objects not returning to an Infinite Bag after changing states \
Fixed an issue where clients could not start looping/triggered effects \
\ Fixed issues with uppercase file extensions for PDF/Text/Audio \
\ File browser no longer causes a segfault in some cases \
File browser falls back to the built-in one if the OS browser fails to load
Fixed objects teleport and falling over and over again for clients on a table flip.
Fixed hidden zones not being editable for people with permissions to change them. \
The Board Game Fest will be active from January 26th through to February 2nd.
Check out the Board Game Fest sale here:
It's been a week since we announced the Tabletop Simulator 2.0 Roadmap and we're hitting the ground running with with Part 1 of our Network Security Overhaul.
We know there have been questions and concerns raised by the community following the roadmap announcement. Please know that we are listening and have more information to address your feedback in a more direct manner coming soon.For now our primary focus is action and getting tangible changes rolled out. This release centers on network hardening — a major re-write of our internal networking implementation to patch critical exploits and prevent malicious users from tampering with the game.While this update stabilizes our current infrastructure we are working on Part 2 of the overhaul - Migrating the game to use the new Steam Networking API.Alongside the security hardening we have made sure to issue game bans the users who were abusing the exploits by attacking servers and the server browser.
Thank you to everyone who participated in the Public Betas to help us test these critical infrastructure changes!Major Network Stack Rewrite: Overhauled the networking system to greatly improve security and stability.
Exploit Fixes: Patched multiple exploits, including potential "while loop" crashes caused by malicious packets.
RPC & Sync Validation: Added new validation checks to block malicious users (who are not registered correctly) from sending invalid Remote Procedure Calls (RPCs) or Syncs.
Packet Routing: Fixed issues where packets were still being routed to clients even if the call was invalid.
Traffic Limiting: Network calls are now strictly limited to specific destinations (Server or Client) to prevent unauthorized cross-communication.
P2P Logging: Added system logging messages when connecting via P2P. This will now display the Steam ID of users you connect to, allowing for easier reporting or blocking of malicious users.
Cross-Platform ID: Internal network IDs are now more robust, reducing connection issues between different platforms.
System Overhaul: The Search system has been revamped to work much better and with the improved network security standards.
Hotseat Fix: Fixed an issue where Search was not working correctly in Hotseat mode.
Order Alerts: Added a chat notification when a player changes the order of a deck or bag in the search menu.
Pastebin: Fixed the Pastebin URL converter to correctly handle both http and https links.
Host Migration: Updated host migration to provide clearer notifications to players about what is happening during the process.
Music Player: Fixed a network issue regarding the "ready check" when clients first connect to a game with active music.
Player Colors:
Fixed "player color change" messages not working correctly for clients.
Fixed an issue where choosing the color 'Grey' was not notifying the chat.
Physics Settings: Fixed an issue where physics settings were not editable by non-admins.
RPC Duplication: Fixed an issue where clients were doubling up on RPCs, causing duplications in actions (e.g., measuring movement).
Chat Blocking: Fixed an issue where chat messages were not being correctly blocked by Lua on client-side scripts.
v14.1.5 Hotfix 1
Fixed search not working for old decks with GUIDs that weren't unique for each card.
Fixed the orientation of objects in search menu when there is a custom alt zoom rotation set on them.
Fixed issues in hotseat with draw, search, etc not working if not player 1.
Fixed peek indicator not being removed when clients stop peeking an object.
Fixed peek indicator issues when sharing your hand with other players.
Made initial network connection process slightly more reliable.
Small network optimization by reducing network traffic by 1 packet per second per client.
Fixed search not working in hotseat for everyone but player 1. (FOR REAL)
Fixed search not working for old bags with GUIDs that collided by checking for collisions and fixing them on the object.
Hotfix v14.1.6
Fixed issue with Combined objects not displaying correctly for clients when they are children of children.
No longer do we force unique guids on decks or bags for search, because it can cause issues with mods expecting old behavior.
Hotfix v14.1.7
Bag is now searchable like decks with only searching the first few number of objects contained.
Better network security for old Lua UI.
Fixed legacy Lua Input not syncing correctly for the host.
Fixed notepad not syncing for clients.
Fixed issue with combined objects glitching out when cloning them.
Fixed issue with player.showOptionsDialog() not syncing correctly.
Hotfix v14.1.8
Fix major networking issue causing players to be kicked from a server when the number of players increased.
Fixed search reorder message always happening on decks and bags with cloned objects contained in them.
Fixed issue with legacy Lua input not sending select false events.
v14.1.8 Hotfix 1
Fixed broken table flip!
Improved error reporting when a blocked player connects to a host.
Blocked, banned, or not friend players will no longer notify for a game invite.
Now reports the SteamID of the player that is inviting you.
Happy New Year Everyone!
We are kicking off the year with what we are calling Tabletop Simulator 2.0 — a series of major updates that we will be releasing for free with the goal of modernizing Tabletop Simulator and setting up the platform for success over the coming decade and beyond.
Tabletop Simulator 2.0 is not a sequel but the same Tabletop Simulator you already own, upgraded and reworked to feel modern, snappy, and more comfortable to use. The recent v14.0 engine update was the stepping stone to begin this process, and we would like to share this roadmap with you early to incorporate your feedback and suggestions.Our major focus and centerpiece for 2.0 is the UI/UX overhaul — reworking the fundamentals of how you play, learn, and build in Tabletop Simulator.Improved gameplay experience: Rebuilding the interface and user experience to make TTS more approachable for new and experienced players alike.
Practical creator tools: New and improved tools for creators so they can spend more time creating and less time fighting interfaces.
Better performance & improved visuals: Modernizing the rendering pipeline and performance foundations.
Multiplayer reliability: Networking improvements with a focus on stability and security hardening.
VR rework: A modern VR foundation with improved interactions and VR-friendly UI.
Steam ecosystem: Better compatibility and usability on Steam platforms such as the Steam Deck and upcoming Steam hardware.
Stable & Secure Online Play
Networking modernization focused on reliability and security improvements.
Upgrading to the new Steam P2P networking which encrypts traffic and helps protect player privacy (including hiding IP addresses).
Overhauling the networking system to offer better protection against exploits from malicious users.
Performance & Hardening Improvements
A build/runtime upgrade moving the build over to IL2CPP for better performance characteristics and security hardening by raising the bar against common tampering/exploits.
New Interface & Experience Overhaul (Play Mode / Edit Mode)
Full UI/UX overhaul from the ground up on a modern framework (UI Toolkit).
The re-design will focus on creating two distinct modes that you can switch between:
Play Mode: Clean and intuitive UI designed to streamline gameplay and make the playing experience less cluttered and confusing.
Edit Mode: Advanced tools and options for creators and power users who want expansive control over their creative process.
We also want to support full UI theming and skinning (a “CSS-like” styling system) so creators can build more customized interfaces for their games.
Modern Control Scheme & Controller Support Improvements
More consistent controls across mouse/keyboard and controller use with the Steam Deck in mind.
Upgrading to Unity's new input system for better device support and a more modern action-based design.
Visuals & Performance Improvements
Major rendering modernization by upgrading to the Universal Rendering Pipeline (URP) while preserving legacy Workshop content.
Reduced CPU usage for rendering with URP's batcher (should improve frame rates and performance in many cases).
VR Rework — Modern VR Foundation & Better VR UI
Full VR rework introducing OpenXR with a focus on fluid VR interactions and VR-friendly interfaces.
Steam Deck / Steam Frame / Steam Machine Polish Pass
Focused improvements to make Tabletop Simulator run better on Steam platforms and future hardware.
Creator Marketplace
A curated marketplace for user content that aims to expand the library of available Tabletop Simulator content without interfering with existing free Steam Workshop submissions. Read more about the Creator Marketplace below.
Official DLC-style content
TTRPG assets & figurines
Original models & assets (tables, tokens, miniatures, props, environments)
Polished high-quality experiences designed to work “out of the box”
Marketplace submissions will be checked and curated by our team to ensure that they are of high quality and do not infringe on intellectual property rights.
The Creator Marketplace does not replace the Workshop or introduce a paywall on existing community content. It is an optional library in addition to the Workshop that will let you support creators who produce high-quality content. Like with current DLC content only the host will need to have purchased a marketplace item for it to be available to all connected players.You will not need to purchase a new copy of Tabletop Simulator — all of these updates will be applied to you for free.
The Steam Workshop remains fully supported. We are committed to keeping existing content fully playable during this modernization.
The core values of Tabletop Simulator remain the same — making it the best platform for finding and playing your favorite tabletop games.
The Winter Sale will be active from December 18 through to January 5th.
Check out the Winter Sale sale here:
Thanks to everyone who tried out this update in the public beta—your feedback was invaluable in helping us make it as good as it is. A lot of the new features and fixes came directly from what you shared with us.
New minimum OS / platform requirements:
Windows: 64-bit Windows 10 21H1+ (Windows 11 supported)
macOS: 11 Big Sur+
Linux: Ubuntu 22.04 / 24.04 (64-bit)
Win 32-bit builds are no longer supported.
Keybind behavior changed: keybinds now use physical key location instead of character (better across keyboard layouts). Keybinds have been reset due to this change.
Image pipeline update: your RAW image cache will be cleared with this update due to image pipeline changes and new translucency support.
Voice chat: if you are the host and disable voice chat, it disables voice chat for all players.
Gameplay, rules, and your saves are unchanged. This is primarily an engine + quality-of-life update.
Engine & platform
Engine upgrade to Unity 6 LTS for smoother performance, better stability, and faster loading in many cases. Over 5 years of engine improvements!
Native Apple Silicon support on macOS with a universal app (Apple Silicon + Intel), using Metal by default on Apple Silicon.
The game executable is now code signed, improving trust with Windows and reducing false positives with antivirus.
Rendering & mod assets
New Vulkan graphics API option on Windows & Linux (experimental) for potentially better performance in heavy scenes.
New rendering & image upgrades: higher quality PCSS shadows, optional image translucency, and WebP image support for more efficient mods.
Quality of life
Camera movement improvements, deal from bottom of deck, keyboard layout–friendly keybind behavior, turns system improvements, controller pointer smoothing, music player overhaul, notepad improvements, grid tools, erase-all controls, Cloud Manager upgrades, and new console options.
Lua / creators
Lua upgrades including a new turn-order API, improved deck dealing controls (including “deal from bottom”), putObject index support, plus stability fixes for scripting and drafting/hand selection workflows.
Updated TTS to Unity 6 LTS.
Updated all plugins to their latest compatible versions.
The game executable is now code signed, improving trust with Windows and reducing false positives with antivirus.
Windows
64-bit only.
Minimum: Windows 10 version 21H1 (build 19043) or newer.
Windows 11 fully supported.
macOS
Minimum: macOS 11 Big Sur or newer.
Ships as a universal app that runs on both Intel and Apple Silicon (M-series).
On Apple Silicon, TTS runs natively (no Rosetta required).
Linux
Officially supported/tested: Ubuntu 22.04 / 24.04, 64-bit.
Wayland and X11 supported (behavior may vary by distro/driver).
If you're on an older OS than the above, TTS may not launch after this update. Please update your system.
macOS (Apple Silicon)
Metal is now the default graphics API when running on Apple Silicon.
If you're not on Apple Silicon, the game uses OpenGLCore by default.
Windows & Linux
Added Vulkan as a new experimental graphics API.
In very demanding scenes, Vulkan can offer better performance on supported hardware.
If you hit visual glitches or stability problems, switch back to the default renderer.
Includes the latest Unity 6 security fixes, addressing known file-loading vulnerabilities in older engine versions.
Combined with code signing, this should reduce security prompts and exploit risk.
Greatly increased snappiness of WASD camera movement with less "floaty" gravity.
Keybinds now use physical key location instead of character, so bindings line up across different keyboard layouts.
Turn order UI now updates dynamically in the top-right player list whenever turn order changes.
Controller input for moving pointers should now feel slightly smoother.
Greatly optimized network serialization on CPU via more efficient bitpacking.
Image loading improvements
Loading new (uncached) images is now more performant.
Improved image quality in many cases.
Reduced likelihood of crashes when large or many new images are being loaded.
Added support for WebP images, a more efficient image format than JPG or PNG. (Feedback #2273)
Voice chat improvements:
Disabling voice chat in the configuration menu properly stops all voice chat processes.
This can fix audio issues with some Bluetooth headsets.
If you are the host and disable voice chat, it disables voice chat for all players.
Added an error message when trying to use voice chat when it isn't connected.
UI theme can now automatically follow your system theme if none is manually selected.
Added a higher quality shadow setting PCSS, which gives more realistic shadows and blurs based on distance.
Added a new console command Translucency that allows images to support partial translucency (EXPERIMENTAL, please send us feedback on this!).
Added a popup when disconnecting while players are still connected to offer them host migration. (Feedback #2663)
Note: Your RAW image cache will be cleared with this update due to image pipeline changes and new translucency support.
Added search filter for playlists. (Feedback #2143)
Added Clear Playlist button.
Added Export Playlist and Import Playlist
Save your current playlist to a file.
Add a playlist file into your current playlist.
Added Upload Music Folder
Select a folder and upload all songs in it at once, with naming.
TTS will now suggest a name for a song when you provide a URL or file.
Fix: Music player no longer breaks when loading a new mod. (Feedback #2038)
Fix: Music events no longer break when a song ends with no playlist active.
Fix: Music player no longer resets when loading a save file with no music saved on it.
On-screen notes region is now resizable.
New notepad settings for:
Font
Font size
Text justification
New console commands:
ui_notepad_edit
ui_notepad_left_align
ui_notepad_locked
ui_notepad_fixed_width_font
ui_notepad_font_size
ui_notepad_size
ui_notepad_text
While Grid settings are open, the grid now renders on top of everything, making adjustments easier.
Controlled via ui_grid_highlight_when_editing (console / Misc setting).
New anchor & gizmo mode
Click the Gizmo button in the Grid window.
Select a component to center the grid on it.
Ctrl+click a second component to size the grid appropriately (using your snap settings). (Feedback #1871)
Added measure_grid_multiplier command.
Applies to drawn lines, text, and decals.
Non-promoted players
"Erase all" now only erases their own drawings/decals. (Feedback #1841)
Promoted players
Can erase everything
Can erase just their own
Can erase all content from a specific player
Cloud folder dropdown now has a "Select Folder" button that opens the Cloud Manager folder browser. (Feedback #711)
Starred folders
Folders can now be Starred (button next to folder name).
Starred folders show first in the folder browser dropdown. (Feedback #711)
Cloud search now restricts results to the current folder. (Feedback #1839)
Fix: Resolved several file browser issues and cleaned up its underlying code to improve stability.
Holding ALT while dealing or drawing from a deck will now take the card from the bottom of the deck. (Feedback #2680)
The deck will do a small “hop” animation to make it clear when this happens.
Works both with the number keys and the GUI.
Dealing hand objects will now correctly deal to your new hand if you change the table.
Custom Figurine
Added toggle to use a minimal collider on the card part. (Feedback #1929)
Added option to mirror the back texture. (Feedback #2107)
Added Reset Scale to an object's scale context menu. (Feedback #2078)
Hotseat player names are now remembered between sessions. (Feedback #2070)
Added vr_floor command / VR setting
Lets you turn off the floor independently of fog / "Floor Of Mist". (Feedback #2173)
Server browser improvements
Player names now show in the server browser.
Your name is hidden if you are offline, invisible, or you untick the "Show Name In Server Browser" option.
component_hotkey_state_change
When enabled, press number keys while hovering an object to change its State.
Appears in Misc Settings.
ui_notebook
Shows the Notebook window.
text_tool_default_font_size
Sets default size for the Text tool. (Feedback #2000)
autorun_lua
Controls whether Lua automatically runs when updated.
camera_reset_on_color_change
Controls whether the camera automatically moves to your seat when you change color. (Feedback #256)
show_name_in_server_browser
Controls whether your name is listed in the server browser for public servers you join.
measure_grid_multiplier
Applies a scale multiplier when the line measure tool is in Grid mode.
Fixed help command not working on commands that have no arguments.
Removed old console commands related to global chat. (Feedback #2117)
Fixed a major networking issue where loading a save file could break the game state. (Feedback #2641)
Fixed rewinds and autosaves not working correctly. (Feedback #2656)
Fixed an issue where XML UI could be blocked by incorrect objects, including the invisible floor at y = 1. (Feedback #2647)
Fixed a 64-depth issue when downloading and loading mods. (Feedback #2640)
Fixed hand selection working incorrectly with the new Lua drafting mechanic.
Fixed an issue where you could erase your drawn lines incorrectly. (Feedback #2702)
Fixed several HandSelectMode issues. (Feedback #2618)
Fixed a bug in Lua Wait.collect. (Feedback #2635)
Fixed an issue where XML UI would not be blocked by objects when it should.
Fixed XML UI not hiding in hidden zones. (Feedback #2673)
Fixed partial transparency when importing UI and decal images for the first time.
Fixed advancing the turn immediately after loading a game always going to the first player instead of the second.
Fixed a macOS issue where text could be entered while the Cmd modifier key was held. (Feedback #2636)
Fixed infinite bags visually breaking after Undo or Reload. (Feedback #2665)
Fixed drop indicator not showing color when dropping with Alt + Right Click for decks and stacks.
Fixed grid size inputs not allowing you to type a . at the end.
Fixed onLoad not executing in Hot Seat Mode. (Feedback #2629)
Fixed RPG tileset snapping preview so it now displays correctly.
Fixed Flick and Combine sometimes requiring a double click when you are a client.
Fixed right click while drawing a line not canceling for everyone else. (Feedback #125)
You can now obtain the "Be Social" achievement using in-game chat. (Feedback #1895)
Fixed game crashing when trying to load a CMYK JPG.
Fixed line tool not converting to cm in component mode. (Feedback #1934)
Fixed "Showing Hand" button displaying incorrect color after seat swap.
Fixed on-screen hand blocking in-game UI. (Feedback #1757)
Fixed hotseat turn not being set to correct player on load. (Feedback #1960)
Fixed hotseat players being unable to drop cards in searched deck. (Feedback #1959)
Fixed hotseat turn incorrectly resetting when loading a Classic game.
When starting a hotseat game, the game now only picks larger tables, so all player colors are immediately selectable.
Fixed context menu not clamping to screen. (Feedback #1966)
Fixed context menu appearing in the wrong position when right-clicking a card in hand. (Feedback #2051)
Fixed unintuitive Text Tool placement behavior.
Fixed appearance of custom card aspect ratios when searching containers. (Feedback #2021)
Fixed cards merging incorrectly with a deck when the deck is on a snap point. (Feedback #2063)
Fixed left edge of search dialog not having a collider. (Feedback #2077)
Fixed Japanese language name in language select. (Feedback #2116)
Fixed shake detector triggering when the user spams Tap.
Fixed Random Domino/Card/Mahjong Tile not generating every possible object. (Feedback #2160, #2154)
Fixed rewind/forward (rwd/fwd) not working correctly. (Feedback #2161)
Fixed game breaking on first launch but working on subsequent launches.
Fixed cards getting cut off onscreen when scaling very large hands.
Fixed deleting a folder in Cloud Manager not deleting all contained files.
Fixed issues when uploading PDF files via "Upload All" in the Cloud Manager.
Fixed a bug where objects with multiple assets (primary/secondary AssetBundles) could think they finished loading too early, breaking on-screen hands, highlighting, and Lua load completion.
Fixed dice behavior when picking up and dropping instantly, so dice now roll correctly in that scenario.
Fixed VR floor setting being inverted for the vr_floor option.
Added tryObjectStateChange(object, new_state_index, player_label) and object.tryStateChange(new_state_index, player_label). (Feedback #1822)
Limited tryObjectStateChange and tryStateChange to only trigger on valid state indices.
Added Turns.getTurnOrder() which returns the current turn order, including automatic order (in automatic mode) and custom order (in custom mode).
Lua will now receive the ALT modifier on the events onNumberTyped and onObjectNumberTyped.
Updated obj.deal(int NumCards, string Color = Colour.SeatedLabel, int HandIndex = 1, bool DealFromBottom = false)
Now supports dealing from the bottom of the deck when DealFromBottom = true (only works for decks).
chooseInHand(label, minCount, maxCount, prompt, players) -> affectedPlayers
chooseInHandOrCancel(label, minCount, maxCount, prompt, players) -> affectedPlayers
clearChooseInHand(players) -> affectedPlayers
currentChooseInHand(player) -> label
onPlayerHandChoice(player_color, label, objects) → Callback triggered when a player confirms their selection.
Added Wait.collect(table expected_ids, on_finished, on_add = nil, on_error = nil) -> {table expected, table results, add(id, ...), reset()}.
When the task for a given id is complete, call: collect_table:add(id, ...).
The first time this happens for a given id:
collect_table.results\ is set to the ... you passed in.
If you provided on_add, it is called as: on_add(id, ...).
Error handling:
If you call add more than once for the same id and you provided on_error, it is called as: on_error(Wait.COLLECT_DUPLICATE, id, ...).
If you call add with an id that was not expected and you provided on_error, it is called as: on_error(Wait.COLLECT_UNKNOWN, id, ...).
on_finished(results) is called with the final results table.
collect_table:reset() to zero out call counts and clear results so you can reuse the same collector.
storeRewindState(closure andThen, block_further_stores)
Attempts to store a rewind state if there are unsaved changes, then calls: andThen(success, didSave).
success
true → the call completed successfully.
false → a rewind state could not be stored. You should always check this before continuing.
didSave
true → a new rewind state was actually written.
false → call succeeded but there was nothing new to save.
If block_further_stores is true and success is true, then no additional rewind states will be recorded until:
You call storeRewindState again, or
You call allowRewindStore(), or
60 seconds have passed.
allowRewindStore()
Clears the block on storing rewind states.
player.drawHandStash() → draws all cards from stash into hand.
player.setHandStashLocation(v3 position, int rotation) → set stash position & rotation.
card.moveToHandStash() → moves a card in hand into its stash.
Lua added an optional index parameter to putObject(Obj, index). (Feedback #659)
Fixed an issue with Lua GetData() involving the new Steam IDs.
Fixed JSON.encode not working correctly with Unicode. (Feedback #1263)
Revert fixing XML UI being not being clickable through objects (caused too many regressions) https://feedback.tabletopsimulator.com/2728
Fixed SSAO bug with being able to see SSAO through objects https://feedback.tabletopsimulator.com/2639
Fixed model tint color translucency, when the translucency command setting is off.,
Fixed token mesh generation for certain images type that was breaking.,
Fixed snapping preview for grid not showing rotation correctly https://feedback.tabletopsimulator.com/2726
Fixed snapping preview for rotation snap points not show correctly when spawning objects.,
Fixed incorrect random ranges for decks, mahjong tiles and dominos https://feedback.tabletopsimulator.com/2717
Fixed resolution settings in the graphics menu cutting off https://feedback.tabletopsimulator.com/2727
Fixed depth limit for JSON load to 256 from 128 https://feedback.tabletopsimulator.com/273030
Added a 'Community Chat' button to the chat menu that opens the Tabletop Simulator community group chat on Steam. Community Chat Rules need to be accepted before you can join.
Fixed crash loading certain images (let us know if you have anymore crash events!) https://feedback.tabletopsimulator.com/2736
Fixed Custom Figurine not updating when you choose to update similar https://feedback.tabletopsimulator.com/2722
Fixed ui_toast_duration error causing the misc setting menu to not open on first click.
Added Lua Turns.endTurn() an easy way to end a players turn.
Changed json save file max depth to 1024...
Optimized the Wait class and fixed potential bugs with callback and calling stop().
Fixed "crashed" caused when deleting large RAWT cache after update (made deletion async, so it doesn't appear crashed).
Fixed not being able to pass turns for non admin players.
Fixed being able scale objects with locked Y scale to 1 to really small or big.
Fixed stacking distance for small cards and decks so that the spread action properly works with them.
Fixed autosaves happening when your server becomes disconnected.
https://feedback.tabletopsimulator.com/
If you hit problems, attaching your Player.log helps us a lot:Windows: %USERPROFILE%\\AppData\\LocalLow\\Berserk Games\\Tabletop Simulator\\Player.log
macOS: ~/Library/Logs/Berserk Games\\Tabletop Simulator/Player.log
Linux: ~/.config/unity3d/Berserk Games\\Tabletop Simulator/Player.log
OS version
GPU + driver version
Player.log
Workshop link (if it's mod-related)
A quick note from the team: We know it’s been a long time since the last big update. Behind the scenes we’ve been doing a lot of groundwork on the engine and tools, and this patch is the first step to a renewed focus on regular updates and improvements to TTS. Thank you for your patience and for sticking with us ❤️
Open your Steam Library.
Right-click Tabletop Simulator → Properties…
Go to the Betas tab.
Select the public beta branch for the Unity 6 update from the dropdown.
Close the window and let Steam download the update.
You can switch back to the live version at any time by setting the beta dropdown back to “None”.Please use the "Public Beta" tag for feedback to do with this patch.
Windows: 64-bit Windows 10 21H1+ (Windows 11 supported) macOS: 11 Big Sur+ Linux: Ubuntu 22.04/24.04 (64-bit)Engine upgrade to Unity 6 LTS: smoother performance, better stability, and faster loading in many cases.
Native Apple Silicon support on macOS with a universal app that runs on both Apple Silicon and Intel, using Metal by default on Apple Silicon.
New Vulkan graphics API option on Windows & Linux (experimental) for potentially better performance in heavy scenes.
New minimum system requirements:
Windows: 64-bit Windows 10 21H1+ (Windows 11 supported)
macOS: 11 Big Sur+
Linux: Ubuntu 22.04/24.04 (64-bit)
Win 32-bit builds are no longer supported.
Game & plugins updated to latest versions and now code-signed for fewer antivirus/security issues.
Big quality-of-life upgrades: camera movement, keybind behavior, music player overhaul, notepad improvements, grid tools, erase-all controls, Cloud Manager upgrades, new console options.
New Lua tools for drafting, hand selection, hand “stash” areas, rewind control, and more scripting power.
Gameplay, rules, and your saves are unchanged. This is primarily an engine and quality-of-life update.
Updated TTS to Unity 6 LTS.
Updated all plugins to their latest compatible versions.
The game executable is now code signed, improving trust with Windows and reducing false positives with antivirus.
Windows
64-bit only.
Minimum: Windows 10 version 21H1 (build 19043) or newer.
Windows 11 fully supported.
macOS
Minimum: macOS 11 Big Sur or newer.
Now ships as a universal app that runs on both Intel and Apple Silicon (M-series).
On Apple Silicon, TTS now runs natively (no Rosetta required).
Linux
Supported: Ubuntu 22.04 / 24.04, 64-bit.
Wayland and X11 supported (behavior may vary by distro/driver).
If you’re on an older OS than the above, TTS may not launch after this update. Please update your system.
macOS (Apple Silicon):
Metal is now the default graphics API when running on Apple Silicon.
If you’re not on Apple Silicon, the game uses OpenGLCore by default.
Windows & Linux:
Added Vulkan as a new experimental graphics API.
In very demanding scenes, Vulkan can offer better performance on supported hardware.
Because Vulkan is still experimental, if you hit visual glitches or stability problems, switch back to the default renderer.
Includes the latest Unity 6 security fixes, addressing known file-loading vulnerabilities in older engine versions.
Combined with code signing, this should reduce security prompts and exploit risk.
Greatly increased snappiness of WASD camera movement with less “floaty” gravity.
Keybinds now use physical key location instead of character, so bindings line up across different keyboard layouts.
Voice chat improvements:
Disabling voice chat in the configuration menu properly stops all voice chat processes.
This can fix audio issues with some Bluetooth headsets.
If you are the host and disable voice chat, it disables voice chat for all players.
Added an error message when trying to use voice chat when it isn’t connected.
UI theme can now automatically follow your system theme if none is manually selected.
Greatly optimized network serialization on CPU via more efficient bitpacking.
Image loading improvements:
Loading new (uncached) images is now more performant.
Improved image quality in many cases.
Reduced likelihood of crashes when large or many new images are being loaded.
In the current public beta, post-processing is not active in VR. This means effects like LUT-based color grading and other post-processing visuals do not work in VR yet. We’re planning to restore this in a future update.
Added search filter for playlists. (Nolt #2143)
Added Clear Playlist button.
Added Export Playlist and Import Playlist:
Save your current playlist to a file.
Add a playlist file into your current playlist.
Added Upload Music Folder:
Select a folder and upload all songs in it at once, with naming.
TTS will now suggest a name for a song when you provide a URL or file.
Fix: Music player no longer breaks when loading a new mod. (Nolt #2038)
Fix: Music events no longer break when a song ends with no playlist active.
Fix: Music player no longer resets when loading a save file with no music saved on it.
On-screen notes region is now resizable.
New notepad settings for:
Font
Font size
Text justification
New console commands:
ui_notepad_edit
ui_notepad_left_align
ui_notepad_locked
ui_notepad_fixed_width_font
ui_notepad_font_size
ui_notepad_size
ui_notepad_text
While Grid settings are open, the grid now renders on top of everything, making adjustments easier.
Controlled via ui_grid_highlight_when_editting (console / Misc setting).
New anchor & gizmo mode:
Click the Gizmo button in the Grid window.
Select a component to center the grid on it.
Ctrl+click a second component to size the grid appropriately (using your snap settings). (Nolt #1871)
Applies to drawn lines, text, and decals.
Non-promoted players:
“Erase all” now only erases their own drawings/decals. (Nolt #1841)
Promoted players:
Can erase everything.
Can erase just their own.
Can erase all content from a specific player.
Cloud folder dropdown now has a “Select Folder” button that opens the Cloud Manager folder browser. (Nolt #711)
Starred folders:
Folders can now be Starred (button next to folder name).
Starred folders show first in the folder browser dropdown. (Nolt #711)
Cloud search now restricts results to the current folder. (Nolt #1839)
Fix: Resolved several file browser issues and cleaned up its underlying code to improve stability.
Custom Figurine:
Added toggle to use a minimal collider on the card part. (Nolt #1929)
Added option to mirror the back texture. (Nolt #2107)
Added Reset Scale to an object’s scale context menu. (Nolt #2078)
Hotseat player names are now remembered between sessions. (Nolt #2070)
Added vr_floor command / VR setting:
Lets you turn off the floor independently of fog / “Floor Of Mist”. (Nolt #2173)
Server browser improvements:
Player names now show in the server browser.
Your name is hidden if you are offline, invisible, or you untick the “Show Name In Server Browser” option.
component_hotkey_state_change
When enabled, press number keys while hovering an object to change its State.
Appears in Misc Settings.
ui_notebook
Shows the Notebook window.
text_tool_default_font_size
Sets default size for the Text tool. (Nolt #2000)
autorun_lua
Controls whether Lua automatically runs when updated.
camera_reset_on_color_change
Controls whether the camera automatically moves to your seat when you change color. (Nolt #256)
show_name_in_server_browser
Controls whether your name is listed in the server browser for public servers you join.
Fixed help command not working on commands that have no arguments.
Removed old console commands related to global chat. (Nolt #2117)
You can now obtain the “Be Social” achievement using in-game chat. (Nolt #1895)
Fixed game crashing when trying to load a CMYK JPG.
Fixed line tool not converting to cm in component mode. (Nolt #1934)
Fixed “Showing Hand” button displaying incorrect color after seat swap.
Fixed on-screen hand blocking in-game UI. (Nolt #1757)
Fixed hotseat turn not being set to correct player on load. (Nolt #1960)
Fixed hotseat players being unable to drop cards in searched deck. (Nolt #1959)
Fixed hotseat turn incorrectly resetting when loading a Classic game.
When starting a hotseat game, the game now only picks larger tables, so all player colors are immediately selectable.
Fixed context menu not clamping to screen. (Nolt #1966)
Fixed context menu appearing in the wrong position when right-clicking a card in hand. (Nolt #2051)
Fixed unintuitive Text Tool placement behavior.
Fixed appearance of custom card aspect ratios when searching containers. (Nolt #2021)
Fixed cards merging incorrectly with a deck when the deck is on a snap point. (Nolt #2063)
Fixed left edge of search dialog not having a collider. (Nolt #2077)
Fixed Japanese language name in language select. (Nolt #2116)
Fixed shake detector triggering when the user spams Tap.
Fixed Random Domino/Card/Mahjong Tile not generating every possible object. (Nolt #2160, #2154)
Fixed rewind/forward (rwd/fwd) not working correctly. (Nolt #2161)
Fixed game breaking on first launch but working on subsequent launches.
Fixed cards getting cut off onscreen when scaling very large hands.
Fixed deleting a folder in Cloud Manager not deleting all contained files.
Fixed issues when uploading PDF files via “Upload All” in the Cloud Manager.
Fixed a bug where objects with multiple assets (primary/secondary AssetBundles) could think they finished loading too early, breaking on-screen hands, highlighting, and Lua load completion.
Fixed dice behavior when picking up and dropping instantly, so dice now roll correctly in that scenario.
Fixed VR floor setting being inverted for the vr_floor option.
Added tryObjectStateChange(object, new_state_index, player_label) and object.tryStateChange(new_state_index, player_label). (Nolt #1822)
You can hook into the “state change” action to drive similar custom behavior in your own scripts.
You should not use this as a generic “do anything” trigger; keep it semantically tied to state-change-like behavior so your mods remain intuitive.
Added Wait.collect(table expected_ids, on_finished, on_add = nil, on_error = nil) -> {table expected, table results, add(id, ...), reset()}.
When the task for a given id is complete, call: collect_table:add(id, ...).
The first time this happens for a given id:
collect_table.results\ is set to the ... you passed in.
If you provided on_add to Wait.collect, it is called as: on_add(id, ...).
Error handling:
If you call add more than once for the same id and you provided on_error, it is called as: on_error(Wait.COLLECT_DUPLICATE, id, ...).
If you call add with an id that was not expected and you provided on_error, it is called as: on_error(Wait.COLLECT_UNKNOWN, id, ...).
on_finished(results) is called with the final results table.
collect_table:reset() to zero out call counts and clear results so you can reuse the same collector.
storeRewindState(closure andThen, block_further_stores)
Attempts to store a rewind state if there are unsaved changes, then calls: andThen(success, didSave).
success:
true → the call completed successfully.
false → a rewind state could not be stored. You should always check this before continuing.
didSave:
true → a new rewind state was actually written.
false → call succeeded but there was nothing new to save.
If block_further_stores is true and success is true, then no additional rewind states will be recorded until:
You call storeRewindState again, or
You call allowRewindStore(), or
60 seconds have passed.
If success == false, the safest simple strategy is to retry storeRewindState before proceeding with the critical part of your script.
allowRewindStore()
Clears the block on storing rewind states.
You should call this any time you previously used storeRewindState with block_further_stores = true, once your “don’t interrupt me” work has finished.
player.getHandStash() → returns the stash object if it exists.
player.drawHandStash() → draws all cards from stash into hand.
player.setHandStashLocation(v3 position, int rotation) → set stash position & rotation.
card.moveToHandStash() → moves a card in hand into its stash.
chooseInHand(label, minCount, maxCount, prompt, players) -> affectedPlayers
chooseInHandOrCancel(label, minCount, maxCount, prompt, players) -> affectedPlayers
clearChooseInHand(players) -> affectedPlayers
currentChooseInHand(player) -> label
onPlayerHandChoice(player_color, label, objects) → Callback triggered when a player confirms their selection.
Fixed JSON.encode not working correctly with Unicode. (Nolt #1263)
Windows: C:\\Users\\\\AppData\\LocalLow\\Berserk Games\\Tabletop Simulator\\Player.log
macOS: ~/Library/Logs/Berserk Games/Tabletop Simulator/Player.log
Linux: ~/.config/unity3d/Berserk Games/Tabletop Simulator/Player.log
Windows: %USERPROFILE%\\Documents\\My Games\\Tabletop Simulator\\Mods
macOS: ~/Library/Tabletop Simulator/
Linux: ~/.local/share/Tabletop Simulator/
OS version
GPU + driver version
Player.log
Workshop link (if it’s mod-related)
From September 29th to October 6th - grab Tabletop Simulator and all DLCs at 50% off — our biggest discount of the season! Don’t miss your chance to expand your tabletop collection for half the price! 🛒 Get it now on Steam! 🚀
From June 26th to July 10th - grab Tabletop Simulator and all official DLCs at 50% off — our biggest discount of the season! Don’t miss your chance to expand your tabletop collection for half the price! 🛒 Get it now on Steam! 🚀 https://store.steampowered.com/app/286160/Tabletop_Simulator/
About
This page aggregates Steam news feeds, patch notes, and developer announcements for Tabletop Simulator, sourced from official Steam community posts.
Major updates, balance changes, and seasonal events often correlate with player-count spikes — cross-reference announcements here with the live charts on the main Tabletop Simulator statistics page.
Articles link back to Steam for full changelogs. SteamScope refreshes news entries as new posts are published to the game's Steam hub.
FAQ
Browse related Steam game intelligence pages and categories.