Modding:Modinfo

From Vintage Story Wiki
(Redirected from Modinfo)
Other languages:

This page was last verified for Vintage Story version 1.19.8.


Overview

Every mod needs some basic information to be recognized as a mod. This can either happen by putting this info into the assembly (not recommended anymore) or by using the modinfo.json. The modinfo.json sits at the root of your mod directory and looks for example like this:

{
  "type": "code",
  "modid": "mycoolmod",
  "name": "My Cool Mod (very cool)",
  "authors": ["SakuraSpiritKid69"],
  "description": "Mod that is so cool it freezes you.",
  "version": "1.2.3",
  "dependencies": {
    "game": "1.14.10",
  }
}

Reference

The following properties and values are supported. Bold values are required. Properties are not case sensitive and may appear in any order.

Property Example Description
type "type": "code" The type of this mod. Can be "Theme", "Content" or "Code"
name "name": "My cool Mod" The name of this mod.
modid "modid": "mycoolmod" The mod id (domain) of this mod.
Must only contain lowercase letters and numbers. No special chars, whitespaces, uppercase letters, etc. allowed.
version "version": "1.2.3" Version of this mod (used for dependency resolution)
networkVersion "networkVersion" : "1.2.3" The network version of this mod.
Change this number when a user that has an older version of your mod should not be allowed to connected to server with a newer version.
Default value is the version.
textureSize "textureSize" : 32 If the mod is a texture pack that changes topsoil grass textures, define the texture size here. Default value = 32
description "description": "Mod that is so cool it freezes you." A short description of what this mod does.
website "website": "https://wiki.vintagestory.at" Location of the website or project site of this mod.
authors "authors": ["SakuraSpiritKid69"] Names of people working on this mod. Must be formatted as an array, even if there is only one author.
contributors "contributors": ["noone"] Names of people contributing to this mod.
side "side" : "Universal" Which side(s) this mod runs on. Can be "Server", "Client" or "Universal". Default value = "Universal"
requiredOnClient "requiredOnClient": true If set to false and the mod is universal, clients don't need the mod to join. Default value = True
requiredOnServer "requiredOnServer": true If set to false and the mod is universal, the mod is not disabled if it's not present on the server. Default value = True
dependencies "dependencies": { "game": "1.12.14", "survival": "1.12.14"} List of mods (and versions) this mod depends on.

The game uses SemVer to compare, so for example "1.15.0" > "1.15.0-rc.3" > "1.15.0-rc.2" > "1.15.0-pre.1". You can set the value to an empty string or an asterisk ("game": "*") to allow compatibility with all versions.

Although the game follows the general logic of SemVer, it does not fully implement it. So for <prerelease> you can only use rc > pre > dev and <metadata> is not supported.

Technical Note

The modinfo.json properties correspond directly to the fields and properties on the ModInfo API class (and are loaded into that class internally using JsonConvert.DeserializeObject). Check the available fields in the api documentation to see a full up to date list of all possible properties.