User:Arekusay-san/MineTweaker3

= MineTweaker3 =

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 ease-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 Execute

Comparison with MineTweaker 2
For those whom are already used to MineTweaker 2: the main concept is still the same and the basic functionality remains as it was. However, a lot of things have changed too:


 * Everything now uses the angled bracket syntax. Where you had to write tile.chest, you would now write  in MC 1.6.4 and  in MC 1.7.2+.
 * Ores use angled bracket syntax too. eg: 
 * Liquids use the same syntax (no more having to find liquids from containers): 
 * You can print a list of item and liquid names with /mt names and /mt liquids
 * All output is now sent to minetweaker.log. No more scanning the development log unless you need stack traces due to bugs in minetweaker. Errors and warnings are still reported.
 * The scripting engine will now attempt to continue executing the script if there is an error. On the flipside, this may cause more errors due to one error generating another.
 * There are no more scripts in the config directory. There are no more local scripts. Everything is defined server-side and always sent to connected clients, no exceptions. Instead, there is a global script directory (applicable to all worlds hosted on that minecraft instance) in /scripts and a per-world script directory in the savegame/scripts directory. The empty directories are automatically generated when you open the game or world. Per-world scripts can override the contents of a global script.
 * The reload command has been improved. You can always reload, but some recipes may be stuck. These will be reported. There is no more force quitting minecraft, but a restart may still be required if you want to clear those old recipes. Errors no longer break the reload function.
 * Item names are now per item and should now work properly in all cases.
 * Mod support is still missing - only NEI and IC2 are supported, and IC2 is not yet supported in 1.6.4. The past mods will be ported in a subsequent release.
 * Recipe ingredients can now have conditions. A condition may be a minimum/maximum damage value or a specific NBT tag.

Tutorials (1.7.X)

 * Lesson 1: Introduction
 * Lesson 2: Basic Recipes
 * Lesson 3: Ore Dictionary
 * Lesson 4: Furnace
 * Lesson 5: Advanced Recipes
 * Lesson 6: Item Renaming
 * Lesson 7: Tooltips
 * Lesson 8: Loot and seeds
 * Lesson 9: Loops
 * Lesson 10: Localization

Tutorials (1.6.4)

 * Lesson 1: Introduction
 * Lesson 2: Basic Recipes
 * Lesson 3: Ore Dictionary
 * Lesson 4: Furnace
 * Lesson 5: Advanced Recipes
 * Lesson 6: Item Renaming
 * Lesson 7: Tooltips
 * Lesson 8: Loot and seeds
 * Lesson 9: Loops
 * Lesson 10: Localization

Mod Support

 * BetterStorage: BetterStorage Support
 * Blood Magic: Blood Magic Support
 * BuildCraft: BuildCraft Support
 * GregTech: GregTech Support
 * Harvest Festival: Harvest Festival Support
 * IC2: IC2 Support
 * Immersive Engineering: Immersive Engineering Support
 * Magneticraft: Magneticraft Support
 * MineFactory Reloaded: MFR Support
 * NEI: NEI Support
 * Tinkers' Steelworks: Tinkers' Steelworks Support
 * Witching Gadgets: Witching Gadgets Support


 * Additional Support: ModTweaker


 * Additional Content: ContentTweaker

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.

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 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
Changelog

Planned Versions

Credits
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