STEAMB

Меню

Tabletop Simulator v14.0 Public Beta — Engine Upgrade (Unity 6 LTS)

Tabletop Simulator v14.0 Public Beta — Engine Upgrade (Unity 6 LTS)

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

Public Beta (Steam)

[p align="start"]This is a huge engine and platform update, so we’re rolling it out as a public beta first to shake out any remaining issues before it goes live for everyone.

How to opt into the public beta on Steam

  • Open your Steam Library.

  • Right-click Tabletop SimulatorProperties…

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

[p align="start"]You can switch back to the live version at any time by setting the beta dropdown back to “None”.

Give feedback

[p align="start"]Please report bugs and suggestions on our Nolt board 👉 https://feedback.tabletopsimulator.com/

[p align="start"]Include your OS, GPU, and logs (see Troubleshooting & Logs below) when reporting issues. It helps a lot.

Please use the "Public Beta" tag for feedback to do with this patch.

[p align="start"]

[p align="start"]Windows: 64-bit Windows 10 21H1+ (Windows 11 supported) macOS: 11 Big Sur+ Linux: Ubuntu 22.04/24.04 (64-bit)

Summary

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

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.

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

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.

  • Because Vulkan is still experimental, 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.

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

VR (Beta Note)

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

Music Player

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

Notepad (On-Screen Notes)

  • On-screen notes region is now resizable.

  • New notepad settings for:

  • Font

  • Font size

  • Text justification

  • New console commands:

  • [c]ui_notepad_edit[/c]

  • [c]ui_notepad_left_align[/c]

  • [c]ui_notepad_locked[/c]

  • [c]ui_notepad_fixed_width_font[/c]

  • [c]ui_notepad_font_size[/c]

  • [c]ui_notepad_size[/c]

  • [c]ui_notepad_text[/c]

Grid

  • While Grid settings are open, the grid now renders on top of everything, making adjustments easier.

  • Controlled via [c]ui_grid_highlight_when_editting[/c] (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 )

Erase All

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

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

Misc Features

  • 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 [c]vr_floor[/c] command / VR setting:

  • Lets you turn off the floor independently of [c]fog[/c] / “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.

[p align="start"](The previously mentioned standalone external server browser tool has been removed and is no longer part of this update.)

Console Commands

