August 16, 2022
Foundry Virtual Tabletop - Version 10 Testing 4 Notes
WARNING: Be certain to carefully back up any critical user data before installing this update.
Now that the team is back at full capacity after GenCon, we have an exciting new release for Version 10! This Testing channel release focused on squashing bugs, improving the user experience, and enhancing the API based on feedback from the developer community.
Do you want to contribute feedback during the testing phase, but are nervous you might risk your weekly game in doing so? Our friends at Encounter Library have published a very helpful video that will guide you through the process of setting up a testing environment. For those wishing to just check if the systems and modules they use have been updated with V10 compatibility, we've published our usual package compatibility spreadsheet, and community developer Arcanist has published a new Module Compatibility Checker that will let you check compatibility from within any World.
WARNING: Releases on the Testing channel have the potential to introduce bugs that may be disruptive to play. These features are close to a stable release - but likely to still include some bugs and incompatibilities which may frustrate you. While these releases are intended for testing by the average user, we do not recommend you use them yet in your long running campaigns. We instead ask you try them out in a new World or one-shot with no modules.
Update Highlights
With V10's stable release approaching fast, this Testing release is focused on dealing with bugs and polishing up the user experience as much as possible so we can have a smooth launch. As a result, this release doesn't include a lot of flashy features but it does continue to sand off rough edges for developers while still providing some new quality of life features for everyone.
User Experience
This update includes a number of improvements to the user experience like making the Configure Settings UI match the design and functionality of the Package Management window with categories to the left and a filter at the top, ensuring that confirmation windows are always brought to the forefront, making the journal sidebar collapsible, more tooltips around the application, and adding support for a user list or user colored pips when collaboratively editing a Journal Entry Page.
Enhancements to the API
There have been a number of improvements to the API including adding the ability to clone any data model, exposing more ProseMirror functions to more easily manipulate editor state, build a data model from another data model, and the clean up of a lot of no longer needed code.
Bug Hunt
As per usual, the team has been hard at work tracking down bugs and taking care of 40 issues that have been raised by our community in this update alone.
New Features
Architecture and Infrastructure
- Updated a number of software dependencies including Electron which has been updated to version 20.0.2. (7816)
- The PIXI framework has been updated to version 6.5.1. (7746)
- Updated Font Awesome to 6.1.2. (7771)
Documents and Data
- Added the ability to toggle a secret block as revealed or hidden by its owner. (1645)
- The Jump to Pin functionality now also works for Journal Entry Pages. (7732)
- Card documents no longer receive a back image by default and the field is set to
undefined
instead. (7830)
Applications and User Interface
- The Configure Settings UI now matches the design and functionality of the Configure Keybindings and Package Management windows. (6353)
- Added a link to the Releases page on the update dialogue when updating the core software. (6473)
- The search filter in Sidebar Directory instances can now find folders in addition to documents. (7282)
- Document subtypes can now have their own content link icons via the
CONFIG
global and tooltips indicate what type of content a link points to. (7489) - Package updates should no longer suggest a user upgrade to a non-stable Version of Foundry (7583)
- ProseMirror can now display usernames or user color pips to denote who else is collaborating on an active editor instance. (7639)
ImagePopout
s can now include a caption which can be included via the API or forwarded on from theJournalEntryImageSheet
. (7640)- The journal entry sidebar can now be collapsed with minimal page buttons on the side for navigation. (7647)
- Updated
Dialog.confirm
to always bring the Dialog window to the forefront so it doesn't get lost behind open windows. (7681) - When pulling with a ping (Shift + long press), players will be automatically brought to the pinger's zoom level. (7763)
- Added a user permission for deleting tokens. (7765)
- Added tooltips to the Module Management window and Setup page to show the package's tags. (7774)
- Made the journal editor's edit button sticky so it can be accessed no matter the scroll depth. (7775)
- Journal Entry Pages can now be used as Scene Notes. (7790)
- The Combat Tracker now uses tooltips for its various control buttons. (7802)
- When launching a world that requires migration, the user is now required to accept it and begin the migration or cancel launching the world. (7803)
The Game Canvas
- Added support for depth mapping that allows light sources and vision sources to render according to their elevation. (7513)
- Token configuration now features a real-time preview, allowing you to see how changes to the token (including light and vision) will appear on the Scene. (7800)
Dice and Cards
- Deferred inline dice rolls can now have a title which is used instead of the formula. For example:
[[/r 3d8 # Some Flavor Text]]{Some Button Title}
. (7667)
Localization and Accessibility
API Improvements
Documents and Data
- Made more ProseMirror functions publicly accessible, which should empower module developers to more easily manipulate editor state. (7776)
- Added a v10 shim to
TokenData#vision
. (7784) - DataModels can now be constructed by providing a different DataModel as the initial source data. (7799)
- Moved the base functionality of
Document#clone
toDataModel#clone
so that all models may be cloned, not only documents. (7804)
Applications and User Interface
InteractionLayer#activate
now supports passing a specific Scene Controls tool name as part of the workflow to activate a specific tool in a different group. (7720)- Removed the explicit
block
display style assigned to window application content as part of theApplication#maximize
workflow (7821)
The Game Canvas
- Improved API extension consistency by adding a centralized
_getPolygon
and_getPolygonConfig
method forPointSource
and its subclasses. (7605)
Other Changes
- Improved the handling of checkboxes in
FormDataExtended
by allowing support for an explicit value assigned on the checkbox which is parsed as either that value or null depending on the checked state of the box. This applies to both single checkboxes as well as arrays of checkboxes in a radio input. (7819)
Bug Fixes
Architecture and Infrastructure
- The Core software update install process now halts if the initial download fails. (7748)
- The EULA page will once again appear correctly on a clean installation. (7770)
Documents and Data
- Fixed a bug where shutting down a world with a Journal Entry Page open would cause the
ProseMirrorAuthority
to throw an error. (7542) - Images should now be able to be properly aligned in the ProseMirror editor so that text will flow around them. (7718)
- Deletion keys are now applied to the data model created by the clone method, allowing the caller to delete certain attributes from the clone. (7798)
- Fixed an issue where including an incorrectly formatted content link could cause the Journal Entry Page to not render. (7810)
- When editing element attributes via the source HTML editor in ProseMirror, they will now be correctly saved. (7815)
- Creating a Page inside a Journal Entry in an unlocked compendium will no longer throw an error. (7823)
Applications and User Interface
- Fixed a bug where scaling of square tokens on hex grids was not consistent between orientations. (7477)
- The network connectivity test will now use a proxyport if one is configured. (7532)
- Scene Notes should now update properly when the parent Journal Entry is changed. (7574)
- Users now have the ability to add OS-provided fonts in the font configuration UI. (7610)
- Added a fallback preview icon for non-media files in the file picker. (7620)
- All select elements now inherit their font size. (7745)
- Fixed a reference to GitLab in the Support Details screen. (7749)
- Bulk playlist imports should work as expected again. (7756)
- Drag/dropping items to re-organize them on an actor no longer throws an error. (7758)
- Fixed an issue where a font-family was not applied to the given font in the ProseMirror menu drop-down. (7759)
- Clicking a page heading no longer re-renders the entire journal sheet in single-page mode. (7779)
- Improved sidebar scroll synchronisation with journal content view in multi-page mode with long table of contents entries. (7782)
- Preloading a
PlaylistSound
will no longer throw an error. (7786) - Improved the standardization of sidebar tab CSS classes and IDs to ensure that every sidebar tab has a different ID while popped out but a unifying class for styling both the primary tab and its popped out version. (7788)
- Disable an active tooltip element when activating a context menu to prevent situations where the tooltip interferes with the context menu behavior. (7811)
- Fixed a bug where minimising and maximising a Journal Entry Page editor would make the editor content disappear. (7824)
The Game Canvas
- Fixed a bug where light or vision would be occluded for tokens on a roof with a lower elevation. (7553)
- Fixed a bug where lights on a roof tile with an enabled occlusion mode would unocclude lights on the whole tile instead of just the occluded area. (7554)
- Fixed a bug where the global light source was recreated but never destroyed in
initializeLightSources
. (7684) - Relaxed the requirement that drawing polygon points must be integers in order to preserve detail when polygons are rescaled. (7704)
- Renamed
Actor#getTokenData
toTokenDocument#getTokenData
with a deprecation warning to reflect the fact that the method now returns aTokenDocument
rather than just data. (7766) - Fixed an issue where changing token dimensions and
texture.src
in a single update would throw an unhandled exception. (7769)
Package Development
- Improved performance in the Setup screen "Install Package" app by making fewer POST requests to
getPackages
. (7563) - Fixed an issue where installing a package that fails validation would get stuck at 100% progress. (7680)
- The Package Dependencies Auto Install button is now disabled when no dependencies can be automatically installed. (7710)
- Fixed an issue where referencing Foundry VTT bundled scripts from module manifests would fail. (7757)
- Removed the timeout applied to initial World setup to accommodate worlds which experience a lengthy migration process. (7795)
- World compendium packs no longer require the
system
field. (7829)
Dice and Cards
- Fixed a bug where changing a card's name would not persist its update to the database. (7822)
Other Changes
Documentation Improvements
The Game Canvas
- Removed the unused
drawSight
and_drawRenderTextureGraphics
methods. (7789)