May 21, 2025
Foundry Virtual Tabletop - Version 13 - Stable 3 Release Notes
As our five year anniversary and celebration approaches, many exciting things are happening in Foundry-world including:
- Our traditional 20% off sale for Foundry VTT licenses
- Matching sales on many products in our official Marketplace
- Tomorrow's V14 Patreon poll to choose a V14 feature
Today's Version 13 Stable 3 release is a bit more practical but equally exciting! Our goal for this release was to include as many "low-hanging fruit" type bug fixes and improvements as possible, and the dev team delivered with a bushel of over 120 improvements.
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
Documents and Data
- Set the Description textbox on the Active Effect Sheet to a minimum height of 200px. (12429)
- Ensured that
_stats.exportSourceis always cleared when a Document is duplicated. (12817)
Applications and User Interface
- Upgraded FontAwesome to 6.7.2. (12632)
- Added the ability to disable the use of the
backdrop-filter: blurCSS property by selecting the Low performance mode or by updating the newexperimental.noBlurclient setting to `true`. (10400) - Added the ability for roll table embed enrichers to specify a custom table name to use in the header of the embedded HTML table. (12304)
- Gave new journal categories a name by default and improved the user experience when interacting with un-named journal categories. (12449)
- Provided a more vivid icon for invitation links using dark mode styling. (12544)
- Updated the Select Tokens and Measure Distance toolclips to include new ruler controls. (12674)
- Added additional labelling to the Token HUD to help clarify which movement method the token uses by default, for example
Default(Fly)orDefault(Walk). (12692) - Improved the user experience when attempting to use the
FilePickerto upload files into a protected directory. The Upload input now displays again, but it is disabled and has a tooltip which explains that creating a new top-level folder may be needed. (12715) - Adjusted the default folder color for light theme to improve visibility. (12729)
- Improved the placement of Distance Ruler waypoint labels so that they are not obscured by the cursor when zoomed out. (12861)
The Game Canvas
- Reverted back to vertically unbounded (elevation-less) vision, light, darkness, and sound sources. (12742)
Localization and Accessibility
API Improvements
Applications and User Interface
- Added the ability to undo recorded movement using
TokenDocument#revertRecordedMovement(movementId?: string): boolean. (12667) - Added
ControlsLayer#getCursorForUser. (12784) - Improved overall audio-playback reliability and capability by overhauling the
SoundandAudioTimeoutclasses to support event unscheduling. (12826) - Journal Entries now properly remember whether they are locked. (12841)
The Game Canvas
- Added the
"paste"token movement method to label movement that occurred viaCTRL+XandCTRL-V. (12806)
Other Changes
Bug Fixes
Documents and Data
- Hid the Duplicate context menu option for users who are not owners of that document. (12315)
- Prevented erroneous combat turn events from firing while changing initiatives. (12747)
- Prevented a case where the first update of a newly added
documentTableResulttype could fail to save all necessary data. (12754) - Fixed a styling issue where the "Show Players" checkboxes in Journal Entry Pages were not wrapping properly if the game had many players. (12794)
- Prevented unnecessarily reloading all opened documents in a compendium every time another document from the same (unlocked) parent compendium is updated. (12811)
Applications and User Interface
- To prevent cases where
PlaceableObject#_canDragLeftStartcould accidentally permit invalid drag operations, improved control over its notifications and moved checks for locked placeables into#_canDrag. (11158) - Fixed a styling issue where the focus outline around the first and last input in a sheet was clipped. (11739)
- Fixed a bug where rapid clicks on the hide/defeated/ping buttons on in the combat tracker also opened the combatant's actor's sheet. (12036)
- Resolved an issue where setting a minimum height in JournalSheetV2 styling prevented the usual smooth closing/minimizing/maximizing animations. (12316)
- Fixed a styling issue that occurred in the Setup screen at smaller display sizes where context menus were visually truncated and no indication was provided that vertical scrolling was possible. (12383)
- Created a new
ApplicationV2#_postRenderhook and changedChatLog#scrollBottomto use it to prevent cases whereChatLog#scrollBottomcould be called before therenderChatLoghook. (12420) - Fixed a bug where mousing over sidebar buttons could sometimes use the default cursor instead of the pointer cursor. (12454)
- Fixed a bug where clicking the sort button in a
DocumentDirectoryfor the first time did nothing. (12469) - Fixed a bug where attempting to scroll an app that was on top of another app incorrectly scrolled the wrong app if the app under the cursor had a non-opaque background. (12530)
- Fixed a bug where the preview for the Place Tile tool only displayed if you attempted to create the tiles starting from their top-left corners. (12561)
- Added better handling to prevent an error that occurred when attempting to edit a keybinding that had already been deleted. (12581)
- Improved readability for Support & Issues warnings when using the light theme. (12628)
- Restored the previous styling for
legend > buttonso that it no longer has increased height and width when theiconclass is assigned. (12655) - Fixed a bug where Audio Playlists that are set to play once were still looping. (12669)
- Resolved an issue where dropping a compendium pack onto another compendium pack in the
CompendiumDirectorydid not properly trigger a sort operation. (12670) - Removed an unnecessary blank choice from the Font Family field of the Drawing Config and Note Config dialogs. (12677)
- Adjusted the initial position of the Region Legend so that it no longer overlaps the Scene Navigation interface. (12679)
- Added the ability to scroll the Ownership configuration dialog. (12725)
- Added the ability to scroll to the Package Update Log. (12727)
- Fixed styling for expanded inline rolls inside chat messages so that their dice tooltips are visible again. (12728)
- Improved styling so that tables in chat messages no longer overflow. (12730)
- Added the ability to scroll the Markdown Journal Entry Page sheet and prevented its contents from potentially hiding the "Save Entry" button. (12731)
- Added light theme styling for
<code>elements. (12732) - Fixed Chat Log rendering with
/stream. (12736) - The Delete option is once again shown to non-GMs in sidebar directory context menus if they should have permission to delete the document. (12741)
- Restored the functionality of the "Load PDF" button in Journal Entry Pages. (12750)
- Fixed the dark theme styling for the Journal Entry edit button. (12753)
- Fixed styling for the ProseMirror's "Insert Image" dialog so that it no longer adds a border around the inner window or uses undefined
--color-form-labelfor its labels. (12755) - Suppressed the "Delete All" option for folders of compendiums. (12756)
- Prevented the resolution warning from incorrectly displaying in cases where operating system-level scaling and browser scaling balanced each other out and resulted in an acceptably sized viewport. (12757)
- Fixed a bug where the content links in roll tables were not always clickable in certain cases where the linked document was inside a compendium. (12762)
- Prevented a crash that occurred when providing any non-numeric value (such as
a) in the Token HUD elevation field. (12787) - Added the ability to scroll to the User configuration sheet. (12790)
- Fixed an issue in the Settings dialog where scrollbar positioning was not handled correctly when switching between core and system settings. (12795)
- Increased the resilience the Settings Config so that an invalid setting no longer causes the dialog to fail to render. (12799)
- Added some missing labels to the Card Config dialog. (12813)
- Prevented
Notifications#updatefrom failing due to being called before the notification was rendered. (12821) - Prevented a crash related to clicking away from the Elevation field in the Token HUD. (12823)
- Fixed an issue where toggling repeat while a track is playing muted it due to an un-cancelable scheduled timeout. (12827)
- Restored the ability to adjust a playlist's playback order by dragging and rearranging them inside the sidebar tab. (12830)
- Restored
FilePicker's ability to create new folders/directories while using it to select a folder rather than a file. (12848) - Prevented an error that was thrown when a
ContextMenuwas created without a selector. (12853) - Fixed a styling issue where button text colors were overwritten by the
.standard-form > .form-fieldsselector. (12865)
The Game Canvas
- Tokens can no longer slide along the boundary of a Region when exiting if a Region Behavior subscribes to one of (
TOKEN_MOVE_OUT/TOKEN_EXIT) and also toTOKEN_MOVE_WITHIN. (11868) - Fixed a bug where active effects that belong to an item were not being transferred to the parent actor if using
CONFIG.ActiveEffect.legacyTransferraland a synthetic actor. (12328) - Prevented a bug where light source priorities were not respected if a darkness source had "Constrained by Walls" unchecked. (12668)
BaseEffectSource#_initializeSoftEdgesis now called in_configureinstead of_initializeto ensure that it is called in cases where there aren't anydatachanges but the shape changes. (12681)- Token vision once again updates immediately after an ownership change. (12686)
- Fixed a bug where the turn marker was not immediately rendered when a token was added to an in-progress combat. (12708)
- Fixed a bug where deleting a token that was part of a combat could sometimes cause that combat to immediately advance to the next combatant's turn. (12709)
- Fixed a bug where the
OutlineOverlayFilterdisregarded the providedknockoutparameter and always showed outlines only. (12721) - Fixed the Dynamic Token Ring "Grid Fit" mode so that it correctly scales the subject texture with ring scale again. (12751)
- Fixed a bug where changing the
actorIdof a linked token cleared the base Actor's in-memory embedded collections. (12775) - Fixed a bug with tokens using dynamic rings and inferred subject textures where attempts to update their textures could sometimes fail and be reverted. (12777)
- Added support to
TokenDocument#_onRelatedUpdateso that it can receive arrays of updates. (12782) - Fixed deep freezing of
TokenDocument#movement. (12816) - Updating an open door no longer causes the door's texture to visually display as if it was closed. (12831)
- Prevented an unintended behavior where users could control and update a Token that was associated with a deleted Actor. Also restored the ability for players to control and update Tokens without a linked Actor. (12832)
- Fixed an issue where the combat turn marker was briefly rendered at an incorrect position at the start of a movement. (12835)
- Improved the maximum zoom level logic of the canvas so that users can always zoom out far enough to see the entire scene. (12836)
- Fixed a bug where Token Drag Vision could allow players to see behind walls even though they cannot move the token through them. (12845)
- Fixed a bug where tokens could sometimes walk through walls unhindered. (12850)
Package Development
- Rectified misalignment of icons and text in the "Result" column of the Package Update Log. (12546)
- Prevented errors that could occur when clicking the "Install Selected Dependencies Automatically" button repeatedly. (12678)
- Fixed a bug where taking a backup failed if the Setup screen's view mode was set to Details View. (12735)
- Improved zip extraction handling during the module installation process to prevent certain cases where an error was thrown and module installation appeared to fail even though it actually succeeded. (12749)
- Fixed a bug where attempting to uninstall an 'undefined' module or system resulted in the deletion of the package's entire parent folder and all other packages in it. This issue did not affect undefined Worlds. (12767)
- When checking for available updates in the Setup screen, the "Create a Snapshot" button no longer displays if the
--nobackupsflag is active. (12771) - Added various missing labels to the Module Config dialog. (12797)
- Fixed the "Manage Package" button in the Package Warnings window. (12800)
- Fixed and improved the display of Document subtype counts in the Module Management application. (12802)
- As an additional safeguard, ensured that a world always launches in safe configuration the first time that it launches using a new major generation of Foundry. (12820)
- Added the ability for
SetupPackagesto remember scroll position after a re-render. (12829) - Fixed an issue where the star icon of favorited Worlds, Systems, or Modules could disappear after they were updated. (12849)
Dice and Cards
- Resolved an issue where a dollar sign (
$) inside the data of a Roll caused a syntax error. (11440) - Improved the error message that is thrown when an unresolved Roll function is evaluated. (11482)
- Added
AppV2support forTextEditor#_onClickInlineRollroll data fetching. (12792) - Removed stray escape characters that were displaying in the Content links inside Card messages. (12866)
Localization and Accessibility
- Removed localization for the Font Family choices in the Drawing Config because these choices should not be localized. (12676)
- Fixed automatic localization of
EmbeddedDataFields in Document subtypes. (12722) - Localized the
Adventure#sortfield inAdventureExporter. (12748) - Fixed the localization paths for the
Card#typeproperty ofCardsConfigtemplates. (12780)
Other Changes
- Autocompletion is now disabled by default for
AppV2forms and can be controlled using the newautocompleteattribute. (12008) - Fixed a bug where
ChatMessage#exportremoved newline characters from the exported message content. (12480) - Prevented an issue where contents of an inactive ProseMirror editor could not be selected. (12505)
- Prevented an issue that caused the host address to be rewritten incorrectly when returning to Setup while a proxy server was in use. (12584)
- Eliminated a deprecation warning by updating
Document#getUserLevelso that it no longer uses the deprecatedDocument#compendiumgetter. (12693) - Restored the ability to update the software from the
UpdateNotesapplication (for minor updates that do not require a reinstallation). (12713) - Prevented an unhandled exception that was thrown if a string was passed to the
HTMLRangePickerElement#valuesetter. (12714) - Fixed a bug where chat messages could be timestamped incorrectly and appear in an incorrect order if a user's local system time was ahead of the correct time. (12718)
- When a non-GM attempts to import a document from JSON, the
ownershipof the target document and all embedded documents is now cleared so that the import can succeed. (12726) DependencyResolutionis now correctly exported as part offoundry.applications.settings. (12758)- Prevented
ApplicationV2from attempting to minimize if it is not rendered. (12770) - Added missing deprecation for
globalThis.DocumentOwnershipConfig. (12783) - Prevented an error that occurred when expanding a roll inside a chat message that is located in the popped-out Chat Log and the Chat Log sidebar tab itself is not active. (12796)
- Ensured that
foundry.utils.deepFreeze/deepSealalways freezes/seals elements inside arrays. (12818) - Added the ability for the Markdown editor to restore its previous scroll state. (12825)
- Fixed a styling issue where
Application#_prepareTabsdid not combine CSS classes if theApplicationTabconfig had one defined. (12828) - Prevented an issue where the
DocumentDirectorysearch failed to show all results in certain cases. (12839) - Restored the functionality of the reveal button of secret blocks in
AppV1versions of Journal Entry sheets, Roll Table sheets, the Chat Log, and popped out Chat Logs. (12859)
Documentation Improvements
Applications and User Interface
- Updated the Core Mouse Controls related to the ruler. (12788)
Other Changes
- Documented the query parameters for
CompendiumCollection#getDocuments. (10477)