[p align="start"]New/updated commands:

  • [c]component_hotkey_state_change[/c]

  • When enabled, press number keys while hovering an object to change its State.

  • Appears in Misc Settings.

  • [c]ui_notebook[/c]

  • Shows the Notebook window.

  • [c]text_tool_default_font_size[/c]

  • Sets default size for the Text tool. ( Nolt #2000 )

  • [c]autorun_lua[/c]

  • Controls whether Lua automatically runs when updated.

  • [c]camera_reset_on_color_change[/c]

  • Controls whether the camera automatically moves to your seat when you change color. ( Nolt #256 )

  • [c]show_name_in_server_browser[/c]

  • Controls whether your name is listed in the server browser for public servers you join.

[p align="start"]Fixes:

  • Fixed [c]help[/c] command not working on commands that have no arguments.

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

Misc Fixes

  • 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 ([c]rwd/fwd[/c]) 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 [c]vr_floor[/c] option.

Lua

[p align="start"]New Lua functions and features for creators:

Object State Changes

  • Added [c]tryObjectStateChange(object, new_state_index, player_label)[/c] and [c]object.tryStateChange(new_state_index, player_label)[/c]. ( Nolt #1822 )

[p align="start"]These are called whenever a user uses the state change action on an object — even if the object doesn’t actually have extra states. That means:

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

[c]Wait.collect[/c]

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

[p align="start"][c]Wait.collect[/c] takes a list of expected ids and returns a [c]collect_table[/c]:

  • When the task for a given id is complete, call: [c]collect_table:add(id, ...)[/c].

  • The first time this happens for a given id:

  • [c]collect_table.results[id][/c] is set to the [c]...[/c] you passed in.

  • If you provided [c]on_add[/c] to [c]Wait.collect[/c], it is called as: [c]on_add(id, ...)[/c].

  • Error handling:

  • If you call [c]add[/c] more than once for the same id and you provided [c]on_error[/c], it is called as: [c]on_error(Wait.COLLECT_DUPLICATE, id, ...)[/c].

  • If you call [c]add[/c] with an id that was not expected and you provided [c]on_error[/c], it is called as: [c]on_error(Wait.COLLECT_UNKNOWN, id, ...)[/c].

[p align="start"]When all expected ids have been added:

  • [c]on_finished(results)[/c] is called with the final [c]results[/c] table.

[p align="start"]You can call:

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

Rewind State

[p align="start"]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. ( Nolt #617 )

  • [c]storeRewindState(closure andThen, block_further_stores)[/c]

  • Attempts to store a rewind state if there are unsaved changes, then calls: [c]andThen(success, didSave)[/c].

  • [c]success[/c]:

  • [c]true[/c] → the call completed successfully.

  • [c]false[/c] → a rewind state could not be stored. You should always check this before continuing.

  • [c]didSave[/c]:

  • [c]true[/c] → a new rewind state was actually written.

  • [c]false[/c] → call succeeded but there was nothing new to save.

  • If [c]block_further_stores[/c] is [c]true[/c] and [c]success[/c] is [c]true[/c], then no additional rewind states will be recorded until:

  • You call [c]storeRewindState[/c] again, or

  • You call [c]allowRewindStore()[/c], or

  • 60 seconds have passed.

If [c]success == false[/c], the safest simple strategy is to retry [c]storeRewindState[/c] before proceeding with the critical part of your script.

  • [c]allowRewindStore()[/c]

  • Clears the block on storing rewind states.

  • You should call this any time you previously used [c]storeRewindState[/c] with [c]block_further_stores = true[/c], once your “don’t interrupt me” work has finished.

Hand Zone Stash

[p align="start"]Each player’s primary hand zone now has a “stash”:

  • [c]player.getHandStash()[/c] → returns the stash object if it exists.

  • [c]player.drawHandStash()[/c] → draws all cards from stash into hand.

  • [c]player.setHandStashLocation(v3 position, int rotation)[/c] → set stash position & rotation.

  • [c]card.moveToHandStash()[/c] → moves a card in hand into its stash.

[p align="start"]Use cases: drafting mechanics, temporary hidden piles, etc.

Hand Select Mode

[p align="start"]Automate drafting & hand selection:

  • [c]chooseInHand(label, minCount, maxCount, prompt, players) -> affectedPlayers[/c]

  • [c]chooseInHandOrCancel(label, minCount, maxCount, prompt, players) -> affectedPlayers[/c]

  • [c]clearChooseInHand(players) -> affectedPlayers[/c]

  • [c]currentChooseInHand(player) -> label[/c]

  • [c]onPlayerHandChoice(player_color, label, objects)[/c] → Callback triggered when a player confirms their selection.

Lua Fixes

  • Fixed [c]JSON.encode[/c] not working correctly with Unicode. ( Nolt #1263 )

Troubleshooting & Logs

[p align="start"]If you hit problems, attaching your Player.log helps us a lot:

  • Windows: [c]C:\Users\\AppData\LocalLow\Berserk Games\Tabletop Simulator\Player.log[/c]

  • macOS: [c]~/Library/Logs/Berserk Games/Tabletop Simulator/Player.log[/c]

  • Linux: [c]~/.config/unity3d/Berserk Games/Tabletop Simulator/Player.log[/c]

[p align="start"]Enable logging with [c]/log[/c] in chat or the [c]-log[/c] launch option.

[p align="start"]Your Mods and other user data live here (good for backups or clean caches):

  • Windows: [c]%USERPROFILE%\Documents\My Games\Tabletop Simulator\Mods[/c]

  • macOS: [c]~/Library/Tabletop Simulator/[/c]

  • Linux: [c]~/.local/share/Tabletop Simulator/[/c]

Thank you ❤️

[p align="start"]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)

[p align="start"]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 — and your feedback in the public beta will help us get there.

Читать в Steam ↗

Комментарии 0

Гостевые никнеймы не подтверждают личность. Все комментарии проходят проверку владельцем сайта.

Обсуждение ещё не началось.

    Настройки cookies

    Вы можете изменить выбор в любой момент. Отказ от аналитики не ограничивает доступ к сайту.

    Технологии, провайдеры и сроки хранения