Skip to content

Deploy Mods

Requires mods folder configuration.

Go to File > Preferences > Settings and search for anno to configure the following:

- Anno.*: Mods Folder: path to your mods/ folder to deploy and resolve dependencies (1)

  1. Defaults to <Game Path>/mods/.

See also the Setup page for detailed documentation.

Automatically convert and copy mod files using a json description.

  • automatically convert files like .png or .gltf to their Anno formats
  • copy only wanted files into a separate mod folder (keeps mod output clean)
  • create skins of .cfg files without duplicating them

How to call

From Visual Studio Code

  • The status bar shows a button with Anno version and mod ID. Click that to deploy the mod to your configured mods/ folder.
  • Alternatively, press F1 to select a mod from your workspace.

From Terminal or GitHub actions

You can use the build command also in command line.

Have a look at New World Cities' GitHub publish pipeline to get some hints how to do it.

Download Sub-Mods

You can automatically bundle sub-mods and shared files using URLs in ModDependencies and Development.Bundle. For example:

modinfo.json
{
  // ..
  "Dependencies": {
    "Require": [
      "https://github.com/anno-mods/shared-resources/releases/download/v10.10/shared-pools-and-definitions.zip"
    ],
  },
  "Development": {
    "Bundle": [
      "https://github.com/anno-mods/shared-jakob/releases/download/v4.9.4/decals-city-jakob.zip",
      "https://github.com/anno-mods/shared-jakob/releases/download/v4.9.4/decals-industry-jakob.zip"
    ]
  }
}
modinfo.json
{
  // ..
  "ModDependencies": [
    "https://github.com/anno-mods/shared-resources/releases/download/v10.10/shared-pools-and-definitions.zip"
  ],
  "Development": {
    "Bundle": [
      "https://github.com/anno-mods/shared-jakob/releases/download/v4.9.4/decals-city-jakob.zip",
      "https://github.com/anno-mods/shared-jakob/releases/download/v4.9.4/decals-industry-jakob.zip"
    ]
  }
}

Both options download the file and extract the content into your mod.

Development.Bundle does not add a dependency.

URLs in ModDependencies are a shotcut for the following where the URL is bundled and the zip file name is used as a dependency:

modinfo.json
{
  // ..
  "Dependencies": {
    "Require": [
      "shared-pools-and-definitions"
    ],
  },
  "Development": {
    "Bundle": [
      "https://github.com/anno-mods/shared-resources/releases/download/v10.10/shared-pools-and-definitions.zip"
    ]
  }
}
modinfo.json
{
  // ..
  "ModDependencies": [
    "shared-pools-and-definitions"
  ],
  "Development": {
    "Bundle": [
      "https://github.com/anno-mods/shared-resources/releases/download/v10.10/shared-pools-and-definitions.zip"
    ]
  }
}

Change Output Path

The default folder name is [Category] Name, saved to your mods/ folder.

You can change that in the modinfo.json:

{
  // ... the usual modinfocontent
  "Development": {
    "DeployPath": "${annoMods}/${modName}"
  }
}

Use ${modName} to get [Category] Name created from modinfo.Category.English and modinfo.ModName.English.

Use ${annoMods} to get your local Anno mods/ directory set in the Extension configuration.

Conversions

The following are the default conversion if you use a normal modinfo.json file:

Type Pattern Action
Texture _diff.png, _metal.png, _norm.png, _height.png, _rga.png Create DDS textures with 3 LODs.
Icon icon*.png Copy PNG and create DDS textures LODs as needed.
Feedback .cf7 Convert to .fc.
Models .gltf Extract and convert models with the name _lod0 etc. to individual .rdm files.
Skin .cfg.yaml Generate .cfg, .ifo, .fc.
Other .cfg, .ifo, .prp, .fc, .rdm, .dds, .rdp, .fx Copy.
Config data/config/* Copy.
Readme README.md Insert text into Description.English in the modinfo.json.
Banner banner.png, banner.jpg Copy.