Forge Server changelog archives

Hi all,

Due to a limit of 32000 characters per post in the forums, I have to split the summary of the server changelogs into a separate thread. I write one changelog per comment/reply to the original Server update changelog thread then keep them in reverse order as expandable lines in the top post for ease of access.

I’ve had to trim down that list, and I’ll be keeping the archives here of all changelogs as it grows over time.


Here are the changelogs for June-September 2020

September 28th 2020
  • Sort folders and files in assets library based on locale sort order rather than ASCII order
  • Add checks for stripe webhooks for the use case of deleted customer accounts
  • Add support for new FVTT <-> Forge VTT Service Provider API and configuration
September 26th 2020
  • Improve performance of the new assets library UI by lazy loading the sidebar content until the asset is clicked
  • Automatically stop playing a video/audio when dismissing the sidebar preview of an asset
  • Calculate taxes for Paypal users based on their IP location when billing address doesn’t match
  • Correctly mark accounts as unpaid when using paypal and a payment is declined
  • Fix another memory leak in the websocket proxy
September 21st 2020
  • Complete rewrite of the Assets Library browser :partying_face:
    • A new and dynamic UI that is faster to use and more convenient
    • Show image thumbnails within the browser itself and remove the hover
    • Add a sidepanel on file click with more options
    • Add multi file selection and deletion
    • Add file and folder move with drag&drop support
    • Optimize the display of files and folder by loading content as you scroll
    • Optimize the loading of images by only fetching the images as they are being displayed
  • Fix the import wizard not mapping files to their assets library url when the filename has a comma (,) in it.
  • Add link to the Forge subreddit in the social links in the page footer
  • Fix an issue with renaming of assets not updating the file correctly on the CDN
  • Fix an issue with the CDN not updating the thumbnail of an image after it gets updated.
  • Show a more meaningful error to the user when a rename fails
September 20th 2020
  • Add a latency test to the Assets Library servers from the Region change screen
  • Fix issue with the bazaar updater which caused newly created packages from not appearing in the list right away
  • Fix a possible issue where uploading a file would work but report that it failed
  • Fix the automatic redirection of data files to the assets library failing when the filename has a special character, like , for example.
  • Slightly decrease the amount of bandwidth used when browsing the assets library.
September 18th 2020
  • Add support for Ultrawide resolution for the main site, wasting less spaces on the sides
  • Fix issue with importing a compendium module which doesn’t include any assets (bug introduced in the update from September 17th)
  • Second attempt at mitigating issue of S3 storage provider which could report an asset file was uploaded correctly when it actually had failed to upload.
  • Removed obsolete code that handled the seamless transition from the old asset library design to the new design.
September 17th 2020 (Part 2)
  • Import wizard: Show current system/module/world being imported in the progress bar
  • Import wizard: Detect compendium-only modules and move their assets to the asset library, and migrate the module compendiums (allows it to use minimal Data storage space)
  • Import wizard: Fix issue where importing a single module or system zip file would cause it to install the zip itself even if the package is available in the Bazaar
  • Forge Module: return a status and message field in the FilePicker.upload API response
  • Shared Compendium: Add a Monsters and Monster Features compendium to the generated shared compendiums.
September 17th 2020
  • Update the Foundry logo used on the site
  • Optimize tokens in Bazaar modules that use wildcard tokens, in order to use the CDN network
  • Add a temporary workaround to the assets library proxy DNS issues that impacted users today at 1AM until the new DNS records are propagated for everyone.
September 14th 2020
  • Add link to the Foundry knowledge base to the Help menu
  • Bazaar: Fix the display of a package’s author when the manifest uses an authors field with an empty name alongside the author field (midi-qol for example)
  • Bazaar: Prioritize installing the latest version of a module as returned by their manifest, rather than based on version number. Fixes issue in the Bazaar with modules that use incorrect semantic versioning (version 0.9 being smaller than 0.10 for example)
  • Assets library: Add a workaround for a server provider bug which caused some asset files to be deleted when uploading multiple versions of the same file simultaneously.
September 9th 2020
  • Fix support for players accessing wildcard tokens from someone else’s assets library in a game
  • Add the filename to the assets rename dialog, and automatically select the filename without the extension.
September 8th 2020
  • Phase 3 of the new assets library revamp is now in place
  • Added multi-file upload support to the import wizard
  • Added support for renaming and moving files and folders in the assets library
  • Added support for deleting multiple files and folders through the API (no way to do it via the UI yet)
  • Fix a bug with single file uploads not returning the new file URL which affected Foundry module compatiblity (such as with VTTA-Tokenizer)
  • Display the upload and import errors in the console when errors occured in the import wizard.
  • Change the assets library manager so that clicking “open in new tab” on a folder or in the path header, will actually work
  • Fix issue where import errors were not correctly being showed in red in the progress bar during multi file uploads.
  • Fix an issue where it would say “Analyzing ZIP file” when a folder was actually selected
  • Fix issue with worlds in the Bazaar that could have a packs folder in the zip but no actual packs in the world.json, which could prevent the user from creating world compendiums.
  • data: URLs are not counted as “missing assets” anymore when importing a world
  • Fix a CORS related issue that could happen when using the API server in one region while having the user’s region set to a different one (such as after changing region but without reloading the page)
September 7th 2020
  • Phase 2 of the new assets library revamp is in place
    • Complete redesign of the assets library backend to allow new cool features (in future updates)
    • Optimized mass upload of files from the Assets Library page
    • Addition of Kubernetes backed upload and download micro-services for assets management
    • (About 51 commits (features and fixes) over 1 month of work that would be too long and confusing to list/explain)
September 1st 2020
  • Import Wizard: Show a more detailed error message when parsing an invalid module.json or system.json
  • Added an information banner on the Assets Library page about the upcoming UI revamp
  • Fix a typo about a payment being “perceived” when it should say “collected” (literal French translation does not work well in English)
  • Improve the error message shown when attempting to link a Patreon account which is already linked to another Forge account
  • Add a “Trial” indicator to the Checkout button when creating a new subscription to make it clearer to new users that the Trial is available.
  • Improve wording of the mandate text to authorize credit card charges
  • Add a new system to switch existing finalized invoices from charging a credit card (if it failed) to charging a Paypal account, and vice versa.
  • Automatically retry payment of the last failed invoice when the user updates their payment methods.
  • Prevent upgrades of a subscription plan while the last invoice is unpaid, which was allowing users to bypass the account lock for failed payments without paying the actual invoice.
  • Correctly compare floating point version numbers of Bazaar packages, instead of using semantic versioning comparisons (0.09 < 0.1, even if 9 > 1), which allows to return the correct latest version of some packages
August 30th 2020
  • Fix a configuration issue when the user sets a custom game url ending with a reserved slug (such as “forums”) redirecting to the subservice instead of the user’s game.
  • Make the info notice about Paypal authorization into an info banner (blue) instead of a warning (yellow)
  • Add ability to delete a game’s url in the “My Foundry” page to have a new url generated.
  • Automatically remove whitespace from the start and end of the API key to be more resilient to copy pastes
  • Sanitize package manifest data before storing it in the database to fix an issue with the bazaar updater being broken due to the use of reserved db keys in its manifest.
  • Add to the Bazaar API the systems and languages supported by a package
  • Add option to pretty up any API response
  • Misc server side improvements
August 23th 2020 (Part 2)
  • Add support for the new package API format used by Foundry 0.6.6 to display Bazaar packages
  • Add support for fetching the package tags from the official Foundry sources and map them to the Bazaar tagging system
  • Add support for switching return Bazaar API based on the running version of the Foundry server.
August 23th 2020
  • Change the game card layout on larger screens to be horizontal
  • Fix a small issue with handling some Stripe webhooks
  • Add package download statistics to the API Bazaar (not yet visible in any part of the site)
