TUXDB - LINUX GAMING AGGREGATE
made by: NuSuey
NEWSFEED
GAMES
▪️CROWDFUNDING▪️COMMUNITY DEALS▪️STEAM DECK▪️CALENDAR
tuxdb.com logo
Support tuxDB on Patreon
Currently supported by 11 awesome people!

🌟 Special thanks to our amazing supporters:


✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Benedikt][David Martínez Martí]

Any feedback for tuxDB? Join us!

Screenshot 1
Fullscreen Screenshot 1
×
Screenshot 2
Fullscreen Screenshot 2
×
Screenshot 3
Fullscreen Screenshot 3
×
Screenshot 4
Fullscreen Screenshot 4
×
Screenshot 5
Fullscreen Screenshot 5
×
Screenshot 6
Fullscreen Screenshot 6
×
Experience digital tabletop gaming like never before with realistic physics and satisfying controls. Recreate and modify classic games or build your own and share them with the world through mod.io. Using mod.io is seamless using your Steam account. You can browse and download the available mods from within the game, or get a mod you don't have yet before joining a game by just presseing a button.
Utilize specialized tools to play niche and complex games with up to 16 players across PC and VR. Get ready for the definitive tabletop gaming experience, with Tabletop Playground.

16 Player Multiplayer

Play solo or with up to 16 players simultaneously online, with cross platform play between PC storefronts planned. Save and resume games at any time and discover a never-ending selection of games to be played with friends or strangers across the world.

Modern And Satisfying Controls

Featuring powerful physics and responsive, snappy controls, every move and action is as satisfying to do as it is in real life. Whether through a screen, or through virtual reality with and without motion controllers, experience more responsive and fluid gameplay than ever before.

Powerful And Accessible In-Game Editor

Adjust the rules and enjoy tabletop favorites exactly how you want, or quickly forge your own ideas into original games. The easy to use and powerful in-game editor, coupled with JavaScript scripting to allow for complex rules and actions, means you’re only limited by your creativity. Share your games with the world through mod.io in game, allowing for cross platform and store mod support for your creations.

Specialized Tools For Niche Games

Built from the ground up with greater functionality for war-gaming and niche games in mind. Utilize specialized tools to create formations, measure distances/angles, access movement/dice roll history and use custom measure units. Digital war-gaming will never be the same again!

Realistic Graphics And More Customization

Through the use of Unreal Engine 4, experience the ultimate immersive game sessions you can have playing tabletop games online. Personalize your game space with beautiful and cozy 3D locations and lose yourself in the detailed game pieces and realistic graphics.
Tabletop Playground
Plasticity StudiosDeveloper
ModularityPublisher
2020-05-15Release
🎹🖱️ Keyboard + Mouse
Very Positive (112 reviews)
Public Linux Depots:
  • Tabletop Playground Linux [2.89 G]
Patch Notes - 1/6/2026

