How to Use MineTweaker 2

This guide is in its original form, and was written by SatanicSanta. For MineTweaker 3, see the MineTweaker 3 Guide

Prerequisite
Before you can write any MineTweaker scripts, you must first install MineTweaker, and create a scripts directory in the minecraft directory. This should be at the same level as the mods and config directories. All scripts are written in files with the zs extension. The name of these files does not matter to the scripts or MineTweaker.

Defining an Item/Block
Defining an item or block before you configure is very helpful in keeping your configuration file neat and organized. It isn't required, but it makes reading it later much easier, and it makes writing multiple recipes with the same components much simpler. You can use the Ore Dictionary to do this. Example:

Iron=oreDict.ingotIron;

This would set anything that uses the Ore Dictionary entry of "ingotIron", to be called later as Iron. You can also use IDs. Example:

Iron= ;

This would set Item ID 265 to the name, Iron, to be called later in the configuration. This also works with metadata. Example:

RedstoneChip=<19373:2>;

This would set the Item ID 19373:2 to the name, RedstoneChip, to be called later in the configuration. Finally, you can simply use what the item is named within a mod. Example:

IC2Circuit=item.ControlCircuit;

This would set "item.ContolCircuit" to the name, IC2Circuit, to be called later in the configuration.

Crafting Table
Removing Crafting Table recipes is very simple with MineTweaker. This must be done before adding recipes, typically. First, you must define the item or block in which you want to remove, as shown above.

recipes.remove(IC2Circuit);

This will remove all crafting recipes for the item, IC2Circuit, which is defined above. You can also use item IDs. Item IDs must be inside of angled brackets. Example:

recipes.remove;

This will remove the recipes for item ID 265. You can also use metadata. Item IDs and metadata must be inside of angled brackets. Example:

recipes.remove(<19373:2>);

This will remove the recipes for item ID 19373:2. You can also use the Ore Dictionary. Example:

recipes.remove(oreDict.ingotIron);

This will remove all recipes that create an item or block that uses the Ore Dictionary entry of ingotIron. You can also specify whether you wish to remove all Shaped recipes, or all Shapeless recipes. Item IDs and metadata must be inside of angled brackets. Example:

recipes.removeShaped; recipes.removeShapeless(<19373:2>);

This will remove all Shaped recipes for ID 265, and all Shapeless recipes for 19373:2. You can use the Ore Dictionary, or the defined name as shown above. You can even remove a specific recipe. Example:

nuggetIron=oreDict.nuggetIron recipes.removeShaped(Iron, nuggetIron, nuggetIron, nuggetIron], [nuggetIron, nuggetIron, nuggetIron], [nuggetIron, nuggetIron, nuggetIron); recipes.removeShapeless(nuggetIron*9, [Iron]);

This code first defines the Iron Nugget as oreDict entry nuggetIron. Then, it removes the Shaped recipe for 9 Iron Nuggets = 1 Iron Ingot. Then, it removes the Shapeless recipe for 1 Iron Ingot = 9 Iron Nuggets. Note the usage of "*9".

Furnace
Removing Furnace recipes is as simple as removing Crafting Table recipes. All of the same rules apply, metadata, oreDict, IDs, and names are allowed. Example:

furnace.remove(Iron);

This will remove the furnace recipe for Iron, which is defined above. You can also specify which recipe to remove. Example:

furnace.remove(Iron, tile.oreIron);

This will remove the recipe for 1 Iron Ore = 1 Iron Ingot.

Crafting Table
Adding Crafting Table recipes with MineTweaker is very simple. All of the same rules apply: metadata, oreDict, IDs, and names are allowed. You must specify whether a recipe is Shaped or Shapeless. Item IDs and metadata must be inside of angled brackets. Example:

recipes.addShaped(Iron*8, nuggetIron, null, nuggetIron], [<19373:2>, <19373:2>, IC2Circuit], [null, null, null; recipes.addShapeless(nuggetIron*2, [tile.oreGold]);

This will add the following recipes:

You can also make recipes create damaged items. Example:

recipes.addShapeless(item.pickaxeWood.withDamage(1), [tile.oreGold]); recipes.addShaped(item.pickaxeWood.withDamage(1), Iron, item.ingotGold, null;

This adds two recipes, one Shaped, and one Shapeless. The Shapeless recipe means that a Gold Ore will create a damaged Wooden Pickaxe. The Shaped recipe means that an Iron Ingot to the left of a Gold Ingot in a Crafting Table will create a damaged Wooden Pickaxe. You can also make recipes use NBT tags, for enchantments, and other things that use NBT tags. Example:

silkPick = item.pickaxeWooden*1; silkPick.tag = { "RepairCost":2 "ench": [ { "id": 33 as short, "lvl": 1 as short } ] }; recipes.addShapeless(silkPick, [item.pickaxeWooden, item.netherStar]);

This code makes a Wooden Pickaxe and a Nether Star create a Wooden Pickaxe with the enchantment ID 33, or Silk Touch. This requires 1 level. The principle is the same for Shaped recipes.

Furnace
Adding Furnace recipes with MineTweaker is as simple as Crafting Table recipes, but not quite as flexible. All of the same rules apply: metadata, oreDict, IDs, and names are allowed.

furnace.addRecipe(Iron * 2, tile.oreGold);

This code adds a Furnace recipe of 1 Gold Ore = 2 Iron Ingots. You can also make the recipe give you experience. Example:

furnace.addRecipe(Iron * 2, tile.oreGold, 2.0);

This code adds the same recipe, only it gives you experience when you take it out of the furnace. You can also add and remove fuels. Example:

tile.oreGold.fuel = 20; item.coal.fuel = 0;

This will add a furnace fuel of Gold Ore. It will burn for 20 ticks, or 1 second. It will then remove the fuel of Coal, by setting it to have 0 ticks.

You can find more information on how to use the different functions and options on the MineTweaker wiki.