Register

Release 14.362

Version 14 Stable

May 20, 2026

Foundry Virtual Tabletop - Version 14 - Stable 4 Release Notes

Release Notes for Foundry Virtual Tabletop Version 14
Foundry Version 14 Stable 4 (14.362), as shown with the ruins of an Ember town that has become strangely overrun with mysterious and improbable vegetation...

Today brings the release of Foundry Virtual Tabletop Version 14 Stable 4 (14.362)! This is the third Stable update patch for Version 14 and it features a few tasty improvements to go along with the usual healthy helping of bugfixes:

  • A visual and functional pass over the Scene Navigation interface, including adding the ability to activate a specific level
  • Improvements to texture loading through native support for optimized graphics textures
  • More love for Foundry VTT's new and experimental integrated Particle Generator API

Because this is a relatively minor patch update, if you already installed Version 14 Stable 1 (14.359) or Stable 2 (14.360), you will not need to do a complete reinstallation.

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.

Known Issues

When using either the native Electron app or Chrome, certain distributions of Linux may encounter some graphical issues related to surface occlusion. If you suspect that you may be experiencing this, we recommend temporarily using an alternative browser like Firefox.

New Features

Architecture and Infrastructure

  • Removed the unused PlaceablesLayer.SORT_ORDER from the API. (14353)

Documents and Data

  • Improved the embeds for results of Rollable Table that contain Actors so that any available descriptive text is now also included. (14341)
  • Allowed Assistant GM users to control the "Automatic Token Rotation" and "Animate Roll Tables" without specifically needing the SETTINGS_MODIFY permission. (14391)

Applications and User Interface

  • Added a new option to preload Playlists and Scenes to the context menu of their sidebar tabs. (13010)
  • Added a warning message under the Token Image Path field to clearly indicate when it is overridden by a dynamic token ring's subject texture. (12666)
  • Improved the clarity and consistency of the Scene Navigation interface in several small ways, including changing the icons used for the viewed and active scenes. (13821)
  • Added a "Pull Everyone" option to the context menu of each individual Level in the Scene Navigation interface so you can now pull all users to that Scene and Level. (14235)
  • Added an "Edit" option to the context menus of all documents in the sidebar. (14405)

API Improvements

Documents and Data

  • Allowed Tile textures, Level background/foreground textures, and fog textures to use .ktx2 and .basis image files. (14390)

The Game Canvas

  • Improved KTX2 texture loading. Foundry now uses libktx, the official KTX library from the Khronos Group. This provides more reliable handling of complex KTX2 assets in modules and systems without requiring a new API. KTX2 assets can also include embedded mip levels, which Foundry will automatically use when present. (14343)
  • Expanded ParticleGenerator runtime controls while preserving legacy configs. (14393)
  • Added the Cull Tokens option to the Define Surface behavior to optionally allow surfaces to also block the visibility of tokens for GMs and Players who do not have controlled Token(s). Normally, surfaces only block visibility when viewing the canvas from the perspective of one or more controlled tokens.(14387)
  • Added support for polygon trees as ParticleGeneratorConfiguration#area. (14369)

Bug Fixes

Architecture and Infrastructure

  • Fixed a Linux-only issue where Light Animations and Weather Effects were sometimes not functional. (14219)
  • Fixed a bug where universal builds failed to open on older versions of macOS. (14296)

Documents and Data

  • Fixed a bug where TypedObjectField#_getField did not always return an element field when expected. (14300)
  • Prevented a warning that was thrown when marking a Combatant as defeated via the CombatTracker. (14364)
  • Fixed a bug where validateJoint saved data even if an exception was thrown. (14370)
  • Fixed a bug where adjusting time by sufficiently small increments (relative to overall duration) did not trigger Actor#onUpdateEffectDurations. (14365)
  • Fixed a bug where ActiveEffect.#castDelta called _replaceDataRefs on this rather than deferring to the implementation. (14354)
  • Fixed a bug where ActiveEffect#toCompendium was not clearing origin properly. (14371)
  • Fixed a bug where a nullable or non-required SchemaField-defined value could be updated to an invalid state. (14377)
  • Fixed a bug where ActiveEffect.fromStatusEffect was not called with options {parent: this} in Actor#toggleStatusEffect. (14378)
  • Fixed a bug where some calls to DataField#getInitialValue could pass undefined source arguments. (14388)
  • Fixed a bug where the ArrayFields of EmbeddedDataField could fail to correctly propagate _state.model. (14335)
  • Fixed a bug where deleting an effect did not remove it from the registry. (14366)
  • Resolved an issue where some core AppV2s still defined the submitOnClose option even though AppV2 does not support it. (14204)

Applications and User Interface

  • Fixed a (harmless) console error that often appeared when opening any Palette (el.parentElement is null, reading offsetWidth). (14317)
  • Fixed a bug where the Placeable palette was missing its Apply button after the locked state of a controlled item changed. (14330)
  • Fixed a bug where characters in the destination names of the Teleport Token confirmation dialog were accidentally escaped a second time. (14340)
  • Fixed a bug where non-GMs did not have access to the Region palette and instead saw the following error: You do not have sufficient permission to view the sheet for this Region. (14376)
  • Fixed a bug where the world settings that Assistant GMs can change without the SETTINGS_MODIFY permission were not rendered in the Settings Configuration unless they were also specifically assigned the SETTINGS_MODIFY permission. (14380)
  • Fixed a bug where filtering Ambient Lights by color failed. (14383)
  • Resolved an issue where the styling for Journal content lists was scoped too broadly. (14358)
  • Fixed a bug where the id of the Compendium ownership dialog lacked a discriminator. (13478)
  • Fixed a bug where setting the Application Color scheme to Light also incorrectly applied to the Status Effect HUD of Tokens. (14347)
  • Added scrolling to the Drawing Settings dialog. (13699)
  • Fixed a bug where bulk editing multiple different-colored Ambient Lights but leaving their colors unchanged caused all light sources to reset their color to "no color." (14382)
  • Fixed a bug where the "View Token Artwork" context menu option for unlinked tokens showed the Prototype artwork instead of the individual token's artwork. (13540)
  • Fixed a bug where detached windows were not inheriting their window title from the app title. (14374)

The Game Canvas

  • Fixed a bug where the canvas froze for an extended period of time when bulk (un)locking and (un)hiding many placeables. (14338)
  • Fixed a bug where the Teleport Token behavior did not change the view to the destination level for GMs due to an issue with Token#segmentizeRegionMovementPath. (14344)
  • Fixed a bug where changing the level of a number of tokens at once caused the destination level to be repetitively loaded for each individual token. (14345)
  • Fixed a bug where the Teleport Token/Change Level behavior did not change the view to the destination level if the player still owned other tokens in the origin level. (14346)
  • Implemented the pre-existing but previously unused ChatBubbles#bubbles property so that it is now a repository of active chat bubbles and the ids of their tokens. (13156)
  • Fixed a bug where PrimaryOccludableObject#isOccludable was incorrectly returning true when the occlusion modes of the object did not require PrimaryOccludableObject#occluded to be set. (14392)

Localization and Accessibility

  • Added missing localization for the "Author", "Authors", and "URL" fields in the Module Management dialogs. (14401)

Other Changes

  • Resolved an issue where the markup of minimized, detached windows was rendered as plaintext. (14352)
  • Fixed a bug where PDF-type journal pages were not rendered. (14361)
  • Fixed a bug where HandlebarsApplicationMixin did not restore the focus state after using a root partial. (13517)
  • Fixed a bug where foundry.documents.modifyBatch threw an undefined error message. (14356)