Skip to content

Immersive Engineering

roidrole edited this page May 31, 2026 · 13 revisions

The official IE CT support lacks a few features. This aims to fix this.

Features :

Arc Furnace

Import :

import mods.immersiveengineering.ArcFurnace;
Method Parameters Description
addRecycling ingredient as IIngredient Adds the ingredient to the recycling whitelist. IE will add its default recipes afterwards
removeRecyclingOutput IIngredient ingredient Prevents any recycling recipe which would have this output

Blueprint

Import :

import mods.immersiveengineering.Blueprint;
Method Parameters Description
getRegisteredBlueprints [None] Returns a string[] containing all registered blueprint types.
addBlueprint type as string Adds a blueprint. addRecipe already does this if required, this method is for getRegisteredBlueprints
addVillagerTrade category as string, price as IItemStack Adds a blueprint for this category to the list that IE's villager can sell

I'll also mention here that the translationKey for blueprints is desc.immersiveengineering.info.blueprint.[Blueprint's Name]. It will fall back to the blueprint's raw type.

BulletBuilder

Import :

import mods.roidtweaker.immersiveengineering.BulletBuilder;

Used to build a bullet to use with the revolver and, optionally, the turret.

All methods in this class should be called during #loader preinit or #loader contenttweaker.

You can get a new builder by calling:

BulletBuilder.get(name as string);

This returns a new BulletBuilder. You can set the following parameters (they are only available with the functions below, no .prop = value)

The only mandatory property to set is the textures, with setTextures.

Method Parameters Type Description
setTextures string[]
setCasing IItemStack The stack that will be returned after shooting the bullet
setTickLimit int Time in ticks before the bullet disapears
setMovementDecay float Should be between 0 and 1
setGravity float Should be between 0 and 1
setBulletAmount int The amount of bullets fired at once, like the buckshot
setValidForTurret bool
setProperCartridge bool
setColor layer as int, color as int
setColorNBT layer as int, tag as string
impactEntity function(world as IWorld, target as IEntity, shooter as IEntityLivingBase, bullet as IEntity, headshot as bool) as void A function called on entity impact
impactBlock function(world as IWorld, pos as IBlockPos, sidehit as IFacing, shooter as IEntityLivingBase, bullet as IEntity, headshot as bool) as void A function called on block impact
onFired function(shooter as IPlayer, cartridge as IItemStack, projectile as IEntity, charged as bool) as void A function called when firing the gun

Once you are done setting your parameters, don't forget to call

myBulletBuilder.build();

Excavator Expansion

Import :

import mods.immersiveengineering.Excavator;
Method Parameters Description
getRegisteredMinerals [None] Returns a List<MineralMix> containing all registered minerals.
removeAllMinerals [None] Removes all registered Minerals

Garden Cloche

In addition to the CT support, there is a command to print all crops or liquid fertilizers : /ct gardencloche [fluidFertilizers or crop]

Import :

import mods.roidtweaker.immersiveengineering.GardenCloche;
Method Parameters Description
addFertilizer fertilizer as IIngredient, multiplier as float Works with any IIngredient, including ILiquidStack and ItemConditions
addFertilizer fertilizer as IIngredient, multiplier as GardenClocheMultiplierFunction IE will call this function when it needs the multiplier. its first parameter is always IItemStack or ILiquidStack
RemoveFertilizer fertilizer as IIngredient fertilizer must be convertible to List or List. Loops through the list and removes all FertilizerHandlers matching this stack
clearFertilizers @Optional Boolean restrictionReadWiki if false, only fluids ; if true, only items ; if unspecified, both
listAllFluidFertilizers [None] Returns a List containing fluidFertilizers. Kept for ZenCloche parity. Do not call this in your scripts.
listAllCrops [None] Returns a List containing crops. Kept for ZenCloche parity. Do not call this in your scripts.
addPlantHandler type as string You can add a plant handler. Not sure why you would want to do that.
addCrop type as string, seed as IIngredient, drops as IItemStack[], @Optional soil as IIngredient, @Optional display as IBlock Default registered types are "crop", "stem" and "stacking", default soil is dirt, default display is crop
addCrop type as string, seed as IIngredient, drops as IItemStack[], soil as IIngredient, display as IBlockState Same, but you can specify the blockstate instead of having the block's default state
removeCrop crop as IIngredient, @Optional type as string If type is unspecified, will be removed from all types having this seed.
setSoilTexture soil as IIngredient, texture as string Supports IOreDictEntry and IItemStack. The texture string should have the format namespace:path