August 21th 2020
  • Finally destroyed the goblin that was slowly eating the server’s RAM since level 1 (Fixed a long standing node-related bug that was causing memory leaks and degraded performance)
  • Major optimization work on the server side to decrease RAM usage and answer requests faster
  • Use a new database collection to store available Foundry VTT versions and release channels, allowing for faster availability on the Forge when official FVTT versions are released
  • Big cleanup of unused server side dependencies, upgrade of some dependencies to fix potential vulnerabilities and improved the build process for each release
  • Small refactor of how Assets are stored in the database, in preparation for the assets library revamp
  • Fix assets deletion when attempting to delete directories with over 1000 files at once
  • Fix a race condition caused by improper order of operation during idling of servers which could cause a rogue Foundry server to remain running but untracked by the Forge.
  • Added a new public API for listing content from the Bazaar in preparation for the new Bazaar UI.
  • Fix the author field for some modules that used an array of strings to represent multiple authors.
  • Fix an issue with the bazaar where the latest recorded version may be incorrect if the manifest file contains a version number that differs from the version of the manifest within the downloaded zip file.
August 18th 2020
  • Fix a bug where asset files larger than 5MB were getting re-uploaded even if they hadn’t changed when using the import wizard on content that had already been imported before.
  • Add a notice about the Paypal authorization that occurs during trial for Paypal subscribers
  • Fix an error that may happen on one of the payment processor’s events when a subscription had just been downgraded
  • Slightly increase database performance when listing a user’s foundry game
  • Initial setup in preparation for the assets library optimization revamp
August 14th 2020
  • Fix issue that prevented the deletion of an orphaned module directory containing an invalid or corrupted module.json file
  • Allow the display of a user’s game on the front page even if their subscription ended (but they cannot launch it or configure it)
  • Fix an issue generating new game URLs for users that signed up using the Patreon login service and who did not have a username assigned to their account. The default URL it will generate will now be based on their patreon’s username.
August 11th 2020
  • Add support for Foundry VTT 0.7.1 (including first hotfix) in the Alpha channel
  • Add a “Return to Setup” button in the join page for the game owner
  • Sort player usage by time spent on a game in the game info hover list
  • The default game URL will now default to using your username instead of random dictionary words
  • Fix a bug when generating the random game url where the website would fail to load if it generates a url that is already in use by another user
  • Use smarter logic in the bazaar to allow updating a module by name even if the manifest url of the package is wrong.
  • Prevent a race condition where setting an admin key on Foundry while having the game in use could cause it to be restarted before the new admin key is set, which makes the Forge think an admin key is set while Foundry doesn’t know of the key.
  • Fix an issue where a client bug happens if FilePicker.browse returns a null response
  • Fix The Forge module to be compatible with the 0.7.1 release
  • Some misc server side improvements
August 7th 2020
  • Fix a race condition issue where logging in/logout may not appear to have worked until you refresh the page
August 6th 2020
  • Try a first pass at revamping the whole Game/Table concept and improve the descriptions and change the name of “My Table” to “My Foundry”, “Launch Game” into either “Launch Foundry” (for our own server) or “Access game” (for games we were invited to)
  • Add listing of players invited to a game as well as per-player usage statistics for that game
  • fix an import wizard crash during world migration if the world.json file is invalid
  • Fix an issue with updating internal subscription state for users after they downgrade their subscription
July 31st 2020
  • About a 100 different changes that are summarized with : Added Paypal support!
  • Revamped the Payment details screen to use a new reactive interface
  • Add direct access to the new payment details manager without going through the subscription manager
  • Add a warning to the subscription manager when email address is not verified so people don’t miss their invoices and receipts.
  • Fix subscription manager showing the wrong upload size limit for new subscriptions
  • Update Sales policy to include that users choosing Paypal will still be entitled to the free trial (it used to say, only for those choosing credit card payment)
  • Prevent use case where subscription was not created properly if a card payment is declined for a user who adds a new subscription after they had tried the service and cancelled, and after their trial period had ended.
  • Improve display name of existing user-attached credit cards (American Express instead of amex, and use capitalized word for Visa and Mastercard)
  • Remove some obsolete code and general code cleaning.
July 27th 2020
  • Add a “per file” suffix to the upload size limit quota on My account page to make it clearer what it’s about
  • Module: Fix an issue where the assets library wasn’t browsable within Foundry if a file contained a % character in its name
  • Module: Remove a console error that would happen when browsing the assets library using the Tiles browser dialog
  • Bazaar: Add ability to install a specific package version by adding ?version=x.y to the manifest url
  • Bazaar: Fix a bug where the latest version that gets installed was one that had its minimumCoreVersion requirement higher than the currently running Foundry version, rather than inferior to it.
July 25th 2020
  • Added a new Extra option for increasing the upload size per asset file
  • Added a dedicated button in My Account to update user’s Billing Information
  • Added a dedicated button in My Account to access the Stripe portal to change payment methods and see billing history/past invoices
  • Update system to synchronize subscription information with the payment processor to make sure expiration dates are accurate
  • Show a warning and error message to users who have past due invoices or unpaid subscription
  • Automatically lock/unlock accounts for unpaid subscriptions (used to be a draining manual process)
  • Added a grace period of 24 hours after a subscription ends before services stop.
  • When adding a new license, don’t reload the page after 5 seconds, instead prompt the user to reload.
  • Use the verify Foundry endpoint instead of the sign endpoint for monthly license validations
  • Add an automatic latest symlink in each Bazaar package (useful for a localization script by @lordzeel)
  • Simplified internal payment processing system and removed some obsolete code
  • Fixed small bug where the ‘preview changes’ in subscription manager didn’t become clickable immediately after entering the address line content
  • Fix an issue where updating billing information updated them on the customer but not on the attached payment method
  • Added the initial implementation for Paypal support (not finished)
  • Added basic framework for switching to a reactive UI
July 20th 2020
  • Fix a bug introduced in the July 18th update which caused the import wizard to import some assets, under specific conditions, under a Data/ directory instead of the root folder of the assets library
July 18th 2020
  • Fix an issue where a world (kobold cauldron) installed through the bazaar had its scene thumbnails folder write protected, preventing new scenes in the world from being created.
  • Add a check in the import wizard to remove the “FoundryVTT/Data/” directory prefix when importing the entire FoundryVTT folder instead of the Data folder, for asset uploads. (See here)
  • Add autocomplete indicators in the billing page to help browsers enter the correct information when autofilling fields.
  • Removed a dependency to lodash library in the import wizard.
July 15th 2020
  • Add support for 0.7.0 release on the alpha channel
  • Add automatic package cache purging for 0.7.0 on Bazaar installs
  • Automatically idle game when importing worlds and packages with the import wizard
  • Do not automatically dismiss the error message when failing to import a package, so it’s readable by the user
  • Add a note in the “delete files” tool about the server needing to be offline for world deletions to work
  • Add API to allow force the world to idle a game into
July 14th 2020
  • Fix an issue where the Bazaar installer would install an older version of a module until it was updated
  • Fix an issue with accessing the “My Table” page when a custom module is installed that doesn’t specify its authors
  • Fix the import wizard not converting random token avatars to use the assets library (See Fixing random token actors from a bad import)
July 6th & 8th 2020
  • Fix Bazaar issue with regards to systems or modules that may change their name (such as starfinder -> SFRPG)
  • Add Foundry VTT 0.6.5 to the stable release channel and update server with the updated 0.6.5 version
  • Add a link to the FAQ/Tutorial for more information on how to use the shared compendium feature.
July 5th 2020
  • Add Foundry 0.6.5 to the Alpha and Beta channels
  • Add display of maximum asset upload size to the My Account list of quotas
  • Add local Audio/Video relay servers for Europe and Asia regions
  • Enable DTLS encryption for A/V relay servers for increased security
  • Add a more secure time-based per-user authentication system for locking access to the Audio/Video relay servers
  • Minor miscellaneous infrastructure changes
July 1st 2020
  • Fix an issue when trying to check for updates on a custom installed package
  • Add better support for unexpected values in a module’s author field
  • Remove access to free subscription for Patreons as planned
  • Temporarily decrease German VAT rate from 19% to 16% according to the latest COVID-19 economic stimulus package.
