Variable Substitution
Stonecraft helps with variable substitution in your resources.
It hooks into the ProcessResources task and replaces the variables in your resources with the values you set in your build.gradle[.kts] file.
Check the configuration for more information on how to set this up.
Example
This is an example of a fabric.mod.json file that uses variable substitution.
{
"schemaVersion": 1,
"id": "${id}",
"version": "${version}",
"name": "${name}",
"description": "${description}",
"authors": [],
"contact": {},
"environment": "*",
"entrypoints": {
"main": [
"${group}.${id}.ExampleMod"
]
},
"depends": {
"fabricloader": "*",
"fabric-api": ">=${fabricVersion}",
"minecraft": ">=${minecraftVersion}"
}
}
Files
All json, toml, and mcmeta files in your resources are automatically included for variable substitution.
Language files
Language files within the assets folder are the only exceptions because Minecraft translations use a variable substitution system of their own
which is not compatible with gradle's variable substitution.
Default Variables
These are the variables that are available for you to use in your resources without any additional settings.
id
The mod ID of your mod. This is the same as the mod.id property in your settings.gradle[.kts] file.
name
The name of your mod. This is the same as the mod.name property in your settings.gradle[.kts] file.
group
The group of your mod. This is the same as the mod.group property in your settings.gradle[.kts] file.
description
The description of your mod. This is the same as the mod.description property in your settings.gradle[.kts] file.
version
The version of your mod. This is the same as the mod.version property in your settings.gradle[.kts] file.
minecraftVersion
The Minecraft version of your mod. This is the resolved Minecraft version for the gradle task you are running.
packVersion
The pack version of your mod. This is the resource pack version belonging to the Minecraft version you are using. It's supplied by Stonecraft.
fabricVersion
The Fabric API version of your mod. This is the same as the fabric_version
property in your versions/dependencies/[MinecraftVersion].properties file.
forgeVersion
The Forge version of your mod. This is the same as the forge_version
property in your versions/dependencies/[MinecraftVersion].properties file.
neoforgeVersion
The NeoForge version of your mod. This is the same as the neoforge_version
property in your versions/dependencies/[MinecraftVersion].properties file.