Changes

  • The tooltip on decks will now display the name of the top card if the deck is face up.

    [/*]
  • When adding widgets to a UI template, you can now double-click a widget type to select it and close the dialogue

    [/*]
  • Color hex codes now display and accept alpha-defining characters when alpha is enabled

    [/*]
  • Alpha values can now be set to 0, allowing for fully-transparent objects.

    [/*]
  • When arranging selected objects, they are now arranged in selection order rather than by vertical position. (Note that this may change again depending on feedback.)

    [/*]

Scripting Updates

  • Added a new method: GameObject.snapTo(SnapPoint)

    [/*]
  • Warnings are no longer shown when removing a non-existent delegate

    [/*]
  • OnReleased is now called only after an object is fully released.

    [/*]

Bug Fixes

  • Stopwatch now displays minute values properly

    [/*]
  • Button images are no longer saved when changing to a text button

    [/*]
  • Object Library can now be pinned when opened from the toolbar.

    [/*]
  • Copying the Calculator UI template from the tools package no longer causes an error message

    [/*]
  • The Health Bar\'s \"Allow Overheal\" and \"Allow Negative Value\" options now function properly

    [/*]
  • Reduced camera glare when using top-down camera in 3D environments

    [/*]
  • Tags for cards on a newly created deck now display properly

    [/*]
  • The Confirmation dialogue for deleting a resource will no longer appear behind the resource selection window.

    [/*]
  • The Grid now displays using the proper material in low-performance mode

    [/*]
  • Fixed a bug causing the Mod.io \"View Profile\" button to sometimes point to the wrong profile.

    [/*]
  • Fixed an issue with text color sRGB conversion that caused button text to be too bright.

    [/*]
  • Fixed an issue that prevented some changes to UI widgets to fail to display in the template editor preview

    [/*]
  • Moving a global UI in multiplayer should now properly change its position for all clients

    [/*]

TTS Importer Improvements

  • Bag-type containers can now be imported rotated, so that if they are using a \"token\" type texture it appears right-side up.

    [/*]
  • Removed an extra rotation that was getting applied to cards

    [/*]
  • Fixed a crash

    [/*]

[ 2026-01-07 17:43:40 CET ] [Original Post]
Tabletop Playground Beta Patch Notes

Developers Note

This is the big one! Were launching a new version of Tabletop Playground, and while its almost impossible to list everything weve improved, weve done our darndest below.

Note that these changes will only show up on the new Beta version of Tabletop Playground. So if you want to experience it, head to the [u]Beta page [/u] to sign up.

If youre one of those new Beta users, welcome! If you just want to get playing or creating, you may want to check out [u]Getting Started [/u] page in the Knowledge Base. But for anyone hungry for details on the new version, read on.

Overview

  • Modernized Game Creation Flow You can now create from the tabletop, and its faster to get there than ever.

    [/*]
  • Streamlined Component Editing In addition to a new, friendlier UI, weve got a variety of new features, like streamlined deck creation and components that automatically update to match their players color.

    [/*]
  • New-Look, Streamlined UI Including updates to Context Menus and the Toolbar.

    [/*]
  • Custom User Interface Creator Create UI for your mods with a powerful in-game WYSIWYG editor, rather than relying on scripting.

    [/*]
  • UI-Powered Tool Library Including a calculator, timer, health bars, notecards, improved counters, and a tool you can use to add recall workers functionality to worker placement games.

    [/*]
  • Engine and Performance Improvements The game has been updated to Unreal 5.5, and added new options to boost performance on lower-spec machines.

    [/*]
  • VR Temporarily Unavailable Due to the engine upgrade.

    [/*]
  • Peer-to-Peer Package Sharing You can now send packages to other users without using Mod.io as an intermediary.

    [/*]
  • Improved Player Slot Handling You can now define which seats/colors are available in session settings, enabling a variety of UX improvements.

    [/*]
  • Updated Cameras, Controls, and Defaults Weve made a variety of subtle tweaks to our controls, updated some hotkeys, and added a top-down camera

    [/*]
  • Asset Cleanup Tool Allows you to quickly find and delete unused assets.

    [/*]
  • New and Improved Tabletop Simulator Import Tool (WIP)

    [/*]
  • Probably A Lot of Other Stuff Were Forgetting!

    [/*]

Thats a lot! Lets dive into the details:

Modernized Game Creation Flow

  • The old package editing screen is no more; when you create a new package, youll now be taken straight to the tabletop.

    [/*]
  • New object templates are now primarily created via the Object Library.

    [/*]
  • You can edit any objects template from the tabletop by right-clicking it and choosing Customize or Customize -> Edit Template.

    [list]
  • Any object-level edits youve made will be reflected in this dialogue. For example, if youve changed the color of the object via Appearance, that color will be reflected in the Edit Template dialogue.

    [/*]
  • Once youre happy with your changes, you can choose Save as New, which will create a new template reflecting your updates, or Save and Apply, which will apply your changes to all other objects with the same template.

    [/*]
[/*]
  • As part of an overall push to reduce the clicks required to reach the tabletop, Environments are now saved as part of your tabletop saved state. If you wish to change your environment later, you can do so on the tabletop using the top menu.

    [/*]
  • [/list]

    Local Save Handling

    • Local saves are now associated with the package used to generate them to make it easier to find them later.

      [list]
    • When you select a package for a multiplayer game, if you have any local saves for that package, youll see New Game and Load Game options on the right.

      [/*]
    • The same is true in Editor, only in that case youll see Start States, Local Saves, and Autosaves. Speaking of which

      [/*]
    [/*]
  • In Editor, autosaves are also now associated with the package used to generate them, making it easy to recover your table state if something goes wrong.

    [/*]
  • [/list]

    Streamlined Component Creation

    Revamped Object Creation UI

    The old interface for editing an object provided a lot of options, but looked awfully intimidating to new users. Weve reworked it into a tabbed dialogue that surfaces the most crucial options up front. In many cases weve also updated the names or controls related to specific options to make them more intuitive.

    But dont worry, weve been careful to preserve all existing functionality, so experienced users should still be able to find all the options theyre used to (and then some).

    For more details, see [u]Creating and Editing Object Templates [/u] article in the Knowledge Base.

    Deck and Token Creation

    • When creating a Deck, Tile Stack, Token Stack, TTP can now automatically generate a card sheet from individual images, rather than requiring the user to layout the sheet themselves in another program

      [list]
    • Note that this feature is not available when using web images.

      [/*]
    [/*]
  • When using a sheet created this way, youll be able to swap out individual images, making it easy to add or update a single card.

    [/*]
  • [/list]

    Veteran game creators will no doubt have experience organizing their card images into grids, usually in an external app, which the virtual tabletop then slices into cards. That always seemed like a pain to us, so TTP can now do that work for you. For more details, see [u]Cards, Tiles, and Tokens [/u] and in the Knowledge Base.

    Dice Creation

    • When creating 6-sided dice, TTP can generate a texture from individual face images and swap out face images in much the same way as it does for dice, tiles, and tokens.

      [/*]
    • For all dice types, the Customize menu now clearly shows you which face youre editing when applying custom names to dice faces.

      [/*]

    See [u]Dice [/u] in the Knowledge Base for details.

    Use Player Colors

    • When setting the color of an object template, you may now choose Use Player Color. This will automatically change the color of the object when it is assigned to a specific player.

      [/*]
    • As with any color applied in appearance, you can use a Mask map to limit which portions of the object take on the player color.

      [/*]
    • This setting has been automatically applied to most simple objects in the Object Library, including:

      [list]
    • Cube

      [/*]
    • Cylinder

      [/*]
    • House

      [/*]
    • Meeple

      [/*]
    • Pawn

      [/*]
    • Pyramid

      [/*]
    • Right Angle Prism

      [/*]
    • Sphere

      [/*]
    [/*][/list]

    For details, see [u]Use Player Colors [/u].

    Web Images

    • You may now use Web Images instead of local textures for most object types that use textures.

      [/*]
    • Web images can now be defined at the template level, and used when creating new object templates.

      [/*]

    Previously, web images were only available for Cards at the object-level. So youd have to create your deck using a local image, then override it in Properties with a web image. Now, you can directly create templates with web images, and can use web images in most places a texture is called for. See [u]Web Images [/u] for more.

    Misc. Improvements

    • Two-sided boards are now supported.

      [/*]
    • Container Options can now be defined at the template level

      [/*]

    New-Look Streamlined UI

    • All menus and dialogs have been updated to a new appearance.

      [/*]

    Context Menu Changes

    These changes pertain to the menus that appear when right-clicking objects or the empty table:

    • Context menus now appear under the users mouse pointer rather than the center of the object

      [/*]
    • Disabled or irrelevant options are no longer shown (for example, Shuffle will no longer appear when right-clicking on a single card).

      [/*]
    • Some options have been renamed, removed, or reorganized:

      [list]
    • Ping no longer appears.

      [/*]
    • Copy and Delete no longer appear.

      [/*]
    • Stack Explorer has been renamed Search

      [/*]
    • Coordinates has been renamed Scale and Rotate and moved into the Customize sub-menu.

      [/*]
    • Properties, Appearance, and Edit Template have been moved into the Customize sub-menu.

      [/*]
    • Deal and Draw no longer appear.

      [/*]
    • For books, State has been renamed to Page

      [/*]
    [/*]
  • Some new options have been added:

    • Send to Ground or Release from Ground, depending on the objects current layer.

      [/*]
    • Assign to Player submenu allows quickly assigning objects to players.

      [/*]
    [/*]
  • [/list]

    Toolbar Changes

    These changes pertain to the toolbar in the upper left:

    • Some tools have been grouped. Mouse over the tool to see the other options in the group. Specifically:

      [list]
    • Ground Cursor (formerly Grab Ground Object) has been grouped under Regular Cursor

      [/*]
    • Measure While Moving has been grouped under the Measure tool.

      [/*]
    [/*]
  • The Object Library can now be accessed via this toolbar

    [/*]
  • A new UI Cursor has been added, grouped under the Zone tool.

    [/*]
  • [/list]

    Custom User Interface Creator

    • Create UI for your mods with a powerful in-game WYSIWYG editor, rather than relying on scripting.

      [/*]
    • UI can be applied to individual objects, or to the screen itself, allowing for Digital Board Game-style interfaces.

      [/*]
    • The UI Cursor (available in the top left toolbar, grouped under Zone, or via the Ctrl+U hotkey) allows users to easily reposition or resize UI.

      [/*]
    • Creators can add custom options so users can modify their UI as desired.

      [/*]
    • UI capabilities have been expanded in many places, for example:

      [list]
    • Buttons can now include both text and images

      [/*]
    • Users can now define rollover images or color changes for buttons.

      [/*]
    • Borders can now be made using images instead of colors

      [/*]
    • Color options have expanded for dropdowns, check boxes, and sliders

      [/*]
    • Widgets can now be made clickthrough transparent, meaning they will not prevent users from clicking on objects below them.

      [/*]
    [/*]
  • UI can be assigned to individual players. This can be used in a few ways:

    • Use Player Color is available when choosing a color on a UI widget.

      [/*]
    • UIs visibility can be set such that it only displays to its owner or their team

      [/*]
    [/*]
  • [/list]

    In the past, users could only add UI to TTP mods via custom scripting. Now it should be dramatically easier to create UI and to make it look good in the process.

    For much more on how this feature works see [u]User Interface Basics [/u].

    UI-Powered Tool Library

    Weve augmented TTPs object library with a variety of new functional tools.

    In Editor, you will see both a 3D object version of the tool, and the UI Template that powers it. The UI template can be used as Global or Screen UI, or added to different objects if you prefer.

    The current tools are:

    • Calculator

      [/*]
    • Collapsible Note

      [/*]
    • Counter and Flexible Counter

      [list]
    • These are an alternative to the old multistate object counters (which remain in the game). They offer more intuitive click-button controls, the ability to directly type numbers in, and, in the case of Flexible Counter, configurable increments.

      [/*]
    [/*]
  • Health Bar

    • Note that this is currently only available as a UI template; there is not an object version.

      [/*]
    [/*]
  • Notecard

    [/*]
  • Stopwatch

    [/*]
  • Tablet

    • This is the existing tablet object. Note that it uses scripted UI, so it does not have an accessible UI version.

      [/*]
    [/*]
  • Timer

    [/*]
  • Worker Placement Base

    • Allows users to add worker recall functionality to their game without any scripting know-how.

      [/*]
    [/*]
  • [/list]

    Engine and Performance Updates

    • The engine has been upgraded to Unreal 5.5

      [/*]
    • Added Image compression option, on by default. This slightly increases load times, but reduces crashes and improves performance.

      [/*]
    • Added a lower quality renderer option to improve performance on lower-end machines.

      [/*]
    • Table collisions have been improved to reduce physics bugs.

      [/*]
    • Now runs natively on Apple Silicon.

      [/*]

    VR Temporarily Disabled

    Due to the engine update, VR is currently not functional on the Beta. We hope to restore it at some point in the future.

    Peer-to-Peer Package Sharing

    You can now share packages directly with other users, without first uploading them to Mod.io. When a user joins a game, if they do not have the necessary package, they will automatically download it from the host. For details see [u]Peer-to-Peer Package Sharing [/u].

    Improved Player Slot Handling

    • Users can now define which seats and colors are available in their mod by selecting Player Slots in Session Settings.

      [/*]
    • Players can now change their slot by clicking on their name in the upper right corner.

      [/*]
    • Objects can be assigned to player slots by right-clicking them and using the Assign to Player sub-menu.

      [list]
    • This is also now available for all objects, not just Card Holders and Containers.

      [/*]
    [/*]
  • Assigning a card holder to a player automatically generates a default camera position for that players seat behind the card holder.

    • Moving the card holder will move the camera as well.

      [/*]
    • This behavior can be disabled in Player Slot Properties.

      [/*]
    [/*]
  • [/list]

    For more details, see [u]Setting Up Player Slots [/u].

    Updated Controls, Cameras and Defaults

    Camera Updates

    • There is now a top-down camera mode, in addition to the normal and first-person camera options. You can cycle through camera modes with the Z key.

      [/*]
    • Quick Zoom, mapped to space bar by default, has been tweaked for a hopefully less disorienting experience (zoom distance has been reduced, and rotation eliminated).

      [/*]

    Card Handling Improvements

    • Fixed an issue that sometimes prevented users from drag-selecting multiple cards in UI space.

      [/*]
    • The radius for card stacking has been tweaked to reduce instances of accidental stacking or non-stacking

      [/*]
    • When cards stack, they now check for overlapping cards and incorporate them, eliminating an issue that would occasionally cause two stacks of cards to sit on top of each other while appearing to be a single stack.

      [list]
    • Note that if you prevent the cards from stacking by holding CTRL, it will also prevent this behavior.

      [/*]
    [/*][/list]

    Default Updates

    Many default hotkeys and options have been changed. Note that these changes will only affect new users; existing users settings will be preserved.

    • The Default cursor style is now 2D.

      [/*]
    • Default Hold Height has been adjusted.

      [/*]
    • Group now defaults to G (was Ctrl+G)

      [/*]
    • Switching to Ground Mode now defaults to Ctrl+G (was G)

      [/*]
    • Increase and Decrease Object Size have gained Hyphen and = as secondary keybindings, so that the + and - keys at the top of most keyboards will work for them in addition to standalone + and - keys.

      [/*]
    • The default size for text labels has been reduced by 50%

      [/*]
    • New object templates now have their Ground Access set to Zoom and Context by default.

      [/*]
    • Allow Online Images is now enabled by default for objects using web images in their templates

      [/*]

    Asset Cleanup Tool

    Weve added a tool for quickly finding and deleting assets in your package that are not in use. See [u]Managing Assets [/u] for details.

    New Tabletop Simulator Import Tool

    Weve replaced the old Tabletop Simulator Import tool with a new one. This one is available in-client; to use it, create a new package with an empty table state, and choose Import TTS Package from the top menu.

    Note that this feature is still in development and has some inherent limitations. For details, see [u]Tabletop Simulator Importer [/u].

    Account Settings

    • Users can now change their Display Name to whatever they wish, rather than using their Steam or Mod.io account name.

      [/*]
    • Players can now see which Mod.io account theyre signed into.

      [/*]

    Other Misc. Changes

    • Weve added a d2 (Coin) option to the Dice library

      [/*]
    • Changed default hidden card behavior from showing a blur to showing the card back. The standard card decks are changed as well, existing games with custom cards are not affected.

      [/*]
    • Editor coordinates and sizes now use the measure unit configured in session options (inches by default).

      [/*]
    • User packages are now always shown at the bottom of the list in Object Library, rather than in alphabetical order amongst the built-in packages.

      [/*]
    • Game Boards and Tablets in the object library now have a more useful default zoom.

      [/*]
    • The Direct Connect option has been deprecated.

      [/*]

    Scripting

    Added UIElement.persistState and ScreenUIElement.persistState to allow persisting state of UI widgets automatically

    Added GameObject.onScriptReloaded, called after a script on an object has been reloaded

    Added anchorX and anchorY parameters to Canvas.addChild and Canvas.updateChild

    Added new ImageBorder widget

    Added MultilineTextBox.setAutoWrap and MultilineTextBox.isAutoWrap

    Character limit for MultilineTextBox raised to 5000

    Additional color customization options for many scripted widgets

    Colors set on widgets now directly reflect the set color on screen instead of going through an sRGB conversion. This can affect the look of existing mods.

    Allowed size parameters for Canvas.addChild to be empty to use desired size of child widget

    Allowed size members of ScreenUIElement to be zero to use desired size of widget

    Allowed larger font sizes (up to 100) for RichtText widget

    UIElement now has a property called Owner. It can be used to restrict visibility to players owning a UI, and to set UI colors to a player color

    PlayerPermission has new methods: removePlayer, setOwner, setOwnerTeam, setGameMaster

    Fixes

    Removed \"Load State\" button for clients in multiplayer

    Prevented the camera from colliding with tables while editing them

    Fixed bug causing cards to remain visible in the search window after being dragged to the table

    Fixed an issue allowing invalid object template configurations (such as dice with no faces)

    Fixed an issue causing main drive folder contents on Windows (like C:\\\\) to display incorrectly in file import dialog

    mod.io consent dialog can no longer appear behind other menus

    Fixed an issue causing objects to raise over objects above them when editing their template

    Creating labels no longer requires zone permission

    Shuffling now correctly updates the deck explorer window

    Context menus on labels now correctly close when the label is deleted.

    Corrected cursor behavior when returning from editing a template in preview mode

    Labels with custom fonts now display correctly for joining clients

    Prevented card hands with many cards from blocking the cursor in some areas where no card was visible

    Fixed an issue that caused error messages when moving templates into folders

    Whisper messages should no longer fail in bad network conditions

    Players now correctly switch primary card holders when loading a saved state

    Decks showing fronts and items spawned from containers now spawn in the correct orientation.

    Image shape models no longer produce error messages in DirectX 11 mode

    Scripting Fixes

    UI Element rotation roll values now behave correctly

    UIs with a LayoutBox that don\'t have width and height specified now display correctly on zoomed objects

    Card.takeCards(1, true, 0, true) no longer causes the front card of the stack to change

    Text boxes now update text for other players even while other players have the text box focussed (but not while they\'re editing text)

    Removed flicker when using StaticObject.updateUI

    Fixed an issue that sometimes caused duplicate objects to appear above containers when using Container.take with keep=true

    Destroying an object within a container no longer leaves an unusable item in the container

    Interactive widgets within ContentButtons no longer show a \"Missing UI action proxy\" warning for clients

    GameObject.onFlipUpright and GameObject.onScriptReloaded are now cleared when reloading scripts

    Context menus for multistate objects now show custom actions correctly

    setTimeout and setInterval no longer continue to trigger when an exception is thrown in the executed code

    Flipping an object no longer causes a Zone.onOverlap event at the origin

    RichText widgets now use the font size specified with setFontSize in parts of the text that were declared as bold or italic

    GameObject.snap should now always snap down the object and work properly with animation when moving the object using StaticObject.setPosition right before snapping

    [ 2025-12-17 22:15:35 CET ] [Original Post]
    The future of Tabletop Playground

    I know it\'s been quite a while since the last update, but the lack of public activity doesn\'t mean that nothing has happened: I\'m excited to share that Dire Wolf Digital has acquired Tabletop Playground! You may also know them from board games like Clank! and Dune: Imperium or digital adaptations like Root and Ark Nova.

    In this post I want to explain what this means for existing players: The game will continue to get updated, and you will of course receive all future updates if you already own the game. We have a shared vision on how to move forward: I\'ve been working with the team from Dire Wolf and I\'ll continue to be involved in developing the game further.

    With Dire Wolf\'s support, we\'ve been able to deliver some significant improvements. No existing functionality or mods will be removed as a result of the acquisition. We\'re about to start a beta test with the new version. The full list of changes would be too much for this post, but here are a few highlights:

    The editor is now completely integrated into the game, no need to leave the table to create new objects. All editor screens have been updated to make them easier to understand and use while keeping the full functionality.

    The User Interface has a completely new look and has been improved for better usability.

    A new template UI system allows you to create user interfaces in the editor. You can make things like character sheets without scripting or use the created interfaces together with scripts.

    A set of new integrated tools built with the new template UI, including timers, counters, a calculator, and a worker placement tool.

    The beta will be compatible with all existing games, but because of the new features, beta players won\'t be able to connect with players using the current version. Packages created in the beta may not work correctly in the live version if they make use of new features. You can find more info on compatibility during the beta period here: https://tabletopplayground.com/knowledge-base/beta-mod-compatibility/

    \nIf you want to join the beta or learn more, check out https://tabletopplayground.com/beta/

    \nThank you for your continued support and for your patience!

    [ 2025-12-15 23:00:15 CET ] [Original Post]
    In-game Editor Update

    This update is all about the in-game editor (also known as preview mode). There are several changes and updates that remove the need to return to the main editor view for most uses:

    Add "New Template" button in object library for edited package in preview mode
    Add "New Folder" button in object library for edited package
    Add buttons on templates in object library for edited package to allow editing, duplicating, and removing templates
    Allow Drag&Drop for templates in edited package to move them between folders, in object library and main editor window
    You can now edit templates of objects from other packages. Before modifying, you'll need to save them as new templates in the edited package.
    Editing scale, color and other properties of templates that also exist as object properties during preview mode is now more consistent
    Changed buttons in preview mode to "Close", "Save as New", "Save and apply"
    Allow editing card stack properties when editing a card template in preview mode. The cards in the edited stack and other card stacks from the same template will be reset to the template default on saving.
    Don't lift penetrable held objects above regular objects

    Scripting
    Add `UIElement.castShadow` to allow control over whether a UI casts shadows
    Add `CheckBox.setBackgroundTransparent` and `CheckBox.isBackgroundTransparent` to make the box invisible while it is unchecked
    Always call `GameObject.onReleased` when an object is released. Before it wasn't called when the object was snapped.
    Ensure that non-interactive objects are included in scripting traces and overlap queries

    Fixes
    Fixed issues when using drag&drop in the card stack explorer and container explorer
    Editing relative scale of labels and zones did not work properly
    Zooming objects with certain UI widgets could crash the game when the zoom was supposed to show UI
    Zooming to cards in card stack explorer as client could cause an error message to be displayed
    Lighting settings had no effect in Cyberpunk environment
    `CheckBox` check state changes on host weren't shown on clients
    `MultilineTextBox.setBackgroundTransparent` was not replicated to clients
    Zoomed size could be wrong for objects that had UIs with `UIElement.useWidgetSize = true` and `UIElement.zoomVisibility != UIZoomVisibility.Regular`
    `TextBox.setBackgroundTransparent` and `MultilineTextBox.setBackgroundTransparent` did not make the text box fully transparent while hovered or focused
    Using `StaticObject.onSnappedTo` could cause a crash after reloading scripts

    [ 2024-04-04 16:20:31 CET ] [Original Post]
    Unreal 5 upgrade

    The Unreal 5 upgrade is here! This update moves Tabletop Playground to Unreal Engine 5, future-proofing the game and improving the foundation for further development. While most of the changes are under the hood, you will also see lots of improvements and a couple of fixes to long-standing issues that weren't possible to resolve before:

    Apple Silicon support: The game now runs much better on recent Macs by natively supporting M1/M2/M3 chips
    The mod.io UI accessible from the main menu has been updated and is now available on Mac and Linux as well
    Allow hiding floor in non-3D maps: renamed "Lighting" in session options to "Environment", moved "Set Background" button to the environment dialog and added "Hide Floor" checkbox in the same dialog
    Improved physics stability in some situations like stacking thin objects such as cards
    The tablet browser version has been updated, improving support for some websites that didn't work with the older browser version
    Text boxes now support using the Tab key to move to the next text field
    Message and input boxes can now be closed by pressing enter
    Improved validation for phase name in turn settings
    Allow much brighter lights - use with caution!
    Allow double clicking a package when starting a new game to continue to map selection
    Show notifications when trying to draw or deal cards while no suitable card holders exist
    Change "Private" checkbox to "Hidden" when uploading a package to align with mod.io terminology
    Prevent users from setting custom package path to the directory of the built-in packages (because that would cause issues with built-in packages not being available by default)
    Allow loading autosaves when starting preview mode

    Scripting
    Default to view aligned UI presentation for zoomed object with screen style presentation
    Added documentation for $uncaughtException
    Prevent adding too much data (more than 64kb) to an object using setSavedData
    Parts of the scripting API were not available for table scripts when starting a new game with an empty table

    Fixes
    The mouse cursor on Linux could get an offset after the game lost focus
    Some custom tables were imported sideways
    Pressing Enter brought up chat in main menu
    Object library and notes windows changed their size on re-opening with UI scale larger than 100%
    Stored objects with required add-on packages didn't become valid immediately after the package was added
    Some Chinese characters were not displayed correctly
    Dice roll message for single dice did not correctly include the name of the rolled dice face after the last update
    No UI interaction was possible when blindfolded in VR

    [ 2024-02-17 16:25:21 CET ] [Original Post]
    November Update

    The November update is here with new features, scripting enhancements, and bug fixes!

    Allow face names of dice to be empty. They will not result in tooltips and are omitted from dice roll messages
    After deleting a mod on mod.io, automatically upload the package as a new mod when trying to upload again

    Scripting
    Add `StaticObject.onSnappedTo`
    Add `GameObject.onFlipUpright`
    Add `GlobalScriptingEvents.onShake`
    Script button in editor for table objects is now enabled. Table object scripts have a `refTable` variable available instead of `refObject`
    `GameObject.snap` and `GameObject.getSnappedToPoint` did not work in zones that prevent the host from snapping

    Fixes
    Physics state of objects was reset when changing visual properties (like primary color) from scripts
    3D scripting UIs were not interactable while the cursor was pointing at the floor
    When joining own game by running multiple instances on one computer, new clients ended up in the same player slot as the host
    When the reload button at the top of the editor screen was pressed after a collider model file was changed, the collider visualization wasn't updated
    Sounds played from scripts in 3D stopped playing when moving out of hearing range

    [ 2023-11-28 17:30:16 CET ] [Original Post]
    October Update

    A small update that adds a couple of convenience features and fixes some bugs while work is underway to update the game to Unreal Engine 5!

    Add options for package selection in editor to show thumbnails and filter out downloaded packages (both now enabled by default)
    Add align to center horizontal/vertical buttons in object coordinates window
    You can now quickly move a card you highlight in a card holder or your hand all the way to the left or right by pressing 1 or 2
    Add `GlobalEvents.onPackageAdded
    Don't change snap point values in editor when switching to creating a snap point grid

    Fixes
    After zooming an object with a UI that was visible on the zoomed object, the original UI wasn't interactive anymore
    Grabbing additional objects from a container as a client in multiplayer and using the number keys to arrange them led to unexpected behavior
    There was a small missing triangle in the lower right corner of the back of wide cards or tiles
    Game could freeze for a few seconds on startup with many subscribed mods

    [ 2023-10-24 19:34:29 CET ] [Original Post]
    September Update

    The September update is here with lots of bug fixes and enhancements to the scripting API:

    Scripting
    Add `PlayerProxy.setSelectedObjects`
    Add `TurnSystem.setCurrentTurn`, `TurnSystem.setCurrentPhase`, and `TurnSystem.setCurrentRound`
    Add `TurnSystem.onTurnChanged`
    Add `ProgressBar.setBarColor` and `ProgressBar.getBarColor`
    Add `Panel.getNumChildren` and `Panel.getAllChildren`
    Add `WidgetSwitcher.getNumChildren` and `WidgetSwitcher.getAllChildren`
    Add `Button.setJustification` and `Button.getJustification`
    Add `ImageWidget.getImageURL`
    Add `GameWorld.getAllTags`
    Add `Package.allow`
    Add `restrictTags` parameter to `SnapPoint.getSnappedObject`

    Fixes
    Tinting did not work for textured or two-sided translucent objects
    When switching a switcher object in a zone, it was moved to above the zone
    When first adding a table to a package, starting a preview with an empty table did not show the package until returning to the main menu
    Cards with Hidden Type "Card Back" did not cast a shadow while held face down
    Peeking cards kept the card obscured in VR or when a scripted UI was attached to the card
    For hexagonal card, setting "Emissive Front" to true created a ghost of the front texture on the back of the card
    Emissive maps had no effect for translucent models
    Resetting held objects in measure move mode still added a measurement message to the chat
    Removing a description from an object still showed the description in the tooltip of the object
    Trying to use "Store in Library" on a new install without ever opening the object library resulted in an error message
    Double clicking on the folder selection when moving an object to a different folder in the editor produced unexpected results
    When creating a new object in an object script and immediately calling setScript, the script on the new object was executed twice when reloading scripts
    Spotlight angles and intensity were not always read correctly from saved template files
    Fix a rare crash that could occur when using `GameWorld.addScreenUI`
    When using multiple normals in a `ScriptDrawingLine`, results could be incorrect
    `CheckBox` text could spill over its allotted space
    Don't allow using the game directory as package location if it isn't writable (could happen for Windows Store users)
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2023-09-28 18:54:06 CET ] [Original Post]
    July Update

    This is a smaller update which brings a couple of interface and convenience improvements:

    The package list in the new game screen now shows images in addition to package names
    Packages in the new game screen can now be sorted by last played or by name
    Add a new option for object templates, available in the generic pane in the editor: "Ground Access". None by default, you can configure ground objects to allow zooming and the context menu from the regular cursor.
    Players can now quickly measure in any cursor mode by holding the ping key (tab by default)
    A new "Camera Acceleration" option in the advanced interface settings allows you to make the camera movement more smooth (but less precise)
    The coordinates window now uses the measure unit configured in the session (inches by default) for position and size. Previously it always used cm.
    Fix: Saving a template in the editor while not authenticated (or not connected to the internet) caused a crash
    Fix: Using `ImageButton.setSourceCard` could cause crashes
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2023-07-28 19:03:01 CET ] [Original Post]
    June Update: Spectators and Game Masters

    The June update comes with two new player types: spectators and game masters! Read the full changelog below or find out more in the knowledge base:
    https://tabletop-playground.com/knowledge-base/spectators-and-game-masters/

    Players can now switch to being a spectator in the player options. Spectators don't occupy a player slot, they cannot interact with objects on the table, and other players can't see their cursor. They are still able to use the chat and voice chat, though. By default, spectators can't see any hidden information but you can change that in the session permissions, allowing them to see cards of all players, peek under card stacks, and use the container and stack explorers.
    Added new permissions: You can disable spectators completely or allow spectators to see hidden information.
    In the session options under player slots, you can now assign slots to be game masters. A player in a game master slot can see all hidden information like other player's cards. Game masters can also interact with anything, they can take cards from the hands of other players, for example.
    When holding the below modifier key (Shift by default), show the back of cards in tooltips for card stack explorer
    Improved user interface for in-game mod browser

    Scripting
    Add `ImageWidget.setSourceCard`: you can use a card on the table as image for the widget.
    Add a new `ObjectType`: `NonInteractive`. Use it with `GameObject.setType` to make objects completely non-interactive for players.
    Add `Player.isSpectator` and `Player.isGameMaster` to check whether a player is currently a spectator or game master

    Fixes
    Mod browser could not be opened multiple times without exiting the main menu
    Fix potential crash when getting an achievement in Epic Games Store version
    Fix crash that could occur when leaving a multiplayer game
    Fix mod download issues on Linux
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2023-06-29 20:06:26 CET ] [Original Post]
    Hotfix

    Game phase setups were not stored correctly in saved states
    Fix crash that could occur when exiting the game or switching to/from main menu

    [ 2023-06-04 12:25:32 CET ] [Original Post]
    May Update: Custom lights

    The May update has landed with custom lights and table scripting support:

    You can now add lights to objects in the editor. There's a new pane in the lower left (collapsed by default) that allows you to add point lights and spotlights. Point lights emit light into all directions equally and don't cast shadows, spotlights have a direction and a configurable light cone radius. You can also specify the color and intensity for both light types. Lights on objects can be switched on or off in-game from the context menu.
    Game Description Image

    Scripting
    Introduce new class `StaticObject` as a superclass of `GameObject`. Static objects aren't interactive and don't have physics applied to them, but otherwise they work very similar to other game objects so most methods from `GameObject` have moved to `StaticObject`. This doesn't affect existing scripts, they will continue to work as before.
    Currently the only static objects are tables, and there are a couple of new `GameWorld` methods that allow you to access the table and even create more tables: `getAllTables`, `createTableFromTemplate`, and `createStaticObjectFromJSON`. By using `StaticObject`, you can do things with tables that were previously restricted to interactive objects: for example, change their appearance, move them to a different location, or access snap points.
    Add `GameObject.areLightsOn` and `GameObject.switchLights`
    `Container.take` and `Container.takeAt` caused issues when the `keep` parameter was set to true
    Call `CardHolder.onInserted` once for each inserted card when multiple cards are inserted at once from a stack
    New event `CardHolder.onBecameHand` called when a card holder becomes a player hand

    Fixes
    Drawing cards while flipping a stack resulted in penetrable drawn cards
    In preview mode, the "Edit Template" and "Edit Table" menu actions were sometimes not enabled when they should be
    Typing faster than the ping caused problems when using scripted text boxes on clients
    Starting a game with an empty table no longer causes a temporary freeze on opening the table selection when many packages are installed
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2023-05-30 18:41:04 CET ] [Original Post]
    April Hotfix

    This small hotfix brings two changes:

    When a player left a game and re-joined, whispering with them again would caused a new whisper tab to open. With this update, the original whisper tab is re-used.
    Fix issue that could cause players to disconnect from multiplayer, causing them to drop out of running games

    [ 2023-04-11 19:11:43 CET ] [Original Post]
    March Update: Turn system and chat tabs

    This update brings a new turn system and adds whisper tabs to the chat, alongside the usual fixes and scripting improvements:

    The new turn system allows you to create phases to keep track of the state of your game and restrict interactions to players whose turn it is. Find out more about rounds, phases, and turns in the knowledge base: https://tabletop-playground.com/knowledge-base/turns-phases-and-rounds/

    The chat now supports whisper tabs: When you send a whisper message to another player or receive a whisper message, a new chat tab will open. You can have your private conversation in that chat. This keeps all messages with a player together and doesn't require you to use the `/w` command to whisper. The old behavior with both public and private messages in the main chat tab is still supported, you can disable tabs in the advanced interface options.
    Show template names in dialog for copying from other package
    Game Description Image

    Scripting
    Add new `TurnSystem` class accessible through `GameWorld.turns` that enables access to the turn system
    Add `GameWorld.addCustomAction` and `GameWorld.removeCustomAction` to manipulate actions in the global context menu (right click menu when not clicking on an object)
    Add new parameter `identifier` to `GameObject.addCustomAction`, allowing to separate the visible name of the action from how it is identified in the code
    Add `DrawingLine.players` to allow restricting line visibility to certain players or teams
    Fix: node_modules folder was missing after last update

    Fixes
    Installed packages from mod.io were not available when offline
    In rare cases the game could crash when removing an item from a container
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE.

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2023-03-29 18:02:22 CET ] [Original Post]
    February Update: In-game mod browser

    The February update has landed! The main new feature is a new in-game mod browser that allows you to find, subscribe to and unsubscribe from game packages on mod.io without using the Steam browser or an external browser. As usual, there's also a number of further improvements and fixes:

    Add in-game mod browser: from the main menu, a comprehensive UI allows you to browse available mods and subscribe or rate, or manage your existing subscriptions. Currently the mod browser is only available on Windows, Mac and Linux support will follow.
    Move save/load state from context menu to main menu
    Keep additional autosaves (for a total of 5 minutes of play time)
    Don't show tooltip with description of card objects when they are face down
    Automatically simplify drawn lines, improving performance and allowing more lines to be drawn
    Only load templates in packages on demand. Reduces startup time and allows multiple packages with the same templates (for example a development and release version), as long as both pacakges aren't used within the same game.
    Improved performance of loading save state folders, reducing small stutters when opening large lists of states (like autosaves)
    Show card front in object zoom when zooming to a card in a container explorer that shows card fronts
    Automatically wrap long object descriptions in tooltips
    The "Zoom to ground" option (in the advanced interface settings) is now a "Ground interaction" setting. Apart from using object mode for ground objects while in regular cursor mode, it also allows you to open the context menu for ground objects.

    Scripting
    `Card.onRemoved` wasn't called in a few circumstances: when grabbing an additional card from a stack while holding cards or when dropping cards from a held stack to the table or to a card holder.

    Fixes
    FBX files were not supported on Linux
    Objects with description but no name briefly showed an empty tooltip before the description became visible
    Uploads to mod.io occasionally had issues on Windows
    Games with lots of drawn lines (close to the drawing limit) could prevent clients from joining
    Objects with scripted UI could get spawned below their container when dragged out from a container explorer window
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2023-02-22 19:40:41 CET ] [Original Post]
    January Update

    The January update is here! It comes with a new permission option, scripting UI widgets, important bug fixes and more:

    Add new permission for saving the game on clients. This can be useful to prevent cheating by clients inspecting or loading the save file to access hidden information like hand cards of other players.
    Allow selecting cards in (locked) card holders using drag selection
    Show card tooltips in the on-screen hand
    Show card fronts in object zoom for holders of other players if they are set to show card fronts (instead of hiding cards)
    Add an option for snap grids in addition to rectangular and hexagonal: circular grids can be used to quickly create circles of snap points
    Clearer images for checkboxes, sliders, and selection boxes on UI scales larger than 100%
    Add a warning when exiting template editor while a snap grid hasn't been added
    Log files are now enabled for Linux and Mac (they only existed on Windows before)

    Scripting
    Add `RichText`: a text widget that allows BBCode style text to control text appearance. The tags are the same as in the in-game notes and can modify font size, text color, and bold/italic.
    Add `ContentButton`: a type of button where you can add another widget as child (similar to a border)
    Add `WidgetSwitcher`: a widget that can contain multiple child widgets and switch between them, showing only one at a time
    Add `UIElement.zoomVisibility`, allowing you to control whether UI elements are visible for regular or zoomed objects
    Add `Color.toHex()`
    Add `Player.getOwnedObjects()`
    Add `GameWorld.getPlayerByName()`
    Visual elements of `CheckBox`, `SelectionBox`, and `Slider` are now automatically scaled when using large font sizes

    Fixes
    Objects in containers were sometimes not visible in container explorer and spawned at the wrong location after the container was repeatedly copied and pasted, or the object was repeatedly taken out of the container
    Widgets from UIs could remain in memory the background in multiplayer games, causing increased processing time and memory consumption over time
    Object zoom could cause glass tables to become brighter for some objects on some maps
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2023-01-12 20:18:14 CET ] [Original Post]
    November Update: Switchers

    Update time! This time the main new feature are switchers, which allow you to create switchable objects in-game. As usual, there's also additional features, convenience improvements, and bug fixes:

    Add a new object type: Switchers allow you to switch between multiple objects. You create switchers in-game (or in preview mode) by selecting multiple objects and clicking "Create Switcher" in the context menu. The selected objects will be combined into a single object which you can switch from the context menu or using the object action hotkeys (R / Ctrl+R). The context menu also allows you to switch to a random object, or remove the switcher. You can learn more on the new knowledge base page .
    Allow object zoom in the container explorer
    Add new button in card and multistate object details in the editor to quickly add all remaining cards or states from the image sheet
    Add ability to cycle through previously written messages by using the up and down keys in the chat window (similar to the command history in the JavaScript console)
    Allow changing size of cards in stack explorer using two new buttons
    Save whether to show names in container explorer for session
    Support Chinese, Japanese, and Korean characters in text fields

    Scripting
    Add a new class `Switcher` and two methods `GameObject.createSwitcher` and `GameObject.getSwitcher` to allow interacting with switchers from scripts
    Add anchor properties for `ScreenUIElement`, similar to the properties in `UIElement`
    Add `Widget.setVisible` and `Widget.isVisible`
    Add `TextWidgetBase.getFontFileName` and `TextWidgetBase.getFontPackageId`
    Ensure that an empty `exports` object always exists to avoid issues with transpiled TypeScript
    Allow passing `undefined` to `Border.setChild` and `LayoutBox.setChild` in order to remove the current child widget

    Fixes
    After shuffling a card stack, an additional card could remain visible in rare cases
    Don't allow changing size of cards in holders
    Dropping cards in the on-screen hand with the screen mode cursor required an additional click
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2022-11-28 19:11:04 CET ] [Original Post]
    October update hotfix

    This update addresses a couple of recently identified issues:

    Remove issues with PlayerPermission objects not being recognized correctly on clients
    Fix a potential crahs when re-using UIElement objects after a new client joined
    Relative position and size in ScreenUIElement did not work correctly for very small or very large resolutions
    Card rotation was reset when editing template in preview mode
    Not all controls in the grid options were deactivated for clients
    Folder names in object library were not sorted alphabetically on Mac

    [ 2022-11-03 20:51:50 CET ] [Original Post]
    October Update: Grids and custom lighting

    The October update brings several new features: grids, custom lighting, and 2D scripted UIs are now available!

    The session options now contain a new "Grid" button where you can set options for a global snap grid: it can be hexagonal or rectangular with adjustable size, offset, and rotation as well as different visibility and snap settings.
    The session options now contain a new "Lighting" button. Here you can set the color, intensity, specular intensity, and direction of the main light. The settings are stored in the game state.
    When arranging objects from the coordinates or by pressing a number button while holding a group of objects, try to keep their current arrangement as intact as possible
    Split horizontal and vertical camera sensitivity options

    Scripting
    Add new functionality to create on-screen UIs, with methods like `GameWorld.addScreenUI` and a new class `ScreenUIElement`. On-screen UIs are not visible for VR players.
    Add `Player.isUsingVR` to detect whether a player is using a VR headset
    Add several methods to `GameWorld` to set and read ligthing options (for example `GameWorld.setMainLightIntensity*)
    Add new `GlobalGrid` object to read and modify snap grid properties. Accessed through `GameWorld.grid`.
    Add new `GlobalGrid` object to read and modify snap grid properties. Accessed through `GameWorld.grid`.
    Add `GameObject.onSnappedToGrid`
    Add `SelectionBox.removeOption`, `SelectionBox.setOptions`, and `SelectionBox.getOptions`
    Fix crash in `SelectionBox.getSelectedOption` when no options exist

    Fixes
    Updated to a new mod.io version that fixes a mod extraction error on Mac
    Fixed a memory leak from filled containers that caused RAM consumption to slowly rise over time
    Fixed lighting for .obj models with no textures and no normals
    Labels could have clipping artefacts on clients
    When using the object properties window for multiple selected objects, object name and description would always be applied to all objects
    Game Description Image

    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2022-10-28 19:47:30 CET ] [Original Post]
    September Update

    This update focuses mostly on bug fixes, but also introduces an option for two sided materials:

    Add a new option for models in the editor: two sided. If checked, geometry from the model is visible from both sides. This is only needed in special cases (vegetation models often use two-sided geometry) and should usually be left unchecked.
    Reduce influence of resolution aspect ratio on size of certain zoomed in objects (such as dice and PDFs)
    Don't allow stacking ground cards and regular cards
    Fix: Cards did not always stay in card holders on clients when loading a state
    Fix: Mac users could not upload new versions of their packages since the last update
    Fix: Snapped measurements did not show correctly for other players
    Fix: Dealing cards from a stack could sometimes knock over nearby objects on clients
    Potential fix for rare issue where a dropped object would still show up as held for other players
    Improved error messages and logs for mod.io HTTP errors on Windows
    Fix: `GameObject.getExtent` returned a zero vector instead of the correct object size when called in the same frame when the object was being created from a template

    [ 2022-09-16 18:59:06 CET ] [Original Post]
    August Update: Labels and in-game browser

    The August update is out now! With text labels and an in-game web browser, two big new features are available. But it doesn't stop there: a lot of additional UI and usability improvements, more VR settings, scripting features, and bug fixes are all part of the package.

    Moved to a new mod.io version. It brings faster download and progress updates while installing games, with more features to come in future updates! Your mods will be re-downloaded once the first time you start the game after this update. The old download folder is removed automatically.
    You can now place text labels. Labels can have different colors and sizes as well as custom fonts. They don't get blurry at larger sizes or zoom levels. Apart from a fixed text, you can also set labels to show the name of the player in a selected slot. Press K to toggle label mode.
    A new UI element for cursor modes is available in the upper left corner. It allows you to see your current mode and quickly switch to other cursor modes without memorizing the hotkeys.
    There is now a tablet object available among the "General" objects. It allows you to browse the web while playing, the active website URL is synchronized with all players.
    Drawing now supports glowing lines: a new checkbox in the drawing dialog allows you to turn up the emissive value of your lines to make them glow
    Add new permission for editing labels
    Changed emissive map format to be easier to use: now the red color channel simply makes the color at that point emissive, the larger the red value is the more emissive the part of the model becomes. Fully red will make most colors glow. The other channels in the emissive map are not used for now.
    Add a new option for measuring angles (in measure move mode, selected in session options): you can measure the rotation of the movement compared to a straight line as before, or the rotation of the object.
    Angle measurements are now logged together with distance measurements in measure move mode
    Multistate objects have a new option in the editor: Circular. When checked, the states loop around so you can go forward from the last state to get back to the first state and vice versa.
    Add a new option in the video settings to use low resolution textures. This can be useful to allow old systems to run large games that may not run properly with full texture resolution.
    Add support for TGA textures. TGA files are generally larger than PNG, but they can be useful when using an alpha channel as a mask (in the extra map/mask map) because some graphics tools don't save colors properly in PNGs when the alpha channel is zero.
    Use natural sorting in all places where names are ordered (filenames, templates, tags). With natural sorting, numbers in the names are sorted by magnitude and not alphabetically (so 10 comes after 2).
    The drag selection box for the screen cursor is now much more accurate and doesn't glitch for objects behind the camera
    When dice faces are named with a number, use that number instead of the index of the face when deciding how to rotate the dice when a player uses a number action (by pressing a number key while highlighting or holding dice)
    When angle measurement is on, include measured angle in measure move message
    Move measurement number to the cursor (from the middle of the measured line)
    The container explorer now remembers if it was switched to showing card fronts in the same session
    Add new option in advanced interface settings for lowering the drag selection box. Hold Ctrl and use the mouse wheel while drag-selecting to change the setting quickly. Dragging new zones is also affected by the setting, and the value can be changed creating a zone.
    Use sliders instead of text boxes for cell width and height when creating a snap grid
    Hold invert key to rotate objects very slowly instead of the regular speed
    Don't allow changing background in 3D maps because it doesn't have an effect
    Game Description Image

    VR
    Add new cursor mode buttons to standard UI menu that opens when you press the menu button without highlighting an object
    New setting: motion controller dead zone
    New setting: height offset allows you to raise or lower your viewpoint by a constant offset when not flying

    Scripting
    Add new class `Label` to control in-game text labels
    Add `GameWorld.createLabel`, `GameWorld.getLabelById`, and `GameWorld.getAllLabels`
    Add `WebBrowser` widget to create web browser UIs
    Add `DrawingLine.emissive` to allow creating glowing lines from scripts
    Add `Canvas.getChildren`
    Add `Card.canAddCards`
    `Canvas.updateChild`, `Canvas.removeChild`, and `Panel.removeChild` now work immediately after adding the child widget. Previously, these methods only worked after the widget had been built a few ticks later.
    Dice faces can now get metadata assigned in the editor. Add `Dice.getCurrentFaceMetadata` and `Dice.getallFaceMetadata`
    Ensure that players see the correct UIs when they switch slots after player restricted UIs have been created
    Add `CardHolder.isCardFaceUp` and `CardHolder.isCardUpsideDown`
    Fix: Playing a sound for the host player played it for all players
    Fix: In some circumstances, scripting UIs on objects could remain after reloading, leading to duplicate UIs which could cause input issues

    Fixes
    Joining games through the Steam friend list did not work for all players
    Resizing the whole object in the editor did not work properly for Multistate objects
    In screen cursor mode, moving the mouse quickly while rotating the zoomed object could end the zoom
    Flip back the order of cards in the editor UI
    Fix issue with dragging objects in screen cursor mode after using Escape key to close "Edit Template" screen in preview mode
    Fix graphical glitches in the cyberpunk environment
    Fix lighting for thumbnails and zoomed objects in 3D environments
    Zoomed cards would sometimes flicker
    Reduce force with which dice are thrown apart when rolling multiple dice at once
    Import file dialog did not always remember previous directory
    Drag selection with 3D cursor could select ground objects with drawings on them while cursor was in regular mode
    Reworked "Friendship" achievement trigger to be more robust - it did not work for all players
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2022-08-30 20:20:33 CET ] [Original Post]
    June Update: emissive materials

    The June update is here: It brings glowing objects, improvements to editor and snap points, new keybindings, new scripting UI options, and more!

    You can now add Emissive Maps to models in the editor: They work like a regular texture, but emissive colors are not affected by lighting and look like the object is lit by itself. When used without a regular texture or Normal/Extra map, the object is not lit at all, which looks less realistic but keeps colors closer to the original image. The alpha channel of the emissive map acts as a brightness multiplier: when it is lower than 1 (parts of the image are transparent), both the regular color at that spot and the color from the emissive map are multiplied. Erasing parts of the emissive map completely leads to a high multiplier, allowing you to make parts of the object glow!
    Cards and multistate objects have a switch in the editor to make them emissive, effectively switching off lighting for them
    Add buttons in the card editor to increase or decrease card index by one
    Add buttons in the card editor and snap point editor to apply tags to all cards
    New options for snap point rotation: snapping upright or upside down without further rotating the snapped object
    Add keybindings for rotating the camera (not set by default)
    Add keybinding for toggling drawing mode (by default "I")
    New rotation option for taking objects out of containers: in addition to default rotation and container rotation, you can now select "Flipped" in the container properties
    Improved network traffic for smoother play on slow connections
    "Rotate thumbnails" setting now affects container explorer as well
    The object coordinates window now allows arranging object into a hexagonal grid
    Scaling Gizmo now scales uniformly when uniform scaling is active in the object coordinates window
    Add keybindings for HP Reverb motion controllers
    A new option in the advanced interface settings allow you to change the behavior of the Flip/Upright key (middle mouse/F) when holding a group of objects: instead of flipping or turning to their default rotation, align all held objects to the rotation of the grabbed object
    Flip order of cards in the stack explorer when the inspected stack is face down, so the first card in the explorer is always the card at the top

    Scripting
    Add new `PlayerPermission` class and use it in the play methods of `Sound` to determine for what players a sound is played, and in `UIElement.players` to control which players can see a UI
    Add `UIElement.presentationStyle`, allowing UIs to automatically align to the camera or to be shown directly on screen
    Add new parameters to `GlobalScriptingEvents.onScriptButtonPressed` to indicate whether modifier keys (Shift, Ctrl, Alt) were held while pressing the button
    Return whether a line was added successfully on `GameWorld.addDrawingLine` and `GameObject.addDrawingLine`
    `World.getTableHeight` did include ground objects (in addition to just the table) in the height calculation

    Fixes
    Object Coordinates > Arrange Grid > "Keep rotation" function is reversed
    Blindfolding was allowed while editing a template in preview mode
    Autosaves were generated while in main menu
    Physics for tables with custom colliders could get activated when loading a state in-game
    When changing the back image type for cards in preview mode, the card wasn't updated visually. Sometimes this could also happen in the editor.
    Loading stored camera setups in very quick succession would cause a wrong result
    Pressing "Save as new" for a new template resulted in an error
    Player rotation could remain snapped when changing the snap angle setting in-game
    Since the last update, cursors of other players were hidden when in screen cursor mode
    In some circumstances, zones did not prevent snapping or hide cursors on clients
    Cards with square shape could show slight ghosting of the back image on the front
    Fix a crash related to accessing online URLs from scripts
    Held dice and other clumped together objects could knock over other objects at low hold heights
    Clients changing object descriptions did not have an effect for other players
    Game Description Image
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2022-06-29 19:10:31 CET ] [Original Post]
    May Update

    The May update upgrades to the latest version of Unreal Engine 4, future-proofing the game and fixing a few issues with the previous Unreal version. In addition, you now have more options for player slots, a color palette, improved object rotation, and more:

    Updated Unreal Engine to 4.27
    Slot names now have names and default camera setups: the "Player Colors" button in the session options has been renamed to "Player Slots". The window accessed through the button now allows to set a name and store the current camera setup in addition to adjusting the color for each player slot.
    The slot name can be used to whisper in the chat to the player currently occupying that slot, in the same way as player names are used. By default, all player slots are named with their index (1 to 20).
    When a player slot has a stored perspective, a player who joins the game in that slot or switches to the slot through the player options will move to the stored perspective. This can be used to emphasize where on the table a player in a given slot is seated.
    Holding down rotation keys (Q/E/Arrows by default) now continues to rotate objects
    Color pickers now have a color palette where you can store and load your own selection of 36 colors
    Increase speed of turn-in-place animation (when presseing Q/E or arrows while highlighting, not holding, an object) and keep the rotated object in place in relation to other objects - it used to land on top of objects above.
    Store hold height between sessions
    When editing snap points in preview mode for an object with global snap points enabled, allow adding points snapped to other objects that aren't on top of the edited object

    Scripting
    Add `GameObject.removeDrawingLineObject` and `GameWorld.removeDrawingLineObject
    Add `Player.setDrawingColor` and `Player.setDrawingThickness`
    Add `DrawingLine.tag` property
    Extend the occasions when `Card.onRemoved` is called to all actions where players remove cards (dragging a card off the stack or the container explorer, drawing or dealing cards, or when a player cuts/splits/divides the stack)
    `Text.setAutowrap` did not work for clients (only affected host player)
    `Player.getSlot` and `Player.getName` did not return correct results for players who rejoined games in progress
    Don't allow setting primary color on card holders (the color is determined by the owning player)
    Increase time that `Player.showMessage` messages stay on screen

    Fixed
    Autosaves were not available to load on Linux
    Using keyboard shortcuts for editing card decks in the editor made previously edited cards re-appear
    UI elements for properties of snap points in a new grid were not enabled when the object had no snap points
    After closing the chat using the Enter key, it couldn't be opened again using enter until clicking with the mouse
    Game Description Image
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2022-05-26 19:29:25 CET ] [Original Post]
    Hotfix

    A quick hotfix update for some recently identified issues:

    Screen mode cursor was locked in place while holding mouse button after using tab to ping
    Drawing rectangles on surfaces at an angle could produce wrong results
    `GlobalScriptingEvents.onDestroyed` was called twice for card objects that were destroyed by adding them to another stack
    Ensure that the inserted card parameter for `Card.onInserted` has the correct id
    Opening a pdf in an external viewer caused the viewer to open for all players

    [ 2022-05-03 07:16:40 CET ] [Original Post]
    April update: Drawing

    The April update is here! This one mainly brings a big new feature: in-game drawing on objects! You can draw lines that other players will be able to see, and the lines are saved with the rest of the game.
    Game Description Image

    You can now draw on ground objects: select "Start Drawing" in the right click menu, and a new window with drawing options will appear. While that window is open, you can draw using the mouse. There are a couple of modes available: free draw, straight lines, shapes (from rectangles to circles), and erasing existing lines. You can also change the color and thickness of the lines you draw.
    New permission to disable access to drawing
    New permission to disable access to ground mode and locking/unlocking objects
    Show snap preview for grabbed objects when holding multiple objects and snapping multiple is switched on

    Scripting
    Add support for drawing: a new class `DrawingLine` represents drawn lines, `GlobalScriptingEvents.onLineDraw` is called when a player has finished drawing a line, and new methods in `GameObject` and `GameWorld` allow you to manage drawing lines from scripts: `addDrawingLine`, `getDrawingLines`, and `removeDrawingLine`
    Add `world.nextTurn`, `world.previousTurn`, and `world.getCurrentTurn`
    Add `Rotator.getInverse`
    Zone owner slots for the final two slots (White and Black by default) did not work from scripts
    `GameObject.getExtent` and `GameObject.getExtentCenter` could cause zone overlap events when used on scaled objects close to a zone
    `SnapPointFlipValidity` had a typo (was spelled `SnapPointFLipValidity`)

    Fixes
    Switching on snapping for multiple held objects caused object groups to always snap to the ground
    D6 model was slightly too small after the previous update
    Tags could be duplicated when loading save states while playing
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2022-04-29 19:12:14 CET ] [Original Post]
    March Update

    The March introduces a new tag system, a setting to show player heads, and lots of improvements for snap points and scripting:

    You can now add tags to objects, templates, containers, snap points, and cards. They can control if objects snap and what can be inserted into containers. Tags can also help with finding what you're looking for in the object library, card deck explorer, or container explorer. Find more information on tags in the new knowledge base page on tags. A new option in the game settings allows you to activate snapping when holding multiple objects
    Snap points can now have different shapes for their range: in addition to the sphere shape, their snap range can also be a cylinder or a cube.
    There are new options for snap point rotation: instead of just switching between rotation on and off, you can also set snap points to flip objects upright, upside down, or adjust their rotation to be "flat" without fixing it entirely
    A new options for snap points allow you to specify that they are only valid when the object is upright or upside down.
    While creating a snap point grid, you can now drag the grid with the mouse
    Show range for highlighted snap point whilre creating a grid
    Show a quick animation when snapping an object
    Snap range for objects with non-uniform scale are now also scaled non-uniformly
    You can now show the heads of other players. An option in the video settings allows you to activate heads only for VR players (default), for everyone, or for no-one.
    Set zoom direction for the counter 10 and counter 100 objects so they don't spin when viewed in the object zoom

    Scripting
    Add methods to work with tags: `GameObject.getTags`, `GameObject.setTags`, `Container.getContainerTags`, `Container.setContainerTags`, and `SnapPoint.getTags`
    Add `getTintColor` and `setTintColor` for `ImageWidget` and `ImageButton` to allow tinting images
    Add a key parameter to `setSavedData` and `getSavedData` in `GameObject` and `GameWorld`, allowing you to organize persistent information more easily and save larger amounts of data globally and per object
    Add `GlobalScriptingEvents.onWhisper`
    Add `getShape`, `getSnapRotationType`, and `getFlipValidity` methods to `SnapPoint`
    Add `GameObject.release` method to release objects held by players
    Allow automatically wrapping text for `Text` widget using `Text.setAutoWrap`
    Execute `CardHolder.onCardFlipped` and `CardHolder.onCardRotated` when animation finished instead of when the player pressed the respective button
    Text with multiple lines on a button was not centered properly
    Inserting and removing an object from a container in the same frame caused the object to become invisible on clients
    A previously clikced UI button could be clicked when pressing enter
    `Player.getSelectedObjects` for client players only worked while holding

    Fixes
    When loading a state while an active measure move was visible, the measure indicator remained visible and stuck after the state was loaded
    Snap point radius shown in editor was too small
    Some zoomed objects were rotated incorrectly when using object zoom while looking directly down
    Card stack explorer did not show web textures and could have wrong aspect ratio for cards scaled in-game
    Team chat tab sometimes wasn't visible when the local player was part of a team
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2022-03-25 10:58:08 CET ] [Original Post]
    Quickfix notes

    Quickfix update that addresses a couple of recently identified issues:
    Scripts with filenames containing the single quotation mark character ' could not be executed properly
    Package class was named Proxy
    "Default Color" and "Player Color" buttons in object appearance window could result in an incorrect color
    Objects with a fixed zoom direction and non-uniform scale had visual issues in object zoom

    [ 2022-03-01 12:55:40 CET ] [Original Post]
    February Update

    The February update is now live! Another long changelist with many new features, convenience improvements, and fixes. Some highlights are the extended object coordinates window with aligning and arranging functionality, VR hands, clipboard buttons, more shortcut keys, more scripting UI functionality, and an upgrade to a new version of the JavaScript engine.

    The object coordinates window has received a lot of new functionality, in particular when using it for multiple objects:
    Add grid arrange functionality for groups of objects: Set the number of rows and the distance you want between objects, and you can arrange them in a grid at the press of a button.
    Align on edge functionality for groups of objects: align all selected objects to the same outer edge (North/East/South/West)
    Gizmos are now available when opening the object coordinates for a group of objects
    When adjusting rotation or scale for groups of objects, you can now switch between rotating/scaling each object by itself or also adjusting their positions to keep the relative positioning intact
    Add color markers for axes
    Add copy to clipboard buttons for position, rotation, and scale when scripting UI is enabled
    Game Description Image

    Add VR hands: You can now see the hands of VR players using motion controllers. A new option in the video settings allows you to turn off the hands.
    When pressing a number key while holding multiple objects, they will now be arranged in a grid with a number of rows equal to the number pressed
    Add menu button to menu bar at the top of the screen. Make the menu bar visible by default and add a setting to auto-hide (like the previous behavior).
    Add keyboard shortcuts for card and multistate object editor for the new, remove, duplicate, previous, and next actions. The shortcuts are shown in the tooltips for the respective buttons.
    Add copy to clipboard buttons for information useful in scripts in a couple of places (template id on top of the object properties pane in the editor, unique id in object and zone properties)
    Store whether you want to see names in the object library
    When placing snap points based on objects in preview mode, use object rotation as well for rotation snapping
    In the container explorer, fall back to card names instead of template names for single cards if no object name exists
    Tune camera to avoid issues when moving around on irregular tables
    Improve shadow quality in 3D maps
    Make snapping easier for small objects snapping close to each other
    Tune physics so objects (except dice) are less bouncy by default
    Clip long object names in container explorer to ensure consistent grid of objects
    Allow picking up additional cards directly from holders (using right click or V)
    Move camera back to previous position after editing an object template in preview mode to prevent camera issues
    Make context menus more flexible for accomodating long entries (which can be created from scripts)
    Adjust mirroring back of image shape cards where the shape is not centered on the image
    Increase object limit to 10000, for those really large games

    Scripting
    Upgrade the JavaScript V8 engine to a more recent version (9.7). This gives you access to the latest JavaScript features like optional chaining (`?.` operator), and it makes your code run even faster!
    Add several parameters to `UIElement` that allow you to customize your UIs: `useTransparency`, `twoSided`, `anchorX`, and `anchorY`
    Add a new UI widget `LayoutBox` with several properties for sizing and aligning widgets
    Add a new class `Package` that allows you to inspect active or installed packages. You can get a package object through `GameWorld.getPackageById` or `GameWorld.getAllowedPackages`
    Add `GameWorld.setBackground`, `GameWorld.getBackgroundFilename`, `GameWorld.getBackgroundPackageId` to access and modify the map background from scripts
    Support looping sounds with a new parameter in the play methods and `Sound.stopLoop`
    Add `GameWorld.setSlotColor` and `GameWorld.getSlotColor`
    Add `skipContained` parameter for `GameWorld.getAllObjects`
    Add `GameWorld.clearConsole` to clear the built-in console from scripts
    Add `ImageWidget.onImageLoaded` and `ImageButton.onImageLoaded`
    New `keep` parameter for `Container.take`, `Container.takeAt`, and `Card.takeCards`
    Add `Container.getNextTakeIndex`, `Container.contains`
    Add `Card.moveCardInStack`
    Add `CardDetails.stackIndex`
    Add `animationSpeed` parameter to `GameObject.snap`
    Add `GameObject.freeze`
    Add `Panel.setHorizontalAlignment` and `Panel.setVerticalAlignment` for setting the alignment of all child widgets for HorizontalBox and VerticalBox
    Add methods to `CardHolder` to get/set how cards are hidden and if only the owner can interact with cards on the holder
    Update the value shown for Slider widgets while player is dragging
    Make sure that scripted UI on cards stays in the right place when the card is lifted while highlighted on a card holder
    Allow scripts to require other files more than two directories above themselves, as long as they stay within known safe directories
    Enable `GameObject.onSnapped` when snapping to snap points attached to the table
    `localRotationToWorld` and `worldRotationToLocal` could return incorrect values
    Dice rolled again through `Dice.roll` withing `GlobalScriptingEvents.onDiceRolled` did not cause another `onDiceRolled` event
    Fix requiring npm packages from node_modules on Mac/Linux
    Using `fetch` or `HttpRequest` directly when running a script did not show the "allow URL" dialog when resetting scripts from context menu
    Fix crash that occurred when moving objects into or out of a zone from within its `onEndOverlap` event

    Fixes
    Unique ids (for scripting) of cards were not made available again when dragging cards onto stacks
    Translucent objects with low opacity did not get outline highlights
    Open container explorer window did not update when content of the container changed
    A small copy of the zoomed object in object zoom appeared at the origin (below the table) while zooming
    Object zoom did not show objects at the correct place that weren't positioned at their coordinate system origin
    Dragged card in stack explorer was shown as red cross
    Ensure that releasing the last object does not send it flying when held objects are clumped (after shaking the mouse)
    Object zoom with fixed zoom direction did not work properly with objects scaled in-game
    Don't allow locking cards on holders
    Fix issues with locking objects in multiplayer
    Mouse cursor was shown until clicking again when pressing Tab to Ping while chat was open
    When taking a card from the front of a stack in ground mode made of cards from different object templates, the remaining part of the stack switched to regular mode
    Selection rectangle was drawn for screen cursor while editing templates in preview mode
    Undo/Redo in the editor by pressing Ctrl+Z/Ctrl+Y could make previously edited objects appear
    Fix rare crash related to snap previews
    Placing cards from the object library while showing card fronts placed the card upside down in addition to flipping it
    Using non-uniform scale caused issues with cm measures in a couple of placed (object transform window, zone transform window, object size in editor)
    The deal and draw actions would not fill the final card on a card holder (before the card limit was reached)
    Removing cards from a holder by grouping them caused glitched images of the removed cards to remain in the on-screen hand that would disappear when clicking them
    "Include description in tooltip without delay" setting only showed names as tooltips
    Fix missing J on image for Jack of Clubs
    Fix crash related to editing image shape tokens/cards on Mac
    Rewinding could stop working on Macs
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2022-02-24 19:47:28 CET ] [Original Post]
    January Update Hotfix

    A quick hotfix for several issues that came up with the latest update:

    Zones and stored cameras were not loaded correctly from old saved states
    Imported collision models were mirrored on the X axis. This change could break your collisions if you have used collision models that are not symmetric across the X axis!
    "Save as new" in template editor would store the new template in a "Templates" subfolder if used in the main directory. It also used an invalid Guid for the new template.
    Items from (non-lazy) "Infinite Queue" containers could not be removed properly
    Global script could not be changed on Mac/Linux
    A crash could occur when adding or removing items from containers using scripting
    A crash could occur when joining a game that uses hide cursor zones
    Tooltips for delete card and delete all cards buttons were flipped
    Linux version could crash on startup
    Remember player number and direct connect settings on starting new game

    [ 2022-01-21 23:23:15 CET ] [Original Post]
    January Update

    Get ready for our longest changelist yet! This update is all about the little things, and lots of them: improvements to how the game looks and feels, more intuitive and powerful interactions, convenient new options and commands in various places, and removal of a couple of restrictions. In addition there are new methods and callbacks for scripting, and a lot of fixed issues!

    Slightly reduced physics speed and improved dice roll feel
    You can now drop multiple held cards at once on stacks and card holders
    You can now drop the last picked up object by holding the invert/below key (Shift by default) and right clicking
    Distance measurements now snap, you can disable snapping as usual by holding the modifier key (Ctrl by default).
    Players can now use the container explorer for containers owned by their teammates
    Containers now have a "Lazy Load" option
    Rotating objects taken from containers like the container is now optional and can be toggled in the container properties. It is disabled by default.
    New button at the top of the screen in the editor allows you to quickly reload all textures and models for the current template
    New button when editing cards or multistate objects allows you to delete all cards/states
    When editing snap points in preview mode, you can now click on objects on top of your edited object to place the snap point so that the highlighted object would snap to its current location
    Switched default right click behavior while holding from reset to picking up additional objects. The behvaior can be configured in the game options, the new default only changes it for new users.
    When picking up additional cards, always add to an already held stack when holding exactly one stack that can take the additional card
    Added context action for PDFs to open the file with the default system PDF viewer
    Improved the feeling of the middle mouse world drag, particularly with unstable frame rates
    You can now change the height of the measure line while in measure mode in the same way as changing hold height (using Ctrl+Mouse Wheel)
    Ensure that shadows for large objects (like tables) do not fade in the distance
    Your previous server name and password are used by default when creating a new game
    Show the current folder when navigating away from the base folder in object library and editor template selection
    New option for cards available in editor: hidden looks the same as card back
    Allow loading states with missing packages when starting a new game, but show warning message
    "Save as new" button in the edit template screen now saves to the same subfolder where the original template is located
    Remove intermediate anti-aliasing levels because they blurred the image too much without a clear performance benefit. Anti-aliasing is now either on or off.
    Update main menu layout and Discord/Knowledge Base buttons
    Selection outline thickness is now adapted for high or low resolution scales
    Apply number actions immediately when moving cursor away from highlighted object
    Allow files with "jpeg" extentions as images (in addition to "jpg" files)
    Make included tokens (checker pieces) flippable
    Use previous selection whether snap points are visible when reopening template editor
    Allow a decimal place for snap point rotation
    Remove 1 cm thickness restriction for card-like objects
    Don't remove existing files from target package when using the TTS importer

    Scripting
    Deprecate `ScriptPanel.setEqualChildSize` for a more flexible mechanism where each child added to a `HorizontalBox` or `VerticalBox` can receive a size weight
    Don't show UI cursor for Canvas elements that don't contain interactive widgets
    Add `CardHolder.onCardFlipped` and `CardHolder.onCardRotated` events
    Add `GameObject.getScriptFilename` and `GameObject.getScriptPackage`
    Add `usingEnter` parameter to `TextBox.onTextCommitted`
    Call `CardHolder.onRemoved` directly after the card has been removed instead of directly before
    Canvas now clips the widgets inside it (only relevant when using a Canvas within another Canvas)
    Fix: `TextBox` did not show proper characters when used with default font properties
    Fix: `GameObject.localPositionToWorld` and `GameObject.worldPositionToLocal` did not work correctly for rotated objects
    Fix: `GameObject.getRotation` always returned the 0 rotator while the object was held by a player

    Fixes
    Object library did not open anymore when cancelling spawning with Escape key
    Missing object thumbnails weren't saved automatically when opening package in editor
    Taking additional card stacks out of containers while holding a single card stack picked up one card from the stack coming from the container
    Formatting for long folder names in object library was not correct
    Tooltip for ground containers stayed visible when not highlighting the object while in ground mode
    Camera did not move forward in editor while rotated all the way up
    Adding cards to a held stack could change the rotation direction when flipping the stack
    Higlighted zones that remain visible outside of zone mode remained highlighted when switching cursor mode
    Model files without normals got incorrect lighting
    Card positions in card holders that were scaled in-game could be incorrect
    Initial mod.io notification messages appeared behind the new game dialog when first triggered from there
    Use the automatic texture inpainting for shape images only at the same alpha level as the shape is generated, not for all translucent pixels
    Remove error message about missing impact sound that appeared in some scenarios with "Silent" surface objects
    When saving a state, could save state with empty name after saving a state with a valid name
    Invisibility zones did not hide cards in card holders
    The card space markers for card holders were not displayed correctly when editing a card holder in preview mode
    Maximized PDF viewer stayed on top of other windows
    Uploading packages to mod.io did not work on Mac
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2022-01-20 19:17:54 CET ] [Original Post]
    Custom backgrounds and tidying up

    Game Description Image

    The new update brings many more improvements to the game! Highlights include custom backgrounds, subfolders for resources and templates to keep your packages tidy, and several control tweaks. Here's the full changelog:

    The session options now include a background setting where you can select an image to use as background. In 3D maps it will replace the sky (if it is visible on the map). Use HDRI images to get a background without stretching. Your selected background is saved in the game state.
    Object templates can now be organized in folders within packages.
    Resource files (textures, models, sounds, fonts) can now be organized in subfolders.
    You can now pick up containers and card stacks by double clicking in addition to clicking and holding
    Tweaked throwing: when only moving the cursor slightly, throw velocity is reduced. When moving quickly it is unchanged.
    Allow resizing and pinning the object library, card stack explorer, and container explorer windows
    Allow resolution scales above 100% (in the video settings) to improve image quality for fast computers.
    A new option in the video settings allows you to disable the rotation of object thumbnails (for example in the object library)
    Objects removed from a container now have the same rotation as the container
    Improved animation when dropping a card to the bottom of a stack to clearly show what happens
    TTS Importer now supports importing saved objects (in addition to workshop files and saves)
    TTS Importer now supports importing custom D6 by rearranging the image
    You can now switch your team in the player options and player color buttons show the associated team.
    When a new player joins, choose a free player slot that has a card holder instead of the first available player slot
    Ask for password when joining password protected friend's game through Steam
    Empty card holders can now be resized in-game. Maximum card sizes for the holder are adjusted accordingly.
    On-screen error messages are now a bit smaller and more readable
    Remove support to select DDS and 3DS file in the editor. The files can still be loaded so existing packages that use them won't break, but their use is discouraged because they may cause issues on future platforms.

    Scripting
    Introduce `dealToAllHolders` parameter for `Card.deal` to optionally deal to all card holders even when no players are present
    Add `GameWorld.getTableHeight` to allow scripts to find the height of the table at different points
    Add `GameObject.getSize`
    Use generics in the TypeScript definitions for `TextWidgetBase` and its subtypes, so the `TextWidgetBase` are recognized to return the correct subtypes. This makes these methods more convenient for TypeScript users, it doesn't change anything in JavaScript.

    Fixes
    Fix window size of zone permissions
    The size of the 3D cursor selection was slightly larger than the visual area
    Don't select objects when touching their attached UI with 3D cursor drag selection
    Fixed a crash that occurred when using empty Border widgets in multiplayer
    Model files with filenames that contained non-english characters did not work
    .obj files that were missing the newline at the end of the file were missing one triangle in-game
    Global snap points (like in Domino) weren't always working properly with the 2D or screen cursor
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-12-09 18:46:34 CET ] [Original Post]
    Teams, Text, and Trading Cards

    Game Description Image
    The latest update is now live: It introduces teams, card browsing in the object library, and a new cursor highlighting option. Find out more about teams in the knowledge base: https://tabletop-playground.com/knowledge-base/teams/
    When using scripting, you now have a lot more options to customize the appearance of text, you can even use your own fonts! In addition, you can now add metadata to templates and single cards in the editor and access it from your scripts.
    Finally, Tabletop Playground now includes Steam trading cards! You earn cards through playing and collecting a full set earns you emoticons and profile backgrounds.

    You can now define teams for players. Players on the same team can see each other's cards and chat or talk with each other privately.
    You can now spawn single cards out of card decks directly from the object library: on hovering, card decks now have a search symbol. Click on it to open the list of contained cards.
    A new game setting allows you to switch from highlighting objects (when hovered by the cursor) by lighting them up to showing an outline instead
    When trying to start a game with a package that has no starting states, you are now redirected to start with an empty table. The respective package will already be active in the new game.

    Scripting
    New customization options for all widgets that include text: You can set bold, italic, and color. Or set a completely custom TTF font.
    Add Text.setJustification and Text.getJustification to control text alignment
    Add TextBox.setBackgroundTransparent and MultilineTextBox.setBackgroundTransparent to allow for more flexible text box styling
    Add onTextCommitted events for TextBox and MultilineTextBox
    Add Canvas.updateChild to change coordinates of widgets on a Canvas
    You can now add metadata to object templates and to single cards within card templates. You can configure the metadata in the editor, there are new text fields in the object properties and card properties. You can access the metadata using GameObject.getTemplateMetadata and CardDetails.metadata
    New scripting methods to deal with teams: Player.getTeam, GameWorld.getSlotTeam, GameWorld.setSlotTeam
    Various improvements to API documentation

    Fixes
    Fix memory leak in upload mod screen
    Create stored objects folder automatically if missing
    Copy the node_modules directory with the API definition to user or custom package directory to enable autocompletion in VSCode when not using the game directory.
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-11-09 19:50:58 CET ] [Original Post]
    Convenience Update

    Game Description Image
    The next update is here! This one is all about convenience: it brings a new PDF viewer, better object zoom capabilities, grabbing additional objects, selecting multiple hand cards, a new environment selection and more. In addition, the Linux version is now out of Beta and officially listed on the store! Here's the full changelog:

    You can now open a PDF viewer window for PDF Multistate objects. The window can be resized, pinned, and maximized to the side of the screen.
    The notes window can now be resized and pinned
    Allow rotating object manually while using object zoom by holding left mouse button
    Allow moving around object zoom of card-like objects by holding left mouse button
    A new action is available for grabbing additional objects, mapped by default to "V". You can use it to grab objects at the cursor while you're already holding something. You can also grab more objects from a container, and more cards from a stack. You can change the right mouse configuration in the game settings to return to this action instead of resetting positions of held objects.
    Support selecting and moving multiple cards in holder
    Select environment in new step when creating new game instead of using drop down box
    Save states now store the environment in which the state was created. It is selected by default when loading the state.
    Add black and white as standard player colors
    When starting a new game with a state that needs packages you don't have, show the missing packages with an option to download them immediately (similar to the list of packages in the server browser)
    Player buttons are now highlighted instead of disabled for the selected player
    Add button to open package folder in file browser to package editor
    Add `GameObject.setScript` to allow changing object scripts from scripting
    Add `Card.getAllCardDetails` as a convenient way to get all card details in an array
    Show message when a player randomizes a multistate object
    Show tooltip for ground containers when hovering with regular cursor (to indicate that you can pull objects from the container)
    Support dragging from card stacks and containers by moving mouse even when the cursor doesn't leave the object

    Fixes
    Ensure that comparison of `SnapPoint` returns true when comparing two references that point to the same snap point
    Reset the `onCustomAction` event when a state is loaded or scripting is reset
    Screen mode mouse cursor didn't move while mouse button was pressed after using the preview mode template editor
    Adding cards to a stack with animation from within its `onInserted` event caused the added card to get deleted
    Dragging view stopped when hovering over scripting UI elements
    PDFs with non-ANSI characters could not be loaded
    PDFs with many pages caused slowdown in editor
    Allow adding local-only packages to a game
    Script filenames with a ' character did not work
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-10-06 10:05:20 CET ] [Original Post]
    Linux Beta, sounds and images from scripts

    Game Description Image
    Tabletop Playground is coming to Linux! The latest update includes a native beta, so if you're a Linux gamer and already own the game, check it out and let us know if you find any issues! As with the Mac version, all features except the Steam Overlay should work. In addition, update incldues many new features for scripting, most importantly the ability to play sounds or music, and images for scripted UI. Here's the full list of changes:

    Allow changing opacity (alpha value) for zones
    You can now switch off shadow casting for translucent models in the editor
    Snapping can now be turned off by default for objects in the editor

    Scripting
    You can now play sounds from scripts: The new Sound object can play sounds and music from your package or an online source. It supports WAV, MP3, and FLAC files.
    New scripting UI widgets: ImageWidget and ImageButton allow you to display images from your package or from the internet
    Add clear() command for the scripting console
    Add refPackageId which contains the package id of the
    Add GameObject.getSnappedToPoint to find the snap point that an object is snapped to
    Add GameWorld.showPing to create ping events from scripts
    Add GameWorld.getObjectsByTemplateId to get all objects with a particular template
    Add GameWorld.getTemplatePackageId and GameWorld.getTemplateName to get more information about a template
    Add Card.setCardIndexAt to allow changing cards from scripts
    Add return value to Card.split and Card.divide: an array with the newly created card stacks
    Don't allow file:// protocol for http requests
    Don't copy description of stack to drawn cards

    Fixes
    Zone ids weren't working consistently and zone events were not cleared when resetting scripting
    Measure move mode could not be activated
    The shuffling animation for image shape card stacks wasn't working
    "Mirror back" option in the editor did not work fro image shape cards with a separate back image
    Cards couldn't be flipped right after being dragged out of card explorer
    Tooltip now resizes properly when showing long object descriptions
    Mirror backs of image shape cards correctly when shown in object zoom
    insertedCard parameter of Card.onInserted event did not contain the correct number of cards when adding cards to the front of a stack
    Don't remove scripting UI in preview mode when changing in settings while playing
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-08-24 18:00:17 CET ] [Original Post]
    New feature available: Zones

    Game Description Image
    Zones are now available! They allow you to change behavior in restricted parts of the playing area. Each zone behavior can be set to affect everyone, nobody, or only owners of the zone. You can set any player color to be an owner, and zones can have multiple owners. The available behavior switches are:

    Object visibility: Objects in the zone can be hidden.
    Object interaction: Objects in the zone can't be interacted with (but they remain visible).
    Cursor visibility: Player cursors in the zone can be hidden from other players.
    Snapping: All snap points within the zone can be deactivated.
    Stacking: Adding cards to stacks within the zone can be disabled.
    Inserting: Inserting objects into containers within the zone can be disabled.

    Find out more in the knowledge base: https://tabletop-playground.com/knowledge-base/zones/

    Changes
    A new cursor mode allows you to create zones by dragging and edit existing zones by clicking or right clicking. You can enter zone mode through the player options or with a new keybinding (default 'U')
    The Zone coordinates window allows you to change position, rotation, and size of zones. It also activates a gizmo tool on the selected zone and works like the regular object coordinates window.
    In the zone properties window, you can switch shape and color of zones.
    The zone behavior window is where you define the owners and behavior switches of your zone.
    Zone mode can be forbidden in the session permissions.
    A new Zone object is available for scripting. You can get zone objects by using world.getZoneById, world.getAllZones, or world.createZone
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-07-15 18:04:26 CET ] [Original Post]
    Gizmos and custom actions

    Game Description Image

    The latest update is now live and brings positioning Gizmos, custom scripted object actions and many more scripting and convenience improvements!

    Transform Gizmos: When opening the object coordinates window for a single object, a gizmo appears: it can be switched between move, rotate, and scale modes and allows you to quickly change each using the mouse.
    Allow moving camera while UI is open
    Turn off physics for objects while coordinates are modified
    You can now add favorite directories in the file browser
    New option for camera angle snapping: in the game settings, you can set an angle increment (like 60 or 90) to which the camera will snap when it gets close.
    Don't allow flipping cards in stack for image shape cards (can lead to visual issues)

    Scripting
    New `GameObject.addCustomAction` and `GameObject.removeCustomAction` methods and `GameObject.onCustomAction` callback for using context menu items from scripts
    Add `Widget.setEnabled` and `Widget.isEnabled` to allow disabling user interaction with widgets
    Flipped the `hideAnimation` parameter to `showAnimation` in `Container.insert`, `Container.Take`, and `Container.takeAt` to make it consistent with animation parameters at other points in the API. This change can affect how existing scripts behave, but it only changes animations so it won't break any games.
    New `GameObject.flipOrUpright` method to flip cards and generally produce the same behavior as a user pressing "F" for a highlighted object
    Call `Card.onRemoved` and `Container.onRemoved` when a player removes items in the stack or container explorer
    Updated API definition to specify what functions can return `undefined`
    Object events are now reset before the global script runs on loading a state, so you can subscribe to events from the global script (object scripts are unaffected)
    Add `Container.addObjects` as an alias for `Container.insert`

    Fixes
    Zoomed view of multistate objects did not update when state changed
    Correct too large return values of `GameObject.getCenterOfMass`
    Fix problems with using recent mod.io uploads on Mac
    Lines on the side to indicate number of cards in a stack were not updated under some circumstances when adding cards from scripts
    With the screen cursor, picking up an object the first time immediately after using chat or console did not work properly
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-06-16 16:32:56 CET ] [Original Post]
    Blindfolding and extending running games

    The latest update brings blindfolds, scripting updates, and convenience features like adding packages to running games, or mouse and motion controller shake events:

    You can now put on a blindfold from the player options or by pressing a key. Blindfolded players can't see anything that happens on the table, but they can still participate in the chat. Everyone can see who is currently blindfolded. Putting on a blindfold also works in VR.
    Every player can now add packages to a running game. Previously this was only possible for the host. In addition, you can now add packages that other players don't have yet, they will be asked to download it. Once all players have the package installed, it gets added to the game and is available immediately.
    Shaking the mouse while holding objects now clumps them together. If you hold card a card stack and shake the mouse, it will be shuffled. Sensitivity can be changed in the game settings.
    Added an option in the card editor (also used for tiles/tokens): When using image shapes, flipping the back image can now be turned off
    Allow changing gravity in the session options
    A new option in the advanced game settings allows you to use the object zoom on ground objects even when the cursor isn't in ground mode
    Allow showing names in container explorer, show and filter on template name if objects have no name
    Don't allow taking from or dropping to the underside of card decks when peeking is not permitted
    Duplicating a package in the editor now keeps template filenames if they are different from the template GUID.

    Scripting
    Widgets can now be added again to containers (like Canvas) after they've been removed
    Added Player.isBlindfolded and Player.setBlindfolded
    Added Card.onInserted and Card.onRemoved callbacks
    Added World.getGravityMultiplier and World.setGravityMultiplier
    Removed deprecated Player.setPosition and Player.setRotation methods, use Player.setPositionAndRotation instead

    Fixes
    Remove slight aliasing for tokens and cards with one card per texture when the image had different colors on opposing borders
    Remove typos in tooltip for cursor types (#45)
    Fix: The object zoom for some objects (like dice and books) did not move with the player camera
    Fix: Card front image was sometimes not updated immediately when combining cards from different decks into one stack
    Fix: On Mac, "Browse Games" in main menu did not open web browser
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-05-26 20:09:07 CET ] [Original Post]
    Mac version, character sheets and scripting UI

    The Mac version is now out of beta and officially available!

    The new update also adds more options to create complex user interfaces through scripting. It features a new category of UI widgets that group other widgets. `VerticalBox` and `HorizontalBox` give a quick way to create lists of widgets, and `Canvas` gives you complete freedom about where you want to position your widgets.

    As an example of how the new widgets can be used, we've implemented a Dungeons & Dragons character sheet! Check it out here: https://tabletopplayground.mod.io/dnd-character-sheet-example. If you want to create your own complex UIs, have a look at the new tutorial: https://tabletop-playground.com/knowledge-base/advanced-ui-character-sheet/

    Scripting

    Add `VerticalBox` container widget
    Add `HorizontalBox` container widget
    Add `Canvas` container widget
    Add `MultilineTextBox` widget
    Allow setting font size on all widgets that contain text
    Execute `On...Changed` callbacks on widgets when the respective values are changed from scripts (with player parameter `undefined`)
    Text boxes with number input types are now allowed to be temporarily empty while editing, making it easier to enter new numbers
    Removed "Reload Scripts" action because it could lead to confusing states and even crashes. Renamed the "Reset Scripting" action to "Reload Scripting" to emphasize that modified scripts are reloaded. Removed `GameWorld.reloadScripts`.

    Fixes

    Fixed crash that could occur when playing with more than two players and players who joined first left the game
    Script UI buttons now play sound when pressed
    Latest Unreal hotfix version for Windows and Mac (can help with Unreal related issues)
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-04-30 16:02:37 CET ] [Original Post]
    All About Cards Update

    Game Description Image

    A new update is here for Tabletop Playground and it is all about cards! With web textures and flipped stack cards come two highly requested new features, and several further convenience improvements:

    Web textures for cards: You can now configure card-type objects in the editor to allow overriding their front image in-game by an image URL on the internet. The scripting API for cards also has new methods to work with texture overrides. This can be useful for loading maps during an RPG session, or creating a package that automatically loads card images from the internet using scripting.

    New standard object: The web image object is now available in the object library. It uses the web texture functionality to offer an easy way to add online images to a running game.

    Flipped cards in stack: You can now configure card stacks in the editor to allow flipped cards within the stack. Instead of auto-rotating to the stack rotation, cards dropped on such stacks will remain face up or face down as they were. You can't mix cards from decks that allow and don't allow flipped cards in the same stack. The scripting API for cards has been enhanced to allow working with flipped cards in stacks.

    The "Peek / Slide Under" key now also works when holding it while dragging from a card stack or "stack" type container: you will draw from the bottom instead of from the top.

    Support rotating the object zoom in 90 increments with the keys for rotating highlighted objects (Q/E by default). Does not rotate the zoom for objects that auto-rotate.

    The object zoom key now works while using the card stack explorer to instantly show the large image tooltip

    Allow even thinner measure lines in the settings, and lower height of the lines depending on their size
    Game Description Image

    [u]Fixes[/u]
    Cards didn't show changes in editor when changing texture
    Object zoom for cards did not take into account changed scale
    Objects with shapes generated from images were not copied properly in the editor
    Objects with collisions generated from images did not work correctly with containers
    Remove crash when trying to load an invalid texture
    Mac: Ask for permission to use Microphone to make in-game voice chat work
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-04-15 07:27:52 CET ] [Original Post]
    Changelog March 25 - Mac Beta!

    This includes several enhancement and fixes, but the most important change is that a Mac beta version is now available! We're not advertising it on the store yet, but if you already own the game and you have a Mac, please check it out and let us know if you find any issues! All features from the Windows version, except for the Steam overlay and joining through the friends list. The TTS Importer application is also included.

    Mac beta version
    Update to latest Unreal Engine version
    Faster load times for card textures
    Larger mouse cursors for high DPI screens (like 4k monitors)
    Key input guide contains some additional actions
    Warn when trying to upload a package without saved states
    VR: Use main hand stick left/right to switch states for multistate objects in object zoom
    Fixed: For scripting, assignment operator didn't work for delegates (also causing issues with the `fetch()` function)
    Fixed: Duplicating packages did not copy hidden card or image shape textures
    Fixed VR object zoom size changes not working correctly
    Fixed crash for shape generation from some images with very detailed shapes

    [ 2021-03-25 18:40:48 CET ] [Original Post]
    Create 3D Models From Images Complete Update

    Game Description Image

    The latest update completes the models-from-images feature: you can now use transparent images as shapes for almost anything: figures, cards, multistate objects, and regular objects. This allows you to use any card shape you want, create tokens with complex silhouettes, or quickly make your own kinds of meeples, all without any 3D modelling!

    To make the new feature easier to use, we also redesigned the dialog for creating new objects in the editor. You now get basic options for each kind of object when selecting it, giving you a quick start on what you want to create before going to the full editor screen.

    3D Shapes from transparent images are now available for cards, multistate objects, and regular objects
    The TTS importer can now import "Token" type objects properly
    Overhauled new object template screen
    Improved shadow quality
    Added small acceleration to camera movements

    Fixes
    Figures did not mirror the front texture on the back side of the figure
    Cards sometimes didn't flip properly when using the flip key with cards on the table
    Container explorer didn't show custom colors of objects
    Container explorer didn't show objects with non-uniform custom scale correctly
    Don't disable start game button for previewing packages from the editor when multiplayer isn't available
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-03-04 04:33:58 CET ] [Original Post]
    Creating 3D Shapes From Transparent Images

    Game Description Image

    [u]This update brings the first part of a long anticipated feature: creating 3D shapes from transparent images.[/u] You can now use images to create cardboard cutout figures with depth in any shape. Next step: custom shapes for cards, tokens, and tiles!

    Figures with alpha textures now get 3D shapes
    New option for changing 3D cursor size in the interface settings
    New option when creating objects in the editor: automatic straighten up on grab. Now activated by default for figures and for the chess pieces.

    Scripting
    Add Container.remove and Container.removeAt
    Add GameWorld.setShowDiceRollMessages and GameWorld.getShowDiceRollMessages
    Add GameWorld.updateUI, GameWorld.removeUIElement, GameObject.updateUI, GameObject.removeUIElement, GameObject.addUI, GameObject.getUIs
    Don't call tick functions or advance timers while the game is paused (when a new player joins)

    Fixes
    Switch off scripting UI interaction while holding objects
    Loading option for non-stacking cards correctly
    Sometimes the wrong object was dragged out when using the card stack or container explorer
    Removed crash when pressing escape while using drag and drop in container or stack explorer
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-02-09 04:16:05 CET ] [Original Post]
    Update notes February 8

    This update brings the first part of a long anticipated feature: creating 3D shapes from transparent images. You can now use images to create cardboard cutout figures with depth in any shape. Next step: custom shapes for cards, tokens, and tiles!

    Figures with alpha textures now get 3D shapes
    New option for changing 3D cursor size in the interface settings
    New option when creating objects in the editor: automatic straighten up on grab. Now activated by default for figures and for the chess pieces.

    Scrpting
    Add `Container.remove` and `Container.removeAt`
    Add `GameWorld.setShowDiceRollMessages` and `GameWorld.getShowDiceRollMessages`
    Add `GameWorld.updateUI`, `GameWorld.removeUIElement`, `GameObject.updateUI`, `GameObject.removeUIElement`, `GameObject.addUI`, `GameObject.getUIs`
    Don't call tick functions or advance timers while the game is paused (when a new player joins)

    Fixes
    Switch off scripting UI interaction while holding objects
    Loading option for non-stacking cards correctly
    Sometimes the wrong object was dragged out when using the card stack or container explorer
    Removed crash when pressing escape while using drag and drop in container or stack explorer

    [ 2021-02-08 21:21:31 CET ] [Original Post]
    Unreal Engine And Multiplayer Update

    Game Description Image

    Happy New Year Tabletop gamers Following the holiday break, it is time for a new update!

    Although the changelog for this update isn't very long, under the hood this is our biggest update yet: we've upgraded to a new Unreal Engine version, which gets rids of a few longstanding issues that couldn't be fixed before. We've also completely overhauled the multiplayer backend, which will allow cross-platform multiplayer across all launchers and stores in the future.

    While implementing these changes, we also squeezed in some new options and convenience features:

    Enhancements
    New dialog when joining games through an invite or the Steam friends list. Finds missing packages and offers to download them before joining the game.
    Joining a game through Steam without the game running now works
    Increased physics tick rate for smoother and more stable simulation
    Improved physics replication for smoother gameplay on clients
    Improved dragging cards from stack with motion controllers
    New option for card holders to show card front instead of grey blur or card back for hidden cards, effectively not hiding cards
    New option for card-type objects (in editor) to disable stacking
    New option for smooth turning in VR

    Fixes
    SteamVR doesn't start anymore when launching the game without VR (#44)
    Snap preview appeared at the wrong height for some angles of composite objects
    Removed crash on startup with recent Intel processors that required the OPENSSL_ia32cap environment variable to be set
    For clients using 2D or screen cursor mode, cards ended up in the wrong location when drawn from the on-screen hand
    Clients in screen cursor mode did not see cursors of other players
    When creating a snap point grid in the editor, the center position was a factor of 3 too small
    ScriptSlider had issues with values above 1000

    We hope you enjoy these new improvements and fixes, but we're also open to suggestions from our community. So please leave a comment here and we hope to see you online!
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2021-01-18 11:38:24 CET ] [Original Post]
    Custom Card Backs

    Game Description Image

    Our latest update brings new options for card backs and the package directory, as well as a number of convenience improvements for the editor and scripting.

    General Updates

    Cards can now use a custom image to indicate that they are hidden (for example when in another player's hand), instead of the default grey blur. In the editor, you can set part of the front image or a separate texture to be the hidden image
    The "Size" text fields in the editor are no longer read-only. You can set the size of any object directly now, with toggleable uniform scaling.
    A new "Flip" checkbox in the card editor allows you to show card stacks with the front facing upwards
    Thumbnails for flipped cards are now cached, removing loading stutters in the object library when showing flipped cards. For existing packages, flipped thumbnails can be cached by opening the package in the editor and clicking the "Card Fronts" checkbox.
    The directory where created and downloaded packages are stored can now be configured in the settings
    Added knowledge base link buttons in a few placed in the editor
    TTS importer: Fix snap point positions on regular objects
    TTS importer: Sort save file names starting with a number numerically
    Game Description Image

    Scripting

    Added SnapPoint.getSnappedObject to find the object snapped to a snap point
    Text boxes have two new properties: maximum length and input type (either any strings, or only real/whole numbers)
    Added GameObject.toJSONString method, deprecate GameObject.toJsonString
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2020-12-02 01:15:56 CET ] [Original Post]
    Mod Converter Update

    Game Description Image

    We've got a new update available! Although it's a smaller one, it includes a new tool that will be of huge benefit to modders.

    We've often had questions from creators on how to convert their games from Tabletop Simulator to Tabletop Playground. This update introduces a new tool to make the conversion process much easier.

    [u]Find out how to use it on our knowledge base here:[/u] https://tabletop-playground.com/knowledge-base/importing-from-tabletop-simulator/
    Further improvements:
    The editor now has Undo/Redo buttons on top of the screen. You can also press Ctrl+Z or Ctrl+Y to undo or redo changes
    The sounds for inserting into and taking objects from containers have been updated
    Physical properties (friction, bounciness, density) of card-like objects can now be changed
    Improved performance and fixed rare crash when rapidly switching PDF pages
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2020-11-13 04:22:55 CET ] [Original Post]
    Our Biggest Discount Yet And Welcome Dominos!

    Game Description Image

    We're excited to be part of the Steam Digital Tabletop Festival over the next week and to be running our largest discount yet! You and your friends can grab Tabletop Playground for 33% off!

    Grab Tabletop Playground [u]33%[/u] Off For A Friend!


    The discount will run until the end of the festival on the 26th. So get in quick and grab some copies for your friends, so they can join you for some board games.

    Speaking of games, a whole new classic game has been added in our latest update. Along with knocking off another two items from the development roadmap and several other improvements!

    [u]Check out all the details for the update below, and be sure to check out all the other great games on sale as part of the festival:[/u]

    You can now switch to a "screen" style cursor in the interface settings: the 3D cursor isn't shown and you only use the regular hardware mouse cursor. You can select multiple objects using a rectangle on the screen instead of a 3D box.

    The lower right corner of the screen now has a switchable dynamic input guide: click on the keyboard icon to toggle hints on what actions you can do using hotkeys in the current context.

    Containers can now have an owner, similar to card holders. The container will show the color of the owner, and only the owner can use the container explorer to look at the contents. This allows you to use containers as hidden storage for players, similar to card holders but for any type of object.

    You can now set snap points for an object to global from the object properties in the editor. When snap points are global, they cursor does not need to be on the object in order for its snap points to be active. This is useful for tile laying games when you use snap points that are not on the object, for example with Domino pieces.

    When an object has a fixed zoom direction for the object zoom (also set in the object properties), the direction will be reversed when the object is lying upside down. Also, the "Below" key allows you to look at the opposite side, like with cards. This is useful for 3D objects that are used in a similar way to cards, with an open and a hidden side, like Domino pieces.

    You probably saw where this is going: Domino is now part of the included games!

    Added object thumbnails for all included games so the object library loads a bit faster

    Added some missing German translations

    Fixed a bug where items in a container could get duplicated when the same game was loaded multiple times
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2020-10-22 07:50:30 CET ] [Original Post]
    Enjoy More Color Options In Our Latest Updates!

    Game Description Image

    After a well deserved holiday and break for the main developer of Tabletop Playground, we're back with a couple of new updates.

    The first was the more players, more colors, more customization update, which came out a couple of weeks ago. There are now 18 available player colors, and the maximum number of players per game has been increased from 8 to 16.

    The default set of colors is optimized so players with color blindness are able to distinguish between them, but you can also set your own colors: While creating or playing a game, you can now change the player colors from the session options. Modified colors are stored in the game state, so you can decide what colors the players in your game should have!
    Game Description Image

    While the newest completes another two items from the roadmap: You now have more flexibility with using colors for cards and card-like objects, and scripts are able to access the internet!

    Card objects now have an option in the editor to use their primary color for the sides of the stack. If enabled, the color can be changed in the editor and in the game. Cards with different side colors cannot be stacked.
    You can now create cards without a texture: The primary color is used as the front of the card, the secondary color is used as the back.
    Scripting: HTTP requests are now supported using the HttpRequest class and the fetch() function. Players will be asked to allow internet access from scripts.
    Fix: Could not select no resource in editor (e.g. resetting texture to no texture) when using German translation

    [u]We'll also be taking part in the upcoming Steam Digital Tabletop Festival later this month[/u], with the biggest discount we've ever done for Tabletop Playground! So if you have some friends you want to join you for games, let them know about the upcoming sale.
    ---
    These new updates we've added are just some of the many features on our early access development roadmap for Tabletop Playground, which you can check out on our Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2020-10-06 04:12:04 CET ] [Original Post]
    PDF Support Has Arrived

    Game Description Image

    The next update for Tabletop Playground is live! The main feature this time is PDF support: you can now use PDF files with multistate objects to easily create rulebooks, guides, and similar objects. We've also added a few other enhancements, which you can check out below.

    Enhancements
    Multistate objects now support PDF files: you can select a pdf instead of a texture, and each page will become a state
    New object type "Book": When you create a new object, select Book and choose a PDF file to create a new Multistate object with the correct size for the PDF.

    Scripting
    GameObject.attachUI and GameWorld.addUI now return the index of the added UI element
    UI elements that have been removed can now be added again

    VR
    New setting to allow enlarging or shrinking free cursor orb
    Game Description Image
    ---
    Adding PDF support to the game is one of the many features on the early access development roadmap for Tabletop Playground, which you can check out on Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2020-08-25 04:42:32 CET ] [Original Post]
    New Update Featuring Card Deck Splits And More!

    Game Description Image

    A new version is up! It includes two items from the roadmap that are now finished: card deck splits and saving/loading data from scripts.

    Enhancements
    Add new context menu option for splitting card decks: you can take a number of cards from the top, split into a number equal sized decks or into decks with a fixed number of cards.
    Improved physics stability for object stacks
    Added snap points to poker chips to make them easier to stack
    Add chat message when player is peeking at the underside of a card
    When editing a card template in preview mode, don't reload the stack so you can edit a partial stack without resetting it to full size. Don't allow editing single cards in a card stack from preview mode because it gives inconsistent results
    Game Description Image

    Scripting
    Add SetSavedData and GetSavedData methods to GameObject and GameWorld. These methods allow you to store arbitrary information in game states.
    Add Card.Split and Card.Divide for splitting card decks

    VR
    Separate bindings for grabbing and UI clicks, allowing you to bind them to different buttons. By default, they remain on the same button.
    Allow scrolling in UI using the main hand analog stick

    Fixes
    Context menu did not show the correct state when changing multistate object state on clients
    Standard chat message (e.g. player using card stack explorer) were displayed in the configured language of the player who caused the message, instead of the locally configured language.
    Object UI remained after changing object script
    Objects that were flipped while in hand while directly on top of the table (with minimal hold height) were dragging against the table
    ---
    Adding card deck splits to the game is one of the many features on the early access development roadmap for Tabletop Playground, which you can check out on Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2020-08-12 00:05:43 CET ] [Original Post]
    Latest Update Includes Undo/Redo Feature!

    Game Description Image

    Our latest update went live last week, featuring several enhancements and most importantly a Undo/Redo feature.

    The main highlight is the new Undo/Redo buttons, that allow you to jump backward/forward in time, coupled with much better performance when loading states while in-game.

    We're also now live on Localizor: https://www.localizor.com/tabletop-playground
    If English is not your mother tongue and you'd like to see Tabletop Playground in your native language, you can join the translator community and help to make it happen - and you can earn Steam keys for a Tabletop Playground and a number of other games as rewards!

    We have activated French, Portuguese, Russian, and Spanish as additional languages for now, let us know if you want to translate to the game to another language!

    Enhancements
    A new button bar appears when moving the mouse cursor to the center of the upper screen edge. It has an undo and a redo button which load the previous/next autosave.
    Autosave interval reduced to 10 seconds
    Loading times when already in game drastically reduced, especially in multiplayer
    Containers now have a maximum number of items. The number can be set in the object properties or using scripting.

    Scripting
    Throw exceptions instead of printing a warning for invalid function calls
    Adding a new UI element does not rebuild the whole UI for that object anymore (making creating objects with many UI elements faster)
    Colors now default to alpha=1 (instead of 0) when no value is given

    VR
    Virtual keyboard is now shown for scripting UI text boxes

    Fixes
    Fix memory leak when using .dds textures for cards
    Game Description Image

    The new Undo/Redo feature in action!
    ---
    Adding a Undo/Redo feature to the game is one of the many features on the early access development roadmap for Tabletop Playground, which you can check out on Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2020-08-06 05:26:16 CET ] [Original Post]
    UI Scripting For Tabletop Playground Is Now available!

    Game Description Image

    This time there's not a long list of changes, just one big new feature. The long requested feature UI Scripting feature is now available!

    You can use scripting to create user interface elements like buttons or text fields in the world. When players interact with the UI elements, they generate events that you can subscribe to.

    Learn how to use it in the knowledge base: https://tabletop-playground.com/knowledge-base/user-interface/ Game Description Image

    Fixes
    Fixed visual issues when highlighting objects that have multiple components, some of which are transparent and some aren't
    ---
    Adding UI Scripting to the game is one of the many features on the early access development roadmap for Tabletop Playground, which you can check out on Trello HERE .

    Don't forget to join our community Discord to chat with the dev team and give us your suggestions for new features for the game!

    [ 2020-07-24 02:42:44 CET ] [Original Post]

    Minimum Setup

    • Processor: Dual-CoreMemory: 4 MB RAM
    • Memory: 4 MB RAM
    • Graphics: GeForce GTX 760 or higherNetwork: Broadband Internet connection
    • Storage: 4 MB available space
  • Memory: 8 MB RAM
  • Recommended Setup

    • Processor: Quad-CoreMemory: 8 MB RAM
    • Graphics: GeForce GTX 980 or higherNetwork: Broadband Internet connection
    • Storage: 10 MB available space
    ⭐ SPOTLIGHT DEAL ⭐
    RAIDOU Remastered: The Mystery of the Soulless Army
    RAIDOU Remastered: The Mystery of the Soulless Army
    $31.49
    -37% OFF
    Fanatical
    GAMEBILLET

    [ 6381 ]

    25.19$ (16%)
    41.47$ (17%)
    24.59$ (18%)
    25.19$ (16%)
    13.48$ (78%)
    3.52$ (77%)
    20.72$ (-4%)
    20.99$ (16%)
    33.17$ (17%)
    3.93$ (21%)
    12.42$ (17%)
    5.38$ (73%)
    16.96$ (15%)
    8.78$ (12%)
    16.79$ (16%)
    24.87$ (17%)
    33.17$ (17%)
    20.99$ (16%)
    13.02$ (13%)
    4.07$ (18%)
    8.39$ (16%)
    41.47$ (17%)
    10.76$ (17%)
    8.47$ (15%)
    16.79$ (16%)
    24.87$ (17%)
    8.27$ (17%)
    7.18$ (64%)
    16.57$ (17%)
    13.34$ (11%)
    FANATICAL

    [ 5876 ]

    67.99$ (15%)
    35.87$ (10%)
    23.89$ (20%)
    31.49$ (37%)
    23.89$ (20%)
    30.24$ (73%)
    21.89$ (64%)
    22.39$ (10%)
    13.79$ (77%)
    14.99$ (25%)
    82.49$ (25%)
    58.09$ (17%)
    18.89$ (37%)
    35.89$ (10%)
    17.88$ (11%)
    6.1$ (82%)
    15.17$ (77%)
    3.44$ (77%)
    10.99$ (50%)
    12.94$ (82%)
    49.19$ (18%)
    8.99$ (10%)
    18.74$ (25%)
    43.99$ (12%)
    44.99$ (55%)
    84.89$ (15%)
    21.89$ (64%)
    84.99$ (15%)
    33.59$ (16%)
    10.99$ (73%)
    GAMERSGATE

    [ 1265 ]

    0.43$ (91%)
    6.0$ (80%)
    1.7$ (91%)
    2.55$ (91%)
    0.56$ (81%)
    0.6$ (91%)
    3.4$ (91%)
    8.93$ (70%)
    0.6$ (91%)
    1.31$ (81%)
    1.7$ (91%)
    6.75$ (55%)
    1.91$ (87%)
    2.55$ (91%)
    1.28$ (91%)
    8.5$ (79%)
    0.51$ (83%)
    5.1$ (87%)
    11.24$ (55%)
    1.45$ (91%)
    5.22$ (74%)
    3.13$ (83%)
    6.38$ (79%)
    0.6$ (91%)
    1.91$ (87%)
    4.25$ (91%)
    0.43$ (91%)
    8.5$ (83%)
    1.58$ (95%)
    3.4$ (91%)
    MacGameStore

    [ 2018 ]

    1.19$ (88%)
    17.49$ (20%)
    1.10$ (93%)
    3.99$ (73%)
    13.99$ (7%)
    17.49$ (13%)
    1.99$ (80%)
    4.99$ (88%)
    13.99$ (7%)
    1.49$ (75%)
    1.19$ (88%)
    21.99$ (12%)
    21.99$ (27%)
    1.49$ (85%)
    9.49$ (5%)
    1.99$ (80%)
    0.99$ (93%)
    27.49$ (8%)
    1.19$ (88%)
    1.10$ (89%)
    13.99$ (7%)
    2.49$ (75%)
    2.49$ (75%)
    1.99$ (80%)
    18.49$ (8%)
    1.09$ (86%)
    1.28$ (87%)
    3.49$ (65%)
    13.99$ (22%)
    0.74$ (75%)
    INDIEGALA

    [ 986 ]

    3.99$ (80.0%)
    0.79$ (90.0%)
    1.49$ (90.0%)
    1.99$ (80.0%)
    1.74$ (75.0%)
    0.89$ (70.0%)
    1.49$ (90.0%)
    3.14$ (90.0%)
    1.39$ (90.0%)
    1.49$ (90.0%)
    10.99$ (72.51%)
    0.99$ (80.0%)
    1.49$ (70.0%)
    3.99$ (20.0%)
    1.39$ (80.0%)
    3.99$ (80.0%)
    1.24$ (75.0%)
    0.89$ (90.0%)
    12.25$ (50.0%)
    4.79$ (76.0%)
    1.24$ (75.0%)
    2.49$ (50.0%)
    2.49$ (50.0%)
    4.99$ (75.0%)
    1.49$ (90.0%)
    1.99$ (80.0%)
    4.49$ (82.03%)
    1.19$ (90.0%)
    3.49$ (65.0%)
    3.99$ (80.0%)

    FANATICAL BUNDLES

    Time left:

    356101 days, 13 hours, 6 minutes


    Time left:

    356101 days, 13 hours, 6 minutes


    Time left:

    5 days, 21 hours, 6 minutes


    Time left:

    33 days, 21 hours, 6 minutes


    Time left:

    36 days, 21 hours, 6 minutes


    Time left:

    37 days, 21 hours, 6 minutes


    GMG BUNDLES
    Indie Adventures

    Time left:

    11 days, 7 hours, 6 minutes


    HUMBLE BUNDLES

    Time left:

    6 days, 15 hours, 6 minutes


    Time left:

    12 days, 15 hours, 6 minutes


    Time left:

    13 days, 15 hours, 6 minutes


    Time left:

    18 days, 15 hours, 6 minutes


    Time left:

    20 days, 15 hours, 6 minutes


    Time left:

    24 days, 15 hours, 6 minutes


    INDIEGALA BUNDLES
    Huge Pixel 2 Bundle

    Time left:

    4 days, 4 hours, 21 minutes

    Adult Positions 2 Bundle

    Time left:

    8 days, 21 hours, 7 minutes

    Holiday Tales Bundle

    Time left:

    10 days, 20 hours, 7 minutes

    Psycho Gates Bundle

    Time left:

    16 days, 3 hours, 17 minutes

    by buying games/dlcs from affiliate links you are supporting tuxDB
    🔴 LIVE