Published metadata per Minecraft version lives on branches mc/<mcVersion>.
This repository is updated by the harvester action in uebliche/mcmeta-harvest.
Two convenience branches exist:
latest(newest release from Mojang manifest)latest-snapshot(newest non-release, including snapshots/betas)
Proxy branches (Velocity):
proxy/velocity-<api>proxy/velocity-latest
Proxy branches (BungeeCord):
proxy/bungeecord-<api>proxy/bungeecord-latest
The web viewer now lives in the uebliche docs under /mcmeta/viewer.
A small Gradle plugin is available in gradle-plugin/. It loads mcmeta
versions and exposes them as Gradle extra properties.
The includeBuild("gradle-plugin") line only points Gradle at the local
plugin build. The plugin ID is still net.uebliche.mcmeta.
Example settings.gradle.kts:
pluginManagement {
includeBuild("gradle-plugin")
}Example build.gradle.kts:
plugins {
id("net.uebliche.mcmeta")
}
mcmeta {
minecraftVersion = "1.21.4"
}
dependencies {
val fabricLoader = extra["mcmetaFabricLoaderVersion"] as String?
val yarnMappings = extra["mcmetaYarnVersion"] as String?
val paperBuild = extra["mcmetaPaperVersion"] as String?
val velocityVersion = extra["mcmetaVelocityVersion"] as String?
val foliaBuild = extra["mcmetaFoliaVersion"] as String?
val jdk = extra["mcmetaJdkVersion"] as Int?
// use versions in your dependencies
}Enable repository and dependency wiring explicitly in the extension:
mcmeta {
minecraftVersion = "1.21.4"
repositories {
all()
}
dependencies {
enabled = true
fabricLoader = true
fabricApi = true
neoForge = true
paperApi = true
velocityApi = true
velocityAnnotationProcessor = true
}
}Override dependency configurations if your project uses custom names:
mcmeta {
dependencies {
enabled = true
fabricLoader = true
configurations {
fabricLoader = "modImplementation"
fabricApi = "modImplementation"
paperApi = "compileOnly"
velocityApi = "compileOnly"
velocityAnnotationProcessor = "annotationProcessor"
}
}
}Platform examples live in:
examples/platforms
Enable Manifold preprocessor support to get numeric symbols for all Mojang
versions (including snapshots) and a MC_VER value for the requested
Minecraft version. This allows expressions like:
#if MC_VER >= MC_1_20_5
// code for 1.20.5+
#endifGradle example:
mcmeta {
minecraftVersion = "1.21.4"
enableManifoldPreprocessor = true
// optional override
// manifoldPreprocessorVersion = "2025.1.22"
}The same workflow also publishes to GitHub Packages:
https://maven.pkg.github.com/uebliche/mcmeta- Uses
GITHUB_TOKENwithpackages:writepermission.
To consume via Gradle Plugin DSL, add the repo in settings.gradle.kts:
pluginManagement {
repositories {
maven {
url = uri("https://maven.pkg.github.com/uebliche/mcmeta")
credentials {
username = System.getenv("GITHUB_ACTOR")
password = System.getenv("GITHUB_TOKEN")
}
}
gradlePluginPortal()
}
}