June 29th 2020
  • Fix a bug which sometimes prevented the “Select Data Files to Delete” dialog from the Table page from opening
  • Remove the Table Tools dropdown button and make the table tools options appear as separate buttons
  • Change the start server/stop server buttons to green/red respectively
  • Add a brief explanation of what the Shared Compendiums are and how to use them.
June 25th 2020
  • Add support for the Bazaar
    • Intercept Package listing, installation, update check and uninstallation from Foundry and use the Bazaar content automatically
    • Automatically synchronize the Bazaar with the official Foundry package list
    • Optimize all Compendiums to use the Bazaar’s Assets Library
    • Optimize specific systems and modules to use the Bazaar’s Assets Library for loading the package’s scripts and styles
    • Add Bazaar page to the website with basic information about the feature, and as placeholder for the upcoming Bazaar browser.
    • Add API support for installing packages through the Bazaar via API
    • Add support for bypassing the bazaar with ?bazaar=disabled in the manifest URL, if the user wants it
  • Attempt Bazaar install of systems and modules in the Import Wizard based on package name and local version
  • Remove the separate “My Games” page and make it the main site page instead.
  • Delegate Foundry websocket proxying to a microservice to allow for website updates and maintenance without the 5 second interruption to ongoing games.
  • Prevent import of a world if a world with the same name already exists, to avoid accidental overwrites.
  • Add ability to export compendium modules
  • Automatically idle/reload Foundry if the FVTT Version, Game URL or Admin key is changed.
  • Add an API to start, stop and idle games
  • Fix shared compendium that Forge creates from not showing its compendiums in FVTT 0.6.4
  • Fix broken “Delete content” UI when a package has quotes in its description.
  • Fix invalid/corrupt modules from showing as empty line in the ‘Delete content’ dialog and show them in the orphans section instead
  • Correctly report the size of a user data directory when it’s a symbolic link, in the ‘Delete content’ dialog
June 23rd 2020
  • Added Foundry 0.6.4 support
  • Fix possible issue when doing multiple folder creates in the assets library concurrently
  • Update privacy policy to include information about Stripe payment processor
  • Add a button to reset the game invitation link
  • Fix text saying “Done” before importing a world instead of “Loading assets library… Done”
June 20th 2020
  • Fix a bug that was preventing some people from creating a new subscription after their trial period had ended
June 18th 2020
  • Add Foundry 0.6.3 beta release
  • Clarify plans text about the Game Master tier being able to create as many worlds as they want
  • Add server-side security with possible leak of environment variable across processes
  • Change the ‘Close without changes’ button on the last step of the subscription manager into “Close”
  • Remove obsolete code during world import which enabled “The Forge” module while it’s not necessary anymore
  • Disable direct uploads to the data directory by modules
  • Properly implement redirects from game across regions when re-sending POST data after a region change
  • Rename old/forgotten “Free Account” tier name into the “Player” tier name for the top page banner.
  • Correct information about Extra availability
  • Use ‘$’ sign as prefix instead of suffix in the Extra pricing of the plans page.
June 11th 2020
  • Fix The Forge module not showing Assets Library when browsing for files/directories from some other modules, such as VTTA-tokenizer or Playlist Importer
June 10th 2020
  • Prevent access to the Foundry /setup page by the non-owner user if no admin access key was set
  • Prevent access to the Forge API from within the Foundry instance without an API key set. This prevents malicious modules from accessing private information about the account owner.
  • Do better validations of XSRF tokens updates during API calls from the Forge module in Foundry.
  • Fix issue with accessing “My Table” page when a world exists with an invalid world.json content
  • Hide the “Change Extras” button in the subscription manager if there is no subscription but existing bonus free extras exist in the account (for patreon beta testers)
  • Better sanity checking on billing information
  • Change Subscription Manager UI to make it clear that closing the dialog without going to checkout will cancel all changes
  • Skip entering billing information in subscription manager if downgrading or cancelling a plan
  • Add a search box for more easily finding your country in the country selection list
  • Make the State/Province selection list look nicer
  • Fix an issue where the subscription end date was being miscalculated (still need to fix those accounts with a wrong value).
June 5th 2020
  • Show world, system and module sizes in the delete content dialog
  • Add Foundry VTT 0.6.2 update to the stable releases channel
  • Add ability to export worlds data even after a subscription has been cancelled
  • Added monthly revalidation of license keys in case a key has been leaked or refunded and revoked
  • Fix a bug when trying to add extras on a monthly subscription
  • Use the $ currency sign as a prefix instead of a suffix. Apparently it’s a prefix and it’s only used as a suffix in Quebec.
  • Remove Tax ID field in billing information and disable support for B2B purchases since apparently, EU VAT-MOSS requires B2C support only.
September 17th 2019 => June 1st 2020
  • 394 changes that I’ll spare you (and me) the details

Changelog archive for October and November 2020

November 30th 2020
  • Added support for the new amazing Explorer Mode for non Foundry license owners to try Foundry with a time limited temporary license.
  • Automatically idle games when installing modules from the Bazaar and warn the user about the need to restart a game if it’s in use and could not be idled automatically.
  • Fix a long standing and rare race condition that could happen when idling or stopping a Foundry instance at the same as the process is requested to start.
  • Remove mention in the “Add License” dialog of the story teller features as being not yet supported
  • Automatically enable the User Manager on worlds where non GM players have a name of “Player 1”, “Player 2”, etc…
  • Fix assets library search failing if the search term had an upper case character
  • Remove an unused API call during custom manifest install
  • Prevent auto idling of a game 30 seconds after it was last accessed to prevent a possible boot loop issue with websocket auto reconnections
  • Be more mindful of when to trigger an FVTT start procedure and automatically destroy the previous instance if it already exists. Should fix issues where Foundry locks up by restarting it automatically.
November 23rd 2020
  • Work around a Foundry bug with the CORS loading mechanism for invalid URLs that prevented scenes from loading
  • Fix the annoying 1 pixel shift of a Bazaar package’s description when hovering on the name/author line (Thanks @lordzeel and @akrigline)
  • Change the way a world/system package looks when hovered in the game creation dialog
  • When browsing the bazaar assets from within Foundry, redirect to the correct folder for premium content
  • Fix a race condition between the Forge API and the Foundry init hook when the User Manager is enabled which could cause an error to happen early when opening a game
  • Add server side protection to prevent adding an update to a Bazaar update if network issues prevent synchronization of data for the new package between all regions.
  • Remove the manifest and download urls from the module.json for Premium modules during package optimization.
  • Added baileywiki’s Premium maps to the Bazaar for baileywiki’s Patreon supporters.
November 22nd 2020 (Part 2)
  • Fix issue where games with the user manager disabled can get their Foundry user roles set to None, preventing access to their world.
  • Remove the muted class on the user manager text in the configure players side panel, making it visible for those with the Darkly theme.
November 22nd 2020
  • Default the Foundry file browser to the Assets Library folder
  • Add a [Bazaar] pseudo folder in My Assets Library to browse the assets of your installed packages and get the CDN-backed URL for the modules and their content.
  • Fixes an issue with the new Bazaar optimization update which broke the CSS files of recently updates modules
  • Add a protection against an external library related bug which seems to happen once in a blue moon but can cause games to become inaccessible until manual intervention.
  • World and Module Exports will now download directly without opening a new window temporarily
  • Improve the layout of the “create game” section in the game manager tab when no games exist
  • Fix the font used in the “Social Links” in the page footer and hide the bullet points
  • Fix an issue with exposing the manifest for premium content through the Bazaar API
  • Add a new query parameter for the Bazaar API to return the package information and manifest in a single query
  • Fix issue with the “last updated” field for all the Bazaar packages being updated every day by mistake
  • Add the ability to return the full description of a package in preparation for an upcoming Bazaar UI update
  • Fix bug where uninstalled modules through the Bazaar UI was not updating the internal state of which modules are installed and which aren’t
  • Updated the contest info banner as the contest is about to end :scream:
