Skip to main content

Template Variables

Prism expands ${variable} placeholders in metadata files during the build.

Supported files

  • fabric.mod.json
  • META-INF/mods.toml
  • META-INF/neoforge.mods.toml
  • pack.mcmeta
  • *.mixins.json

JSON files (fabric.mod.json, pack.mcmeta, *.mixins.json) have newlines escaped as \\n. TOML files (mods.toml, neoforge.mods.toml) are expanded as-is.

Available variables

VariableSourceExample
versionmetadata.version1.0.0
groupmetadata.groupcom.example
minecraft_versionversion block1.21.1
mod_namemetadata.nameMy Mod
mod_authormetadata.authors (joined)Alice, Bob
mod_idmetadata.modIdmymod
licensemetadata.licenseMIT
descriptionmetadata.descriptionA mod.
java_versiondetected or override21
creditsmetadata.credits (joined)Charlie
fabric_loader_versionfabric.loaderVersion0.16.2
fabric_versionfabric.apiVersion0.102.1
neoforge_versionneoforge.loaderVersion21.1.26
neoforge_loader_version_rangeneoforge.loaderVersionRange[4,)
forge_versionforge.loaderVersion47.2.0
forge_loader_version_rangeforge.loaderVersionRange[47,)

Loader-specific variables are only available in subprojects for that loader. For example, fabric_loader_version is only set in Fabric subprojects.

Example

fabric.mod.json

{
"schemaVersion": 1,
"id": "${mod_id}",
"version": "${version}",
"name": "${mod_name}",
"description": "${description}",
"authors": ["${mod_author}"],
"license": "${license}",
"depends": {
"fabricloader": ">=${fabric_loader_version}",
"minecraft": "${minecraft_version}"
}
}

META-INF/neoforge.mods.toml

modLoader = "javafml"
loaderVersion = "${neoforge_loader_version_range}"

[[mods]]
modId = "${mod_id}"
version = "${version}"
displayName = "${mod_name}"
description = "${description}"
authors = "${mod_author}"
license = "${license}"