Register

Release 14.364

Version 14 Stable

June 10, 2026

Foundry Virtual Tabletop - Version 14 - Stable 6 Release Notes

Release Notes for Foundry Virtual Tabletop Version 14
Foundry VTT Version 14, shown with the Crucible game system and a lightning bolt created by the experimental integrated particle generator API!

Today we are pleased to bring you Version 14 Stable 6 (14.364), our latest iterative patch for V14! As usual, this release brings a slew of bug fixes, some user interface embetterments, and some other goodies. For example, we've changed the Placeables tab so that by default you now only see what is included in the active level, which should help simplify things. Also, we've added preloading for individual levels and a few new helpful APIs.

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 Palette title now changes depending on whether a "Select" or "Draw" type tool is active to help indicate that the Palette functions differently when editing or creating placeables. (14385)
  • Hid the "Visible to some players" icon (eye) in the Placeables tab for players because it is not useful for them. (14461)
  • The Draw Text tool now correctly uses the Palette's stroke color, fill color, and fill alpha. (14465)
  • Clarified the text label of the "default movement action" for tokens by also including the default method. (13689)
  • Added a "Viewed Only" filter to the placeable tab (enabled by default). When active, this option filters out any entry in the tab that is not included in the currently viewed level. (14349)
  • Unified styling for string-tags and document-tag with the styling of other custom elements. (14508)

The Game Canvas

  • Based on user feedback, reverted a change made in V14 Stable 5 (14.363) that made hidden, locked Tiles invisible to the GM (14406). The original goal here was to provide a way to keep Tiles "out of the way" for GMs and especially content creators. This remains something that we want to accomplish, but existing content and workflows were negatively impacted in ways that we did not anticipate and we strive to avoid such disruptions in our minor Stable patches. We realize that this reversion itself is disruptive for folks who have already started making use of this new behavior and we apologize for any inconvenience, but we will revisit this topic in Version 15 when we will have the time and flexibility to arrive at a more nuanced solution.(14506)

API Improvements

Applications and User Interface

  • Added the option to preload a Level. (14419)

The Game Canvas

  • Factored out the colors used for token bars to allow systems to modify them without having to override Token#_drawBar. (13533)
  • Added CanvasDocument#locatedInLevel(level: string|Level): boolean as a new method to test "location" instead of "inclusion", which is particularly helpful when working with tokens. (14503)
  • Added PlaceableObject#isFilteredOut, which is true if the object is excluded by the current filter in the placeable tab. (14504)

Localization and Accessibility

  • Relabeled both "Exploration Image" in the Scene Config and "Unexplored Texture" in the Level Config to "Unexplored Image". Added a hint to "Unexplored Image" in the Scene Config. Removed the "Fog Exploration Texture Tint" from the Level Config. (14497)

Other Changes

  • Added forwarding for the ChatMessage#update notify to ui.chat.updateMessage to allow convenient notification for updated messages. (13720)
  • Added RegionAnimationState#testPoint(point: ElevatedPoint): boolean to provide a simple way to test whether a point is within a region's animated state. (14495)
  • Improved DocumentSheetV2#_processSubmitData so that it now returns an informative result that describes which document was {created, updated}, if any. (14502)

Bug Fixes

Documents and Data

  • Resolved an issue where game.combat returned null when the Combat Tracker was not rendered yet. (14470)
  • Resolved an issue where calling Folder#exportDialog while providing a pack did not initially load the folders of that pack into the dialog. (14280)
  • Resolved issues with updates to TypedObjectField with expandKeys: false by trusting client-side expansion without re-expanding server-side. (14367)

Applications and User Interface

  • Fixed a bug where document sheets showed the Configure Ownership option in the window controls for non-GM users. (14444)
  • Fixed a bug where an update to the Region configuration dialog could be silently lost when disabling a region's "is restricted" setting and adding multiple levels. (14360)
  • Fixed a bug where the region shape preview did not immediately update when the grid unit dimensions were changed. (14357)
  • Resolved an issue where ui.controls.render({ reset: true }) cleared the palette toggle visually but left the palette open. (13101)
  • Fixed a bug where a tracked resources was not displayed in the combat tracker at all if its value was 0. (14466)
  • Fixed some bugs where the Teleportation region behavior could incorrectly use the Scene's true name rather than the player-safe Scene navigation name. (14481)
  • Corrected the API documentation of the DialogV2.confirm's "no" button to button instead of submit. (14483)
  • Fixed a bug where the Latency / FPS text displayed in the Player List dialog did not line-break correctly. (13389)
  • Prevented an error that could occur in the Setup screen when right-clicking an entry in the modules list. (14321)
  • Improved and clarified getTemplate() error handling. (14453)
  • Fixed a bug where the header buttons were misaligned horizontally when an ApplicationV2 window was minimized. (13715)
  • Fixed a minor bug where the error page that displays when the server cannot be contacted lacked cursor styling. (13607)
  • Removed the "Palatino Linotype" font from the list of fallback options for --font-sans to prevent styling issues. (13040)
  • Resolved an issue where text selection had low contrast in the Science Fiction setup theme. (13392)
  • Fixed a bug where the "Next page" button was not disabled for Journal Entry pages in single-page view. (13398)
  • Resolved an issue where the text selection of roll contents was not disabled, which resulted in expanding collapsed rolls and selecting extra text in an undesirable way. (13713)
  • Improved the playlist volume control sliders by making their clickable area larger. (13604)
  • Fixed a bug where the document creation dialog windows were too short in Safari (Create Scene, Create Actor, etc.). (13786)
  • Fixed a bug in the Scene Configuration dialog where the Exploration Image input text for individual levels was not updated when the default level's exploration image was updated. (14493)
  • Fixed a bug where CombatantConfig had duplicate hidden and no defeated checkbox. (14552)

