User Tools

Site Tools


documentation:fabric_mod_json

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
documentation:fabric_mod_json [2019/05/26 12:25] – [Mod loading] falseresyncdocumentation:fabric_mod_json [2023/12/27 12:53] (current) – ↷ Page name changed from documentation:fabric_mod_json_spec to documentation:fabric_mod_json mineblock11
Line 1: Line 1:
 ====== fabric.mod.json ====== ====== fabric.mod.json ======
 +
 +The fabric.mod.json file is a mod metadata file used by Fabric Loader to load mods. In order to be loaded, a mod must have this file with the exact name placed in the root directory of the mod JAR.
  
 ===== Mandatory fields ===== ===== Mandatory fields =====
  
    * **schemaVersion** Needed for internal mechanisms. Must always be ''1''    * **schemaVersion** Needed for internal mechanisms. Must always be ''1''
-   * **id** Defines the mod's identifier - a string of Latin letters, digits, underscores with length from to 63.+   * **id** Defines the mod's identifier - a string of Latin letters, digits, underscores with length from to 64.
    * **version** Defines the mod's version - a string value, optionally matching the [[https://semver.org/|Semantic Versioning 2.0.0]] specification.    * **version** Defines the mod's version - a string value, optionally matching the [[https://semver.org/|Semantic Versioning 2.0.0]] specification.
  
Line 11: Line 13:
 ==== Mod loading ==== ==== Mod loading ====
  
 +   * **provides**:Defines the list of ids of mod. It can be seen as the aliases of the mod. Fabric Loader will treat these ids as mods that exist. If there are other mods using that id, they will not be loaded.
    * **environment**: Defines where mod runs: only on the client side (client mod), only on the server side (plugin) or on both sides (regular mod). Contains the environment identifier:    * **environment**: Defines where mod runs: only on the client side (client mod), only on the server side (plugin) or on both sides (regular mod). Contains the environment identifier:
       * **''*''** Runs everywhere. Default.       * **''*''** Runs everywhere. Default.
Line 27: Line 30:
 ] ]
 </code> </code>
-         * If you're using any other language, that is compatible with Java and has a Fabric adapter, then you should use following syntax: <code json> +   * If you're using any other language, consult the language adapter's documentation. The Kotlin one is located [[https://github.com/FabricMC/fabric-language-kotlin/blob/master/README.md|here]]. 
-"main": [ +
-   { +
-      "adapter""kotlin", +
-      "value": "package.ClassName" +
-   } +
-+
-</code>+
    * **jars** A list of nested JARs inside your mod's JAR to load. Before using the field, check out [[tutorial:loader04x#nested_jars|the guidelines on the usage of the nested JARs]]. Each entry is an object containing ''file'' key. That should be a path inside your mod's JAR to the nested JAR. For example: <code json>    * **jars** A list of nested JARs inside your mod's JAR to load. Before using the field, check out [[tutorial:loader04x#nested_jars|the guidelines on the usage of the nested JARs]]. Each entry is an object containing ''file'' key. That should be a path inside your mod's JAR to the nested JAR. For example: <code json>
 "jars": [ "jars": [
Line 62: Line 59:
 The key of each entry of the objects below is a Mod ID of the dependency. The key of each entry of the objects below is a Mod ID of the dependency.
  
-The value of each key is a string or array of strings declaring supported version ranges. In the case of an array, an OR” relationship is assumed - that is, only one range has to match for the collective range to be satisfied.+The value of each key is a string or array of strings declaring supported version ranges. In the case of an array, an "ORrelationship is assumed - that is, only one range has to match for the collective range to be satisfied.
  
 In the case of all versions, * is a special string declaring that any version is matched by the range. In addition, exact string matches must be possible regardless of the version type. In the case of all versions, * is a special string declaring that any version is matched by the range. In addition, exact string matches must be possible regardless of the version type.
documentation/fabric_mod_json.1558873534.txt.gz · Last modified: 2019/05/26 12:25 by falseresync