November 20th 2020 (part 3)
  • Busy day for someone theoretically on vacation! Still doing the Bazaar migration, Probably a couple more hours before it’s done and the updater is re-enabled.
  • Change the default Display Name of a newly created account to match the chosen username instead of the user’s name.
  • Fix the “Create Game” button in the game manager tab when no games exist, which was disabled
  • Fix the package list within Foundry’s setup page bypassing the Bazaar and returning the list from Foundry itself
  • Add a “Launch My Foundry” button at the top of the game configuration page to match the layout when the game manager is enabled
  • Automatically enable the user manager for new games being created, which have a single user, and auto assign the game owner to that user (such as when creating a game from the Bazaar).
  • When using the User Manager, if a player has no display name, default to using their role’s name instead of displaying “null” as the player name.
  • When installing a new game from the bazaar with the game manager enabled, display the newly created game rather than the disable non-game-manager server if it had been last idle into a game with the same world name.
November 20th 2020 (part 2)
  • Automatically create a user’s game after they subscribe, without them needing to go to the “My Foundry” page first
  • Fix a bug creating a new blank game by pressing the Enter key
  • Automatically install the game’s system if installed, when installing a world from the Bazaar
  • Fix possibly returning the wrong game data when creating a new game via the API
  • Fix a bug in the Bazaar deduplication algorithm
November 20th 2020
  • Optimize the optimizer! New package releases will be optimized for use in the Bazaar faster and become available to install more quickly.
  • Migrate links to core foundry icons used by modules’ and systems’ compendium packs, into using the CDN as well.
  • Automatically convert base64 encoded scene thumbnail images (and other entities) in compendiums of Bazaar packages to files that are uploaded to the CDN, further reducing the compendium file’s size and optimizing access to the thumbnails as well.
  • Add file deduplication support for Bazaar packages, reducing storage size needed by 4x and improving performance with kernel-side caching of similar files across different package versions.
  • Add support for securing Forge Premium content from predictable URL patterns
  • Add support for a separate assets path for Premium Bazaar packages and its media files for public display
  • Add support for automatically redirecting missing Data files to Bazaar content if a package has assets that aren’t included in its module folder
  • Add backend support for browsing the assets of a Bazaar module/system via the FilePicker API
  • Fix issue of file browser showing a non existing folder when browsing with an asset that comes from a different user’s library
  • Improve support for browsing a folder in the Foundry File Picker without requiring a trailing /
  • Correctly return files in the file browser that match the extensions list requested by Foundry
  • Add protection against using the File browser API with wildcard support for discovering Premium Bazaar content
  • Stop reuse an existing running game for installing protected content from the Bazaar when the Game Manager is enabled, in preparation for a 0.7.8 API change.
November 16th 2020
  • Fix non responding page or error when trying to join or leave a game from a different region than the user’s account setting
  • Fix issue clicking on a user’s role to change it which caused it to switch the view to a different game.
  • Revert an unintended change that introduced a server side memory leak in the proxy
November 14th 2020
  • User Manager: Added a system to map Forge players with Foundry users in order to retain a user’s settings and permissions
  • Fix a bug when turning the User Manager off prevented correctly reverting the users if the old user had a name matching a Forge player.
  • Fix an issue with the user manager where the temporary Player user that is created, could become a GM if a new player is invited to the game at the same time
  • Fix a bug where users generated by the User Manager could have an invalid ID when a user is invited into an offline game
  • Fix a bug where the game owner loses the ability to change user’s names or roles if they demote themselves from the Gamemaster role.
  • Too many to list all the small changes and fixes to bugs discovered during the extensive testing while working on improving the user management issues discovered from yesterday’s release.
  • Fix issue installing a protected package from its manifest URL via the bazaar interface
  • Fix issue tracking user activity for GMs that created their games during the early days of The Forge
November 13th 2020
  • And yet another big feature gets added : The User Manager!
    • Automatically creates users in Foundry to match the invited users in a game
    • Auto login users when opening the game
    • Automatically add and remove players when a user is invited or leaves/is kicked from a game
    • Automatically update a player’s name and role when they get modified in The Forge
    • Add the ability for GMs to join the game as another player
    • Hide the old existing world users from the players list automatically and restore them when the user manager is disabled
  • Make the User Manager feature option available on managed games
  • Allow the ‘reset all access keys’ to function even when the server is already running by leveraging the User Management architecture
  • Make sure that a game always has at least one GM
  • Redirect /players endpoint to the Forge’s players configuration interface
  • Fix signing into The Forge redirecting back to API URLs when visiting the Bazaar before signing in
  • Hide the “Return to Setup” button instead of removing it in case a module expects that button to exist in the DOM (Combat Utility Belt for example)
  • Replace The Forge module’s ASCII Art welcome banner with the image logo
  • Fix module installing not appearing in Foundry’s setup page when an admin access key is set
  • Fix a bug where deleting a large game in the game manager would delete it but not refresh the view to remove it from the list
  • Fix inconsistent dialog title for the export world/export compendium table tools
  • Fix issue that prevented installing protected content via their manifest URL
  • Fix the ‘patreon link’ in My Account page being empty for some users, by falling back on displaying the user’s profile page URL if they have no Patreon username set.
  • Display all currently entitled tiers for Patreon pledges if a user is entitled to more than one tier from the same creator
  • Hide the “Show pledges” button if user has not pledged to any Patreon creator
  • Discover a Patreon’s creator tiers and consider a creator as pledging to all of their own tiers (To allow Miska to install his own premium modules on The Forge)
  • Add the ability for the GM to edit the display name of the players
  • Add the ability to set roles for the players in a game
  • Add the ability for players to see the full player list and change their own display name per game
  • Fix the “Logout” and “Return to setup” buttons from the Escape menu in Foundry to match the changes to the settings sidebar
  • Add the “install modules and systems” button in the table tools to redirect to the Bazaar
  • Add display of a player’s role in the card popover
  • Make the Bazaar’s “Update all” feature work for both systems and modules at the same time and show icons next to each item to differentiate them
  • Fix bug where the “Update all” info banner wasn’t visible when a single package was available for update
  • Fix visual bug in the “Update all” where some lines were not visible due to the scrollbar not going all the way to the bottom
  • Fix the player’s list being unreadable in dark themes
  • Do not consider a custom install of a protected module as always needing an update
  • Verify quota limits before installing packages to avoid going over the limit
November 10th 2020 (part 3)
  • Added the ability to select multiple assets in the Assets Library at the same time by holding Shift and selecting two assets, which will select anything in between the two
November 10th 2020 (part 2)
  • Fix issue when creating a new game with the Game Manager that caused scene thumbnails to fail being generated
  • Fix a security concern with the “export world” option that could export the wrong directory (post-mortem: was never attempted by anyone)
  • Change the “Purchase” button for Patreon-related premium content into a “Unlock” button instead. Added tooltip with instructions on how to unlock the patreon content
November 10th 2020
  • Fix the display of the wrong estimate for the maximum upload limit for Story Teller in the subscription manager (thanks Oshy)
  • Update the plans page to mark the Game Manager as an available feature
  • Improve some wording in the plans and Game Manager pages
  • Make a bazaar package with no footer (system selection for new game) appear shorter to compensate
  • Sanitize a package’s description before displaying it in the Bazaar
  • Fix installing a package dependency if only the package name is specified
  • Change the way a package’s cover appears in the Bazaar so it takes the full space reserved for it
  • If a package is installed in the wrong directory somehow and is therefore invalid, consider it as an orphan file.
