Status
SteamPeaks
ChartsSalesUpcomingPatchesNewsCalculator
New on SteamEvery app, DLC and depot the minute Steam creates itAppsEvery app on Steam, newest change firstPackagesSubs and bundles, and what each containsDepotsDepots, manifests and install sizesTagsSteam's user tags and the games under themDevelopers & publishersCompanies and their cataloguesTechnologiesEngines, SDKs and anti-cheat found in the filesChange historyEvery PICS changelist as it lands
SignalsNineteen readings of the whole catalogueCompareAny games side by sideRecordsAll-time peaks and the days they were setReportsWeekly and monthly write-upsAlerts & newsroomWatch a game, get told when it movesSteam statusIs Steam up, right nowWeb API explorerTry the endpoints in the browser
NewsSteam's own announcements and the sales calendarCalculatorWhat a Steam account is worth, and its pile of shame
/
Sign in
/
SteamPeaks
The ultimate resource for Steam data.
ExploreChartsSalesSales and festsUpcomingPatchesNewsRecordsTrendingSignals
DatabaseAppsPackagesDepotsTagsDevelopersTechnologiesChange history
ToolsCalculatorCompareSearchAlertsSteam statusAPI
SiteMethodologyFAQDiscordSupportSign in via Steam
Not affiliated with Valve or Steam. Game names and artwork belong to their owners. All times UTC.
PrivacyCookiesFair useStatus
Tabletop SimulatorNewsUpdate 14.0 - Engine Upgrade, Feature Additions & Performance Improvements
Major update

Update 14.0 - Engine Upgrade, Feature Additions & Performance Improvements

Tabletop Simulator · published 15 Dec 2025, 14:29 UTC

All newsPlayers around this dateRead on Steam

Tabletop Simulator v14.0 - Engine Upgrade, Feature Additions & Performance Improvements!

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 ❤️

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.

Read First (Important Changes)

  • 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.

Summary

  • 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.


Engine, Platform & Security

  • 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.

New OS / Platform Requirements

  • 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.

Graphics APIs

  • 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.

Security

  • 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.


General & Performance

  • 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.

Rendering Options

  • 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!).

Connectivity & Session Safety

  • 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.


Music Player

  • 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.


Notepad (On-Screen Notes)

  • 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


Grid

  • 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.


Erase All

  • 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 Manager

  • 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.


Dealing: Deal From Bottom

  • 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.


Misc Features

  • 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.


Console Commands

New/updated commands:

  • 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.

Fixes:

  • Fixed help command not working on commands that have no arguments.

  • Removed old console commands related to global chat. (Feedback #2117)


Open Beta Fixes

  • 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)


Fixes

  • 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)


Misc Fixes

  • 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.


Lua

New Lua functions and features for creators:

Object State Changes

  • 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.

Turn Order & Input Modifiers

  • 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.

Dealing API

  • 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).

Hand Select Mode

Automate drafting & hand selection:

  • 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.

Wait.collect

  • Added Wait.collect(table expected_ids, on_finished, on_add = nil, on_error = nil) -> {table expected, table results, add(id, ...), reset()}.

Wait.collect takes a list of expected ids and returns a collect_table:

  • 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[id] 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, ...).

When all expected ids have been added:

  • on_finished(results) is called with the final results table.

You can call:

  • collect_table:reset() to zero out call counts and clear results so you can reuse the same collector.

Rewind State

Rewind states are stored periodically. If a store happens in the middle of a complex scripted change, you can end up with bad intermediate states. These helpers let you control when rewinds are saved. (Feedback #617)

  • 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.

Hand Zone Stash

Each player’s primary hand zone now has a “stash” where cards in the players hand can be stashed temporarily:

  • 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.

Use cases: drafting mechanics, temporary hidden piles, etc.

Lua API Addition

  • Lua added an optional index parameter to putObject(Obj, index). (Feedback #659)

Lua Fixes

  • Fixed an issue with Lua GetData() involving the new Steam IDs.

  • Fixed JSON.encode not working correctly with Unicode. (Feedback #1263)


v14.0.3 Hotfix 1

  • 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


v14.0.3 Hotfix 2

  • 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.


v14.0.3 Hotfix 3

  • 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.


Troubleshooting & Logs

For issues or feedback, post them here:

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

Enable logging with /log in chat or the -log launch option.


Thank you ❤️

Engine upgrades are big and tie in to every platform and a ton of unique hardware configurations. If you run into issues, please include with your report:

  • OS version

  • GPU + driver version

  • Player.log

  • Workshop link (if it's mod-related)

And again, thank you for your patience during the long gap of silence. This engine work sets us up for faster, more frequent updates going forward.We have a big announcement coming soon - keep an eye out for around New Years!

More from Tabletop Simulator

Other announcements

All news
Sale26 Jun 2026⛱️ Steam Summer Sale - 50% Off Tabletop Simulator & DLC⛱️ 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:Sale19 Mar 2026🌳Steam Spring Sale - 50% Off Tabletop Simulator & DLC🌳 Tabletop Simulator & All DLC is on a 50% discount throughout the duration of the Steam Spring Sale! The Steam Spring Sale will be active from March 19th through to March 26th. Check out our Spring Sale discount here:In-game event1 Mar 2026Update v14.2 - Updated Steam P2P Networking & Engine UpdateUpdate 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. New Steam Networking (Full Migration) We've retired the legacy Steam P2P system and fully migrated to the new Steam Networking APIs across all multiplayer code paths. What…