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

Next revision
Previous revision
Next revisionBoth sides next revision
documentation:fabric_mod_json [2019/05/20 14:28] – created falseresyncdocumentation:fabric_mod_json [2019/11/16 18:22] fudge
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 =====
  
Line 16: Line 17:
       * **server** Runs on the server side.        * **server** Runs on the server side. 
    * **entrypoints** Defines main classes of your mod, that will be loaded.    * **entrypoints** Defines main classes of your mod, that will be loaded.
-      * There are 3 entry points for your mod:+      * There are 3 default entry points for your mod:
          * **main** Will be run first. For classes implementing ''ModInitializer''.          * **main** Will be run first. For classes implementing ''ModInitializer''.
          * **client** Will be run second and only on the client side. For classes implementing ''ClientModInitializer''.          * **client** Will be run second and only on the client side. For classes implementing ''ClientModInitializer''.
Line 27: Line 28:
 ] ]
 </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 60: Line 55:
  
 ==== Dependency resolution ==== ==== Dependency resolution ====
 +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.
 +
 +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.
  
    * **depends** For dependencies required to run. Without them a game will crash.    * **depends** For dependencies required to run. Without them a game will crash.
Line 66: Line 66:
    * **breaks** For mods whose together with yours might cause a game crash. With them a game will crash.    * **breaks** For mods whose together with yours might cause a game crash. With them a game will crash.
    * **conflicts** For mods whose together with yours cause some kind of bugs, etc. With them a game will log a warning.    * **conflicts** For mods whose together with yours cause some kind of bugs, etc. With them a game will log a warning.
- 
 ==== Metadata ==== ==== Metadata ====
  
Line 92: Line 91:
 ===== Custom fields ===== ===== Custom fields =====
  
-You can add any field you want to add. Loader would ignore them. However //it's highly recommended to namespace your fields// to avoid conflicts if your fields (names) would be added to the standard specification.+You can add any field you want to add inside ''custom'' field. Loader would ignore them. However //it's highly recommended to namespace your fields// to avoid conflicts if your fields (names) would be added to the standard specification.
documentation/fabric_mod_json.txt · Last modified: 2023/12/27 12:53 by mineblock11