Minecraft changes. Your mod doesn't.
Crafting is a modding platform for Minecraft Java 26.3. You write in CraftScript, Kotlin or Java against the Crafting API, never against the game’s code.
Three layers. Only one changes.
Your mod only talks to Crafting. Crafting translates every call to the version of the game that is running. When Minecraft changes, the middle layer is what gets updated.
Simulated Minecraft version:26.3
The game rebuilds underneath. Your mod stays the same file.
What exists in the API never disappears, new things are added without breaking anything, and if something can’t be done you get a clear error, never a made-up value. How that promise is kept
This is your mod. The rest is on us.
What your mod can do today
In CraftScript and in Kotlin or Java, with the same API. Striped words are on the way. Roadmap
A tidy mod maintains itself
Each file does one thing and its name says which. What exists is kept apart from what happens, so you change one part without breaking another. This is the example mod, open it. Guide: organizing a mod
mods/rubies/
Only declares the mod and lists its parts. Reading it tells you what there is and where.
mod "rubies" { name: "Rubies", version: "1.0.0", author: "you" }
// What exists
import "content/items"
import "content/ores"
import "content/world"
import "content/dimensions"
import "content/creatures"
import "content/sounds"
import "content/particles"
import "content/recipes"
// What happens
import "events/mining"
import "events/hunting"
import "events/welcome"
import "commands/realm"
import "commands/rubies"
import "commands/shop"Four commands and you’re in
The sandbox is a simulated server with the same API as the game: you test your mod without opening Minecraft. Your first mod, step by step
./gradlew :crafting-cli:installDist # builds Crafting
crafting install --mc 26.3 # adds the "Crafting 26.3" profile to the launcher
crafting new rubies # creates a CraftScript mod, already organized
crafting sandbox rubies # tests it on a simulated server