GardenClocheMultiplierFunction

Import :

import mods.roidtweaker.immersiveengineering.GardenClocheMultiplierFunction;

Is really just a function(fertilizer as IIngredient, seed as IItemStack, soil as IItemStack) as float.
Exists solely so you can specify "as GardenClocheMultiplierFunction" because CT has trouble finding the type

IChemBlockEffect

Import :

import mods.roidtweaker.immersiveengineering.IChemBlockEffect;

For use with IEGuns.

Really just a wrapper for a function(world as IWorld, pos as IBlockPos, facing as IFacing, entityPlayer as IPlayer, itemStack as IItemStack, fluid as ILiquidStack) as void.
Exists solely so you can specify "as IChemBlockEffect" because CT has trouble finding the type

IChemEntityEffect

Import :

import mods.roidtweaker.immersiveengineering.IChemEntityEffect;

For use with IEGuns.

Really just a wrapper for a function(target as IEntityLivingBase, shooter as IPlayer, thrower as IItemStack, fluid as ILiquidStack) as void.
Exists solely so you can specify "as IChemEntityEffect" because CT has trouble finding the type

IEGuns

Import :

import mods.roidtweaker.immersiveengineering.IEGuns;

Allows adding ammunition to the Chemical thrower and to the Railgun with configurable damage and effect. You can also override default behavior

Method Parameters
addChemthrowerEffect ILiquidStack liquid, boolean isGas, boolean isFlammable, String source, float damage
addChemthrowerEffect ILiquidStack liquid, boolean isGas, boolean isFlammable, String source, float damage, IPotionEffect[] effects
addChemthrowerEffect ILiquidStack liquid, boolean isGas, boolean isFlammable, IChemEntityEffect entityEffect, IChemBlockEffect blockEffect
addRailgunBullet IIngredient item, float damage, float gravity, int[][] colorMap
addRailgunBullet IIngredient item, float damage, float gravity, IRailgunImpact effect, int[][] colorMap

IRailgunImpact

Import :

import mods.roidtweaker.immersiveengineering.IRailgunImpact;

For use with IEGuns.

Really just a wrapper for a function(target as IEntity, shooter as IEntity) as bool

IWorld Expansion

Import :

import crafttweaker.world.IWorld;
Method Parameters Return Type Note
getMineralMix pos as IBlockPos MineralMix
setMineralMix pos as IBlockPos, mix as MineralMix void
getMineralMap [None] MineralMix[][IBlockPos] For compat with MineralMixTweaker. Prefer using the above methods

Metal Press Expansion

Allows NBT-sensitive recipes

Import :

import mods.immersiveengineering.MetalPress;
Method Parameters
addRecipeNBT output as IItemStack, input as IIngredient, mold as IItemStack, energy as int

Mineral Mix Expansion

Import :

import mods.immersiveengineering.MineralMix;
Method Parameters ReturnType
toString [None] Returns the name of the MineralMix. Also a ZenCaster
printRegisteredMinerals [None] void
setWeight weight as int void
setDimensionWhitelist list as int[] void
setDimensionBlacklist list as int[] void
getWeight [None] int
getOres [None] WeightedOreDictEntry[]
getDimensionWhitelist [None] int[]
getDimensionBlacklist [None] int[]

Slag Replacer

Allows easy replacement of slag in Blast Furnace and Arc Furnace recipes (all default IE recipes with slag)

Import :

import mods.immersiveengineering.SlagReplacer;
Method Parameters Description
setSlag slag as IItemStack, @Optional filter as IIngredient, @Optional filterBy as String Filter defaults to <*> ; filterBy accepts OUTPUT and SLAG, defaulting to OUTPUT. Loops through all registered recipes, testing them against the filter and editing the recipe if needed

Clone this wiki locally