February Update

Date: Wed, 22 Feb 2023
Tabletop Playground Game Banner
Genre: Casual, Indie, Simulation, Strategy, Early Access
Developer: Plasticity Studios
Release Date: Fri, 15 May 2020
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



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

Write your comment!