Mod Management Specification

(Draft)

Package format

All mod deliverables are to be shipped in a standard package format. The packages are zip files that contain all of the mod's content as well as a small amount of metadata to instruct how the package should be installed.

Currently, the following fields for a metadata file in the package are planned:

Field

Required

Description

Creator

Name of the team or individual that created the package. Has to be filesystem safe. Used in filepaths and URLs

Identifier

Name/identifier of the package. Has to be filesystem safe. Used in filepaths and URLs

Version

The version of the package, following SemVer

DisplayName

The name of the package purely for display purposes. Does not have to be filesystem safe.

Description

Short description of the package

License

The license the package is released and distributed under

WebsiteURL

A link to a website related to the package

Dependencies

A list of required package ID's to install along this package

Tags

A list of tags to be associated with the package

Install Strategies

A list of strategies to use for installing this package. Strategies are specified separately and support is up to mod managers

ExtraData

Freeform dictionary of keys/values. Could be used for storing metadata other tools can leverage

Additionally, the following metadata could be included in some shape or form:

  • Package icon

  • Long description / readme

Tooling

Responsibilities of a mod manager

  • Download and cache mods from the internet (where?) to the local filesystem.

  • Extract installed packages to a managed location.

  • Symlink active mods to the game directory in a way they get appropriately loaded by the game.

Install Strategies

  • List planned and supported install strategies here.