This document is the current specification for .modinfo, repository file format and package format
used by ModManager for CIM.
This html file uses HTML5 features, so a recent Browser is required.
Description
Example
Warnings
Planed feature
Comments
A ModID is a unique identification string, only letters a-z (lowercase), numbers 0-9 and _- are allowed, a version information doesn't belong to the modid.
Each Package must consist of one .modinfo file in a gs file.
The gs file can't have any path information attached.
A mod or addon is called ModManager compatible when:
A mod or addon package can be installed and removed via ModManager:
The installation location may be defined in the .modinfo file via installto.
Is the controlling information, it's filename without extension defines the modid for this Mod or Addon
The filename consists of the basename (a valid ModID) and the extension .modinfo.
Example (modid = mytestmod):
mytestmod.modinfo
Each .modinfo file is a well-formed CIM script, loadable without warnings or errors in CIM.
The file has no functions, threads or other long running processes.
It has one variable called "mod" whose type is a map.
Example:
$mod = map [];
Only defined key value pairs in the specs are allowed to be used in this map:
Typ: string, required
The name of the Mod in English Language
Typ: array of integers
Each array item is a versions number, from highest to lowest significance.
A version number component has to be an integer between 0-99.
The version number components of two Mods with the same ModID are compared one by one, a Mod with a higher versions number is considered newer. ModManager will try to use the newer Mod, but is free to use either version if the version number is considered equal.
Example:
[1,0,2]
A version string may be simply converted by replacing any dots by commas, so "2.1" would be [2,1]
Typ: string or map
A description of this mod as string in English.
When the value is a map, at least the map key en_US has to exists with an English description.
A map may have any other key for any additional language description. The key has to be a valid CIM language id
Examples:
"My description telling what my mod provides"
or
map ["en_US", "My description telling what my mod provides", "de", "Eine Beschreibung der Funktionen meines Mods"]
Typ: name
Name of the author
Example:
"Test"
Typ: array of integers
Version of ModManager required
Example: (Atleast ModManager 2.0.2 is required)
[2,0,2]
Current versions of ModManager won't check this yet.
This feature is planed to be removed
Typ: boolean
Set to true if this mod can loaded while the game or editor is running.
Can't be used with legacy addon scripts!
Default value is false and should not be explicit set to false
Typ: boolean
Set to true if this mod can unloaded while the game or editor is running.
Can't be used with legacy addon scripts!
Default value is false and should not be explicit set to false.
Typ: integer
Sets the installation location, defaults to 0.
Default value is 0 and should not be explicit set to 0.
Creating Mods/Addons in a way it's path neutral is highly recommend and allows easier installation without ModManager as well.
Typ: map
Defines dependencies of this mod, each entry consists of a modid and version pair.
The version should be in array format.
"requires", map["othermod", [1, 0, 2]]
Defines dependencies of this mod, each entry of the map consists of a modid and map describing this dependency.
"requires", map["othermod", map[]]
Only the following map keys describing this dependency are allowed:
Key | Typ | Description | Example |
---|---|---|---|
version | array | minimal version as array, inclusive. Current versions of ModManager won't check the version yet | [2,0] |
Example, if othermod is older then 1.0 this mod can't be activated:
"requires", map["othermod", map["version", [1,0]]]
Typ: map
Defines conflicting other mods, each entry of the map consists of a modid and map with details.
Example, if othermod is active, this mod can't be activated
"conflicts", map["othermod", map[]]
Only the following map keys describing this conflict are allowed:
Key | Typ | Description | Example |
---|---|---|---|
maxversion | array | max version as array, inclusive deny activating Current versions of ModManager won't check the version yet | [2,0] |
Example with setting a version, if othermod 1.0 or lower is active, this mod can't be activated.
"conflicts", map["othermod", map["maxversion", [1,0]]]
Typ: string
A full http url to more information to this mod, no spaces are allowed.
As ModManager tries to be cross platform use only urls that can be represented in ascii, if there is really not other way, use a punycode representation
map[ "version", [0,2], "name", "My new Mod", "description", "This is a new mod", ]
Example with description with two languages, setting the installation folder
map[ "version", [1,0,2], "name", "My new Mod", "description", ["en_US", "This is a new mod", "de", "Mein neue Modifikation"], "installto", 1 ]
A repository file is a loadable CIM script file without warnings or errors.
The file starts with:
/* ModManager Repository 1 */
Only variables should be defined, as this file may be parsed by other programms.
Typ: string
English unique name for this repository
Typ: string
A baseurl to prepend to urls that are relative.
ModManager will use the base of the repository url if not set and a relative url is found.
Generally this variable can be omitted and should only be used when really needed, as ModManager will try to determine the baseurl automatically from the repository url.
Typ: array, required
A list of Mod Packages this repository describes,
each entry is a map entry with following possible key value pairs:
Typ: string, required
The modid of this package
Typ: string, required
The name of the Mod Package in English language
Typ: string or map
Typ: string
Typ: string, required
A full url to a http resource, or a relative path
Example:
map[ "id", "", "version", [], "name", "", "description", "", "url", "" ]