June 27, 2024
Foundry Virtual Tabletop - Version 12 - Stable 4 Release Notes
![Foundry VTT - Version 12 - Stable 4 Release Notes Release Notes for Foundry Virtual Tabletop Version 12 Stable 4](https://r2.foundryvtt.com/website-uploads-public/screen/user_70/v12-stable-4-release-banner-2024-06-27.webp)
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
HTMLDocumentTagsElement
placeholder 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
RegionBehaviorType
subclasses to use staticLOCALIZATION_PREFIXES
instead of explicitly defining the localization label and hint fields in each field. (11137)
Other Changes
- The
BEHAVIOR_STATUS
Region events that are triggered when the Scene is viewed/unviewed are nowawait
ed before the draw/tear down workflow continues. (11182) - Assistant GMs without the
MACRO_SCRIPT
User 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
DOMContentLoaded
event. (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
event
parameter to Macro execution. (9927)
Applications and User Interface
- Primary Documents can now be added to a
HTMLDocumentTagsElement
input by providing the ID. (10697) - Added support for passing the
groups
parameter to theselectOptions
Handlebars helper which is forwarded tofoundry.applications.fields.createSelectInput
. (10715) - Added
HTMLDocumentTagsElement#_validateDocument
which allows subclasses to impose custom validation logic. (11101) - The
ForeignDocumentField
is now rendered as anHTMLSelectElement
of visible Documents. (11191) - In
DialogV2
the innerdialog-content
element now also has thestandard-form
class. (11213) - Added the protected methods
DocumentSheetV2#_processFormData
andDocumentSheetV2#_processSubmitData
which add more points in the form submission process where subclasses can customize behavior. (11223) - The
HTMLStringTagsElement
element now disallows empty strings. (11247) - Added an optional slug property to the
HTMLStringTagsElement
element which automatically converts input strings to slugs. (11248) - Added an
autofocus
option toFormInputConfig
. (11279) - When a new Document UUID is added to an
HTMLDocumentTagsElement
configured assingle=true
it 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 theTokenDocument
has 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.getSearchableFields
did not return the correct field paths. (10948) - The
NumberField#_toInput
andStringField#_toInput
no longer fall back to initial values ifconfig.value
isnull
. (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
JournalEntryPage
which occasionally caused issues with saving. (11228) Combat#_onEndRound
is 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
HTMLDocumentTagsElement
now avoids an error if toggling itsdisabled
property before the element has been attached to the DOM. (11102) - Enhanced
numberFormat
functionality in Handlebars when handlingnull
andundefined
values and improved logging. (11165) - Drawings and Tiles with zero width or height can now be selected. (11166)
- The
HTMLFilePickerElement
no 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
FilePicker
S3 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
, andstep
of both inner elements of anHTMLRangePickerElement
element are consistent. (11256) - Handlebars
ApplicationV2
apps now add focus to the first element withautofocus
when rendered for the first time. (11278) - The
SceneConfig
input 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#getTrackedAttributes
to 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
recoverFromPreview
could 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#_resetStack
andCards#pass
methods 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
DiceTerm
evaluation 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
HttpError
deprecation warning. (11174) ClientDocument#sortRelative
no longer throws an error if the Document has anApplicationV2
sheet that is rendered. We also added asubmit
method toDocumentSheetV2
. (11230)- Fixed Assistant GMs bypassing the
FILES_BROWSE
permission test in the "can User create/update Actor" check. (11243) - Fixed an issue that prevented
/reply
from working to reply to a whisper. (11246) - The
ChatMessage#testUserPermission
now returnstrue
for 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#toObject
so it is no longer under Deprecations and Compatibility. (10994) - Fixed
Cards#passDialog
,Cards#drawDialog
,Cards#drawDialog
, andCards#playDialog
incorrectly returning a number. (11109) - Added the documentation for
HookEvents
back to the v12 API documentation. (11151)