November 9th 2020
  • One more gigantic update (74 commits!). The Game Manager is now done and available to all Story Teller tiers and higher! phew!!!
    • You can now enable the Game Manager to have each of your worlds made available into their own Forge Game with its own unique URL, players and configurations.
    • If you have more than one license to your account, you should be able to open multiple games simultaneously
    • The Foundry setup page is now made obsolete and is inaccessible
    • A game’s title and description will automatically sync with the world and the descriptions will be sanitized and converted from/to html<->markdown as necessary
    • Hides the “Return to setup” buttons from within Foundry’s interface
    • Adds a new + button for creating new worlds when the game manager is enabled, with a system selection screen tied with the Bazaar
    • Ability to set a default Foundry version and override it per game (use with caution)
    • Adds the ability to disable all modules in a game
    • Adds the ability to reset all user access keys in a game
  • Game Configuration page now shows the last accessed world of a foundry server, or the linked world for a game when game manager is enabled
  • Bazaar: Add the ability to install from a manifest URL directly
  • Add support for displaying and installing protected packages (Cubicle7 officially licensed content) as well as returning the list of owned content to Foundry
  • Add support for also installing the protected packages from the Bazaar interface directly by launching a Foundry instance in setup mode for the sole purpose of validating and installing the bought content
  • Added a display of the user’s Patreon pledges from the My Account page
  • Added a first iteration of support for premium Forge packages in the Bazaar, tied to specific creator Patreon and pledges, and integrate it with the Foundry premium package system
  • Added Miska’s Maps as the first Patreon-linked Premium package
  • Allow the Import Wizard to split off assets from a module even if it’s not a compendium-only module
  • Add option to the Import Wizard to disable the use of the bazaar when importing a single system or module, without requiring the user to customize the version number
  • Added tooltips to the setup tools buttons
  • Added a button in the setup tools to redirect to the bazaar for install new systems and modules
  • Automatically install a system from the Bazaar if selected during new game creation if the system was not already installed
  • Change the text fade mask method on a Bazaar package description so it doesn’t affect the text’s foreground color
  • Load more packages at once when scrolling in the Bazaar (30 at a time instead of 10 at a time)
  • Add support for automatic install of dependency modules when installing a package from the Bazaar
  • Fix an issue in the Bazaar where it would show all updates as having had errors if we do a mass update of systems before doing it for modules without reloading the page
  • Bazaar: support the new url field for Manifest+ media as we transition out of using link
  • Fix an issue with the worlds and modules not being visible in the export and clone dialogs if a world had its description set to null instead of empty string
  • Fix improbable issue where if multiple Foundry versions are tagged as ‘stable’ in the database and the currently selected version for a game is invalid, then the Forge should auto select the latest version between those marked as stable
  • Remove the large header of the Bazaar page so it requires less unnecessary scrolling and added help icons instead
  • Added access to the Bazaar for non logged in users and display it in the navigation bar
  • Bazaar API: changed the update field into updates, and added a created field to return the creation time of a package
  • Updated the Community Wiki link to point to the new Wiki
November 1st 2020
  • Another huge update, this time bringing you the new Bazaar’s User Interface with tons of quality of life features.
    • Too many features to list all of the changes, but you can view all available packages on the Bazaar and search for them by name, description, author, system compatibility, language, category, you can search for multiple terms in a ‘Match all’ or ‘Match any’.
    • Supports The League’s Manifest+ specification for displaying package cover images
    • Sort packages by Most Popular, Latest releases or Alphabetically
    • Allow installation of worlds into custom paths
    • A mass updater tool allows to visualize available updates and execute them all sequentially
  • Add support for coreVersion query parameter to the Bazaar API to limit results for compatibility with a specific version
  • Add backend support for installing packages from manifest or ZIP url.
  • Fix game description editor toolbar to look better on dark themes
October 31st 2020
  • Happy Halloween!!! :scream:
  • Switch email service to AWS SES which seems to have better reliability for users from the Yahoo domain
  • Rename the “Delete all” button of the assets library when assets are selected into “Delete” to avoid possible confusion
  • Improve the visual of the games list loading its dependency libraries before displaying the games when a user is on a slow connection
  • Fix issue with some modules on the CDN when using a relative esmodule import from one module to another
  • Update the dynamic dependency loading definitions to match the recently released Dlopen module by The Forge
  • Fix import of modules from the import wizard which stopped installing from the Bazaar in a recent update
  • Hide overflowing text when world description is large in the popover tooltip of a package list (clone world for example)
October 28th 2020
  • Prevent installation of piracy enabling content which was causing too many issues to Forge users
  • Fix issue that prevented overwriting an existing world during import
  • Lower padding around the site to give more space to the actual site content
  • Make the ‘save changes’ attention seeking animation in the game configuration page faster
  • Added some groundwork changes for the upcoming game management features
  • Update to the Bazaar API in preparation for the upcoming Bazaar UI interface
  • Improve Bazaar database model by adding indexes to relevant fields
October 26th 2020
  • Prompt user for confirmation to overwrite an existing world in the Import Wizard instead of throwing an error and having the user manually delete it first and rerun the importer.
  • Add a button for quickly accessing a game in the url entry from the “My Foundry” game configuration form.
  • Show a readable/understandable error when trying to launch a world when Data quota has been exceeded
  • Fixed everyone’s nextSession fields in world.json to prevent crash due to a 0.7.5 bug
  • Fix account quota calculations for users who had both free bonuses from the Forge beta phase and who bought extras
  • Add support for loading the greensock library dependency from modules in the Bazaar’s CDN
  • Fix issue accessing core files when using relative esmodule imports from a module on the Bazaar’s CDN
  • Fix bug making it impossible to access the “My Foundry” page if a custom module is imported which had an invalid authors field
  • Show a red error message instead of yellow warning message when a user’s subscription is past due and payment failed
October 20th 2020
  • Hide players list from a game’s page to non invited players (for public games)
  • Do not show the option to set a game as favorite from the game page to non invited players (for public games)
  • Fix issue with “Return to Setup” that stopped working after yesterday’s update
  • Show a vertical game card layout when having 3 or more games in the dashboard
  • Automatically reset invitation link to a game after kicking a player
  • Add a button for players to leave a game voluntarily
October 19th 2020
  • Major update to the user interface for both the main dashboard page as well as the “My Foundry” page. With a total of 44 commits, many of them massive, the best way to see what changed is to give the new UI a try and see it for yourself.
  • Add the ability to set games as favorites, so they appear at the top of your dashboard, regardless of their last access date.
  • Add the ability to clone an existing world with a new tool button in the My Foundry page
  • Add a new UI to configure/list the players who were invited to your game, see the non-cropped list with their avatar and game time
  • Add the ability to kick a player from a game they were invited to.
  • Move the games list page, game card, game setup page, game configuration form, delete content dialogs, and create shared compendiums, to using Vue.js for a more reactive UI.
    • Game List: Allow setting/unsetting a game as favorite and dynamically shuffle the dashboard based on new sorting algorithm
    • Delete content dialog: Disable the delete button until the correct confirmation code is entered
    • Delete content dialog: Crop long game/system/module descriptions so the hover popover doesn’t fill the entire screen
    • Create shared compendium: Warn and prevent creating a compendium if one with the same name already exists, to prevent overwriting it
    • Create shared compendium: Disable submit button until a valid name has been entered
    • Game Card: Correctly line up the status indicator icon for a game with the text surrounding it
    • Game Setup: Remove the vertical game card preview from the game setup page and move the table tool buttons to the top of the page as a horizontal toolbar
    • Game Setup: Remove the dropdown button for exporting worlds/modules and create modal dialogs for a less crowded selection of the worlds/modules.
    • Game Setup: You can now start/stop a server and see the change immediately without reloading the page
    • Game Setup: Use a tabbed view of games and add placeholder toggle for the game management features
    • Game Configuration: Show which fields were modified, add a button to reset changes, add a save settings button which uses the new API to do the changes without reloading the page
  • Add a one second delay after Foundry reports being usable to work around a bug in 0.7.x which causes it to ignore the first requests it receives right after startup
  • When accessing the forums link from the navigation bar, auto login users instead of requiring the one additional step of clicking ‘login’ within the forums page
  • Fix issue where a user could log into the forums, logout of the forge but remain logged in the forums.
  • Fix issue where a forum account was automatically being created if a user changes their profile information, without ever having logged into the forums first.
  • Added new API endpoints for querying and configuring games
  • Fix broken tooltip on the game status indicator
  • Fix game stop API not returning the operation status in the response
  • Fix the “New Folder” button in the Assets Library not working anymore after being opened once and dismissed
  • Add a third system to check against potential double payments when using PayPal due to possible simultaneous Stripe webhooks by limiting the number of invoices getting paid by the same user to one per minute
