How to fix v9 shared compendiums to work on v10

At this time, The Forge does not yet recommend users upgrade to Foundry VTT v10, due to stability issues and various major changes that are causing problems to users.

While The Forge is working on a user-friendly way to let users find any compendium that would fail to load on v10 due to its stricter requirements, and guide them through fixing it, we acknowledge that some users have already moved to Foundry v10 (either purposefully or accidentally) and find themselves stuck without access to their compendiums.

Here are instructions (for advanced users) on how you can fix your modules to work with Foundry v10 :

All compendiums targeting a single game system

  • Go to your Forge configuration page
  • Select the “Export Compendium Modules” button from the Table Tools
  • Select your Shared Compendium which fails to load which will download a zip file with the module exported
  • Find and unzip the downloaded module
  • Edit the module.json with your favorite text editor (Notepad++ for example)
  • You will need to set a target game system for the module, so that Foundry VTT recognizes which system the module is meant for.
    • Find the id of your game system, you can do so by going to the System’s page on the Bazaar, clicking on your system’s page and opening the “Popout” button in the top-right corner and looking at the URL of the new page. For example the DnD5e game system’s link is https://forge-vtt.com/bazaar/package/dnd5e and therefore its id is dnd5e, the “Pathfinder Second Edition” system’s url https://forge-vtt.com/bazaar/package/pf2e and therefore its id is pf2e while “Pathfinder 1” is https://forge-vtt.com/bazaar/package/pf1 and its id is pf1, etc…
    • Under the title line of the module, add the relevant system relationship to indicate the module is meant for your target system, you can do that by inserting the following text (using dnd5e here as an example for the system’s id, but you should use the system’s id for your target game system, as retrieved from the previous step) :
"relationships": {
  "systems": [
    {"id": "dnd5e"}
  ]
},
  • Make sure the file is not invalid due to a typo or invalid JSON file syntax. You can use a JSON Linter tool such as https://jsonlint.com/
    It’s important to note that the previous line should end with , and you should only include a , at the end of the json snippet above, if something else follows it. If you’re adding it at the end of the file, it should not have a , at the end, and you should add the , on the line above it instead.
  • Use the Import Wizard to re-import your modified module.
  • Restart your game server if it was already running. This would allow Foundry to see the newly update module.

Each compendium pack may be targeting a different game system

In the case where you have a shared compendium module that has compendium packs that target different game systems (one pack for DnD5e actors, and one for PF2e actors, for example), then you will need to do things differently.
When editing the module.json, do not add the relationships JSON snippet shown above, instead, you will need to add a system line for each pack listed in the module.json. This is a little more complex, but you should find every single pack in the module and add on each one (for example) :

"system": "dnd5e",

Such that you end up with something like this (for example) :

  "packs": [
    {
      "name": "actor-1-actors",
      "label": "5e Actors (Shared)",
      "path": "packs/actor-1-actors.db",
      "entity": "Actor",
      "type": "Actor",
      "system": "dnd5e",
      "package": "forge-vtt-shared-compendiums-shared-compendium-v10"
    },
    {
      "name": "actor-2-monsters",
      "label": "Monsters (Shared)",
      "path": "packs/actor-2-monsters.db",
      "entity": "Actor",
      "type": "Actor",
      "system": "dnd5e",
      "package": "forge-vtt-shared-compendiums-shared-compendium-v10"
    },
    {
      "name": "actor-3-actors",
      "label": "PF2 Actors (Shared)",
      "path": "packs/actor-3-actors.db",
      "entity": "Actor",
      "type": "Actor",
      "system": "pf2e",
      "package": "forge-vtt-shared-compendiums-shared-compendium-v10"
    },
    {
      "name": "item-1-spells",
      "label": "Spells (Shared)",
      "path": "packs/item-1-spells.db",
      "entity": "Item",
      "type": "Item",
      "system": "dnd5e",
      "package": "forge-vtt-shared-compendiums-shared-compendium-v10"
    },
    {
      "name": "item-2-items",
      "label": "Items (Shared)",
      "path": "packs/item-2-items.db",
      "entity": "Item",
      "type": "Item",
      "system": "dnd5e",
      "package": "forge-vtt-shared-compendiums-shared-compendium-v10"
    },

Note how the last lines in each pack does not end with a comma , so make sure your JSON file is valid using https://jsonlint.com/

Hopefully this helps you recover your shared compendiums until The Forge can provide you with its own user-friendly interface to port over your older content to Foundry v10.
If you’re having any difficulties, feel free to comment below with your issue and we’ll provide clarification as needed.