Hey everyone it's been a while, but we have a huge patch for you guys today!
The headline feature is Tabletop Simulator now supports translations for all 29 languages supported by Steam. The game has been translated with the help of google translate but we also added support for creating your own translations and sharing them on the Workshop. Using google translate is an exciting jumping off point for a more global user friendly experience, however, recognizing google translate’s limitations we are also excited to see what native speakers in the community can come up with for the most authentic multilingual game play experience. Furthermore, the translation support is extended to all of your great mods out there. Now players can participate in the same game with different localized text or assets based on their selected language.
We've also upgraded the game's engine (everything should run smoother), added layout zones (automatically lay out cards easily), and added object tags (easily filter system interactions).
We have a bunch of other great new features, upgrades, and fixes you can read about all below.
Finally we are launching a new method for collecting user feedback and bug reports found at https://tabletopsimulator.nolt.io/. This will allow us to better connect with the community for a more fluid and streamlined feedback loop, including increased visibility into our process. The new system allows you to easily make suggestions and upvote and downvote other community member ideas in a similar style to reddit. Additionally, the community will now be able to see our progress on implementing suggestions, fixes, and new features through the roadmap tool.
New mechanics which allows objects to selectively interact with game systems. If a system (e.g. a hidden zone, a hand zone, etc.) has a tag set, then only objects which share a tag with it will interact with it.
Set what tags a object or system has by right-clicking it and selecting
Tags from the menu. You may access all tags present at the table via the
Added Snap-Point Creation Tags window: new snap points will automatically gain whatever tags you set here.
New Zone tool (in the zone tool popout) which allows you to automatically lay out objects (primarily cards) across the table. Deploy like any other zone, then left-click and hit the cog to change its settings. Especially useful for card games in which you lay melds on the table (like Gin) or which have trick-taking (Whist, Bridge, etc.), but can also be used to simply arrange a bunch of objects in a grid without locking them to it.
Layout Zones can triggered by using the Layout Zone tool and left-clicking the zone then hitting the big Layout button, or by right-clicking a object inside a zone it interacts with and selecting the
Layout option in its context menu.
Mouse pointer shows icon indicating when you are holding an object inside a layout zone: will also show the zone's name if it has one.
End Turnbutton now shows current player instead.
Misc Settings, detailed below.
Spreadaction in the right-click menu; spreads the cards out across the table. Distance between cards is set in
tryObjectRandomize(object, player_color)for when someone tries to shuffle/roll/randomize an object. Returning
falsewill prevent randomization.
onBlindfold(player, blindfolded)event, triggered when a player puts on or takes off blindfold.
object.alt_view_angleproperty: when non-zero the
Altview will use the specified Euler angle to look at the object.
object.getRotationSmooth()return the current smooth move target and null if not moving.
object.isDestroyed()returns true if an object is (or will be) destroyed.
filter...commands: now use prefix
object.memo, a string you can store info in on an object.
Added Lua Global classes Tables and Backgrounds. Tables:
bool setTable(string name)
bool setCustomURL(string url)
bool setBackground(string name)
bool setCustomURL(string url)
Added Info global static class exposing Info menu.
Added calls for working with Tags:
object.getTags() -> Tablegets the Tags attached to an object.
object.setTags(Table tags)sets the Tags attached to an object.
object.addTag(string label)adds the Tag to the object.
object.removeTag(string label)removes the Tag from the object.
object.hasTag(string label) -> boolchecks if the object has the Tag.
object.hasAnyTag() -> boolchecks if the object has any Tags.
object.hasMatchingTag(other) -> boolchecks if the other object has a matching Tag with this object.
scripting_zone.getObjects()will utilize Tags attached to the zone, unless you override with
deck.spread(distance)uses the spread action on the deck.
object.getSnapPoints()throwing when having no snap points.
object.clone()sound parameter not working.
showHotkeyConfigworking over network. Added
colorparameter; dialog will be shown to that player.
onRandomizenot returning correct player colour.
Physics.castnot returning list in correct order.
language_...commands for selecting current language.
translation_for...commands for working on translations.
translatecommand to translate an English term into the current language (if TTS knows it).
ui_clearcommand to clear UI generated by other commands (e.g.
Measure Movementworking on clients.
Pankey not working while holding a object (as long as it is not on the same binding as
Camera Hold Rotatekey not working while holding a object (as long as it is not on the same binding as