# Tabletop Simulator Update v12.1 Music Player, PDF support, and tons of other great improvements! - Product: Tabletop Simulator (https://whatsnew.fyi/product/tabletop-simulator) - Vendor: Berserk Games - Date: 2019-08-16 - Original notes: https://store.steampowered.com/news/app/286160/view/2881697031706672832 - Permalink: https://whatsnew.fyi/product/tabletop-simulator/releases/2019-08-16-update-v12.1-music-player-pdf-support-and-tons-of What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Music player that plays audio files (.mp3, .wav, .ogg, .ogv) synced for all players, with support for playlists including ordering, shuffling, and looping - **added** — Custom PDF object that imports PDFs as a series of images with support for multiple pages, contextual menu navigation, and ability to popout to screen - **added** — Cloud manager now supports folders like Saved Games and Objects, with automatic folder creation using game name and ability to rename uploaded files - **added** — Glass material type for Custom AssetBundle and Custom Model - **added** — Alpha transparency support in color picker, allowing semi-transparent drawing and object color tinting - **added** — Loading percent indicator next to player names on top right - **added** — Workshop indicator next to chat window showing subscription check progress - **added** — Hidden zone opacity sliders in Misc settings - **added** — New global Vector class in scripting with constructors, component access, and vector mathematics methods - **changed** — Magnify (hotkey m) overhauled to be round with scroll wheel zoom control - **changed** — Custom Objects set to dice or coin now produce correct sounds for their selected material type - **changed** — Improved sounds for objects interacting with locked objects - **changed** — Auto-raise improved to work better with overhangs - **changed** — Physics mode (semi-lock, locked, etc) moved from Configuration to Server Options - **changed** — Scripting, Workshop Upload, and Cloud Manager menus moved under Modding in top bar - **changed** — Voice chat updated to higher quality setting - **changed** — File Browser now remembers last opened path - **changed** — Greatly improved compatibility with old AssetBundles shaders to fix broken DLCs - **changed** — Fog of War performance improved - **fixed** — Fixed visual issues with previous magnify Hey everyone, we got another great update for you today! We have added 2 very long requested features a Music Player and PDF support! There are also a ton of great additions and improvements listed below in the patch notes. ##### **Music Player** - The music player let's you play audio files (.mp3, .wav, .ogg, ogv) which are synced for all players. - Great for room music or so your DnD campaign has the right mood! - Supports playlists with ordering, shuffling, and looping. ##### **Custom PDF** - New object Custom PDF, that allows you import a PDF onto a tile. - This converts the PDF into a series of images, to make it easy to import your rule books! - Supports multiple pages: swap between them with the contextual menu, next/previous state hotkeys, or the buttons on the left and right side. - Can popout the PDF to the screen by hitting the hidden UI button on the top left of the PDF object. - You can joint this to any objects to add any visual flair you would like to match the game. ##### **Cloud Manager Folders** - Cloud manager now supports folders just like Saved Games/Objects. - When you import all loaded assets into cloud it puts them in a folder defaulting to the Game name. - Can now name files that are uploaded to the Cloud instead of just using the file name on disk. ##### **Sound Improvements** - Custom Objects that are set to dice or coin will now get that correct sounds for their selected material type. - Improved sounds for objects interacting with locked objects. - Added glass material type for Custom AssetBundle and Custom Model. ##### **Alpha Transparency Support** - Added alpha support to the color picker. - Can now draw with semi tranparency. - Can color tint objects to have alpha transparency, which goes nicely with the new glass material type. - Objects with alpha transparency will not cast shadows. ##### **Magnify Revamp** - Magnify (hotkey m) overhauled to be round. - Scroll up or down to control the zoom level of the magnify. - Fixed visual issues with previous magnify. ##### **General Improvements** - Added loading percent next to the player names on the top right. - For the top bar in-game the Scripting, Workshop Upload, and Cloud Manager menus have been moved under "Modding". - Improved auto-raise to work better with overhangs. - Added a workshop indicator next to the chat window that you can hover over and get info about how far along the workshop subscription check is at. - Moved physics mode (semi-lock, locked, etc) from Configuration to Server Options. - Greatly improved compatibility with old AssetBundles shaders. This will fix a lot of broken DLCs. - Improved Fog of War performance. - File Browser now remembers the last opened path. - Updated Voice Chat plugin. - Voice chat is now using a higher quality setting. - Added hidden zone opacity sliders to Misc settings. ##### **Scripting Improvements** - New global class Vector: ` Constructors: Vector(num, num, num) --> return a vector with specified (x, y, z) components Vector(table) --> return a vector with x/y/z or 1/2/3 conponents from source table (x/y/z first) Vector.new(...) --> same as Vector(...) Vector.max(vec1, vec2) --> return a vector with max components between vec1 and vec2 Vector.min(vec1, vec2) --> return a vector with min components between vec1 and vec2 Vector.between(vec1, vec2) --> return a vector pointing from vec1 to vec2 vec:copy() --> copy self into a new vector and retur it Component access: vec.x, vec.y, vec.z --> read/write component v[1], v[2], v[3] --> read/write component vec:get() => num, num, num --> returns x, y, z components of self Methods modifying self and returning self: vec:setAt(key, num) --> same as "vec = num" vec:set(num, num, num) --> set x, y, z components to passed values vec:add(otherVec) --> adds components of otherVec to self vec:sub(otherVec) --> subtracts components of otherVec from self vec:scale(otherVec) --> multiplies self components by co _[Truncated at 4000 characters — full notes: https://store.steampowered.com/news/app/286160/view/2881697031706672832]_