The Best Resource for Minecraft
The Best Resource for Minecraft

Ender Tweaker Mod Wiki

A comprehensive integration mod for Minecraft that enables full customization of Ender IO machine recipes, fuels, and mechanics through CraftTweaker ZenScript.

10 sections · 972 words

Overview#

The Ender Tweaker Mod is a specialized utility for Minecraft designed to bridge the gap between Ender IO and CraftTweaker. While Ender IO provides a robust set of industrial machines, its native recipe system is often difficult to modify via standard configuration files. Ender Tweaker exposes these internal machine registries to ZenScript, allowing modpack creators to add, remove, or modify recipes for the Alloy Smelter, SAG Mill, The Vat, and more.

This mod does not add new blocks, items, or mobs of its own; instead, it serves as a functional layer that grants absolute control over how Ender IO's existing infrastructure processes materials. It is an essential tool for expert-style modpacks where progression requires tightly controlled resource processing.

General Mechanics#

All scripts for Ender Tweaker must be written in .zs files within the scripts folder of your Minecraft instance. The mod uses the mods.enderio handler to interact with specific machines.

Energy and Experience

Most machine methods include optional parameters for energyCost (measured in Forge Energy/FE) and xp (experience points granted upon completion). If these are not specified, the mod typically defaults to a standard value (often 5,000 FE) to ensure compatibility with Ender IO's power systems.

Ingredient Handling

Ender Tweaker supports standard CraftTweaker IIngredient and IItemStack types. For machines like the Alloy Smelter, multiple inputs are handled as arrays (e.g., [<item:minecraft:iron_ingot>, <item:minecraft:coal>]).

Alloy Smelter#

The Alloy Smelter is used to combine up to three items into a single output. It can also function as a standard furnace if configured.

Package: mods.enderio.AlloySmelter

Adding Recipes

mods.enderio.AlloySmelter.addRecipe(IItemStack output, IIngredient[] input, @Optional int energyCost, @Optional float xp);
Parameter Type Description
output IItemStack The resulting item.
input IIngredient[] Array of 1 to 3 ingredients.
energyCost int FE required (Default: 5000).
xp float Experience granted (Must be non-negative).

Removing Recipes

  • By Output: mods.enderio.AlloySmelter.removeRecipe(IItemStack output); removes all recipes resulting in the specified item.
  • By Input: mods.enderio.AlloySmelter.removeByInputs(IItemStack... input); removes recipes matching the specific input combination.

SAG Mill#

The SAG Mill (Suspended Air Grinder) processes items into multiple outputs with varying probabilities. It is heavily influenced by Grinding Balls.

Package: mods.enderio.SagMill

Adding Recipes

There are two ways to define SAG Mill outputs: using separate arrays for items and chances, or using WeightedItemStack.

mods.enderio.SagMill.addRecipe(IItemStack[] output, float[] chances, IIngredient input, @Optional String bonusType, @Optional int energyCost, @Optional float[] xp);

Bonus Types:

  • "NONE": No bonus from Grinding Balls.
  • "MULTIPLY_OUTPUT": Grinding balls can increase the output chance beyond 100%.
  • "CHANCE_ONLY": Grinding balls increase chance but cap it at 100%.

Removing Recipes

  • By Input: mods.enderio.SagMill.removeRecipe(IItemStack input); removes the recipe associated with the provided input item.

The Vat#

The Vat is a complex fluid processor that uses multipliers to determine output volume based on the combination of fluids and solid catalysts.

Package: mods.enderio.Vat

Calculation Logic

The Vat uses a multiplier system rather than fixed amounts:

  1. Input Fluid Used: slot1Mult * slot2Mult * 1000mB
  2. Output Fluid Created: inMult * slot1Mult * slot2Mult * 1000mB
  3. Ratio: The ratio of input to output fluid is equal to inMult.

Adding Recipes

mods.enderio.Vat.addRecipe(ILiquidStack output, float inMult, ILiquidStack input, IIngredient[] slot1Solids, float[] slot1Mults, IIngredient[] slot2Solids, float[] slot2Mults, @Optional int energyCost);

Removing Recipes

  • By Output: mods.enderio.Vat.removeRecipe(ILiquidStack output); removes recipes producing the specified fluid.

Soul Binder#

The Soul Binder transfers souls from Soul Vials into items to create specialized components like Powered Spawners.

Package: mods.enderio.SoulBinder

Adding Recipes

mods.enderio.SoulBinder.addRecipe(IItemStack output, IIngredient input, String[] entities, int xp, @Optional int energyCost);
Parameter Type Description
entities String[] Array of entity resource locations (e.g., ["minecraft:zombie", "minecraft:skeleton"]).
xp int The cost in player experience levels.

Removing Recipes

  • By Output: mods.enderio.SoulBinder.removeRecipe(IItemStack output);

Slice'n'Splice#

The Slice'n'Splice uses biological components and tools (Axes and Shears) to create advanced items like Sentient Chassis.

Package: mods.enderio.SliceNSplice

Adding Recipes

mods.enderio.SliceNSplice.addRecipe(IItemStack output, IIngredient[] input, @Optional int energyCost, @Optional float xp);
  • Note: The input array must contain between 1 and 6 ingredients. The machine's internal tool slots are handled automatically by Ender IO's logic, but the ingredients provided here represent the items consumed from the input grid.

Removing Recipes

  • By Output: mods.enderio.SliceNSplice.removeRecipe(IItemStack output);

Combustion Generator#

Unlike other machines, the Combustion Generator does not have "recipes." Instead, it uses a registry of Fuels and Coolants.

Package: mods.enderio.CombustionGen

Fuel Management

  • Add Fuel: mods.enderio.CombustionGen.addFuel(ILiquidStack fuel, int powerPerCycleRF, int totalBurnTime);
    • powerPerCycleRF: Energy generated per tick.
    • totalBurnTime: Total ticks one bucket (1000mB) lasts.
  • Remove Fuel: mods.enderio.CombustionGen.removeFuel(ILiquidStack fuel);

Coolant Management

  • Add Coolant: mods.enderio.CombustionGen.addCoolant(ILiquidStack coolant, float degreesCoolingPerMB);
    • degreesCoolingPerMB: How much heat 1mB of coolant absorbs before heating by 1 Kelvin.
  • Remove Coolant: mods.enderio.CombustionGen.removeCoolant(ILiquidStack coolant);

Enchanter#

The Enchanter allows players to create Enchanted Books using items and experience levels.

Package: mods.enderio.Enchanter

Adding Recipes

mods.enderio.Enchanter.addRecipe(IEnchantmentDefinition output, IIngredient input, int amountPerLevel, double costMultiplier);
Parameter Type Description
output IEnchantmentDefinition The enchantment to be applied to the book.
amountPerLevel int Number of input items required per level of the enchantment.
costMultiplier double Modifier for the XP cost.

Removing Recipes

  • By Output: mods.enderio.Enchanter.removeRecipe(IEnchantmentDefinition output);

Fluid Tank#

The Tank can be used to fill or empty fluid containers. Ender Tweaker allows you to define custom interactions for this block.

Package: mods.enderio.Tank

Adding Recipes

mods.enderio.Tank.addRecipe(boolean fill, IIngredient input, ILiquidStack fluid, IItemStack output);
  • fill: If true, the fluid is consumed from the tank to fill the item (e.g., Bucket + Water -> Water Bucket). If false, the fluid is added to the tank from the item (e.g., Water Bucket -> Bucket + Water in tank).

Removing Recipes

  • Remove: mods.enderio.Tank.removeRecipe(boolean fill, ILiquidStack fluid, IItemStack output);