Welcome to the MineTweaker 3 wiki! The aim of MineTweaker is to provide modpack creators, server administrators and map makers with the capability of customizing Minecraft without having to write a custom mod for it. All functionality is provided through an easy-to-use scripting language. (no prior knowledge or programming experience required!)

Using MineTweaker, you can...

  • Add and remove any crafting recipe
  • Add and remove mod machine recipes for supported mods
  • Modify the ore dictionary

Additionally, all scripts are sent from server to client, and thus only need to be stored server-side. They can be altered and reloaded without having to restart anything.

Forge Mods can also execute scripts in MineTweaker. Mod Script Execution

Tutorials (1.7.X)

Link to tutorials-17x

Tutorials (1.6.4)

Link to tutorials-164

Known Incompatibilities

Link to known-incompatibilities

  • CraftingManager isn't compatible - crafting recipes can't load properly upon starting a game. (A manual reload does fix this, though, but it's not very practical)
  • Some of the Sync recipes don't get modified properly. A manual reload fixes this. The issue is most likely due to Sync changing its own recipes depending on the server configuration, after MineTweaker did its work.

If you encounter any other incompatibilities, let me know, so I can add them to the list and save modpack authors a lot of time.

Although these mods should be compatible, it is not allowed to change RotaryCraft, ReactorCraft, ElectriCraft and ChromatiCraft recipes, or add recipes that modify the tech tree. The mod author, Reika, has explicitly stated that such modifications are forbidden.

The following wiki pages provide useful references:

Extending MineTweaker

Link to extending-minetweaker

More than ever before, you can extend MineTweaker with your own functionality.

There are various things you can do:

  • You can register global variables with minetweaker.MineTweakerAPI.registerGlobalSymbol(IZenSymbol). Use MineTweakerAPI.getJavaStaticGetterSymbol to get a static getter symbol or MineTweakerAPI.getJavaStaticFieldSymbol to get a static field symbol.
  • You can register bracket handlers with minetweaker.MineTweakerAPI.registerBracketHandler(IBracketHandler). Bracket handlers can make it possible to create your own namespace for items/things in specific mods. See the minetweaker.mc17.brackets package for example implementations.
  • You can register custom classes with minetweaker.MineTweakerAPI.registerClass. Classes must have either a @ZenClass or @ZenExpansion annotation. Classes can be imported and called (handy for mod machines) and expansions can extend existing types (see minetweaker.data for examples, as well as minetweaker.item.IItemStack)
  • In large projects, you can use the gradle RegisterZenClassesTask (see GitHub source in buildSrc) to generate a class containing a list of all registerable classes in your project. You can then submit the class name to MineTweakerAPI to make it register all those classes. All MineTweaker subproject use this system, so read those gradle build scripts to see how it's done. (or contact me)

Changelog & Planned Versions

Link to changelog--planned-versions

Me (Stan Hebben) as mod creator. Thanks to Jaredlll08 for helping me fix bugs and get that 1.8 version going!

All those who reported bugs on GitHub, for otherwise I'd not be able to fix them.

The beta testers: Ravin6666, Peach774, AnodeCathode, Dyonovan, Joshiejack