Project

Your mod doesn't break

A Crafting mod has to keep working when Minecraft updates and when Crafting updates. This page says what is guaranteed and what you need to do to benefit from it.

What is guaranteed

Everything public in the Kotlin and Java API, and every CraftScript keyword, built-in function and event name. The internals of Crafting (how it loads mods, how it hooks into the game) can change in any version; your mod doesn't see them and doesn't need them.

Why game updates don't break it

Your mod never touches Minecraft's code. When a new game version moves or renames something, Crafting changes internally which part of the game each API function calls. The function your mod uses keeps the same name and does the same thing.

Today Crafting works with Minecraft Java 26.3. Each new game version is added in full: either an API function works on that version, or the version isn't considered supported.

Four rules

  1. Things are added, not changed. A new parameter comes with a default value, so existing calls stay valid. New behaviour comes with a new name.
  2. Replacements come with a warning. When there is a better way to do something, the old one is marked as deprecated, says what to use instead and keeps working exactly the same, at least until the next major version. Your editor shows it struck through.
  3. Things are only removed in a major version, the one that changes the first number of the Crafting version. It's announced in the release notes, with the replacement for each item.
  4. Nothing is faked. If a function can't work in the game that is running, it gives a clear error. It never returns a made-up value that makes the mod think everything went fine.

What it means for you

  • Updating Crafting never forces you to change your mod, except in a major version, and then you'll know exactly what to change.
  • When something you use shows up as deprecated, you have time: change it when it suits you, before the next major version. The documentation always shows the current way.
  • If a mod needs something your version of Crafting doesn't have yet, Crafting says so when loading it instead of half-loading it.
  • Don't import net.minecraft classes in a Kotlin or Java mod: that part has no guarantee at all.
  • Avoid run_command and summon with game data: they accept Minecraft formats, which do change. If you need them for something, the API is missing a function; ask for it.

If something fails

  • An error in an event or a command is logged with the mod's name and the rest of the server keeps running.
  • A script with type errors doesn't load, and the message gives the file, the line and what it expected.
  • A .jar mod that is missing a dependency or needs a newer Crafting version doesn't load, and Crafting reports every problem at once with a suggestion for each.