1. Tabletop Playground
  2. News

Tabletop Playground News

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

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

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

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

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!