Once you've created your system, you'll need to make some changes to system.json. Here's what it looks like for the Boilerplate System by default:
{
"id": "boilerplate",
"title": "Boilerplate",
"description": "The Boilerplate system for FoundryVTT!",
"authors": [
{
"name": "Asacolips",
"discord": "asacolips"
}
],
"url": "Replace this with a link to your public repository",
"license": "LICENSE.txt",
"readme": "README.md",
"bugs": "Replace this with a link to file issues or tickets",
"changelog": "CHANGELOG.md",
"media": [
{
"type": "setup",
"url": "systems/boilerplate/assets/anvil-impact.png",
"thumbnail": "systems/boilerplate/assets/anvil-impact.png"
}
],
"version": "1.3.0",
"compatibility": {
"minimum": 11,
"verified": "11.315"
},
"esmodules": ["module/boilerplate.mjs"],
"styles": ["css/boilerplate.css"],
"languages": [
{
"lang": "en",
"name": "English",
"path": "lang/en.json"
}
],
"packs": [],
"packFolders": [],
"socket": false,
"manifest": "Replace this with a link to the /latest release system.json so people can receive updates after they've installed the system",
"download": "This must link to a .zip file of the current version",
"background": "systems/boilerplate/assets/anvil-impact.png",
"gridDistance": 5,
"gridUnits": "ft",
"primaryTokenAttribute": "health",
"secondaryTokenAttribute": "power"
}
For a full breakdown of each of those properties head to https://foundryvtt.com/article/system-development/. But there a few important ones to take a look at in detail:
mysystemname
or dnd5e
. In previous versions of Foundry, this was called name
.[]
brackets.en.json
language file.dnd5e
system has several great examples of creating a compendium, and more info can be found at https://foundryvtt.com/article/compendium/.game.settings.set("core", "compendiumConfiguration", {})
in the console.system.json
file. Foundry uses this to find out information about your system for update and install purposes.Managing Releases
To properly manage releases, you need to do three things:
(1) Use the link to the latest version (such as "main" or "master") of your system in themanifest
property of system.json. This will allow updates to be found by Foundry. If you have multiple release tracks such asv9
andv10
for versions compatible with the respective Foundry versions, use that in the manifest URL.
(2) Use the link to the tagged version (such as "1.0.0") of your system in the package listing on foundryvtt.com when making a new release. This will allow Foundry find and install specific versions (which is important for users who don't update immediately and stay on the previous stable version).
(3) Use the link to the tagged version (such as "1.0.0") of your system in thedownload
property of your system.json, which allow the manifest to find and download a specific version (and works in tandem with #2 above about using tagged versions on foundryvtt.com).For example, when using Gitlab, your URLs for the manifest and download properties of your system.json file might look like the following if your development branch was called main and your release version was 1.0.0:
"manifest": "https://gitlab.com/asacolips-projects/foundry-mods/boilerplate/-/raw/main/system.json",
"download": "https://gitlab.com/asacolips-projects/foundry-mods/boilerplate/-/archive/1.0.0/boilerplate-1.0.0.zip",