October 12th 2020
  • Added Facebook link to social links section in page footer
  • Fix user’s email address removing subaddresses when sanitizing the input
  • Hide overflowing description from a game card and add horizontal scrollbars automatically when necessary
  • Add support for “Blocked” package updates in the Bazaar in preparation for Foundry 0.7.4 release
October 8th 2020 (Part 2)
  • Fix “Access Game” redirecting to wrong URL in the new updated UI from this morning’s update
  • Reduce Ireland’s tax rate from 23% to 21% due to COVID relief
  • Show the most accurate tax rate in a subscription’s preview when billing country doesn’t match IP country and doesn’t match credit card bank country (when payment method is already set)
  • Update user’s geo location for tax purposes when billing address changes
  • Include the taxes in the Paypal authorization when creating/upgrading a subscription to prevent voiding it once the invoice is finalized
  • Settle a Paypal authorization charge instead of voiding it if the final amount turned out to be smaller than the authorized amount.
October 8th 2020
  • Recreate the game card and game setup UI using the Vue.js framework for a more reactive UI
  • Added a new set of APIs for accessing information about the user’s game information
  • Limit the player’s usage to 10 users in the popover on a game for a better UX for large campaigns
  • Add a markdown rich editor with preview for the game description setup
  • Improve visually the dropdown selectors for public/private and FVTT version in the setup page
  • Sanitize html in a game description to prevent malicious from doing remote code injection attacks
  • Third attempt at fixing the http-proxy memory leak with websockets
  • Added service announcement notification about the Forge Contest
October 4th 2020
  • Add link and mention to the LFG category to player’s dashboard when they have not been invited to any game
  • Update the Terms of Service to prohibit the use of tools to prevent server idling and disallow account sharing
  • Use an alternative method of detecting when the Foundry instance has become ready to accept new connection, possibly improving the reliability of launching games.
October 3rd 2020
  • Implement a fix to the CORS bug in Foundry 0.6.6 via the Forge module
  • Disable Foundry’s auto-retry of missing assets from the assets library with a CORS workaround, to improve load times when files are missing (unnecessary with Forge assets)
  • Add user ID to profile API to be OAuth conformant
  • Add the ability to list and delete Foundry’s log files from the setup page
October 2nd 2020
  • Added Miska’s Maps Premium battlemaps to the Bazaar (only available to those with access to the files from his Patreon)
  • Automatically detect relative imports from one module to another package to allow them to function with the CDN transparently
  • Add support for server side OAuth2 allowing other sites to authenticate or link with the user’s Forge account
  • Fix the “Deny” button on the Patreon Sign In page that didn’t return back to the site.
  • Improve API keys security by restricting the ability to generate new API Keys to the admin permission only
  • Improve the visual rendering of the error page when a user tries to access a private game while logged out or without being invited to it
  • Fix an issue where a failed paypal charge that was manually paid would not cancel automatic retries and may lock the account when it fails to pay again (due to a check against double payments)
  • Bazaar: Use a module or system’s minimumCoreVersion instead of the foundryvtt API response for determining the package’s compatibility with the user’s selected version
May 31st 2021
  • Fix issue preventing edits to a world from within Foundry 0.8.x when the game manager is enabled
  • Fix the comparison of some Bazaar package versions when non semantic version is used, so it respects floating point comparison and string comparison at the same time (1.09 < 1.1 < 1.9 < 1.10)
  • Update the front page video for Foundry to the latest celebration video : Foundry Virtual Tabletop - Anniversary Overview - YouTube
May 28th 2021
  • Fix Bazaar package version sorting when a version is mistakenly added prefixed with a v
  • Add support in the Bazaar Updater for fetching separate manifest URLs from the alpha and the stable channels for the packages that are releasing separate branches
  • Add support for returning the locked status of packages in the Bazaar API
  • Add new APIs to lock/unlock system and module packages
  • Fix issue with refreshing the package listing in the setup page when installing a bazaar package, when user is on 0.8.x
  • Fix visibility of some buttons in the profile page when using non default theme
  • Fix visibility of the “Game Manager” button for some themes
May 22nd 2021
  • Surprise anniversary announcement: Assets Quota increase for all tiers and the extra, so they’re all multiples of 5:
    • Game Master: 3GB → 5GB
    • Story Teller: 9GB → 10GB
    • World Builder: 18GB → 20GB
    • Extra: 3GB → 5GB
  • Update the zip dependency library to fix an issue which corrupted some zip exports of worlds or compendiums
  • Update the assets library server locations to state 54 locations instead of 49 in the change region dialog
May 19th 2021
  • Fix “Return to Setup” Forge implementation on Foundry 0.8.x
  • Fix package listing within Foundry’s setup page for Foundry 0.8.4
  • Add proper support for dynamic User Management for Foundry 0.8.x
  • Fix a bug where a license could be locked to a game that has already been deleted
May 12th 2021
  • Change the Foundry version channels to become opt-in for future updates with an update notification instead of auto-updating all games.
  • Fix bug when trying to install a world via manifest URL from the Bazaar
  • Updated the Bazaar Marketplace Agreement for creators
  • Added a warning when setting a custom version for a game when the Game Manager is enabled
  • Fix a bug getting the default Foundry version if user is on an invalid version
  • Fix a crash in the stripe webhook processing for deleted subscriptions when they had a planned downgrade
  • Bazaar creator’s dashboard: Improve the display of payouts to be less confusing
  • Bazaar creator’s dashboard: Add a step during publication to confirm Paypal destination for payouts
  • Bazaar creator’s dashboard: Add clarification around licensing information and provide an OGL sample journal entry
May 7th 2021
  • Fix forge-vtt Foundry module to contain all module metadata to prevent issues with modules that use that data
  • Add youtube link to the social links
  • Update copyright notice on the main page to refer to The Forge VTT Inc.
  • Ensure that adding a license will always succeed to write the license file, even if the user is out of quota
  • Fix Stripe webhook issue when updating a subscription that had a canceled scheduled downgrade
  • Remove obsolete code that handled fallbacks for the old license file naming schema
  • Fix issue with periodic license verifications when license files had no signatures
May 4th 2021
  • New public Forge VTT module release! This new release brings assets library synchronization capabilities to your local Foundry. Read more
  • Add language selection for games when the game manager is enabled
  • Fix a redirect issue when doing a refresh patreon pledges, which would redirect you to the last page you visited before logging into your Forge account
  • Fix issue which downgraded Bazaar creators accounts by mistake if they were on World builder and just received the creator role
  • Fix issue with the fake Forge module getting added to Foundry which could cause some incompatibility issues with other modules using its game.modules data.
  • Change the license files caching and switching algorithm to use filenames that do not contain the license key to avoid potential leaks of the license key in error messages and file listings.
April 30th 2021
  • Add a visual indicator to Bazaar packages that are on sale, showing a Sale ribbon and how much is off from the original price
  • Fix Bazaar search that broke for systems and worlds due to packages with undefined descriptions
  • Fix creator balance value being incorrect in some instances
April 24th 2021
  • Automatically mark a newly added marketplace item as a new release when it gets published, rather than rely on the moment the package was first configured
  • Fix a rare (possibly affects creators only) bug where the bazaar may fail to display some content
  • Improvement to the creator dashboard to prevent overly long scrolling of purchases listing
  • Fix a possible bug if a user is trying to manipulate their data (import a world) through the API on the wrong region
  • Add error message sanitization to avoid leaking a user’s license key in an error message
  • multiple back end changes to improve performance and infrastructure setup
April 8th 2021
  • Created a contact page with information about Discord and Email, instead of the previous redirect to a mailto link
April 6th 2021
  • Add info icons and links to the new “How to add/change/cancel a subscription” tutorial in the relevant areas of the site
  • Restore the support for showing exchange rates preview (which was removed on April 1st), by using an authenticated API
  • Allow creators to customize Bazaar package description which overrides the description on the foundry website
  • Improve the creator dashboard for dark themes
  • Better support for marketplace content that is also available as a foundry protected content
