Register

Release 0.8.0

Version 8 Prototype

February 17, 2021

Foundry Virtual Tabletop - Version 0.8.0 Update Notes

Release Notes for the Foundry Virtual Tabletop 0.8.0 update version
Welcome to the Foundry Virtual Tabletop update notes for Release version 0.8.0.

Hello friends, I am both nervous and excited to introduce the very first alpha channel release of the new 0.8.x series of development for Foundry Virtual Tabletop. This update marks a major milestone for the software, an enormous amount of thoughtful work has gone into this update and I am very proud of it. I am confident that it establishes a high architectural standard of quality that will empower further developments to Foundry Virtual Tabletop - both by myself as well as by our fantastic developer community - for years to come. Before continuing, please take a moment to read this very important reminder.

WARNING: Updates on the alpha channel involve major new features which are likely to introduce unforeseen bugs, breakages to existing game systems or modules, or other problems which will be disruptive to the usage of the software. Do not install this update unless you are doing so for the specific purposes of testing. The purpose of Alpha channel builds are to allow new experimental features to be tested and to help developers to begin the process of updating packages which are impacted by these changes. If you chose to update to this version you expose yourself to serious risk of having a bad experience. Please take this warning to heart.

If you choose to install the Alpha 0.8.0 update, you must perform a fresh installation of the software. It is not possible (for reasons which will be explained later in these notes) to update from within the Foundry VTT interface to version 0.8.0. As always, before any significant update:

Be certain to carefully back up any critical user data before installing this update.

Those important disclaimers aside, I look forward to sharing the update notes with you for the incredible amount of work which has gone into this new version. Version 0.8.0 is one of the most significant updates to the software ever, both in terms of work involved (hundreds of hours of work have gone into it) as well as due to the significance of these changes in establishing paradigms that the software will rely upon for years to come.

Update Overview

The 0.8.x update sequence is focused on two primary user-facing features Audio System Improvements and Overhead Tiles. Before starting work on those two major features, the first update in the sequence, this one, focuses exclusively on major infrastructural investments which reinforce and empower the software architecture upon which further enhancements will be built. As such, this particular update is very infrastructure, API, and developer-focused. I assure you that the major improvements to audio systems and the addition of overhead tiles will be coming soon in updates 0.8.1 and 0.8.2 respectively.

The major infrastructure themes which are central to this update version are briefly summarized as follows:

  1. The terms of the End User License Agreement have been updated to improve the clarity of terminology used to explain licensing expectations. There are no major changes to the terms of the license, only wording changes to make the intention of the agreement more clear. See https://gitlab.com/foundrynet/foundryvtt/-/issues/4092 for a list and an exact diff of what changed. Upon installing 0.8.0 you will be prompted to re-sign the updated license agreement.
  2. Foundry Virtual Tabletop now requires Node.js 14. For those of you who use the regular application - you will need to install the application from scratch to get the underlying Node 14 support, you won't be able to update through the in-app updater this time. If you run a dedicated server, you'll need to confirm your environment is updated to use Node 14.
  3. Moving to Node 14 allows ESModules to be used server-side instead of CommonJS. This is the "missing link" which means that Foundry VTT can now run the exact same code on the server that it can run on the client without the need for any build or transpiling step required. Previously, the Foundry codebase was partitioned with related but independent client and server libraries. Now there is a third pillar, the common module, which is used by both the client and the server - allowing both components of the software architecture to share the exact same implementation for many key features.
  4. The most important component of this new shared module is the "Common Document Model" which provides a renovated set of abstractions for documents, data schema, database operations, and much more. This is a major step away from the legacy concepts of "Entities" and "Embedded Entities". A byproduct of the improved Document model is a significant improvement in the flexibility and reusability of the Document API - which is especially evident in areas like Compendium documents or un-linked Token Actors which were previously difficult to work with.
  5. As a consequence of the new standardized Document model, objects which are placed on the canvas (Tokens, Tiles, etc...) now have a separation between the classes which are responsible for how the object is rendered and the classes which define and manage their underlying data structure.
  6. The API Documentation has been comprehensively reviewed and re-designed to improve the coverage and accuracy of documented constructs. API Documentation for the alpha-channel 0.8.0 is available here: https://foundryvtt.com/api/alpha/

The above list is a poor attempt to summarize what is a very comprehensive update, so I encourage those of you who are developers to read the full update notes carefully. These design choices result in a number of breaking changes which are important to be aware of and will be addressed first in the notes. Please note that most of these "breaking" changes are not immediately breaking, but rather will display a deprecation warning while internally redirecting to a new approach. There are, however, several areas where immediately breaking changes were unavoidable. A goal for the subsequent update 0.8.1 will be to identify any unexpected breaking changes and resolve them in ways that will minimize the amount of immediate changes forced upon game systems and modules.

Breaking Changes

Document Changes

Canvas Changes

Application Changes

Other Breaking Changes

New Features

Architecture

Compendium Packs

Canvas, Lighting, Vision

UI and UX

Other Features

API Improvements

Documents

Compendiums and Folders

Other API changes

Localization Improvements

Bug Fixes

Document Fixes

Application Fixes

Canvas Fixes

Dice Fixes

Other Bug Fixes

Documentation Improvements