Interface FabricModMetadata
The ModMetadata
is extract from 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.
🏷️ Properties
authors
authors: Person[]
A list of authors of the mod. Each entry is a single name or an object containing following fields:
Defined in: packages/mod-parser/fabric.ts:169
breaks
breaks: Record<string, string | string[]>
For mods whose together with yours might cause a game crash. With them a game will crash.
Defined in: packages/mod-parser/fabric.ts:124
conflicts
conflicts: Record<string, string | string[]>
For mods whose together with yours cause some kind of bugs, etc. With them a game will log a warning.
Defined in: packages/mod-parser/fabric.ts:128
contact
contact: Object
Defines the contact information for the project. It is an object of the following fields:
Defined in: packages/mod-parser/fabric.ts:143
contributors
contributors: Person[]
A list of contributors to the mod. Each entry is the same as in author field. See above.
Defined in: packages/mod-parser/fabric.ts:173
depends
depends: Record<string, string | string[]>
For dependencies required to run. Without them a game will crash.
Defined in: packages/mod-parser/fabric.ts:112
description
description: string
Defines the mod's description. If not present, assume empty string.
Defined in: packages/mod-parser/fabric.ts:139
entrypoints
entrypoints: string[]
Defines main classes of your mod, that will be loaded.
- There are 3 default entry points for your mod:
- main Will be run first. For classes implementing ModInitializer.
- client Will be run second and only on the client side. For classes implementing ClientModInitializer.
- server Will be run second and only on the server side. For classes implementing DedicatedServerModInitializer.
- Each entry point can contain any number of classes to load. Classes (or methods or static fields) could be defined in two ways:
- If you're using Java, then just list the classes (or else) full names. For example:
"main": [
"net.fabricmc.example.ExampleMod",
"net.fabricmc.example.ExampleMod::handle"
]
- If you're using any other language, consult the language adapter's documentation. The Kotlin one is located here.
Defined in: packages/mod-parser/fabric.ts:64
environment
environment: 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.client
Runs on the client side.server
Runs on the server side.
Defined in: packages/mod-parser/fabric.ts:46
icon
icon: string
Defines the mod's icon. Icons are square PNG files. (Minecraft resource packs use 128×128, but that is not a hard requirement - a power of two is, however, recommended.) Can be provided in one of two forms:
- A path to a single PNG file.
- A dictionary of images widths to their files' paths.
Defined in: packages/mod-parser/fabric.ts:186
id
id: string
Defines the mod's identifier - a string of Latin letters, digits, underscores with length from 1 to 63.
Defined in: packages/mod-parser/fabric.ts:32
jars
jars: Object[]
A list of nested JARs inside your mod's JAR to load. Before using the field, check out 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:
"jars": [
{
"file": "nested/vendor/dependency.jar"
}
]
Defined in: packages/mod-parser/fabric.ts:76
languageAdapters
languageAdapters: string[]
A dictionary of adapters for used languages to their adapter classes full names. For example:
"languageAdapters": {
"kotlin": "net.fabricmc.language.kotlin.KotlinAdapter"
}
Defined in: packages/mod-parser/fabric.ts:85
license
license: string | string[]
Defines the licensing information.Can either be a single license string or a list of them.
- This should provide the complete set of preferred licenses conveying the entire mod package.In other words, compliance with all listed licenses should be sufficient for usage, redistribution, etc.of the mod package as a whole.
- For cases where a part of code is dual - licensed, choose the preferred license.The list is not exhaustive, serves primarily as a kind of hint, and does not prevent you from granting additional rights / licenses on a case -by -case basis.
- To aid automated tools, it is recommended to use SPDX License Identifiers for open - source licenses.
Defined in: packages/mod-parser/fabric.ts:180
mixins
mixins: (string | Object)[]
A list of mixin configuration files.Each entry is the path to the mixin configuration file inside your mod's JAR or an object containing following fields:
config
The path to the mixin configuration file inside your mod's JAR.environment
The same as upper levelenvironment
field.See above. For example:
"mixins": [
"modid.mixins.json",
{
"config": "modid.client-mixins.json",
"environment": "client"
}
]
Defined in: packages/mod-parser/fabric.ts:100
name
name: string
Defines the user-friendly mod's name. If not present, assume it matches id.
Defined in: packages/mod-parser/fabric.ts:135
provides
provides: string[]
Defined in: packages/mod-parser/fabric.ts:24
recommends
recommends: Record<string, string | string[]>
For dependencies not required to run. Without them a game will log a warning.
Defined in: packages/mod-parser/fabric.ts:116
schemaVersion
schemaVersion: number
Needed for internal mechanisms. Must always be 1.
Defined in: packages/mod-parser/fabric.ts:28
suggests
suggests: Record<string, string | string[]>
For dependencies not required to run. Use this as a kind of metadata.
Defined in: packages/mod-parser/fabric.ts:120
version
version: string
Defines the mod's version - a string value, optionally matching the Semantic Versioning 2.0.0 specification.
Defined in: packages/mod-parser/fabric.ts:36