June 27, 2024
Foundry Virtual Tabletop - Version 12 - Stable 4 Release Notes
The release banner features the Symbaroum System from Free League and the premium Symbaroum Adventure Collection module.
We are happy to announce the third release of Foundry Virtual Tabletop Version 12. This patch continues to incrementally improve upon Foundry V12 Stable, bringing a number of bug fixes and also a few refinements to features that are new to V12. Thanks again to everyone for submitting your feedback and helping us stay on top of bugs!
Notable improvements include support for System/Module defined Dynamic Token Rings, better animation support for Dynamic Tokens, and configurable options for Ring and Background colors as well as color band position. This release also includes Package sidegrade improvements for regular and premium content and enhancements to Region Behaviors like the option for a confirmation prompt when a User enters a Teleporter Region. For a complete log of all the features added in V12, please see the notes for our first release on the stable channel.
WARNING: While this is categorized as a stable release there is always a possibility of unexpected bugs or compatibility issues. As with any time you update the core software, be sure to perform a complete backup of your user data to minimize any risk of data loss.
New Features
Architecture and Infrastructure
- Premium content Packages can now benefit from sidegrade workflows which improve their installed metadata using the website's central repository. (11202)
- Package sidegrade data is now integrated before attempting a Package installation instead of after installation has completed. (11203)
Applications and User Interface
- Added an Allow Choice option to the Teleport Token Behavior that, if enabled, allows the User that moved the Token into the Region to choose whether to teleport it. (11033)
- Tokens are now teleported after their movement animation is completed. (11194)
- Tokens that are moving along a Ruler path can now be controlled during the animation. (11161)
- When creating a backup on the Setup screen, the Backup Name field is now autofocused. (11224)
- Increased the maximum value for the Subject Scale Correction Token setting to match the Scale setting. (11266)
- Improved the informativeness of
HTMLDocumentTagsElementplaceholder text. (11287)
The Game Canvas
- Reduced the speed of the Starlight animation. (10308)
- Users with Observer permissions over Tokens that have the secret disposition can now know their disposition. (11189)
- Teleporting a Token now prevents animating Token movement but allows other animations to still run. (11244)
- Clamped the current elevation of teleported Tokens to the elevation range of the destination Region instead of choosing a random elevation within the range. (11253)
- Added support for Ring Scale and Subject animation. (11257)
Dice and Cards
- The first input field in the roll resolver application is now autofocused when rendered. (11092)
- Blind rolls are no longer evaluated interactively. (11208)
Localization and Accessibility
- Switched
RegionBehaviorTypesubclasses to use staticLOCALIZATION_PREFIXESinstead of explicitly defining the localization label and hint fields in each field. (11137)
Other Changes
- The
BEHAVIOR_STATUSRegion events that are triggered when the Scene is viewed/unviewed are nowawaited before the draw/tear down workflow continues. (11182) - Assistant GMs without the
MACRO_SCRIPTUser Permission can no longer create Execute Script Region Behaviors or change the source of existing Execute Script Region Behaviors. (11207) - Region Events are now triggered at the end of the CRUD workflow instead of in the middle of it. (11272)
- Removed the console group that captures log messages before the
DOMContentLoadedevent. (11252) - Reworded the "Check for Update" tooltip to make it clear that the package is updated if an update is available. (11249)
API Improvements
Documents and Data
- Added the
eventparameter to Macro execution. (9927)
Applications and User Interface
- Primary Documents can now be added to a
HTMLDocumentTagsElementinput by providing the ID. (10697) - Added support for passing the
groupsparameter to theselectOptionsHandlebars helper which is forwarded tofoundry.applications.fields.createSelectInput. (10715) - Added
HTMLDocumentTagsElement#_validateDocumentwhich allows subclasses to impose custom validation logic. (11101) - The
ForeignDocumentFieldis now rendered as anHTMLSelectElementof visible Documents. (11191) - In
DialogV2the innerdialog-contentelement now also has thestandard-formclass. (11213) - Added the protected methods
DocumentSheetV2#_processFormDataandDocumentSheetV2#_processSubmitDatawhich add more points in the form submission process where subclasses can customize behavior. (11223) - The
HTMLStringTagsElementelement now disallows empty strings. (11247) - Added an optional slug property to the
HTMLStringTagsElementelement which automatically converts input strings to slugs. (11248) - Added an
autofocusoption toFormInputConfig. (11279) - When a new Document UUID is added to an
HTMLDocumentTagsElementconfigured assingle=trueit now replaces the existing Document rather than throw an error. (11288)
The Game Canvas
- Modules can now register additional Dynamic Token Rings. Caution: using a large number of comingled rings can negatively impact performance. (10714)
- Added an API for System/Module-defined Token-Region containment. (10831)
- Added support for configurable Token Ring color band positioning. (11143)
- Added the property
TokenDocument#isSecret, which is true if theTokenDocumenthas the secret disposition and the User lacks the necessary permissions to see their disposition. (11180) - Added default Ring and Background Color options to the JSON configuration for Dynamic Rings. (11271)
Package Development
- Implemented an API for packages to provide Actor art mappings. (11125)
Other Changes
Bug Fixes
Documents and Data
- Resolved an issue with full text search where
DocumentCollection.getSearchableFieldsdid not return the correct field paths. (10948) - The
NumberField#_toInputandStringField#_toInputno longer fall back to initial values ifconfig.valueisnull. (11173) - Scrolling text is no longer displayed on Tokens with the secret disposition unless the User has the necessary permission to know that information. (11179)
- Full Text Search (
DocumentCollection#search) now searches the text content of the HTML and not the HTML. (11198) - Script Macros can no longer be created or updated by Users without the "Use Script Macros" permission. (11210)
- Fixed an issue in the Markdown to HTML conversion of
JournalEntryPagewhich occasionally caused issues with saving. (11228) Combat#_onEndRoundis no longer called at the beginning of Combat. (11238)- Macros that were originally saved with a broken syntax can now be saved after being updated to resolve the syntax issues. (11281)
Applications and User Interface
- The Roll button is now disabled when the Roll Table is non-editable and lacks a formula. (10280)
- Fixed incorrect color picker placeholders. (10812)
- The
HTMLDocumentTagsElementnow avoids an error if toggling itsdisabledproperty before the element has been attached to the DOM. (11102) - Enhanced
numberFormatfunctionality in Handlebars when handlingnullandundefinedvalues and improved logging. (11165) - Drawings and Tiles with zero width or height can now be selected. (11166)
- The
HTMLFilePickerElementno longer always displays the default "path/to/file.ext" placeholder instead of the configured placeholder. (11172) - Fixed a regression which prevented vertical scrolling for Scene Region Shapes and Behaviors tabs of the config sheet. (11186)
- Corrected an HTML markup issue with
FilePickerS3 buckets which prevented file upload. (11218) - Content links for Playlists/Sounds now once again visually toggle between the play/stop icon. (11226)
- We now ensure that the
min,max, andstepof both inner elements of anHTMLRangePickerElementelement are consistent. (11256) - Handlebars
ApplicationV2apps now add focus to the first element withautofocuswhen rendered for the first time. (11278) - The
SceneConfiginput fields are now populated with their source data rather than their derived data. (11283)
The Game Canvas
- Improved texture transitions of Tokens with a Dynamic Token Ring. (11019)
- Fixed
TokenDocument#getTrackedAttributesto only return tracked attributes from the Token's Actor type. (11089) - Fixed an issue where text drawings did not correctly update text during preview or after clicking Update Drawing and required a refresh. (11146)
- Creating a new Text Drawing no longer sometimes results in the word "undefined" appearing. (11147)
- Fixed an issue where the new render flag
recoverFromPreviewcould cause intermittent Token disappearance when the Token Ring is enabled in the Token Config UI. (11170) - Improved messaging to users when creating a Drawing fails because it has no visible parts. (11209)
- Token targets of another User are now cleared when they switch to a different Scene. (11227)
- Fixed an issue that led to status effect icons occasionally flashing when clicked in rapid succession. (11231)
- Implemented Dynamic Ring clipping based on rectangular distance instead of euclidean distance. (11237)
- Reverting the deletion of an unlinked Token with CTRL+Z no longer clears the Actor Delta. (11263)
- Using CTRL+Z on a Token after the shapes or elevation range of a Region was changed that made the Token enter the Region no longer triggers an Exit event. (11264)
- Flags added to a Document are now reverted by CTRL+Z. (11265)
- Clearing the Tint Color input in the Tile config no longer crashes the Canvas. (11285)
Package Development
- Fixed an issue with unzipping package archives that are greater than 4 gigabytes. (11268)
Dice and Cards
- The
Cards#_resetStackandCards#passmethods no longer throw an error when trying to return a Card to a Deck if the "original" Card has been deleted. (11171) - Fixed an issue with
DiceTermevaluation with negative numbers. (11010)
Localization and Accessibility
- The UI notification when capturing the Scene view in the Scene config is now localized. (10321)
Other Changes
- The Configure Ownership dialog on Compendium Packs no longer throws an error when it is closed without a choice. (10264)
- Entering an invalid password on login no longer throws an
HttpErrordeprecation warning. (11174) ClientDocument#sortRelativeno longer throws an error if the Document has anApplicationV2sheet that is rendered. We also added asubmitmethod toDocumentSheetV2. (11230)- Fixed Assistant GMs bypassing the
FILES_BROWSEpermission test in the "can User create/update Actor" check. (11243) - Fixed an issue that prevented
/replyfrom working to reply to a whisper. (11246) - The
ChatMessage#testUserPermissionnow returnstruefor the author of the chat message. (11250) - Added support for malformed zips produced by certain outdated versions of Windows' built-in archiver. (11276)
Documentation Improvements
Documents and Data
- Added documentation for
StringFieldOptions.textSearch. (10898)
Localization and Accessibility
- Fixed a few typos and made some wording changes in the Environment Lighting tab of the Scene config. (11199)
Other Changes
- Fixed the incorrect categorization of
Document#toObjectso it is no longer under Deprecations and Compatibility. (10994) - Fixed
Cards#passDialog,Cards#drawDialog,Cards#drawDialog, andCards#playDialogincorrectly returning a number. (11109) - Added the documentation for
HookEventsback to the v12 API documentation. (11151)