April 3rd 2021
  • Optimize the Assets Library client side rendering to make it process and display large numbers of folders much faster
  • Add recursive size calculation for folders in the Assets Library and display the size of each folder
  • Add a clickable link to view/open each package in the Bazaar’s “Update All” dialog.
  • Fix installation of marketplace content that was bought somewhere else for package that is bought on the Bazaar marketplace and available as a foundry protected package
April 1st 2021
  • Remove foreign currency exchange preview estimate in the checkout page as it caused issues with subscribing (due to the external service not working anymore)
March 28th 2021
  • Fix possible crash with unzipping packages when the zip file is corrupted or file cannot be written
  • Fix issue with sending out emails to users (welcome email, forgot password, etc…)
  • Add a system to prevent uploads to the assets library if the account is banned or user account is in maintenance mode
  • Prevent bazaar packages from changing their unique ID through an erroneous manifest update
  • Removing an obsolete “Coming Soon” tooltip on the Create Game button
March 19th 2021
  • Added a Features page
  • Additional improvement to the Bazaar Creator’s dashboard
March 13th 2021
  • Automatically install package dependencies when installing a world
  • Fix creator interface that stopped allowing submission of new packages
  • Fix CSV export of premium purchases for creators
March 12th 2021
  • Do not mistakenly mark a Bazaar package as having been updated when only its metadata was changed
  • Fix processing of manifest+ link field instead of url during the Bazaar optimization of premium packages
  • Allow installation of Pay-What-You-Want modules that have a minimum price of 0$ without requiring the module be ‘purchased’ first.
  • Sort user purchases by date for easier review
  • More improvements to the Bazaar Creator dashboard
    • Added ability to export all purchases and payouts as CSV
    • Added option to allow creators to generate virtual purchases of their packages that they can send as gifts
    • Ensure new submitted packages have a valid manifest link so processing happens more smoothly
    • Add an admin interface to get an overview of the creators and contents
  • Various behind the scene infrastructural changes
March 10th 2021
  • Change the “Login with patreon” button appear below the “Log in” button and include Patreon logo and brand colors
  • Show external links to a package’s authors from the Manifest+ authors fields (email, website, twitter, reddit, discord, patreon, ko-fi)
  • Fix typo in a Bazaar package’s uninstall button showing “Install”
  • Fix installing a package from manifest in the Bazaar when the package is a marketplace content that allows manifest installs.
March 6th 2021
  • Change the way The Forge uses the Foundry licenses in a multi-license environment to allow access to the installed Foundry protected premium content in every game
  • Fix the reset password link for users with an email address containing the + character
  • Add an alert for marketplace content that makes it clear whether or not the content is downloadable for non Forge subscribers or not.
  • Ensure that once a premium content was purchased from the marketplace, it is always available in the Bazaar to those who purchased it, even if the package is unpublished by the creator.
  • Another attempt to fix the rare unicorn bug which can cause games to be inaccessible. Hopefully it’s the right fix this time :crossed_fingers:
  • Various improvements to the marketplace creator dashboard
    • Show a more sensible error when trying to add a package that already exists
    • Allow creators to install their own content from the Bazaar to test it before publishing it
March 1st 2021
  • Fix package version overflowing in the bazaar when the version number is too long
  • Fix creating folders in the Assets Library within Foundry’s file browser
  • Update link to the marketplace from the user’s purchases listing when empty
  • Make all marketplace content downloadable by their creators
  • Revert Ireland’s VAT rate from its reduced 21% rate to 23%
  • Change download link for bazaar purchases to have a .zip extension since firefox ignores the filename returned in the response
  • Fix cover image for worlds in the Bazaar with the optimizer disabled.
  • Add a notice to the front page that a Foundry VTT license is required.
February 25th 2021
  • Display the Bazaar tab to the left of the Assets Library tab in Foundry’s file browser
  • Sort content in the marketplace automatically by most recently updated package when switching the view to the marketplace category
  • More miscellaneous improvements for the Bazaar creator’s dashboard
February 24th 2021
  • Fix issue with the import wizard skipping assets that were under the data folder
  • Separate browsing for files from the Bazaar into its own Tab within Foundry’s file browser
  • Add support for packages of type “assets” for releasing asset packs through the Bazaar marketplace
  • Misc changes relating to the creator’s dashboard
February 23rd 2021
  • Refresh the user’s entitlements in the Bazaar after making a purchase
  • Added a Marketplace and On Sale categories in the Bazaar
  • Added some polishing and finished the interface in the creator’s dashboard for Bazaar vendors
  • Fixed issue where it would try to use the Bazaar when installing a package that isn’t listed on the Bazaar but has been in the past.
  • Do not update the billing information if there were no changes to it
February 20th 2021
  • Fix an issue transferring user data from one region to another
  • Hide package icon from carousel if package has an icon
  • Added a creator’s dashboard for content creators to submit packages to the Bazaar
February 18th 2021
  • Huge update, with 72 total commits that finally brings a much anticipated feature to the Forge : The Bazaar marketplace is now open and ready to provide you with premium content sold directly by your favorite creators!
    • Add the ability to purchase modules and other packages directly from the Forge
    • Allow a package to have a “Pay what you want” or fixed pricing, along with or without a minimum price
    • Add the ability to gift a purchase with a custom message and claim it into another account
    • Add a new package type forge-gift-card for Gift Cards, so you can thank your GM for their hard work
    • Added a way to set roles for user accounts so selected users can have access to a creator dashboard to publish their content and view sales
    • Add a section in My Account page to see purchases and account balance
    • Download purchased content, reclaim your own gifts, buy content to give to someone, save cart for later, etc…
  • Add support in the Bazaar for having a package made available if the user supports more than a single Patreon creator (for partnerships where two creators offer the same module to their supporters)
  • Do not require people to login to see 404 error pages, and correct return the status code in the API endpoints in case of 404
  • Prevent scrolling back to the top of the page when closing a full page view of a bazaar module from the module’s section
  • Fix server side issue that was causing problems with the new 0.8.0 Foundry release.
  • Parallelize profile requests to speed up the payment manager dialog becoming ready to use
  • Do not show a black background behind screenshot/cover images of bazaar packages if the carousel has a single image in it.
  • Various miscellaneous backend fixes and improvements
February 10th 2021
  • Another Bazaar update, adding selectable packages with a full page view of each package
    • Adds support for displaying more detailed information about each package
    • Adds support for displaying the full package description and screenshots/videos
    • Provides more information for Premium and Patreon exclusive packages
    • Links to the package page on the newly launched Foundry Hub
  • Implement asset upload optimizations in the Forge module
  • Switch the md5 and jszip dependency libraries to using cdnjs hosted links
  • Open links in the game descriptions and bazaar package descriptions in a new window
  • Progressive migration to the Kubernetes infrastructure
February 8th 2021
  • Fix issue where the explorer mode demo license could be assigned for a game after the user subscribed
  • Improve the Bazaar page loading time by limiting the returned API information to not include some large data that is unused.
  • Added a way to request via the API a more complete package information, including full html package description from the foundry site listing, and release notes link.
  • Fixed the bazaar updater not properly fetching release notes information from new releases
  • Fix issue with the bazaar package list flickering/refreshing when some actions are performed
  • Fix an issue where the page hash in the bazaar might have an invalid attribute added to it
  • Allow links within a Bazaar package description to function
  • Added more base changes needed for the upcoming full package view UI in the Bazaar
  • Added a dedicated assets/create API endpoint to be used by an upcoming Forge module update, to optimize the upload process coming from the module.
  • Autoscaler: always ensure that a region has at least one available server
  • Add a fix that hopefully handles the very rare race condition of having a Foundry instance running on a server without it being tracked by the database.
  • Handle server shutdowns more gracefully to make updates transition more smoothly to new server versions
  • Cleaned part of the code and did a lot of kubernetes integration & migration work
January 31st 2021
  • Fix an error thrown by the Forge module on load due to the activity checker being uninitialized
  • Fix an issue when enabling the user manager if a world exists with zero users in it
  • Automatically create a Gamemaster user when creating a new game from the game manager
  • Automatically associate the Game master user of a new game with the user’s account
  • Fix another autoscaling issue caused by an underlying library mishandling pagination
