August 06, 2025
Foundry Virtual Tabletop - Version 13 - Stable Release Notes
We're very pleased to be able to offer the latest iteration on V13. This update focuses almost entirely on resolving bugs and addressing some small pain points that our community has experienced over the course of the V13 development cycle since stable. As a 'maintenance' update, V13 Stable 6 contains a variety of small changes rather than introducing any big new features, but many of these changes should help to further shore up the stability of V13.
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
Applications and User Interface
- The current movement action is now always shown as an option in the Token Config, Token HUD, and while cycling movement action types, even if it is not selectable at the moment. (13093)
- The Chat Log sidebar tab HTML now includes a shared
.chat-controlsdiv container between ChatLog and Notifications. (13153) MeasuredTemplateConfigis now scrollable to allow for cases where a module may have added additional fields. (13244)- Controls provided by a game system are now placed between core controls and module-provided controls on the
ControlsConfigapplication. (13259)
API Improvements
Documents and Data
- It is now possible to specifically exclude certain HTML header elements from the Journal table of contents using the new
data-no-tocattribute. (8106) - Added clarifying documentation to
CalendarConfigSeasonto clarify the purpose ofdayStartanddayEndas they relate to the range of a season. (13209)
Applications and User Interface
- The warning displayed if an AppV2 class cannot be rendered has been improved for clarity. (13261)
CompendiumCollection#migrateUI notifications can now be suppressed using the newnotifyoption. (8004)- It is now possible to pass a pre-existing Sound instance to
canvas.sounds.playAtPosition. (13262) foundry.utils.SortingHelpersnow displays its intended deprecation warning. (13240)
The Game Canvas
Bug Fixes
Documents and Data
Combatant#actorIdis now set in cases where the combatant is created using onlysceneIdandtokenId. (13095)TerrainData#difficultynow prepares correctly usingInfinityif the sourcedifficultyisnull. (13137)- Documents in adventure compendia now preserve the default ownership data of exported documents only in cases where the ownership data is set. (13144)
@Embeds now render HTML characters in TableResult names as expected. (13149)- Embedded RollTable result names are now excluded from the Journal Table of Contents. (13180), (13184)
CalendarData#componentsToTime()now accounts for leap years. (13219)SchemaField#applyandArrayField#applyno longer incorrectly attempt recursion for values of the wrong type (undefined,null, etc.). (13265)Document.createnow sets a default for itsdataparameter. (13150)- Corrected an issue which caused
FormDataExtendedto fail when processing input fields namedlengthoritem. (13158)
Applications and User Interface
- To resolve issues with chat messages appearing out of order due to users with system clocks that are out of sync, we have reverted a change to chat message sorting in the
ChatLogto sort by order of creation rather than by timestamp. (13224) - Corrected an issue which caused some Chat Messages to be displayed twice if they were updated within 100ms of creation. In addition,
ChatLog#updateMessagehas moved into the render queue. (13067), (13257) - The
/ooccommand now displays the Author name instead of the name of the assigned character. (13109) - Chat message pop-outs now have their titles suppressed if the content was not otherwise visible. (13155)
- Prosemirror HTML now checks for the presence of
this.#contentbefore attempting to add values to itsinnerHTML. (13256) - Deletion of a parent document now closes any open Sheets for embedded documents of that parent. (11934)
- Corrected an error that caused progress bar notifications to sometimes fail to render their background colors. (12558)
- Resolved issues with A/V chat integration. Rerendering of windows no longer causes visual artefacts to appear above the video stream and audio output now works as expected when video is disabled. (12879), (13245)
- To correct an issue with the drag measurement ruler flickering during token movement animations as each waypoint is reached, the ruler is now displayed while the movement is pending even if the animation has finished. (13071)
- The button for linking and unlinking combats to scenes has returned in a new form, as a context menu option. (13092)
- Form submission functions are now prevented when
TokenHUDinputs are focused to prevent unintentional changes. (13115) - Token ruler path segments with infinite cost are now visualized as unreachable. (13138)
- Door animations set to
ascendnow animate their change in alpha. (13157) - Progress notifications no longer close when the
permanentoption is set even in cases where the progress is set to 100%. (13179) - The file input field is now hidden when using the Folder Browser mode of
FilePicker. (13210) - Corrected an issue with anchor tags on the ActiveEffectConfig Changes tab which resulted in errors when trying to remove a change in cases where the config sheet may be locked. (13215)
- Importing a playlist from exported JSON now imports the sounds for that playlist as expected, even in cases where the sounds point to external links. (13216)
JournalSheetV2now uses a singleSearchFilterthat persists for the duration of aJournalEntrySheetinstance. (13221)- Corrected an issue that would cause Adventure Documents to fail during a rebuild if the Adventure contained documents that longer existed. (13228), (13277)
- Setup screen tours, including the System Installation tour, now launch as expected. (13246)
FilePicker.implementationnow references FilePicker in its warning messages rather than incorrectly referencing TextEditor. (13111)- Corrected an issue which caused the Combat Tracker to lose scroll position when re-rendering. (13274)
- Changing elevation during a move action while in an active combat no longer displays "NaN" as its ruler label. (13279)
The Game Canvas
- Token ruler waypoint cost label for measurement of other users are now rendered correctly if the movement cost is infinite. (13107)
- In cases where the user has disconnected during a move, the Movement is now terminated rather than remaining in a pending state. (13168)
SquareGrid#getCircleno longer returns duplicate points. (13264)
Package Development
- Module Management now checks system module dependencies during module activation and deactivation to resolve issues which caused difficulties with recognition of dependencies for modules that declared the same dependencies as the system. (13197)
core.compendiumConfigurationnow uses DataField validation to prevent cases where a corrupt compendium configuration could prevent a world from loading. (13225)
Localization and Accessibility
Documentation Improvements
Documents and Data
- Optionally updating Ownership during a Show Players workflow now saves the change as expected. (13213)
Applications and User Interface
- API documentation for
getSceneControlButtonsnow includes documentation of all control properties and a few practical examples. (12903)
The Game Canvas
- The
instanceofcheck for thePrimaryGraphicsconstructor now updates correctly when swapping the parent class. (13170) - The
RenderFlagsconstructor now uses the correct type for priority. (13171)
Dice and Cards
- Updated the documentation for
Number#signedStringto make it more clear that its purpose is for text presentation rather than numerical comparison. (12766)