The Game Canvas

  • Prevented a canvas crash that could occur while pressing Ctrl+Z during the process of drawing a region shape. (14395)
  • Resolved and issue where all textures for Tokens and Tiles were always loaded, even if they were not included in the viewed level. Preloading the level of a scene now only preloads the level's background, foreground, and fog textures. (14397)
  • Improved the Drawing Palette user interface to only show the Smoothing Factor slider if the Freehand tool is active. The default Smoothing Factor value is now 1. (14305)
  • Fixed a bug where exploration fog could be improperly revealed when a player had vision for multiple tokens on different levels. Now, only the tokens on the currently viewed level are used to calculate vision. (14409)
  • Fixed a bug where an attached region was not always deleted when its token was deleted. (14459)
  • Fixed a bug with the VFX component timeline end duration that could result in visual effects not displaying properly. (14473)
  • Fixed a bug where positive priority light sources were rendered twice. (14484)
  • Fixed a bug where combatants of unlinked tokens could be initialized before the token's actor delta was materialized. (14467)
  • Fixed a bug where center placement did not place the spawned / teleported token in the center of the region. (14498)
  • Fixed a bug where tokens that were randomly spawned in a region were spawned too close to the walls at the border of the region even when there was enough space in the region to accommodate the token fully. (14488)

Package Development

  • Fixed a bug with the Install Package dialog where the Manifest URL input field was cleared when the packages finished loading. (14379)

Localization and Accessibility

  • Resolved an issue where double-localization caused an error to be logged if CONFIG.debug.i18n was enabled. (14445)
  • Removed unnecessary localization in CombatTracker#_prepareCombatContext for the unused COMBAT.Linked and COMBAT.Unlinked labels. (14456)
  • Fixed a bug where KeyboardManager.KEYCODE_DISPLAY_MAPPING did not support IntlBackslash and IntlRo. (14434)
  • Fixed a bug where several UI notification error messages lacked localization support. (13707)

Other Changes

  • When a token becomes contained by a region, its movement origin is now also contained within the region. This applies to tokens that came into the region by spawning, teleportation, or via the Change Level behavior. (14480)
  • Fixed a bug where FilterMenu.implementation incorrectly returned CONFIG.ux.ContextMenu. (13890)
  • Resolved an issue where creating a new module from within the Setup screen placed an unrecognized entry into the manifest ("action": "manageModule"). (14285)
  • Fixed a bug where Number#paddedString could fail to properly format negative numbers. (13592)
  • Fixed some issues with Chat Message update visibility. (14429)
  • Fixed a bug where the ProseMirror format button's label did not display "Heading" if editing a heading. (14173)
  • Fixed a bug where calling DocumentCollection.getSearchableFields with a type passed polluted their untyped cache. (13568)
  • Fixed the (deprecated) Region#testPoint so that it no longer always returns false. (14494)

Documentation Improvements

Documents and Data

  • Corrected the API documentation of CONFIG.Actor.trackableAttributes so that it now has the correct type. (14436)

Other Changes

  • Improved the documentation for DocumentSheetConfig.registerSheet Application|ApplicationV2 @param to match its current behavior. (13977)
  • Improved the API documentation for RectangleShapeData and other shape types to show that they inherit from BaseShapeData. (14443)
  • Fixed the API documentation for PackageCompatibilityBadge with the correct return values. (14469)
  • Added the missing typdef of pathType and its inherited properties to the API documentation for VFXSingleAttackData. (14468)
  • Updated the DB operation documentation for the noHook property to better match its behavior. (13519)
  • Improved the API documentation for renderChatMessageHTML by adding better documentation for the context parameter. (13701)