January 30th 2021
  • Fix Forge module error when checking for inactivity on slow connections when the world takes longer than 1 minute to load
  • Fix the Bazaar interfering with custom manifest installs when the package has been disabled on the Bazaar (such as the GURPS game aid)
  • Fix an issue with the new autoscaler unable to set up new droplets due to DigitalOcean API requests requiring pagination when listing a large number of machines
  • Backend restructuring in preparation to move to a kubernetes backed infrastructure
January 22nd 2021
  • Vastly improve assets rename operations for European and Asian regions
  • Retain filters, sort order, search query, etc… when refreshing the Bazaar page
  • Add option to select the core foundry language in the game configuration page.
  • Fix a display bug in the Bazaar where the world listing would not show if there was a search for packages of a specific language
  • Fix issue for some modules browsing files in the assets library using the wildcard option
  • Improve auto detection of browsing in non existent user data folders and falling back to the assets library
  • Do not bypass the file picker’s data source when the Forge module is loaded in a self hosted environment
  • Improve the autoscaler and schedulers to adapt capacity based on dynamic server RAM usage needs
  • Updated SSL certificates for the Forge website and A/V relay servers
January 17th & January 18th 2021
  • Added a cluster autoscaler algorithm and server setup automation
  • Improve scheduler to optimize machine usage to improve cluster scale down operations
  • Various misc fixes to the forge admin interface and server configurations
January 15th 2021
  • Implement a new scheduler for Foundry instances to better utilize server resources
  • Add loop and thumbnail fields to the media array returned by the Bazaar API (required for the Foundry Hub project which uses it)
  • Add automatic retry of failed Paypal payments, and an improve concurrent handling of payments
  • Added basis for automated machine provisioning
  • Upgrade node dependency library for security purposes
January 12th 2021
  • Automatically redirect FilePicker.browse API to browsing the assets library when a module tries to browse for files in a non existing folder from the Data or user sources.
  • Improve idle game detection by resetting inactivity timer when server side events occur (chat message is created, token is moved, actor is updated, active scene is changed, etc…) to prevent inaccurately detecting an inactive tab that is observing a game only.
  • Lower game inactivity threshold to 1 hour when user is alone and no other players are connected to the game
  • Lower game inactivity threshold to 2 hours as server activity + local activity should handle all use cases now and be more than enough for everyone.
  • Handle use case of a paypal using account paying for an invoice through the stripe hosted portal, so the subscription status gets correctly updated. Also improves subscription status handling in general for the paypal use case.
  • In case of error contacting S3 storage, retry after a short delay to improve access to assets when S3 backend is having network issues.
January 8th 2021
  • Rename “Extra Data” on the site to “Extra Game Data” to avoid some possible confusion for users wanting to increase their Assets
  • Improve Foundry orchestrator to avoid a possible race condition and remove risk of infinite loop in case of slow process boot up
  • Fix a rare error that could happen when proxying websocket data on a stopped instance after it gets auto started.
January 1st 2021
  • Happy new year everyone!
  • Revert Germany VAT rates to the standard 19% rates
  • Boxing Week sale coupon has expired (will apply to anyone who subscribed during the Boxing Week)
  • Revert the christmas logo to the regular logo
  • Fix an issue with subscriptions for Paypal users where unpaid invoices didn’t stop finalizing future invoices from being generated for delinquent accounts.
December 26th 2021
  • Whaaaatt??? For realz? Yep! Added a 10% off sale for Boxing Week (Backend + frontend support)!
  • Added support for viewing pending invoice items and account balance during invoice preview when user has credits to their account (contest winners, gift cards)

[Part 2]

  • Add a database-backed system for service announcements and the ability to dismiss them on a per user session basis.
December 24th 2020
  • Fix issue preventing some custom manifest urls from installing when the url didn’t end in .json
  • Improve the ‘My Account’ page to display better on smaller screens (thanks @bmarian)
  • Change the Forge logo in the page header to be more festive :slight_smile: :santa:
December 21st 2020
  • In invoice preview, show British users the GBP currency as a reference instead of euros.
  • Fix Yukon province code from YU to YT, which prevented Yukon subscriptions from working
December 19th 2020
  • Report error when Foundry fails to start instead of showing an “error communicating” error
  • Fix issue with detecting the correct latest version of a module when the manifest url doesn’t match the URL in the manifest itself
  • Ensure the data directory is always purged when a new Explorer Mode is enabled, in case some files were left over after a change of user region.
  • Fix issue installing premium modules when the game had a Foundry world configured as last launched
  • Clarify the “Unknown system error -122” error from Foundry when installing premium modules to say that it’s a data exceeded error
  • Show link to the forums for information on how to install premium modules when an error occurs
December 16th 2020
  • Change jQuery library dependency from to CDN due to the former having some issues loading for some people
  • Fix an issue where the Forge service config file wasn’t taken into account with the new containerized applications
  • Include the Forge module in the /stream endpoint to allow automatic idling of those sessions as well.
December 14th 2020
  • Fix Foundry server crashing on load for unusually large or corrupted worlds by doubling RAM limitations on the containers and configuring node’s heap options to make efficient use of RAM and Swap.
  • Fix import wizard failing to import a world from zip where the world is in the root directory of the zip file
  • Fix a server side crash during zip extraction when an uploaded zip archive contains absolute paths, as the path rejection error was left uncaught.
December 13th 2020
  • Assets library now distributed over 49 worldwide locations! :partying_face: (update count in region change dialog)
  • Speed up game boot time from idle dramatically by dropping support for automatically re-linking all Bazaar modules when downgrading from Foundry 0.6.4+ to an earlier version
  • Remove the forced 1 second delay to redirect to Foundry after boot that was caused by a bug in Foundry 0.7.5
  • Add a button to delete a user’s content if worlds exist and their subscription was cancelled
  • Allow installs of json manifest even if the URL points to a file with the wrong mimetype
  • Show more verbose error messages if encountering an error installing a package from manifest
  • Fix a display bug and show error details when encountering an error deleting an asset
  • Fix impossible issue trying to browse or delete an asset which has a null byte character in its name
  • Display the exact server side error when failing to upload an asset
  • Fix error that occured when uploading a zero-sized asset file
  • Fix issues with the server-side Docker deployment for Foundry
  • Kubernetes cluster upgrade and firewall restriction on services
December 7th 2020
  • Fix issue with the “Return to setup” button not working anymore from the join screen (Fixed on December 2nd after it was reported an API change broke the feature)
  • Major infrastructure change for enhanced security and performance:
    • Added docker support where each Foundry instance is isolated from the rest of the system (deployment will be progressive).
    • Trying out Foundry under Node 14.x for performance and stability
    • Fine tuned load balancer configuration to improve performance during peak hour load
  • Fix issue where Foundry would not have the license file pre-configured when you add your full license while in Explorer Mode
  • Tweak the text of the explorer mode activation dialog
  • Add a workaround for a potential database read-concern issue causing the “No suitable server found” error that appears rarely to some users.
  • Fix the wrong redirection to the “configure players” screen on User-manager enabled games, for a GM who isn’t the game owner.
  • Override the ‘configure players’ button redirection from the client side to avoid doing two requests to get to the correct final URL.
December 1st 2020
  • Fix some API calls to manage games possibly returning the wrong JSON data due to how internal system API calls were handled
  • Fix the missing warning about the server needing a restart when a game is in session and a package is installed in the bazaar
  • Redirect requests to the correct region when using API requests with an Access Key or an OAuth Bearer Token, when the API related to the user’s Data
  • Fix Bazaar optimized content when it refers to assets from other modules or systems (Dragon Festival world for example, which uses dnd5e and dn5eja assets)
  • Fix missing assets discovery during optimization of packages when the asset path is urlencoded
  • Ensure the scenes thumbnails directory is always created when installing worlds from the Bazaar even if original Data didn’t contain the directory
  • Prevent uploads to the [Bazaar] pseudo directory from within the File Picker.
  • Change the behavior of the /game/idle API endpoint when the game slug is not specified, to only idle the game if it was online.
  • Added Atropos Batllemaps to the Bazaar’s list of Patreon-linked Premium content