Custom Module does not work in Forge, empty compendiums

Hello, i have a small custom module containing a homebrew class for the pf2e system. It works perfectly fine on every non-forge install of Foundry i’ve tested it on. My friend even got it working on an older version of pf2e and foundry than the one I’m using. The import wizard claims that it has successfully imported the module, and it has all of the appropriate compendiums that it should, however all of those compendiums but one are completely empty. I’ve messed with the module.json file so that there’s no nesting since apparently the import wizard doesn’t like that and it still didn’t do anything. When i export the module after it’s been imported it’s now magically smaller than it was going in which tells me that the import wizard is scrubbing 99% of the module content for reasons this lowly non-wizard cannot possibly fathom. If anyone can help with explaining why this is happening, and more importantly, how to make it stop, that would be greatly appreciated.

Hey fennrys,

We would have to take a look at your module itself to be able to say if it’s not structured properly.
You can send us an email at [email protected] with the module attached or linked if its on git, we’ll see what’s happening with it from there.

Hello, I’ve sent you a copy of my module. Looking forward to a response.

It’s been a few days. Has anyone looked at the module yet?

Send me your module.json pack section and the module folder layout and I’ll audit the structure line by like.

{
  "id": "hunter-class",
  "title": "Hunter Class",
  "version": "1.0.0",
  "compatibility": {
    "minimum": "13",
    "verified": "13"
  },
  "authors": [
    {
      "name": "Fennrys",
      "flags": {}
    }
  ],
  "flags": {
    "canUpload": true,
    "hunter-class": {
      "pf2e-homebrew": {
        "featTraits": {
          "rush-1": "Rush 1",
          "rush-2": "Rush 2",
          "rush-3": "Rush 3",
          "rush-4": "Rush 4",
          "hunter": "Hunter"
        }
      }
    }
  },
  "packs": [
    {
      "name": "actions",
      "label": "Actions",
      "path": "packs/actions",
      "type": "Item",
      "system": "pf2e",
      "ownership": {
        "PLAYER": "OBSERVER",
        "ASSISTANT": "OWNER"
      }
    },
    {
      "name": "class",
      "label": "Class",
      "path": "packs/class",
      "type": "Item",
      "system": "pf2e",
      "ownership": {
        "PLAYER": "OBSERVER",
        "ASSISTANT": "OWNER"
      }
    },
    {
      "name": "effects",
      "label": "Effects",
      "path": "packs/effects",
      "type": "Item",
      "system": "pf2e",
      "ownership": {
        "PLAYER": "OBSERVER",
        "ASSISTANT": "OWNER"
      }
    },
    {
      "name": "feats",
      "label": "Feats",
      "path": "packs/feats",
      "type": "Item",
      "system": "pf2e",
      "ownership": {
        "PLAYER": "OBSERVER",
        "ASSISTANT": "OWNER"
      }
    },
    {
      "name": "items",
      "label": "Items",
      "path": "packs/items",
      "type": "Item",
      "system": "pf2e",
      "ownership": {
        "PLAYER": "OBSERVER",
        "ASSISTANT": "OWNER"
      }
    },
    {
      "name": "spells",
      "label": "Spells",
      "path": "packs/spells",
      "type": "Item",
      "system": "pf2e",
      "ownership": {
        "PLAYER": "OBSERVER",
        "ASSISTANT": "OWNER"
      }
    },
    {
      "name": "features",
      "label": "Features",
      "path": "packs/features",
      "type": "Item",
      "system": "pf2e",
      "ownership": {
        "PLAYER": "OBSERVER",
        "ASSISTANT": "OWNER"
      }
    },
    {
      "name": "subclasses",
      "label": "Subclasses",
      "path": "packs/subclasses",
      "type": "Item",
      "system": "pf2e",
      "ownership": {
        "PLAYER": "OBSERVER",
        "ASSISTANT": "OWNER"
      }
    }
  ],
  "packFolders": [
    {
      "name": "Hunter Class",
      "sorting": "m",
      "packs": [
        "actions",
        "class",
        "effects",
        "feats",
        "items",
        "spells",
        "features",
		"subclasses"
      ],
      "color": null
    }
  ],
  "description": ""
}

in the root there is module.json, .gitattributes, and /packs

inside /packs is

  • Actions
  • Class
  • Effects
  • Feats
  • Features
  • Items
  • Spells
  • Subclasses

We examined this module via email and it seems to be due to the capitalization issues of the packs, versus what is specified in the module.json. Windows ignores capitalization on file names and treats it the same, while Linux (which The Forge is hosted on) will treat it as different files.

To fix this, make sure the pack folders are not capitalized, and match exactly what they say in the module.json.

Paste your module.jason and the folder names / packs.