GT5-Unofficial
2572 merged pull requests.
Needs action on an existing world:
- [items disappear] #4769 The Slicer machines are removed. Their recipes (cookies, sliced bun, bread and baguette, chips, fries, sliced lemon, tomato and cheese) now run in the Cutting Machine, still with the Slicer Blade shape. The LV Cutting Machine gets a second slot, and the Industrial Cutting Machine no longer has a separate mode GUI.
A placed Slicer becomes a dead block and a held one an unusable item. Replace every Slicer with a Cutting Machine, and take its Slicer Blade out, before updating.- [read before updating] #4970 PCB Factory upgrades are now separate multiblocks, the PCB Bio Chamber and the PCB Cooling Tower. Each one is linked to a PCB Factory with a data stick, like the waterline modules. Both are crafted in the Assembly Line at UV.
Your PCB Factory keeps its shape and does not have to come down, and a bio upgrade or cooling tower that was working in 2.8.4 goes on working in a compatibility mode. The old cooling tower is still checked as part of the factory, so tearing it down stops the whole factory from forming; to switch to the standalone Cooling Tower and Bio Chamber, break and replace the controller first, which ends compatibility mode and the old bio upgrade, then link the new multiblocks with a data stick.- [rebuild required] #4982 The High Temperature Gas-Cooled Reactor (HTGR) is reworked and retiered to IV. It runs slower the more pellets are inside, needs at least 10% of its helium capacity, and uses between 0.2A and 8A IV depending on helium level. It can now breed osmium, indium, fissile materials, promethium, praseodymium and lanthanum. Promethium is now only available from the HTGR, and gates new alternative Europium and Americium fusion recipes. The Extreme Heat Exchanger controller now shows MarCe200 instead of MAR200.
You have to rebuild your old HTGR. The reactor is a completely new and much larger structure made from casings that did not exist in 2.8.4, so take the old one down and build the new one from the NEI preview when you get there. It now runs at IV instead of LuV, needs a helium loop that slowly leaks, and takes new TRISO fuel. Your old pebbles stay in your inventories, but only Burned out TRISO Pebbles can still be centrifuged back down; fresh TRISO and BISO fuel has no recipe left, and fuel left inside the old controller cannot be emptied back out.- [recipes changed] #5137 IV components in the Component Assembly Line now need an integrated circuit, as LuV and above already did. Field Generators now use circuit 8 instead of no circuit, so they no longer conflict with other recipes in the machine. Running setups need the right circuit in their input.
In the Component Assembly Line, IV component setups now need the same programmed circuit as LuV and above: 1 Motor, 2 Piston, 3 Pump, 4 Robot Arm, 5 Conveyor, 6 Emitter, 7 Sensor. Field Generators of every tier now need circuit 8.- [items disappear] #5244 Sir Mixalot [Jukebox] is removed. It had been deprecated for 6 years, so any left in a world will disappear.
Pick up any Sir Mixalot [Jukebox] and its contents before updating.- [items disappear] #5247 The Deprecated ULV Simple Washer is removed. It had been deprecated for 2 years and had no recipe, and the Simple Washer I replaces it. Its achievement is also removed.
Replace any ULV Simple Washer with a Simple Washer I before updating.- [items disappear] #5248 The deprecated EV, IV, LuV, ZPM and UV Radio Hatches, which had no crafting recipe left, are removed. A placed one stays as a dead block, and any radioactive material inside it can no longer be taken out. The HV Radio Hatch stays and keeps its recipe.
Empty any EV, IV, LuV, ZPM or UV Radio Hatch and replace it with the HV Radio Hatch before updating. After the update a multiblock using one loses that hatch, and held ones become unusable items.- [recipes changed] #5278 The Electrolyzed Water Cell is no longer made or used in any GT recipe. A Water Cell and 2 Empty Cells now electrolyze directly into 2 Hydrogen Cells and 1 Oxygen Cell in 1 minute 40 seconds at 30 EU/t.
Remove any setup that makes Electrolyzed Water Cells and feed Water Cells straight into the Electrolyzer.- [check your build] #5320 The Drone Centre GUI is ported to MUI2 and its sync logic is rewritten. The old "Out of range" display came from only syncing machines in the client's line of sight, and that no longer applies. It adds custom machine grouping, a connection key, machine filtering, cross-dimension connections, a production panel, a Drone Remote Interface item and a T3 drone.
Check your Drone Centres after updating: the links re-establish themselves and the old "out of range" bug is fixed, but any custom name you gave an individual drone connection is dropped and needs retyping.- [read before updating] #5595 Removes the duplicate Zirconium material registered by the lanthanides addon. Old worlds that still hold this Zirconium lose it. The author expects the quantities to be small.
This only matters if your world is very old. The deprecated duplicate Zirconium material is gone; it could not be obtained at all in 2.8.4, so only worlds carried over from several versions back can hold any. Those dusts and ingots become nameless unusable stacks rather than being cleanly removed. The real Zirconium is untouched.- [rebuild required] #5608 The Algae Pond has its own NEI recipe page now, and the tier shows in the scanner. The in-world casing texture and the sterile casing count shown in the structure hint (exactly 64) are fixed. The minimum casing count went from 64 to 75 and parallels went from 2 to 1, so check existing ponds still form and produce as expected.
The Algae Pond floor now needs at least 75 machine casings, up from 64, and that applies to the old controller you already have standing. The floor has only 80 usable positions and hatches do not count, so a pond with more than five hatches or buses unforms on load; take the extras out or rebuild it. Parallels also drop from 2 to 1. Both controllers are called Algae Farm in game.- [items disappear] #5646 The Basic, Advanced and Master Tool Casting Machines (MV, HV, EV) are removed from the game. They were deprecated in 2.8 and their recipes already moved to the Fluid Solidifier. A placed one stays as a dead block that does nothing, and a stored one becomes an unusable item.
Empty any Tool Casting Machines and replace them with a Fluid Solidifier before updating; afterwards whatever is left inside one can no longer be taken out.- [items disappear] #5648 The Slicing Machine is removed in every tier, LV to IV and LuV to UMV, and the Industrial Cutting Factory loses its slicing mode. All slicing recipes, cheese included, now run in the Cutting Machine with the same slicer blades. A placed Slicing Machine stays as a dead block, and a stored one becomes an unusable item.
Replace Slicing Machines with Cutting Machines before updating, since a placed one stays behind as a dead block. The Cutting Machine and the Industrial Cutting Factory now run the slicing recipes.- [items disappear] #5650 The single-amp Wireless Dynamos are removed, ULV through MAX. They were deprecated in 2.8 and their crafting recipes were already gone. A placed one stays as a dead block, so a multiblock using it as its dynamo loses that output, and a stored one becomes an unusable item.
Replace any single-amp Wireless Dynamos with the multi-amp wireless dynamo hatches before updating; old ones stop working.- [items disappear] #5651 The deprecated Laser Source and Target Hatches are removed instead of just hidden. A placed one stays as a dead block, and a stored one becomes an unusable item.
The deprecated laser source and target hatches are removed from the game; any you have placed stay as dead blocks and any multiblock that used one will unform. Swap them for the current laser hatches before you update.- [world data] #5652 Crop and fertilizer content moves to CropsNH. IC2 Fertilizer references, the liquid fertilizer, the unused GT++ UN Fertilizers and the GT Crop Manager are removed. The Crop Manager is migrated automatically to the CropsNH one. The liquid fertilizer ID changes, so back up your world.
Crop Harvestors and the EV and higher Crop Gene Extractors, Synthesizers and Seed Replicators are converted to their CropsNH equivalents in place as your save loads. The LV, MV and HV Crop Gene Extractors and Crop Gene Synthesizers are deleted - placed ones turn to air and stacks turn to stone, so break and scrap them before you update.- [recipes changed] #5665 Adds 256A dynamo hatches for UV through UXV, so an Active Transformer no longer needs a wall of 64A hatches to get its power out. The existing multi-amp energy and dynamo hatches keep their recipe shape but swap their Silver, Electrum or Tungsten fluid for a tier-appropriate molten metal, EV through UXV.
The 256A dynamo hatches are new, so nothing to do there. The change to watch is the fluid swap on the existing 4A, 16A and 64A energy and dynamo hatches, EV through UXV: every stored crafting pattern for one of them now asks for the wrong fluid. Re-scan or re-make those patterns before you queue any.- [rebuild required] #5667 Void Miners no longer accept the old deprecated structure. A Void Miner of any tier still built to the old layout will stop forming and has to be rebuilt to its current structure.
Rebuild any Void Miner that still uses the old structure to the current one, following the controller's structure hologram.- [recipes changed] #5668 The Space-Time to Space and Time molten fluid recipe moves from the Forge Hammer to the Spinmatron heavy mode. It still takes a Tesseract and a Special Laser Lens at UXV for 10 seconds. In heavy mode the Spinmatron uses 16x the power.
The Forge Hammer recipe that splits molten SpaceTime into Space and Time is gone. It moved to the Spinmatron (new in 2.9.0) in Heavy mode, which needs Biocatalyzed Propulsion Fluid and 16x the EU of the other modes. Any Forge Hammer line feeding SpaceTime stalls until you build one.- [recipes changed] #5669 The Wire extruder mold and the White Dwarf Wire extruder mold are deprecated. Their tooltips now say they will be removed in the next major update, and no new one of either kind can be made: the White Dwarf Wire mold fluid solidifier recipe is gone, and NewHorizonsCoreMod removes the plain wire mold's recipes. The Kevlar Spinneret assembler recipe now takes a Rod extruder mold instead of a Wire mold.
The Kevlar Spinneret assembler recipe now takes 16 Extruder Shape (Rod) instead of 16 Extruder Shape (Wire) - fix that pattern. Wire molds you already own still work in the Extruder, but no new wire mold of either kind can be made, so keep the ones you have.- [world data] #5771 Fixes the Circuit Assembly Line imprint migration that was broken. Imprints and sliced circuits are now separate items per imprint instead of one item distinguished by NBT. Old imprints and sliced circuits show a red deprecation tooltip. Putting an old one in the crafting grid gives the matching new item.
CAL imprints and sliced circuits are now NBT-independent; place an old item in a crafting grid to convert it to the new meta-id linked version, and re-do any AE2 patterns or autocrafting that produced or consumed the old NBT imprints, since the new ones are different item metas.- [items disappear] #5819 The GT++ Project Table is removed. It was unfinished, and its crafting recipe and name are gone too. Any Project Table already placed or held in a world will disappear.
Take any Project Table out of your machines and storage before updating, because placed blocks and stacks are deleted.- [items disappear] #5820 Removes the Poo Collector machines and the poop line: Raw Animal Waste, Manure Slurry and Fertile Manure Slurry fluids, and the Manure Byproduct, Organic Fertilizer and Dried Earth dusts. Existing collectors, fluids and dusts disappear from worlds. The coal tar recipes no longer output small Dirt dust.
Remove Poo Collectors and any poop line items or fluids from your base before updating.- [items disappear] #5821 Removes the Pest Killer block and its assembler recipe. Existing Pest Killers disappear from worlds.
The Pest Killer no longer exists: placed machines disappear from an existing world.- [read before updating] #5833 Machine scanner output is rewritten: the owner and MetaTileEntity id lines now come first, and a line is emitted only when it applies. Later pull requests in this release (#7105 and its follow-ups) also send some lines, such as efficiency and pollution, as translation keys for the client to show in the reader's own language.
OpenComputers programs that read a GregTech machine's getSensorInformation() through an Adapter have to be checked: a line appears only when it applies, so indexes shift; on a multiblock the owner and Meta-ID lines come first; some lines (efficiency, pollution, and single-block machine lines) arrive as a translation key with its arguments, separated by two backslashes; numbers follow the system locale and switch to 1.23e12 form from a trillion up. getEUStored, getEUMaxStored, getWorkProgress and getWorkMaxProgress still return plain numbers.- [world data] #5860 GT5-Unofficial now depends on ChunkAPI and EndlessIDs, and NotEnoughIds is removed. The heating coil active-state rendering now goes through ChunkAPI. This needs the matching ChunkAPI, EndlessIDs and FalsePatternLib versions in the pack, and the PR says it breaks dailies until DAXXL is updated.
Back up the world, then remove NotEnoughIds and install the newest ChunkAPI, EndlessIDs and FalsePatternLib together with this version.- [optional rebuild] #5875 The Extreme Industrial Greenhouse has a new structure, made by HydroCN. Greenhouses placed before this change still check the old structure. If you break the controller and place it again, only the new structure is checked. Fertilized dirt is now tilled and water is placed automatically when the structure completes, and autoplace works.
Your Extreme Industrial Greenhouse keeps validating its old structure where it stands; there is no controller to swap. Break and re-place the controller and it will accept nothing but the new structure, so rebuild before you move one.- [optional rebuild] #5877 The Industrial Wire Factory is now a new controller with a reworked structure. Its speed depends on the item pipe casing tier: 50% at tier 1, then +50% for each tier up to 400% at the highest. The old controller is deprecated, the crafting recipe now gives the new controller, and a shapeless recipe converts the old one.
Your Industrial Wire Factory keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #5885 The Industrial Centrifuge is now a new controller with the structure from the contest. The old controller is deprecated and shows a DEPRECATED line in its tooltip. The crafting recipe gives the new controller, and a shapeless recipe converts the old one.
Your Industrial Centrifuge keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #5888 The Amazon Warehousing Depot, the Industrial Packager, is now a new controller with the structure from the contest. Item pipe casings set its speed: 200% with the lowest tier, up to 900% with the highest. The old controller is deprecated, the crafting recipe gives the new one, and a shapeless recipe converts the old one. The tooltip was cleaned up.
Your Amazon Warehousing Depot keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #5893 The Mega Chemical Reactor is now a new controller with the structure from the contest. Hatches can go anywhere on it, one or more energy hatches included, and the glass tier limits the energy hatch tier. The flavor text was reworded. The controller is now made on an LuV Assembly Line instead of from 64 Large Chemical Reactors in an Assembler; the old controller keeps working, is deprecated, and a shapeless recipe converts it.
Your Mega Chemical Reactor keeps running as the Legacy controller. The new controller takes the identical block layout, so swapping it in a crafting table is the whole job - there is nothing to rebuild.- [optional rebuild] #5908 The Industrial Electrolyzer has a new controller with a new structure. The old controller becomes the Legacy version, and a shapeless conversion recipe turns it into the new one. Parallels go from 2 per tier to 4 per tier. The crafting recipe moves to the new controller and is unchanged.
Your Industrial Electrolyzer keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #5963 The Industrial Mixing Machine has a new controller with a new structure and its own Mixer Casing, which has a new texture. The old controller becomes the Legacy version, and a shapeless conversion recipe turns it into the new one. The PR also changes the speed formula.
Your Industrial Mixing Machine keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [recipes changed] #6000 The Tree Growth Simulator gets a recipe for the Fether nether tree when Fether is installed. It gives Ignis Fruit, 2 per cycle.
- [optional rebuild] #6062 The Integrated Ore Factory has a new controller with a new structure. The old controller becomes the Legacy version, and a shapeless conversion recipe turns the old Ore Processor into the new one. The Assembly Line recipe now outputs the new controller.
Your Integrated Ore Factory keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [check your build] #6166 The Compact Cyclotron is deprecated. Its controller crafting recipe is gone and its tooltip shows DEPRECATED in red. Beamcrafting replacement recipes were added for some items that used cyclotron particle items. The Unknown Particles and Rare Particles quantum force transformer recipes are removed, and the Particle Acceleration Catalyst and Synchrotron Capable Catalyst can no longer be crafted or used. The old cyclotron recipes stay until 2.10. One Assembly Line recipe with a UEV scan and Abyssal plates now takes 2 Stable Boson Containment Units instead of 16.
Check your Compact Cyclotrons: they keep running and their recipes stay registered for this cycle, but the COMET controller can no longer be crafted, so plan the move to the Large Hadron Collider before 2.10. A quantum force transformer making Unknown Particles or Rare Particles stops, since both recipes and their two catalysts are gone; Beamcrafting recipes replace them.- [optional rebuild] #6171 The Large Thermal Refinery has a new structure from the contest. Base stats stay at 250% speed and 80% EU usage. Each coil tier adds 5% speed and a 5% EU discount, multiplicative, and each solenoid tier adds 2 parallels. The old controller keeps working and is deprecated. The controller recipe gives the new one, and a shapeless recipe converts the old controller.
Your Large Thermal Refinery keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6176 The Flotation Cell has a new structure from the contest, by nockyx. The old controller is now the Legacy version and is deprecated. The Assembly Line recipe gives the new controller, and a shapeless recipe converts the old one.
Your Froth Flotation Cell keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6182 The Molecular Transformer has a new structure from the contest, by Fox. The old controller is now the Legacy version and is deprecated. The Assembly Line and quantum force transformer recipes use the new controller, and a shapeless recipe converts the old one.
Your Molecular Transformer keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [rebuild required] #6191 Fixes the Mega Industrial Apiary structure so its flower layer is symmetric, which is needed for 2 block tall flowers. The layer now has one more flower block position on one side. Existing Mega Industrial Apiary builds may need a change to match the new layer.
Rebuild the Mega Apiary: three symmetry fixes (#6153, #6183, #6191) changed its structure layout, and the shape in this release is the final one.- [optional rebuild] #6251 The Large Bronze, Steel, Titanium and Tungstensteel Boilers get a new structure and a new controller. The old controllers are kept as Legacy versions and show a deprecated structure line in the tooltip. Existing boilers keep working as Legacy, but new crafts use the new controller and structure. A conversion recipe turns an old controller into the new one.
Your Large Boilers keep running as the Legacy controllers. Swap one for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6252 The Naquadah Fuel Refinery gets a new structure from GT Odyssey and a new controller. The old one becomes a Legacy controller. A shapeless conversion recipe turns the old controller into the new one. Hatch placement is no longer tied to being adjacent to the field restriction glass.
Your Naquadah Fuel Refinery keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6257 Zhuhai - Fishing Port gets a new structure by VorTex and a new controller. No mechanics changed. Water auto-placement was adjusted for the new structure. The Aquatic Casing now has a separate top texture. The old controller becomes a Legacy controller, and a shapeless conversion recipe turns it into the new one.
Your Zhuhai Fishing Port keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [recipes changed] #6263 The Railcraft Water Tank assembler recipes are removed from GT5-Unofficial. The water pump makes the tank obsolete in the Late Steam Age and early LV, and the recipe is being changed to make it more useful. The new recipe lives in a companion NewHorizonsCoreMod PR.
You do not have to touch anything you built, and water tanks you have already placed go on working. The GT assembler recipes for the Railcraft water tank block are gone, so an AE2 pattern or an automated line feeding that assembler recipe stops producing until you point it at the new recipe.- [optional rebuild] #6271 Industrial Maceration Stack gets a new structure by VorTex and a new controller. The tier 2 structure is bigger and gets a 4x speed buff to compensate. Parallel scaling is unchanged. The old controller becomes a Legacy controller, and a shapeless conversion recipe turns it into the new one.
Your Industrial Maceration Stack keeps running as the Legacy controller, T2 upgrade included. Swap it for the new controller in a crafting table, which carries the upgrade tier over, and rebuild only if you want the new structure.- [items disappear] #6301 GregTech's own material capsules have been removed: the per-material capsule and molten capsule items are no longer registered, and their GT recipes and NEI entries are gone. Forestry's wax and refractory capsules keep working and stay craftable, now at three wax each to match Magic Capsule cost.
The four GT capsule and molten-capsule item types are unregistered with no replacement, so a GT-fluid-filled wax or refractory capsule you were holding disappears on first load. Almost nobody has these; they were hidden from NEI in 2.8.4. Forestry's own capsules keep working, you just cannot fill them with GT fluids.- [optional rebuild] #6310 The Planetary Gas Siphon has a new structure, taken from the contest. The old controller keeps working and is deprecated. The new controller has its own ID, and the recipes that used the old one (Pump Module MK-I to MK-III and the crafting recipe) now use the new one. A shapeless conversion recipe turns an old controller into the new one, which needs the new structure.
Your Planetary Gas Siphon keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6312 The Universal Chemical Fuel Engine has a new structure, taken from the contest. The old controller keeps working and is deprecated. A shapeless recipe converts an old controller into the new one, which needs the new structure, and the crafting recipe now makes the new one. Internal mechanics are unchanged.
Your Universal Chemical Fuel Engine keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6313 The Pyrolyse Oven has a new structure, taken from the contest. The old controller keeps working and is deprecated. A shapeless recipe converts an old controller into the new one, which needs the new structure, and the crafting recipe now makes the new one. Internal mechanics are unchanged.
Your Pyrolyse Oven keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6317 The Advanced Implosion Compressor (Density^2) has a new structure, taken from the contest. The old controller keeps working and is deprecated. A shapeless recipe converts an old controller into the new one, which needs the new structure, and the crafting recipe now makes the new one. Internal mechanics are unchanged.
Your Advanced Implosion Compressor keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6319 The Boldarnator has a new structure, taken from the contest. The old controller keeps working and is deprecated. A shapeless recipe converts an old controller into the new one, which needs the new structure, and the crafting recipe now makes the new one.
Your Boldarnator keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6326 The Industrial Extruder has a new structure, taken from the contest. Parallels go from 4 to 6 per voltage tier on the new controller. The old controller keeps working with 4 per tier and is deprecated. A shapeless recipe converts an old controller into the new one, which needs the new structure.
Your Industrial Extruder keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6339 The Electric Implosion Compressor has a new structure from the structure contest. It uses 24 containment blocks instead of 27, and the piston animation is gone, which removed about 20 dupes. Energy, maintenance, input and output hatches go on any Naquadah Reinforced Block, and the glass does not limit the energy hatch tier. The old controller keeps working and is deprecated, and a conversion recipe is added.
Your Electric Implosion Compressor keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6340 The Large Combustion Engine has a new structure from the structure contest, by N7Paddy. Muffler and Maintenance hatches can go on any Titanium Casing. Input hatches still have to sit next to Gearboxes, and the Dynamo is still limited to 1 block. Internal mechanics are unchanged. The old controller is renamed Legacy, and a shapeless conversion recipe turns it into the new one.
Your Large Combustion Engine keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [recipes changed] #6342 Completely reworks Industrial Arc Furnace with three operating modes (Normal, Blast, Ore), new electrode system, and recipe adjustments. Plasma Arc Furnace is fully deprecated.
Put a programmed circuit 1 in every arc furnace for the plain arc recipe, which no longer takes oxygen, and circuit 11 for the gas and plasma variants; this hits single-block Arc Furnaces, Plasma Arc Furnaces (which now run the same arc recipes) and your existing Industrial Arc Furnace, which keeps forming as the deprecated Legacy controller. Wrought Iron is now Cast Iron: items convert in place, but the ore dictionary names change from WroughtIron to CastIron, molten wrought iron left in tanks is lost, and arcing iron into cast iron now takes 1 carbon dust per 3 iron.- [optional rebuild] #6349 The Extreme Combustion Engine has a new structure from the structure contest, by N7Paddy. It now extends the same extended power multiblock base as the Large Combustion Engine. The old controller is renamed Legacy, gets a deprecated line in its tooltip, and keeps working. A shapeless conversion recipe is added, and the crafting recipes now output the new controller.
Your Extreme Combustion Engine keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6356 The Industrial Material Press is split into the Industrial Bending Machine, by cauchemard, and the Industrial Forming Press, by barnac. Both have new structures from the structure contest and get 6 parallels per tier, up from 4, because they are bigger and share walls worse. Two shaped conversion recipes turn the old controller into either new machine. The old controller is renamed Legacy and keeps working.
Your Material Press keeps running as the Legacy controller. It converts in a crafting table into either the Industrial Bending Machine or the Industrial Forming Press, whichever recipe you pick, and you then build that machine's structure.- [optional rebuild] #6359 The Large Naquadah Reactor has a new structure from the structure contest, by N7Paddy. Hatches can go on any casing now, and internal mechanics are unchanged. It uses a new Naquadah Reactor Casing, made in an assembler from 2 Radiation Protection Plates, 2 Prismatic Naquadah plates, 1 Naquadah frame and 4 ingots of molten Enriched Naquadah at LuV for 20 seconds. The old controller is renamed Legacy, and a shapeless conversion recipe is added.
Your Large Naquadah Reactor keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6371 The Industrial Wash Plant is split into the Ore Washing Plant, by ya9yu, and the Industrial Chemical Bath, by PCGMatt. Both have new structures from the structure contest, and mechanics are unchanged. The Wash Plant texture is updated. Shaped conversion recipes turn the old controller into either new machine. The Ore Washing Plant crafting recipe no longer needs the EV Chemical Bath, and the Chemical Bath has its own recipe.
Your Industrial Washer and Industrial Chemical Bath keep running as the Legacy controllers. Swap one for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6391 The Industrial Coke Oven has a new structure from the structure contest. It can take extra coil slices, up to 15 more for 16 in total, and Eternal coils remove that cap. Parallels are 16 plus 8 per extra slice with Heat Resistant Casing, or 32 plus 16 per extra slice with Heat Proof Casing, and each coil tier gives a 2% EU discount, multiplicative. The old controller keeps working, is deprecated, and can be converted to the new one with a shapeless crafting recipe.
Your Industrial Coke Oven keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [recipes changed] #6463 The platinum group loop recipes for the PT concentrate centrifuge and the multiblock chemical reactor now take half the input and give half the output. Duration is 1 minute 4 seconds in both. This corrects a recipe that had been wrongly buffed compared to the normal dust route.
- [optional rebuild] #6471 The Steam Grinder has a new structure. It has no new mechanics and no recipe changes, and the same controller still accepts the old shape.
Your Steam Grinder keeps running on its old shape, which the same controller still accepts. There is no controller to swap; rebuild to the new layout only if you want it.- [optional rebuild] #6473 The Thermal Boiler has a new structure by ArsinXArscosX. No mechanics changed. The old controller is renamed Legacy and can be converted to the new one with a shapeless crafting recipe.
Your Thermal Boiler keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6478 The Cryogenic Freezer is now a new controller with a new structure and a new casing texture with connected textures. It runs 16 parallels at 300% speed and 90% EU, up from 8 parallels at 220% speed. Both the old and the new controller now use the regular Vacuum Freezer recipe map; the GT++ map it replaces held cell-free copies of those recipes. The old controller keeps working, is deprecated, and a shapeless recipe converts it.
Your Cryogenic Freezer keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [recipes changed] #6481 The Clean Stainless Steel Machine Casing assembler recipe now needs programmed circuit 1, where it needed none before. This keeps it apart from the Forming Core recipe, which uses circuit 2.
Add programmed circuit 1 to any automated assembler or AE2 pattern that makes Clean Stainless Steel Machine Casings.- [optional rebuild] #6508 The Infinite Fluid Drilling Rig has a new structure by Pix3lated. It no longer needs mining pipes. It adds 2 parallels per energy hatch tier above UHV, and any tiered glass can be used. The old controller is kept as Legacy and can be converted with a shapeless recipe.
Your Infinite Fluid Drilling Rig keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6510 The Drone Centre has a new structure, and any hempcrete block can be used. The old and the new controller each accept both the old and the new structure, so an existing Drone Centre keeps working; the old one is deprecated, and a conversion recipe turns it into the new one. The tooltip now lists the added-by and structure author on separate lines, and the production panel machine list is now a scrolling list that skips empty machine entries.
Your Drone Centre keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6511 The Tree Grow Simulator has a new structure by EvgenWarGold, with no mechanics changes. Dirt or grass can be placed, and dirt turns into grass. Oak log and leaves can be placed, and are placed automatically if missing. The old controller is renamed Legacy and can be converted with a shapeless recipe.
Your Tree Grow Simulator keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6519 The Industrial 3D Copying Machine has a new structure and casing texture; parallels, speed and EU usage are unchanged. The new controller picks its output differently: a programmed circuit in a regular bus selects the variant (listed in NEI), a CRIB uses its pattern output, and ArchitectureCraft shapes work as targets. The old controller keeps working with its target in the controller slot, is deprecated, and can be converted with a shapeless recipe.
Your Industrial 3D Copying Machine keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6530 The Industrial Sledgehammer has a new structure from the structure contest (author PCGMatt) and a new casing texture. Anvil scaling is gone. Parallels now scale with the solenoid coil tier, at 6 per tier instead of 8. The old controller is now the Legacy version and marked deprecated, and a shapeless crafting recipe converts it to the new controller.
Your Industrial Sledgehammer keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6533 The Large Sifter has a new structure from the structure contest (author VorTex). Only the structure changes. The old controller is now the Legacy version and marked deprecated, and a shapeless crafting recipe converts it to the new controller.
Your Large Sifter keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6545 The Steam Squasher (compressor) has a new structure by PCGMatt. It adds no new features. The old structure is still kept as a separate layout in the code.
Your Steam Squasher keeps running on its old shape, which the same controller still accepts. There is no controller to swap; rebuild to the new layout only if you want it.- [optional rebuild] #6546 The Large Steam, HP Steam, Gas and Plasma Turbines and the Supercritical Steam Turbine have new structures. The author says behaviour is the same as before. The old controllers are now Legacy versions and marked deprecated.
Your Large Turbines keep running as the Legacy controllers. Swap one for the new controller in a crafting table and rebuild only if you want the new structure.- [optional rebuild] #6548 The Mega Blast Furnace is replaced by the Exothermic Hearth, with a new structure that is ZPM tiered. While it runs recipes the hearth heats up and raises its parallels up to 2x, over about 30 minutes, or 5 minutes with Pyrotheum. The old Mega Blast Furnace controller keeps working and is deprecated, its assembler recipe is removed, and a ZPM Assembler recipe converts it into the Hearth. The new Hearth Casing is made in the Precise Assembler at ZPM.
Your Mega Blast Furnace keeps running as the Legacy controller. The new machine is the Exothermic Hearth, and swapping takes an assembler recipe at ZPM; convert and rebuild only if you want it.- [check your build] #6557 Every multiblock now reports why its structure check fails in the diagnostics screen. Some structure checks got stricter in the rewrite: Bio Vats need an input hatch to form, the Legacy Mega Chemical Reactor needs an energy hatch, and the Legacy Industrial Arc Furnace needs an input bus, input hatch, output bus and output hatch. Turning a disconnected Space Mining Module on or off no longer kicks you.
- [optional rebuild] #6562 The XL Turbines (Steam, HP Steam, Gas, Plasma, SC Steam) have a new structure from the structure contest. It has no rotor assembly. The turbines go into a GUI inside the controller instead. The old controllers are deprecated with a Legacy name, and a shapeless conversion recipe turns each old controller into the new one.
Your XL Turbines keep running as the Legacy controllers. Swap one for the new controller in a crafting table and rebuild only if you want the new structure.- [read before updating] #6602 TecTech multiblock parameters were redesigned for ModularUI2, and the parametrizer card was ported to the new system.
OpenComputers programs that set TecTech parameters have to be rewritten. The calls are now setParameter(name, value) and getParameters() (a table by name) on the machine's gt_machine component; 2.8.4's tt_machine component with setParameters(hatch, id, value) is gone, and getParameters(hatch, id) returns the whole table. Only the Space Elevator modules, the Tesla Tower and the BEC machines have parameters a program can reach; the Quantum Computer, Microwave Grinder, Network Switch, YOTTank, Compact Fusion Computers and Neutron Activator have none. On the Space Miner the names are distance, parallel, cycle, cycleDistance, range and step; mode became cycle and overdrive can no longer be set.- [optional rebuild] #6633 The Industrial Cutting Factory has a new structure from the structure contest. The cutter casing now uses one texture on every side and has a new recipe. The new controller does not run without one of four new sawblades (T1 to T4) in its controller slot, and the blade tier sets its stats and the highest energy hatch tier. The old controller keeps working, is deprecated, and a conversion recipe turns it into the new one.
Your Industrial Cutting Factory keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.- [items disappear] #6691 PTMEG and the chemicals used only to make it are removed: Tetrahydrofuran, Acidicised 1,4-Butanediol, Polytetrahydrofuran, Tungstophosphoric Acid and related materials. Their recipes are removed too. Existing items of these materials turn into dirt on load, and placed blocks become dirt blocks.
PTMEG Elastomer, Polytetrahydrofuran, Tetrahydrofuran, Acidicised 1,4-Butanediol, Tungstophosphoric Acid, Toluene Diisocyanate and Toluene Tetramethyl Diisocyanate are all removed, with no recipe to convert them. Their cells, dusts, ingots and blocks turn into dirt on first load, and any of their fluids left in tanks or pipes is lost.- [optional rebuild] #6714 The Mega Vacuum Freezer is replaced by the Endothermic Fridge, which has a new structure from the structure contest. It cools down while running recipes and gains speed bonus over time, up to 1.5x after about 5 minutes of continuous running. It uses a new Fridge Casing made in the Precise Assembler. The old controller keeps working and is deprecated, a ZPM Assembler recipe converts it into the Fridge, and the old Assembler recipe for the Mega Vacuum Freezer is removed.
Your Mega Vacuum Freezer keeps running as the Legacy controller. The new machine is the Endothermic Fridge, and swapping takes an assembler recipe at ZPM; convert and rebuild only if you want it.- [rebuild required] #6760 Fixed the symmetry of the Forge of Gods second layer from the controller: two positions that asked for the base casing now ask for the other one. Existing Forges will unform and must be adjusted to the corrected layout.
- [recipes changed] #6765 Hypogen processing voltage drops from UIV to UEV, and the Eye of Harmony materials White Dwarf Matter and Black Dwarf Matter (from UEV) and Universium (from UMV) now process at UXV. This lets the Exofoundry process hypogen without any modules. Every GT++ fluid solidifier recipe takes about twice as long: 3 seconds for ingot and plate (was 1.6), 3 seconds for nugget (was 0.8), 12 seconds for gear (was 6.4) and 25 seconds for block (was 14.4).
GT++ fluid solidifier lines run at about half speed, and White Dwarf Matter, Black Dwarf Matter and Universium now need UXV machines.- [items disappear] #6807 White Metal is removed from the game, along with its dust, ingot, nugget, plate, double plate, bolt, rod, long rod, ring, screw, rotor, gear, cell, foil, spring, fine wire, block and frame box. The metal had no real use. Any of these items left in a world will be deleted.
White Metal is deleted. Any ingots, dusts, plates, springs, fine wire or foil you hold disappear on first load, and nothing converts them.- [optional rebuild] #6868 The Mega Distillation Tower has a new structure, taken from the structure contest. Besides stat buffs, it now also runs distillery recipes through a second machine mode. The old tower keeps working and is deprecated, and an LuV Assembler recipe converts it; the new tower is otherwise made on an LuV Assembly Line, and the old Assembler recipe from 64 Distillation Towers is removed.
Your Mega Distillation Tower keeps running as the Legacy controller. Swapping it for the new controller takes an assembler recipe at LuV; convert and rebuild only if you want the new structure.- [check your build] #6908 The Windmill multiblock has a new interface and reworked mechanics. Wind speed now sets the number of parallels, and recipe speed is fixed at the normal recipe time. The machine shows a maintenance error when the wind is too strong or too weak, and the progress bar shows real recipe progress. Rotor tooltips no longer list the diameter, efficiency, speed and rotor stats.
Your windmill keeps its shape and stays formed. Check your build only for where it stands: wind speed now sets the parallel count instead of the recipe speed, and the machine stops with a maintenance error when the wind is non-existent or too strong, so a windmill in a very windy or dead-calm spot may sit idle where it used to run.- [recipes changed] #6963 The Eye of Harmony recipes are now made through the BEC. The BEC metamaterials replace the tiering bolts, and the on-tier amount of EoH material is kept equal to before. Many of the old Dyson-related recipes are replaced with tier-appropriate ones that do not need auto dire tables.
Cosmic Neutronium moves from the tier 2 to the tier 1 single-step Godforge plasma recipes. The Inactive Cosmic Solder recipe now takes 25 L of Raw Star Matter instead of 1000 L. MHDCSM gets a borderless condensate texture.
Every Eye of Harmony component recipe, the reinforced temporal and spatial casings, the infinite spacetime boundary casing and all tiers of the three field generators, has moved off the Research Station assembly line into the Bose-Einstein Condensate assembler. An existing assembly line for these parts finds no recipe, so build the BEC first.
- [optional rebuild] #7013 The Mega Oil Cracker has a reworked structure that is symmetric and uses the new casings. The scaling factor changes so coils matter more than they do with HSS-G. The old controller keeps working and is deprecated. An assembler recipe at LuV turns an old controller into the new one, which is otherwise made on an LuV Assembly Line, and the old assembler recipe for the old controller is removed.
Your Mega Oil Cracker keeps running as the Legacy controller. Swapping it for the new controller takes an assembler recipe at LuV; convert and rebuild only if you want the new structure.- [check your build] #7025 Borosilicate glass is reworked. It has new textures and MCPatcher connected textures that no longer connect to other glass types. The in-world glass is no longer tinted by the material color, and Borosilicate to Osmium keep the dirty background.
The new UXV glass tier is Universium, and the tiers run HV through UXV with Hexanite at UMV. The old glass blocks are deprecated and hidden in NEI. Thorium Yttrium glass stays IV. RPP glass is no longer called LuV tier material.
Every borosilicate block already placed, and every one sitting in a chest, is converted when the world loads, so none of it has to be crafted or put back by hand. Cosmic Neutronium glass becomes Infinity glass, old Infinity becomes Transcendent and old Transcendent becomes Hexanite; each keeps its glass tier, so the extra material only shows when you recycle it. Coloured borosilicate is gone: those blocks come back as plain borosilicate. Multis that stopped checking glass above a cap now check every energy hatch against the glass: the Extreme Industrial Greenhouse (above UV), the Mega Industrial Apiary (above UEV) and the UMV-capped mega multis, so for example an EIG with Osmium glass and a UHV hatch stops forming. The Antimatter Containment Casing now counts as UIV glass instead of UMV.
- [rebuild required] #7029 Symmetry fixes change a few blocks in the Antimatter Forge, the Antimatter Generator and the third ring of the Forge of Gods.
Symmetry fixes unform your existing Antimatter Forge, Antimatter Generator and Forge of Gods rings - a few casings moved or changed type, so rebuild those sections against the new structure hologram.- [recipes changed] #7074 Adds autogenerated Superdense Plates for BartWorks materials that have Dense Plates, and for a selection of late-game GT++ materials. Only Shirabon Superdense Plates are used in recipes so far, replacing Shirabon Large Plates in EOH recipes. Shirabon, Metastable Og, Hypogen and Quantum Superdense Plates need a Black Hole Compressor. Recipes for Ruthenium, Rhodium, Ruridit, MAR-M200, Ademic Steel, High Durability Compound Steel, Adamantium Alloy, Tairitsu, Precious Metals Alloy, Metastable Oganesson, Shirabon and other BartWorks and GoodGenerator materials now run at the material's own tier, EV to UMV, instead of LV or MV.
Check automation that processes those materials on low-tier machines. Making a block from 9 ingots of any BartWorks metal also changed: it takes 9x longer in the Extruder and 18x longer in the Alloy Smelter, at 120 or 480 EU/t and 60 or 240 EU/t.- [items disappear] #7178 Removes the BartWorks material casings and rebolted casings made from GT materials, such as Aluminium, Copper, Steel, Stainless Steel, Tungstensteel and HSS-G. Carbon, Silver, Iridium, Naquadah, Naquadah Alloy, Osmiridium, Black Steel and Wood keep theirs, and casings of BartWorks' own materials stay. Removed casings are not converted: placed ones and ones in a chest lose their material.
Break any BartWorks material casings and rebolted casings made from GT materials before updating, except the Carbon, Silver, Iridium, Naquadah, Naquadah Alloy, Osmiridium, Black Steel and Wood ones; casings of BartWorks' own materials, such as Ruridit, are not affected.- [check your build] #7299 Multiblock construction tooltips are reworked. Dimensions now read LxWxH. Casing and hatch lines always give an amount or a range, in the order Energy, Maintenance, Muffler, Input Bus, Input Hatch, Output Bus, Output Hatch. Structure errors follow the same order. TecTech mentions are removed from tooltips, and master channel names now appear next to subchannel lines. A few structures also get different hatch hints, such as the Circuit Assembly Line.
Check any Eye of Harmony with two or more output buses: it now allows exactly one, and stops forming until the extras are removed. GT Fusion Reactors Mk1-3 now need at least one energy, input and output hatch, and the DTPF needs energy, input and output but no longer a maintenance hatch; working ones already have these.- [recipes changed] #7305 All GT++ ores now give byproducts from raw ore and ore blocks, and ores that were missing the washer, thermal centrifuge and similar steps now have them. Fluorite now goes through the normal ore chain instead of its own short set of recipes. The two Fluorite chemical plant recipes now output raw Fluorite ore: 10 from the Sand recipe (5,000 L Nitric Acid, 12,000 L Air) and 20 from the Sandstone recipe (4,000 L Nitric Acid, 8,000 L Air).
Check setups that take output from the two Fluorite chemical plant recipes: they keep their inputs but now give raw Fluorite ore instead of the same number of Fluorite ore blocks.- [recipes changed] #7373 Shirabon mass is cut from 750 to 128, which makes the autogenerated Shirabon recipes about 6x shorter. Those recipes now need 60% of a UMV recipe amp. Superdense plate amounts in EOH blocks go up to offset the shorter Shirabon superdense time.
Crafting table recipes for components (foils, gears and similar) are removed from the BartWorks and GoodGenerator materials above IV, to match GT and GT++. Anything you crafted by hand from those now needs a machine.
Crafting table recipes are gone for High Durability Compound Steel, Extremely Unstable Naquadah, Adamantium Alloy, Tairitsu, Enriched Naquadah Alloy, Precious Metals Alloy, Metastable Oganesson and Shirabon: plate from ingot, foil from plate, sticks, rings, screws, gears, small gears, rotors, crushed ore to dust, dust to and from small and tiny dust, and gem splitting; GT materials above IV also lose the hammer foil recipe. Re-encode any autocrafting pattern that used a hammer, file, saw or wrench on those materials.
- [recipes changed] #7428 Eternity nanites now cost 2 Universium nanites per nanite, where 2.8.4 took one Transcendent Metal nanite per four. The recipe outputs 1 nanite instead of 4 from the same 8 Eternity blocks and 64000 L of Primordial Matter, with timepieces, spatially enlarged fluid, catalyst fluid and recipe time quartered. Magmatter nanites go from 1 to 4 Universium nanites per nanite.
MHDCSM V2 now takes 1 Eternity nanite and 4 stacks of Raw Star Matter and makes 72 ingots in 2 seconds. Forming press Nanite Framework, the EOH recipe and a Godforge recipe use different nanite inputs.
Nothing you built has to come down. If you produce Eternity or MagMatter nanites, re-plan the cost: one Eternity nanite per run instead of four, using two Universium nanites (instead of one Transcendent Metal nanite), eight Eternity blocks and 64000 L of primordial matter each; MagMatter nanites now take four Universium nanites instead of one. Re-encode any autocrafting patterns for those two nanites, for the Nanite Framework and for the MHDCSM implosion recipe, which all changed inputs.
- [rebuild required] #7468 Photolithographic masks no longer have durability and now stack to 64. The Target Chamber takes a regular Input Bus instead of a Focus Input Bus, so a stocking input bus can feed it masks. Each Target Chamber recipe uses up one mask, and its wafer or target input, its output and its particle amount were multiplied by that mask's old durability, so masks are used up at the same rate as before.
Your Target Chamber will not re-form until you rebuild one block: break the Focus Input Bus in the top centre casing and put a normal Input Bus there, so the machine has two. The Focus Input Bus is now unused. Masks no longer wear out and stack to 64, but a part-used mask matches no recipe after updating. Recipes are batched per mask now: one run takes a mask plus as many wafers or target items as that mask used to have uses, from 50 (QBIT, PPIC, QPIC, FPIC) to 200 (RAM, NAND, ULPIC).- [check your build] #7562 The Circuit Assembly Line in Circuit Assembly Line mode now requires items to be ordered into individual input buses, the same as the Assembly Line. A recipe finds no match if the bus count is lower than the number of inputs, or if a bus holds the wrong item for its slot. Setups that put one item per bus in a different order will stop running.
Check Circuit Assembly Line builds in circuit assembly line mode and put each required item in its own input bus, in the order the recipe lists them.- [recipes changed] #7569 Unstable ingots can no longer be sawed into 8 nuggets. You now make either a full ingot for 1 diamond or 9 nuggets for 9 diamonds. Stable ingots can still be made with the basic sigil.
After updating, the crafting table recipe that turned one unstable ingot into 8 unstable nuggets with a saw is gone. If you had that recipe encoded in an autocrafting pattern, delete or re-encode it. An alloy smelter with a nugget mold splits one unstable ingot into 9 nuggets as before.- [check your build] #7576 The Dangote Distillus speed bonus in distillation tower mode drops from 3.5x to 3x. The new Mega Distillation Tower controller runs at 2x speed in distillery mode and 1.5x in tower mode. The 2.8.4 Mega Distillation Tower, kept as the legacy controller, has no speed bonus.
Dangote (the Advanced Distillation Tower) is about 14% slower in distillation-tower mode, a 3.5x speed bonus dropping to 3x. Check your Dangote lines: they keep running, just at reduced throughput.- [recipes changed] #7635 The Mixer Dragonblood recipe now takes 2100 seconds, three times as long as before. The four Dragonblood recipes in the Draconic Evolution Fusion Crafter now need casing tier 2 instead of tier 3.
Nothing you built has to come down. The non-magic mixer route to molten dragonblood now takes 2100 seconds instead of 700, so an existing line produces a third as much per mixer; add mixers if you depend on it. The Draconic Evolution Fusion Crafter recipes for dragonblood now accept a tier 2 casing instead of tier 3, which only makes them easier.- [recipes changed] #7750 GT++ materials no longer get Double and Dense plate Bender recipes below MV. Dense plates need an MV Bender or better, and LV-tier GT++ materials had LV recipes for them. Those recipes now run at MV.
Check any automation that bends Double or Dense plates of low-tier GT++ materials, since those recipes now draw MV power.- [recipes changed] #7803 The UV Machine Hull recipes now use 4x Naquadah Alloy Cable instead of 4x Naquadah Alloy Wire. This applies to both the crafting table recipe and the assembler recipe.
Stock Naquadah Alloy Cable for UV Machine Hull crafting instead of wire, and update any automation that feeds wire into those recipes.- [recipes changed] #7808 The UEV and UIV multi-amp energy and dynamo hatch recipes use different plates. UEV hatches now take Infinity plates instead of Bedrockium, and UIV hatches take Transcendent Metal plates instead of Black Plutonium. This follows the hull metal change for those tiers.
Re-encode any crafting patterns for the UEV and UIV multi-amp energy and dynamo hatches: the plate input is Infinity on UEV and Transcendent Metal on UIV, where it was Bedrockium and Black Plutonium.- [recipes changed] #7901 The UIV Energy Distributor assembler recipe now takes Transcendent Metal plates instead of Black Plutonium plates. The UMV Energy Distributor recipe now takes Space Time plates instead of Infinity plates. Both recipes were out of line with the other tiers.
If you automate the UIV or UMV Energy Distributor, change the plate supply to Transcendent Metal (UIV) or Space Time (UMV).- [recipes changed] #7990 The iodine recipe now takes 2000 L Seaweed Concentrate and 2000 L Chlorobenzene instead of a Benzene cell and 2000 L Seaweed Concentrate, runs in 30 s instead of 38 s, and works only in an Industrial Centrifuge or a Spinmatron, not in a single-block centrifuge. Smelting seaweed now gives a full Seaweed Ash dust instead of a small dust, and the mixer step takes 8 dust to match. A new UEV recipe turns seaweed byproducts into real byproducts, and with a heavy mode Spinmatron the line gives triple the iodine of a regular seaweed line.
Check any automated seaweed line: the furnace now outputs full Seaweed Ash dust and the mixer step takes 8 dust. The iodine step needs 2000 L Chlorobenzene in place of the Benzene cell and has to move from a single-block centrifuge to an Industrial Centrifuge or a Spinmatron.- [check your build] #7996 Battery Buffers no longer restrict item output, so automation can pull any item out of them, charged batteries and tools included. Before, only certain GT batteries could be taken out, and only when empty.
Check any pipe, conveyor or bus attached to a Battery Buffer, because it can now pull charged batteries and other items out.- [recipes changed] #8000 The mixer recipe that makes Enderium dust without Enderium Base now has the correct ratio. It takes 2 Platinum, 2 Silver, 2 Tin, 3 Thaumium and 3 Ender Pearl dust and gives 12 Enderium dust instead of 8. Duration is still 10 seconds.
Check any automated Enderium dust mixer setup, since the inputs and output per craft changed.- [recipes changed] #8026 The Quantum Force Transformer rubber recipe now takes 32 sulfur dust and 32 carbon dust instead of 64 carbon dust. Setups that feed this recipe need sulfur added to their input.
Add 32 Sulfur dust to the Quantum Force Transformer rubber recipe's input, cut the Carbon dust from 64 to 32, and re-encode the pattern.- [recipes changed] #8069 The Reprecipitated Rhodium recipe no longer needs a circuit in the input slot. The recipe has no input conflicts, so the circuit did nothing. A setup that feeds it Programmed Circuit 2 will need adjusting.
Take the circuit out of any automation that feeds this recipe.- [recipes changed] #8128 The Machine Casing cover recipes made in the cutting machine had a broken time in NEI. The ULV recipe showed NaN seconds. Each recipe now takes 5 seconds times its tier number plus one, and uses integrated circuit number plus one, so the ULV recipe uses circuit 1.
Change the programmed circuit in any automated Machine Casing cover cutting setup to the tier number plus one, and expect each recipe to take 5 seconds longer.- [recipes changed] #8227 Field Restriction Coils T1 to T3 now take one stack of 64 of the next thicker superconductor wire instead of two stacks of the old wire (T1 2x ZPM, T2 4x UV, T3 8x UHV), so patterns no longer need renaming for AAL. The wafers rise in tier across the coils, 32 of each: PPIC for T1, QPIC for T2 (was 48 PPIC) and FPIC for T3 (was 64 PPIC). The T4 coil is not part of this change.
Re-encode your Field Restriction Coil T1 to T3 patterns and supply the thicker wire and the QPIC and FPIC wafers. Existing data sticks keep working.- [check your build] #8277 Thaumcraft Warded Glass moved from HV to EV tier glass. A multiblock built only from Warded Glass now counts as EV glass. One that mixes Warded Glass with other HV glass no longer forms, because all tiered glass in one structure must be the same tier.
Check multiblocks that mix Warded Glass with other HV glass, such as HV borosilicate glass, and replace one or the other so the whole structure uses one glass tier.- [read before updating] #8293 Extreme Industrial Greenhouse no longer has the IC2 mode, and its mode switch and no-humidity option are gone from the configuration UI. A greenhouse saved in IC2 mode loads in normal mode, and the IC2 crops stored in it are deleted. Kubatech multiblock tooltips (Extreme Entity Crusher, Mega Industrial Apiary, Extreme Industrial Greenhouse) were reworked.
Before updating, take every IC2 crop out of any Extreme Industrial Greenhouse in IC2 mode; on the first load they are deleted, not output. Refill the greenhouse with normal-mode seeds after the update.
New Features
- #8309 ColoredBlockContainer now accepts IBundledCablePart as well as IInsulatedRedwirePart. ProjectRedInsulatedWireContainer is renamed to ProjectRedWireContainer and holds a TMultiPart. - @DreamYao520
- Added: spray painting support for ProjectRed bundled cables
- #8291 MTEExoFoundry implements IDataCopyable with the identifier "exofoundry" and overrides onRightclick to handle Tool_DataStick copy and paste. - @chrombread
- Added: Data Stick copy and paste for Exo Foundry settings
- #8290 MTENanochipAssemblyComplexGui power SliderWidget gets scrollValues(1, 2, 5, -1). ModularUI2 bumped from 2.3.91 to 2.3.92. - @chrombread
- Added: mouse wheel scrolling on the NAC power slider
- #8269 Renamed MTEHatchSplitterRedstone to MTEHatchNanochipRedstone (and its GUI). The redstone hatch list moved into MTENanochipAssemblyModuleBase, and the 'V' hatch slot now accepts ModuleHatchElement.RedstoneHatch. MTEBoardProcessorModule polls the hatches and flushes on a signal. MTEBoardProcessorModuleGui only shows impurity when a fluid is present. - @chrombread
- Added: redstone flush for the FBID, redstone hatch support on NAC modules
- Fixed: NaN in FBID GUI tooltip
- Closes GTNH#23823
- #8236 Registers aliases via API.setAliases for Hatch_VacuumConveyor_Input (gt.alias.vci) and Hatch_VacuumConveyor_Output (gt.alias.vco) in LoaderMetaTileEntities, with the lang entries added to en_US.lang. - @MarloGr
- Added: VCI alias for Vacuum Conveyor Input, VCO alias for Vacuum Conveyor Output
- Closes GTNH#26998
- #8212 Removed the inline stackTrace drawing from RecipeMapFrontend and deleted NEIHandlerAbsoluteTooltip. GTNEIDefaultHandler now keeps hover areas per recipe and adds the stack trace to the tooltip. Access transformers for GuiContainer guiLeft and guiTop were added, and RecipeDisplayInfo gained getYPos. - @danyadev
- Added: stack trace tooltip on hover in NEI
- Removed: inline stack trace text in NEI recipe pages
- #8190 ColoredBlockContainer now detects a ProjectRed IInsulatedRedwirePart in a multipart tile by retracing the hit. The spray behaviours' colorize method now takes a container, and the container is re-fetched each loop iteration through getChainInstance. - @DreamYao520
- Added: Spray painting of ProjectRed insulated wires
- #8174 MTEHatchOutput now implements IDataCopyable with left-click data stick handling and copy/paste of mode and locked fluid; AntimatterOutputHatch gets its own copy/paste. IItemLockable.acceptsItemLock is renamed acceptsConfigCopy. GTUtil multiblock config save/load now covers all output hatches under the key mOutputHatches instead of mMEOutputHatches. OCMethod getFilter/setFilter added to the output bus. - @hxync
- Added: Data Stick and Data Orb copying for Output Hatch config, ME Storage Cell insertion into ME Output Bus from the front, OpenComputers methods for Output Bus/Hatch filters
- Fixed: Non-Storage-Cell items could be pushed into the ME Output Hatch
- #8168 New gtnhintergalactic AsteroidDumper (an NEI DataDumper) registered in NEI_IG_Config, plus lang keys. AsteroidData and SpaceMiningRecipes now carry the recipe EU/t as a new eut field. - @C0bra5
- Added: NEI dumper for Space Miner asteroids
- #8150 GTNEIDefaultHandler.loadCraftingRecipes and loadUsageRecipes detect a Tool_DataStick and add the result of AssemblyLineUtils.getDataStickOutput to the lookup list. - @Angry3vilbot
- Added: NEI crafting and usage lookup for Assembly Line data sticks
- Closes GTNH#26905
- #8147 Added @OCMethod to the auto-pull getters and setters in MTEHatchInputBusME and MTEHatchInputME. Added getSlotConfig(int) and setSlotConfigAndUpdate(int, stack) to both, which copy the slot config and refresh the information slot. - @hxync
- Added: OpenComputers methods for Stocking Input Bus and Hatch auto-pull settings, OpenComputers methods to get and set slot config on Stocking Input Bus and Hatch
- #8108 MTELargeMolecularAssembler overrides isCraftingPatternProvider() to return true. Bumps Applied-Energistics-2-Unofficial from rv3-beta-1059-GTNH to rv3-beta-1070-GTNH. - @Ableytner
- Added: Large Molecular Assembler in the Interface Terminal crafting-only filter
- Closes GTNH#26008
- #8107 MTEBoiler gets an isProducingSteam() helper (temperature above 100 and water present). MTEBoilerBronze and MTEBoilerLava add WAILA body and NBT data that report getProductionPerSecond. Adds the lang key GT5U.waila.boiler.steam_producing. - @Nana-Sakura
- Added: steam production readout in boiler WAILA
- Closes GTNH#26864
- #8106 MTEHatchOutputMEBase gets a per-tile refreshTime in ticks (MIN_REFRESH_TIME, TICKS_PER_SECOND) that is saved to NBT and copied by the settings stick. Both output GUIs get a text field for it, and GTWaila.getStackListLine is shared with the ME crafting input hatch. - @mak8427
- Added: Configurable refresh time on ME Output Hatch and ME Output Bus, Waila list of cached stacks on ME output hatches and buses
- Closes GTNH#26853
- #8103 MTEDataBank.checkProcessing_EM now sets lEUt to mEUt on a successful check, so the WAILA power reading is populated. - @Nana-Sakura
- Added: Data Bank EU/t in WAILA
- Closes GTNH#26729
- #8098 MTEHatchDroneDownLink textures now use the builder with extFacing so the overlay follows the facing. The right-click handling was reworked to use the hatch's front facing. - @MLGfruitshoot
- Added: rotatable Drone Downlink Hatch
- #8066 MTEMegaOilCracker adds getExtraWailaBody, which shows the EU modifier formatted to two decimals. getEuModifier now uses GTUtility.powInt instead of Math.pow. - @chrombread
- Added: EU discount line in Mega Oil Cracker Waila
- #8063 MTEVacuumConveyorPipe.canConnectOnSide now returns false when a cover is on that side, and getNeighbours/checkConnections check it on both ends. Added MetaPipeEntity.onCoverChangedServer(), called from BaseMetaPipeEntity on cover placement and removal so the vacuum factory network can update. - @chrombread
- Added: Cover blocking of Vacuum Conveyor Pipe connections
- #8062 MTEHatchUncertaintyGui adds a ToggleButton bound to a valueAssist BooleanSyncValue and a text overlay Grid. MTEHatchUncertainty stores showValues and saves it to NBT as mShowValues. A tooltip lang key was added to en_US and zh_CN. - @shironakoushi
- Added: Color vision assist toggle on the Uncertainty Resolver GUI
- #8057 MTENanochipAssemblyComplexGui.openInfoPanel adds a line_specifics section with a table of contents entry. The per-circuit crystal, wetware and bioware calibration lang keys in en_US.lang were replaced with new text. - @chrombread
- Added: Suggested power and module distribution amounts in the Nanochip Assembly Complex info panel
- #8049 Added Primitive circuit components and textures, primitiveT1/T2/T3Active flags on the NAC, and an MTEAssemblyMatrixModule.transformRecipe override that rolls duration and double-output chances. Primitive thresholds in CircuitCalibration changed, CCs were added to the creative tab listing, and the NAC info GUI was updated. The PR needs NewHorizonsCoreMod#1957. - @chrombread
- Added: Primitive Circuit line for the NAC, Primitive calibration effects, primed unattuned circuitry and processed wire and bolt circuit components
- #8034 MTESplitterModuleGui rebuilds the rule manager panel through a DynamicSyncHandler, resizing it and swapping the background based on a new expandedRulesPanel flag on MTESplitterModule. Adds a large nanochip background texture and a resize button overlay. - @serenibyss
- Added: expand button on NAC splitter rules panel, large NAC splitter rules panel
- #8027 Adds NanochipCCDisplayWidget implementing RecipeViewerIngredientProvider, used in MTEHatchVacuumConveyorGui slots. It returns the real stack from CircuitComponent.tryGetRealStack, or the displayed stack if none. - @chrombread
- Added: NEI keybind support for circuit components in Vacuum Conveyor Hatch
- #8023 Overrides setItemNBT in MTENanochipAssemblyComplex and MTESplitterModule to write machine state into the dropped item. MTESplitterModule now implements IDataCopyable. In the Assembly Complex the circuit history list is built but never written to the NBT, so only currentBlock is saved. - @chrombread
- Added: Splitter module data copying, Splitter rules kept in item form, Assembly Complex current block kept in item form
- #8016 Added setFluidSlots(true, false) to the singleblock compressor registrations in LoaderMetaTileEntities.registerCompressor, giving each tier one fluid input and no fluid output. - @FourIsTheNumber
- Added: fluid input slot on singleblock Compressors
- Fixed: Magma blocks could not be crafted in singleblock Compressors
- Closes GTNH#21129
- #8002 MTELargeHadronCollider gains boost modes (none, QGP, Magmatter) with fluid input hatches, synced boostMode and calcBoostMode values and a CycleButtonWidget in MTELargeHadronColliderGui. MAXIMUM_PARTICLE_ENERGY_keV is halved to 1_000_000_000 and a booster-interrupt shutdown reason is added. - @ham-corp
- Added: Beam Booster fluid option (QGP or Magmatter) for the Large Hadron Collider, Booster fluid selector in the LHC GUI
- #7968 MTEMonsterRepellent gains a mPowered flag and WAILA data methods that sync and display the working range or an unpowered state. Adds two lang keys to en_US.lang. - @Nana-Sakura
- Added: Monster Repellent WAILA range display, Monster Repellent WAILA unpowered line
- Closes GTNH#26656
- #7948 Added raw value field display to MTEBasicMachine EU bar rendering and lang entry. - @cubefury
- Added: raw EU bar values
- #7940 Added next nanite readout to MTEBECIONode and MTEBECIONodeGui with remaining tick calculation and lang entries. - @ReignOfFROZE
- Added: next nanite readout, remaining ticks display
- #7915 Adds GTSpawnEventHandler.isAreaProtected and an early common mixin (PortalSpawnCheckMixin) that redirects the spawnCreature call in BlockPortal.updateTick, returning null when the position is in a repellent range. - @Spaghetti-OberNub
- Added: Monster Repellator check for portal spawns
- Closes GTNH#26004
- #7885 Added API.setAliases with the new gt.alias.debug key for Hatch_Output_Bus_ME, Hatch_Output_ME, Hatch_Muffler_LV and hatch_CreativeMaintenance in LoaderMetaTileEntities and MachineLoader, plus the en_US lang entry. - @UltraProdigy
- Added: Debug NEI search alias on four hatches
- #7877 Added
VajraGuiUI component and expandedToolVajrato store selected speed in item NBT, cycle modes on keybind input, and display active speed in tooltips. Updated access transformer for GUI visibility. - @DreamYao520- Added: Vajra Speed Switch keybind, speed selection UI, speed mode display in tooltip
- Closes GTNH#26460
- #7860 Expanded MTESplitterModuleGui and NACRecipeMapBackend to support 16 slots, added color rule wildcard mode, implemented item renaming preservation, added custom name middle-click handler, added tier-based power scaling to MTEAssemblyMatrixModule. - @serenibyss
- Added: 16-slot splitter item rules support, Wildcard color rule mode, Custom name middle-click binding, Real item support in splitter rules, Tier-based power scaling for Matrix module
- #7853 Created INonConsumedItemDisplay and IPhysicalCircuitDisplay interfaces with shared helper methods. Extended MTEBasicMachine and MTEHatchSolidifier to scan input slots and report circuit/non-consumed items. Shortened display names by extracting parenthesised portions. - @Eldrinn-Elantey
- Added: Physical circuit display in interface names, Non-consumed item detection for single blocks
- #7852 Added configuration toggle in Client config class and conditional rendering in ItemMachines tooltip generation. - @Eldrinn-Elantey
- Added: Client config option: Show Energy Capacity
- #7843 Extended MTEIceCreamMachine with NBT-based roll tracking, coin consumption on craft, and output blocking logic. - @Ranzuu
- Added: Ice cream crafting rolls (1-8 flavors)
- #7840 Enhanced MTEBasicMachine WAILA generation with improved ColorUtils formatting, better text organization and GTUtility helper methods for display. - @evgengoldwar
- Added: Improved machine WAILA formatting
- #7836 Extended GTWaila and MTEBasicMachine to provide detailed slot and fluid state information, added ColorUtils formatting support and updated language strings for tooltip display. - @evgengoldwar
- Added: Enhanced single machine WAILA display
- #7834 Extended MTEDigitalChestBase unloading logic to support matter clusters alongside normal items. - @Pxx500
- Added: Matter cluster unloading from superchests
- #7827 Added ItemDysonSwarmParts with solar sail variant to ItemList enum. Added texture and localization entries for solar sails and nanofiber overlays. - @Auynonymous
- Added: Solar Sail item, Fine-wire overlay for nanofibers
- #7797 Extended MetaGeneratedItem02 ice cream initialization to apply potion effect payloads to each ice cream flavor, with configurable effect type, level, and duration. - @Ranzuu
- Added: potion effects for 28+ ice cream flavors
- #7785 MTEBoiler and MTEBoilerSolar: added GTWaila integration to display enhanced tooltip data. Added localization strings. - @evgengoldwar
- Added: WAILA tooltip for boilers
- #7772 Adds a conditional logger GT_RECIPE_REMOVAL_LOGGER, enabled by -Dgt.recipe.remove_delayed.debug=true, writing logs/UselessRecipeRemovals.log via GTLog.configureRecipeRemovalLogger. GTModHandler.removeRecipeDelayed now rejects null or all-null inputs up front and logs the call site, and tracks queued call sites for later logging. - @boubou19
- Added: UselessRecipeRemovals.log debug log
- #7752 Added acid-base neutralization recipe in PlatinumSludgeRecipes: NaOH + HNO₃ → NaNO₃ + H₂O. - @Nana-Sakura
- Added: Sodium hydroxide and nitric acid neutralization recipe
- #7723 Adds GTRecipeBuilder.modifiedByVariant(String...), which sets skip when VariantNames.activeContains matches and does nothing if Variable Horizons is absent. Adds Mods.VariableHorizons, a VariantNames enum with NO_ROCKET, and a compileOnly dependency on Variable-Horizons 0.0.01. - @GDCloudstrike
- Added: modifiedByVariant recipe builder method, Variable Horizons mod entry
- #7717 Added WAILA configuration options to Client config, extended GTWaila utility class, and updated MetaTileEntity WAILA integration. - @evgengoldwar
- Added: WAILA settings in client configuration
- #7708 Updated MTEWindmill structure validation to accept stained hardened clay (terracotta) variants alongside uncolored terracotta blocks. - @isadora-6th
- Added: Stained hardened clay support in Windmill
- Fixed: Early-game clay scarcity for Windmill structure
- #7704 Added wooden sword and spike recipes to AssemblerRecipes loader, reorganized metal sword recipes to circuit 17, unified input layout. - @Angry3vilbot
- Added: Wooden sword assembler recipe, Wooden spike assembler recipe
- #7694 Added new larger nanite bus meta tile entity with corresponding ID, item list entry, loader, and language entry. Disabled for PCB factory. - @VortexSo4
- Added: Larger nanite bus multiblock
- #7676 Extracted hardcoded parentheses string to language file key in
GTUtility.java. - @Ranzuu- Added: localized parentheses format key
- #7663 Added three new Assembler recipes in
AssemblerRecipes.javamatching ExtraUtilities spike crafting recipes without hand tools. - @Angry3vilbot- Added: Assembler recipes for metal spikes
- #7651 Added coloring support in
BehaviourSprayColor.javaandBehaviourSprayColorInfinite.java, created newColoredBlockContainerinterface ingregtech/api/util/, and extendedMetaGeneratedItem01.javawith new item behaviors. Dependency added for EnderStorage support. - @querns- Added: Ender Chest/Tank coloring with spray cans, Color segment copying with Infinite Spray Can, ColoredBlockContainer interface
- #7623 Increased input hatch count in MTEMegaDistillationTower.java. - @chrombread
- Added: additional input hatch slots
- #7621 Updated MTELargeFusionComputer4.java, MTELargeFusionComputer5.java, and base MTELargeFusionComputer.java to allow tier-matched Transparent Glass casings. - @Yoshy2002
- Added: Transparent Glass support for Mk4/Mk5 fusion reactors
- #7619 Added "spass" nickname alias to TileEntityModuleAssembler.java. - @MLGfruitshoot
- Added: "spass" nickname for Space Assembler
- #7616 Updated AntimatterForge.java and AntimatterGenerator.java to accept Transparent Glass as a valid alternative casing. Dependency bump on BlockRenderer for additional glass channel support. - @Auynonymous
- Added: Transparent Glass as SLAM casing option
- #7611 Modified BlockMachines.java and MTEDigitalTankBase.java to reset fluid lock when shift-breaking an empty tank, while preserving the lock for tanks still containing fluid. - @Eldrinn-Elantey
- Added: fluid lock reset on shift-break
- #7598 Added jade autoclave recipe in MaterialsInit following existing pattern for other gem-only materials. - @fehling135
- Added: Jade dust to gem autoclave recipe
- #7596 Updated dependencies.gradle and refactored PowerfailLayerManager, PowerfailLocationWrapper, and PowerfailRenderStep to support JM6 Navigator API improvements and zoom-based scaling. - @Algent
- Added: JourneyMap 6 support for power-failure markers
- #7593 Added DebugWriterHelper with block and tile entity associations and symbol overrides. MTEDebugStructureWriter.getPseudoJavaCode uses it, returns an empty string without a base tile entity, and the onScrewdriverRightClick override is removed. - @evgengoldwar
- Added: symbol overrides in Debug Structure Writer, improved console output
- Removed: screwdriver right-click printing on Debug Structure Writer
- #7582 Extended
GTNEIDefaultHandlerprefix lookup logic to support GT++ material item variants alongside GT and BW materials. - @serenibyss- Added: GT++ material support in NEI familiar prefix lookup
- #7578 Increased character limit in
WirelessEnergyHatchGuiHelperlaser GUI text fields from previous limit to 20. - @MLGfruitshoot - #7568 Modified
ItemGTToolboxto track pick block location and return multiple tools as a list. UpdatedToolboxPickBlockDeciderandPickResultsto handle tool cycling. Added wire cutters as valid tool type for AE2 blocks. - @querns- Added: tool cycling on repeated Pick Block, wire cutters for AE2 blocks
- #7561 Added vanilla crafting method overrides to ItemGTToolbox to prevent toolbox consumption; added tooltip warning for special toolbox recipes indicating tool selection doesn't matter. - @querns
- Added: Toolbox non-consumption in shaped/shapeless recipes, Toolbox recipe warning tooltip
- #7552 Modified GlassTier.java to adjust UHV+ borosilicate properties; added EBF and chemical bath recipes for transparent/foggy conversion; added new borosilicate glass items to BorosilicateGlass API and ItemRegistry; added new CTM textures and language entries. - @Auynonymous
- Added: Transparent borosilicate glass alternatives for UHV+, EBF recipes for fogging borosilicate glass, Chemical bath recipes for clearing borosilicate glass, Transparent borosilicate glass textures
- #7549 Added MTEIceCreamMachine single-block machine with 415 lines of code; created 55 new ice cream item types in MetaGeneratedItem02; added IceCreamMachineRecipes with 109 lines defining recipe logic; registered new recipe map IceCreamMachineFrontend. - @Ranzuu
- Added: Ice Cream Machine (new basic machine), 55 ice cream item variants, IceCreamMachine recipe map, Ice cream machine recipes and logic, Machine model and textures
- #7546 Added IPhysicalCircuitDisplay interface implemented by MTEHatchInputBus and MTEHatchInputBusME; CommonBaseMetaTileEntity merges physical circuit numbers with ghost circuits; RecipeMap now exposes cached set of non-consumed input item IDs for buses to cross-reference. - @Eldrinn-Elantey
- Added: IPhysicalCircuitDisplay interface, Physical circuit display in input bus AE2 interface names, Non-consumed item display for input buses, RecipeMap caching of non-consumed item IDs
- #7544 Added 519 lines of fluid-input Electrolyzer recipes in ElectrolyzerRecipes.java; single gaseous byproducts use fluid output, multiple byproducts use the larger as fluid output with rest as capsules. - @Eldrinn-Elantey
- Added: 48 fluid-input Electrolyzer recipes, Fluid output variants for capsule-only gases and liquids
- #7538 Enhanced CameraViewportManager and related GUI panels with group tracking, energy display, and improved text contrast; added lang keys for group information. - @RealSilverMoon
- Added: drone energy data to WAILA, group info display, CameraViewportManager group tracking
- Closes GTNH#25998
- #7526 Added separate burning drop maps in EntityDeathHandler and ItemsFoods for fire-killed mobs; falls back to default drop map if burning map is empty. - @wlhlm
- Added: cooked meat drops from burning mobs, burning death drop maps
- #7516 Added WAILA tooltip provider info to MTEUniversalChemicalFuelEngine; removed dead code and disabled Spotless formatting for a 2D array structure string. - @Sanduhr32
- Added: WAILA info for UCFE
- Removed: dead code
- #7514 Added tooltip logic to MetaGeneratedItem01, Werkstoff, and BWMetaGeneratedItems; reused GT++ lang keys and config toggles (showHotIngotText, showRadioactiveText) and added new showToxicText config. Removed deprecated Materials.isRadioactive(). - @Eldrinn-Elantey
- Added: toxic item tooltip, showToxicText config
- Removed: Materials.isRadioactive() stub method
- #7506 Added LevitationBehavior class and registered it in ArmorActionManager and MechArmorAugmentRegistries. - @Spaghetti-OberNub
- Added: levitation mode, LevitationBehavior
- #7490 Updated MTEFrothFlotationCell casing amount validation and increased maximum hatch slots to allow 5 required hatches plus 10 additional hatches. - @Yoshy2002
- Fixed: Flotation Cell tooltip casing count
- #7478 Added Quartz Glass and Vibrant Quartz Glass to GlassTier EV tier list. - @flamingowrangler2869
- Added: AE2 Quartz Glass support for EV tier, Vibrant Quartz Glass support for EV tier
- #7475 Modified BlockMachines to check silk touch enchantment when harvesting and preserve NBT data accordingly. - @AnsonYeung
- Fixed: Vajra right-click opening GUIs
- Closes GTNH#25709
- #7472 Enhanced HatchElementBuilder to support autoplace for holoprojector by adding rotation-aware hatch placement logic; updated multiple multiblock controllers (Exothermic Hearth, Beam Multi, LINAC, Source Chamber, Synchrotron) to use holoprojector autoplace. - @MLGfruitshoot
- Added: holoprojector hatch autoplace support
- Fixed: Hologram Projector failing to build certain multiblocks
- Closes GTNH#25760
- #7464 Added GTDebugCommand class with ore-showroom subcommand and OreShowroom utility class to procedurally generate showroom structures using OreMixes data and stone types. Requires OP4/cheats enabled. - @Algent
- Added: ore-showroom debug command, OreShowroom structure generator
- #7457 Extended MTEIntegratedOreFactory voiding logic to include endstone dust in the stone dust voidable category. - @MLGfruitshoot
- Added: Endstone dust voiding option in IOF
- Closes GTNH#24877
- #7456 Updated GTWaila and TTRenderGTProgressBar to display progress bar when machine is actively working even if work display is disabled. - @Emilgardis
- #7454 Updated MTEFluidPipe shutter logic to account for cases where adjacent pipes have different fluid fill states (one full, one empty). - @Ghoose1
- #7452 Added ARROW_6_WHITE_PRE texture to GTGuiTextures and updated MTEFilterGui and MTESpecialFilterBaseGui to use the texture instead of direct rectangle rendering. - @Ranzuu
- Added: ARROW_6_WHITE_PRE texture asset
- #7448 Added input filter toggle logic to MTEDigitalTankBase, allowing screwdriver+sneak combination to toggle item filtering (off by default). - @Eldrinn-Elantey
- Added: Input item filter toggle for Digital Tanks
- #7446 Implemented custom soulbound behavior in ArmorEventHandlers and SoulboundBehavior, added lifecycle hooks (onAugmentAdded/onAugmentRemoved) to IArmorBehavior interface, registered new augment in MechArmorAugmentRegistries. - @Spaghetti-OberNub
- Added: Soulbound Augment item, SoulboundBehavior implementation, ArmorEventHandlers for death recovery logic, onAugmentAdded/onAugmentRemoved lifecycle methods
- #7412 Enhanced MechArmorBase and ModelMechArmor with dynamic overlay coloring based on frame tier. Uses combined texture atlas at 64px offset to avoid additional texture binds. - @Spaghetti-OberNub
- Added: dynamic armor overlay rendering
- #7394 Added NEI search alias annotations to ItemAugment and MechArmorBase classes and added corresponding localization strings. - @FourIsTheNumber
- Added: NEI search aliases for Mechanical Armor components
- #7385 Removed rotation restriction in MTEElementalDuplicator. - @MLGfruitshoot
- Removed: rotation lock restriction
- #7380 Added NodeGCEnergyHandler and Galacticraft compatibility checks to GenerateNodeMapPower; removed unused GT→GC energy conversion code from GTGCCompat. - @FourIsTheNumber
- Added: NodeGCEnergyHandler, GC machine compatibility
- Removed: unused GT EU → GC GJ conversion code
- #7356 AntimatterForge contained antimatter display now updates in real-time only when inactive, showing cycle-start value when active. - @1328116700
- Fixed: antimatter value flickering in SSASS GUI
- #7351 GTPowerfailTracker and SpaceProjectManager now check GTNH team memberships before falling back to space project teams. - @Sanduhr32
- Fixed: powerfail notifications only showing to machine owner
- Closes GTNH#25670
- #7349 Adds a recipeTransformer to neutroniumCompressorRecipes that throws IllegalArgumentException when a recipe with COMPRESSION_TIER 2 has mDuration above 4500 * SECONDS. - @FourIsTheNumber
- Added: duration validator for Black Hole Compressor recipes
- #7344 CircuitPartsItem imprint board autoclave recipe modified to ensure guaranteed output. - @MLGfruitshoot
- #7343 TextureSet now supports withStoneOreTextures() method with custom fallback container GTCustomAlphaFallbackBlockIconContainer for stone-specific ore variant textures. - @Algent
- Added: per-stone-type ore texture overrides, withStoneOreTextures method, GTCustomAlphaFallbackBlockIconContainer
- #7342 CoverRegistry now catches and handles cover deserialization failures gracefully, wiping only the failed cover rather than propagating the error. - @AnsonYeung
- Added: graceful cover load failure handling
- Fixed: cover NBT errors corrupting entire tile entity
- #7339 CircuitPartsItem now includes a living mutated solder recipe for guaranteed imprint generation. - @MLGfruitshoot
- Added: living mutated solder recipe, circuit imprint guarantee
- Fixed: language file typos
- #7328 Extended
MTEQuantumForceTransformerto support animation toggle via screwdriver interaction using existing behavior patterns from other machines. - @UltraProdigy- Added: QFT animation toggle
- #7298 Added Alumentum fuel option to
RecipeMapsin Primitive Blast Furnace recipes. - @StellaCaerulea- Added: Alumentum as PBF fuel
- #7292 Removed UMV/UXV CoAL and Convergence recipes from
ComponentAssemblyLineMiscRecipes, added toBECRecipes. - @Ruling-0- Added: BEC recipes for UMV/UXV CoAL and Convergence
- Removed: Assembly Line recipes for UMV/UXV CoAL and Convergence
- #7291 Added alternative BEC recipes for God Forge ring blocks in new
BECRecipesloader. Removed old Assembly Line recipes fromResearchStationAssemblyLine. Registered loader inGTMod. - @Ruling-0- Added: BEC recipes for God Forge components
- Removed: Assembly Line recipes for God Forge ring blocks
- #7284 Added
MTEItemPipe#onLeftclickoverride that mirrors fluid pipe implementation: preservesmConnections, carries over transit items and routing state, drops overflow if new pipe has fewer slots, sends chat feedback, returns old pipe to inventory except in creative mode. - @feazy-andrei- Added: in-place item pipe swapping
- #7281 Added compact CTM properties to all GT glass blocks. Created new textures for QFT glass, and updated Omnium Infinity and Quark Glass. Refactored quantum glass rendering to support backface CTM. - @Auynonymous
- Added: Compact CTM support for all GT glass, New QFT glass textures, Overhauled Omnium Infinity and Quark Glass textures
- Removed: Separate quantum glass renderers
- #7280 Added shapeless recipe in RecipesMachinesMulti and added optional inputValidator hook to GTShapelessRecipe for NBT-based recipe rejection. - @UltraProdigy
- Added: T2 Maceration Stack shapeless recipe, inputValidator hook for GTShapelessRecipe
- #7250 Updated
MTERadioHatchGUI color logic inMTERadioHatchto provide better visual feedback for item validity in the filled bar. - @mllfjn- Fixed: Radio Hatch displaying filled bar for invalid items
- Closes GTNH#24748
- #7245 Enhanced
MTEMegaIndustrialApiarywith automatic water placement logic during structure formation. - @Yoshy2002- Added: Auto water placement in Mega Industrial Apiary
- #7241 Enhanced
GasSiphonRecipesto compute and store EU/t values for each planet/depth. UpdatedGasSiphonRecipeHandlerto display EU/t in NEI. ModifiedMTEPlanetaryGasSiphonand legacy variant tooltips to explain scaling. - @jude123412- Added: EU/t computation for each planet/depth combination, EU/t display line in NEI recipe page
- #7235 Updated
HatchElementenum to recognize Crib and Proxy as valid input hatch types. ModifiedMTEEnhancedMultiBlockBaseandMTEMultiBlockBasestructure check logic to accept these hatch types in input hatch positions. - @Yoshy2002- Added: Crib acceptance as input hatch, Proxy acceptance as input hatch
- Fixed: Crib and Proxy not being accepted as input hatches
- #7228 Added
BlockReinforcedclass and BLOCK_REINFORCED_CONCRETE texture. Updated ItemList and Textures enums. Modified MTERecipeLoader and ChemicalBathRecipes to use the new block. PosteaTransformers updated for compatibility. - @LazyFlesh- Added: GT Reinforced Block with textures, ItemList entry for new block
- #7225 Added glowing property to MaterialBuilder.java, updated material definitions in MaterialsInit.java and Materials.java, modified GTBlockOre.java rendering to apply glow effect. Added animated texture file. - @YannickMG
- Added: glowing ore property, animated infused stone texture
- #7219 Major refactor of DetravScannerGUI.java, added search bar, direction arrow rendering, scrollable map, coordinate display on hover. Added helper classes DetravOreMarker and DetravOreMarkerRenderer, updated ProspectingPacket and related UI classes. - @Algent
- Added: search bar, direction arrow, coordinate tooltip, scrollable map, UI scaling
- #7218 Added power button widget to MTEIndustrialApiary.java GUI. - @lc-1337
- Added: power button in Industrial Apiary GUI
- #7217 Extensive refactor of drone-related classes including EntityDrone.java, new CameraViewportManager and CameraViewportClientManager for camera control, new networking packets (PacketObserveMachine, PacketOpenRemoteMteGui), and DroneCentreGuiUtil updates. Fixed float precision loss in rotor animation by tracking ticks properly. - @RealSilverMoon
- Added: drone observation mode, search bar in production panel, multi-grouping support, remote GUI access, camera viewport system
- Fixed: drone model rendering for Tier 4, animation stuttering on long runtimes, layout overlapping, remote interface chunk loading, GUI closing
- Closes GTNH#25554
- #7212 Added BlockPad.java with bounce and sticky pad implementations, updated API enums, added textures and language entries. - @LazyFlesh
- Added: bounce pad block, sticky pad block
- Removed: IC2 bounce pad (deprecated)
- #7196 Implemented BlockFenceMetal.java and ItemFence.java with corresponding casing registration, recipes, and textures. Updated Lightning Rod and Industrial Chisel to use GT fence, and removed IC2 fence references from loaders. - @LazyFlesh
- Added: GT Iron Fence block, GT Iron Fence casing, GT Iron Fence crafting recipes, GT Iron Fence item
- Removed: IC2 iron fence loader entries
- #7187 Added isAllowedToWork() status display to BaseMetaTileEntity debug information and corresponding lang entry. - @loenaaaa
- Added: isAllowedToWork() status in tricorder debug output
- #7186 Added GT Reinforced Glass block variant in BlockGlass1.java with corresponding casing registration, item list entry, and recipes in AssemblerRecipes and FluidSolidifierRecipes. Updated glass tier enum and removed IC2 glass references from several loaders. - @LazyFlesh
- Added: GT Reinforced Glass block, GT Reinforced Glass casing, GT Reinforced Glass crafting recipes
- Removed: IC2 reinforced glass loader references
- #7175 Introduced ArmorAction and ArmorActionManager classes to register and manage armor features, added ArmorRadialMenu UI system with ArmorRadialMenuSession for state management, integrated keybind handling into ArmorAction, and refactored armor behavior classes to use the new system. - @Spaghetti-OberNub
- Added: ArmorAction, ArmorActionManager, ArmorRadialMenu, ArmorRadialMenuSession, ArmorRadialUIFactory
- Removed: old ArmorKeybinds class
- #7166 Adapted CTM logic from GTCopiedBlockTextureRender into GTRenderedTexture to support automatic texture connection. - @tiffit
- Added: CTM support for GTRenderedTexture
- #7145 Added getWailaInfo() implementations to MTEElectricBlastFurnace, MTEExothermicHearth, MTEMegaBlastFurnaceLegacy, and MTEAdvEBF to display current heat/temperature. Added corresponding localization keys. - @FourIsTheNumber
- Added: EBF heat display in WAILA
- #7139 Updated GTNEIDefaultHandler and MTEBasicMachineBaseGui to filter NEI recipe queries by machine tier, preventing display of recipes exceeding the current tier level. - @TheYoingLad
- Added: tier filtering for NEI recipe queries
- #7122 Added TerrasteelBehavior class implementing IManaDiscountArmor interface, added manaDiscount field to ArmorState, registered augment in MechArmorAugmentRegistries. - @Spaghetti-OberNub
- Added: Terrasteel Enhancement Augment, Mana discount support in armor
- #7097 Added MTEHatchDebugDataAccess, registered in MachineLoader with new MetaTileEntity ID and item list entry. - @UltraProdigy
- Added: Debug Data Access Hatch, Debug hatch item
- #7096 MTEMultiBlockBase.runMachine uses the boolean results of addItemOutputs and addFluidOutputs and calls stopMachine with new ITEM_OUTPUT_FAILED or FLUID_OUTPUT_FAILED reasons when protectsExcessItem or protectsExcessFluid is set. Adds the reasons to ShutDownReasonRegistry and two en_US lang strings. - @hinyb
- Added: item output failed shutdown reason, fluid output failed shutdown reason
- Fixed: false positive shutdown on empty outputs
- #7095 Created MTEFusionComputerGui and refactored MTEFusionComputer to separate GUI logic from controller logic, enabling error and status message display. - @AnsonYeung
- Added: Fusion Reactor ModularUI2 GUI, Troubleshooting messages in Fusion Reactor
- Closes GTNH#25223
- #7086 Added error widget to MTEBasicMachine and MTEBasicMachineBaseGui, updated GTGuiTextures and MTETieredMachineBlockBaseGui to support error display. - @TheYoingLad
- Added: Error display widget for single-block machines
- #7062 Introduced INonConsumedItemDisplay interface implemented by MTEBasicMachine; CommonBaseMetaTileEntity.getInterfaceNameSuffix() now appends non-consumed items using itemSlotsSuffixFormat config. Renamed cibManualSlotsSuffixFormat to itemSlotsSuffixFormat. - @Eldrinn-Elantey
- Added: INonConsumedItemDisplay interface, Non-consumed item display in AE2 terminal names
- #7060 Added crash-on-overflow logic to MTEMultiBlockBase with a new shutdown reason registered in ShutDownReasonRegistry. Lang strings added for the shutdown message. - @hinyb
- Added: Shutdown reason for output overflow, Localized crash message
- #7059 Added three new items to ItemDysonSwarmParts enum, registered in ItemList, added textures with animated metadata. - @flamingowrangler2869
- Added: Corona-Resistant Drone Case, Hyperfine TrNq+ Radioisomer Pellet, Magnetically Shielded Femtocontroller
- #7054 Created MTEBioLabGui using ModularUI2 framework, updated recipe map result count in BartWorksRecipeMaps, modified MTEBioLab for new GUI system, added new texture IDs and theme definitions. - @TheYoingLad
- Added: MTEBioLabGui for ModularUI2
- #7053 Created new MTEBetterJukeboxGui using ModularUI2, updated texture constants in GTGuiTextures, modified MTEBetterJukebox to support new GUI system. - @TheYoingLad
- Added: MTEBetterJukeboxGui for ModularUI2, MachineModularSlot disc slot support
- #7048 Extended GTGuiThemes with disabled button themes, updated GTWidgetThemes parser to support any WidgetTheme subclass, modified MTEBasicMachineBaseGui and multiblock base GUIs to use new theme system. - @TheYoingLad
- Added: disabled button themes, disabled toggle button themes, auto-disabled output buttons
- #7044 Implemented comprehensive network analysis system with GTPacketNetworkAnalyzer, PowerNetworkBuilder, GraphNode, and WorldOverlayRenderer for client-side visualization. Integrated with power network graph APIs. - @slprime
- Added: Network Analyzer Tool, network visualization system, topology/critical/active/amperage/voltage display modes, severity color coding, network packet handlers
- #7042 Added Strong Bronze Machine Casing recipe to RecipesMachinesCustom. - @LunaDziaba
- Added: Assembler recipe for Strong Bronze Machine Casing
- Fixed: Strong Bronze Machine Casing production bottleneck
- Closes GTNH#25049
- #7039 Added new movement augment behavior combining speed boost, jump boost, and step assist with 3x multiplier, integrated into MechArmorAugmentRegistries with ItemList reference. - @FourIsTheNumber
- Added: Boots of the Traveler augment, tripled movement speed boost, step assist augment behavior
- #7034 Implemented asteroid exclusion zone checking in chaos island generation, adds configurable radius parameter to DimensionDef and GalacticGregConfig, updates Draconic-Evolution dependency. - @Algent
- Added: asteroid exclusion zone around chaos islands, configurable protection radius
- #7024 AugmentBuilder: Expanded texture storage to 4 slots for Helmet, Chestplate, Leggings, Boots. MechArmorAugmentRegistries: Updated augment definitions with per-piece textures. MechanicalArmorRenderer: Modified to respect piece-specific textures. - @Spaghetti-OberNub
- Added: Per-piece texture slots for augments
- #7022 Created new MTEHatchLoS class with 428 lines implementing line-of-sight detection logic. Added IHasWorldObjectAndCoords interface for coordinate tracking. Updated MTEBECMultiblockBase with new hatch support. Refactored MTEBECAssembler and MTEBECIONode with improved connector logic. Added new MTE ID registration and item list entry. - @RecursivePineapple
- Added: Line-of-Sight Connector Hatch, IHasWorldObjectAndCoords interface, Tooltip documentation
- #7019 Added ICasingTextureProvider interface; BlockMachines#getIcon returns background texture via provider. Updated relevant casing CTMs to connect by texture. SBRWorldContext: changed nextUp/nextDown calls to add/subtract LAYER_OFFSET for z-fighting fix. Dependency version bump included. - @tiffit
- Added: ICasingTextureProvider interface, CTM support for BlockMachines
- Fixed: Z-fighting issues with compact CTM
- #7008 MTEElectrodeDetectorHatchGui and MTEElectrodeDetectorHatch: Added mode and multiplier information to tooltip display; MTEIndustrialArcFurnace and ArcFurnaceElectrode updated to reflect tooltip changes. - @Pxx500
- Added: Electrode mode and multiplier display in surge tooltip
- #6921 Added batch mode support to MTESolarFactory by enabling the
SUPPORTS_BATCH_MODEcapability flag. - @MLGfruitshoot- Added: Batch mode support for Solar Factory
- #6917 Added tiered Pattern Provider entities (MTEHatchPatternProvider) with per-tier ItemList entries and MetaTileEntity IDs. Updated LoaderMetaTileEntities to register all tiers during machine loading. Large Molecular Assembler recipe updated to use new tier system. - @asquared31415
- Added: Pattern Provider tiers (LV, MV, HV, EV, IV, LuV, ZPM, UV variants), Tier-specific MetaTileEntity IDs in MetaTileEntityIDs.java, Tier-specific ItemList entries in ItemList.java
- Fixed: Pattern Provider tooltip accuracy
- #6915 MTEAtmosphericReconditioner ported to MUI2 with new GUI class (MTEAtmosphericReconditionerGui), updated rotor durability logic in ItemBasicScrubberTurbine, and added LE mode handling for critically damaged rotors. - @TheYoingLad
- Added: ModularUI2 GUI for Atmospheric Reconditioner, Soldering iron interaction support, LE mode output slot for damaged rotors
- Fixed: Filter deletion when rotor durability too low, Rotor durability bug
- #6909 Added output side selection buttons to MTEBasicMachineBaseGui with directional arrow textures (up, down, left, right) and a back-face texture. Buttons integrated into modular UI overlay system via new GTGuiTextures entries. - @FrostyFire1
- Added: Output side selection buttons (up, down, left, right, back) in singleblock machine GUI, Arrow and back-face button textures, GUI texture definitions in GTGuiTextures
- #6899 Migrated MTEHatchVoidBusGui to MUI2; removed legacy code and simplified FilterSlot by removing redundant deprecated methods. - @TheYoingLad
- Added: MUI2 Void Bus GUI
- Removed: Legacy Void Bus GUI code, Deprecated FilterSlot methods
- #6892 Refactored BioObjectAdder to use enums (BioCultureEnum, BioDataEnum) instead of hard-coded indexing; simplified recipe matching logic and updated loaders to support flexible item ordering. - @Sanduhr32
- Added: Any-order item insertion for BioLab, BioCultureEnum and BioDataEnum
- Removed: Hard-coded culture/data item ordering
- #6890 Migrated MTEHatchInputGui to MUI2; added fluid fill visualization to gauge in MTEHatchBaseGui; removed deprecated getMUI() overrides from various hatch implementations and cleaned up redundant code. - @TheYoingLad
- Added: Dynamic fluid gauge fill display, MUI2 Input Hatch GUI
- Removed: Legacy Input Hatch GUI code
- #6881 Added Jackhammer to acceptable tools in MTEHatchMaintenance.java for hardhammer maintenance compatibility. - @UltraProdigy
- Added: Jackhammer hardhammer maintenance support
- Closes GTNH#24922
- #6876 Integrated coil channel from StructureLib into MTELargeChemicalReactor to enable deterministic coil selection via projector; works with NEI. - @loenaaaa
- Added: Coil channel support for Large Chemical Reactor
- #6866 Added structure constraint definitions to MTEBeamMirror for 90° and 180° configurations, updated beam multibase and related classes to enforce proper alignment. - @Sanduhr32
- Added: 90° and 180° beam mirror forced structures, Mirror structure validation
- Removed: Flexible beam mirror orientations
- #6857 Refactored MTEHatchCreativeData to function as an infinite wireless hatch compatible with multiblock structures, replacing screwdriver interaction with right-click activation. - @UltraProdigy
- Added: Wireless multiblock-compatible hatch functionality
- Removed: Standalone generator mode
- #6851 Added wrench offhand detection in ItemMachines to set directional blocking on fluid pipe placement. - @mhowell9
- Added: Directional pipe placement with offhand wrench
- #6849 Converted MTEHatchSolidifier GUI to ModularUI2, added GhostMoldSlotWidget and GhostMoldSyncHandler for mold selection, removed legacy GTPacketSetMold network packet system. - @TheYoingLad
- Added: MTEHatchSolidifierGui ModularUI2 implementation, GhostMoldSlotWidget, GhostMoldSyncHandler
- Removed: GTPacketSetMold network packet, Legacy MTEHatchSolidifier GUI code
- #6841 Refactored SettingsPanel and SettingsPanelBuilder to use Grid layout instead of fixed divider sizes. Moved BEC multi GUIs to separate classes. Added Parameter system compatibility. Depends on PR #6840. - @TheYoingLad
- Added: Parameter system compatibility for settings, Separate GUI classes for BEC multiblocks
- Removed: Fixed divider size requirement, HeaderSettingRow class
- #6838 Updated ItemLabParts to apply italic formatting to Latin nomenclature text in item tooltips. - @iouter
- #6820 Added dimension-specific height range overrides to OreMixes and WorldgenGTOreLayer. Changed WorldgenQuery dimensions field from Set<String> to single String. Updated Vein Stats NEI plugin to display height overrides with asterisk markers. - @tiffit
- Added: Per-dimension ore vein height overrides, Dimension-specific spawn height configuration
- Fixed: Twilight Forest ore vein generation rates
- #6815 Added MTELargeHadronColliderGui calculator widgets and fixed beam energy calculation. Updated Particle enum boson weights and added .allowC2S() to GUI sync values for text field inputs. - @ham-corp
- Added: LHC calculator widgets, Probability table display, Calculator button overlay texture
- Fixed: LHC tooltip error, Beam energy calculation error, GUI client-to-server sync for LHC parameters
- Closes GTNH#24901
- #6800 Added scanner info methods and WAILA info to MTEExothermicHearth and MTEEndothermicFridge. Fixed getMaxInputVoltage() call that should have been getMaxInputEu to correctly calculate total supplied voltage. Added subspace cooling WAILA display. - @Yoshy2002
- Added: Scanner info to Exothermic Hearth, Scanner info to Endothermic Fridge, Subspace cooling WAILA info
- Fixed: Hearth heat calculation using base voltage instead of total voltage, Recipe calculation issues in Hearth
- Closes GTNH#24869, GTNH#24929
- #6781 Added GTStructureUtility.ofOreDictBlockMap(String) method to map OreDict entries to block-metas, and updated MTEMegaIndustrialApiary structure elements to use this method instead of hardcoded vanilla wood blocks. - @Eldrinn-Elantey
- Added: GTStructureUtility.ofOreDictBlockMap OreDict mapping method, OreDict support for Mega Industrial Apiary wood elements
- #6774 Replaced three-frame saw animation with a single rotating texture in MTEIndustrialCuttingMachine.java using GL clip plane rotation in rendering code. - @FourIsTheNumber
- Added: Smooth saw blade rotation rendering
- Removed: Discrete frame animations for saw
- #6773 Updated MaterialsInit.java, CentrifugeRecipes.java, and MixerRecipes.java to replace Dilithium Dust requirements with Unstable Dust in Shijima-related recipes. - @Auynonymous
- #6756 New BlockCasings14 entry for Naquadah Reinforced Distillation casing; texture and localization added. - @chrombread
- Added: Naquadah Reinforced Distillation casing
- #6754 ChiselBackend logic expanded; MTEHatchChiselBusGui refactored with improved layout and controls; MTEIndustrialChisel workflow optimized. - @Luca-Guettinger
- #6749 New UniversiumMetaItemRenderer for MetaGeneratedItem03 with mask-based Universium shader; updated coil textures (LuV/ZPM/UV/UHV/UIV) with improved color accuracy and new Infinity renderer configuration option. - @jude123412
- Added: UniversiumMetaItemRenderer, Accessibility config for Universium render, Infinity renderer for Transcendent Circuit Board
- #6748 Connection logic runs on client during placement and syncs with server; BaseMetaPipeEntity and MTECable connection routines updated to use instant placement logic. - @tiffit
- Fixed: Pipe connection delay
- #6740 Added IHatchElement interface, HatchElement enum, and enhanced StructureChecker/PositionedStructureError to display expected block names; requires StructureLib PR #57. - @Luca-Guettinger
- Added: IHatchElement interface, HatchElement enum, Expected block display in error messages, HatchElementBuilder
- Fixed: Multiblock error diagnostics clarity
- #6737 New TurbineRotorDumper and TurbineFuelDumper classes with shared DumperUtils; fuel model uses FuelGroup/FuelEntry structure supporting gas, plasma, and steam turbines. - @Eldrinn-Elantey
- Added: TurbineRotorDumper, TurbineFuelDumper, DumperUtils, Turbine data dump menu items
- #6735 Added new items to
IDMetaItem03, expandedCondensateTypeenum with new condensate varieties, createdEM2MetaMaterialRecipesloader with AAL and BEC recipes, and added Activated Netherite recipes inGodforgeloader. - @Ruling-0- Added: 8 MetaMaterials, Activated Netherite fluid, Condensate animation handler, EM2 metamaterial recipes
- #6731 Implemented
FakeCuttingFrontendand fake recipe system to consolidate multiple cutting recipes with identical output into single displayable recipes. UpdatedRecipeMaps, processing loaders, and added new recipe handlers. - @TotallyNotOndre- Added: FakeCuttingFrontend, Fake recipe system for cutters
- #6729 Refactored
MTEBasicMachineWithRecipeto use ModularUI2 framework and abstracted recipe map GUI logic. Updated individual machine classes to use new GUI structure with de-privatized fields. - @C0bra5- Added: ModularUI2 support for basic machines
- #6728 Updated
MTENanoForgeautoplace speed calculation to matchForge of the Godslogic. - @Angry3vilbot- Closes GTNH#24544
- #6716 Added a recipe to
BeamlineRecipeLoaderthat converts Unstable Dust to OMEGA particles in a source chamber, and updatedParticle.javato support this conversion. - @Auynonymous- Added: Unstable Dust source chamber conversion recipe
- #6703 Added minewood tree recipe to RecipeLoaderTreeFarm to enable Twilight Forest minewood growth via the tree farm multiblock. - @Quollveth
- Added: minewood tree recipe
- #6678 Modified MTELargeHadronColliderGui.java to reorganize the information panel layout and adjust language key formatting to better fit the UI. - @FrostyFire1
- #6676 Migrated MTEHatchOutput and related classes to MUI2 framework, created MTEHatchOutputGui.java with enhanced fluid visualization, deprecated old IFluidLockable in favor of IFluidLockableMui2, and updated dependent classes (MTEHatchOutputME, MTEHatchVoid, etc.) to use new interfaces. - @TheYoingLad
- Added: MTEHatchOutputGui.java with MUI2 UI implementation, IFluidLockableMui2 interface
- Removed: IFluidLockable interface (deprecated in favor of MUI2 version), old ModularUI output hatch GUI code
- #6672 Added dedicated top/bottom texture variants for firebox casings in BlockCasings3 and BlockCasings4, with texture definitions in the Textures enum and new PNG assets for each firebox tier. - @Auynonymous
- Added: unique top and bottom textures for firebox casings (Bronze, Steel, Titanium, Tungstensteel)
- Closes GTNH#24619
- #6671 Added four new sawblade item variants with tier-specific renderers, updated MTEIndustrialCuttingMachine to support blade tier logic, added FormingPress recipes for each tier, and enhanced cutter visual model with tier-specific textures. - @Yoshy2002
- Added: 4 sawblade tiers with tier-dependent rendering, sawblade recipes in Forming Press, tooltips for sawblades
- #6669 Added tooltip text display to the manual slot UI widget in MTEHatchInputBusMEGui by adding language key and widget configuration. - @Ranzuu
- Added: tooltip for manual slot in ME Input Bus GUI
- #6663 Deleted pump token item definitions and removed all pump token recipe references from crafting systems. - @VortexSo4
- Removed: Pump Tokens from ModItems, Pump Token texture assets, All pump token recipe references
- #6661 Created SubstituteFluidStack class and enhanced GTRecipe/GTRecipeBuilder to support alternative fluid stacks with variable amounts; integrated into recipe backend for display and validation. - @TotallyNotOndre
- Added: SubstituteFluidStack class for fluid alternatives, Recipe builder support for fluid substitutions
- #6660 Removed or restricted fuel value checks in MTEGeothermalGenerator and MTERocketFuelGenerator; also fixed duplicate Pyrotheum and Cryotheum entries. - @Luca-Guettinger
- Removed: Geothermal generator arbitrary burnable item support, Rocket Fuel generator arbitrary burnable item support, Duplicate Pyrotheum/Cryotheum material definitions
- Fixed: Geothermal/Rocket generator accepting invalid fuels, Duplicate Pyrotheum and Cryotheum in NEI
- #6655 Added new Materials, ItemList entries, recipe definitions in BHC and BeamCrafter loaders, fluid textures, and tooltip documentation for two new crafting materials. - @Ruling-0
- Added: Pseudo Star material and item, Cosmic Solder (active and inactive) fluids, BHC recipe for Pseudo Star, BeamCrafter recipes for Cosmic Solder variants, Material-specific texture assets
- #6650 Modified checkMachine validation in MTEPCBFactory to expand allowed hatch positions by replacing character validation constraints. - @Rikka-Kitani
- #6649 Created TextureBlockMaterial class for custom rendering, added material icons for CUSTOM variants, updated FluidDisplayStackRenderer and block/item rendering systems to use new texture system. - @Ruling-0
- Added: TextureBlockMaterial custom renderer, Material-specific texture assets for CUSTOM variants, Fluid rendering support for special materials
- #6639 Added new CompositeParameter class for parameter grouping. TTMultiblockBaseGui refactored to support dynamic tooltips and movable panels. ItemParametrizerMemoryCard updated with tooltip display. Space Pump and BEC machines now use CompositeParameter for cleaner UI. - @TheYoingLad
- Added: CompositeParameter class, dynamic parameter tooltips, movable parameter panels
- #6626 Added MTETypeFilterGui using MUI2 framework; updated MTETypeFilter with new GUI integration and enhanced data handling. - @TheYoingLad
- Added: ModularUI2 interface for Type Filter
- #6625 Added MTERecipeFilterGui using MUI2 framework; updated MTERecipeFilter with new GUI integration and enhanced data handling. - @TheYoingLad
- Added: ModularUI2 interface for Recipe Filter
- #6620 Added TileEntityModulePumpGui with MUI2 layout; updated TileEntityModuleAssembler and TileEntityModulePump with new GUI integration. Removed legacy TileEntityModuleMiner file. - @Luca-Guettinger
- Added: ModularUI2 interface for Space Pump, hover tooltips for button values, Space Assembler MUI2 migration
- Removed: TileEntityModuleMiner (legacy)
- #6619 CoverGuiData and CoverUIFactory updated to support reactive cover positioning and title visibility toggles. All cover panels now use coversChildren() for dynamic sizing instead of fixed dimensions. - @tiffit
- Added: reactive cover popup positioning, optional title text hiding for cover popups, dynamic GUI sizing with coversChildren()
- Removed: hardcoded width/height for cover GUIs
- Fixed: covers crashing when opening popup multiple times, sync value issues in cover GUIs
- #6613 Added MTESpecialFilterBaseGui, the OVERLAY_BUTTON_NBT texture, and allowNbt getter/setter on MTESpecialFilter. MTESpecialFilter.useMui2 now returns true, MTERecipeFilter and MTETypeFilter override it to false, and FILTER_SLOT_INDEX in MTEFilterBase is public. - @TheYoingLad
- Added: MUI2 special filter GUI base, NBT toggle button texture
- #6605 Replaced hardcoded tooltip strings in MBItemFrame with localization keys using GTUtility.translate(); added gtpp.tooltip.frame.* keys to miscutils lang files for en_US and ru_RU. - @Eldrinn-Elantey
- Added: bee frame localization keys, live language switching support
- Fixed: hardcoded bee frame tooltips
- #6603 Added spawn chance calculation and tooltip display in PluginGT5VeinStat and ItemDimensionDisplay to show vein generation probability as a percentage. - @Connor-Colenso
- Added: spawn chance tooltip for ore veins
- #6601 Modified BioCulture name handling in ItemLabParts to read names from NBT when available, swapped display order of common and latin names, and added translatable lang keys for bio item names. - @iouter
- Added: bio item localization keys, NBT-based name retrieval
- Removed: direct NBT name loading from BioCultureLoader
- Fixed: 'Unnamed' bio items, bio name translation
- #6586 Enhanced GTInflectionManager to chain multiple replacement rules across nested JSON keys; added built-in rules for lowercase, uppercase, and capitalize transformations to OrePrefixes. - @iouter
- Added: multi-level inflection rules, lowercase/uppercase/capitalize built-in rules, phrase key support for multi-word material names
- #6557 All multiblock checkMachine implementations across GT, BartWorks, GoodGenerator and gtPlusPlus are migrated to the error-list signature using checkCasingMin and checkHas*Hatch helpers and StructureErrors. The Superconductor splitter module is limited to one input hatch and the Space Mining Module no longer fails to get data from the SE when disconnected. - @AnsonYeung
- Added: structure diagnostics for all multiblocks
- Removed: multiple input hatches on the Superconductor Splitter module
- Fixed: kick when toggling a disconnected Space Mining Module
- #6538 Added StructureErrorHighlightRenderer client-side renderer for red block outlines, modified WrongBlockError to include a highlight button, added button handling in MTEMultiBlockBaseGui, added highlight button texture, and fixed duplicate structure check execution bug. - @Luca-Guettinger
- Added: StructureErrorHighlightRenderer, highlight_block button texture
- Fixed: Duplicate structure check causing incorrect coordinates, Block highlight for WrongBlockError
- #6532 Replaced the StructureError enum and StructureErrorSyncer with a StructureErrorId enum and a gregtech.api.structure.error package (StructureError interface, StructureErrorRegistry, MissingHatch, TooManyHatch, TooFewCasings, WrongBlockError, SingletonStructureError). MTEMultiBlockBase syncs the errors through a GenericListSyncHandler, and MTEEnhancedMultiBlockBase tracks a structure status and error position with a StructureErrorWalker. Addons using the old StructureError enum must move to the new API. - @AnsonYeung
- Added: MUI2 structure error display, wrong block error, missing hatch error, too many hatches error
- Removed: old StructureError enum, StructureErrorSyncer
- Migration: Multiblocks that overrode validateStructure or localizeStructureErrors, or used the StructureError enum, StructureErrorSyncer or getStructureErrors(), must move to the gregtech.api.structure.error.StructureError interface. Errors are now added in checkMachine(IGregTechTileEntity, ItemStack, List<StructureError>) through the StructureErrors factory methods; the two-argument checkMachine still works but is deprecated.
- #6527 Ported MTETeleporter from old GUI system to MUI2, creating MTETeleporterGui and refactoring teleporter implementation to remove 58 lines of old GUI code while adding 45 lines of MUI2 controller code. - @TheYoingLad
- Added: MTETeleporterGui class
- #6522 Converted ItemCircuitProgrammer from the old GUI system to MUI2, adding new texture definitions in GTGuiTextures and implementing the GUI in a new CircuitProgrammerGui class. - @TheYoingLad
- Added: CircuitProgrammerGui class, MUI2 texture definitions
- #6516 Added GTWorkAreaRenderer, IWorkAreaProvider interface, and WorkAreaProviderRegistry. Integrated work area display into drilling plant GUIs with chunk status indicators. - @NeutronSelector
- Added: work area visualization, GTWorkAreaRenderer, IWorkAreaProvider interface
- Closes GTNH#24035
- #6513 Changed Multi-Amp dynamo to extend MTEHatchDynamo, restricted to ≤4A. Deprecated Buffered Dynamo class with removal TODO. Added HV 4A dynamo recipe in TecTech assembler. - @Ruling-0
- Added: HV 4A TecTech dynamo
- Closes GTNH#18687
- #6496 Ported IntegratedCircuitGui to MUI2 with updated SelectItemGuiBuilder, supporting both main and offhand circuit slots. - @TheYoingLad
- Added: IntegratedCircuitGui MUI2 implementation
- #6494 SprayColorInfiniteGui created as new MUI2 implementation; GTPacketInfiniteSpraycan and BehaviourSprayColorInfinite refactored for MUI2 compatibility. - @TheYoingLad
- Added: SprayColorInfiniteGui (MUI2)
- Removed: old Infinite Spray Can GUI code
- #6485 BlockMachines break handler extended to drop covers and clear color data on shift-click. - @evgengoldwar
- Added: shift-break cover drop and colorization clear
- #6477 VolumetricFlaskGui created as new MUI2 implementation; ItemVolumetricFlask refactored to use MUI2 backend; VolumetricFlaskHelper and related components updated. - @TheYoingLad
- Added: VolumetricFlaskGui (MUI2)
- Removed: old ItemVolumetricFlask GUI code
- #6458 Added language string and display logic in CauldronFrontend to show stack size flexibility in NEI recipe output. - @Luca-Guettinger
- Added: NEI cauldron recipe stack size note
- Closes GTNH#24348
- #6448 Re-introduced cable connection logic in MTECable.java and updated MetaGeneratedTool to register the wire cutter's multi-cable behavior. Added configuration option and language strings. - @Yoshy2002
- Added: Wire cutter multi-cable connection, Configuration for cable connection behavior
- #6447 Added Planck Manifold to ItemList and MetaGeneratedItem03, registered it as a CircuitComponent (without calibration counting), and added language/texture files. - @GDCloudstrike
- Added: Planck Manifold as a real, craftable item
- #6442 Created MTESuperBufferGui and refactored MTESuperBuffer to use MUI2. Moved shared buffer logic to dedicated class. - @TheYoingLad
- Added: MTESuperBufferGui
- Removed: Duplicate buffer logic
- #6441 Created MTEChestBufferGui and updated MTEChestBuffer to use MUI2. - @TheYoingLad
- Added: MTEChestBufferGui
- #6440 Created MTEItemDistributorGui and updated MTEItemDistributor to use MUI2. Added language entries for new config options. - @TheYoingLad
- Added: MTEItemDistributorGui, Item Distributor UI configuration
- Fixed: Item Distributor UI configuration missing
- Closes GTNH#23806
- #6438 Created MTERegulatorGui class and refactored MTERegulator to use MUI2 instead of legacy GUI system. - @TheYoingLad
- Added: MTERegulatorGui
- #6437 Updated CommonBaseMetaTileEntity and MTEHatchCraftingInputME to format ghost circuit info using configurable patterns. Added config options in Gregtech.java. - @Eldrinn-Elantey
- Added: Ghost Circuit Suffix Format config, CIB Manual Slots Suffix Format config
- #6430 Added Hexanite and Planck-Scale Circuit components to Materials enum and MaterialsIDMap. Added CircuitComponent types, recipes in FusionReactorRecipes and FluidSolidifierRecipes, godforge integration, and language entries. - @Auynonymous
- Added: Hexanite material, Planck-Scale Circuit NAC components, Coiled Thermal Superconductor, Planck-Scale Manifold
- #6426 Created MTEBufferBaseGui and refactored MTEBuffer and MTEFilterBase to use MUI2. Added new GUI textures and base class methods. - @TheYoingLad
- Added: MTEBufferBaseGui class, MUI2 buffer GUI framework
- #6419 Created MTEHatchWirelessMultiGui and updated references in related multiblock machines and hatches. - @TheYoingLad
- Added: MTEHatchWirelessMultiGui
- #6416 Created MTEHatchWirelessComputationInputGui class and updated MTEHatchWirelessComputationInput to use MUI2 instead of legacy GUI system. - @TheYoingLad
- Added: MTEHatchWirelessComputationInputGui
- #6414 Removed shaped recipe registration loop in ProcessingLog and added single shapeless recipe in CraftingRecipeLoader to consolidate log variant handling. - @Algent
- Added: Consolidated long wood stick shapeless recipe
- Removed: Multiple shaped long wood stick recipes
- #6413 Added WAILA data provider to MTEQuantumComputer to display current computation progress with localization. - @Alexdoru
- Added: Computation display in Quantum Computer WAILA
- #6399 Added capacity display logic to TooltipHelper and ItemMachines tooltip rendering with localization support. - @Alexdoru
- Added: EU capacity information in machine tooltips
- #6396 Added new circuit components and masks to ItemList, MetaGeneratedItem03, CircuitComponent, and MaskList with recipes in Godforge; removed multi-step attribute from infinity plasma. - @GDCloudstrike
- Added: 5 new power IC tiers (UEV/UIV/UXV/OpV/MaxV), NAC components for new PICs, New lens and wafer, 2 new beamline masks with recipes
- Removed: Multi-step attribute from infinity plasma
- #6389 Added toggle widget and mode parsing to MTEHatchInputBusDebug and its GUI with new textures for the overlay button and info panel. - @loenaaaa
- Added: Finite mode toggle for debug input bus, Info button for finite mode explanation, Finite mode button textures
- #6386 Created new MTEHatchUncertaintyGui class with MUI2 implementation, refactored MTEHatchUncertainty to use new GUI, updated button texture assets and GTGuiTextures. - @TheYoingLad
- Added: MTEHatchUncertaintyGui (MUI2 version), GUI button overlays
- Removed: Old Hatch Uncertainty GUI code
- #6377 Added batch mode support to MTEPlanetaryGasSiphon. - @Yoshy2002
- Added: Batch mode support for Gas Siphon
- #6368 Implemented IInterfaceNameProvider on CommonBaseMetaTileEntity with getInterfaceNameSuffix() delegating to ghost circuit configuration support. - @Eldrinn-Elantey
- Added: IInterfaceNameProvider implementation
- #6366 Added ItemList entries, IDMetaItem03 definitions, and AssemblerRecipes for UEV/UIV/UMV voltage coils with corresponding GTPP fine wire materials and textures. - @Auynonymous
- Added: UEV voltage coil, UIV voltage coil, UMV voltage coil, Celestial Tungsten fine wire, Rhugnor fine wire, Dragonblood fine wire
- #6347 Increases Digester recipe map from 1 to 3 item input slots in LanthanidesRecipeMaps.java. Dependent on CropsNH PR #99. - @C0bra5
- Added: Two extra Digester item slots
- #6318 Added displayText theme to GTWidgetThemes and GTGuiThemes, updated multiple GUI classes to use the new theme for dynamic values and status displays. - @Ranzuu
- Added: displayText widget theme, theme application across multiple GUIs
- #6309 Migrated MTEHatchRack GUI to MUI2 with new textures and layout code; added GTGuiTextures entries and created MTEHatchRackGui class. - @TheYoingLad
- Added: MTEHatchRackGui class, MUI2 textures for hatch rack, language entries for hatch rack
- #6305 Added toggle configuration in PowerGogglesConfigHandler, implemented visibility toggle logic in PowerGogglesKeybindHandler and SimplePowerGogglesRenderer, fixed rounding in power display calculation. - @Ranzuu
- Added: power measurement toggle, toggle keybind
- Fixed: power measurement rounding
- Closes GTNH#24179
- #6302 Enhanced MTEVoidMinerBaseGui with selected ore button styling, expanded ore tooltips with void status, changed ore search to hide unmatched ores using MUI2's wrap() method. No logic changes to void miner functionality. - @purebluez
- Added: ore button styling, enhanced ore tooltips
- #6300 Added description lines for Arc Furnaces in en_US.lang (2 lines modified). - @Eldrinn-Elantey
- Added: Arc Furnace descriptions
- #6294 Created CoverAdvancedWirelessController with CoverAdvancedWirelessControllerGui, added new ItemList entry and texture. Refactored CoverWirelessController to reduce duplication. Added new cover to IDMetaItem01 and MetaGeneratedItem01. Closes modpack issue #24059. - @KleinGrrmpf
- Added: Advanced Wireless Machine Controller Cover, advanced wireless controller GUI, internal logic gate support
- Closes GTNH#24059
- #6291 Added ULV tier solar panel generator (MTESolarGenerator), created new ItemList entry and MetaTileEntity ID, registered shapeless conversion recipe in AssemblerRecipes, added loader in LoaderMetaTileEntities. Depends on NewHorizonsCoreMod PR #1682. - @thehoblit
- Added: 1-Volt Solar Panel, ULV solar generator, shapeless conversion recipe
- #6288 Migrated MTEMegaIndustrialApiary to MUI2 with new GUI implementation, added SlotLikeButtonWidget for improved slot handling, added NEI search support. Fixed input validation to prevent princess/queen confusion crash. Added UI textures and localization strings. - @Luca-Guettinger
- Added: NEI search support in Mega Apiary, SlotLikeButtonWidget, ModularUI2 Mega Apiary GUI, inventory full warning texture
- Removed: old GUI implementation
- Fixed: crash when inserting princess instead of queen
- Closes GTNH#23137
- #6286 Added
controllerPosfield to multiblock machine implementations (VoidMiners, AntimatterForge, AntimatterGenerator, CoolantTower, CharcoalPit, DecayWarehouse, EntropicProcessor, NanoForge, PlasmaForge, SolarFactory, PCBFactory, and various steam machines). NAC, Black Hole, Fusion Computers, and Cyclotron omitted due to position complexity or deprecation. - @Yoshy2002- Added: controller position metadata for 20+ multiblocks
- #6283 Ported MTEHatchSteamBusOutput from legacy UI to MUI2 (14 lines added, 9 removed). Requires prior merge of PR #6270. - @TheYoingLad
- Added: ModularUI2 interface for MTEHatchSteamBusOutput
- #6278 Added click handler to progress bar in LHCNEIHandler.java (7 additions). - @ham-corp
- Added: Clickable progress bar for LHC recipe browsing
- #6277 Created MTEHatchOutputMEGui.java with MUI2 implementation (83 additions); updated MTEHatchOutputME.java (15 additions, 7 removals); removed old GUI code from MTEHatchOutputMEBase.java (27 removals). Depends on PR #6275. - @TheYoingLad
- Added: MTEHatchOutputMEGui.java with MUI2 implementation
- Removed: Old GUI code from MTEHatchOutputMEBase.java (27 lines)
- #6275 Created MTEHatchOutputBusMEGui.java with MUI2 implementation; updated MTEHatchOutputBusME.java (7 additions, 9 removals); added new localization keys. - @TheYoingLad
- Added: MTEHatchOutputBusMEGui.java with MUI2 implementation
- #6270 Created MTEHatchOutputBusGui.java with MUI2; added GUI registration to MTEHatchOutputBus, MTEHatchVoidBus, MTEHatchOutputBusME, MTESteamBusOutput, and MTESuperBusOutput classes. Removed old GUI code from MTEHatchOutputBusCompressed. - @TheYoingLad
- Added: MTEHatchOutputBusGui.java with MUI2 implementation
- Removed: Old GUI code from MTEHatchOutputBusCompressed (5 lines)
- #6269 Created MTEHatchObjectHolderGui.java with MUI2; updated MTEHatchObjectHolder.java (12 additions, 40 removals); added new textures to GTGuiTextures.java and updated dependencies.gradle. - @TheYoingLad
- Added: MTEHatchObjectHolderGui.java with MUI2 implementation, New GUI textures, New dependencies
- Removed: Old GUI code (40 lines)
- #6268 Added muffler toggle button to MTERadioHatchGui.java (32 additions, 13 removals). - @kx08
- Added: Muffler button in radio hatch GUI
- #6266 Created MTEHatchMultiInputGui.java with MUI2 implementation; updated MTEHatchMultiInput.java with GUI registration (20 additions, 19 removals). - @TheYoingLad
- Added: MTEHatchMultiInputGui.java with MUI2 implementation
- #6265 Replaced old GUI implementation with MUI2-based MTEHatchMaintenanceGui.java; added new textures to GTGuiTextures.java. Removed old GUI code from MTEHatchDroneDownLink.java. - @TheYoingLad
- Added: MTEHatchMaintenanceGui.java with MUI2 implementation, New GUI textures
- Removed: Old GUI code (55 lines), Russian localization entry
- #6262 Fixed GTStructureUtility.ofAnyWater() to properly reject flowing water when allowFlowing=false; added GTUtility method to identify replaceable water/air blocks; updated water auto-placement in multiple multiblocks to use new validation. - @Yoshy2002
- Added: utility method for water/air block replacement detection
- Fixed: multiblock formation with flowing water despite allowFlowing=false, water auto-placement edge cases with flowing water
- #6256 Modified recipe registration to always include pollution devices; added disabled-state tooltips to muffler hatches, pollution cleaner/scrubber/detector, and air recycler via TooltipHelper.java. - @UltraProdigy
- Added: disabled-state tooltip system for pollution devices
- Fixed: quest completion blockers for pollution devices when pollution disabled
- #6240 Implemented autoplacement mechanics adapted from Greenhouse into MTEFrothFlotationCell and MTEPurificationUnitClarifier, with code modifications to handle non-square shapes. - @Yoshy2002
- Added: auto water placement for Clarifier, auto water placement for Flotation Cell
- #6235 Enabled ModularUI2 rendering for MTEBasicGenerator and created MTEBasicGeneratorBaseGui with MUI2 implementation. - @TheYoingLad
- Added: MTEBasicGeneratorBaseGui ModularUI2 implementation
- #6234 Created MTEHatchInputMEGui and MTEHatchInputMESlotAdapter using ModularUI2, refactored MTEHatchInputME to remove legacy GUI code and use MUI2 rendering. - @TheYoingLad
- Added: MTEHatchInputMEGui ModularUI2 implementation, MTEHatchInputMESlotAdapter for MUI2
- Removed: Legacy GUI code from MTEHatchInputME, GTGuiTextures texture reference
- #6230 Created MTETieredTankGui using ModularUI2 framework and updated MTETieredTank to enable MUI2 rendering. - @TheYoingLad
- Added: MTETieredTankGui ModularUI2 implementation
- #6212 Added IFluidLockableMui2 interface, FluidLockSlotWidget, MTEDigitalTankBaseGui MUI2 implementation; updated MTEDigitalTankBase and supporting GUI texture/text IDs. - @TheYoingLad
- Added: IFluidLockableMui2 interface, FluidLockSlotWidget, MUI2 Digital Tank GUI, language keys
- #6203 Modified EnderDragonDeathHandler to use GTUtility.translate for localization and added range/dimension checks before sending message. - @Nikolay-Sitnikov
- Added: dragon death message localization key
- #6195 Created LHCNEIHandler, LargeHadronColliderFrontend, and LargeHadronColliderRecipes classes; added four progress bar textures and recipe map entry for LHC in RecipeMaps.java. - @ham-corp
- Added: LHC recipes to NEI, LHC recipe handler, module-specific progress bars, LHC language key
- #6174 Ported MTELinkedInputBus to MUI2, replacing old IOIH GUI code with new MTELinkedInputBusGui using ModularUI2 components. - @TheYoingLad
- Added: ModularUI2 port of MTELinkedInputBus GUI
- Removed: old IOIH-based GUI
- #6168 Added reverse recipe mode to MTEHatchCraftingInputSlave and MTEHatchCraftingInputME, toggled by screwdriver, with WAILA display and chat feedback. - @khaskelbergTAU
- Added: reverse recipe mode for crafting input proxies, screwdriver toggle, chat message on toggle
- #6162 Added GTLog.writeExplosionLog overloads and replaced the GTLog.exp.println/printf calls in BaseMetaTileEntity, MetaTileEntity, MTEFluidPipe, MTEMultiBlockBase, BlockMachines, the boilers and the heat exchangers. Duplicate lines between multiblock and general MTE explosions still occur. - @konradmoesch
- Added: timestamps in the explosion log, machine name and owner in explosion log lines
- #6158 Added mode icons to GTGuiTextures, replaced numeric mode constants with enum in MTEIntegratedOreFactory, enabled maintenance hatch placement. - @VortexSo4
- Added: maintenance hatch placement support, mode icons for IOF GUI
- #6157 Replaced old MTEHatchInputBusMEGui implementation with MUI2-based GUI using new GTGuiTextures, adapter pattern, and StockingSlot components. - @TheYoingLad
- Added: MTEHatchInputBusMEGui MUI2 implementation, MTEHatchInputBusMESlotAdapter, StockingSlot component, MUI2 GUI textures
- Removed: old ModularUI ME Input Bus implementation
- #6149 Extended pick block handler API with a third return state to allow tool deselection suggestions. Added ForceDeselectAction, MaintenanceHatchAction, and PickResults classes. Optimized tool counting with better performance. - @querns
- Added: tool deselection suggestion on maintenance hatch, ForceDeselectAction class, PickResults class
- #6142 Implemented alpha-blended cover support via AE2 panels in GTCopiedCTMBlockTexture. Fixed bugs in alpha-blended pass 1 texture display, cable facade placement restrictions, and meta-value handling. Added layer offset to prevent z-fighting. - @leagris
- Added: alpha-blended cover rendering support
- Fixed: alpha-blended pass 1 texture display, cable facade multi-meta placement, cover facade texture restrictions
- #6120 Adds the CondensateType enum, which registers condensate fluids and QFT recipes, plus BECMaterialList and BECRecipeLoader. Adds a gregtech.api.factory routing package, NaniteTier and Comparison enums, and new casings in sBlockCasingsBEC plus ElectromagneticWaveguide glass. Adds the GT_MACHINES_BEC_GENERATOR sound, and GTMod now hooks condensate registration into its init phases. - @RecursivePineapple
- Added: Bose-Einstein Condensate multiblocks, Bose-Einstein Condensate fluid types, BEC casings and Electromagnetic Waveguide glass, BEC hatches and automation tools
- #6117 Adds MTELargeNeutralizationEngine with its GUI, MTEToxicResidueSensor, and three new BlockCasings12 casings. Adds Francium, Potassium Hydroxide and Caesium Hydroxide materials, a Francium line and a Chlorosulfonic Acid line. AdditionalRecipes registers acid fuels in a loop instead of separate hardcoded recipes. MTEMultiBlockBase gets a method for simulating ItemStack depletion. - @loenaaaa
- Added: Large Neutralization Engine, Toxic Residue Sensor hatch, Chlorosulfonic Acid, Francium line for Francium Hydroxide alkali boosting, Potassium Hydroxide (GT version), recipe for Barite from Barium and Sulfuric Acid, fuel values for fluoroantimonic acid and chlorosulfonic acid
- #6104 Added ToolboxSlot ban list configuration, integrated into GTProxy and GTPostLoad. Pocket Multitool and variants are blacklisted by default. Updated Assembler recipe to use oredict dyes. - @querns
- Added: toolbox item ban list configuration, pocket multitool ban
- Fixed: pocket multitool mode-switching exploit risk
- #6103 Added Assembler recipe entry for UHV Energy Distributor in AssemblerRecipes. - @Yoshy2002
- Added: UHV Energy Distributor Assembler recipe
- Closes GTNH#23865
- #6090 Added toggle flags to MTETieredMachineBlockBaseGui to enable/disable power and muffler button widgets independently. - @TheYoingLad
- Added: power and muffler button disable toggles
- #6081 Added fluorophlogopite plate recipes in gtnhlanth RecipeLoader.java to provide alternative crafting paths for mica-dependent casings. - @LooseEthics
- Added: Fluorophlogopite plate recipes
- #6055 Added OreDictItemStack class, extended GTRecipe to support oredict input matching, and updated recipe loaders to enable oredict item inputs alongside traditional item stacks. - @Caedis
- Added: OreDictItemStack class, oredict item input support in recipes
- #6022 Implemented MTEMagicalMaintenanceHatch at IV tier with Thaumcraft Vis integration. Added MetaTileEntity registration, ItemList entries, texture overlays, and language files. Positioned as alternative to Auto Maintenance Hatch for magic-aligned progression. - @jude123412
- Added: Vis-Regulated Maintenance Hatch, IV-tier magical maintenance automation
- #6013 Expanded PowerGogglesConfigHandler with 5 new color configuration options and manual mode settings. Updated PowerGogglesGuiOverlay and SimplePowerGogglesRenderer to apply configurations. - @Ranzuu
- Added: chart background color customization, chart border color customization, measurement tab color customization, min/max value text color customization, manual indicator color customization, manual mode min/max defaults, power bar toggle option, 24 new language entries
- #6010 Added NANOCHIP_FIREWALL_PROJECTION_CASING texture variant and updated BlockCasings12 to use new texture assets. - @seventh-june
- Added: firewall projection casing textures (final), firewall projection casing top texture
- #6002 Updated MTEExoFoundry tooltip text and corrected Heliocast reinforcement module color in lang file. - @chrombread
- Added: 1 new language entry for UIV+ requirement clarification
- #6000 Adds a Fether entry to Mods and a generateFetherTrees method in RecipeLoaderTreeFarm. It registers the nether_sapling, nether_log and nether_leaves items with ignis_fruit x2 as the product, only when Fether is loaded. - @glowredman
- Added: Fether nether tree recipe for the Tree Growth Simulator
- #5997 Enhanced ChemicalFormulaFilter to normalize chemical formulas before comparison, improving consistency of NEI search results. - @slprime
- Added: formula normalization logic
- #5996 Extended MTENanochipAssemblyComplex and all NAC module classes with structured tooltip methods showing component counts and descriptions. - @UltraProdigy
- Added: structure quantity displays in tooltips, 6 new language entries for tooltip formatting
- #5994 Added overlay texture sets OVERLAY_VACUUM_HATCH_INPUT and OVERLAY_VACUUM_HATCH_OUTPUT to Textures enum and updated MTEHatchVacuumConveyorInput/Output classes to use them. - @Auynonymous
- Added: OVERLAY_VACUUM_HATCH_INPUT textures, OVERLAY_VACUUM_HATCH_OUTPUT textures, input/output pipe port overlay textures
- Removed: texture code from base MTEHatchVacuumConveyor class
- #5992 Updated MTEIndustrialChisel to handle ArchitectureCraft blocks with proper material ratio calculations. Added dependency on ArchitectureCraft mod. - @dragongod100
- Added: ArchitectureCraft block compatibility
- #5984 Rewrote ISmartInputHatch detection logic in MTEHatchInputBusME and MTEHatchInputME to correctly compare old and new slot configurations without always triggering, and removed ineffective recipe-start timing for expedited rechecks. - @zyf051520
- Fixed: false positives in smart input hatch change detection, ineffective recipe-start optimization
- #5978 Updated MTEHatchPatternProvider and InputBusInventoryProxy to use localization keys for hatch name display, added localization entry to lang file. - @Ranzuu
- Added: Pattern Provider Hatch localization key
- #5956 Added renaming behavior to BehaviourWireCutter and ToolWireCutter, enabling interface renaming for AE components in MTEHatchCraftingInputME. - @kx08
- Added: AE part renaming via wirecutter
- Closes GTNH#23516
- #5951 Added setSynced(false) to dynamicString widgets in MTEDigitalTankBase, MTEHatchOutput, and MTEHatchVoid to ensure client-side localization for empty fluid labels. - @Eldrinn-Elantey
- Fixed: multiplayer localization for empty fluids
- #5949 Replaced GTUtility.trans with StatCollector localization in MTEDigitalTankBase, moved message strings to lang files for EN_US, RU_RU, and ZH_CN. - @Eldrinn-Elantey
- Added: localization strings
- Removed: GTUtility.trans dependency
- #5948 Added void protection methods to MTEIndustrialCentrifuge that were lost during the structure rework when inheritance from GTPPMultiblockBase changed. - @purebluez
- Added: void protection support
- Fixed: industrial centrifuge item loss
- Closes GTNH#23590
- #5946 Added EN_US lang entries and updated GUI text keys in MTEBoardProcessorModuleGui, MTENanochipAssemblyModuleBaseGui, and MTEEtchingArrayModule. - @Ranzuu
- Added: localization strings
- #5939 Added EN_US lang entries for NAC strings, updated MTENanochipAssemblyComplexGui and related files to display ME drive info, replaced custom arrow icon with MUI2 icon resource. - @Ranzuu
- Added: localization strings, ME drive overlay display
- Fixed: localization key revert
- #5935 Unlocked rotation in MTEExtremeEntityCrusher, rewrote EntityRenderer to rotate render calls correctly for all orientations, fixed mob entity rotation conflicts, and adjusted bounding boxes for proper lighting. - @Ruling-0
- Added: EEC rotation support
- Fixed: EEC rendering in non-default rotations, mob animation speedup with multiple EECs
- #5928 Doubles the sound radius multiplier in MTEEnhancedMultiBlockBase for multiblocks meeting size criteria, and replaces MTEMegaBlastFurnace.ogg audio asset. - @IX-git
- #5927 Modifies MTEDieselEngine tooltip formatting to improve layout and readability. - @Eldrinn-Elantey
- #5909 Modifies MTEPlasmaForge to include discount information in WAILA display and adds language strings for en_US and ru_RU localization. - @mamiemru
- Added: Discount display in Plasma Forge WAILA tooltip
- #5906 Adds ItemGTToolbox, a ToolboxSlot enum that restricts slot contents, a ModularUI2 GUI factory (ToolboxSelectGuiFactory), GTPacketToolboxEvent, and an IPickBlockHandler interface. Adds a getNameOverride hook to IItemBehaviour, and MetaBaseItem/MetaGeneratedTool now call GTUtility.destroyCurrentItem. The maintenance hatch gets toolbox handling. dependencies.gradle also adds a second GTNHLib entry (0.9.5). - @querns
- Added: Field Engineer's Toolbox, toolbox open, close and draw sounds, pick block handler interface
- #5904 Added IBlockWithClientMeta support to BlockCasings4 for glow effects; created MCPatcher CTM texture files for fusion casings; relocated exofoundryglass CTM textures from minecraft/mcpatcher to gregtech/mcpatcher. - @chrombread
- Added: MCPatcher CTM support for Fusion Casings 1 and 2, Connected texture files for fusion casings, IBlockWithClientMeta integration
- Removed: Fusion Casing texture hardcodes, Old exofoundryglass texture location
- #5899 Modified MTEMultiFurnace hatch placement rules to accept maintenance hatch on top layer; replaced two ofChain references with buildHatchAdder. - @flamingowrangler2869
- #5891 Added formatted text and localized key names to MTEMiner and MTEPump tooltips; added Russian translations for new tooltip text. - @Eldrinn-Elantey
- Added: Colored text formatting in tooltips, Localized key labels for Miner and Pump
- #5890 Added client config flags in Client.java and integrated them into CosmicNeutroniumRenderer, GlitchEffectRenderer, and InfinityRenderer to conditionally apply effects. - @GDCloudstrike
- Added: Config options for item renderer effects, Infinity effect toggle, Cosmic Neutronium effect toggle, Six-Phased Copper effect toggle
- #5880 Introduced ContributorList helper class in MultiblockTooltipBuilder to manage distinct author and structure author lists for multiblock tooltips. - @kuba6000
- Added: ContributorList helper class, Structure author attribution in tooltips
- #5870 Added 11 lines to ChemicalRecipes.java: 2 Diluted HCl (HCl)(H2O) + 3 NaOH → 2 NaCl + 2 H2O recipe. - @LazyFlesh
- Added: Diluted hydrochloric acid neutralization recipe
- #5869 Added MTEVoidMinerBaseGui.java (222 lines) with searchable ore filter UI, whitelist/blacklist toggle, and Data Stick serialization. Updated MTEVoidMinerBase.java to support both input bus filtering and UI filtering with OR logic. Added localization strings. - @purebluez
- Added: Ore voiding configuration UI, Ore search functionality, Data Stick compatibility for ore config
- #5868 Added 57 lines to ChemicalRecipes.java with three undilution recipe paths: SO3 route, Sulfur+Oxygen route, and SO2+Oxygen route. All at 10s EV (~200k EU), cheaper than distillation (72k MV). Includes 9x batch recipes. - @LazyFlesh
- Added: Diluted sulfuric acid undilution recipes (3 variants with 9x batches)
- #5864 Added Calcium Chloride fluid electrolysis recipes to ElectrolyzerRecipes.java (28 lines added, 19 removed). New recipes accept fluid input and produce solid outputs, paralleling existing solid-input electrolysis recipes. - @LazyFlesh
- Added: Calcium Chloride fluid electrolysis recipes
- #5857 Added 8 lines to RecipeLoader2.java to register a new dust-to-fluid recipe for Lithium Chloride with matching EUT/tier as ingot path. - @LazyFlesh
- Added: Lithium Chloride dust-to-fluid recipe
- #5842 Modified MTETransformer, MTEWetTransformer, and MTETransformerHiAmp to accept extra input amperage with appropriate percentages. Localized amperage capacity display in tooltips and WAILA that updates dynamically. - @LazyFlesh
- Added: Extra amperage acceptance to transformers, Localized transformer amperage capacity strings
- #5835 Redesigned MTEPurificationPlantGui to display controllers horizontally with status icons, added PurificationUnitStatus indicators, implemented sorting by controller grade, moved detailed information to tooltips, and added language key support for status strings. - @VortexSo4
- Added: Status indicator icons for purification units, Horizontal controller display layout, Unit idle status indicator, Controller sorting by grade, Language keys for status strings
- #5828 Enhanced TileEntitySpaceElevator to implement shared computation distribution to child modules; added fluid input capability to TileEntityModuleMiner for plasma consumption. - @VortexSo4
- Added: Shared computation system for mining modules, Plasma fluid input support, Item usage tracking
- #5823 ChemicalRecipes expanded with two additional LCR recipes using Quicklime and Calcite as catalysts in place of Calcium, maintaining identical chemical outputs. - @LazyFlesh
- Added: Quicklime catalyst recipe for Acetic Acid → Acetone, Calcite catalyst recipe for Acetic Acid → Acetone
- Fixed: LCR recipe conflict reduction with catalyst alternatives
- #5818 Added HatchElement.ExoticDynamo and MTEMultiBlockBase.mExoticDynamoHatches, with addExoticDynamoToMachineList and getExoticDynamoHatches. addEnergyOutput and addEnergyOutputMultipleDynamos now also count the exotic dynamo hatches. - @loenaaaa
- Added: ExoticDynamo hatch element for GT multiblocks
- #5811 New MTEDrawerFramer class implements framing automation in three tiers. Added machine type, texture overlays, recipes, and UI components. Integrated with AssemblerRecipes for crafting the machines. - @maybemattie
- Added: MTEDrawerFramer machine (LV/MV/HV), Drawer Framer texture overlays, Drawer Framer recipes and localization
- #5809 BehaviourSoftMallet and ToolSoftMallet enhanced with mode cycling; BaseMetaTileEntity updated to support mode-aware soft mallet behavior. Localization strings added. - @UltraProdigy
- Added: Soft Mallet cycle modes (Toggle/On/Off), Localization for mallet modes
- #5785 Created CoverEnergyWirelessDebug class and associated textures. Added ItemList entry and MetaGeneratedItem01 icon definition. - @UltraProdigy
- Added: Wireless Energy Debug Cover, Debug cover item icon texture
- #5783 Added right-click handler to MTECokeOven to detect fluid containers and automatically fill them from stored creosote. - @loenaaaa
- Added: Coke oven right-click creosote extraction
- Closes GTNH#23347
- #5773 Localized 'Running perfectly' string in GTLanguageManager. Added optional lang keys gt.interact.desc.mb.ItemTextLine and gt.interact.desc.mb.FluidTextLine to MTEMultiBlockBaseGui with fallback to default formatting. - @Ranzuu
- Added: Localized 'Running perfectly' GUI text, Optional resource pack color override for item progress text, Optional resource pack color override for fluid progress text
- #5757 Implemented ChemicalFormulaFilter in NEIGTConfig with pattern matching for material chemical formulas from GT5U, Bartworks, and GT++ mods. - @WayneYam
- Added: NEI chemical formula search filter, = search prefix
- Closes GTNH#23060
- #5749 Updated GTGuiTextures with new maintenance status icons and modified MTEMultiBlockBaseGui to display hoverable wrench textures based on maintenance issue count. - @chrombread
- Added: maintenance status icons (green/yellow/red wrenches)
- #5744 Updated MTEMultiBlockBase GUI tooltip logic and adjusted dependency versions to improve tooltip rendering. - @evgengoldwar
- Added: enhanced tooltip information
- #5735 GTRecipe and GTRecipeBuilder gain inputChance, fluidInputChance and fluidOutputChance, and the old chance field becomes outputChance. The GTRecipe constructors take extra arguments, and MTEBasicMachine now rolls the fluid output chance. - @ABKQPO
- Added: input chance on recipes, fluid input chance on recipes, fluid output chance on recipes, 0 chance for non-consumable
- Migration: Addon code that calls the GTRecipe or GTRecipe_WithAlt constructors must pass four chance arrays (input, output, fluid input, fluid output) instead of one. Code that read GTRecipe.mChances must use mOutputChances or getOutputChance(int).
- #5729 Added MTEHatchCraftingInputMEGui extending MTEHatchBaseGui and removed the useMui2 false override in MTEHatchCraftingInputME. Added GTGuiTextures for the plus, pattern_me, pattern_optimize and x2 overlays, plus lang keys for optimize_pattern. SLOT_MANUAL_START is now public. - @Kogepan229
- Added: MUI2 GUI for ME Crafting Input Buffer, Pattern Optimization toggle text
- #5710 Added recipe counter field and increment logic to multiblock base classes and specific implementations across multiple machine types. - @StaffiX
- Added: Recipe counter display for multiblocks
- #5706 Added dedicated MACHINE_CASING_BOTMIUM texture and updated texture references in GregtechMetaSpecialMachineCasings and GregtechAlgaeContent. - @Auynonymous
- Added: Botmium casing unique texture
- #5700 Added stack size validation to BehaviourSprayColorInfinite matching BehaviourSprayColor tooltip logic. - @UltraProdigy
- Fixed: Infinite Spray Can usability warning
- Closes GTNH#23037
- #5699 Updated HatchElementBuilder default configuration and GTStructureChannels to exclude hologram-placed hatches, with lang file updates. - @Pxx500
- #5697 Updated WAILA info methods across hatch and machine classes to use localized text via GTLanguageManager instead of hardcoded strings. - @Discreater
- Added: Localized WAILA text display
- #5695 Added new channel to GTStructureChannels and configured MTEComponentAssemblyLine to use it. Updated CAL casing texture references and lang file. - @ABKQPO
- Added: Component Assembly Line casing channel
- #5694 Implemented MTEHatchInputBusCompressed, MTEHatchOutputBusCompressed with custom GUIs and PhantomSingleSlotItemStackHandler for slot visualization. Updated OutputBusType enum and ItemList registry. - @RecursivePineapple
- Added: Compressed input bus, Compressed output bus, Quantum input bus, Quantum output bus, PhantomSingleSlotItemStackHandler
- #5688 Added MTEHatchPatternProvider hatch with dedicated GUI and pattern inventory proxy. Refactored LMA to support pattern display via AE2 interface terminal. Old input busses still work but don't show patterns. - @asquared31415
- Added: Pattern Provider input bus, Pattern display in interface terminal, MTEHatchPatternProviderGui, PatternSlot widget, InputBusInventoryProxy
- Removed: MTEHatchCraftingInputMEGui
- Fixed: LMA pattern visibility
- #5678 Moved milling ball loading to ProcessingLogic in IsaMill. Added prepareCatalyst() method to ChemicalPlant that is called during both normal and cached recipe path processing. - @zyf051520
- Added: CRIB support for milling balls, CRIB support for catalysts, prepareCatalyst() method in ChemicalPlant
- Fixed: ChemicalPlant catalyst recipes with CRIB
- #5665 Added UV-UXV 256ADynamoHatch MetaTileEntityIDs (16030-16035), CustomItemList entries, OVERLAYS_ENERGY_OUT_MULTI_256A textures, MachineLoader registrations and MTEHatchDynamoMulti support. Tectech Assembler recipes changed fluid type and amount for multiamp hatches only. - @UltraProdigy
- Added: 256A Dynamo Hatches (UV-UXV)
- Migration: The 256A dynamo hatches are new, so nothing to do there. The change to watch is the fluid swap on the existing 4A, 16A and 64A energy and dynamo hatches, EV through UXV: every stored crafting pattern for one of them now asks for the wrong fluid. Re-scan or re-make those patterns before you queue any.
- #5656 Updated GlassTier to classify Glass as HV and modified MTESteamWasher to accept all glass variants. - @Yoshy2002
- Added: Glass as HV-tier material, All glass types as valid Steam Washer input
- Fixed: Steam Washer structure incompleteness
- Closes GTNH#22605
- #5645 Added an alternative recipe in RecipesMachinesMulti to accept forming press as a substitute. - @LazyFlesh
- Added: Forming press alternative recipe for press controller
- #5612 Updated ToolLoader recipes, added new tool classes (ToolFileHV/LV, ToolWireCutterHV/LV, ToolJackhammerLV/HV/MV), updated MetaGeneratedTool01 and IDMetaTool01 to support new tools, modified TreeFarm render for compatibility. - @UltraProdigy
- Added: LV-HV Wire Cutter tools, LV-HV Electric File tools, LV-HV Jackhammer tools, Radox Polymer tool recipes, Jackhammer crafting recipes, Soldering iron battery options (Sodium, etc.)
- Removed: GT++ Angle Grinder recipes (deprecated), GT++ Automatic Snips recipes (deprecated), Wirecutters missing texture issue
- Fixed: Wirecutters texture display, Soldering iron battery variety, Tool material consistency
- Closes GTNH#23038
- #5611 Added toggle logic to CoverTabButton to close open tab when button is clicked a second time. - @danyadev
- Added: Cover tab toggle-close functionality
- #5597 Created TileEntityModuleMinerGui with extensive parameter display, filter panel with mineable ore highlighting, calculator logic, and asteroid targeting system. Updated SpaceMiningRecipes and AsteroidData. Added Parameter base class extensions. - @FrostyFire1
- Added: TileEntityModuleMinerGui (ModularUI2), In-game space mining calculator, Asteroid information panel, Targeting optimizer, Mineable ore filter highlighting, AsteroidData expansion, TileEntityModuleBaseGui
- #5589 Refactored MTEHatchOutputME and MTEHatchOutputBusME into a new modular structure with base class, filter system (item/fluid), and cache/check mode logic. Added VoidProtectionHelper integration and AECacheCounter utility. - @hinyb
- Added: Cache Mode and Check Mode for output devices, Blacklist filtering for Output Hatch, Void Cell support, MEFilterBase, MEFilterItem, MEFilterFluid classes, AECacheCounter utility, OutputBusType enum extension
- Fixed: Crash when using ME Fluid Void Cell in Output Hatch, Dangote Distillus crashes
- Closes GTNH#21974, GTNH#22135
- #5571 Expanded MTEBioVat.addInformation() tooltip output with additional details about stored data and machine state. - @Spicierspace153
- Added: expanded tooltip information for Bacterial Vat
- #5567 Implemented sided overlay rendering for screwdriver use on MTEBuffer, MTEItemDistributor and related buffer machines, added configuration tooltip display via MTEBuffer.addInformation() and WAILA hooks. - @grimly
- Added: screwdriver overlay for buffer machines, configuration visibility in tooltips, configuration visibility in WAILA
- #5557 Added BOILER_SOLAR_CALCIFIED texture and overlay rendering logic in MTEBoilerSolar and MTEBoilerSolarSteel to display when calcification reduces steam output. - @serenibyss
- Added: calcification overlay texture, calcification visual indicator
- #5542 Enhanced CauldronFrontend recipe map display logic and GTPostLoad recipe initialization to provide richer recipe visualization in NEI. - @evgengoldwar
- Added: improved NEI Cauldron recipe display
- #5540 Added IV Acid Generator with custom efficiency parameter passed to constructor in MTEAcidGenerator. Refactored efficiency logic to accept constructor argument. Removed solid steel casing texture layer for IV tier to align with other IV singleblocks. - @loenaaaa
- Added: IV Acid Generator, custom efficiency constructor parameter
- Closes GTNH#22876
- #5539 Added CauldronFrontend recipe display class, registered CauldronFrontend in RecipeMaps, created cauldron NEI configuration, and added localization strings. - @evgengoldwar
- Added: cauldron recipe frontend, cauldron NEI support
- #5516 Added Dirt Path and Farmland to the allowed top-layer block list in MTECharcoalPit, restricted to top layer only due to non-full-height block characteristics. - @ModularityEnjoyer
- Added: Dirt Path and Farmland as permitted top-layer blocks
- #5513 Added new beamline recipe in BeamlineRecipeLoader for raw advanced crystal chip production. - @lonei-G
- Added: Beamline recipe for raw advanced crystal chip using CeLuAG
- Closes GTNH#22749
- #5478 Ported MTEBasicMachineWithRecipe and related classes to MUI2, added BasicUIProperties and BasicUIPropertiesBuilder, migrated 500+ texture entries to GTGuiTextures, added power button widget support. - @chrombread
- Added: MUI2 basic machine UI, power button widget, BasicUIProperties builder, GUI textures for standard machines
- #5413 Adds GTRecipeBuilder.circuit(int) and a pendingIntegratedCircuit field. Item input methods now append the pending circuit through applyPendingCircuit, so the call order in the builder does not matter. - @UltraProdigy
- Added: GTRecipeBuilder circuit method
- #5411 Added GTGuiTheme and GTGuiThemes classes, updated Dyes enum with RGB values, modified CommonMetaTileEntity to support theme application. - @chrombread
- Added: GTGuiTheme class, GTGuiThemes class, theme colorization support
- #5402 Added button widget and corresponding toggle state to MTEHatchCraftingInputME, with localization strings for en_US and ru_RU. - @ABKQPO
- Added: show on Interface Terminal button, toggle state for terminal display
- #5389 Modified MaterialGenerator to generate rod recipes during material registration phase instead of relying on post-init generation, covering generateNuclearMaterial and generateNuclearDusts methods. - @CN132DAS
- Added: Rod crafting recipes for radioactive materials
- Fixed: Craftability of radioactive rods
- Closes GTNH#22061
- #5387 Added sheetmetal block definitions to Werkstoff system with corresponding textures, ore prefix, and material references in BWGTMaterialReference and related loaders. - @RecursivePineapple
- Added: Sheetmetal blocks, Sheetmetal block textures, Sheetmetal ore prefix
- Removed: Deprecated NonNullWrappedHashMap and NonNullWrappedHashSet utilities
- #5338 Updated lang file entry to change NEI tab from "PBF" to "BBF" for Primitive Blast Furnace recipes. - @UltraProdigy
- #5322 Created Space Hazard in the hazard system (Hazard.java, HazardProtection.java, HazardProtectionTooltip.java) for Four's armor augment. - @RecursivePineapple
- Added: Space Hazard type, Space hazard protection tooltip
- #5306 Extended MetaGeneratedItem01 cover registration to include UIV-MAX conveyor and pump items with 2x scaling per tier following established tier progression. - @GDCloudstrike
- Added: UIV-MAX conveyors as covers, UIV-MAX pumps as covers
- #5304 Added batch mode configuration to MTEOilDrillInfinite with default batch size of 128 ticks (6.4 seconds), modified MTEOilDrillBase to support batch parameters. - @Spicierspace153
- Added: Batch mode to Infinite Fluid Drills
- Closes GTNH#22405
- #5303 Added machine mode toggle GUI widgets to MTEMultiBlockBaseGui base class, created mode button textures, added mode status display to Research Station (MTEResearchStation), upgraded Research Station to full MUI2 implementation with 90+ lines of GUI code. - @FourIsTheNumber
- Added: Machine mode toggle buttons to multiblock GUIs, Running mode text display, Mode button textures for arc furnace, distillation, mass fabrication, plasma, recycling, research, and scanner modes, MUI2 Research Station implementation
- #5297 Added mod detection for Nuclear Horizons in Mods.java; updated FissionFuelLoader and CentrifugeRecipes to conditionally disable conflicting recipes based on Nuclear Horizons presence. - @RecursivePineapple
- Added: Nuclear Horizons mod detection
- #5289 Added Small Dust Schematic recipe via DustLoader, new item metadata in MetaGeneratedItem01, and corresponding item list entry. Recipes registered in ProcessingDust and RecipeGenDustGeneration loaders. - @loenaaaa
- Added: Small Dust Schematic item, Packager recipe to convert dusts to small dusts, texture asset for schematic
- #5270 Added MTEChamberCentrifuge.ogg sound file and registered it in SoundResource.java and sounds.json; integrated sound playback in MTEChamberCentrifuge.java. - @chrombread
- Added: Spinmatron sound effects
- #5260 New MTEHatchInputDebug (ID 11306, tier 14) with 16 phantom FluidStackTanks and a ModularUI2 GUI. MTEMultiBlockBase.getStoredFluidsForColor adds a copy of each set fluid with amount Integer.MAX_VALUE. - @chrombread
- Added: Debug Input Hatch
- #5259 New MTEHatchInputBusDebug (ID 11305, tier 9) backed by a 16-slot phantom ItemStackHandler, with a ModularUI2 GUI in MTEHatchInputBusDebugGui, overlay texture, ItemList entry and registration. GhostCircuitSlotWidget now takes the PanelSyncManager. - @chrombread
- Added: Debug Input Bus
- #5256 GTThaumcraftCompat lang strings moved from code to lang files; 29 English and 19 Chinese translations added. - @koolkrafter5
- Added: GT Thaumcraft aspect hints
- Removed: Thaumcraft compat lang keys from Java
- #5250 MTEChamberCentrifuge enhanced with turbine hatch placement logic, shift-click handling, and automatic rotation based on structure preview. - @chrombread
- Added: Turbine hatch survival autobuild placement, Turbine shift-click interaction, Automatic turbine rotation
- #5238 Ported MTETeslaTower to MUI2; added MTETeslaTowerGui with LineChartWidget and TeslaNodeData sync handlers; refactored parameter system in TTMultiblockBase and added IParametrized interface; updated ITeslaConnectable and related classes; added UI textures and themes. - @FrostyFire1
- Added: Tesla Tower MUI2 GUI, load visualization chart, amperage minimap, parameter editing panel
- #5234 Updated ItemAugmentCore and MechArmorBase to synchronize charge levels; modified MechArmorAugmentRegistries and MTEModificationTable charging logic. - @dagger8243
- Added: synchronized armor/core charging
- #5230 Added MTECokeOven multiblock and supporting infrastructure: GTValues enum entries, ItemList items, MetaTileEntityIDs, textures, hatch implementation (MTEHatchCokeOven), GUI (MTECokeOvenGUI), recipe map, casings, and ModularUI2 theme/texture additions. - @Vlamonster
- Added: GT Coke Oven multiblock, Coke Oven hatch, Coke Oven GUI, Coke Oven recipe map
- #5213 Modified MTEHatch, MTEHatchInputBus, MTEHatchOutputBus, MTELinkedInputBus, and MTEHatchCraftingInputME to implement tier-dependent inventory sizes. Disabled Super Bus recipes via GregtechCustomHatches. - @evgengoldwar
- Added: Tier-dependent bus inventory sizing
- Removed: Super Bus crafting
- #5210 Extended MaterialBuilder with lore text capability. Updated Werkstoff, Materials, and MetaGeneratedItem classes to support and display separate lore text independent of chemical formula tooltips. - @VortexSo4
- Added: Material lore text system
- #5204 Added GTSoundLoop position control mechanism via ISoundPosition interface with LinearSound/CircularSound/StaticSound implementations. Updated MTEMultiBlockBase and MTEEnhancedMultiBlockBase to position sounds at structure centers with dynamic volume scaling. - @RecursivePineapple
- Added: Sound position control system, CircularSound class, LinearSound class, StaticSound class, ISoundPosition interface
- Fixed: Sound positioning in multiblocks, Sporadic sound stopping
- #5195 Modified MTEHatchOutputBusME to recognize inverted partitioned cells and invert the filtering logic from whitelist to blacklist mode. - @AbdoDayem
- Added: Inverted cell blacklist support
- #5194 Introduced render rotation helper method in GTUtility and refactored MTEIndustrialLaserEngraver and TileEntityLaser to use it instead of manual rotation handling. - @chrombread
- Added: Render rotation helper method
- Fixed: Laser render orientation in edge cases
- #5190 Refactored MTEPCBFactory into separate classes: new MTEPCBFactory for main multiblock, MTEPCBUpgradeBase abstract class, MTEPCBBioChamber and MTEPCBCoolingTower as sub-multis using data stick linking. Registered in LoaderMetaTileEntities and AssemblyLine recipes. - @Dream-Master
- Added: PCB Factory sub-multiblock architecture, PCB upgrade linking system, Bio chamber and cooling tower sub-multis
- Removed: Old monolithic PCB Factory implementation (1388 lines)
- Fixed: CycleButtonWidget texture getter not set in PCB Factory
- Closes GTNH#20776
- #5189 Added hasWailaAdvancedBody() and getWailaAdvancedBody() methods to IGregtechWailaProvider interface, implemented in BaseMetaTileEntity and BaseMetaPipeEntity, added ME output device configurations in GregtechWailaDataProvider. - @Worive
- Added: WAILA advanced body API methods, Hotkey configuration for ME devices
- Closes GTNH#18491
- #5186 Complete rework of cape system: moved cape loading and management to common code (GTCapesLoader), added new network packets (GTPacketSetCape, GTPacketListCapes, GTPacketBroadcastCapes), new GTCapeCommand for client/server communication, config persistence in Client config. - @glowredman
- Added: Multi-cape ownership system, Cape selection command, Cape validation and broadcasting
- Removed: Old client-side cape system (GTCapesClientHandler moved to common, GTCapesEventHandler and old GTCapesLoader removed)
- #5175 New MTEDebugTank class in storage module, registered in LoaderMetaTileEntities, added to ItemList and MetaTileEntityIDs enums with lang entry. - @FourIsTheNumber
- Added: Debug fluid tank meta tile entity
- #5172 New ItemChaosLocator and ChaosLocatorGui classes with MUI2 implementation, updated PacketTeleportPlayer network packet, added corresponding textures and GUI themes. - @GDCloudstrike
- Added: Chaos Locator item, Chaos Locator GUI, Teleport to Chaos Islands functionality
- #5165 Introduced CircularGaugeDrawable and gauge theme support to MTESteamMultiBaseGui, integrated pressure widget into all steam multiblock GUIs. - @FrostyFire1
- Added: Animated steam gauge display, Circular gauge drawable component, Gauge theme support
- #5164 Extended MTESteamMultiBase and all steam multiblock implementations with theme support in ModularUI2 GUI framework. - @FrostyFire1
- Added: ModularUI2 themes for steam multiblocks
- #5162 Added FakeCleanroom, an ICleanroom with volatile bypass flags. CleanroomReference.getCleanroom returns it when the cleanroom bypass is on, and MTEBasicMachine.isValidForLowGravity returns true when the low gravity bypass is on. The subcommand is added to GTCommand. - @UltraProdigy
- Added: /gt cleanroom_bypass command
- #5154 Added a default getRenderBoundingBox(x, y, z) to IMTERenderer, returning the one-block box. BaseMetaTileEntity.getRenderBoundingBox delegates to it when the MTE implements IMTERenderer. - @chrombread
- Added: custom render bounding box for IMTERenderer machines
- #5153 Introduced UnificationOreAdapter, BlockPosMap, ChunkMap, and GTMockWorld for generic ore detection. Added non-GT ore prospecting via new ore adapter interface, enabling Electric Prospector to scan for Minecraft and modded ores. - @RecursivePineapple
- Added: Non-GT ore adapter system, Ancient debris material, Per-chunk and per-block data maps, Mock world for ore drop simulation
- #5135 Adds the LHC controller with accelerator and collider machine modes, LHC module and beam machines (Beam Crafter, Beam Mirror, Beam Splitter, Beam Stabilizer), an advanced beamline output hatch, casings, stable containment unit items, new recipe maps, MUI2 GUIs and particle textures. New MetaTileEntity IDs 3013-3018 and meta items 300-304. - @ham-corp
- Added: Large Hadron Collider, Beam Crafter, Beam Mirror, Beam Splitter, Beam Stabilizer, Advanced Beamline Output Hatch, Stable containment units, Elementary particles, baryons and mesons
- #5123 Added IParametrized interface for parameter-aware multiblocks, created TTMultiblockBaseGui, added GUI textures and theme definitions, parametrized MTEMultiBlockBaseGui to support inheritance without redundant field declarations. - @FrostyFire1
- Added: IParametrized interface, TTMultiblockBaseGui class, GUI textures and theme definitions, Parameter button overlays
- #5111 Removed 34 lines of custom tooltip rendering from MTEDigitalTankBase, now using waila's fancy fluid tooltip renderer (requires waila PR #43). - @SuperSoupr
- Removed: Custom tooltip rendering in MTEDigitalTankBase
- #5101 Added enableMui2() calls to multiblock classes that use default MTEMultiBlockBaseGui behavior, including those with machine mode switches. - @FrostyFire1
- Added: MUI2 support for 20+ multiblocks
- #5100 Added startup notification text to MTEMultiBlockBaseGui and localization for MUI2 multiblocks during initialization. - @FrostyFire1
- Added: Startup text display, Startup period localization
- #5099 New MTEHatchCustomFluidBaseDebug extending MTEHatchCustomFluidBase (capacity 200000000, refill on first tick and every 30 s), registered in GregtechCustomHatches as Hatch_Input_Debug_Steam (ID 31039). Adds the OVERLAY_ENERGY_IN_DEBUG animated texture entry. - @chrombread
- Added: Debug Steam Hatch
- #5096 New MTEHatchEnergyDebug (ID 11304, ItemList.DebugEnergyHatch) with MTEHatchEnergyDebugGui on ModularUI2. MTEMultiBlockBase gets a debugEnergyPresent flag, set in addEnergyInputToMachineList and cleared in clearHatches, which turns off the single-amp path in setProcessingLogicPower (also MTEPreciseAssembler and MTEChamberCentrifuge). MegaMultiBlockBase reads stored and max EU from the debug hatch. - @chrombread
- Added: Debug Energy Hatch
- #5094 Added boron trioxide recipe in RecipeLoader for lanth module. - @Nockyx
- Added: Boron trioxide recipe from pure boron
- Closes GTNH#22003
- #5092 Extended GTUtility with per-tick calculation and added localization string for MUI2 recipe displays. - @Nockyx
- Added: Per-tick production display in recipe hover, Localization entry for per-tick label
- Fixed: Missing per-tick information on recipe display
- Closes GTNH#22011
- #5089 Added ResizableItemDisplayWidget, ItemDisplayKey, and display helper methods to MTEMultiBlockBaseGui and GTUtility. Enables DynamicWidget usage for recipe visualization. - @chrombread
- Added: Recipe display widgets for MUI2, Stack merging logic, ItemDisplayKey and ResizableItemDisplayWidget
- #5069 Adds MTELatex (ID 15752), a cableRecipes recipe map (gt.recipe.cable) and LV-EV CableCoater single-block machines. ProcessingWire moves IV+ cable recipes into the new map and adds ESC as the rubber. - @3ricbae
- Added: LATEX multiblock, Elastic Supercomposite Rubber (ESC), cable coating recipe map, LV-EV cable coater machines
- Removed: IV+ cable assembler recipes
- Migration: IV and higher cable recipes moved out of the assembler into the LATEX, so automation that made them in an assembler needs to be rebuilt around the new multiblock.
- #5054 Added TTRenderGTProgressBar renderer and GTWaila integration with configuration options in Client settings and preload initialization. - @SuperSoupr
- Added: WAILA-style progress bar rendering, Progress bar configuration options
- #5048 Adds a HarvestTool enum mapping base type meta 0-15 to a harvest level and tool name (wrench, cutter, pickaxe), and GTMod registers tile entity constructors for metas 12-15. MTECable, MTEFluidPipe, MTEItemPipe, MTEFrame, MTEMultiBlockBase and others now return getTileEntityBaseType() via HarvestTool, and MTETieredMachineBlock and BlockMachines are updated to use it. The diff shown does not include which machines use the pickaxe types. - @Vlamonster
- Added: mineable MTEs with pickaxe harvest types, HarvestTool enum
- #5047 Added Autoclave recipe: 3 Olivine Dust + Distilled Water → 2 Asbestos Dust + Magnetite Dust + 1000L Hydrogen Gas. - @Sunrunner37
- Added: Autoclave asbestos recipe
- Fixed: Asbestos availability in non-worldgen modes
- Closes GTNH#21908
- #5042 In MTEMultiBlockBase, supportsLogoHoverableColumn() is renamed to supportsTerminalCornerColumn(), and supportsLogo(), supportsShutdownReasonHoverable() and supportsMaintenanceIssueHoverable() are added. MTEMultiBlockBaseGui uses childIf on each corner column child. Addons overriding the old method name must rename it. - @chrombread
- Added: per-element toggles for the multiblock corner column
- Removed: supportsLogoHoverableColumn
- #5030 Enhanced EUOverclockDescriber and GTUtility tier colors to include color codes and underlines in NEI display strings. - @chrombread
- Added: Color support in NEI tier display
- #5023 Switched GTGuis.USE_MUI2 flag to true, activating MUI2 implementations for covers and single-block entities with MUI2 support. - @FrostyFire1
- Closes GTNH#21925
- #5022 Added CoverRedstoneWirelessBaseGui with an IntSyncValue for the frequency (0 to MAX_CHANNEL) and a BooleanSyncValue for privateChannel, hooked in through getCoverGui in CoverRedstoneWirelessBase. - @FrostyFire1
- Added: ModularUI 2 GUI for the wireless redstone covers
- #5019 Added CoverItemMeterGui and hooked it in through getCoverGui on CoverItemMeter. Renamed the public setter setThresdhold to setThreshold and updated ItemMeterUIFactory. - @FrostyFire1
- Added: ModularUI 2 GUI for the Item Detector Cover
- Fixed: Misspelled threshold setter name
- #5017 Created MTEHatchExtrusion class, shape/mold packet synchronization, GUI widget support, and tier-based recipe registrations; added new MetaTileEntity IDs and textures. - @VortexSo4
- Added: Extruder buses (MTEHatchExtrusion), GTPacketSetShape for shape synchronization, GhostShapeSlotWidget and GhostShapeSyncHandler
- #5016 Added tectech.thing.gui.CoverEnderFluidLinkGui and hooked it in through getCoverGui. Renamed GTGuiTextures OVERLAY_ROBOT_ARM_EXPORT/IMPORT to OVERLAY_EXPORT/IMPORT and updated CoverArmGui. - @FrostyFire1
- Added: ModularUI 2 GUI for the Ender Fluid Link Cover
- #5011 Added GTPacketSetMold for client-server synchronization; modified MTEHatchSolidifier to support phantom mold selection UI. - @VortexSo4
- Added: Phantom mold selection in solidifier hatches, GTPacketSetMold networking
- #5008 Added
PowerGogglesCommandwith config and chart subcommands, introducedDelayedGuiDisplayTickerfor UI scheduling, and modified event handlers to reposition display alongside the hotbar. - @FrostyFire1- Added: PowerGogglesCommand, DelayedGuiDisplayTicker, Command interface for power goggles
- Closes GTNH#21672
- #5005
MTEMultiBlockBase::supportsRecipeLocking()now defaults totrue. Multiple multiblock classes updated to usemachineModeinstead of separate mode flags. This improves recipe cache clearing and UI consistency. - @54M44R- Added: Recipe locking support across multiblocks
- Removed: MTEMegaChemicalReactorLegacy recipe locking
- #5003 Added CoverChestGui (CoverGui subclass) for MUI2 with a SlotGroupWidget of 3 columns. CoverChest now keeps a LimitingItemStackHandler for MUI2 and a LegacyLimitingItemStackHandler for the MUI1 ChestUIFactory (getLegacyItems), and both are loaded from the same NBT. - @FrostyFire1
- Added: ModularUI 2 GUI for the Chest Cover
- #4999 Extended pollution system with new mixins for furnace types (
MixinTileEntityBlastFurnacePollution,MixinTileEntitySmokerPollution,MixinFurnaceLogicPollution,MixinNetherrackFurnacePollution). UpdatedPollutionHelperandPollutionTooltipto handle additional furnace types. - @wlhlm- Added: Pollution output for four furnace types
- Closes GTNH#21774
- #4997 Adds CoverArmGui, wired in through CoverArm.getCoverGui(). Adds OVERLAY_ROBOT_ARM_EXPORT and OVERLAY_ROBOT_ARM_IMPORT textures in GTGuiTextures. Uses SelectButton with LinkedBoolValue. - @FrostyFire1
- Added: MUI2 robot arm cover GUI, robot arm export and import button icons
- #4993 Removed orientation restrictions in
MTEIntegratedOreFactoryto allow upside-down placement. - @Bjdufre1- Added: Upside-down IOF orientation support
- Removed: IOF orientation restriction
- Closes GTNH#21693
- #4987 Updated
KubaTechGTMultiBlockBaseto callcreateMuffleButton()in UI initialization, and added the same call toMTEMegaIndustrialApiary'saddUIWidgets()method. - @lynxx131- Added: Sound muffling widget support in Mega Apiary
- #4986 Added MTEActiveTransformerGui with power averaging widgets to measure per-transformer throughput; implemented custom averaging algorithm to track power flow without excessive memory overhead; extended BaseMetaTileEntity and TTMultiblockBase to support widget additions. - @Dream-Master
- Added: Active Transformer power throughput UI, Power averaging display widget
- #4985 Modified MTEHatchOutputBusME and MTEHatchOutputME to check cell capacity restrictions and enforce configured limits on hatch storage volume. - @Dream-Master
- Added: Storage cell capacity restriction support for ME hatches
- #4973 Added screwdriver mode switch handler to MTESteamFurnaceMulti to enable mode cycling on right-click with screwdriver. - @chrombread
- Added: Screwdriver mode switching for Steam Hearth
- #4799 New multiblock MTESteamHearth added to gregtech with dual recipe map backends (EFRBlastingBackend, EFRSmokingBackend) accessible through mode-switching. Adds compileOnlyApi dependency on EFR fork. Also fixes steam multiblock casing texture bug on server start. - @chrombread
- Added: Steam Hearth multiblock machine, Blast Furnace recipe mode for metals, Smoker recipe mode for food items, EFR backend recipe map integrations
- Fixed: Steam multiblock casing texture corruption on server load
- #4627 New ExoFoundry multiblock (controller ID 14050) with its own casing block (sBlockCasingsFoundry), chassis tiers, module blocks, textures, sound, a foundry shader and GUI textures. GTCoilStatus now works with a new IBlockWithActiveOffset interface. - @chrombread
- Added: Modular Solidifier multiblock, Modular Solidifier casings and modules
- #4617 Added Backhand support via
OffhandToolFunctionalityHandlerand newIItemBehaviourinterface. Mouse event handling inGTMouseEventHandlernow reads from player keybindings instead of hardcoded button IDs. Spray packet (GTPacketInfiniteSpraycan) expanded to handle offhand placement and color picking. - @querns- Added: Offhand support for Infinite Spray Can, Middle-click color picking in either hand, Automatic spray on block placement when offhanded, Keybinding-aware mouse event handling, IItemBehaviour interface for item click behaviors, OffhandToolFunctionalityHandler for offhand item logic
- #4581 Refactored MTEMultiBlockBaseGui to return Flow from createPanelGap instead of IWidget, relocated mode switch UI positioning, added hoverable status indicators using new shutdown reason enums (ReasonOutOfFluid, ReasonOutOfItem, etc.), and registered corresponding texture icons in GTGuiTextures. - @chrombread
- Added: Shutdown reason status indicators (out of fluid, out of item, manual shutdown, missing tools), Hoverable UI elements for machine status, New texture icons for shutdown states
- #4511 MTEHatchCraftingInputME and MTEHatchCraftingInputSlave now persist proxy connection state, likely via NBT serialization in save/load methods, allowing buses to restore their cached proxy references on world reload. - @AbdielKavash
- Added: proxy connection persistence in ME Crafting Input buses
- #4481 Added cable connection logic to MTECable with directional and multi-cable support. Wire cutter tool now triggers cable attachment via shift-right-click interaction. New configuration and language strings added for the feature. - @AbdielKavash
- Added: Multi-cable connection mode for wire cutters, Directional cable attachment (shift-right-click per direction), Non-directional cable attachment (shift-right-click center)
- #4464 Added UI widgets to
MTEActiveTransformerto track and display power throughput using a simple averaging algorithm. ModifiedMTEMultiBlockBaseandTTMultiblockBaserendering paths to accommodate the new display, and added language strings for the UI labels. - @RecursivePineapple- Added: Active Transformer throughput display widget, Power flow averaging algorithm, UI language strings for throughput indicators
- #4452 Modified MTEHatchOutputBusME and MTEHatchOutputME to check the installed AE cell's capacity restriction (if set) and apply it to the hatch's available capacity. Handles unconfigured hatches, pre-configured hatches with storage components, and cells with 0 capacity. - @RecursivePineapple
- Added: cell capacity restriction enforcement in ME output hatches, cell capacity restriction enforcement in ME output busses
- Fixed: ME output hatches ignoring storage cell capacity limits
- #4416 Added MTEHatchPHSensorGuiBuilder and MUI2 panel hooks on MTEHatchPHSensor. The threshold and updateRedstoneOutput pH argument changed from float to double, and NBT now reads and writes the threshold with getDouble and setDouble. - @Nockyx
- Added: MUI2 interface for the pH Sensor hatch
- #4380 Added MTEHeatSensorGuiBuilder and MUI2 panel hooks on MTEHeatSensor, with getters and setters for threshold and inverted. The threshold changed from float to double, and NBT now reads and writes it with getDouble and setDouble. - @purebluez
- Added: MUI2 interface for the Heat Sensor hatch
- #4378 Introduced MTEChamberCentrifuge and MTEChamberCentrifugeGui. Scales tier-by-tier with configurable parallels based on lubricant and optional secondary fluid (25% bonus). Gated to milestone materials. - @chrombread
- Added: Chamber Centrifuge multiblock, New casings, Centrifuge recipe metadata
- #4065 New armor and augment item system (ItemAugment, ItemAugmentCore, ItemAugmentFrame, ArmorContext, ArmorEventHandlers, ArmorKeybinds) plus a Modification Table machine (ID 12071). IHazardProtector gains entity-aware and full-protection default methods, and HazardProtection checks them. Adds a HoloInventory runtime dev dependency for the HoloInventory augment. - @FourIsTheNumber
- Added: Mechanical Helmet, Chestplate, Leggings and Boots, Modification Table, Energy, Nano, Living and Singularity cores, armor frames, armor augments
New Content
- #8199 Added an electrolyzerRecipes entry in ElectrolyzerRecipes using the gtnhlanth WerkstoffMaterialPool CalciumFluoride fluid, 2 s duration, TierEU.RECIPE_MV. - @DreamYao520
- Added: Electrolyzer recipe for liquid calcium fluoride
- #8068 tectech Assembler.java adds two assemblerRecipes for Machine_BuckConverter_UMV and Machine_BuckConverter_UXV. Both take 10 seconds, at RECIPE_UIV and RECIPE_UMV EU/t respectively, with 2 ingots of molten Space Time (UMV) or MHDCSM (UXV). - @Nana-Sakura
- Added: UMV Buck Converter recipe, UXV Buck Converter recipe
- Closes GTNH#25684
- #8031 Adds Ice_Cream_* entries to ItemList and IDMetaItem02 (meta IDs 657-692), registers them in MetaGeneratedItem02 with their effects, and adds an addRecipe call for each in IceCreamMachineRecipes. Adds lang entries and textures, including an animated one for 688. - @Ranzuu
- Added: 36 new ice cream flavors, potion effects on the new ice creams
- #7970 VacuumFreezerRecipes adds a recipe from the GT++ Force plasma fluid to Materials.Force molten, 8 s at TierEU.RECIPE_MV. - @chrombread
- Added: Vacuum Freezer recipe: Force plasma to molten Force
- #7934 Extended GTFoodStat to support configurable explosion strength, added ice cream recipe to IceCreamMachineRecipes with new item in IDMetaItem02 and textures. - @Ranzuu
- Added: explosive ice cream item, configurable food explosion strength, ice cream recipe
- #7925 Added 27 new PNG texture files for augment items in the gregtech textures directory. - @Spaghetti-OberNub
- Added: 27 new augment item textures
- #7896 Added Trophy Ice Cream item to
ItemList,IDMetaItem02, andMetaGeneratedItem02with corresponding texture and lang entry. - @Ranzuu- Added: Trophy Ice Cream item, Trophy Ice Cream texture
- #7873 Updated droneCase.png texture file and removed animation metadata (.mcmeta) that was no longer appropriate. - @Auynonymous
- Removed: Dyson Drone Case animation metadata
- #7815 Extended ItemList and MetaGeneratedItem02 with new ice cream enum entries, added corresponding textures, recipes, and lang entries. Renamed ice cream enums to Food_IceCream_ prefix. - @Ranzuu
- Added: 16 new ice cream flavors with textures and effects, new lang entries for ice creams
- #7674 Modified texture assets for soft mallet and maintenance icons. - @DylanTaylor1
- #7665 Added three new assembler recipes to
AssemblerRecipes.javafor vanilla sword crafting, enabling non-hand-tool production paths. - @Angry3vilbot- Added: assembler recipes for vanilla swords
- #7661 Replaced and added animated circuit texture files in
src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/, including new.mcmetaanimation metadata files. - @ZaykieT- Added: Animated circuit textures, Animation metadata files
- #7652 MaterialsInit adds setFlavorText calls to several materials. UU-Amplifier's chemical formula text moves to flavor text and both UU fluids get a symbol via unicode escapes. - @flamingowrangler2869
- Added: flavor text for late-game materials, atomic symbols for UU-Matter and UU-Amplifier
- #7443 Replaced texture file for Quantum Eye item (gt.metaitem.01/724.png) with new artwork. - @Graymare
- #7416 Extended BlockTintedIndustrialGlass with all 16 dye colors, added ItemList entries, texture resources, CTM files, and lang strings for each variant. - @Auynonymous
- Added: 16 industrial tinted glass color variants
- #7347 Updated textures for Industrial Apiary upgrade items (metaitem.03 IDs 199-217). - @jude123412
- #7330 Extended
RecipeGenDustGenerationto generate packing recipes for GT++ tiny dust items. - @MLGfruitshoot- Added: Packager recipes for GT++ tiny dusts
- #7318 Added explicit color definitions to
LoaderGTBlockFluidfor ammonia, argon, carbon dioxide, helium, hydrogen, liquid nitrogen, liquid oxygen, and methane; added corresponding texture files with metadata; removed duplicate color definitions fromMaterialsInit. - @boubou19- Added: Explicit fluid color definitions, Fluid texture assets with metadata
- Removed: Duplicate color registration
- Fixed: Autogenerated fluid colors
- #7316 Adds ItemList entries Augment_ApprenticeStriders, Augment_ArchmageStriders and Augment_EldritchStriders and removes Augment_Travelers. Adds incompatibleAugments to ArmorPartBuilder and its tooltip. Reworks SpeedBoostBehavior and JumpBoostBehavior around multiplier fields (speedBoostMulti, jumpBoostMulti) and a jump formula in ArmorEventHandlers. The Jetpack behavior now applies speed boost. Default keybinds are set to KEY_NONE. - @Spaghetti-OberNub
- Added: Apprentice Striders augment, Archmage Striders augment, Eldritch Striders augment, tiered jump boost, speed boost applied to jetpack
- Removed: Travelers augment, default keybinds for several armor toggles
- #7286 Added CTM texture properties and variant images for coils (awakened, cupronickel, etc.) in
assets/gregtech/mcpatcher/ctm/coils/. Updated textures for QFT and Speeding Pipe. - @Auynonymous- Added: CTM support for coils and solenoids, new Hypogen coil textures, new QFT coil texture, new Speeding Pipe texture
- #7276 Added texture and animation metadata files for superdense plates following GTPP material naming conventions. - @Ruling-0
- Added: Superdense plate textures for Astral Titanium, Celestial Tungsten, Chromatic Glass, Texture animation metadata
- Fixed: Missing GTPP superdense plate textures
- #7128 Updated texture asset files for Industrial Apiary upgrades from 32x32 to 16x16 resolution and added corresponding texture registration in GTUITextures. - @jude123412
- Added: 16x16 Industrial Apiary upgrade textures
- Removed: 32x32 upgrade textures
- #7118 Added Amalgatite to Materials enum and MaterialsInit, created gem textures, added Autoclave and recipe loader support for Amalgatite processing (Autoclave, Chemical Reactor, Plasma Forge). - @Auynonymous
- Added: Amalgatite material, Chipped/Flawed/Flawless/Exquisite Amalgatite variants, Gem processing recipes, Autoclave gem seed recipes
- #7074 Adds plateSuperdense generation under DOUBLE_DENSE_PLATES in Werkstoff and renames the unused BOTTLES feature flag to PLASMA_CELLS. Adds Stats.processingMaterialTierEU, set per material with TierEU constants. The BartWorks recipe loaders (BlockLoader, CasingLoader, DustLoader and others) now take EU from BWUtil.calculateRecipeEU(werkstoff, ...) instead of fixed LV/ULV values. - @Auynonymous
- Added: BartWorks Superdense Plates, GT++ Superdense Plates for selected late-game materials
- Migration: Check automation that processes those materials on low-tier machines. Making a block from 9 ingots of any BartWorks metal also changed: it takes 9x longer in the Extruder and 18x longer in the Alloy Smelter, at 120 or 480 EU/t and 60 or 240 EU/t.
- #7020 Added new texture assets for all mechanical armor frame types (Light, Medium, Heavy, Adaptive, Bulwark, Morphic, Nimble, Lightning, Infinity) and Modification Table (top, side, bottom). Updated Textures enum and MechArmorAugmentRegistries texture mappings. - @FourIsTheNumber
- Added: New frame and Modification Table textures
- #7016 Updated CTM configuration in nine purification unit classes (Clarifier, Degasser, Flocculation, Ozonation, pH Adjustment, Plasma Heater, UV Treatment, Baryonic Perfection, and main Plant) with new texture definitions and properties. - @seventh-june
- Added: Waterline CTM textures and configuration
- #7013 Adds gregtech MTEMegaOilCracker (MTEExtendedPowerMultiBlockBase, ID 15569) and renames the bartworks class to MTEMegaOilCrackerLegacy keeping ID 13367. Adds ItemList.MegaOilCracker, overlay textures, an AssemblyLineRecipes entry and a conversion recipe in MTERecipeLoader. MTEMegaDistillationTower overrides getActivitySoundLoop instead of getProcessStartSound. - @chrombread
- Added: new Mega Oil Cracker structure, Mega Oil Cracker conversion recipe, Mega Oil Cracker overlay textures
- Removed: old Mega Oil Cracker assembler recipe
- Migration: Your Mega Oil Cracker keeps running as the Legacy controller. Swapping it for the new controller takes an assembler recipe at LuV; convert and rebuild only if you want the new structure.
- #6995 Added CTM texture files and properties configuration for laser containment casings. - @FourIsTheNumber
- Added: CTM texture tiles for laser containment casings
- #6990 Added texture asset file gt.augmentmilkinfusion.png. - @Spaghetti-OberNub
- Added: Milk infusion augment texture
- #6983 Replaced jetpack augment texture file (gt.augmentjetpack.png). - @FourIsTheNumber
- #6959 Added recipe definitions in
BECRecipes.java, created new decorative frame block inBlockDecorativeFrame.java, and integrated metamaterials from PR #6735 into casing recipes across assembler and forming press machines. - @Ruling-0- Added: BEC casing recipes, BlockDecorativeFrame class, BEC material item definitions
- #6929 Added two new recipes to MTEIndustrialRockBreaker for Nether Leaves (60/30/10% drops) and End Leaves (90/10% drops) with 10% leave consumption. - @jude123412
- Added: Thaumic Bases Nether/End Leaf processing recipes
- #6918 Updated GTGuiTextures texture definitions and MTEBasicMachineBaseGui to use new side selection arrow textures (up/down/left/right) and a new selection background texture, replacing the previous pensib texture. - @FrostyFire1
- Added: new side selection arrow textures (up, down, left, right), new side selection background texture
- #6873 Added washer recipe entries in GregtechSimpleWasher.java for GT++ impure dust materials. - @MLGfruitshoot
- Added: Simple washer recipes for GT++ impure dusts
- #6868 Added gregtech MTEMegaDistillationTower (extends MTEExtendedPowerMultiBlockBase, ISurvivalConstructable, Distillation Tower and Distillery modes, new overlay textures). Renamed the bartworks MTEMegaDistillTower to MTEMegaDistillTowerLegacy and removed its Assembler recipe. Registered the new controller in LoaderMetaTileEntities and added recipes in AssemblerRecipes and AssemblyLineRecipes. - @chrombread
- Added: new Mega Distillation Tower structure, Distillery mode on the Mega Distillation Tower, new Mega Distillation Tower recipes
- Removed: Legacy Mega Distillation Tower crafting recipe
- Migration: Your Mega Distillation Tower keeps running as the Legacy controller. Swapping it for the new controller takes an assembler recipe at LuV; convert and rebuild only if you want the new structure.
- #6752 Updated MetaItem 03 coil texture files for UV (148.png) and UIV (260.png) tiers. - @jude123412
- #6742 Added Conflict & Peace casings, Conduit and Transformative Coil blocks with Chromatic Glass render sync; updated BEC structure definitions and MTEBECGenerator, MTEBECStorage, MTEBECAssembler, MTEBECDiode, MTEBECIONode textures. - @Auynonymous
- Added: Conflict and Peace casings, Conduit block, Transformative Coil block
- #6575 Registered block textures and models for Hexanite, Churitsu, and Shijima. Added Fluid Solidifier recipes to convert unformed ingots into blocks over netherite blocks. - @Auynonymous
- Added: Hexanite block, Churitsu block, Shijima block, Block textures, Fluid Solidifier recipes
- #6550 Registered Shijima and Churitsu materials in Materials.java and MaterialsIDMap.java. Added EBF, Centrifuge, and Mixer recipes for crafting these alloys from various white/gray materials with exact timing matching Tairitsu. - @Auynonymous
- Added: Shijima material and recipes, Churitsu material and recipes, Technetium processing recipes
- #6524 Added tooltip hint to MetaGeneratedItem01 and localization strings for
GT5U.tooltip.flour.cauldronin en_US.lang and ru_RU.lang. - @Eldrinn-Elantey- Added: Flour cauldron tooltip
- #6488 ItemList, IDMetaItem03, and MetaGeneratedItem03 extended with new circuit board tiers; 35 new texture assets added; language file updated. - @jude123412
- Added: Exotic Circuit Board, Cosmic Circuit Board, Transcendent Circuit Board, IC2 circuit replacements, circuit board textures
- #6371 Adds MTEOreWashingPlant and MTEIndustrialChemicalBath, and renames the gt++ wash plant to MTEIndustrialWashPlantLegacy. ItemList.IndustrialWasher becomes OreWashingPlant, WashPlantCasing gets texture index 75, and RecipesMachinesMulti and MTERecipeLoader are updated. - @Yoshy2002
- Added: Ore Washing Plant, Industrial Chemical Bath, conversion recipes from the old Industrial Wash Plant
- Migration: Your Industrial Washer and Industrial Chemical Bath keep running as the Legacy controllers. Swap one for the new controller in a crafting table and rebuild only if you want the new structure.
- #6359 Adds MTELargeNaquadahReactor and renames goodgenerator MTEMultiNqGenerator to MTEMultiNqGeneratorLegacy. BlockCasings13 gets meta 15 as NaquadahReactorCasing with a new texture, and the assembly line recipe outputs ItemList.LargeNaquadahReactor. The checklist item for the base class change is unchecked. - @Yoshy2002
- Added: new Large Naquadah Reactor structure, Naquadah Reactor Casing, conversion recipe from the old controller
- Removed: hatch placement restrictions
- Migration: Your Large Naquadah Reactor keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6356 Adds MTEIndustrialBendingMachine and MTEIndustrialFormingPress on MTEExtendedPowerMultiBlockBase, and renames the gt++ MTEIndustrialPlatePress to MTEIndustrialPlatePressLegacy. ItemList.IndustrialMaterialPress becomes IndustrialFormingPress, and MaterialPressCasing gets texture index 50. RecipesMachinesMulti and MTERecipeLoader are updated for the new crafting and conversion recipes. - @Yoshy2002
- Added: Industrial Bending Machine, Industrial Forming Press, conversion recipes from the old Industrial Material Press
- Migration: Your Material Press keeps running as the Legacy controller. It converts in a crafting table into either the Industrial Bending Machine or the Industrial Forming Press, whichever recipe you pick, and you then build that machine's structure.
- #6349 Adds MTEExtremeCombustionEngine on MTEExtendedPowerMultiBlockBase, which duplicates some code from MTELargeCombustionEngine. MTEExtremeDieselEngine is renamed MTEExtremeDieselEngineLegacy with addStructureDeprecatedLine. The goodgenerator and MTERecipeLoader recipes use ItemList.ExtremeCombustionEngine. - @Yoshy2002
- Added: new Extreme Combustion Engine structure, conversion recipe from the old controller
- Migration: Your Extreme Combustion Engine keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6345 Adds 11-line Assembler recipe to AssemblerRecipes.java using Circuit 1 to avoid conflicts with Clean Stainless Steel Casing recipes. - @KleinGrrmpf
- Added: Forming Core Assembler recipe
- #6340 Adds MTELargeCombustionEngine on MTEExtendedPowerMultiBlockBase and renames MTEDieselEngine to MTEDieselEngineLegacy. The crafting recipes in MTERecipeLoader, goodgenerator RecipeLoader and GregtechRocketFuelGenerator now use ItemList.LargeCombustionEngine. LoaderMetaTileEntities registers the new controller. - @Yoshy2002
- Added: new Large Combustion Engine structure, conversion recipe from the old controller
- Migration: Your Large Combustion Engine keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6339 Adds gregtech MTEElectricImplosionCompressor on MTEExtendedPowerMultiBlockBase with Casings, and renames the bartworks controller to MTEElectricImplosionCompressorLegacy. MTERecipeLoader and LoaderMetaTileEntities register the new controller, and the TecTech research recipe now outputs it. A NaquadahReinforcedBlock casing entry is added. - @Yoshy2002
- Added: new Electric Implosion Compressor structure, conversion recipe from the old controller
- Removed: piston animation, hatch placement restrictions
- Fixed: about 20 dupes caused by the piston animation
- Migration: Your Electric Implosion Compressor keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6334 New block casing added to BlockCasings12, registered in Casings.java and ItemList. Includes CTM textures and language strings. Recipe added to MTERecipeLoader. - @Yoshy2002
- Added: Forming Core block, CTM textures for forming core
- #6290 Added new Hypogen texture assets (coil, block, foil, frameGt, etc.), updated Dragonblood material to use Hypogen textures. Extended GTPPMTECable to support custom texture sets. Updated BaseItemCell and BaseItemPlasmaCell to support custom textures. - @Auynonymous
- Added: Hypogen custom texture set, support for custom textures in GT++ wires/cables/cells, Dragonblood texture alignment
- #6241 Updated texture assets and casing block definitions in GregtechMetaCasingBlocksPipeGearbox and TexturesGtBlock to use unique textures instead of duplicates, and corrected Europium casing material color. - @seventh-june
- Added: new unique textures for multiple casings
- Removed: duplicate texture usage
- Fixed: Europium casing color alignment with material
- #6187 Added Apatite output to Phosphorous Asteroid and created new Space Ore Asteroid entry in SpaceMiningRecipes with lang keys. - @flamingowrangler2869
- Added: Apatite to Phosphorous Asteroid, Space Ore Asteroid
- #6097 Added 72 new PNG texture files for various mold variants across item registries. - @seventh-june
- Added: mold item textures (72 variants)
- #5896 Added Fluxed Electrum material to MaterialsInit with custom TextureSet; created animated texture files for items, blocks, and coils with .mcmeta animation metadata. - @Auynonymous
- Added: Fluxed Electrum material set, Animated item textures, Animated block textures, Animated coil textures, Animated fluid texture
- #5685 Added animated EXOFOUNDRY_*_CHASSIS_TOP textures with .mcmeta files (frametime 1) for the Celestial, Eternal and Infinite chassis icon sets. - @chrombread
- Added: top and bottom textures for foundry magnetic chassis
- #5676 Adds MTEMassSolidifier with MTE ID 368 (MULTI_MASS_SOLIDIFIER_CONTROLLER). MTEMultiSolidifier is renamed to MTEFluidShaper, keeps ID 366 and is marked deprecated (to be removed after 2.9). Casing textures are renamed and new front overlays are added. - @chrombread
- Added: Mass Solidifier multiblock
- #5362 Updated COKE_OVEN_CASING, COKE_OVEN_OVERLAY_ACTIVE, and COKE_OVEN_OVERLAY_INACTIVE texture assets. - @Vlamonster
- #5249 SpaceMiningRecipes extended with nether asteroid definition; lang file updated. - @EnderProyects
- Added: Nether ore asteroid
- #4782 Added five new bee definitions (Manasteel, Elven, Terrasteel, Gaia, M-M-M) in GTBeeDefinition and GTBranchDefinition with corresponding comb types and MetaItems. Each bee has specific breeding requirements and base production blocks defined in ItemComb and related enums. - @3ricbae
- Added: Manasteel bee (bred from Steel + Alfheim), Elven bee (Elven Portal trade), Terrasteel bee (bred from Elven + Shadow Metal), Gaia bee (bred from Terrasteel + Naquadah, blink lifespan), M-M-M bee (bred from Manasteel + Machinist, blinding speed)
- #4669 Tool texture definitions have been refactored from hardcoded Textures enum entries into TextureSet-based implementations. Individual tool classes (ToolBranchCutter, ToolButcheryKnife, etc.) updated to use the new TextureSet system. TextureSet enum extended with new material-specific texture definitions. - @jude123412
- Added: custom texture sets for multiple tool materials, texture support for melodic alloy and crystalline pink slime plates
- Removed: legacy texture entries from Textures enum
- Fixed: White Dwarf Star tool texture rendering, melodic alloy and crystalline pink slime plate texture visibility
- Closes GTNH#18346, GTNH#19323
- #4438 Adds four MACHINE_CASING_* icon set PNGs and three gt.metaitem.03 item textures (248-250). No code changes. - @kielxyz
- Added: HTGR casing textures, HTGR item textures
- #2903 Adds the NAC controller and modules, new casings, textures, GUI textures and MetaTileEntity IDs, a circuit component fake item, and a reworked factory grid/network API (StandardFactoryGrid, IFactoryNetwork). The diff was too large to fetch, so this is based on the body and file list. - @NotAPenguin0
- Added: Nanochip Assembly Complex, NAC modules, custom item logistics system for the NAC
Changes
- #8324 MTEBECStorage.compile: raised the max hatch count in withHatches for the casing 'B' from 21 to 42. The hatch list covers Energy, ExoticEnergy and DetectorHatchElement, so the cap is shared. - @boubou19
- #8314 MTEAlgaePond, MTECharcoalPit and MTECleanroom switch to addMarkdown with new tooltip .md files. MTECleanroom gains public constants for the startup EU, idle EU, LV amperage and maintenance penalty, and is annotated SkipGenerateDescription. - @MLGfruitshoot
- Added: markdown tooltips for Algae Pond, Charcoal Pile Igniter and Cleanroom
- #8308 MTELINAC construct and survivalConstruct compute length from GTStructureChannels.STRUCTURE_LENGTH (clamped 1 to 83, minimum 19, forced odd) instead of stackSize + 7. The tooltip uses addSubChannel(STRUCTURE_LENGTH) in place of the master channel. - @fehling135
- #8307 Edited circuit flavor tooltip entries in en_US.lang only. - @shironakoushi
- Fixed: Optical, Exotic, Cosmic and Transcendent circuit tooltips contradicting their tier line, missing article in the Good Integrated Circuit tooltip
- #8303 MTEBeamCrafter moves particle absorption out of incrementProgressTime into a new absorbInputParticles method, called from an overridden runMachine before super.runMachine. - @ham-corp
- #8301 String replacements in the tooltip builders of MTEDistillationTower, MTEMegaDistillationTower, MTESpargeTower and MTEAdvDistillationTower, plus the gregtech and miscutils en_US.lang files. - @SuperficialCake
- #8294 Reworked GeneralInfoPanel to build the info text from split lang keys (for example fuelinfotext.1 through .6) with formula entries and header and table-of-contents widgets. Updated the tectech en_US.lang accordingly. - @serenibyss
- #8279 Removed the unused getTooltip and getLocalizedBioName from ItemLabParts, the .latin keys and bw.bioname.latin.format. Replaced the bw.bioname values in bartworks en_US.lang with latin names and added ru_RU and zh_CN entries. - @Eldrinn-Elantey
- Added: ru_RU and zh_CN culture names
- Removed: latin tooltip methods and .latin lang keys
- #8268 Changed English names and fallback strings in LoaderMetaTileEntities.registerCircuitAssembler and in en_US.lang for tiers 6-14. - @shironakoushi
- #8265 MTEVoidMinerBase now builds its tooltip from the new void-miner.md via addMarkdown with variables for power, gas rate, boosts and ore rate. It is marked SkipGenerateDescription, and the magic numbers became named constants. - @MLGfruitshoot
- Added: void-miner.md tooltip
- #8264 MTEAssemblyLine and MTECircuitAssemblyLine now build their tooltips from markdown files via addMarkdown and are marked SkipGenerateDescription. Added assembly-line.md and circuit-assembly-line.md and rewrote advanced-assembly-line.md. - @MLGfruitshoot
- Added: assembly-line.md tooltip, circuit-assembly-line.md tooltip
- #8260 Adds Material..flavorText and Material..fluidpipe.newname entries to en_US.lang, ru_RU.lang and zh_CN.lang. The registration calls stay as a fallback for addons. - @Eldrinn-Elantey
- Added: asset lang entries for 28 flavor texts and six pipe names
- Fixed: seven untranslated Russian lines
- #8254 Adds 14 lines each to en_US.lang and ru_RU.lang in assets/gregtech/lang: creative tab names, enchantment names, gtplusplus comb names, gt.laserplate.name, and the lithium peroxide and lithium hydroxide fluid names. - @Eldrinn-Elantey
- Added: asset lang entries for creative tabs, enchantments, fluids, GT++ combs and Laser Resistant Plate
- #8243 Lang-only change in the gregtech and tectech en_US.lang files: removes the /t suffix from the energytunnel and dynamotunnel names, their achievements and the wormhole generator infodata strings. - @shironakoushi
- Removed: A/t unit from amperage strings
- Fixed: invalid A/t unit in hatch names
- #8242 Fusion controller classes (MTEFusionComputer1-3, MTELargeFusionComputer1-5, MTEAdvFusionMk4/5) pass extra base_para and per_tier_para variables to new fusion-computer-mkN.md markdown tooltips. The tier is built from GTValues.TIER_COLORS and VN, and the hatch count 32 is now a constant. - @MLGfruitshoot
- Added: parallel info in fusion tooltips, fusion tooltip markdown files
- #8239 Changes the regional name passed to MTESteamAlloySmelterSteel in registerHPSteamMachines and the gt.blockmachines.hpmachine.alloysmelter.name lang value. - @shironakoushi
- Fixed: High Pressure Alloy Smelter name missing Steam
- #8233 Reworded the GT5U.gui.text.nac.info.line_specifics.primitive.calibration.effect2 and effect3 strings in en_US.lang. No logic changed. - @chrombread
- #8227 Rewrote the Field Restriction Coil recipes in goodgenerator RecipeLoader, merging the wire stacks (wireGt01 x2 to one wireGt02 stack of 64) and using Circuit_Wafer_PPIC x32 at increasing tiers. Also removed the NewHorizonsCoreMod.isModLoaded() check around them. The diff is cut off, so only the T1 recipe is visible. - @Auynonymous
- Removed: redundant coremod loaded check
- Migration: Re-encode your Field Restriction Coil T1 to T3 patterns and supply the thicker wire and the QPIC and FPIC wafers. Existing data sticks keep working.
- #8216 Rewrote eye-of-harmony.md from 57 lines to 35. MTEEyeOfHarmony now uses literal ME Output Bus and ME Output Hatch strings, and the tooltip finisher uses gray with a width of 41. - @MLGfruitshoot
- #8205 The Universal Chemical Fuel Engine and Large Rocket Engine tooltips now go through addMarkdown with variable maps and new .md files. The Nuclear Salt Processing Plant tooltip gets parallels, speed and EU variables. The existing nuclear-reactor, refinery and solar-tower .md files are edited. Part of the diff was not shown. - @MLGfruitshoot
- Added: Markdown tooltips for Universal Chemical Fuel Engine and Large Rocket Engine
- #8203 MTECryogenicFreezer is marked SkipGenerateDescription and builds its tooltip from the new cryogenic-freezer.md through addMarkdown, with variables from the PARALLELS, SPEED_BONUS, EU_MODIFIER and CRYOTHEUM_PER_SECOND constants. - @MLGfruitshoot
- Added: Cryogenic Freezer markdown tooltip
- #8201 MTEPlanetaryGasSiphon passes speed and pipes_per_depth variables to addMarkdown and uses a MINING_PIPES_PER_DEPTH constant in the pipe check. planetary-gas-siphon.md was rewritten with the new layout. - @MLGfruitshoot
- #8198 Added StructureErrorRegistry.EXOTIC_HATCH_INSUFFICIENT_COIL_TIER and used it in MTEIndustrialCokeOven.checkMachine. The en_US key added is exotic_hatch_insufficient_coil_tier, but the registry references exotic_hatch_insufficient_coil_level, so the new text may not resolve in game. - @PierceC7
- Added: Multi-Amp Hatch coil tier error message
- Closes GTNH#26952
- #8196 MTESpinmatron now skips generated descriptions and loads a new spinmatron.md tooltip file with variables for the values. CentrifugeRecipeKey changes its display text. - @MLGfruitshoot
- #8189 MTENuclearSaltProcessingPlant now builds its description from a nuclear-salt-processing-plant.md markdown tooltip and is marked SkipGenerateDescription. The parallel, duration and EU multipliers (2, 2.5, 1) moved into constants. - @MLGfruitshoot
- Removed: Structure lines from the Nuclear Salt Processing Plant tooltip
- #8188 MTERefinery now builds its description from a refinery.md markdown tooltip via addMarkdown and is marked SkipGenerateDescription. The four addInfo lines are removed. - @MLGfruitshoot
- Removed: Energy Hatch line from the Refinery tooltip
- #8176 MTEDecayWarehouse tooltip moved from MultiblockTooltipBuilder calls to a markdown tooltip file (decay-warehouse.md), with SkipGenerateDescription added. - @MLGfruitshoot
- #8173 Removes the direct PartPlacement.tryPlace branch from ToolVajra, restoring the onItemUse path from #8164. The diff reverts only #8170, although the body says #8164 too. - @DreamYao520
- Removed: direct AE2 part placement in Vajra hotswap
- #8169 MTENuclearReactor now skips generated descriptions and reads a new nuclear-reactor.md tooltip; adds U233_CHANCE_TICKS and WARMUP_SECONDS constants. - @MLGfruitshoot
- Added: LFTR tooltip text
- #8165 Added colour markup to the neutron-activator.md tooltip in the en_US and ru_RU language folders. - @MLGfruitshoot
- Added: colour on Neutron Activator tooltip
- #8157 MTESolarTower now skips generated descriptions and builds its tooltip from a new solar-tower.md file with variables for cycle, threshold, center and exponent. Adds three en_US lang keys for structure hints and the machine type. - @MLGfruitshoot
- Added: Solar Tower tooltip text, Solar Tower structure hints
- #8149 GasSiphonRecipeHandler multiplies the recipe amount by BASE_RATE_MULTIPLIER (2) and draws it with formatFluid plus a /s suffix. - @MLGfruitshoot
- #8144 LoaderMetaTileEntities registers API.setAliases for ItemList.Hatch_DroneDownLink with the key gt.blockmachines.hatch.maintenance.name. - @RealSilverMoon
- Added: Maintenance alias for the Drone Downlink Module
- Closes GTNH#26724
- #8119 MTENanochipAssemblyComplexGui drops calibration body entries 5 and 6 and adds primitive body1/body2 and special body1/body2 text entries. en_US.lang keys are reworded to match. - @chrombread
- #8115 MTESteamForgeHammer adds InputHatch to the atLeast list of the hatch adder, updates hatch textures for mInputHatches, and adds an input hatch line to the tooltip. - @luoyangyuli2001
- Added: Input Hatch support on Large Steam Forge Hammer
- Fixed: Large Steam Forge Hammer could not take fluid inputs for recipes that need them
- #8110 MTELinkedInputBus.getMachineCraftingIcon borrows the icon of a formed bus on the same channel, picking the lowest position. MTEHatch.updateCraftingIcon(icon, owner) records the owner coordinates, and MTEMultiBlockBase.clearHatches clears the icon. MTETargetChamber clears its mask bus icons too. - @Eldrinn-Elantey
- Added: Multiblock name on interfaces facing a Linked Input Bus
- Fixed: Hatches keeping the name of a multiblock they no longer belong to
- #8096 MTEExoFoundry: adds Maintenance to the atLeast() hatch list of the 'H' hatch adder, plus the matching static import. - @MLGfruitshoot
- Added: Maintenance Hatch and drone hatch placement on the Exo Foundry
- #8086 Adds a spinmatron CTM properties file and textures. The blockcasings12 CTM folders move under ctm/blockcasings12/. The cryogenic casing CTM folder typo is fixed and switched to matchTiles with connect=tile. EMS and other textures are updated. - @Auynonymous
- Added: Spinmatron connected textures
- Fixed: Magtech block corner and middle connected textures, Coolant and Heating Duct textures not updated, Stray pixel on the Advanced Filter Casing, Cryogenic Freezer connected textures ignoring hatches
- #8082 GasSiphonRecipeHandler.drawExtras swaps getColoredTierNameFromVoltage plus manual parentheses for GTUtility.getTierNameWithParentheses and drops the formatValue wrapper. - @Ranzuu
- #8081 MTEAcidGenerator.getLocalName now translates tile.acidgenerator.tier.<mTier>.name; five keys for tiers 1-5 added to the bartworks en_US.lang. - @shironakoushi
- Added: Per-tier Acid Generator names
- #8080 MTEBioLab.getLocalName now translates tile.biolab.tier.<mTier>.name; ten keys for tiers 3-12 added to the bartworks en_US.lang. - @shironakoushi
- Added: Per-tier Bio Lab names
- Fixed: All Bio Lab tiers showing the same name
- #8072 MTEHatchUncertaintyGui.createValueAssistButton now uses the standard button background and the new TT_PICTURE_UNCERTAINTY_ASSIST_OFF and _ON textures in GTGuiTextures. It also sets the click sound to ForgeOfGodsGuiUtil.getButtonSound(). - @Ranzuu
- Added: Uncertainty assist button textures, Uncertainty assist button click sound
- #8069 Removed .circuit(2) from the Reprecipitated Rhodium recipe in PlatinumSludgeRecipes.registerRhodiumRecipes. - @Armisael5
- Removed: Circuit requirement from Reprecipitated Rhodium recipe
- Migration: Take the circuit out of any automation that feeds this recipe.
- #8056 MTEForgeOfGods.checkMachine now calls checkOneInputBus, checkOneInputHatch and checkOneOutputBus in place of the ME output bus instanceof check. The ME-only output bus position lang key was removed and a tooltip word was respelled. - @serenibyss
- Removed: ME output bus requirement on the Forge of the Gods
- Closes GTNH#20955
- #8050 Changed gt.blockcasings5.7.name and GT5U.coil.UEV in en_US.lang. Text only. - @mak8427
- Closes GTNH#26778
- #8047 FuelSpecialValueFormatter drops the fluid container size lookup and formats mSpecialValue with getFluidUnit(). The lang string GT5U.nei.fuel takes a unit argument, and the semi-fluid fuel map formatter in RecipeMaps was updated the same way. - @DylanTaylor1
- #8039 Changes the bottom layer rows of base_structure in MTENanochipAssemblyModuleBase from P to V, and edits several layers of AssemblyComplexStructureString. - @serenibyss
- Added: vacuum conveyor hatch placement on the full bottom face of NAC modules
- #8005 MTENanochipAssemblyComplex tracks matrixPowerPortion (1 to 99, default 25) and calls updateModuleEU to set each module's EU/t. The NAC_WAITING_FOR_POWER result and the matrix module's priority override are removed. MTENanochipAssemblyComplexGui adds a SliderWidget, and SegmentedBarWidget accepts a supplier of segments. - @serenibyss
- Added: Power distribution slider in the NAC UI
- Removed: Waiting for power state on NAC modules
- Fixed: NAC modules stalling on power and long start-up charge time
- #7995 Added @Config.Name annotations to the Client.Render config fields in Client.java. - @flamingowrangler2869
- Added: display names for render config options
- #7989 Rewrote the tooltip in MTEUniversalChemicalFuelEngine.createTooltip and made the efficiency and heating constants private static final. - @MLGfruitshoot
- Fixed: Universal Chemical Fuel Engine tooltip disagreeing with the wiki
- #7988 MultiblockTooltipBuilder.addPollutionAmount and PollutionTooltip now use formatNumber. GT5U.MBTT.PPS became a format string with %s in three lang files. - @Connor-Colenso
- #7983 MTELargeRocketEngine.createTooltip now builds the text from named constants (soft caps, boost multiplier, warmup times, pollution) and formats values with NumberFormatUtil. - @MLGfruitshoot
- #7963 In MTEIceCreamMachine, WORK_CHANCE_PERCENT went from 30 to 35 and BROKEN_TOOLTIP_COUNT from 12 to 24. The repair slot became a phantom (ghost) item slot, Duct Tape was added as a universal repair item, and unused isRepairRequested() was removed. - @Ranzuu
- Added: Duct Tape as universal repair item for Ice Cream Machine, 12 more broken tooltips
- Removed: repair item storage in Ice Cream Machine slot
- #7960 Replaced three item textures (gt.metaitem.03 IDs 256, 257, 258) with new PNGs. - @FourIsTheNumber
- #7945 MTEBECStorage raises the withHatches maximum on the 'B' casing from 20 to 21 and updates the tooltip casing range for ElectromagneticallyIsolatedCasing from 324-343 to 322-343. - @Ruling-0
- Added: one extra detector hatch slot on the BEC containment field
- #7921 Moved createTooltip text in MTEComponentAssemblyLine, MTECoolantTower and MTELargeEssentiaSmeltery to addMarkdown resources and added @SkipGenerateDescription. Added 12 lang keys, and frame boxes use OrePrefixes.frameGt.getLocalizedNameForItem. - @Eldrinn-Elantey
- Added: markdown tooltips for three multiblocks, 12 shared lang keys
- Fixed: Tungstencarbide spelling in Coolant Tower structure hint
- #7904 Removed
GTCLSCompat,CLSCompat, and related BetterLoadingScreen hacks. UpdatedGTProxyand material loaders to use FML progress API instead. - @danyadev- Removed: GTCLSCompat class, CLSCompat class, BetterLoadingScreen dependency
- #7892 Moved multiblock controller names from GTLanguageManager into asset lang files of bartworks, ggfab, goodgenerator and gregtech. Renamed GGMaterial fuel Werkstoff names and wireless charger names to the Mk-N form, updated antimatter-forge tooltip fluid keys, and changed MTENuclearReactor.getMachineType. - @Eldrinn-Elantey
- #7863 ArcFurnaceLoader adds the three electrode recipes to compressorRecipes instead of neutroniumCompressorRecipes. The COMPRESSION_TIER javadoc now lists 1: HIP and 2: Black Hole. - @Ruling-0
- #7847 MTELargeFusionComputer1-5 are marked SkipGenerateDescription and build the tooltip from new en_US/ru_RU tooltip .md files and shared gt.mbtt lang keys. createParallelText is removed from MTELargeFusionComputer. - @Eldrinn-Elantey
- Added: markdown tooltips for Large Fusion Computer Mk1 to Mk5
- Fixed: three outdated block names in Large Fusion Computer structure hints
- #7841 AE2Compat.registerBlockingModeIgnoreItems registers Blood Magic, Blood Arsenal, Forbidden Magic, Avaritia orbs, the Twilight Forest trophy (wildcard meta) and the Extra Utilities division sigil, each guarded by a mod-loaded check. - @YamiKami-Sama
- Added: Blood Orbs in blocking mode ignore list, Twilight Forest trophies in blocking mode ignore list, Pseudo-Inversion Sigil in blocking mode ignore list
- #7803 In MTERecipeLoader and AssemblerRecipes, wireGt04 for NaquadahAlloy was replaced with cableGt04 in the Hull_UV shaped and assembler recipes. - @Nana-Sakura
- Fixed: UV machine hull recipe using wire instead of cable
- Migration: Stock Naquadah Alloy Cable for UV Machine Hull crafting instead of wire, and update any automation that feeds wire into those recipes.
- #7788 MTEMultiBlockBase restores overridden getInfoData() removed in PR #5833. ProcessingLogic, OverclockCalculator, and ParallelHelper updated to support tracking maximum recipe tier separately from power tier. - @Nana-Sakura
- Added: maximum recipe tier tracking in tricorder
- Fixed: tricorder showing incorrect power input
- #7769 MTEHatchCraftingInputME now sends the hatch name to WAILA as separate parts (base name with circuit numbers, then one line per item) instead of a pre-joined string, allowing WAILA to wrap text naturally. - @Eldrinn-Elantey
- #7765 Reworded three addInfo lines in MTEIndustrialElectromagneticSeparator.createTooltip and added EnumChatFormatting colours. No logic change. - @MLGfruitshoot
- #7747 Added ComparisonWithAnalog enum and analog mode support to MTEHatchCondensateDetector. Fixed lang keys for condensate types. Enhanced MTEHatchIONodeController and line-of-sight rendering. Added DisableableTextFieldWidget for UI mode switching. - @RecursivePineapple
- Added: Analog redstone output mode for Nanite Detector, ComparisonWithAnalog comparison mode enum, DisableableTextFieldWidget for settings, Visual beam indicator for LoS hatch during crafting
- Fixed: Condensate abbreviated name lang keys
- #7738 Added WAILA input/output display to MTEDiode using transformer keys and voltage tier config, disabled canFill() for fluid handling. - @Eldrinn-Elantey
- Added: WAILA input/output display for Diodes
- Fixed: Unintended fluid tank on Diodes
- #7735 Enabled shift-click handling in CoverChestGui for Item Holder covers, matching behavior of other container interfaces. - @Ranzuu
- Added: Shift-click priority for Item Holder covers
- #7728 Updated MTEExtremeEntityCrusher, MTEMassSolidifier, and MTEIndustrialCuttingMachine to use getTierForStructure for energy hatch tier validation, enabling Debug Energy Hatch support. - @Angry3vilbot
- Added: Debug Energy Hatch support for EEC and Mass Solidifier, Debug Energy Hatch support for Industrial Cutting Factory with lower-tier sawblades
- #7700 Updated PNG textures for soldering iron (icon, handle, tool head, material icons, overlays) and screwdriver icon. - @DylanTaylor1
- Fixed: Soldering iron visual inconsistency, Screwdriver icon text height
- #7686 SteamGaugeWidget passes the values through NumberFormatUtil.formatNumber and formatFluid. The GT5U.machines.steam.amount lang string drops the literal L. - @Connor-Colenso
- Removed: hardcoded L suffix on steam gauge
- #7657 Updated fluid unit display in tank info lines across multiple files (
MTEYottaFluidTank.java,MTEHatchOutput.java,MTEHatchOutputMEBase.java,MTEQuantumTank.java,MTESuperTank.java) to use GTNHLib fluid unit configuration. - @Eldrinn-Elantey- Fixed: Hardcoded liter display ignoring config
- #7629 Replaced addInfo chains with addMarkdown(ResourceLocation) in MTEAdvAssLine, MTEPlanetaryGasSiphon, TileEntityDysonSwarm and MTEDigester, and added en_US and ru_RU tooltip .md files. Replaced the hardcoded 'Heating Coil' with the GT5U.MBTT.Tiers.Coil lang key, and removed the addFormattedString call in Dyson Swarm. - @Eldrinn-Elantey
- Added: markdown tooltips for Dyson Swarm, Planetary Gas Siphon, Digester and Advanced Assembly Line
- Fixed: literal %%% markers in Dyson Swarm lore text, hardcoded Heating Coil casing label in Planetary Gas Siphon and Digester
- #7603 In MachineStats.Machines, useStackWatcher now has @Config.DefaultBoolean(false) and is marked @Config.Sync. It still requires a world restart. - @AnsonYeung
- #7599 TTMultiblockBase overrides shouldCheckRecipeThisTick for event-driven checks and calls scheduleRecipeCheckImmediate from onPostTick. The recipe-check flag fields in MTEMultiBlockBase became protected. MTEEyeOfHarmony overrides scheduleRecipeCheck and drops lagPreventer. MTEHatchObjectHolder calls detectInventoryChange on post tick, and MTEHatchLoS implements ISmartInputHatch and calls notifyWatchers on connect. - @Azusfin
- Fixed: input watchers on Object Holder and Line of Sight hatches
- #7590 Updated TargetChamberFrontend to conditionally hide Voltage line when amperage equals 1, moving tier information to Usage line. - @Eldrinn-Elantey
- #7577 Modified
MTEHatchCraftingInputMEto suppress generated name suffixes when a custom name is set, while preserving them for unnamed hatches. - @DreamYao520 - #7558 Added mandatory bus blacklisting in HatchElement enum and IHatchElement interface; reorganized beam multiblock lists into BeamMultiBase; removed legacy blacklisting code from BWUtil and MTEMultiBlockBase; updated multiple machine classes to inherit BeamMultiBase. - @Sanduhr32
- Added: Mandatory input bus classification system, BeamMultiBase common configuration
- Removed: Legacy bus blacklisting code in BWUtil, Duplicated beam-related lists in MTEMultiBlockBase
- Fixed: NEI preview clutter from optional input buses
- #7550 Added @IMetaTileEntity.SkipGenerateDescription to MTEBECAssembler, MTEBECDiode, MTEBECGenerator, MTEBECIONode and MTEBECStorage. - @AnsonYeung
- #7523 Removed output hatch configuration from MTESourceChamber. - @Sanduhr32
- Removed: fluid output hatch from Source Chamber
- #7513 In MTEMultiBlockBase.runMachine, removed the protectsExcessItem and protectsExcessFluid branches that called stopMachine with ITEM_OUTPUT_FAILED or FLUID_OUTPUT_FAILED. The machine now goes straight to checkRecipe when allowed to work. - @AnsonYeung
- Removed: Output failed shutdown for full item and fluid outputs
- #7510 Modified ArmorEventHandlers fall damage handler to cancel the fall damage sound event. - @Spaghetti-OberNub
- Closes GTNH#25692
- #7508 Enhanced MTEMultiBlockBase WAILA info to display parallel override; removed redundant parallel info methods from MTEIntegratedOreFactory, MTEIndustrialFishingPond, MTEBlackHoleCompressor, and other machines. - @Sanduhr32
- Added: parallel override WAILA display
- Removed: duplicate parallel info from 5 machines
- #7500 Refactored GUI coloring logic in GTGuiTheme, GTWidgetThemes, and CommonMetaTileEntity to replace full-GUI tinting with a small color swatch widget. Respects coloredGUI config option. - @Eldrinn-Elantey
- Added: color swatch widget
- Removed: full-GUI tinting behavior
- Closes GTNH#23125
- #7493 Modified lang file entries in assets/kubatech/lang/en_US.lang. - @Pxx500
- #7476 Updated localization strings in en_US.lang and ru_RU.lang for heat and coil recipe parameters. - @Eldrinn-Elantey
- #7434 Moved hardcoded tooltip strings in MTEAdvAssLine, MTEPlanetaryGasSiphon, TileEntityDysonSwarm and MTEDigester to lang keys via StatCollector. Added SkipGenerateDescription to these classes and new keys to the ggfab, gregtech, gtnhintergalactic and gtnhlanth en_US and ru_RU lang files. - @Eldrinn-Elantey
- Added: Russian tooltip translations for four multiblocks
- #7433 MTEAdvAssLine drops the under-one-tick overclock cap and applies calculateMultiplierUnderOneTick to parallel. OverclockCalculator's laser overclock logic is moved into a calculateLaserOCs helper, and new unit tests cover it. - @1328116700
- #7430 Added AO support detection to ISBRWorldContext and SBRWorldContext. GTRenderedTexture now skips custom lighting when Angelica AO is active, with exception for glow textures that temporarily restore lighting. - @tiffit
- Added: Angelica Celeritas AO detection, conditional lighting skip
- Fixed: ore lighting with Angelica
- Closes GTNH#24177
- #7423 Modified MTERadioHatchGui to trigger sound only on GUI open and shortened audio file loop from 10s to ~3s. Removed unused sound trigger code from MTERadioHatch. - @loenaaaa
- Removed: constant sound triggering logic
- Closes GTNH#24747
- #7404 Follow-up to #7299. Edited createTooltip() in many multiblock classes (goodgenerator, gregtech, and others) to add Nth-layer controller descriptions, reword hatch location strings, reorder hatch lines, and add missing air entries. - @DylanTaylor1
- Added: controller layer info in multiblock tooltips
- Fixed: missing mandatory air in tooltips
- #7401 Changed the default local name in LoaderGTBlockFluid and the fluid.bioethanol entry in en_US.lang from "Bio Ethanol" to "Ethanol". - @iouter
- #7383 Restructured MTEMultiBlockBaseGui recipe output layout to display rates on a separate line from product names, removing character limit restrictions. - @SKProCH
- Fixed: output name truncation issue
- Closes GTNH#19945
- #7376 Updated language file en_US.lang to swap stocking hatch tooltip terminology. - @combusterf
- #7375 Modified RecipeMaps to inject Circuit 1 requirement into gem upgrade variants of auto-generated EIC recipes. - @DreamYao520
- Added: Circuit 1 requirement for generated gem recipes
- #7313 Updated tier in
MTEHatchCondensateDetector,MTEHatchIONodeController,MTEHatchNaniteDetector, andMachineLoaderfrom UEV to UIV. - @Ruling-0 - #7306 Modified
MTEIndustrialCuttingMachineto align blade rotation to 90° when it has sufficient spin, and added decimal precision to rotation speed calculations. - @tiffit - #7299 Touches about 260 multiblock classes. Tooltip builder calls change, for example addCasing with amount strings, addSubChannel replacing addSubChannelUsage, addSupportAny replacing addTecTechHatchInfo, and beginStructureBlock arguments reordered. Error check calls are reordered to checkHasEnergyHatch first. The hint index is changed in MTECircuitAssemblyLine. - @DylanTaylor1
- Added: hatch and casing amounts in multiblock tooltips, master channel mentions next to subchannels
- Removed: TecTech mentions in tooltips
- Migration: Check any Eye of Harmony with two or more output buses: it now allows exactly one, and stops forming until the extras are removed. GT Fusion Reactors Mk1-3 now need at least one energy, input and output hatch, and the DTPF needs energy, input and output but no longer a maintenance hatch; working ones already have these.
- #7267 AE2Compat.registerBlockingModeIgnoreItems now also registers Laser_Lens_WoodsGlass and Laser_Lens_Special in the blocking mode ignore registry. - @boubou19
- #7265 Removed the checkHasInputHatch call from TileEntityModuleMiner.checkMachine. Input bus, output bus and data hatch checks are unchanged. - @DylanTaylor1
- Removed: input hatch requirement on mining modules
- #7252 Research.java now uses ItemList.ReinforcedGlass instead of Ic2Items.reinforcedGlass. Removed the IC2_REINFORCED_GLASS_SILK mixin entry and the MixinIc2ReinforcedGlass class that made BlockTexGlass silk-harvestable. - @LazyFlesh
- Removed: IC2 Reinforced Glass silk touch harvesting
- #7210 MTECompressedFluidHatch.isFluidInputAllowed also returns true for Materials.ToxicAir. - @philzin
- Added: toxic air input in the liquid air fluid hatch
- #7200 Reordered the Augments enum in MechArmorAugmentRegistries and added comments on sorting. No logic change; nothing uses the enum index. - @FourIsTheNumber
- #7171 Adds GTGuiTextures.BACKGROUND_TERMINAL with a new terminal.png, renames the text field texture id to BACKGROUND_TERMINAL_TEXT_FILED_STANDARD, and points the BACKGROUND_TERMINAL widget theme at the new texture. - @ABKQPO
- Added: terminal background texture
- #7160 CondensateType: adds PhononMedium and QuarkGluonPlasma (1000 amount, 120, UIV). DimensionallyShiftedSuperfluid moves to 1000/120 and BoundlessCosmicSolder to 1000/160 (UMV). SpaceTime's last numeric value goes from 40 to 60. Neutronium, CosmicNeutronium and Bedrockium enum constants are renamed. - @Ruling-0
- Added: Quark Gluon Plasma condensate, Phonon Medium condensate
- Fixed: Dimensionally Shifted Superfluid and Boundless Cosmic Solder condensates using a 144 base
- #7124 Added IMetaTileEntity.getSlotLimit and made getStackSizeLimit use it. MTEItemStackHandler now overrides getStackLimit to call the MTE's getStackSizeLimit. Removed CommonMetaTileEntity.getSlotLimit, which is now inherited from the interface default. MTEElectricAutoWorkbench returns a limit of 1 for phantom slots. - @TheYoingLad
- Added: per-slot stack size limit in MUI2 slots
- #7091 Modified LargeBoilerFuelBackend, LargeBoilerFuelFrontend, and MTELargeBoilerGui to filter incompatible fuels, display fluid inputs as actual fluids, add water consumption tracking, and simplify lava bucket handling. - @Miklebe
- Added: Water consumption widget, Fuel type tooltips
- Removed: Hemp seed oil from Large Boiler fuels, Lin seed oil from Large Boiler fuels
- #7089 Removed output overflow crash logic from MTEMultiBlockBase and cleaned up ShutDownReasonRegistry and language strings that were added in PR #7060. - @AnsonYeung
- Removed: Output overflow crash mechanism, Overflow shutdown reason
- Closes GTNH#25231
- #7083 Doubled waterline radius constant in MTEPurificationPlant. - @cubefury
- #7076 Added CTM (Connected Texture Mod) support with new texture files and .properties configurations for multiple casings. Updated Textures.java and BlockCasings10 enum to reference new CTM textures. - @seventh-june
- Added: CTM texture files for Autoclave, Compressor, Cleanroom, HTGR, Solar Panels, CTM configuration files (.properties)
- #7075 Changed ArcFurnaceElectrode.addInformation to format speed as a percent with new thresholds, swapped the OC power and speed factor order with new color thresholds, and removed the unused single-argument getModifierFormatted overload. Updated kubatech en_US.lang strings. - @DylanTaylor1
- #7071 Merged GT5U.multiblock.scanner.recipesDone into GT5U.multiblock.recipesDone with a %s placeholder, switched about 26 getInfoData call sites from StatCollector concatenation to GTUtility.translate, and removed the duplicate key from the lang files. - @Eldrinn-Elantey
- Removed: duplicate scanner recipesDone lang key
- #7066 Moved hardcoded strings from BaseMetaTileEntity, BaseMetaPipeEntity, and CommonBaseMetaTileEntity to GT5U.scanner.debug.* lang keys. Added comprehensive Russian translations for all GT5U.scanner.* section headers and debug info. - @Eldrinn-Elantey
- Added: GT5U.scanner.debug.* localization keys, Russian translations for all scanner keys
- Fixed: Scanner localization
- #7065 Moved progress string generation from server-side StringSyncValue to client-side via IKey.dynamic(), leveraging already-synced mProgresstime/mMaxProgresstime. Added Russian lang keys for GT5U.multiblock., GT5U.multiblock.scanner., and GT5U.gui.text.shutdown_reason.*. - @Eldrinn-Elantey
- Added: Russian translations for multiblock GUI, Russian translations for scanner keys, Russian translations for shutdown reason keys, Client-side progress string computation
- Fixed: Multiblock GUI localization
- #7057 Updated AugmentBuilder to scan core list for minimum tier and set rarity automatically, reorganized MechArmorAugmentRegistries with Aquatic Jets moved to leggings. - @FourIsTheNumber
- Fixed: inconsistent augment rarity
- #7052 Modified MTEBasicMachine default configuration to enable input from output-side faces. - @LeoCav46
- #7041 Replaced IBlockOnWalkOver and the GTProxy LivingUpdateEvent handler with a client-side IUpdatePlayerMovement hook in GTClient; BlockConcretes now multiplies player motionX and motionZ by 1.4. Movement is only applied on the client, so non-player entities are no longer sped up by the server. - @YannickMG
- Removed: server-side walk-over speedup for entities on GT concrete
- Fixed: constant speedup on GT concrete, not being able to stand still on GT Light Concrete
- Closes GTNH#17008, GTNH#24958
- #7015 In GTRecipeBuilder, ENABLE_COLLISION_CHECK is now true only with -Dgt.recipebuilder.recipe_collision_check=true. The old disable_recipe_collision_check flag is gone. - @boubou19
- Removed: default-on recipe collision check
- #7006 Changed default recipe deduplication setting in GTRecipeBuilder from disabled to enabled, reducing visible recipe duplicates until a new MaterialBuilder is available. - @Pxx500
- Fixed: Duplicate recipes visibility
- Closes GTNH#17933
- #7001 Changes section colour codes and some wording in the gt.blockmachines.multimachine.beamcrafting.LHC.tooltip1-12 keys in en_US.lang (11 lines). - @ham-corp
- #6964 Updated
MTEHatchChiselBusGui.javato fix slot display logic and realigned slot positioning, corrected tooltip inMTEHatchChiselBus.java. - @TheYoingLad- Fixed: incorrect Chisel Bus slot tooltip, slot alignment in GUI
- #6954 Replaced BlockRenderer-based drone rendering with IMTERenderer; updated drone model/textures and added level-based texture switching and bobbing animation in MTEDroneCentre. - @tiffit
- Added: Level-based drone textures, Drone bobbing animation, New drone OBJ model
- Removed: Old drone BlockRenderer, Old drone model files, DroneRender legacy code
- #6953 Refactored MTEBasicMachineBronze to use ModularUI2; updated texture and GUI theme definitions across multiple classes. - @TheYoingLad
- Added: Power button for bronze machines
- #6939 The per-GUI createLogo and getLogoTexture overrides are removed in favour of makeLogoWidget in the base GUI classes. PICTURE_GT_LOGO_STANDARD gets canApplyTheme, and TECTECH_STANDARD now maps the logo to PICTURE_TECTECH_LOGO instead of the dark variant. - @TheYoingLad
- Removed: per-GUI logo overrides
- #6933 Created MTEAutoChiselGui using ModularUI2 framework and updated MTEAutoChisel to use new GUI. - @TheYoingLad
- Added: ModularUI2 Auto Chisel GUI
- #6931 Updated language string for side selection tooltip in en_US.lang. - @Ranzuu
- #6908 Ported bartworks MTEWindmill to ModularUI 2 (new MTEWindmillGui, textures, and NO_ROTOR, WIND_LOW and WIND_HIGH shutdown reasons) and reworked its multiplier and parallel logic. Removed stat lines and the getSpeed and getmRotor methods from ItemStonageRotors. - @mhowell9
- Added: new Windmill interface, wind too strong and wind too weak errors, no rotor error
- Removed: rotor stat lines in the Stonage Rotor tooltip
- Fixed: Windmill progress bar not showing recipe progress
- Migration: Your windmill keeps its shape and stays formed. Check your build only for where it stands: wind speed now sets the parallel count instead of the recipe speed, and the machine stops with a maintenance error when the wind is non-existent or too strong, so a windmill in a very windy or dead-calm spot may sit idle where it used to run.
- #6907 Adds MTESolarGeneratorGui extending MTETieredMachineBlockBaseGui. MTESolarGenerator drops the old ModularUI IAddUIWidgets and IAddGregtechLogo implementations and builds its UI through the new class. - @TheYoingLad
- Added: MUI2 Solar Generator GUI
- #6904 MTENaquadahFuelRefinery overrides useMui2() to return true. - @FrostyFire1
- #6897 Edits to en_US.lang files across bartworks, ggfab, goodgenerator, gregtech, gtnhintergalactic, kekztech, kubatech, miscutils and tectech. Text only, no keys changed in the visible diff. - @Yoshy2002
- Fixed: Whine Yeast typo, Completelly typo, Pickup wording in achievement descriptions, double period in wireless mode disabled message, missing spaces in thermal reactor readouts
- #6888 Renamed hatch/pipe components (Beamline -> Beam), updated tooltips in LINAC/Source Chamber/Synchrotron/Target Chamber with corrected coolant temps and consistent formatting, and migrated hard-coded language strings to translateToLocal. - @DylanTaylor1
- Fixed: Beamline tooltip typos and outdated values
- #6887 Updated dependencies.gradle for MUI2 bump and migrated all setNumbers* calls to new MUI2 API across energy/fluid cover GUIs; set alt-scroll value to 16 as middle ground; removed redundant MathUtils calls. - @Miklebe
- Added: Alt+scroll field adjustment support
- Removed: Deprecated MUI2 methods
- Fixed: Text field editing/navigation keys support
- Closes GTNH#20187
- #6877 Various cosmetic and informational updates to multiblock GUIs and lang files (UCFE, Algae Pond, Large Naquadah Reactor, Naquadah Fuel Refinery, Universal Chemical Fuel Engine). - @Yoshy2002
- Removed: Top edges from Algae Farm
- #6795 Updated tooltip strings in 40+ multiblock machine classes to follow unified capitalization and formatting rules. - @Yoshy2002
- Fixed: Inconsistent capitalization in tooltips, Plural block counts in structure descriptions
- #6786 Converted checkMachine in MTEEndothermicFridge, MTEExothermicHearth, MTEIndustrialChisel and MTEIndustrialCuttingMachine to the void variant taking a List<StructureError>, using checkCasingMin and checkHas*Hatch helpers and StructureErrorRegistry entries. - @Yoshy2002
- Fixed: skipped structure checks on four multiblocks
- #6782 Removed Distillery machine type from MTEMegaDistillTower and MTEAdvDistillationTower tooltips, and changed tooltip label in MTEDistillationTower from 'Distillation Tower' to 'DT'. - @NotKaizul
- #6724 Parameter.registerSyncValue and TTMultiblockBaseGui.getParameterEditor/openParameterEditPanel take a String prefix; CompositeParameter passes prefix + its key + "." to children. TileEntityModulePump drops the per-index suffix from its parameter keys, and the BEC subclasses' getParameterEditor overrides get the new signature. - @TheYoingLad
- Added: sync key prefix for parameters
- #6714 Added MTEEndothermicFridge with MTEEndothermicFridgeGui, a Fridge Casing block in BlockCasings14 and cryotheum button textures. MTEMegaVacuumFreezer renamed to MTEMegaVacuumFreezerLegacy, MetaTileEntityIDs.MegaVacuumFreezer renamed to EndothermicFridge (15518), and the Assembler recipe for the old machine removed. A Fridge Casing recipe was added to goodgenerator RecipeLoader. - @chrombread
- Added: Endothermic Fridge, Fridge Casing, cryotheum toggle button textures
- Removed: Mega Vacuum Freezer assembler recipe
- Migration: Your Mega Vacuum Freezer keeps running as the Legacy controller. The new machine is the Endothermic Fridge, and swapping takes an assembler recipe at ZPM; convert and rebuild only if you want it.
- #6695 Added localization keys to MTESpinmatronGui and added corresponding translations to en_US.lang. Removed override of GTWidgetThemes color settings which conflicted with theme configuration. - @Ranzuu
- Added: Spinmatron localization keys
- Removed: GTWidgetThemes color override
- Fixed: Spinmatron GUI text display
- #6633 Added MTEIndustrialCuttingMachine on MTEExtendedPowerMultiBlockBase with SawbladeTiers and four sawblade meta items (IDs 102-105). The old controller became MTEIndustrialCuttingMachineLegacy. ItemList.CuttingMachine was renamed to IndustrialCuttingMachine, the CUTTING_FACTORY_FRAME_SIDE and _TOP textures were merged into one, and a conversion recipe and forming press recipes were added. - @Yoshy2002
- Added: new Industrial Cutting Factory structure, T1 Sawblade, T2 Sawblade, T3 Sawblade, T4 Sawblade, Industrial Cutting Factory conversion recipe
- Removed: separate top and bottom cutter casing texture
- Migration: Your Industrial Cutting Factory keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6622 Minor adjustments to Cover and CoverBaseGui reactive popup logic (4 lines removed, 1 added). - @tiffit
- #6591 Updated Unicode font pages (00, 20, 22, 30, 9f, e9, ff) and glyph_sizes.bin to fix full-width punctuation rendering and add missing glyphs for CJK localization, based on CFPA fullwidth punctuation fix package. - @PinkYuDeer
- Added: full-width punctuation glyphs, special character glyphs for CJK, unicode font page updates
- Fixed: full-width punctuation rendering, character cutoff in CJK text
- #6562 Added MTEXLTurbineBase and Gas, HPSteam, Plasma, SCSteam and Steam subclasses on MTEExtendedPowerMultiBlockBase, with MTEXLTurbineGui and ISurvivalConstructable. Old larger turbine controllers renamed to *Legacy, recipes switched to the new controllers, conversion recipes added in MTERecipeLoader, and some turbine casings in Casings now use fixed texture indices. - @Yoshy2002
- Added: new XL Turbine structure, turbine holder GUI in the XL Turbine controller, XL Turbine conversion recipes
- Removed: rotor assembly from the XL Turbine structure
- Migration: Your XL Turbines keep running as the Legacy controllers. Swap one for the new controller in a crafting table and rebuild only if you want the new structure.
- #6559 Modified glass validation logic in MTEIndustrialMacerator and MTEIndustrialRockBreaker to accept all glass variants instead of a limited set. - @Yoshy2002
- Fixed: Glass type restrictions
- #6554 Adjusted GUI layout spacing in MTEMultiBlockBaseGui to eliminate unnecessary padding. - @AnsonYeung
- Fixed: SSASS GUI layout spacing
- #6546 Adds MTELargeTurbineBase and Gas, HPSteam and Plasma subclasses in gregtech.common.tileentities.machines.multi.turbines on MTEExtendedPowerMultiBlockBase, and ports the Supercritical turbine to the same base. Old classes are renamed to *Legacy, the new SCTurbineCasing is added to Casings, the Supercritical turbine assembler recipe outputs ItemList.SCSteamTurbine, and MTEMultiBlockBase checks both turbine bases for the rotor slot. - @Yoshy2002
- Added: new Large Turbine structures, new Supercritical Steam Turbine structure
- Migration: Your Large Turbines keep running as the Legacy controllers. Swap one for the new controller in a crafting table and rebuild only if you want the new structure.
- #6545 MTESteamCompressor gets a new main structure piece using Casings and additional tier blocks (sBlockMetal6, pipe casing tier), and keeps the old shape as a 'legacy' piece. Offsets are renamed and casing counts tracked in casingAmount. - @VortexSo4
- Added: new Steam Squasher structure
- Migration: Your Steam Squasher keeps running on its old shape, which the same controller still accepts. There is no controller to swap; rebuild to the new layout only if you want it.
- #6537 Refactored PluginGT5VeinStat, PluginGT5SmallOreStat, and PluginGT5UndergroundFluid with improved layout, added PluginGT5OreBase superclass, enhanced DimensionHelper and GT5OreLayerHelper for better dimension handling, and updated NEI display logic. - @tiffit
- Added: PluginGT5OreBase class, enhanced dimension/ore helper methods
- Removed: PluginGT5Base class, GT5OreSmallHelper class
- #6534 Adds MTEAlgaePond on MTEExtendedPowerMultiBlockBase, registered as ItemList.AlgaeFarm, plus Casings.AlgaeCasing as block casings 12 meta 15 with a CTM texture. The gtPlusPlus controller becomes MTEAlgaePondBaseLegacy, the controller recipe outputs the new item, and a conversion recipe is added. - @Yoshy2002
- Added: new Algae Farm structure, Algae Casing, glass-capped energy hatch tier mechanic, Legacy controller conversion recipe
- Migration: Told with the Algae Pond overhaul (#5608). Both the old and the new controller are called Algae Farm in game. The new one takes exactly one energy hatch at 0.9x its tier voltage, and that hatch, capped by your glass tier, sets the production tier instead of the casing tier.
- #6533 Adds MTEIndustrialSifter on MTEExtendedPowerMultiBlockBase, registered as ItemList.LargeSifter. The gtPlusPlus controller is renamed MTEIndustrialSifterLegacy with a deprecation tooltip line. The crafting recipe and the multi.sifter achievement icon point to the new controller, and a conversion recipe is added. - @Yoshy2002
- Added: new Large Sifter structure, Legacy controller conversion recipe
- Migration: Your Large Sifter keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6530 Adds MTEIndustrialForgeHammer on MTEExtendedPowerMultiBlockBase using Casings and ofSolenoidCoil, registered as ItemList.IndustrialForgeHammer. The gtPlusPlus controller is renamed MTEIndustrialForgeHammerLegacy with a deprecation tooltip line, the crafting recipe now outputs the new controller, and a conversion recipe is added in MTERecipeLoader. - @Yoshy2002
- Added: new Industrial Sledgehammer structure, solenoid coil parallel scaling, FORGE_CASING texture, Legacy controller conversion recipe
- Removed: anvil scaling
- Migration: Your Industrial Sledgehammer keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6519 Adds MTEIndustrialChisel, and a ChiselBackend recipe map (industrialChiselRecipes) that generates chisel and Architecture recipes when Chisel is loaded. The GT++ controller becomes MTEIndustrialChiselLegacy, with a conversion recipe and en_US lang entries for the map. - @Yoshy2002
- Added: new Industrial 3D Copying Machine structure, Industrial Chisel recipe map, Industrial 3D Copying Machine conversion recipe
- Migration: Your Industrial 3D Copying Machine keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6517 Standardized tooltip generation in IControllerWithOptionalFeatures and MTEMultiBlockBaseGui. Added tooltip helper in GTUtility. - @hanben02
- Added: unified tooltip helper
- Closes GTNH#24331
- #6511 MTETreeFarm moves to gregtech.common.tileentities.machines.multi with a new structure, and the old class is kept as MTETreeFarmLegacy. ForestryTreeHandler registers trees on both classes, and GTPPRecipeMaps, TGSFrontend and recipes reference the new item. - @Yoshy2002
- Added: new Tree Grow Simulator structure, Tree Grow Simulator conversion recipe
- Migration: Your Tree Grow Simulator keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6510 MTEDroneCentre is reworked in place with Casings, ofFrame, ofSheetMetal and lazy any-meta hempcrete, registered as a new ItemList.DroneCentre (ID 15568). MultiblockTooltipBuilder.toolTipFinisher adds one line per author type, and ProductionPanel swaps Grid for ListWidget and null-checks machine items. - @Yoshy2002
- Added: new Drone Centre structure, Drone Centre conversion recipe
- Fixed: production panel failing on null machine items
- Migration: Your Drone Centre keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6508 MTEOilDrillInfinite is rewritten with a new structure, and the old one moves to MTEOilDrillInfiniteLegacy. MTEDrillerBase gets requiresMiningPipes(), which MTEOilDrillBase uses to skip pipe lowering and picking and to enable batch mode. New ItemList and MetaTileEntityIDs entry (15567), conversion recipe, and Intergalactic and research station recipes point to the new item. - @Yoshy2002
- Added: new Infinite Fluid Drilling Rig structure, Infinite Fluid Drilling Rig conversion recipe, infinity sheetmetal texture
- Removed: mining pipe requirement for the Infinite Fluid Drilling Rig
- Fixed: base cycle time tooltip showing '1 ticks'
- Migration: Your Infinite Fluid Drilling Rig keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6495 GTPacketUpdateItem.process reads Backhand.getOffhandItem(mPlayer) first and falls back to the current inventory item when that is null. - @TheYoingLad
- #6493 Replaces TierEU.X with TierEU.RECIPE_X in bartworks AssemblyLine, ProcessingTransforming, ChemicalBathRecipes, ChemicalRecipes and a commented-out block in gtnhlanth RecipeLoader. The Ammonia recipes also change the multiplier from 3/4 to 4/5. - @UltraProdigy
- Fixed: recipes using raw tier EU values instead of recipe EU values
- #6486 BaseTileEntity.TOOLTIP_DELAY and MTEBufferBaseGui.TOOLTIP_DELAY are set to 0. MTEHatchSolidifier now uses the shared TOOLTIP_DELAY constant instead of a hardcoded 10. - @ROBERT-PARKOURCIVILIZATIONGOD
- Fixed: inconsistent button tooltip timing
- Closes GTNH#24332
- #6478 Adds MTECryogenicFreezer, a CryotheumHatch HatchElement with addCryotheumHatchToMachineList in MTEMultiBlockBase, and CTM resources for the casing. The GT++ controller becomes MTEIndustrialVacuumFreezerLegacy, the generated advancedFreezerRecipes map is removed, and a conversion recipe is added. - @Yoshy2002
- Added: new Cryogenic Freezer structure, Cryotheum hatch hatch element, Cryogenic Freezer casing texture, Cryogenic Freezer conversion recipe
- Removed: GT++ advanced freezer recipe map
- Migration: Your Cryogenic Freezer keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6473 Adds MTEThermalBoiler under gregtech.common and registers it as ItemList.ThermalBoiler. The GT++ class becomes MTEThermalBoilerLegacy, recipe and achievement use the new item, a conversion recipe is added, and ThermalContainmentCasing in Casings gets a GT++ tier value. - @Yoshy2002
- Added: new Thermal Boiler structure, Thermal Boiler conversion recipe
- Migration: Your Thermal Boiler keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6471 MTESteamMacerator gets a new main structure piece with tiered casing, gearbox casing and frame checks and offsets moved to constants. The previous shape is kept as a legacy piece, and the isHighPressure() javadoc in MTESteamMultiBlockBase is reworded. - @VortexSo4
- Added: new Steam Grinder structure
- Migration: Your Steam Grinder keeps running on its old shape, which the same controller still accepts. There is no controller to swap; rebuild to the new layout only if you want it.
- #6456 Adds MTEFilterGui extending MTEFilterBaseGui, with a 3x3 PhantomItemSlot grid and an ignore NBT toggle. MTEFilter drops its ModularUI 1 widget code and exposes isIgnoreNbt/setIgnoreNbt, and no longer forces useMui2 to false. - @TheYoingLad
- #6423 Updated textures, casings, and tooltip helpers across multiple multiblock machines (Ore Washing Plant, Chemical Bath, Electric Implosion Compressor, Combustion Engines). Added TooltipHelper.formatEUt() utility method. - @Yoshy2002
- Added: Grisium texture, EU/t tooltip helper
- Fixed: EIC showing only 1 piston tier, PGS tooltip crashes, Advanced Implosion Compressor casing tier
- #6410 Added addUnlimitedTierSkips() to MTESpinmatron.createTooltip. - @chrombread
- Added: unlimited tier skips line in Spinmatron tooltip
- #6394 GTRecipeBuilder.itemInputs now calls handleNullRecipeComponents when debugNull() is set and an ItemStack[] contains null, or an OreDictItemStack or ore dict array resolves to no valid items. Removed the matching stoneSoapstone, stoneMigmatite, stoneQuartzite and stoneFlint recipes from Pulverizer. - @Alexdoru
- Added: null check for ore dict recipe inputs
- Removed: macerator recipes for stoneSoapstone, stoneMigmatite, stoneQuartzite, stoneFlint
- #6391 Adds MTEIndustrialCokeOven (MTEExtendedPowerMultiBlockBase, Casings-based structure, ISurvivalConstructable) and a COKE_OVEN_CASING structure channel. The GT++ controller becomes MTEIndustrialCokeOvenLegacy, the crafting recipe and achievement use ItemList.IndustrialCokeOven, and a conversion recipe is added in MTERecipeLoader. - @Yoshy2002
- Added: new Industrial Coke Oven structure, extra coil slices up to 16 total, Coke Oven Casing Tier structure channel, Industrial Coke Oven conversion recipe
- Migration: Your Industrial Coke Oven keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6367 In IDMetaItem03, UEV_Coil, UIV_Coil, UMV_Coil, UXV_Coil and MAX_Coil changed from 256-260 to 259-263, and the textures in gt.metaitem.03 were renamed to match. - @boubou19
- #6351 Replaces the single HTGR_ITEM with HTGRItem subclasses (TRISOFuel, TRISOMixture, IncompleteBISOFuel, IncompleteTRISOFuel, BurnedTRISOFuel) and adds a FUEL_MODIFICATOR recipe metadata key of Triple(base, multiplier, exponent). MTEHighTempGasCooledReactor applies the modifiers, and HighTemperatureGasCooledReactorRecipeMapFrontend has new NEI input and output getters. - @Pxx500
- Added: per-fuel base generation, multiplier and exponent, separate HTGR fuel items
- Removed: floor from the HTGR structure, single NBT based HTGR item
- #6342 Refactored multiblock with three distinct modes: normal arc furnace recipes, blast furnace recipes at 64x cost, and ore smelting mode. Introduces electrode items that determine machine statistics. Arc ignition takes 6 seconds before recipe processing.
GTRecipeConstants.UniversalArcFurnacedropped the oxygen fluid input for.circuit(1)at 1.25x duration, and every gas and plasma variant now carries.circuit(11)alongside its fluid, which covers the whole auto-generated arc/recycling recipe set. The old controller is re-registered asMTEIndustrialArcFurnaceLegacyon its 2.8.4 metatileentity id, so standing multiblocks keep forming; the electrode requirement belongs to the new kubatech multiblock only. Plasma mode is gone from the legacy controller andplasmaArcFurnaceRecipesis unreferenced - the plasma variants were folded intoarcFurnaceRecipes. Removed the 3-amp requirement. - @kuba6000- Added: Industrial Arc Furnace normal, blast and ores modes, electrode items, electrode hatch, electrode detector hatch, arc furnace startup and shutdown sounds, Cast Iron material
- Removed: Plasma Arc Furnace (deprecated), oxygen from normal arc furnace recipes, direct iron to wrought iron arcing recipe
- Fixed: part lookup ignoring the stack amount for non-GT materials
- Migration: Put a programmed circuit 1 in every arc furnace for the plain arc recipe, which no longer takes oxygen, and circuit 11 for the gas and plasma variants; this hits single-block Arc Furnaces, Plasma Arc Furnaces (which now run the same arc recipes) and your existing Industrial Arc Furnace, which keeps forming as the deprecated Legacy controller. Wrought Iron is now Cast Iron: items convert in place, but the ore dictionary names change from WroughtIron to CastIron, molten wrought iron left in tanks is lost, and arcing iron into cast iron now takes 1 carbon dust per 3 iron.
- #6326 Added gregtech MTEIndustrialExtruder on MTEExtendedPowerMultiBlockBase, registered as ItemList.IndustrialExtruder. Renamed the GT++ class to MTEIndustrialExtruderLegacy, updated the crafting recipe and added a conversion recipe. Parallel count taken from the PR body. - @Yoshy2002
- Added: new Industrial Extruder structure, conversion recipe from the legacy controller
- Migration: Your Industrial Extruder keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6320 Added hatch requirement and casing count information to tooltip in TileEntityPlanetaryGasSiphon and language file. - @loenaaaa
- Added: hatch restriction documentation in tooltip, casing count specification
- #6319 Added gregtech MTEIndustrialRockBreaker registered as ItemList.Boldarnator. Renamed the GT++ class to MTEIndustrialRockBreakerLegacy, updated the recipe, added a conversion recipe and removed the NEI rock breaker catalyst for the new controller. - @Yoshy2002
- Added: new Boldarnator structure, conversion recipe from the legacy controller
- Removed: rock breaker NEI catalyst on the new controller
- Migration: Your Boldarnator keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6317 Added gregtech MTEAdvImplosionCompressor on MTEExtendedPowerMultiBlockBase, registered as ItemList.AdvancedImplosionCompressor. Renamed the GT++ class to MTEAdvImplosionCompressorLegacy with a deprecation tooltip line, and added a conversion recipe. - @Yoshy2002
- Added: new Density^2 structure, conversion recipe from the legacy controller
- Migration: Your Advanced Implosion Compressor keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6313 Rewrote MTEPyrolyseOven on MTEExtendedPowerMultiBlockBase with Casings, registered as ItemList.PyrolyzeOven. Moved the old code to MTEPyrolyseOvenLegacy under the old ID and added a conversion recipe. - @Yoshy2002
- Added: new Pyrolyse Oven structure, conversion recipe from the legacy controller
- Migration: Your Pyrolyse Oven keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6312 Added gregtech MTEUniversalChemicalFuelEngine registered as ItemList.UniversalChemicalFuelEngine. Renamed the goodgenerator class to MTEUniversalChemicalFuelEngineLegacy, pointed the crafting recipe at the new item and added a conversion recipe. - @Yoshy2002
- Added: new Universal Chemical Fuel Engine structure, conversion recipe from the legacy controller
- Migration: Your Universal Chemical Fuel Engine keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6310 Added MTEPlanetaryGasSiphon (extends MTEExtendedPowerMultiBlockBase) registered as ItemList.PlanetarySiphon. Renamed the old class to TileEntityPlanetaryGasSiphonLegacy. Moved recipes, NEI catalyst and tooltip to the new item and added a conversion recipe in MTERecipeLoader. - @Yoshy2002
- Added: new Planetary Gas Siphon structure, conversion recipe from the legacy controller
- Removed: maintenance hatch requirement
- Migration: Your Planetary Gas Siphon keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6271 Added MTEIndustrialMacerator in gregtech.common.tileentities.machines.multi, registered as ItemList.MacerationStack, with a conversion recipe. The GT++ class was renamed to MTEIndustrialMaceratorLegacy, and the crafting recipe now outputs the new controller. - @Yoshy2002
- Added: new Industrial Maceration Stack controller and structure, conversion recipe from the old controller
- Migration: Your Industrial Maceration Stack keeps running as the Legacy controller, T2 upgrade included. Swap it for the new controller in a crafting table, which carries the upgrade tier over, and rebuild only if you want the new structure.
- #6264 One-line changes to addController strings across about 100 multiblock classes in bartworks, goodgenerator, gregtech and gtPlusPlus. - @Yoshy2002
- #6257 Added MTEIndustrialFishingPond in gregtech.common.tileentities.machines.multi, registered as ItemList.FishingPort, with a conversion recipe. The GT++ class was renamed to MTEIndustrialFishingPondLegacy. Added an AQUATIC_CASING_TOP texture. The crafting recipe, achievement and FishPondRecipes now use the new controller. - @Yoshy2002
- Added: new Zhuhai - Fishing Port controller and structure, Aquatic Casing top texture, conversion recipe from the old controller
- Migration: Your Zhuhai Fishing Port keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6252 Renamed MTEFuelRefineFactory to MTEFuelRefineFactoryLegacy. Added MTENaquadahFuelRefinery in gregtech.common.tileentities.machines.multi, registered as ItemList.NaquadahFuelRefinery, with a conversion recipe in MTERecipeLoader. The Assembly Line recipe output switched to the new controller. - @Yoshy2002
- Added: new Naquadah Fuel Refinery controller and structure, conversion recipe from the old controller
- Migration: Your Naquadah Fuel Refinery keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6251 Added MTELargeBoilerBase, which uses the Casings class. The four MTELargeBoiler* classes now extend it, and the old code moved to *Legacy classes extending MTELargeBoiler. LoaderMetaTileEntities and MTERecipeLoader register the new and legacy controllers and the conversion recipes. The PR states the maintenance hatch requirement is removed. - @VortexSo4
- Added: new Large Boiler controllers with reworked structure, Legacy Large Boiler controllers, conversion recipes from old to new Large Boiler controllers
- Migration: Your Large Boilers keep running as the Legacy controllers. Swap one for the new controller in a crafting table and rebuild only if you want the new structure.
- #6250 Added MTEDebugStructureWriterGui on MTETieredMachineBlockBaseGui and removed the old ModularUI widget code from MTEDebugStructureWriter. Changed the gui.size lang string from 'Structure Size' to 'Size'. - @TheYoingLad
- Added: MUI2 screen for the Debug Structure Writer
- #6249 Added MTEDebugPowerGeneratorGui extending MTETieredMachineBlockBaseGui, with tier, voltage and amperage sync values. MTEDebugPowerGenerator drops the IAddUIWidgets and old ModularUI code. - @TheYoingLad
- Added: ModularUI2 Debug Power Generator GUI
- Removed: old ModularUI Debug Power Generator GUI
- #6248 Added MTEDebugPollutorGui extending MTETieredMachineBlockBaseGui, using IntSyncValue and BooleanSyncValue. MTEDebugPollutor drops the IAddUIWidgets and old ModularUI code, and pollution is now reached through getter and setter methods. - @TheYoingLad
- Added: ModularUI2 Debug Pollutor GUI
- Removed: old ModularUI Debug Pollutor GUI
- #6247 Added MTEBuckConverterGui extending MTETieredMachineBlockBaseGui. MTEBuckConverter drops the old ModularUI widget code, and tectech en_US.lang gains the new debug GUI strings. - @TheYoingLad
- Added: ModularUI2 Buck Converter GUI
- Removed: old ModularUI Buck Converter GUI
- #6246 MTEHatchEnergyDebugGui: widened the number fields and label, added setMaxLength on the tier and amperage fields, and built the max amperage tooltip from MAX_AMPERAGE through formatNumber. - @TheYoingLad
- Fixed: input fields too narrow for large amperage values
- #6201 Changed one string in MTELatex.createTooltip. - @bencimp
- #6190 Changed one string in MTELatex.createTooltip. - @bencimp
- Fixed: grammar in the LATEX tooltip
- #6182 Added MTEIndustrialMolecularTransformer on MTEExtendedPowerMultiBlockBase, registered as ItemList.MolecularTransformer. The old class was renamed MTEIndustrialMolecularTransformerLegacy with addStructureDeprecatedLine, recipes in RecipesMachinesCustom were switched to the new item, and a conversion recipe was added. - @Yoshy2002
- Added: Molecular Transformer with new structure, conversion recipe from the old controller
- Migration: Your Molecular Transformer keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6178 Added MTEBasicTankBaseGui extending MTETieredMachineBlockBaseGui, and MTEBasicTank.buildUI now builds it. Other MTETieredMachineBlock subclasses (generators, hull, basic machine, hatch, teleporter, digital tank, tesseract, electric auto workbench) set useMui2 to false. Added the PICTURE_SCREEN_BLACK texture and removed OVERLAY_SLOT_IN. - @TheYoingLad
- Added: MUI2 GUI for Basic Tank and Tiered Tank, black screen texture
- Removed: old Basic Tank GUI
- #6176 Added MTEFrothFlotationCell in gregtech.common.tileentities.machines.multi on MTEExtendedPowerMultiBlockBase, registered as ItemList.FlotationCell. The old class was renamed MTEFrothFlotationCellLegacy with addStructureDeprecatedLine, the Assembly Line recipe output was switched, and a conversion recipe was added. - @Yoshy2002
- Added: Flotation Cell with new structure, conversion recipe from the old controller
- Migration: Your Froth Flotation Cell keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6171 Added MTEIndustrialThermalCentrifuge extending MTEExtendedPowerMultiBlockBase with ISurvivalConstructable, registered under ItemList.LargeThermalRefinery. The old gtPlusPlus class was renamed MTEIndustrialThermalCentrifugeLegacy, and RecipesMachinesMulti now outputs the new controller. A shapeless conversion recipe is in registerReworkMigrationRecipes. - @Yoshy2002
- Added: Industrial Thermal Centrifuge with new structure, coil tier speed and EU discount bonus, solenoid tier parallels, conversion recipe from the old controller
- Migration: Your Large Thermal Refinery keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6166 Removed the COMET assembler recipe, the ParticleAccelerationCatalyst and SynchrotronCapableCatalyst GregtechItemList entries and chemplant registrations, and the Unknown Particles QFT recipe in RecipeLoaderChemicalSkips. Added beamcrafting recipes in ResearchStationAssemblyLine, a DEPRECATED line to the MTECyclotron tooltip, and TODO markers on the remaining cyclotron recipes. - @ham-corp
- Added: beamcrafting replacement recipes for cyclotron particle items, DEPRECATED tooltip line on the Compact Cyclotron
- Removed: Compact Cyclotron controller recipe, Unknown Particles quantum force transformer recipe, Particle Acceleration Catalyst and Synchrotron Capable Catalyst chemical plant registration
- Migration: Check your Compact Cyclotrons: they keep running and their recipes stay registered for this cycle, but the COMET controller can no longer be crafted, so plan the move to the Large Hadron Collider before 2.10. A quantum force transformer making Unknown Particles or Rare Particles stops, since both recipes and their two catalysts are gone; Beamcrafting recipes replace them.
- #6137 Added Beryllium rod recipe to BeamlineRecipeLoader for Neutron production, providing an alternative to expensive Californium dust route. - @ham-corp
- Added: Beryllium rod to Neutrons recipe in Source Chamber
- #6133 Modified MTEIndustrialChisel default mode logic to advance through chisel group based on input block instead of always returning first block. - @LooseEthics
- #6126 Replaced the craftingIronFurnace oredict name with craftingBlastFurnace in OreDictNames, registered to the EtFuturumRequiem blast_furnace item in LoaderGTOreDictionary, and updated MTERecipeLoader and BartWorks CraftingRecipes. The PR says it needs matching Coremod and CookingForBlockheads changes and a dependency bump. - @UltraProdigy
- Added: craftingBlastFurnace oredict entry
- Removed: craftingIronFurnace oredict entry
- #6124 Added MTEBeamCrafterGui with improved terminal UI, added particle texture files, removed duplicate language entries, and updated Beamcrafter implementation. - @ham-corp
- Added: Beamcrafter terminal GUI, particle textures (alpha, electron, neutron, photon, positron, proton)
- Removed: duplicate gtnhlanth language entries
- Fixed: Beamcrafter NEI recipe cropping, broken particle textures
- #6123 Added default getMachineModeKey method to IControllerWithOptionalFeatures; refactored item behaviors, machine code, and utilities to use GTLanguageManager methods; removed unused GTLanguageManager method. - @Discreater
- Added: default getMachineModeKey in IControllerWithOptionalFeatures
- Removed: GTLanguageManager.getDefaultChatMessage (unused)
- #6113 Added material and block type description fields to tooltip generation in MTEHatchCraftingInputME, MTEHatchCraftingInputSlave, MTEHatchInputBusME, MTEHatchInputME, and MaterialsInit. - @PantACRO4life
- Added: material and block type descriptions in hatch tooltips
- #6111 Trimmed tooltip generation in MTEHatchInputBusME and MTEHatchInputME to display more concisely. - @Alexdoru
- Fixed: excessive tooltip length
- #6096 Updated language files (en_US, ru_RU, zh_CN) to clarify that wireless capacity limits only apply to withdrawal direction. - @Sanduhr32
- Fixed: wireless capacity tooltip accuracy
- #6088 Removed hardcoded item lists from processing recipe loaders (Beans, Crafting, Crop, Dye, Food, Log, Sand, Saplings, Stone, Wax, Canning) and replaced with ore dictionary references; added complementary recipes in postload modules. - @Caedis
- Added: Ore dictionary-based processing recipes
- Removed: Hardcoded item lists in processing loaders
- #6087 GTRecipeBuilder.itemInputs now logs to GTLog.err when GTOreDictUnificator.getOres returns empty for an OreDictItemStack or an Object[] pair, and sets that alternative to an empty ItemStack array instead of leaving it unset. - @Caedis
- Added: empty oredict warning in log
- #6086 Refactored MetaGeneratedItem02.java to rename plank covers with wood-type prefixes and register ore dictionary entries. - @Caedis
- Added: Ore dictionary entries for plank covers
- #6085 Refactored ItemMachines.java to use String.format() for tooltip spacing instead of hardcoded spaces; updated language file entries. - @ChromaPIE
- #6084 CoverTabButton size changed from 18x20 to 20x20 and the tab column offset in GTBaseGuiBuilder.createCoverTabs went from 2 to 3. The cover tab PNGs (normal, highlight, disabled for each tier) were redrawn at the new size. - @Ranzuu
- #6082 Added IHideTooltipEnergyInfo interface and tooltip utility in GTUtility.java; updated multi-amp hatch classes to display standardized energy tooltip format. - @Alexdoru
- Added: Multi-amp hatch tooltip standardization
- #6074 Ported MTEBlackHoleUtility to ModularUI2 with a new MTEBlackHoleUtilityGui extending MTEHatchBaseGui. Added getMode and setMode on the MTE, backed by the existing int mode field, and removed the old ModularUI1 widgets. - @TheYoingLad
- Added: ModularUI2 GUI for the Black Hole Utility hatch
- #6070 Changed fluorite material state from ORE to SOLID in MaterialsFluorides.java to allow color application, since ORE state forces null color. - @koolkrafter5
- #6063 Updated MTEHatchOutputMEBase to refresh cell array on cache toggle, add WAILA data provider, and handle item transfer on cache disable. - @lc-1337
- Added: WAILA support for ME cell inventory
- Fixed: ME output cell array not updating on cache toggle
- #6062 Rewrites MTEIntegratedOreFactory using Casings and ofSheetMetal, with ExoticEnergy hatch support and no maintenance hatch. The old logic moves to MTEIntegratedOreFactoryLegacy. Adds a conversion recipe from ItemList.Ore_Processor, and AssemblyLineRecipes now outputs ItemList.IntegratedOreFactory. The Industrial Electrolyzer tooltip author line also gets colored. - @VortexSo4
- Added: new Integrated Ore Factory controller and structure, conversion recipe from the Ore Processor
- Migration: Your Integrated Ore Factory keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #6043 Updated Spinel material color in MaterialsInit.java and replaced the texture in BLOCK_FOOLSRUBY.png. - @Auynonymous
- Fixed: Spinel and ruby visual confusion
- #6040 GTPowerfailRenderer no longer skips icons closer than 4 blocks. The close-range fade now clamps the size scale to a minimum of 0.25 instead of fading to zero. - @Alexdoru
- #6033 Enhanced BacterialVatFrontend and BioVatNEIHandler to display more detailed recipe and operational information. - @SST-03
- Added: Enhanced NEI display for Bacterial Vat
- Closes GTNH#23705
- #6029 MTEBasicBatteryBuffer gets a buildUI override using GTGuis.mteTemplatePanelBuilder. It registers a battery_inv slot group and uses the 2x2, 3x3 or 4x4 grid templates from CommonGuiComponents, with slot stack limit 1 on the 2x2 and 3x3 slots shown. - @TheYoingLad
- Added: MUI2 GUI for battery buffers
- #6025 Added MTEHatchInputBatteryGui and MTEHatchOutputBatteryGui extending MTEHatchBaseGui, and switched MTEHatchInputBattery and MTEHatchOutputBattery to useMui2 with buildUI. The old ElectricSlotWidget layout was removed, and rechargerSlotCount for tier 2 on the input hatch changed from 2 to 4. - @TheYoingLad
- Added: MUI2 GUI for Input Battery and Output Battery hatches
- Removed: old ModularUI battery hatch layout
- #6023 MTETieredTank descriptions now go through GTUtility.translate with new gtpp.tiered_tank.* keys in the miscutils en_US.lang, and the capacity uses TooltipHelper.fluidText. The gt.mbtt.info.l and l_s keys in the gregtech lang file were renamed to gt.unit.liter and gt.unit.liter_per_second. - @Eldrinn-Elantey
- Added: translatable tiered tank tooltip
- #5963 Adds MTEIndustrialMixer extending MTEExtendedPowerMultiBlockBase, MetaTileEntityIDs 15566, and a MixerCasing entry in BlockCasings12 at meta 13 with the MIXING_CASING texture. The old class becomes MTEIndustrialMixerLegacy. MTERecipeLoader adds recipes for the controller and the casing, plus a conversion recipe. The old GT++ crafting recipe is removed. - @VortexSo4
- Added: new Industrial Mixing Machine controller and structure, Mixer Casing, conversion recipe from the old controller
- Migration: Your Industrial Mixing Machine keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #5941 MTEFluidShaper.createTooltip replaces the hand-built red DEPRECATED addInfo line with addStructureDeprecatedLine(). - @chrombread
- #5908 Adds MTEIndustrialElectrolyzer extending MTEExtendedPowerMultiBlockBase with a Casings-based structure and ISurvivalConstructable, MetaTileEntityIDs 15514, and a new ItemList entry. The old GT++ class is renamed MTEIndustrialElectrolyzerLegacy. The crafting recipe moves to MTERecipeLoader, and a conversion recipe from the old controller is added. - @VortexSo4
- Added: new Industrial Electrolyzer controller and structure, conversion recipe from the old controller
- Migration: Your Industrial Electrolyzer keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #5893 Added gregtech MTEMegaChemicalReactor on MTEExtendedPowerMultiBlockBase with id 15515, new overlay textures and ItemList.MegaChemicalReactor. The bartworks class was renamed to MTEMegaChemicalReactorLegacy and its id enum entry to LegacyMegaChemicalReactor (13366). Also removed unused FUSIONI and FUSIONII texture enum entries. - @chrombread
- Added: new Mega Chemical Reactor controller, new controller overlay textures
- Removed: assembler recipe for the old Mega Chemical Reactor
- Migration: Your Mega Chemical Reactor keeps running as the Legacy controller. The new controller takes the identical block layout, so swapping it in a crafting table is the whole job - there is nothing to rebuild.
- #5892 addDeprecatedLine now uses a lang key (GT5U.MBTT.Deprecated) with a format argument. The no-argument addDeprecatedLine was replaced by addStructureDeprecatedLine, which adds the removal and NEI lines from lang keys. MTEIndustrialCentrifugeLegacy and MTEIndustrialWireMillLegacy use the new method, and three lang entries were added to en_US.lang. - @chrombread
- Added: addStructureDeprecatedLine tooltip method, removal warning on legacy controller tooltips, lang keys for deprecation text
- Removed: addDeprecatedLine with no arguments
- #5888 Added MTEIndustrialPackager on MTEExtendedPowerMultiBlockBase with id 15513 and ItemList.IndustrialPackager, using chainItemPipeCasings. Added SupplyDepotCasing to Casings. The old class was renamed to MTEAmazonPackagerLegacy and RecipesMachinesMulti now crafts the new controller plus a conversion recipe. - @VortexSo4
- Added: new Industrial Packager controller, item pipe casing speed tiers up to 800%, conversion recipe from the old controller
- Migration: Your Amazon Warehousing Depot keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #5885 Added MTEIndustrialCentrifuge on MTEExtendedPowerMultiBlockBase with id 15512 and ItemList.IndustrialCentrifuge. Added the CentrifugeCasing entry in Casings, ofFrame helpers in GTStructureUtility, and addDeprecatedLine in MultiblockTooltipBuilder. The old class became MTEIndustrialCentrifugeLegacy and the recipes point to the new controller. - @VortexSo4
- Added: new Industrial Centrifuge controller, conversion recipe from the old controller, deprecation line in multiblock tooltips
- Removed: maintenance hatch requirement
- Migration: Your Industrial Centrifuge keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #5877 Added MTEIndustrialWireMillModern on MTEExtendedPowerMultiBlockBase, registered as ItemList.IndustrialWireFactory with new id 15511. Added WireFactoryCasing to Casings and chainItemPipeCasings to GTStructureUtility. The old class was renamed to MTEIndustrialWireMillLegacy and RecipesMachinesMulti now crafts the new controller, plus a conversion recipe. - @VortexSo4
- Added: new Industrial Wire Factory controller, item pipe casing speed tiers, conversion recipe from the old controller
- Migration: Your Industrial Wire Factory keeps running as the Legacy controller. Swap it for the new controller in a crafting table and rebuild only if you want the new structure.
- #5875 MTEExtremeIndustrialGreenhouse gets a second structure definition with the old one kept for existing controllers. Added the CleanStainlessSteelCasing entry to Casings, and CropRenderer now draws a 3x7 crop area in the new layout and respects facing. Added a CTM sterile casing texture set. - @kuba6000
- Added: new Extreme Industrial Greenhouse structure, automatic tilling and water placement, autoplace support
- Migration: Your Extreme Industrial Greenhouse keeps validating its old structure where it stands; there is no controller to swap. Break and re-place the controller and it will accept nothing but the new structure, so rebuild before you move one.
- #5871 Adds Client.tooltip showFluidAmount, showFluidTemperature and showFluidState. MetaBaseItem.addInformation now gates only the formula and flavor text on their own options, with getMaterial moved up from MetaGeneratedItem99. ItemFluidDisplay checks the new options, and the lang string drops the trailing L. - @evgengoldwar
- Added: Show Fluid Amount config option, Show Fluid Temperature config option, Show Fluid State config option
- Fixed: hiding the formula also hid other tooltips
- #5860 dependencies.gradle swaps NotEnoughIds for chunkapi 0.8.1 and endlessids 1.7.1. The NEID client block transformer is replaced by a ChunkAPI DataManager (ClientMetaManager) fed by an IClientMetaTracker registry, which GTCoilTracker uses for heating coils. GTByteBuffer now reads item ids as int instead of short. - @Cardinalstars
- Added: ChunkAPI client meta manager, client meta tracker registry
- Removed: NotEnoughIds dependency, IBlockWithClientMeta.register
- Migration: Back up the world, then remove NotEnoughIds and install the newest ChunkAPI, EndlessIDs and FalsePatternLib together with this version.
- #5847 Removed wirelessModeEnabled and its NBT handling from MTEQuantumComputer. WirelessComputationPacket.downloadData now returns a long and takes min(requested, stored). MTEHatchWirelessComputationInput wraps it in a QuantumDataPacket and updates the hatch history through the new updateComputationHistory. Added the GT5U.machines.computation_hatch.computation.amount lang key. - @VortexSo4
- Added: localised computation text in Waila
- Removed: Quantum Computer wireless mode toggle
- Fixed: Waila computation display for wireless data input hatches, inconsistent wireless computation distribution
- #5841 Refactored EOH and GORGE rendering to use dynamically generated spheres instead of static OBJ files, improved orbit smoothing, added transparency fixes, and prevented animation updates during pause. Removed large OBJ model files and simplified rendering code. - @Connor-Colenso
- Added: SphereVBOCache for dynamic sphere generation, EOHRenderingUtils enhancements
- Removed: Static OBJ model files (Space.obj, Star.obj), EOHItemRenderer class
- Fixed: Planetary orbit jitter, Transparency rendering defects
- #5833 Scanner code moved from GTUtility into new ScannerHelper, with a new ScannerConfig registered in GTCorePlugin. MTEMultiBlockBase.getInfoData now builds the list, and the overrides in MTEExtendedPowerMultiBlockBase, GTPPMultiBlockBase and TTMultiblockBase were removed. Added getExtraInfoData to IGregTechDeviceInformation, and BlockScanningEvent now takes List<String> instead of ArrayList<String>. - @evgengoldwar
- Added: config options for scanner output, getExtraInfoData hook for extra scanner lines
- Removed: per-class getInfoData overrides in multiblock base classes, scanner methods in GTUtility
- Migration: OpenComputers programs that read a GregTech machine's getSensorInformation() through an Adapter have to be checked: a line appears only when it applies, so indexes shift; on a multiblock the owner and Meta-ID lines come first; some lines (efficiency, pollution, and single-block machine lines) arrive as a translation key with its arguments, separated by two backslashes; numbers follow the system locale and switch to 1.23e12 form from a trillion up. getEUStored, getEUMaxStored, getWorkProgress and getWorkMaxProgress still return plain numbers.
- #5831 Standardized tooltip coloring across basic machines and cables by adding yellow for voltage, aqua for amperage, and amperage units. Added static helper functions to TooltipHelper for consistent formatting. Removed EU capacity display and updated ItemMachines and MTECable. - @Ruling-0
- Added: Static helper functions in TooltipHelper for standardized coloring, Amperage unit to tooltips
- Removed: Machine capacity from tooltips
- #5830 Applied EnumChatFormatting color codes to MTEPump tooltip strings for EU/operation, seconds-per-bucket, and maximum pumping area parameters. - @Eldrinn-Elantey
- Added: Color formatting to pump tooltips
- #5817 New Client config class with tooltip display flags; MetaBaseItem, MetaGeneratedItem, and various item classes updated to respect tooltip config settings. - @evgengoldwar
- Added: Tooltip configuration options in Client config
- #5813 PluginGT5UndergroundFluid tooltip formatting updated to use localized number formatting; language file strings reorganized for consistency. - @Ranzuu
- #5763 RecipeMaps.fluidCannerRecipes is removed and cannerRecipes now uses FluidCannerBackend with maxIO(2,2,1,1). All callers are repointed. MTEMultiCanner has its mode logic removed, and the fluid canner MTE recipe registration is removed from MTERecipeLoader. A coremod and quest PR are also needed. - @FourIsTheNumber
- Removed: Fluid Canning Machine recipes, TurboCan Pro multi-mode
- Migration: Replace fluid canning machines with the Canning Machine, and check TurboCan Pro setups that used the mode switch.
- #5745 Updated tooltip string in MTEIndustrialChisel to be more specific and searchable. - @boubou19
- #5720 Changed the addMachineType string in MTEWormholeGenerator.createTooltip to "Wormhole Generator, MWG". - @DylanTaylor1
- Added: MWG abbreviation in tooltip
- #5716 Modified GasSiphonRecipeHandler to apply localization formatting to numeric values in the display string. - @Ranzuu
- #5711 Modified SpacePumpModuleRecipeHandler to apply localization to numeric values within the planet type display string. - @Ranzuu
- #5705 Renamed display names and abbreviations in the FoundryModule enum and updated pairing tooltip strings in en_US.lang. The UNSET module icon now uses Primary_Casing_ExoFoundry instead of Display_ITS_FREE. Enum constants are unchanged. - @chrombread
- Removed: 'its free' label on the unset ExoFoundry module
- Fixed: ExoFoundry module names in the UI not matching casing names
- #5698 Updated chemical formula values in MaterialsInit for Galgadorian to match refined recipe composition. - @UltraProdigy
- Fixed: Galgadorian formula accuracy
- Closes GTNH#22730
- #5696 In goodgenerator Research.addResearch, replaced Ic2Items.fluidregulator with ItemList.FluidRegulator_LuV in the Essentia_Cell_T3 infusion component list and reordered the components. - @chochem
- Removed: IC2 Fluid Regulator from the Essentia Cell recipe
- #5687 Updated material color value in MaterialsInit for Palladium to improve visual distinction. - @UltraProdigy
- Fixed: Palladium visibility
- #5666 MTEVoidMiners.createTooltip passes "Miner, VM" to addMachineType. - @UltraProdigy
- Added: VM abbreviation in Void Miner tooltip
- #5641 MTEIndustrialCompressor.createTooltip passes "Compressor, LEC" to addMachineType. - @DylanTaylor1
- Added: LEC abbreviation in Industrial Compressor tooltip
- #5635 Adjusted widget positioning in MTEHatchInputBusGui to add gap between player and hatch inventories. - @VortexSo4
- Fixed: Input bus GUI spacing
- #5617 Removed the TT_StructureComplex line from MultiblockTooltipBuilder.toolTipFinisher and the GT5U.MBTT.Structure.Complex key from the en_US and ru_RU lang files. - @danyadev
- Removed: 'Structure is too complex!' tooltip line
- #5616 Removed automatic connection logic from input re-enable in MTEFluidPipe. - @danyadev
- Fixed: Unintended pipe connections to fluid sources
- #5607 In ProcessingWire, AE2AddNetAttunementCable now runs inside the branch that handles the wire, and the new else branch calls AE2addNewAttunement for the stack when no corresponding cable exists. - @Worive
- Added: P2P GT EU attunement for superconductor wires
- #5601 MTEAirFilterBase.createTooltip passes "Air Filter, EAF" to addMachineType. - @DylanTaylor1
- Added: EAF abbreviation in Air Filter tooltip
- #5600 Updated WerkstoffLoader to apply question marks consistently across all unresolved portions of platline material chemical formulas. - @chochem
- #5596 Added MTEHatchTurbineGui on MTEHatchBaseGui with a ModularSlot filtered by MTELargerTurbineBase.isValidTurbine. MTEHatchTurbine now uses useMui2() and buildUI. The old addUIWidgets is still in the class. - @Spicierspace153
- Added: MUI2 turbine hatch GUI
- #5593 Added MTEHatchChiselBusGui overriding createContentSection with a ListWidget and SlotGroupWidget for the input slots plus one target slot. MTEHatchChiselBus now uses useMui2() and buildUI, and the old Scrollable code is gone. - @Spicierspace153
- Added: MUI2 Chisel Hatch GUI
- #5588 Added or clarified language strings in en_US.lang files and frontend classes for Kubatech mob handlers, TecTech Godforge, Plasma, and Research Station UIs. - @Ranzuu
- Added: localization strings for specialized frontends
- #5587 MTESteamMultiBase no longer overrides getTexture and the abstract front overlay methods. It provides getCasingTextureId() returning 10, and the steam multis supply IIconContainer overlays instead. Added OVERLAY_FRONT_STEAM_FURNACE_MULTI_GLOW and _GLOW_ACTIVE icons and textures. - @chrombread
- Added: Steam Furnace multiblock glow overlays
- Fixed: steam multiblocks overriding base class textures
- #5583 Added MTEHatchEnergyTunnelGui and MTEHatchDynamoTunnelGui using a TextFieldWidget bound to new getAmperes/setAmperes accessors on MTEHatchEnergyMulti and MTEHatchDynamoMulti. The old NumericWidget code was removed from the tunnel hatches. The old GUI bounded the value at 1 and up, the new one allows 0. - @Spicierspace153
- Added: MUI2 laser hatch GUIs
- #5582 Added MTETurbineHousingGui on MTEHatchBaseGui. MTEHatchTurbineProvider now returns true from useMui2(), builds the panel through buildUI, and drops the old addUIWidgets and the MTELargerTurbineBase import. - @Spicierspace153
- Added: MUI2 turbine housing GUI
- #5581 Added MTEHatchMufflerAdvancedGui using MTEHatchBaseGui with one filtered ModularSlot. MTEHatchMufflerAdvanced now uses useMui2() and buildUI, and the old SlotWidget code is gone. - @Spicierspace153
- Added: MUI2 Advanced Muffler Hatch GUI
- #5580 Added MTEHatchDataAccessGUI extending MTEHatchBaseGui and switched MTEHatchDataAccess to useMui2() with buildUI. Removed the old addUIWidgets. Added GTGuiTextures.OVERLAY_SLOT_CIRCUIT. - @Spicierspace153
- Added: MUI2 Data Hatch GUI, circuit slot overlay texture
- #5578 Added MTEHatchCapacitorGui with a 4x4 slot group filtered by componentBinds, and a new OVERLAY_SLOT_CHARGER texture. MTEHatchCapacitor now uses MUI2 and componentBinds is public. - @Spicierspace153
- Added: MUI2 Capacitor Hatch GUI, charger slot overlay texture
- Removed: old Capacitor Hatch GUI
- #5576 Updated powerfail.png texture assets with improved graphics. - @Ranzuu
- #5568 Added MTEPurificationPlantGui extending MTEMultiBlockBaseGui with a synced list of LinkedPurificationUnit and a debug mode sync value. Removed the MUI1 window code from MTEPurificationPlant. - @Spicierspace153
- Added: MUI2 Water Purification Plant GUI
- Removed: old Water Purification Plant GUI
- #5553 Renamed remaining dot identifiers to hint in StructureWrapperTooltipBuilder, gtnhintergalactic and gtnhlanth tile entities. Lang keys changed, for example GT5U.MBTT.HatchDots to GT5U.MBTT.HatchHint and ig.elevator.structure.AnyBaseCasingWith1Dot to AnyBaseCasingWithHintNumber1, in en_US and ru_RU. - @UltraProdigy
- #5550 Replaced catch (Throwable) with catch (Exception) in over 60 files, including BaseMetaTileEntity, MetaBaseItem, GTUtility and GTProxy. The PR body says it needs testing over time. - @glowredman
- #5547 Added BLOCK_POWDER to Textures.BlockIcons with a new PNG, and BlockReinforced meta 5 now returns it instead of COVER_WOOD_PLATE. - @ABKQPO
- Added: Powder Barrel texture
- #5495 Consolidated basic and bulk recipe variants into one optimized recipe with rounded input values in ChemicalRecipes. - @chochem
- Removed: Tiny dust variant recipe, 9x variant recipe
- Fixed: Toluene ratio consistency in recipe
- #5447 Updated Vajra texture and crafting recipe ingredients (ruby lenses → amethyst, electrum plates → silver) in CraftingRecipes.java. - @envoidia
- #5429 Modified MTEChemicalPlant hatch placement validation to accept hatches on all eligible casing faces. - @Flakxo
- Removed: Bottom-only placement restriction for hatches
- #5424 Adds MTEElectricAutoWorkbenchGui and new GTGuiTextures entries. MTEElectricAutoWorkbench drops its old ModularUI window code, and MAX_MODES and MAX_THROUGHPUT become public. - @serenibyss
- Added: MUI2 Electric Auto Workbench UI
- #5423 Adds MTEBaseModuleGui and per-module subclasses, new godforge panels and textures. SyncHypervisor, SyncValue(s), Panels and Modules are refactored so module UIs can use the hypervisor. - @serenibyss
- Added: MUI2 Godforge module UIs
- #5416 Rebalanced audio assets (28+ sound files) including EBF, alloy smelter, distillery, centrifuge, and other multiblock sounds. - @chochem
- Fixed: excessive EBF volume, overtuned machine sounds
- #5415 Replaced CoverRedstoneReceiverInternal with new CoverWirelessController, added MUI2-based GUI (CoverWirelessControllerGui), updated ItemList references and recipes, added new texture assets. - @Vlamonster
- Added: CoverWirelessController, CoverWirelessControllerGui, wireless controller texture
- Removed: CoverRedstoneReceiverInternal
- Closes GTNH#19628
- #5414 Adds MTEForgeOfGodsGui with panels, sync values and sync actions under gui/multiblock/godforge, and moves MilestoneFormatter to Formatters. The author says dedicated server behaviour still needs testing. - @serenibyss
- Fixed: Godforge stored fuel amount overflow, Esc in the Godforge upgrade GUI not returning to the Upgrade Tree
- Closes GTNH#17615, GTNH#18530
- #5412 Replaced multiple texture files for spacetime items, blocks, pipes, and foils with versions that tile correctly without seams. - @Auynonymous
- Fixed: spacetime texture looping
- #5409 Adds MTEMultiBlockBase.supportsTerminalLeftCornerColumn (default false) and MTEMultiBlockBaseGui.createTerminalLeftCornerColumn. The muffle button is now added after the terminal row in the panel column. - @serenibyss
- Added: left corner column in multiblock terminal section
- #5407 Updated HTGRLoader recipe configuration to restrict centrifuge recipes to multiblock mode and corrected NBT matching logic. - @kuba6000
- Fixed: NBT matching on recipe conversion, GUI item overflow
- #5394 Updated BLOCK_ROSEGOLD texture and color value in MaterialsInit to better represent rose gold visually. - @seventh-june
- #5390 Restored ULV hiding logic in GTUtility that was accidentally removed. - @cubefury
- Fixed: ULV tier hiding
- #5388 Enhanced GTItemSink and digital chest implementation to filter irrelevant slots and pull from output slots, with interface additions to IMetaTileEntity and MTEBasicMachine. - @RecursivePineapple
- Added: Slot filtering for item pushing, Digital chest output pulling
- #5366 Adds MTEHatchNbtConsumableGui extending MTEHatchBaseGui, with input and output slot groups sized 1, 2, 3 or 4 by slot count. Removes the old MUI1 code from MTEHatchNbtConsumable and bumps GTNHLib from 0.8.6 to 0.8.8. - @chrombread
- Added: NBT consumable hatch MUI2 GUI
- #5343 Adds MTELargeMolecularAssemblerGui overriding createLeftPanelGapRow with a toggle button synced to the hidden crafting FX flag. Adds two overlay textures to GTGuiTextures and removes the old MUI1 code from MTELargeMolecularAssembler. - @Spicierspace153
- Added: Large Molecular Assembler MUI2 GUI, crafting animation button icons
- #5333 Adds MTECleanRoomGui extending MTEMultiBlockBaseGui, syncing cleanness as efficiency. MTECleanroom.useMui2() now returns true and the old drawTexts code is removed. - @Spicierspace153
- Added: Cleanroom MUI2 GUI
- #5332 Adds MTELapotronicSuperCapacitorgui extending MTEMultiBlockBaseGui and strips the old ModularUI1 window code from MTELapotronicSuperCapacitor. Sync values are registered for average input and output, capacity and related fields. - @Spicierspace153
- Added: Lapotronic Supercapacitor MUI2 GUI
- #5320 New MUI2 GUIs for MTEDroneCentre and MTEHatchDroneDownLink with sync handlers for the connection list and production stats. MTEMultiBlockBase now reports enable/disable state and production records to the drone down link connection. Adds the TierdDrone3 and DroneRemoteInterface items. - @RealSilverMoon
- Added: Drone Remote Interface, T3 drone, Custom machine grouping, Drone Centre connection key, Drone Centre machine filtering, Drone Centre production panel
- Fixed: Drone Centre showing "Out of range" for machines outside line of sight, Drone Centre GUI buttons and fields disconnecting from the server
- Migration: Check your Drone Centres after updating: the links re-establish themselves and the old "out of range" bug is fixed, but any custom name you gave an individual drone connection is dropped and needs retyping.
- Closes GTNH#16362, GTNH#19029, GTNH#19181, GTNH#19872, GTNH#21563
- #5318 Added MTEHatchInputBusGui on top of MTEHatchBaseGui, and MTEHatchInputBus.useMui2 now returns true. The linked input bus, crafting input ME, crafting input slave, chisel bus, super bus input and turbine provider override useMui2 to false. The debug bus and lens housing drop their own override. Added sorting mode and one stack limit textures to GTGuiTextures, and changed the corner flow layout in MTEHatchBaseGui. - @chrombread
- Added: ModularUI2 GUI for input buses
- #5301 Modified tooltip text in tile entity GUI descriptions for MTEIntegratedOreFactory, MTEExtremeHeatExchanger, and MTENeutronActivator. - @SST-03
- Fixed: Incorrect glass type tooltip for multiblock machines
- Closes GTNH#22458
- #5296 MTEPlasmaForgeGui, MTEPurificationUnitBaseGui and MTETranscendentPlasmaMixerGui changed panel WIDTH/HEIGHT and padding, and removed setFocusOnGuiOpen(true) from the text fields. The Plasma Forge panel also moved to topRel 0.9. - @chrombread
- #5295 Updated UEV metaitem texture assets to remove infinity shader artifacts. - @GDCloudstrike
- Fixed: UEV part texture visual noise
- #5282 CommonBaseMetaTileEntity.updateEntity now logs tick failures through GT_FML_LOGGER with meta tile ID, x/y/z and dimension id, replacing printStackTrace calls. The onTickFail handler logs the same way, but passes the outer exception instead of the one it caught. - @Glease
- Fixed: tick errors logged with no machine location
- #5280 Updated tooltips in Crop Harvester, World Accelerator, Monster Repellent, Oil Drilling Rig, and Concrete Backfiller to use appropriate terminology (range vs radius vs working area). - @LunarLambda
- Fixed: tooltip wording consistency
- #5277 Added MTELargeFluidExtractorGui with sync values for casing count, hatch tier, glass tier and the two bad-structure flags. MTELargeFluidExtractor gets public getters and its m-prefixed fields are renamed (coilLevel, solenoidLevel, casingAmount, structureBadGlassTier, structureBadCasingCount). - @chrombread
- Added: Large Fluid Extractor MUI2 GUI
- #5276 Added MTETranscendentPlasmaMixerGui with an IntSyncValue on the multiplier, and a custom end-aligned createButtonColumn that adds children in the order needed until MUI2 supports reversed insertion. MTETranscendentPlasmaMixer gets getMultiplier and setMultiplier, and useMui2 is replaced by a getGui override. - @chrombread
- Added: Transcendent Plasma Mixer MUI2 GUI
- #5275 Added MTEPurificationUnitBaseGui with an IntSyncValue on maxParallel and a parallel select panel. MTEPurificationUnitBase replaces its useMui2 override with getGui, adds getMaxParallel and setMaxParallel, and sets supportsMaintenanceIssueHoverable and supportsLogo to false. - @chrombread
- Added: purification unit MUI2 GUI, parallel select button
- #5274 MTEPreciseAssembler drops its own mode field in favour of machineMode from the multiblock base, with MACHINEMODE_PRECISE = 0 and MACHINEMODE_ASSEMBLER = 1. loadNBTData copies the old RunningMode key into machineMode when present. Added OVERLAY_BUTTON_ASSEMBLER_MODE and OVERLAY_BUTTON_PRECISE_MODE to GTGuiTextures. - @chrombread
- Added: Precise Assembler MUI2 GUI, Precise and Assembler mode button icons
- Removed: Precise Assembler's own mode field
- #5273 Added MTEPlasmaForgeGui with sync values for convergence and catalyst type, and getters and setters on MTEPlasmaForge. useMui2 now returns true and getGui returns the new class; TT_SAFE_VOID_ON and TT_SAFE_VOID_OFF textures were added to GTGuiTextures. - @chrombread
- Added: Plasma Forge MUI2 GUI, safe void button textures for MUI2
- #5272 Added MTENanoForgeGui, which appends an info button to createButtonColumn and opens a separate info panel, and switched MTENanoForge.useMui2 to true with a getGui override. Added INFORMATION_SYMBOL and INFORMATION_BUBBLE textures to GTGuiTextures and GTTextureIds, with the bubble image taken from the MUI1 version. - @chrombread
- Added: Nano Forge MUI2 GUI, information symbol and information bubble GUI textures
- #5271 Added MTEPCBFactoryGui with an IntSyncValue on trace size and a TextFieldWidget in the right panel gap row. MTEMultiBlockBaseGui.createPanelGap is split into createLeftPanelGapRow and createRightPanelGapRow (right row uses END alignment), and AntimatterGeneratorGui and MTEChamberCentrifugeGui are moved onto the new methods. - @chrombread
- Added: PCB Factory MUI2 GUI, trace size field in the PCB Factory GUI
- #5268 Updated LV color constant in GTValues.java. - @UltraProdigy
- #5264 BlockOverlayRenderer refactored to apply overlay colors to block outlines and render them on a consistent shader buffer, fixing gbuffer selection issues. - @Brabb3l
- Fixed: Shader gbuffer rendering for block outlines
- #5254 In GTValues.fancyAuthorChrom, each createChromLetter call now passes only its first glyph (ORDER, EARTH, CHAOS, AIR, STAR); the extra glyph arguments and their CustomGlyphs imports are removed. - @chrombread
- Removed: extra glyphs from the Chrom author name
- #5253 GTValues tier color constant updated from black to dark green. - @UltraProdigy
- #5217 Added screwdriver right-click mode-switch handler to MTESteamWasher, fixed tooltip to show correct machine type, and updated WAILA tooltip code for real-time mode display. - @UltraProdigy
- Added: screwdriver mode-switch capability for Steam Purifier, real-time WAILA updates
- Fixed: Steam Purifier tooltip accuracy, WAILA client desync on mode change
- #5184 Reverted compressed texture variants to higher-quality originals for affected fluid and block textures, deleted 700+ unused materialicon texture files from custom folders. - @GDCloudstrike
- Removed: Unused materialicon textures (arrowhead, axe head, sense head, etc.)
- Fixed: Texture compression visual noise on rainbow textures
- #5180 Changes the GT5U.gui.text.power_overflow string in en_US.lang. - @SST-03
- Closes GTNH#22211
- #5179 Reworks the author tag generation in GTValues with new color and formatting imports and CustomGlyphs entries, adding randomised prefix formatting and a plain tag variant for non-multis. - @chrombread
- Added: new animated author tag, plain author tag for non-multiblock machines
- #5151 Replaced SoundResource.NONE with GTCEU_LOOP_CHEMICAL in the six Dehydrator registrations in GregtechDehydrator and with GTCEU_LOOP_BATH in GregtechSimpleWasher. - @PlayfulPiano
- Added: chemical loop sound for Dehydrator, bath loop sound for Simple Wash
- #5143 Updated English language file entries for power goggle keybind labels. - @FrostyFire1
- Closes GTNH#22118
- #5133 Added new SubTag for nugget transmutation, added TCAspects definitions, and updated MaterialsInit to properly handle cluster material generation for Witching Gadgets integration. - @RecursivePineapple
- Added: Nugget transmutation SubTag, TCAspects definitions
- Removed: Duplicate and invalid nugget recipes
- Fixed: Witching Gadgets material generation logic
- #5087 Added new TextureSet for materials, updated MaterialsInit texture assignments, improved Pyrotheum/Cryotheum fluid rendering in FluidUtils, removed Blaze tool registration. - @jude123412
- Added: new texture sets for materials
- Removed: Blaze tool recipes and NEI entries
- #5080 Cover MUI2 GUIs (CoverControlsWorkGui, CoverEUMeterGui, CoverFluidRegulatorGui, CoverFluidfilterGui and others) replace GTUtility.trans and StatCollector calls with IKey.lang keys such as gt.interact.desc.MachContr.EnRedstone. The MUI1 meter and detector UI factories are also touched. Lang file changes are not shown in the diff. - @Ranzuu
- Added: lang keys for cover GUI labels
- #5070 Added harvest level configuration to BlockCasings4 and MTEBrickedBlastFurnace to allow iron pickaxe harvesting. - @Vlamonster
- #5064 Added right-click handling to MetaGeneratedItem01 for washing, and modified washed item behavior to cancel velocity and teleport items above the cauldron for immediate pickup. - @querns
- Added: Right-click washing for entire stacks
- Fixed: Item spray from cauldron washing, Pickup delay for washed items
- #5053 Replaces gt.interact.desc.export and gt.interact.desc.import with gt.interact.desc.export.tooltip and gt.interact.desc.import.tooltip in the MUI1 cover UI factories (ArmUIFactory, ConveyorUIFactory, EnderFluidLinkUIFactory, FluidRegulatorUIFactory, PumpUIFactory) and adds the keys to en_US.lang. - @Ranzuu
- Added: separate tooltip lang keys for export and import
- #4984 Re-submission of #3662 that adds an IFU hard dependency and changes dependencies.gradle. Unified ore worldgen, removed ore tile entities, and switched ore blocks to the standard GT ISBRH. No diff was available, so this is based on the body and file list. - @Dream-Master
- Added: veins in NEI recipe lookups for ore processing items
- Removed: BartWorks ore NEI page, ore tile entities
- Fixed: BartWorks vein info in NEI, Detrav scanner blocking the server thread
- Migration: The GT and BartWorks ore tile entities, BlockOres, BlockOresAbstract, ItemOres and the BartWorks and GalactiGreg ore generators are removed. Place, mine and inspect ores through gregtech.common.ores.OreManager.
- #4982 Moves MTEHighTempGasCooledReactor from bartworks to kubatech and removes the BartWorks HTGR registration, crafting recipe, fake recipe map and the old centrifuge, mixer and forming press pellet recipes. Re-submission of #4269 with minor body and file list changes. Body says balance is to be tuned during the 2.8-2.9 dev cycle. - @Pxx500
- Added: HTGR breeding of osmium, indium, fissile materials, promethium, praseodymium and lanthanum, alternative Europium and Americium fusion recipes gated behind Promethium
- Removed: old BartWorks HTGR recipes and recipe map
- Migration: You have to rebuild your old HTGR. The reactor is a completely new and much larger structure made from casings that did not exist in 2.8.4, so take the old one down and build the new one from the NEI preview when you get there. It now runs at IV instead of LuV, needs a helium loop that slowly leaks, and takes new TRISO fuel. Your old pebbles stay in your inventories, but only Burned out TRISO Pebbles can still be centrifuged back down; fresh TRISO and BISO fuel has no recipe left, and fuel left inside the old controller cannot be emptied back out.
- #4974 Replaces the NotEnoughIds ClientBlockTransformerRegistry hook in IBlockWithClientMeta with a ChunkAPI DataManager (crossmod.chunkapi.ClientMetaManager, registered in GTMod). Adds IClientMetaTracker and ClientMetaTrackerRegistry, GTCoilTrackerAccess for BlockCasings5, and makes GTCoilTracker fields public. dependencies.gradle swaps NotEnoughIds for chunkapi 0.7.0-alpha-01 and endlessids 1.6.12. - @Cleptomania
- Added: ChunkAPI and EndlessIDs compatibility, client meta tracker registry
- Removed: NotEnoughIds dependency
- #4970 Splits upgrade logic out of MTEPCBFactory into MTEPCBUpgradeBase, MTEPCBBioChamber and MTEPCBCoolingTower in a new multi.pcb package. Adds controller IDs 730 and 731, ItemList entries and Assembly Line recipes (UV, 300 s for the Cooling Tower). The factory diff was not visible, so how the old in-structure upgrades are handled is not confirmed. - @guid118
- Added: PCB Bio Chamber, PCB Cooling Tower
- Migration: Your PCB Factory keeps its shape and does not have to come down, and a bio upgrade or cooling tower that was working in 2.8.4 goes on working in a compatibility mode. The old cooling tower is still checked as part of the factory, so tearing it down stops the whole factory from forming; to switch to the standalone Cooling Tower and Bio Chamber, break and replace the controller first, which ends compatibility mode and the old bio upgrade, then link the new multiblocks with a data stick.
- #4967 Changed trash can component in Void Hatch assembly recipe from item to fluid trash can in AssemblerRecipes.java. - @UltraProdigy
- Fixed: Void Hatch recipe inconsistency
- #4961 Added Integrated Circuit component to Prismatic Naquadah ABS recipe in NetheriteRecipes.java. - @UltraProdigy
- Added: Integrated Circuit requirement for Prismatic Naquadah recipe
- #4948 Replaces GTUtility.trans and hardcoded strings with translateToLocal keys across cover UI factories (MUI1) and cover GUIs (MUI2), CoverEUMeter.EnergyType and MTENeutronSensor. Tooltips for normal/inverted use new .tooltip keys. Removes setDefaultColor(COLOR_TEXT_GRAY) calls from several text widgets. About 28 changed files were not shown in the diff. - @Ranzuu
- Added: new lang keys for cover UI labels and tooltips
- Removed: hardcoded gray text color on some cover UI labels
- #4946 MTEIndustrialBrewery machine name updated to include BBB abbreviation. - @DylanTaylor1
- Added: Big Barrel Brewery abbreviation
- #4940 MTEMultiBlockBase.createPowerPanel uses translateToLocal("GT5U.gui.text.powerfail_events") instead of a hardcoded string. Adds the key to en_US.lang. - @Ranzuu
- Added: GT5U.gui.text.powerfail_events lang key
- #4939 Removed minimum tier requirement from non-energy hatches in MTEFusionComputer. Compact Fusion already had this behavior; this change unifies the two reactors' hatch tier logic. - @DylanTaylor1
- Removed: Minimum tier restriction on Fusion Reactor input/output hatches
- #4925 Added TooltipHelper and TooltipTier utilities for unified tooltip generation. Updated tooltip methods in all MTEMega* classes to use consistent formatting and structure. Updated lang file entries. - @Tyronadre
- Added: TooltipHelper tooltip generation utility, TooltipTier tooltip tier formatting
- Fixed: Inconsistent megastructure tooltip formats, MABS description inaccuracy
- Closes GTNH#21162
- #4769 Moves slicerRecipes additions to cutterRecipes in ProcessingCrop and ProcessingFood, and deletes SlicerRecipes (its recipes go to CuttingRecipes). Removes MTEIndustrialCuttingMachineGui and trims MTEIndustrialCuttingMachine, and updates LoaderMetaTileEntities for the deprecation and the extra LV cutter slot. - @VortexSo4
- Added: slicer recipes in Cutting Machine, second slot on LV Cutting Machine
- Removed: Slicer recipe map entries, Industrial Cutting Machine mode GUI
- Migration: A placed Slicer becomes a dead block and a held one an unusable item. Replace every Slicer with a Cutting Machine, and take its Slicer Blade out, before updating.
- #4561 Adds AntimatterGeneratorGui with sync values for wireless mode, energy produced and efficiencies, and makes the AntimatterGenerator getters public. Adds four OVERLAY_BUTTON_WIRELESS_* textures to GTGuiTextures and changes createPanelGap to return a Flow. - @chrombread
- Added: MUI2 Antimatter Generator GUI, wireless button textures for MUI2
- #4551 Adds AntimatterForgeGui extending MTEMultiBlockBaseGui with LongSyncValues for the four stats, and makes the getters on AntimatterForge public. Removes the useMui2 false override and sets supportsLogo and canBeMuffled to false. - @chrombread
- Added: MUI2 Antimatter Forge GUI
- #4548 Adds CoverFluidLimiterGui (CoverGui subclass) with an IntSyncValue mapping the threshold float to a 0-100 number field, and CoverFluidLimiter.getCoverGui() returns it. - @chrombread
- Added: MUI2 Fluid Limiter cover GUI
- #3662 Unified ore worldgen, removed all ore tile entities, and switched ore blocks to the standard GT ISBRH. Removed the BartWorks ore renderer and OreNEIHandler, and cleaned up the Detrav scanner. Hard dependencies on BloodMagic, VisualProspecting, Crops++ and nei-custom-diagram need matching releases. No diff was available, so this is based on the body and file list. - @RecursivePineapple
- Added: veins in NEI recipe lookups for ore processing items
- Removed: BartWorks ore NEI page, ore tile entities
- Fixed: BartWorks vein info in NEI, Detrav scanner blocking the server thread
- Migration: Same worldgen refactor as #4984, re-done with a clean branch. #4984 is the one that shipped; see its entry.
Balance
- #8277 In GlassTier.registerGlassAsTiered, the Warded Glass registration moved from tier 3 to tier 4 with order value 23 and now sits in the EV section. - @DreamYao520
- Migration: Check multiblocks that mix Warded Glass with other HV glass, such as HV borosilicate glass, and replace one or the other so the whole structure uses one glass tier.
- Closes GTNH#27007
- #8225 In MTESpinmatron's createOverclockCalculator, max overclocks is Integer.MAX_VALUE when mode == 2.0, otherwise the hatch+1 tier calculation is kept. Tooltip text was updated. - @chrombread
- Added: uncapped overclocks in Spinmatron heavy mode
- Fixed: Spinmatron heavy mode tooltip text
- #8224 Changed setTool tier values in MaterialsInit: SpaceTime 25->24, Universium 30->32, Eternity 26->28, MagMatter 26->30, and added setTool for WhiteDwarfMatter (28) and BlackDwarfMatter (30). The diff is cut off, but the body also lists spc, melon and crayon going from 26 to 24. - @chrombread
- Added: tool tier for White Dwarf Matter, tool tier for Black Dwarf Matter
- Fixed: White and Black Dwarf Matter huge turbine tier
- Closes GTNH#26990
- #8215 Changed the pump rate values in MetaGeneratedItem01 for the tiers above UV to follow tier voltage, with MAX capped at Integer.MAX_VALUE. The tooltip numbers are changed with them, and the rate table is shared with the cover. - @shironakoushi
- Fixed: pump and fluid regulator rates above UV breaking the four times growth pattern
- #8183 BECRecipes.runLateRecipes uses a new addBecUnsafe helper (copied from Coremod) to allow a 256-count Superdense Bedrockium plate stack, and swaps the Bedrockium entangled condensate for Infinity. - @fehling135
- Removed: Bedrockium condensate from Singularity Shielding Casing recipe, Superdense Infinity Plate from Singularity Shielding Casing recipe
- Migration: Update any automation for the Singularity Shielding Casing to supply 256 Superdense Bedrockium Plates and 2 stacks of Infinity condensate instead of the old inputs.
- #8182 Reworks addBECCasingRecipes in BECRecipes and the matching Assembly Line recipes in ResearchStationAssemblyLine. Shijima and Churitsu get new blast furnace temperatures in MaterialsInit and BlastFurnaceRecipes, and Six Phased Copper gains the METAL subtag. - @Auynonymous
- Removed: Additive requirement from Shijima and Churitsu blast furnace recipes
- #8175 MTENanochipAssemblyModuleBase.checkProcessing loops halving duration and quadrupling EUt while duration/2 >= 5 seconds and EUt*4 <= availableEUt. Adds a body.6 text entry to the NAC and module info GUIs plus the lang string. - @chrombread
- Added: uncapped 2/4 overclock with excess power in NAC modules
- #8092 MTENanochipAssemblyModuleBase.transformRecipe() multiplies recipeEUT by 1 / max(0.1, 1 - globalDurationMultiplier) when the recipe calibration is SPECIAL and matches the active threshold. Adds an info line to MTENanochipAssemblyComplexGui and a lang key. - @chrombread
- Added: Info panel line about Specialty Calibration EU scaling
- #8084 MTEBiologicalCoordinationModule.transformRecipe halves every fluid input when wetwareT3Active and nulls them when bioT3Active, with no fluid-type check. CircuitCalibration.BIO tier 3 sets only bioT3Active. The lang strings are updated. - @chrombread
- Fixed: Wetware tier 3 calibration having no effect
- Migration: If you run Wetware circuits with tier 3 calibration, check the fluid supply to your Biological Coordinator, since it now uses half of the recipe fluid.
- #8053 Buffer sizing in MTENanochipAssemblyComplex was changed to 20 seconds of EU/t. NACRecipeMapBackend and the getMaxRecipeDuration overrides in the module classes were deleted, and the NAC recipe maps in RecipeMaps now use the plain RecipeMapBackend. - @serenibyss
- Removed: NAC recipe map max duration tracking
- #8044 Set hoverSlowSpeed for JETPACK in JetpackStats from 0.03f to 0f, and trimmed the VectoredJetpack tooltip in en_US.lang. hoverSlowSpeed is now 0 for both entries. - @metalcupcake5
- Fixed: slow fall while hovering with the T1 jetpack
- #8043 Added a per-CircuitComponent weight field; MTEAssemblyMatrixModule.addItemOutputs now calls addToHistory with max(1, stackSize * weight). CircuitCalibration thresholds were changed and the NAC info panel got two new calibration text entries. - @chrombread
- Added: calibration weight per circuit, NAC info panel calibration text
- #8042 Edits setProtection values in the Frames enum in MechArmorAugmentRegistries (0.7 and 0.8 to 0.75, 0.8 and 0.9 to 0.85, 0.9 and 0.99 to 0.95). - @FourIsTheNumber
- #8026 In RecipeLoaderChemicalSkips the quantum transformer rubber recipe item input changes from Carbon.getDust(64) to Sulfur.getDust(32) plus Carbon.getDust(32). - @DreamYao520
- Migration: Add 32 Sulfur dust to the Quantum Force Transformer rubber recipe's input, cut the Carbon dust from 64 to 32, and re-encode the pattern.
- #8022 In MTEEtchingArrayModule, getEUDiscountModifier and getModuleDurationModifier add 1 to the divisor when baseMulti.crystalT3Active is set. Added a tooltip line and reworded the lang entries. - @chrombread
- Added: Crystal Tier 3 bonus step for the Etching Array
- #8017 In BeamCrafterRecipes, the BeamCrafterMetadata amount_A and amount_B values changed from 700 to 200 for UPSILON and from 85 to 25 for HIGGS. - @ham-corp
- #8004 getEUDiscountModifier now takes the GTRecipe. MTEAssemblyMatrixModule returns 0.95^(casingTier - recipeTier), and the other NAC modules were updated to the new signature. Adds tooltip line body.3 and renames tier wording in body.1 and body.2. - @chrombread
- Added: EU discount for Assembly Matrix casing tiers above the recipe tier
- #7996 MTEBasicBatteryBuffer.allowPullStack now returns true, replacing the check that only allowed six specific empty gt.metaitem.01 batteries. - @UltraProdigy
- Removed: item output restriction on Battery Buffers
- Migration: Check any pipe, conveyor or bus attached to a Battery Buffer, because it can now pull charged batteries and other items out.
- #7994 BeamlineRecipeLoader: changed the proton source chamber recipe eut from TierEU.RECIPE_UV to TierEU.RECIPE_ZPM. - @ham-corp
- Fixed: Quantum Anomaly and Matter Manipulator MKIII unintentionally uptiered to UV
- Closes GTNH#26663
- #7990 In gtnhlanth RecipeLoader, the seaweed smelting output changes from dustSmall to dust, the SeaweedConcentrate recipe takes 8 dust instead of 2, and the iodine recipe moves to centrifugeNonCellRecipes with the Benzene cell input removed and a new byproduct recipe added. - @Auynonymous
- Added: seaweed byproduct recipe
- Migration: Check any automated seaweed line: the furnace now outputs full Seaweed Ash dust and the mixer step takes 8 dust. The iodine step needs 2000 L Chlorobenzene in place of the Benzene cell and has to move from a single-block centrifuge to an Industrial Centrifuge or a Spinmatron.
- #7967 Changed the required module tier in the platline asteroid entry in SpaceMiningRecipes from 3 to 2. - @DreamYao520
- #7946 Renames NanoChipModule_SMDProcessor/nanochipSMDProcessorRecipes to PartProcessor with maxIO(6,4,3,0), raises the etching array to 2 item outputs and the wire tracer to 2 in and 4 out, adds NACMatrixFrontend for XOR chance badges, new manifold, strand and rack items, and CircuitComponentItemRenderer support for special renderers. Pairs with NewHorizonsCoreMod#1945 for the recipes; Planck_Manifold is replaced by CalabiYauManifold in ItemList. - @chrombread
- Added: XOR output on the assembly matrix, Part Processor module, WDM Fine Wire, Rhugnor Bolt, NAC Processed Circuit Components in NEI, new manifold, strand and circuit rack items
- Removed: SMD Processor module name, Planck Manifold item entry
- #7916 Re-enabled silk touch for the Ore Drilling Plant in MTEOreDrillingPlantBase to eliminate the stacking of fortune and drilling plant bonuses. - @Nana-Sakura
- Fixed: Overpowered ore drilling output
- #7911 Modified RecipeLoaderChemicalSkips.java to swap output from indium to rhenium for specific QFT recipe. - @fehling135
- #7903 Changed power scaling nerf cutoff constant from 5000 to 15000 Rate in
MTELargeHadronCollider. - @ham-corp - #7891 Changed BHC ingredient requirement in spacetime generator recipes in
BECRecipes. - @Ruling-0 - #7878 Deleted broken BEC recipe variants from
BECRecipesandBECMetaMaterialRecipesthat diverged in condensates. UpdatedCondensateTypeenum to clean up unused entries. - @Ruling-0- Removed: alternate BEC recipes with mismatched condensates
- Fixed: BEC recipe validation
- #7871 Updated Godforge.java recipe tier downgrades and time doubling, modified GodforgeMath.java OC factor calculation to scale with heat, increased MTEAssemblyMatrixModule base parallel. - @GDCloudstrike
- #7867 AcidRecipes: outputChances for the Chrome dust in the ThoriumElutionAdsorbent recipe changed from 5500 to 4500. - @Nana-Sakura
- Fixed: Chrome gain when recycling in the Francium line
- #7842 Updated JetpackStats, JetpackBehavior, and InertiaCancelingBehavior to increase climb speed cap and improve hover handling. Added new augment items and registration in MechArmorAugmentRegistries. - @telemenar
- Added: Vectored Jetpack augment
- Removed: JetpackPerfectHoverBehavior class
- Closes GTNH#26142
- #7824 CondensateType: durations changed to 30 * SECONDS with raised EU tiers (UEV/UIV/UMV for several types). MTEBECDiode reworked for multiple filters and hatch-set filters. BECMetaMaterialRecipes and BECRecipes changed condensate inputs. Added GTUtility.mulSafe(long, long), and ExoticEnergyInputHelper.getTotalEuMulti now uses overflow-safe add and multiply. - @Ruling-0
- Added: Multiple filters on the Maxwell Gate, Filter setting through an input hatch
- Fixed: Overflow when summing exotic hatch EU
- #7819 Updated MechArmorAugmentRegistries to restrict Terrasteel augment to chestpiece tier 2, modified TerrasteelBehavior discount calculation, fixed lang entry formatting. - @Spaghetti-OberNub
- Fixed: Terrasteel augment tooltip format error
- #7812 Adjusted fuel values in HTGRLoader for Glowstone and Uranium isotopes. - @Pxx500
- #7809 BECMetaMaterialRecipes no longer registers the Assembly Line variants alongside the BEC recipes (the t == 0 addBecAndAal branch and related scanning/research imports are removed). A baseDuration constant is added for the BEC-only recipes. - @Ruling-0
- Removed: Metamaterial Assembly Line recipes for the BEC
- #7808 tectech/loader/recipe/Assembler.java: multi-amp hatch recipes replace BaseRecipeLoader.getOrDefault("Bedrockium"/"BlackPlutonium", Neutronium) plates with Materials.Infinity (UEV) and Materials.TranscendentMetal (UIV). Depends on NewHorizonsCoreMod PR 1916. - @Nana-Sakura
- Migration: Re-encode any crafting patterns for the UEV and UIV multi-amp energy and dynamo hatches: the plate input is Infinity on UEV and Transcendent Metal on UIV, where it was Bedrockium and Black Plutonium.
- #7751 Increased raw silicon EBF recipe duration from a lower value to 20 seconds in BlastFurnaceRecipes to balance energy input/output. - @Nana-Sakura
- Fixed: Raw silicon EBF net energy gain
- #7750 RecipeGenPlates wraps the eut of the double and dense plate bender recipes in Math.max(TierEU.RECIPE_MV, material.voltageMultiplier). - @UltraProdigy
- Fixed: LV-tier GT++ materials having LV Double and Dense plate Bender recipes
- Migration: Check any automation that bends Double or Dense plates of low-tier GT++ materials, since those recipes now draw MV power.
- #7749 MTEBECAssembler: hatch element moved from casing 'B' to new element '1' (ElectromagneticallyIsolatedCasing), with BEC hatch and line-of-sight hatch elements renumbered to '2' and '3'. BECStructureDefinitions layouts updated and the hatch position tooltip in en_US.lang changed. - @Auynonymous
- Removed: Hatch placement on any electromagnetically isolated casing of the BEC Assembler
- Migration: Move energy, exotic energy and nanite hatches on existing BEC Assemblers to the allowed casings between the IO node ports.
- #7741 Increased recipe durations in BECRecipes for EOH parts to approximately 1024A AAL equivalent times based on nanite calculations. - @Ruling-0
- #7737 Reduced naquadah coil tier in BECRecipes and ResearchStationAssemblyLine recipe definitions. - @Ruling-0
- #7732 Updated ComponentAssemblyLineLoader and ResearchStationAssemblyLine to replace Nuclear Stars with Pseudo Stars (16:1 ratio) in UXV parts recipes. - @UltraProdigy
- #7689 BECMetaMaterialRecipes: waveguide input is Gravitational_Lens.get(1); resonance chamber input is emitters[t].get(2) replacing Relativistic_Heat_Capacitor.get(baseAmounts[t]). BECRecipes: Godforge recipe swaps MetaMaterial_ResonanceChamber1 x4 for Relativistic_Heat_Capacitor x6, and the ExtraUtilities modloaded check is dropped. Also adds commented-out singularity mod dev dependencies and a new texture for item 323. - @Auynonymous
- Removed: Tier-scaled lens amount in Wave Guide recipes, Heat Capacitor in Resonance Chamber recipes, Extra Utilities check on Eye of Harmony BEC recipes
- #7635 DEFCRecipes: mixer recipe duration changed from 14_000 ticks to 2100 * SECONDS. DEFC_CASING_TIER metadata lowered from 3 to 2 on the four dragonblood fusionCraftingRecipes. - @UltraProdigy
- Migration: Nothing you built has to come down. The non-magic mixer route to molten dragonblood now takes 2100 seconds instead of 700, so an existing line produces a third as much per mixer; add mixers if you depend on it. The Draconic Evolution Fusion Crafter recipes for dragonblood now accept a tier 2 casing instead of tier 3, which only makes them easier.
- #7620 Updated AssemblerRecipes.java and lang files to rename the cell and change recipe from 4 double chrome plates to 4 double RPP plates. - @Auynonymous
- #7618 Added alternate recipe in AutoclaveRecipes.java using Infinity Plasma to craft nuclear stars directly from Nether Stars at tier 7. - @GDCloudstrike
- Added: Tier 7 alternate nuclear star recipe
- #7576 MTEMegaDistillationTower: DISTILLERY_SPEED 1.5 to 2, TOWER_SPEED 1.2 to 1.5, and setSpeedBonus now gets 1/speed. Output hatch count getters return 0 when outputHatchesPerLayer is empty. MTEAdvDistillationTower: tower mode speed bonus and tooltip 3.5 to 3. - @chrombread
- Fixed: Mega Distillation Tower speed bonus slowing the machine down, crash when using auto place on the Mega Distillation Tower
- Migration: Dangote (the Advanced Distillation Tower) is about 14% slower in distillation-tower mode, a 3.5x speed bonus dropping to 3x. Check your Dangote lines: they keep running, just at reduced throughput.
- #7569 ProcessingNugget: the ingot-to-8-nuggets crafting recipe is skipped when the material is Materials.Unstable. - @FourIsTheNumber
- Removed: sawing Unstable ingots into 8 nuggets
- Migration: After updating, the crafting table recipe that turned one unstable ingot into 8 unstable nuggets with a saw is gone. If you had that recipe encoded in an autocrafting pattern, delete or re-encode it. An alloy smelter with a nugget mold splits one unstable ingot into 9 nuggets as before.
- #7545 Modified MTEIndustrialArcFurnace to adjust electrode damage thresholds and EU scaling logic; updated ArcFurnaceElectrode with new EU modifier and startup penalty values; renamed UI labels in lang file. - @Pxx500
- Removed: item voiding above 90% electrode damage, 64A hatch count in the electrode tooltip, EU/t scaling with Infinity Electrode target parallels
- Migration: Check the power draw and startup penalty of each running Industrial Arc Furnace against its electrode's new tooltip values and adjust the power supply.
- #7502 Updated Pulverizer recipe tier values to match solidification tier (e.g., HV for titanium glass, EV for tungstensteel glass). - @Auynonymous
- #7468 ItemPhotolithographicMask drops maxDamage and sets stack size 64; MaskList stores maxUses instead of maxDamage. MTETargetChamber swaps the FocusInput hatch element for InputBus and reads masks from input buses. BeamlineRecipeLoader multiplies wafer input, output and TargetChamberMetadata amount by getMaxUses(), and the focus item stack size is now 1. - @error1number404
- Added: regular Input Bus support on the Target Chamber
- Removed: photolithographic mask durability, Focus Input Bus slot on the Target Chamber, partially consumed tooltip line
- Migration: Your Target Chamber will not re-form until you rebuild one block: break the Focus Input Bus in the top centre casing and put a normal Input Bus there, so the machine has two. The Focus Input Bus is now unused. Masks no longer wear out and stack to 64, but a part-used mask matches no recipe after updating. Recipes are batched per mask now: one run takes a mask plus as many wafers or target items as that mask used to have uses, from 50 (QBIT, PPIC, QPIC, FPIC) to 200 (RAM, NAND, ULPIC).
- #7465 Modified AcidRecipes loader to change FrOH recipe EU/t and duration values in the acid chain. - @loenaaaa
- #7428 NaniteChain Eternity and MagMatter nanite recipes changed in inputs, outputs and duration. ElectricImplosionCompressorRecipes MHDCSM V2, BECRecipes, FormingPressRecipes (Nanite Framework), PlasmaForgeRecipes (comment only) and Godforge (MagMatter nanites 4 to 1) adjusted. - @Ruling-0
- Migration: Nothing you built has to come down. If you produce Eternity or MagMatter nanites, re-plan the cost: one Eternity nanite per run instead of four, using two Universium nanites (instead of one Transcendent Metal nanite), eight Eternity blocks and 64000 L of primordial matter each; MagMatter nanites now take four Universium nanites instead of one. Re-encode any autocrafting patterns for those two nanites, for the Nanite Framework and for the MHDCSM implosion recipe, which all changed inputs.
- #7420 FoundryModule's Universal Collapser sets UIVRecipesEnabled and speedMultiplier *= 4. FoundryData.calculatePairings now rolls XSTR nextInt(0, numHelio + 1) for speed, EU efficiency, OC factor and parallel bonuses when numHelio >= 3, and adds an entropySuffix. Tooltips and lang files updated. - @chrombread
- #7373 Shirabon mass and processing EU changed in GGMaterial. BartWorks werkstoff loaders (CraftingMaterialLoader, CrushedLoader, DustLoader, GemLoader, SimpleMetalLoader) only register crafting table recipes when processing tier EU is below IV. ProcessingPlate, GTRecipeRegistrator, BECRecipes and other files changed to match. - @Ruling-0
- Removed: crafting table recipes for IV+ BartWorks material components
- Migration: Crafting table recipes are gone for High Durability Compound Steel, Extremely Unstable Naquadah, Adamantium Alloy, Tairitsu, Enriched Naquadah Alloy, Precious Metals Alloy, Metastable Oganesson and Shirabon: plate from ingot, foil from plate, sticks, rings, screws, gears, small gears, rotors, crushed ore to dust, dust to and from small and tiny dust, and gem splitting; GT materials above IV also lose the hammer foil recipe. Re-encode any autocrafting pattern that used a hammer, file, saw or wrench on those materials.
- #7370 Added Chemical Reactor recipe to ChemicalRecipes: 4× Indium Comb + 293L UU-Matter → 4× Purified Indium Ore at UHV voltage, 20 second duration. - @lekior
- Added: Indium Comb UU-Matter recipe
- #7346 MTEIndustrialAlloySmelter minimum casing requirements reduced. - @Auynonymous
- #7331 Changed ULV input hatch recipe material requirements in
MTERecipeLoaderfrom 1 ingot to 8 ingots to match output hatch recipe. - @LazyFlesh- Fixed: ULV hatch recipe balance
- #7293 Adds Materials.ComputationBase with id 116, MaterialsInit and fluid block loader entries, and new ItemList arrays. Deletes the gregtech.api.materials.bec package, MaterialWithParts and the BECMaterialList.init call in GTMod. The counterpart is NewHorizonsCoreMod PR 1833. - @Ruling-0
- Added: Computation Base material
- Removed: BEC material parts system
- #7290 Modified
TileEntityModuleAssemblerandTileEntityModuleBaseto increase processing speeds. Updated lang keys in en_US. - @Ruling-0 - #7289 Changed conversion ratio in
ElectricImplosionCompressorRecipesfrom 1.125 to 1.0. - @Ruling-0 - #7270 Added momentum system to MTEIndustrialCentrifuge with speed and parallel bonuses scaling up to 100% over 50 seconds of continuous operation, decaying 100% over 12.5 seconds idle. - @koolkrafter5
- Added: Momentum mechanic for Industrial Centrifuge, Momentum display in WAILA and tricorder
- #7260 Removed sensor and circuit requirements from Extrusion Hatch recipe and updated MTEHatchExtrusionGui to match standard input bus layout. - @UltraProdigy
- Removed: Sensor component from Extrusion Hatch recipe, Circuit component from Extrusion Hatch recipe
- Fixed: Extrusion Hatch recipe cost imbalance, GUI mismatch with standard input buses
- Closes GTNH#25493
- #7237 Updated rate scaling threshold in
MTELargeHadronColliderfrom 2000 to 5000. Updated tooltips in en_US.lang and ru_RU.lang to reflect the new threshold. - @ham-corp - #7222 Updated maceration EU values in DustLoader.java to account for voltage-tier scaling. - @Auynonymous
- #7209 Updated ItemComb.java bauxite recipe to use HV tier and HF acid instead of MV tier and HCL. - @C0bra5
- #7198 Refactored protection value calculations in ItemAugmentFrame.java, MechArmorAugmentRegistries.java, and FrameBuilder.java to use percentage-based damage reduction. Updated lang strings to show percentages. - @FourIsTheNumber
- #7119 Lowered casing count in MTEIndustrialDehydrator to support Amalgatite vacuum furnace recipes without requiring workarounds. - @Auynonymous
- #7082 Modified FoundryData hatch limits and efficiency values; updated FoundryModule overclock factors; renamed 'TDS' to 'UC' (Universal Collapser) in code. - @chrombread
- #7038 Modified MTEMassFabricator to implement scaling scrap generation rate by voltage tier and added new UUA synthesis recipes in GregtechIndustrialMassFabricator. - @GDCloudstrike
- Added: UUA synthesis recipes from scrap/scrapbox, scaling scrap generation by voltage tier
- Fixed: UUA late-game viability
- #7009 MechArmorAugmentRegistries: Adjusted augment type classifications and piece restrictions to improve tinkerability and build variety. - @FourIsTheNumber
- #6986 Modified HazmatBehavior and SpaceSuitBehavior to check protection across the full armor set rather than per-piece, and updated lang entries. - @FourIsTheNumber
- #6975 Modified
MTEBasicMachine.javaandMTEBasicMachineWithRecipe.javato apply a 3x power multiplier to single-block arc furnaces, added new machine definitions inLoaderMetaTileEntities.java, and updated recipe generators. - @Pxx500- Added: singleblock arc furnace machines, power multiplier application
- Fixed: singleblock arc furnace power parity
- #6974 MTEBlackHoleCompressor tracks a per-recipe flag for non-black-hole recipes and lifts the parallel cap below 20 stability. COMPRESSION_TIER in GTRecipeConstants now points at CompressionTierKey.INSTANCE, and call sites in compressors, steam machines and recipe loaders use the static import. - @Ruling-0
- Added: Uncapped parallels for non-black-hole recipes below 20 stability in the Black Hole Compressor, Tooltip line about uncapped parallels
- Fixed: Compression tier recipe metadata declared with the wrong key
- #6971 Modified
MTEAdvDistillationTower.javato calculate distillery mode parallels using structure height and voltage tier (2 parallels per 3 layers × voltage tier) instead of fixed 8 × voltage tier. - @EdenExecutive - #6963 BECRecipes adds EoH component recipes gated by BOLT_TIER/BOLT_POS and mod-loaded checks; about 650 lines of old recipes are removed from ResearchStationAssemblyLine. Godforge moves CosmicNeutronium between tier lists, TranscendentPlasmaMixerRecipes lowers RawStarMatter to 25, and FluidDisplayStackRenderer picks a borderless texture for MHDCSM. - @Ruling-0
- Added: BEC recipes for Eye of Harmony components, Hexanite superdense plate, borderless MHDCSM condensate texture
- Removed: old Research Station recipes for Eye of Harmony components
- Migration: Every Eye of Harmony component recipe, the reinforced temporal and spatial casings, the infinite spacetime boundary casing and all tiers of the three field generators, has moved off the Research Station assembly line into the Bose-Einstein Condensate assembler. An existing assembly line for these parts finds no recipe, so build the BEC first.
- #6957 Modified
MTELargeNeutralizationEngine.javato abstract the multiplier bounds as static constants and changed the tooltip formatting from dash to comma. - @loenaaaa- Added: static constants for residue multiplier bounds
- Fixed: LNE residue growth volatility
- #6930 Changed rate scaling formula above 2000 EU/t from exponential to square-root based; updated GUI tooltips and scaling calculations in MTELargeHadronCollider. - @ham-corp
- #6926 Increased durability value in MBFrameType for mutagenic frame type. - @LazyFlesh
- #6916 Modified EntityStaballoyConstruct to cap looting at level 3 and apply a 50% drop chance per looting level, shifting average yield from ~1 ingot/kill (no looting) to ~3 ingots/kill (looting IV). - @boubou19
- Added: Looting enchantment support (capped at level III) for Staballoy Construct
- #6882 Modified MCR recipe in AssemblyLineRecipes.java and removed old recipe definition from MTERecipeLoader.java. - @Auynonymous
- Removed: Old Mega Chemical Reactor recipe
- #6835 Removed recipe entry from MaterialsInit that was out of sync with corresponding mixer recipe (coordinated with coremod PR #1776). - @LazyFlesh
- Removed: Misaligned centrifuge recipe
- #6834 Updated MTERecipeLoader HV Lathe recipe diamond ingredient from Industrial to Exquisite variant. - @NotKaizul
- Fixed: HV Lathe progression gate
- Closes GTNH#24881
- #6765 setProcessingMaterialTierEU raised to RECIPE_UXV for White Dwarf Matter, Black Dwarf Matter and Universium. Hypogen voltage multiplier changed 11255 to 10255 in MaterialsElements. RecipeGenFluids fluid solidifier durations changed to fixed values (3 s ingot/plate/nugget, 12 s gear). - @chrombread
- Migration: GT++ fluid solidifier lines run at about half speed, and White Dwarf Matter, Black Dwarf Matter and Universium now need UXV machines.
- #6682 Added new recipes to BeamlineRecipeLoader and BeamCrafterRecipes for UHV items (lapotron chip engravings, tesseract variants, plutonium fuel), added new photomask texture asset for engraved lapotron chips, and updated MaskList enum. - @ham-corp
- Added: UHV beam recipes for lapotron chips, tesseracts, and plutonium fuel, new engraved lapotron chip photomask
- #6662 Modified Higgs weight constant, proton beam multiplier, and beam scaling calculation in MTELargeHadronCollider and related recipe loaders. - @ham-corp
- #6570 Added alternative EBF recipes for Chlorosulfonic Acid chain downtiering. Modified toxic slurry recipe duration. Shortened LNE controller assembly recipe duration and EU cost. Changed robot arm depletion from all to one per cycle. Updated tooltip formatting for consistency. - @loenaaaa
- Added: Alternative Chlorosulfonic Acid recipes, Toxic Air processing recipe
- Fixed: Chlorosulfonic Acid progression difficulty, LNE recipe consistency
- #6548 Adds MTEExothermicHearth with MTEExothermicHearthGui, HearthCasing (block casings 14 meta 3) with CTM texture, and pyrotheum button textures. ItemList.MegaBlastFurnace and its ID entry are renamed ExothermicHearth, MTEMegaBlastFurnace becomes MTEMegaBlastFurnaceLegacy, the old assembler recipe is deleted, and a Precise Assembler casing recipe at RECIPE_ZPM is added. - @chrombread
- Added: Exothermic Hearth, Hearth Casing, heat-up mechanic, Hearth Casing Precise Assembler recipe
- Removed: Mega Blast Furnace assembler recipe
- Migration: Your Mega Blast Furnace keeps running as the Legacy controller. The new machine is the Exothermic Hearth, and swapping takes an assembler recipe at ZPM; convert and rebuild only if you want it.
- #6514 Updated Cryotheum recipes in mixer and centrifuge, adjusted Thaumcraft aspects and chemical formula to reflect lapis substitution. - @loenaaaa
- #6512 Updated MTENanoForge casing material from Europium to Iridium. - @seventh-june
- #6487 BeamCrafterRecipes ATLAS casing cost values updated (2-line change). - @ham-corp
- #6474 ComponentAssemblyLineLoader, NaniteChain, MachineRecipes, ResearchStationAssemblyLine, and MTEHatchRack updated; wireless hatch recipes restructured with additional Planck circuit requirements and adjusted tier requirements. - @GDCloudstrike
- Added: Planck circuit requirement to UXV recipes, quantum computer integration
- #6463 PlatinumSludgeOverHaul halves the PTConcentrate input, PTSaltCrude and PTRawPowder tiny dust outputs, NitrogenDioxide, HydrochloricAcid and ammonia amounts in the centrifuge and multiblock chemical reactor recipes. Both durations change to 1 min 4 s. - @Nana-Sakura
- Fixed: Platline platinum loop recipe over-buffed compared to the dust route
- Closes GTNH#24371
- #6449 Updated recipe timing in ChemicalRecipes for titanium tetrachloride EBF processing to reduce its competitiveness relative to rutile-based routes. - @UltraProdigy
- Closes GTNH#24232
- #6428 Updated NaniteChain, ResearchableAssemblyLine, and ResearchStationAssemblyLine recipes to use new power IC tiers and adjusted coolant quantities. - @GDCloudstrike
- #6411 Modified MTELatex hatch validation to accept multiple laser hatches without multiamp limitation, maintaining singularity gate. - @UltraProdigy
- Removed: Single hatch limit for LATEX, Multiamp-only restriction for LATEX
- #6404 Updated Godforge recipes to add bromine plasma processing path. - @EnderProyects
- Added: Bromine to bromine plasma recipe
- #6385 Updated RecipeLoader and tectech recipes to substitute new voltage coil tiers in high-tier energy hatch and accelerator recipes. - @Auynonymous
- #6376 Increased output slot count for HV and higher tier Chemical Bath singleblock definitions in LoaderMetaTileEntities. - @Nana-Sakura
- #6354 Updates RecipesGeneral.java to reduce Magic Feather voltage requirement from EV to HV, affecting Elytra craftability timing. - @UltraProdigy
- #6346 Reduces recipe duration in ElectricImplosionCompressorRecipes.java by 4x to account for increased EIC multiblock size. - @Ruling-0
- #6336 EntityStaballoyConstruct loot table modified to remove block and plate drops. - @seventh-june
- Removed: Block drops from Staballoy Construct, Plate drops from Staballoy Construct
- #6304 Removed .circuit(...) from fluidHeaterRecipes entries in FluidHeater, PlatinumSludgeOverHaul, BauxiteRefineChain, FluidHeaterRecipes and RecipeLoaderGlueLine. - @KleinGrrmpf
- Removed: programmed circuit requirement from Fluid Heater recipes
- #6284 Edited the structure string in LHCStructureString to drop ALICE casing positions and hollow out the layers, cutting the required count from 380 to 158. - @ham-corp
- #6263 Deleted the Water Tank assembler recipes (iron, magnetic iron, wrought iron stick and steel/stainless bolt variants) from AssemblerRecipes.withRailcraft. The replacement recipe comes from NewHorizonsCoreMod PR #1676. - @Dream-Master
- Removed: Railcraft Water Tank assembler recipes
- Migration: You do not have to touch anything you built, and water tanks you have already placed go on working. The GT assembler recipes for the Railcraft water tank block are gone, so an AE2 pattern or an automated line feeding that assembler recipe stops producing until you point it at the new recipe.
- Closes GTNH#24094
- #6258 Modified ChemicalRecipes.java recipe durations for diluted acid undilution recipes, reducing from 96,000 EU / 3 buckets (32k per bucket) to 8k per bucket while keeping HV tier. - @LazyFlesh
- #6254 Modified Assembler recipe times in tectech/loader/recipe/Assembler.java: reduced 4A, 16A, 64A, and 256A amperage fluid recipe durations by 75%. - @UltraProdigy
- #6244 Modified fuel burn values in AdditionalRecipes.java: Hydrofluoric (40→60), Phosphoric (36→66), Hypochlorous (30→56), Hydrochloric (28→52), Nitric (24→72), Sulfuric (18→28), Diluted HCl (14→26), Acetic (11→21), Diluted Sulfuric (9→14). - @loenaaaa
- #6239 MTEBeamCrafter reworked around a particle buffer (Int2IntOpenHashMap, MAX_BUFFER 2e9) and parallels up to 1024. Particle ID checks were removed from recipe logic, BeamCrafterMetadata lost the min energy fields, and progress contribution is clamped. NBT save/load added, NPE on probability recipes fixed, and BeamCrafterRecipes plus GT++ and TecTech recipes adjusted. MTEBeamStabilizer and MTEBeamCrafterGui were also changed. - @ham-corp
- Added: Beamcrafter parallels, Beamcrafter particle buffer, Beamcrafter NBT save and load
- Removed: particle ID checks in Beamcrafter recipes, minimum energy lines in Beamcrafter NEI recipe display
- Fixed: Beamcrafter NPE on recipes with probability, Beamcrafter reading the input hatch every tick, slow Beamcrafter rates caused by particles arriving at different times
- Migration: Check running Beamcrafter setups, since recipe inputs and outputs changed and need rebalancing.
- #6236 Updated molten redstone fuel value in AdditionalRecipes from 10,000 to 40,000 EU per 1,000L. - @bumbleBee945
- #6233 Increased Incoloy-903 recipe duration in RecipesGregTech to maintain energy balance after downtiering to EV. - @LazyFlesh
- #6232 Changed Incoloy-903 alloy tier from IV to EV in RecipesGregTech. - @LazyFlesh
- #6211 Updated coolant throughput values in RecipeLoader2.java. - @Pxx500
- #6172 In BeamCrafterRecipes, the ALICECasing recipe fluid input changed from MoltenProtoHalkoniteBase to ABYSSAL.getFluidStack(9216), and the LHCbCasing recipe from SpaceTime molten to QUANTUM.getFluidStack(9216). - @ham-corp
- Fixed: unintended Spacetime requirement for gravitons
- #6164 Added strontium output to the prismatic acid QFT recipe in RecipeLoaderChemicalSkips. - @GDCloudstrike
- Added: strontium output to Prismatic Acid QFT recipe
- #6144 Added Casings.ShieldedAcceleratorCasing (LanthItemList.SHIELDED_ACCELERATOR_CASING, index 1662). MTEBeamCrafter, MTEBeamMirror, MTEBeamSplitter and MTEBeamStabilizer structure definitions now use it in place of BlockCasings13 collider casing, and add extra casing elements for the grate casings. - @ham-corp
- Added: grate casings in beamcrafting multi structures, Shielded Accelerator Casing entry in Casings
- Removed: collider casing requirement for beamcrafting multis
- Migration: Rebuild each beamcrafting multi with shielded accelerator casings in place of the collider casings and the new grate casing positions.
- #6095 Changed recipe tier and reduced EU/t in ArtificialMicaLine recipe registration. - @LazyFlesh
- #6020 MaskList.CPU use count changed from 10 to 100. - @UltraProdigy
- Fixed: CPU mask use count typo (10 instead of 100)
- Closes GTNH#23612
- #5973 BlockFrameBox.getHarvestLevel returns 2 instead of 3. - @noah-cope-dev
- Fixed: wooden frame boxes requiring steel tools to mine
- Closes GTNH#20105
- #5930 Redesigns MTESteamMixer structure, adds new ItemList entries for new casings, updates GTValues with new casing definitions, and provides backward compatibility with the old structure. - @JL2210
- Added: New Steam Blender structure design, New Steam Blender casing definitions in GTValues
- #5925 Modifies the MV Field Generator recipe in ComponentAssemblyLineLoader. - @UltraProdigy
- #5921 Modifies ArtificialMicaLine recipe parameters to correct the cost/benefit ratio. - @Pxx500
- Fixed: Mica Line exploitation loop costing less than water electrolysis
- #5889 Adjusted upgrade unlock order and pricing in ForgeOfGodsUpgrade and Godforge recipe loader; modified GodforgeMath tier calculations. - @GDCloudstrike
- #5825 Moved turbine shaft recipe from crafting table to Assembler machine recipe in RecipesMachinesCustom.java, maintaining material costs but requiring appropriate tier machinery. - @UltraProdigy
- Added: Assembler recipe for turbine shaft
- Removed: Workbench crafting recipe for turbine shaft
- #5807 RecipeLoader recipe definitions modified to adjust Neutron Accelerator tier requirements and remove cable components from recipes. - @UltraProdigy
- Removed: Cable inputs from Neutron Accelerator recipes
- Fixed: Recipe conflicts in Neutron Accelerator processing
- #5730 Updated AssemblyLine recipe loader to modify PCB factory module ingredient costs and remove duplicate coolant requirements. - @chrombread
- #5724 Updated NetheriteRecipes loader to decrease honeycomb input from 32 to 8 per recipe. - @chrombread
- #5707 Added shifted superfluid to the cutting machine recipe map and integrated it into block, log, plank, plate, stick, and stone processing chains via recipe loaders. - @chrombread
- Added: Shifted superfluid support for cutting machine recipes
- Closes GTNH#22805
- #5702 Updated cooling efficiency multipliers in MTEMegaVacuumFreezer to increase output by 100x. - @chrombread
- #5690 Updated chemical reactor recipe configuration in ChemicalRecipes to use circuit 6 for dinitrogen tetroxide synthesis. - @loenaaaa
- #5684 Updated glass tier restriction in MTEMassSolidifier from UMV to UEV. - @chrombread
- #5668 Removed the recipe from ForgeHammerRecipes and added it to centrifugeNonCellRecipes with CentrifugeRecipeKey in CentrifugeRecipes. MTEChamberCentrifuge gets an euMultiplier field applied in heavy mode. The PR is marked draft pending a dev-votes poll. - @chrombread
- Added: Space-Time separation recipe in Spinmatron heavy mode
- Removed: Space-Time separation recipe in the Forge Hammer
- Migration: The Forge Hammer recipe that splits molten SpaceTime into Space and Time is gone. It moved to the Spinmatron (new in 2.9.0) in Heavy mode, which needs Biocatalyzed Propulsion Fluid and 16x the EU of the other modes. Any Forge Hammer line feeding SpaceTime stalls until you build one.
- #5647 Removed shaped crafting table recipes for IV+ GT++ materials by updating RecipeGenShapedCrafting and GregtechConduits. - @GDCloudstrike
- Removed: Crafting table recipes for IV+ GT++ material parts
- #5643 Removed Hydroxide from MaterialMisc, updated dependent recipes in nuclear materials and LV/MV Prospector Scanner to use Salt Water instead. - @UltraProdigy
- Removed: Hydroxide material
- #5636 Updated Thorium-232 Tetrafluoride recipe to 4x scale without small dusts; changed Chemical Plant recipe duration from 300s to 100s and adjusted byproduct yields. - @GirixK
- #5630 Added Soul Infused Medium material definition to Materials enum and MaterialsIDMap. - @EnderProyects
- Added: Soul Infused Medium material
- #5604 Updated addDefaultPolymerizationRecipes to output 144-unit multiples and substitute air/oxygen cells for basic material cells in fluid inputs. - @GirixK
- #5538 Updated CoverFluidRegulator and MetaGeneratedItem01 conveyor speed scaling and tooltips from 2x to 4x multiplier for LuV+, increased MAX conveyor capacity. - @chrombread
- #5537 Added 'size per stack' parameter to CoverConveyor using Pineapple's item transfer system, adjusted LV conveyor configuration, updated tooltips to reflect new behavior. - @chrombread
- Added: size per stack conveyor parameter
- #5510 Reverted casing output counts in MTERecipeLoader and AssemblerRecipes to standardize casing crafting costs. - @FourIsTheNumber
- Fixed: Inconsistent casing cost ratios
- #5437 Updated WiremillRecipes spacetime wire recipe duration to improve throughput parity with other wire production methods. - @chrombread
- Closes GTNH#22663
- #5371 Increased inventory size in MTEBusInputFocus and updated its UI implementation in MTEBusInputFocusGui to accommodate the larger slot count. - @chrombread
- Added: 256-slot inventory support for catalyst housing
- #5364 Refactored nefarious fuel registration from recipe-based to universal materials builder; removed nefarious oil from SemiFluidFuelHandler due to 512k fuel value exceeding 576k cell capacity. - @Miklebe
- Added: Nefarious fuels registration in materials builder
- Removed: Nefarious oil semifluid engine support
- #5314 Added eta meson to the RecipeLoaderChemicalSkips recipe loader for QFT Synchrotron catalyst support. - @mamiemru
- Added: Eta meson QFT Synchrotron catalyst
- #5308 NetheriteRecipes precipitation recipe input changed from MaterialMisc.STRONTIUM_HYDROXIDE.getDust(48) to getDust(42), reverting PR #4887. - @Nockyx
- #5305 Reduced recipe chain length in NaniteChain loader by simplifying intermediate steps. - @GDCloudstrike
- #5269 Added six new fluid-to-EU recipes in AdditionalRecipes.java loader (hexafluorosilic: 350 EU/L, industrial hydrofluoric: 320, phthalic: 270, naphthenic: 250, industrial hydrochloric: 224, propionic: 150). - @loenaaaa
- Added: six acid recipes
- #5246 RecipeLoaderMilling flotation cell recipe: NetherrackFlotationFroth fluid output changed from 1_000 to 8_000. - @Glease
- #5227 Adjusted ChemicalRecipes methane recipe yields. - @Pxx500
- #5220 Changed CompressorRecipes recipe mapping to restore industrial diamond recipe to multiblock-only implosion compressor. - @chochem
- Fixed: industrial diamond restricted to intended multiblock machine
- #5171 Adjusted LargeBoilerFuelBackend burn times and efficiency, added mEfficiencyDecrease variable to MTELargeBoilerBase for gradual efficiency decay. New MUI2 GUI widget MTELargeBoilerGui added to display steam production metrics. - @Miklebe
- Added: Efficiency loss mechanic (mEfficiencyDecrease), Steam production GUI display
- #5168 Removed parallel reduction penalty in MTEChamberCentrifuge speed mode logic and cleaned up 'mMode' notation. - @chrombread
- Removed: Parallel reduction in speed mode, mMode notation
- #5167 Removed assembler recipe and increased extruder recipe efficiency in BioRecipes.java for wood pellet production. - @chochem
- Removed: Wood pellet assembler recipe
- Fixed: Inconsistent wood pellet recipe availability
- Closes GTNH#22123
- #5139 Modified FusionReactorRecipes and HTGRLoader with new sunnarium breeding recipe, alternative paths for actinides, and parametrized circuit configuration in mixer. - @Pxx500
- Added: Sunnarium breeding recipe to HTGR
- #5137 ComponentAssemblyLineLoader adds getIntegratedCircuit(...) to the IV recipes using the existing per-component circuit numbers, and adds FIELD_GENERATOR_CIRCUIT = 8 for Field Generator recipes. - @UltraProdigy
- Added: Circuit 8 for Field Generator in the Component Assembly Line, Integrated circuit requirement on IV component recipes
- Fixed: Field Generator recipes conflicting with other Component Assembly Line recipes
- Migration: In the Component Assembly Line, IV component setups now need the same programmed circuit as LuV and above: 1 Motor, 2 Piston, 3 Pump, 4 Robot Arm, 5 Conveyor, 6 Emitter, 7 Sensor. Field Generators of every tier now need circuit 8.
- #5038 Modified RecipeLoader to normalize molten metal beamline recipe outputs to ingot-equivalent quantities. - @UltraProdigy
- #5014 tectech Assembler recipe for eM_dynamoMulti64_UHV changes eut from TierEU.RECIPE_UHV to TierEU.RECIPE_UV. - @UltraProdigy
- Fixed: 64A UHV Dynamo Hatch recipe using the wrong voltage tier
- #5000 Removes GTUtility.getIntegratedCircuit(17) from the itemInputs of the mega machine assembler recipes in bartworks Assembler.java. The 5 changed lines shown cover the first five recipes. - @Vlamonster
- Removed: circuit 17 input from mega machine recipes
- #4949 MTEMegaAlloyBlastSmelter glass requirement increased to UMV tier. validateRecipe now includes check for UMV+ glass compatibility in all recipes. - @chrombread
- Added: UMV+ glass validation in MABS recipe checks
- #4924 EyeOfHarmonyRecipe output weights recalibrated to include full ore byproduct chains. WerkstoffLoader material processing adjusted to generate appropriate output distributions. - @SST-03
- Fixed: Eye of Harmony not outputting all ore byproducts
- Closes GTNH#21443
- #4923 MTEHatchInputBus and MTEHatchOutputBus inventory sizes increased for tiers EV+. Super Bus recipes disabled with deprecation markers. ME Crafting bus also adjusted. GUI remains within diamond chest size limits. - @evgengoldwar
- Added: Increased bus inventory capacity for HV+ tiers
- Removed: Super Bus crafting recipes
Bug Fixes
- #8317 In BECRecipes and ResearchStationAssemblyLine, replaced ItemRefer.Compact_Fusion_MK4 with ItemRefer.Compact_Fusion_Coil_T3 in the BEC casing recipe inputs. - @chrombread
- Fixed: Condensate Guidance Coil recipe requiring Compact Fusion MK4 instead of Compact Fusion Coil T3
- #8313 Escaped the percent sign as %% in the GT5U.gui.text.nac.info.line_specifics.wetware.calibration.effect3 entry in en_US.lang. - @chrombread
- Fixed: wetware calibration Tier 3 line format error
- #8304 TTMultiblockBase.powerInput now builds a combined list of mEnergyHatches and eEnergyMulti and starts draining at a rotating index (powerInputRotation) each tick instead of iterating the two lists in fixed order. - @Xela10001
- Fixed: Active Transformer voiding energy when filling a big laser hatch from several smaller partially filled laser hatches
- Closes GTNH#27102
- #8302 In MTENanochipAssemblyModuleBase.survivalConstruct, return early when the first survivalBuildPiece result is non-negative instead of adding both results. Removed the unused STRUCTURE_PIECE_MAIN field from the module classes. - @chrombread
- Fixed: wrong survival build result for NAC modules, Projector not registering after NAC modules finished
- Closes GTNH#26912
- #8300 Deleted the manual UEV Lanthanum Hexaboride recipe (4 dust to 3 gem plus 12 tiny dark ash dust, 1 tick) in ElectricImplosionCompressorRecipes. - @DreamYao520
- Removed: Lanthanum Hexaboride Electric Implosion Compressor recipe without circuit
- Fixed: duplicated Lanthanum Hexaboride recipe
- Closes GTNH#27099
- #8297 Reworked MTESplitterModuleGui to fix the client/server desync of the dynamic rule list after deletion, using ModularUI item handler classes. Also replaced $ lambda parameters with _. - @serenibyss
- Fixed: splitter UI showing the wrong rule deleted
- #8295 Added NEIFluidRenderer, an IFluidRenderer registered through the NEI API for condensate fluids and any Materials fluid with a custom renderer. Simplified UniversiumRenderer.magicRenderMethod by dropping the UEV emitter hack stack. Bumped NotEnoughItems to 2.8.155-GTNH. - @slprime
- Added: NEI renderer for GT custom-rendered fluids
- Fixed: custom fluid renderers not shown in NEI, universium error texture in NEI with caching
- #8288 MTEIsaMill now places the 9-part Grinder overlay through RenderOverlay tickets. The unused world-aware getIcon in GregtechMetaCasingBlocks5 and the TexturesGrinderMultiblock class are removed. - @Eldrinn-Elantey
- Removed: TexturesGrinderMultiblock
- Fixed: IsaMill front texture missing on casings around the controller
- #8286 GTStructureChannels enum constants now read their names from lang keys (channels.gregtech.subchannel.<constant>) instead of English literals. en_US and ru_RU lang files gain the new keys, plus descriptions for five channels. - @Eldrinn-Elantey
- Added: lang keys for structure subchannel names, ru_RU subchannel translations
- Fixed: structure subchannel names always shown in English
- #8285 MultiblockTooltipBuilder label strings changed from static final fields translated at class load to instance fields translated on each builder construction. - @Eldrinn-Elantey
- Fixed: multiblock tooltip labels ignoring in-game language changes
- #8282 MTENanochipAssemblyModuleBase gets a runningCooldown set to 20 in setAvailableEUt when the value increases. checkProcessing returns NO_RECIPE while it is above 0, and onPostTick decrements it. - @serenibyss
- Fixed: NAC module power failure after available EU/t increases
- #8281 MTEMultiBlockBase.loadNBTData only reads the batch mode key when it is present, instead of reading a missing key as false. - @Eldrinn-Elantey
- Fixed: batch mode default lost when placing multiblocks with item NBT
- #8280 setItemNBT now writes the "history" tag, and loadNBTData reads it with TAG_INT_ARRAY. addToHistory, getTotalCircuit and CircuitBatch.add ignore CircuitCalibration.NONE. The processed optical circuit components now use CircuitCalibration.OPTICAL with values 0.125, 0.25, 0.5 and 1.0. - @serenibyss
- Fixed: calibration history not saving when the controller is broken, calibration out of sync with NONE calibration matrix outputs, missing calibration values on unorganized optical circuits
- Closes GTNH#26937
- #8276 GTUtility.getFluidFromDisplayStack no longer returns null when the display stack has no tag compound. It reads the amount from NBT when present and otherwise uses 0. - @slprime
- Fixed: NEI FluidStack.isFluidEqual nullpointer crash
- Closes GTNH#27008
- #8274 MTENanochipAssemblyComplex now keeps an internal EU buffer of 5 seconds of max input EU, capped at Long.MAX_VALUE, filled each tick from the hatch. Module power routing draws from this buffer. - @serenibyss
- Fixed: NAC miscalculated OC/parallel on non-laser energy hatches, Matrix not receiving expected EU/t
- Closes GTNH#27071
- #8271 MTENanochipAssemblyModuleBase input handling was rewritten and the inputFakeItems and currentParallel fields removed. findRecipe now takes List<ItemStack>. getDefaultInputSeparationMode is added and overridden to false in MTEAssemblyMatrixModule and MTEEncasementWrapperModule. CCInputConsumer was updated. - @serenibyss
- Added: input separation toggle on NAC modules
- Fixed: same item in differently colored VCI hatches merging into one VCO
- #8267 CCNEIRepresentation.init now skips circuit components whose realComponent supplier or its result is null. In CircuitComponent, the BoardPico, BoardQuantum, BoardPlanck and UnattunedCircuitry entries pass null instead of a supplier returning null. - @chrombread
- Fixed: null error in NAC circuit component NEI representation, log spam from the NEI representation
- #8266 Appended a period to one string each in MTEPurificationUnitBaryonicPerfection and MTEPurificationUnitPlasmaHeater tooltips. - @GhostCoder6969
- Fixed: missing periods in Baryonic Perfection and Plasma Heater tooltips
- #8263 Updates miscutils ru_RU.lang to match the ParaTranz export: adds GT_Tooltip_HazmatWarning, replaces the old combined radioactive line, restores %s in GT_Tooltip and adds the Toxic line. - @Eldrinn-Elantey
- Added: Russian GT_Tooltip_HazmatWarning, Russian Toxic tooltip line
- Fixed: English hazmat line for Russian players, missing %s author placeholder in Russian GT_Tooltip
- #8258 MTERockBreaker.Builder.recipeDescription takes a lang key, which the Display_ITS_FREE stack stores in NBT (displayNameKey). MetaGeneratedItem02 translates it on display. GT++ GTGenericItem drops its GTLanguageManager calls and the name and tooltip constructor arguments. The two old gt.metaitem.02.32765 lines are removed from en_US.lang. - @Eldrinn-Elantey
- Added: displayNameKey NBT tag on Display_ITS_FREE
- Removed: GTGenericItem GTLanguageManager registration
- Fixed: hash-named Rock Breaker lang keys on non-English clients
- #8256 ItemMachines.onUpdate returns early when the damage is out of bounds. ItemMachines.getMetaTileEntity now uses >= against METATILEENTITIES.length. GTClient.shouldHeldItemForceFullBlockBB calls ItemMachines.getMetaTileEntity instead of indexing the array. - @Eldrinn-Elantey
- Fixed: crash when holding a wildcard machine item
- #8250 Casts NBTTagList.tagList through raw List where the buildscript update added generics to tagList and tagMap, drops the now-redundant casts, and adds GTUtility.getStringTagList. MTEYOTTAHatch overrides getReshuffleAccess to resolve the conflict between two AE2 interfaces. GTUtility.loadItemList is removed. - @Nikolay-Sitnikov
- Added: GTUtility.getStringTagList
- Removed: GTUtility.loadItemList
- Fixed: generics compile errors from the buildscript update, MTEYOTTAHatch interface conflict with AE2
- #8248 The ItemCasingsSpacetime, ItemCasingsStabilisation and ItemCasingsTimeAcceleration classes override getItemStackDisplayName. They build the name from one key per family plus CommonValues.getLocalizedEohTierFancyNames. The 27 GTLanguageManager registrations in the casing block constructors are removed, and the tectech en_US and ru_RU lang files are updated. - @Eldrinn-Elantey
- Added: one name key per field generator family
- Removed: GTLanguageManager name registrations for field generator casings
- Fixed: Advanced tier name left in English
- #8245 DroneConnection now syncs the ShutDownReason by registry id plus NBT, and drills store a translation key that is localized on display. ReasonOutOfStuff.readFromNBT now reads the amount instead of writing it back into the tag. - @Eldrinn-Elantey
- Fixed: shutdown reasons shown in server language, out-of-stuff amount lost on chunk reload
- #8244 MTEExtremeEntityCrusher.onRitualPerform uses world.getTotalWorldTime() instead of getWorldTime() for the timeDelay modulo check. - @s-yh-china
- Fixed: EEC Well of Suffering mode with doDaylightCycle false
- Closes GTNH#21947
- #8235 Added an ingotHot case in OreDictRegistrationHandler.handleSpecialRegistration that adds the stack to the prefix collection when the material is BrickNether, without enabling unification. - @Ressed
- Fixed: ingotHotBrickNether missing from the ingotHot GT filter
- Closes GTNH#26985
- #8230 MTEHatchOutputME and MTEHatchOutputBusME are annotated with SkipGenerateDescription, pass null descriptions to super, and override getDescription with GTSplit.splitLocalized. The en_US.lang entries were updated. - @DreamYao520
- Fixed: ME Output Hatch showing 0 L capacity, incorrect controls in ME output hatch and bus tooltips
- Closes GTNH#27024
- #8228 Reworked the transmit logic in MTEMicrowaveEnergyTransmitter.onPostTick and removed the IEnergyConnected import. The en_US and ru_RU tooltip strings were changed. The diff is cut off, so the exact logic is not visible. - @fehling135
- Fixed: Microwave Energy Transmitter crossing dimensions without Nitrogen Plasma
- #8226 BaseTileEntity's MUI1 ghost circuit slot now inverts direction in onMouseScroll based on GTMod.proxy.invertCircuitScrollDirection, and GhostCircuitSlotWidget (MUI2) applies the same inversion. Config comments and the GTProxy javadoc were reworded. - @Ressed
- Fixed: invertCircuitScrollDirection doing nothing, client circuit scroll setting overwritten by server settings
- Closes GTNH#25173, GTNH#27021
- #8222 Edited the GT5U.recipes.not_consume_parallel string in en_US.lang. - @MLGfruitshoot
- Fixed: grammar in the not-consumed-in-parallel recipe tooltip
- #8218 ScannerHelper.addChunkInfoComp now uses ChatComponentFluidName with the FluidStack, so the client resolves the localized name. - @Eldrinn-Elantey
- Fixed: Chunk Info showing raw fluid key instead of fluid name
- #8213 StructureErrorRegistry.EXOTIC_HATCH_INSUFFICIENT_COIL_TIER now uses the lang key ending in coil_tier instead of coil_level. - @PierceC7
- Fixed: wrong lang key for exotic hatch insufficient coil tier error
- #8211 Corrected the spelling in gt.item.calabi_yau_manifold.tooltip in en_US.lang. - @chrombread
- Fixed: typo in Calabi-Yau Manifold tooltip
- #8210 MTEBasicMachine.getWailaBody now checks isElectric() before adding the EU render bar and the EU/t and amperage lines. - @Ranzuu
- Fixed: Stored EU bar shown in WAILA for non-electric basic machines
- #8207 CircuitBatch(int[] history) never set total when loading from NBT. It now sums the nine circuit-type counts into total. - @MarloGr
- Fixed: Nanochip Assembly Complex calibration resetting on game reload
- Closes GTNH#26937
- #8202 Changed fibre to fiber in the four tectech hatch description lang strings. Added the gt.alias.fibre NEI alias through API.setAliases in MachineLoader for DATApipe and the four data hatches. - @PierceC7
- Added: NEI alias "Fibre" for Optical Fiber Cable and optical hatches
- Fixed: Fibre/Fiber spelling mismatch between cable and hatches
- Closes GTNH#26895
- #8200 MTENanochipAssemblyComplex overrides doActivitySound (client only) to start a GTSoundLoop with a CircularSound position at the controller, using a SOUND_RADIUS of 32. - @GreatBrandon
- Fixed: Nanochip Assembly Complex sound range too small
- Closes GTNH#26939
- #8187 Renamed the ItemList, IDMetaItem02 and MetaGeneratedItem02 entries and the lang keys for the ice cream. The meta ID stays 674, so existing stacks are unaffected. - @Ranzuu
- Fixed: Misspelled Naquadah in the Nut Swirl Ice Cream name
- #8186 Reverted the Werkstoff display names in GGMaterial from 'Mk-N' to 'MkN' for the Naquadah fuel tiers and their depleted variants, and updated the fluid names in the antimatter-forge tooltip markdown. - @DylanTaylor1
- Fixed: Naquadah fuel disappearing after the hyphenated rename
- #8185 MTEMegaIndustrialApiary swarmer branch replaced two sequential depleteInput calls (64 then 36) with a single GTRecipe of 100 Royal Jelly checked through isRecipeInputEqual, so consumption is all or nothing. - @Ressed
- Fixed: Mega Industrial Apiary swarmer mode voiding Royal Jelly when given fewer than 100
- Closes GTNH#26881
- #8180 MTEExtremeIndustrialGreenhouseGui replaces the virtual seed buffer with a custom container whose transferItem override calls addCrop and returns the leftover stack. - @Ressed
- Fixed: Items deleted by shift-click in the Extreme Industrial Greenhouse GUI
- Closes GTNH#26237
- #8179 Changed fluid.sludge in en_US.lang and ru_RU.lang from 'sludge' to 'Sludge'. - @MLGfruitshoot
- Fixed: Lowercase sludge fluid name
- #8178 DarkWorldContentLoader creates the sludge BlockBaseFluid with Material.water instead of the BlockDarkWorldSludgeFluid material. - @MLGfruitshoot
- Fixed: Could not swim in Everglades sludge
- #8177 In MTESplitterModuleGui the ruleIdx and slotIdx MutableInts were per-createItemFilter locals; they are now shared fields, and createRenamePopup no longer takes them as parameters. - @serenibyss
- Fixed: Splitter rule rename popup renamed the wrong item
- #8170 ToolVajra calls appeng PartPlacement.tryPlace directly for IPartItem offhand items instead of onItemUse, which shifts to the adjacent block when no part host exists. - @DreamYao520
- Fixed: Vajra hotswap placed AE2 cables adjacent to the intended position
- Closes GTNH#26926
- #8167 MTEHatchVacuumConveyor stores a reference to its MTENanochipAssemblyModuleBase, set in addConveyorToMachineList for input and output hatches; onColorChangeServer calls setStructureUpdateTime(1) on it. - @chrombread
- Fixed: recolouring a Vacuum Conveyor hatch did not trigger a structure check
- Closes GTNH#26925
- #8164 ToolVajra offhand replacement now accepts AE2 IPartItem as well as ItemBlock, and calls onItemUse on the generic Item. - @DreamYao520
- Fixed: Vajra hotswap did not place AE2 cables from the offhand
- Closes GTNH#26919
- #8163 RenderDecayChest now also implements ISimpleBlockRenderingHandler and is registered in ClientProxy to draw the inventory model; BlockDecayablesChest no longer overrides getRenderBlockPass (was 1). - @ABKQPO
- Added: Decayables Chest item model
- Fixed: Decayables Chest looked wrong as an item and in the world
- #8162 Changed the addOutputAny hint string in MTEElectricBlastFurnace.createTooltip. - @Nana-Sakura
- Fixed: misleading EBF output hatch tooltip
- Closes GTNH#26884
- #8161 Removed setBlastFurnaceRequired(true) from the Eternity material in MaterialsInit.loadEternity, so the standard smelting and fluid extraction recipes generate. - @UltraProdigy
- Added: Eternity Dust furnace recipe, Eternity Dust fluid extractor recipe
- Fixed: Eternity Dust wrongly marked as blast furnace only
- #8160 MapGenRuins.setRandomBlockWAirChance now compares nextInt(100) >= airchance instead of > airchance. - @Chitak985
- Fixed: ruins air chance off by one
- #8159 In BlockIchorJar and BlockThaumiumReinforcedJar breakBlockWarpy, yf and zf were computed from x. They now use y and z. - @Chitak985
- Fixed: Ichor Jar and Thaumium Jar spawning Flux at wrong coordinates
- #8158 In WorldGeneratorSpace, affectsChunk uses && instead of ||, the loot chest chance check uses <= against nextInt(100), the loot item count no longer subtracts 1 from NumLootItems, and generatesAsteroid uses < instead of <=. - @Chitak985
- Fixed: loot chest item count off by one, loot chest chance off by one, asteroid chance of 0 still spawning, asteroid chunk overlap check
- #8156 MTENanochipAssemblyModuleBaseGui.openInfoPanel now has the same calibration text entries as the controller GUI, including two extra body lines and per-calibration effect sections. - @chrombread
- Fixed: NAC module info panel not showing calibration effects
- Closes GTNH#26911
- #8153 EyeOfHarmonyRecipe.validDustGenerator no longer runs the dust through NaquadahRecipeOutputs.convert, so the plain dust is used. - @Nana-Sakura
- Fixed: Eye of Harmony outputting Naquadah, Naquadria and Enriched Naquadah oxides instead of pure dusts
- Closes GTNH#26906
- #8152 MTEHatchInputBusME overrides getItemsForHoloGlasses to return the already-polled Slot.extracted stacks. - @Worive
- Fixed: Stocking Input Bus not showing contents in HoloInventory while idle
- Closes GTNH#25203
- #8151 GasSiphonRecipeHandler.drawExtras uses the new key ig.nei.siphon.baserate instead of ig.nei.elevatorpump.amount. Added the key to en_US.lang. - @MLGfruitshoot
- Added: Rate label for the Planetary Gas Siphon NEI page
- #8148 RendererMessage.ClientHandler.onMessage returns early when TESLA_VISUAL_EFFECT is off. MTETeslaTower and MTETeslaCoil check the config before sending the packet and always clear sparkList. The sparkCount check changed from == 0 to <= 0. - @RealSilverMoon
- Fixed: Tesla visual effect client config toggle having no effect, Tesla Coil ignoring the visual effect config
- Closes GTNH#26903
- #8145 The FluidStackTank setter in MTEBasicTank now calls markDirty() after assigning mFluid, so a tank level change registers as a pending update. - @Nana-Sakura
- Fixed: EBF not starting until the Input Hatch UI was closed after fluid was placed directly in the fluid slot
- Closes GTNH#26705
- #8142 MTELargeEssentiaSmeltery.createTooltip adds addSubChannel(GTStructureChannels.LES_ESSENTIA_CELL). The channel's display name in GTStructureChannels is shortened. - @DylanTaylor1
- Fixed: Large Essentia Smeltery tooltip missing the essentia_cell structure channel
- #8139 MTELINAC, MTESourceChamber and MTETargetChamber set lEUt instead of mEUt, since MTEExtendedPowerMultiBlockBase handles EU drain using lEUt. - @Nana-Sakura
- Fixed: Beamline multiblocks not consuming power
- Closes GTNH#26886
- #8136 MTEExoFoundry.setProcessingLogicPower now calls setMaxParallelSupplier(this::getTrueParallel) instead of setting a fixed max parallel from parallelScaleAdj and voltage tier. - @MLGfruitshoot
- Fixed: Exo-Foundry ignoring the user-configured max parallel
- Closes GTNH#26890
- #8135 MTEMultiBlockBase.clearHatches now also clears mExoticDynamoHatches, so the list no longer accumulates duplicates across structure checks. - @Armisael5
- Fixed: Energy voided by Multiamp Dynamo Hatches after repeated structure checks
- #8133 DroneConnection no longer stores the server-localized machine name as the default custom name; it keeps an empty name and localizes via the lang key on the client. MTEHatchDroneDownLink sends the lang key with a localize flag in WAILA NBT for unnamed connections. - @Eldrinn-Elantey
- Fixed: Drone Downlink Module WAILA showing machine names in English, Drone Centre list showing machine names in English
- #8132 ProcessingPlate.registerItemCasing skips the Shape_Mold_Casing solidifier recipe when the material is AnnealedCopper or CastIron. - @Auynonymous
- Removed: Fluid Solidifier item casing recipes for Molten Annealed Copper and Molten Cast Iron
- Fixed: Annealed Copper and Cast Iron item casing solidifier recipes generated by autogen
- #8131 MTESteamCompressor adds InputHatch to the atLeast hatch list, updates mInputHatches textures in updateHatchTexture, and adds addInputHatch to the tooltip. - @Nana-Sakura
- Added: Input Hatch support on the Steam Compressor multiblock
- Fixed: Steam Compressor multiblock not accepting fluid input
- #8128 RecipesMachinesTiered.fakeMachineCasingCovers now uses circuit(i + 1) and duration((i + 1) * 5 * SECONDS). The old ULV recipe had duration 0 and circuit 0. - @Nana-Sakura
- Fixed: ULV Machine Casing cover recipe showing NaN seconds in NEI, ULV Machine Casing cover recipe with 0 duration and circuit 0
- Migration: Change the programmed circuit in any automated Machine Casing cover cutting setup to the tier number plus one, and expect each recipe to take 5 seconds longer.
- Closes GTNH#26869
- #8125 MTEMegaAlloyBlastSmelter.checkMachine adds StructureErrors.glassTierNotEnough(VoltageIndex.UV) in place of StructureErrorRegistry.ENERGY_TIER_EXCEED_GLASS. - @AnsonYeung
- Fixed: wrong Mega Alloy Blast Smelter glass tier error message
- #8124 BehaviourSprayColorInfinite.getNameWithColor picks a .locked or .unlocked lang key and no longer passes bracket chars as %c arguments. en_US.lang and ru_RU.lang have four new keys. - @shironakoushi
- Fixed: hardcoded brackets in Infinite Spray Can name
- #8123 Removed the english name parameter from ItemVolumetricFlask, VolumetricFlaskHelper.generateNewFlask and their callers. Added gt.Volumetric_Flask_8k, _32k and _Infinite name keys to en_US.lang. - @shironakoushi
- Added: lang keys for Large Volumetric Flask, Gigantic Volumetric Flask and Klein Bottle
- Fixed: missing lang keys for three flasks
- #8120 FoundryData.setModule takes a forceUpdate flag that skips the unchanged-module early return. MTEExoFoundryGui sync setters call it with true, and MTEExoFoundry.setModule passes false. - @serenibyss
- Fixed: Exo Foundry stats panel showing wrong stats for installed modules
- #8118 MTEHatchDegasifierControl, MTEHatchPHSensor and MTEHeatSensor now call setOutputRedstoneSignal instead of setStrongOutputRedstoneSignal. The first two only set the signal on the front facing side and write 0 on the others. - @MLGfruitshoot
- Fixed: Degasser Control Hatch outputting a strong redstone signal on all sides, pH Sensor Hatch outputting a strong redstone signal on all sides, Heat Sensor Hatch always outputting a strong signal
- Closes GTNH#24381
- #8116 BlockMachines adds isHatchAt(), which checks whether the tile is a BaseMetaTileEntity holding an MTEHatch. getFireSpreadSpeed, isFireSource and isFlammable return false/0 for hatches. - @MLGfruitshoot
- Fixed: Giant Output Hatch being flammable, GT hatches burning
- Closes GTNH#19614
- #8099 MTETargetChamber replaces the ofBlockAdder glass element with GTStructureUtility's glass element, stores a glassTier field and checks it against MIN_GLASS_TIER = 6. The BartWorks ItemRegistry import is removed. - @Nana-Sakura
- Fixed: Target Chamber expecting EV glass when built with the hologram projector, Target Chamber not supporting glass channel
- Closes GTNH#26473
- #8097 Renames the Werkstoff constant LanthaniumChloride to LanthanumChloride and its display name string in WerkstoffMaterialPool, and updates the references in gtnhlanth RecipeLoader. The material ID is unchanged. - @Nana-Sakura
- Fixed: Lanthanium Chloride typo
- Closes GTNH#26854
- #8094 BeamLinePacket.contentFromNBT() now reads focus with nbt.getFloat instead of nbt.getInteger, matching contentToNBT(). - @MarloGr
- Fixed: beamline focus read as int instead of float from NBT
- #8093 MTEIntegratedOreFactory: drops Maintenance from the 'D' hatch adder's atLeast list, removes the checkHasMaintenanceHatch call in checkMachine(), and removes addMaintenanceHatch from the tooltip. - @Angry3vilbot
- Removed: maintenance hatch requirement from the Integrated Ore Factory
- Fixed: Integrated Ore Factory does not start with maintenance issues
- Closes GTNH#26845
- #8089 Reverts #8028 and #8077: removes the node map clear and GenerateNodeMapPower rebuild from BaseMetaPipeEntity.updateConnections(). Also deletes the BaseMetaPipeEntityTest unit test, the EBF wire power-loss game test and the ebf_power Horizon-QA structure files. - @Worive
- Removed: cable power-network rebuild on connection change, BaseMetaPipeEntity unit tests, EBF wire connection game test and ebf_power fixture
- Fixed: modifying any cable causes all machines in the energy network to powerfail
- Closes GTNH#26825
- #8088 Adds achievement.gt.blockmachines.multimachine.mega_oil_cracker and its .desc key to the gregtech en_US.lang. - @Ranzuu
- Fixed: Mega Oil Cracker achievement unlocalized
- Closes GTNH#26838
- #8077 BaseMetaPipeEntity.updateConnections now constructs a GenerateNodeMapPower after clearing the node map when the meta tile entity is an MTECable. Adds a unit test and an EBF game test with a new ebf_power structure. - @Worive
- Fixed: Modifying a cable causing all machines in the energy network to power fail
- Closes GTNH#26825
- #8076 MTEQuantumForceTransformer.validateRecipe now reads findProgrammedCircuitNumber() once and sets doNeptunium only when the circuit is >= 0 and below the recipe's item plus fluid output count. - @MLGfruitshoot
- Fixed: Neptunium plasma consumed in the Quantum Force Transformer with an invalid circuit
- #8065 Changed the kubatech en_US.lang infodata format params for the EEC and EIG from %f and %d to %s, because the info data encode/decode path only handles string params. The cause was a leftover from #7112. - @Nana-Sakura
- Fixed: Extreme Entity Crusher scanner output, Extreme Industrial Greenhouse scanner output
- Closes GTNH#26815
- #8064 MTESuperconductorSplitterModule overrides validateRecipe to check that the per-second coolant amount can be drained (simulated) and fails with a SimpleCheckRecipeResult otherwise. - @chrombread
- Fixed: Superconductor Splitter module starting a recipe without Super Coolant
- #8058 In MTEExoFoundryGui, the four Module calculator sync callbacks now check usingPreviewSync.isValid() before calling setBoolValue. - @serenibyss
- Fixed: Exo Foundry calculator panel crash
- Closes GTNH#25612
- #8052 CoverAdvancedRedstoneTransmitterBase.unregisterSignal called removeSignalAt with the current uuid and frequency fields instead of its oldUuid and oldFrequency parameters. It now passes the parameters. - @mak8427
- Fixed: Advanced wireless transmitter keeping its old frequency registered after a frequency change
- Closes GTNH#24720
- #8051 MTEBECStorage.doActivitySound now checks isMuffled before starting the loops, and calls setFadeMe(true) on the pillar, torus and torusFar sound loops instead of stop(). - @Armisael5
- Added: sound fade-out
- Fixed: muffler not silencing the BEC Storage Field
- #8046 In RecipesGregTech.chemplantRecipes, changed .circuit(20) to .circuit(1) for the GeneticMutagen recipe to resolve a circuit conflict. - @MLGfruitshoot
- Fixed: circuit conflict that left a recipe without an LCR version
- #8045 MTELargeTurbineBase now allows rotation: alignment limits only reject flips, getCorrectedAlignment keeps the rotation and clears the flip, and isRotationChangeAllowed returns true. - @Worive
- Fixed: Large Gas Turbine controller could not be rotated
- Closes GTNH#26115
- #8040 In LoaderMetaTileEntities.registerNacHatches the tier argument for the Vacuum Conveyor Input and Output hatches changes from 11 to 9. - @serenibyss
- Fixed: Vacuum Conveyor hatches showing the UIV casing texture instead of UHV
- #8037 The item filter slot widget in MTESplitterModuleGui overrides onMouseScroll to return false so the event reaches the parent list. - @serenibyss
- Fixed: NAC splitter rule list not scrolling over item slots
- #8036 In MTESplitterModule.checkProcessing the item is consumed through conveyor.tryConsume first, and only the consumed amount is passed to addVCOutput. The old removeItemFromInputByColor helper is removed from MTENanochipAssemblyModuleBase. - @serenibyss
- Fixed: NAC splitter item dupe when hatches are null
- Closes Dupes-Exploits-GTNH#365
- #8030 The NEI item input getters in RecipeMaps (Beam Crafter) and LanthanidesRecipeMaps (Target Chamber) build the particle stacks with stack size 0 instead of 1, marking them non-consumable. dependencies.gradle gets a commented-out test dependency line. - @Worive
- Fixed: Beam particles added to AE2 processing patterns
- #8028 BaseMetaPipeEntity.updateConnections calls GenerateNodeMap.clearNodeMap on the existing node before causing a cable update. Adds BaseMetaPipeEntityTest as a regression test. - @Worive
- Fixed: Cable transfers power after being disconnected with a wire cutter
- Closes GTNH#26757
- #8024 DebugWriterHelper appends the missing ")" after the Casings asElement() call in the generated addElement line. - @czqwq
- Fixed: Missing closing bracket in debug writer output
- #8021 In MTEAssemblyMatrixModule, the 'B' element is wrapped in GTStructureChannels.COMPONENT_ASSEMBLYLINE_CASING.use(...). - @chrombread
- Fixed: Assembly Matrix module ignoring the casing structure channel when auto-placing
- #8018 MTEBasicMachineBaseGui.createErrorWidget checked the error state twice in the tooltipBuilder, and the second Optional.get() could find nothing. It now does one lookup and uses ifPresent. - @Ranzuu
- Fixed: crash when hovering the error icon on singleblock machines
- #8015 In CraftingRecipeLoader, the output counts of the two NaquadahAlloy/Osmiridium recipes were swapped: HSSE now gives 30 and HSSG gives 28. Requires NewHorizonsCoreMod#1948. - @mattiasploesch-cpu
- Fixed: Mixed Metal Ingot crafting output discrepancies for Naquadah Alloy recipes
- #8012 OverclockCalculator gets a shared getTiersAbove helper for the tier calculation, and the EU modifier and speed bonus values passed by about 70 multiblocks (Cryogenic Freezer, Fluid Shaper, Industrial Centrifuge and others) change from float to double. The Fluid Shaper's saved speedup value is now stored as a double. - @Nana-Sakura
- Fixed: Overclock calculator giving wrong EU/t from float precision loss
- #8011 MTEHatchElectrodeDetector now stores the last durability and max durability sample and recalculates the redstone state on the server when GUI settings change. The sample and a has-sample flag are saved to NBT, so older saves keep their old state until the multiblock sends a first sample. - @kuba6000
- Fixed: Electrode Detector Hatch redstone output lagging behind GUI setting changes
- #8006 MTEMegaOilCracker structure shape: one layer row changed from ' LE ER ' to ' LE E E E ER ', adding 3 coil positions. Tooltip casing count changed from 77 to 80. - @Auynonymous
- Fixed: Mega Oil Cracker structure missing 3 Heating Coil blocks
- #8000 MixerRecipes: the circuit 16 Enderium mixer recipe inputs changed from 1/1/2/2/2 to 2/2/2/3/3 (Pt/Ag/Sn/Thaumium/EnderPearl) and output from 8 to 12 Enderium dust. Duration and EU/t unchanged. - @KleinGrrmpf
- Fixed: Wrong ratio in the Enderium mixer recipe that skips Enderium Base
- Migration: Check any automated Enderium dust mixer setup, since the inputs and output per craft changed.
- Closes GTNH#26734
- #7993 DebugWriterHelper emitted ofBlocks instead of ofBlock in the generated addElement string for vanilla blocks. - @czqwq
- Fixed: debug writer helper generating ofBlocks instead of ofBlock
- #7992 MTEBECGenerator.checkProcessing_EM merges stored fluids by type, looks up a condensate recipe per fluid and divides the max input EU equally among the candidates, replacing the per-fluid MutableLong EU quota and tryDrainFluid logic. - @fehling135
- Fixed: BEC Entangle Apparatus consuming only 1/duration of the energy hatch's EU
- #7982 Renamed six kekztech LapotronicEnergyUnit2-4 side and top block textures. No code changes. - @Nana-Sakura
- Fixed: Lapotronic Capacitor texture mismatch for LuV-UV
- Closes GTNH#26436
- #7980 CoverPump.transferFluid now passes mTransferRate multiplied by getTickRate() (via GTUtility.mulSafe) to GTUtility.moveFluid. - @Nana-Sakura
- Fixed: Pump cover transfer rate depending on its tick rate
- Closes GTNH#26700
- #7979 These four multiblocks now override getActivitySoundLoop (client-only) instead of getProcessStartSound. Three ogg files (DistilleryLoop, FusionLoop, MTENanochipAssemblyComplex) were replaced with seam-fixed versions. - @Algent
- Fixed: Activity sounds not looping on several multiblocks, Loop seams in three sound files
- #7978 PluginBase.getGuiTexture no longer appends .png to the location string, which already ends in .png. - @Chitak985
- Fixed: NEI ore recipe background requesting a .png.png texture
- Closes GTNH#26023
- #7977 Edited the 15 GT5U.voltage_names.* values in en_US.lang to append Voltage, reverting the name change from PR #7895. No code changed. - @Eldrinn-Elantey
- Fixed: Missing Voltage in machine tier names
- #7976 NACRecipeMapBackend.addRecipeDuration now reads NanochipAssemblyMatrixTierKey from recipe metadata and falls back to the tier from recipe EUt when the key is absent. - @serenibyss
- Fixed: Nanochip Assembly Complex matrix buffer size with lower tier casings
- #7974 GTMod.onPreInitialization saves the FORMAT category default locale before Locale.setDefault(ENGLISH) and restores it afterwards. ColorData now passes Locale.ROOT to its seven String.format calls that are parsed back into floats. - @Eldrinn-Elantey
- Fixed: English number formatting forced on all later-loading mods
- #7972 PacketTeleportPlayer now calls GTUtility.moveEntityToDimensionAtCoords for cross-dimension teleports instead of ServerConfigurationManager.transferPlayerToDimension. Same-dimension teleports still use setPlayerLocation. - @Naos65
- Fixed: Nether portals spawning when teleporting between pocket dimensions with the Redstone Sniffer
- #7971 generateAsteroidButtons in TileEntityModuleMinerGui now null-checks the list from asteroids.get(i) before streaming it. The stream filter result is still discarded, so the tier filter has no effect on the visited set. - @Angry3vilbot
- Fixed: Space Mining Module NullPointerException on an invalid distance
- Closes GTNH#26690
- #7969 TileEntityModuleMinerGui.addAsteroidToFiler now returns when findFirstEmptySlot returns -1, instead of indexing filterModularSlots with -1. - @Angry3vilbot
- Fixed: Space Mining Module crash when adding an asteroid to a full ore filter
- Closes GTNH#26684
- #7965 MTEBasicMachineBronzeGui overrides createTooltipForProgressBar (now protected in MTEBasicMachineBaseGui) to use tier 1, since steel-tier steam machines have mTier 2. - @Nana-Sakura
- Fixed: High pressure steam machines showing MV recipe tier in progress bar tooltip
- Closes GTNH#26669
- #7964 Added markDirty() calls in MTEHatchVacuumConveyor.unifyPacket and MTEHatchVacuumConveyorOutput.extractPacket so the hatch contents are saved after they change. - @chrombread
- Fixed: Nanochip Assembly Complex voiding circuit component contents on server close (attempted)
- #7962 Updated fluid references in the antimatter-forge.md tooltip from 'mk-v'/'mk-vi (depleted)' to 'mkv'/'mkvi (depleted)'. - @Angry3vilbot
- Fixed: SSASS tooltip using old naquadah fuel names
- Closes GTNH#26671
- #7959 WormholeRenderer now wraps the rotation angle modulo 360 before converting to float, which keeps sub-tick precision at large world times. The angle is computed once and reused for the shell and core. - @boubou19
- Fixed: wormhole animation stuttering
- #7958 Fixed the index-to-status-bit mapping in the matrix indicator switch in MTEHatchUncertaintyGui for cases 2 to 5, and corrected the pattern comment for case 2. - @vermz99
- Fixed: Uncertainty Hatch red/green lights marking the wrong section in 4 of 5 puzzle modes
- #7957 Each affected multiblock's getProcessStartSound override is replaced with a client-only getActivitySoundLoop override returning the same SoundResource, under @SideOnly(Side.CLIENT). - @Algent
- Fixed: multiblock sounds playing once instead of looping while active
- Closes GTNH#26618
- #7956 Casings enum entries for the nine Godforge casings pointed to TTCasingsContainer.TimeAccelerationFieldGenerator; they now point to TTCasingsContainer.GodforgeCasings. - @Nana-Sakura
- Fixed: wrong casing names in the Forge of the Gods tooltip
- Closes GTNH#26638
- #7954 MTESpinmatron.validateRecipe computes amountToDrain with Math.max(1, tier) * 10, so a ULV recipe (tier 0) no longer gives an amount of 0 that passes checkFluid. - @chrombread
- Fixed: Spinmatron ignoring fluid on ULV tier recipes
- Closes GTNH#26636
- #7953 MTEMegaDistillationTower.addFluidOutputs now merges consecutive equal fluid stacks that hit Integer.MAX_VALUE before distributing them to layers. The layer hatch count checks are changed to currentLayer >= outputHatchesPerLayer.size(). - @hinyb
- Fixed: Mega Distillation Tower failing on fluid outputs larger than one stack, output hatch layer index bounds check
- Closes GTNH#26368
- #7952 Added T4 structure requirements to MTESpinmatron structure tooltip. - @Angry3vilbot
- Fixed: Missing T4 structure info in Spinmatron tooltip
- Closes GTNH#26628
- #7950 AntimatterRenderBlock now returns render type -1 (TESR only). The other TESR blocks no longer register the TRANSPARENT icon. TileAntimatter stores timeSnapshot as a long (NBT tag type for currentTime changed from float to long), the renderer uses double math for rotation angles, and the shader's u_TimeSnapshot uniform is replaced by a u_TransitionProgress uniform computed on the CPU. - @boubou19
- Removed: references to the transparent icon texture in TESR blocks
- Fixed: SSASS antimatter rendering
- #7947 In PosteaTransformers.registerBartworksLabPartTransformer, replaced a for loop that called removeTag while iterating the tag key set with removeIf on the key set, avoiding the ConcurrentModificationException. - @boubou19
- Fixed: ConcurrentModificationException when transforming BioLab part NBT on load
- #7942 Changed the GT5U.waila.machine.use_steam string in en_US.lang from "%s Steam L/t" to "%s L/s Steam". - @Armisael5
- Fixed: steam singleblock WAILA steam usage text showed the wrong unit
- Closes GTNH#26565
- #7941 gorgeBeam.vert.330.glsl: removed const from the segments variable, since it is initialised from u_SegmentArray.length() and is not a constant expression. - @Algent
- Fixed: Godforge beam shader compile error at launch
- #7938 BlockReinforced registers metas 2, 3 and 10 as machine blocks via GregTechAPI.registerMachineBlock, sets their harvest tool to wrench, level 2 and hardness to iron block hardness, and updates the structure in onBlockAdded and on removal for machine block metas. - @Armisael5
- Fixed: wrong tool and mining speed on some reinforced casings, breaking some reinforced casings not triggering a structure check
- Closes GTNH#26592
- #7933 Corrected block placement in MTENanochipAssemblyComplex structure string on layers 20 and 34. - @Auynonymous
- Fixed: Missing blocks in NAC structure
- #7930 Corrected filtering logic in SplitterRule to treat an empty item filter list as a wildcard (accepting all items) rather than rejecting all items. - @serenibyss
- Fixed: Splitter rule item filter behavior
- #7923 MTEActiveTransformer.onPostPowerPass now feeds transferBuffer / TRANSFER_UPDATE_PERIOD into the 5s, 30s and 1min moving averages and resets the buffer, instead of using the EU from one tick. - @Jesse-njx
- Fixed: Active Transformer throughput display sampling one tick per second, display showing 0 or constant spikes with mixed-tier hatches
- #7920 Corrected null checks in MTELargeHadronColliderGui to allow calculator operations even when no recipe is active. - @ham-corp
- Fixed: LHC calculator giving wrong values without active recipe
- Closes GTNH#26440
- #7919 GTWorldgenerator loadData reworked with a PatternSource provenance, saved by name instead of ordinal, and DEFAULT_PATTERN set to EQUAL_SPACING. Added GTPacketRequestOregenPattern sent from GTClient on first tick, source added to GTPacketSendOregenPattern, new GTMiscCommand subcommand, and tests. - @Algent
- Added: Command to check and set the oregen pattern, Client request for the oregen pattern
- Fixed: Wrong oregen pattern permanently written to GregTech_OregenPattern.dat
- #7914 PowerNodePath now feeds a separate energy counter in addAmps (amps times post-loss voltage), and voltage uses a new AveragePerTickCounter.addMaxValue instead of summing. A shared CableReadout record backs both the MTECable scanner output and the Waila tooltip; adds Client.Waila.showCableThroughput. - @Elyspio
- Added: cable throughput line in Waila, Show Cable Throughput client config option
- Fixed: Portable Scanner cable voltage and EU/t readout summing voltages per packet, cable max EU/t using a single cable block's loss instead of the whole segment
- #7913 MTESplitterModuleGui.createItemFilter used (index * 9) + i as the sync handler key; changed to (index * 16) + i so keys no longer collide between rules. - @serenibyss
- Fixed: splitter rule item filter slots overlapping so not all 16 could be used
- #7912 Partial revert of GT5-Unofficial#7892: GGMaterial Werkstoff names go back from the 'Mk-I' form to 'MkI', 'MkII' and 'MkIII', so the registered fluid names match existing saves again. - @UltraProdigy
- Fixed: Naquadah fuel and depleted Naquadah fuel fluids deleted when updating to daily 713
- Closes GTNH#26571
- #7909 Corrected the block adder sequence in MTEIndustrialArcFurnace to match the expected order for custom adder logic, similar to fixes applied to other multiblocks. - @AnsonYeung
- Fixed: IAF structure formation
- Closes GTNH#26556
- #7908 Updated hatch autoplace limit in
MTEEndothermicFridgeto align with standard late-game multiblock configuration. - @UltraProdigy- Fixed: inconsistent hatch placement rules
- #7907 GenerateNodeMap.getNextValidTileEntity now returns the current tile entity as an endpoint when a connected side has no adjacent tile, instead of skipping that side. - @DreamYao520
- Fixed: solar panel covers on cables not producing power under specific conditions
- Closes GTNH#26547
- #7906 Fixed parallel count calculation in
MTEBECIONodeto properly handle tier-skipping scenarios. Corrected unlinked error message. - @Armisael5- Fixed: BEC IONode tier-skip parallel issue, error message linking
- #7905 Fixed item name lookup in
MTENanochipAssemblyModuleBaseto handle renamed items gracefully. - @serenibyss- Fixed: NAC module crash with renamed items
- #7901 AssemblerRecipes.java: swapped the plate input in the UIV (energyDistributor[11]) recipe from BlackPlutonium to TranscendentMetal and in the UMV (energyDistributor[12]) recipe from Infinity to SpaceTime. - @Armisael5
- Fixed: inconsistent UIV and UMV Energy Distributor recipes
- Migration: If you automate the UIV or UMV Energy Distributor, change the plate supply to Transcendent Metal (UIV) or Space Time (UMV).
- Closes GTNH#26546
- #7894 GTRendererBlock.renderInventoryBlock now falls back to the immediate render path when TessellatorManager is already capturing or intercepting draws, so nested captures no longer cache an incomplete model. - @boubou19
- Fixed: invisible textures on some sides of machine blocks, invalid or partial captures entering the inventory render cache
- #7884 MTEHatchInputBusDebug overrides shouldDropItemAt to return false. - @chrombread
- Fixed: Debug input bus spilling its contents on break
- #7881 EOHRenderingUtils and EOHTileEntitySR pass the animation time as a double (world total time + partial ticks) instead of a float, which lost precision at large world ages. - @Armisael5
- Fixed: Eye of Harmony animation stuttering
- #7876 Changed hatch category filter in AntimatterGenerator.java from broad
ExoticDynamoto specific laser source hatches only. - @DreamYao520- Fixed: SLAM accepting unintended dynamo hatch types, Wireless dynamo capacity bypass exploit
- #7875 MTETransformer.getWailaBody only adds the step up/down line when maxEUInput() differs from maxEUOutput(). - @Angry3vilbot
- Fixed: Step Up/Step Down text in the energy distributor WAILA tooltip
- Closes GTNH#26497
- #7870 Changed addOutputAny to addOutputBus in the structure tooltip in MTESourceChamber.java. - @Angry3vilbot
- Removed: Output hatch requirement text
- Fixed: Misleading Source Chamber documentation
- Closes GTNH#26474
- #7865 Corrected material definitions in CraftingRecipes.java, CraftingRecipeLoader.java, AssemblerRecipes.java, RecipesMachinesTiered.java, and Assembler.java across multiple machine tiers. - @Auynonymous
- Fixed: LUV BioLab chrome usage, UEV BioLab bedrockium usage, UEV/UIV Buck Converter materials, RPP Machine Casing framebox material, LUV AutoBench chrome usage
- #7862 MaterialsInit.loadPhosphorousPentoxide changes setDefaultLocalName from 'Phosphorous Pentoxide' to 'Phosphorus Pentoxide'. The internal material name is unchanged. - @UltraProdigy
- Fixed: misspelled Phosphorus Pentoxide name
- #7859 MTEAssemblyLine's 'e' element swaps Energy.newAny for buildHatchAdder(...).atLeast(Energy).casingIndex(16).hint(4).allowOnly(UP, NORTH, SOUTH).continueIfSuccess(), chained with the casing block. - @MLGfruitshoot
- Fixed: Assembly Line ignoring hologram projector gt_hatch parameter for energy hatches
- Closes GTNH#26482
- #7857 Changed suffix methods to return IChatComponent instead of pre-localized strings. Suffix construction moved to client-side via ChatComponentGhostCircuitSuffix and ChatComponentNonConsumedItemsSuffix classes. Requires AE2 PR #1545 for signature compatibility. - @Eldrinn-Elantey
- Added: ChatComponentGhostCircuitSuffix class, ChatComponentNonConsumedItemsSuffix class
- Fixed: Server locale forcing on dedicated servers for interface suffixes
- #7854 MTEHatchOutputMEBase no longer writes the localized display name into the WAILA NBT on the server. WailaHelper resolves names on the client from the stack or fluid NBT and skips entries it cannot resolve. - @Eldrinn-Elantey
- Fixed: ME Output Bus/Hatch WAILA content names using server locale
- #7850 MTEBuffer.hasTargetRoomForTransfer now takes the stack being moved and sums the compatible free space across the target's slots, including ISidedInventory access. The check runs inside the transfer filter instead of before it. - @lfpraca
- Fixed: Chest Buffer and Regulator false negatives with split free space, partial stacks pushed into inventories without compatible room
- Closes GTNH#24629
- #7846 Corrected BECMetaMaterialRecipes T0 metamaterial recipe definitions that were broken by PR #7809. - @Ruling-0
- Fixed: BEC Crude End of the Horizon parts uncraftable
- Closes GTNH#26454
- #7839 Corrected CCInputConsumer fluid consumption logic to properly drain fluid across multiple input hatches. - @AnsonYeung
- Fixed: Nanochip Assembly Matrix not consuming fluid with multiple input hatches
- Closes Dupes-Exploits-GTNH#356
- #7838 In GTModHandler, the delayed recipe removal branch now passes the same NBT, shaped-removal and native-removal flags as the immediate removal branch. - @boubou19
- Fixed: fluid cells uncraftable with fluid storage housing, mismatch between buffered and unbuffered recipe removal
- Closes GTNH#26405
- #7832 GTModHandler.useSolderingIron now tests and drains the selected tool inside the toolbox and saves it back. Toolbox slot overlay textures moved to textures/items/toolbox and ToolboxSlot.registerIcon maps the path for the item atlas. - @querns
- Fixed: Soldering Iron not working in a Toolbox without a battery, missing texture in toolbox broken tool animation
- Closes GTNH#25721
- #7831 Updated ME Stocking hatch fluid processing in TileEntityModuleMiner to scan fluids within parent recipe loop instead of reporting cached value. - @vermz99
- Added: Plasma tier sorting in Space Elevator
- Fixed: Shared plasma hatch fluid visibility in Mining Module
- Closes GTNH#26423
- #7828 CoverBaseGui.createBasePanel appends the cover side to the ModularPanel name. CoverChestGui drops its own side field and uses a plain gui id. - @mcmlevi
- Fixed: crash when clicking a button in the cover settings UI with two same-type covers
- Closes GTNH#26219
- #7822 BaseTileEntity.getTileEntityAtSide no longer trusts the buffered 'nothing here' marker when the neighbour is across a chunk border, and always rechecks, since chunk load fires no block update. - @Caedis
- Fixed: tile entities across chunk borders never detected, Advanced Solar Boiler losing water input after restart
- Closes GTNH#18520
- #7820 Removed the REVERSIBLE bit from the chainmail boots crafting recipe, which dropped the autogenerated recycling recipes. Added explicit Arc Furnace, Pulverizer and Fluid Extractor recycling recipes for Steel. - @UltraProdigy
- Added: explicit chainmail boots recycling recipes
- Removed: Chainmail Boots Alloy Smelter recipe
- Migration: Move any Chainmail Boots recycling off the Alloy Smelter and onto the Arc Furnace, Macerator or Fluid Extractor.
- #7818 Added assembled status check in MTENanochipAssemblyComplex power distribution loop to prevent energy loss to unformed modules. - @Eldrinn-Elantey
- Fixed: NAC power drain into unformed modules
- #7813 MTEExtendedPowerMultiBlockBase overrides getWailaNBTData instead of getExtraWailaNBT and calls super, so the base WAILA data is written. - @AnsonYeung
- Fixed: WAILA showing power generation on DTPF and similar machines
- #7811 ScannerHandlerLoader registers SchematicTier4-8 with the GalaxySpace mod id instead of GalacticraftMars in GALACTICRAFT_SCHEMATIC_LOOKUP. GTModHandler.getModItem passes the Exception to the logger together with the message instead of logging it as a separate call. - @boubou19
- Fixed: null item lookups for GalaxySpace schematic tiers 4 to 8, fatal getModItem errors in the log
- #7810 Refactored MTEBoardProcessorModule to compute fillPercentage dynamically from underlying fields instead of maintaining stale cached values. - @AnsonYeung
- Fixed: Board Processor fill percentage on server restart
- #7807 In MTERecipeLoader, the 'C' ingredient for Transformer_MAX_UV changed from wireGt01 Bedrockium to cableGt01 Bedrockium. - @Nana-Sakura
- Fixed: UV transformer recipe used wire instead of cable
- #7805 Added new circuit 2 lubricant recipe to DistilleryRecipes for processing Oil in Distillation Tower. - @Angry3vilbot
- Added: Distillation Tower Oil to Lubricant recipe
- Fixed: missing Distillation Tower Oil to Lubricant recipe
- Closes GTNH#23493, GTNH#26379
- #7804 SimplePowerGogglesRenderer.getLastMeasurements no longer skips entries when filling the cache; it now copies the last N measurements from the descending iterator directly. - @mattiasploesch-cpu
- Fixed: wrong 5m power goggles values with LSC, incorrect LSC charge percentage on power goggles
- Closes GTNH#21787, GTNH#26382
- #7801 Updated MTEExothermicHearth tooltip casing count constant from 860 to 864. - @metalcupcake5
- Fixed: incorrect Exothermic Hearth casing requirement display
- #7800 In MTEMultiBlockBase.getInfoData, the setupProcessingLogic call and the max recipe EU/t and tier lines are now inside a
processingLogic != nullcheck. - @Nana-Sakura- Fixed: NPE in multiblock scanner info when processingLogic is null
- #7794 BaseMetaTileEntity.doExplosion now caches mMetaTileEntity in a local variable before use, since a chained explosion can null the field mid-call. - @Caedis
- Fixed: NPE during chain explosions of machines
- #7792 MTEHighTempGasCooledReactor: fixed drain() calls to use the correct ME Input Hatch override method instead of falling back to unimplemented parent drain(int, boolean). - @Nana-Sakura
- Fixed: HTGR NPE with ME Input Hatch
- #7791 MTEBoardProcessorModule: implements WAILA data methods to properly display item quantities. - @AnsonYeung
- Fixed: board processor WAILA/WDMla display
- #7787 In WirelessComputationPacket.download and upload, the lastUpdateTick check changed from
<to!=. A tick counter reset on world reload now re-arms the buffer rotation. - @noitacude013- Fixed: wireless computation deadlocking after server or world restart
- #7783 Added GorgeModuleProcessingLogic in MTEBaseModule with predictDrainedEnergy, which uses OverclockCalculator and ParallelHelper. The Exotic, Molten, Plasma and Smelting modules use it in validateRecipe. The old wirelessEUt fields were removed, and onRecipeStart calls stopMachine(POWER_LOSS) when addEUToGlobalEnergyMap fails. - @AnsonYeung
- Added: power failure shutdown on wireless EU fail in Godforge modules
- Fixed: Godforge module power check ignoring overclock and subtick parallels, Godforge modules voiding recipes silently on power fail
- #7781 BaseMetaPipeEntity.onRightclick now sends the new GT5U.chat.pipe.processing.enable/disable keys. Both keys were added to en_US.lang. - @H3stur
- Added: pipe-specific soft mallet chat messages
- Fixed: misleading Soft Mallet message on pipes and cables
- #7779 ProcessingPipe.registerOre now has a separate case per pipe prefix (pipeHuge, pipeLarge, pipeMedium, pipeSmall, pipeTiny), each registering only its own recipe instead of all five in one shared case. - @boubou19
- Removed: 682 duplicate pipe recipes
- Fixed: pipe recipes registered once per pipe size
- #7778 ArmorEventHandlers: OnLivingFall now uses player.fallDistance instead of event.distance to match Minecraft's internal fall damage calculation. - @Angry3vilbot
- Fixed: landing gear low fall damage absorption
- Closes GTNH#26309
- #7777 ToolVajra.doesSneakBypassUse now returns false with updated reasoning, and onItemUse was reworked. Unused imports for inventory and Railcraft/pipe classes were dropped, and Backhand, Forge event and ItemBlock imports were added. The diff is truncated, so the rest of the onItemUse change is not visible. - @AnsonYeung
- Fixed: Vajra hotswap broken, Vajra sneak right click triggering block interactions
- Closes GTNH#25198
- #7775 In MobHandlerLoader.generateOutputs, removed the
damages != nullskip from the pre-roll check and added anisItemDamaged()check after the random damage roll, so damaged stacks are skipped. - @Angry3vilbot- Fixed: EEC voiding undamaged damageable drops with the void damaged and enchanted mode on
- Closes GTNH#26266
- #7774 MTETargetChamber: restores float cast in progress time calculation introduced in PR #7753. - @Worive
- Fixed: target chamber progress time calculation
- #7771 MTEHatchSolidifier.isValidSlot now returns false for moldSlot and circuitSlot, matching the Extrusion Hatch. - @Eldrinn-Elantey
- Fixed: ghost mold and circuit duplication from the Solidifier Hatch with the Matter Manipulator
- #7770 MTEMultiBlockBase.generateCurrentRecipeInfoWidget uses a plain TextWidget with the text computed on the client, in place of TextWidget.dynamicString, which was syncing from the server. - @AnsonYeung
- Fixed: missing recipe output text in multiblock GUIs such as the Neutron Activator
- Closes GTNH#26267
- #7768 Corrected MTEFusionComputer fluid display state to clear after recipe completion. - @AnsonYeung
- Fixed: Fusion Reactor stuck on crafts
- Closes GTNH#26238
- #7767 ConnectedBlocksChecker.get_connected replaces the recursive DFS with an iterative BFS using an ArrayDeque and the visited HashSet, so depth no longer hits the stack limit. - @Nana-Sakura
- Fixed: stack overflow crash in the L.E.S.U. connected blocks check
- Closes GTNH#26284
- #7762 Corrected Werkstoff freezer recipe duration calculation to use mass-based heat capacity instead of proton sum, resulting in realistic recipes (e.g., zirconium freezing now takes proper time rather than 1 tick). - @Nana-Sakura
- Fixed: Unrealistic freezer recipe durations
- #7758 Corrected recipe output merging and fixed material formulas in MaterialsOres and RecipeGenOre for GT++ electrolyser recipes. - @Nana-Sakura
- Fixed: Duplicate oxygen output in electrolyser recipes
- Closes GTNH#26198
- #7755 AntimatterGenerator drops the cached energy and efficiency fields and sends curProducedEU, curEff and avgEff from getExtraWailaNBT. getExtraWailaBody reads them from the tag. - @AnsonYeung
- Fixed: SLAM WAILA tooltip not showing produced EU and efficiency
- #7753 Modified MTETargetChamber to add per-tick beam validation during recipe progress, ensuring beam remains present and matches recipe requirements throughout crafting. - @error1number404
- Added: Continuous beam validation during crafting
- Fixed: Target Chamber only validating beam at recipe start
- Closes GTNH#26254
- #7745 WerkstoffLoader sets mass 165 on the Ruthenium Tetroxide Werkstoff stats, since the mass could not be inferred from its formula. - @Nana-Sakura
- Fixed: broken Ruthenium Tetroxide solidifier recipe
- #7742 MTENeutronSensor implements IDataCopyable. getCopiedData stores threshold and inverted under the identifier neutronSensor, and pasteCopiedData restores them. - @chazzybearr
- Fixed: Neutron Sensor losing its eV threshold and inverted setting when copied with the Matter Manipulator
- Closes GTNH#25212
- #7736 Updated MTEBeamCrafter structure tooltip information. - @Nana-Sakura
- Fixed: Incorrect Collider Casing reference in Beam Crafter tooltip
- #7734 CoverWirelessController.readDataFromNbt now detects the legacy Internal Redstone Receiver data (an NBTTagInt bit field, or a compound with an integer frequency) and converts it through readLegacyData. Frequency is the low 16 bits and bit 16 is the private flag. Tests added in CoverWirelessControllerTest. - @Worive
- Fixed: old Internal Redstone Receiver covers erroring or vanishing after the move to the Wireless Machine Controller
- Closes GTNH#26246
- #7733 Updated rendering classes (DetravOreMarkerRenderer, GTPowerfailRenderer, StructureErrorHighlightRenderer, TetherLineRenderer, MTEDebugStructureWriter, EOHTileEntitySR) to use renderViewEntity instead of player entity for camera calculations. - @Caedis
- Fixed: Freecam compatibility in renderers
- #7729 MTESteamMultiBlockBase.depleteInput(ItemStack) now reads the stack in slot i for the equality and size check. The steam input hatch branch also null-checks the stack before reading its size. - @czqwq
- Fixed: NPE in steam multiblock item consumption with empty first slot
- #7726 Aligned validateRecipe and onRecipeStart to use consistent energy start values in MTEPlasmaModule and MTEForgeOfGods, preventing speed bonus overflow. - @AnsonYeung
- Fixed: Speed bonus infinity initialization bug, Item voiding in God Forge Plasma Module
- #7725 MTEMegaDistillationTower structure definition: replaced the '3' element marker with '7' in three layers, 8 positions in total, leaving the other '3' positions unchanged. - @UltraProdigy
- Fixed: Wrong casing required at 8 positions of the Mega Distillation Tower
- Migration: Replace the 8 bronze pipe casings on existing Mega Distillation Towers with strong bronze casings.
- #7724 Added network syncers for speed toggle and all four upgrade slots in MTEIndustrialApiary to refresh client-side tooltip display. - @chazzybearr
- Fixed: Industrial Apiary tooltip update on upgrade changes
- Closes GTNH#25573
- #7722 AntimatterGenerator overrides shouldCheckRecipeThisTick with a 100 tick interval tracked in lastCycleTick. Waila values now come from the synced NBT data, and the unused energyProducedCache and efficiencyCache fields are removed. - @AnsonYeung
- Fixed: SLAM recipe check running every tick, SLAM Waila display
- #7721 MTENetworkSwitch, MTENetworkSwitchAdv and MTEQuantumComputer keep a pendingPacket QuantumDataPacket, saved and loaded in NBT, in place of a pending computation long. The packet is built with unifyTraceWith and merged with unifyPacketWith. QuantumDataPacket sums with GTUtility.addSafe. This drops the dependence on the server tick counter. - @AnsonYeung
- Fixed: Weighted QoS computation errors, Quantum Computer computation errors, computation data lost on restart
- #7719 MTEWetTransformer and MTETransformerHiAmp now pass the half-mode amps to the description format, and the transformer_advanced.desc lang string in en_US and ru_RU takes them as parameters instead of a hardcoded 2A/8A. - @chazzybearr
- Fixed: wrong half-mode amperage in power transformer tooltip
- Closes GTNH#22225
- #7718 Removed premature return in MTEIndustrialCokeOven survival construction that incorrectly signaled completion after base structure formation. Allows completion loop to check all configured slices. - @DreamYao520
- Removed: Premature completion return
- Fixed: Projector stopping after first slice in multi-slice structure
- Closes GTNH#26195
- #7716 Replaces the FluidTanksHandler in MTEExoticModule with FluidStackTank instances backed by a FluidStack array, and ExoticInputsListPanel builds its fluid slot sync handlers per panel open instead of re-registering them in registerSyncValues. - @serenibyss
- Fixed: crash re-opening the exotic inputs panel of the Godforge Exoticizer
- #7715 Fixed laser mode power calculation in MTEDebugPowerGenerator. - @AnsonYeung
- Fixed: 80% power loss in debug generator laser mode
- Closes GTNH#26231
- #7714 Made the BlockFrameBox breaking logic use the dropCover method to properly clean up cover data. - @Angry3vilbot
- Fixed: Wireless redstone channel persisting after block removal
- Closes GTNH#26236
- #7705 Adds .circuit(1) to the four ExtraUtilities spike_base assembler recipes in AssemblerRecipes.loadOutputBusesRecipes. - @Angry3vilbot
- Added: circuit 1 requirement on spike base assembler recipes
- #7703 Adds GTUtil.setVanillaChestDirection, which validates the new facing and sets metadata on both halves of a large chest. BehaviourWrench and BehaviourSoftMallet now use it for chest and trapped chest, and the mallet loops to the next valid facing. - @Glease
- Fixed: wrench rotating double chest into an overlapping facing, soft mallet rotating only one half of a double chest
- Closes GTNH#20397, GTNH#24947
- #7699 Replaced singletonSlotGroup with separate input/output slot groups in MTEMachineWithFluidScreenBaseGui, mirroring fix from PR #7693. - @RealSilverMoon
- Fixed: Shift-click contamination between input and output item slots
- #7696 Modified MTEMegaIndustrialApiary bee generation to return false for invalid bee items, preventing isValid flag from being set to true and item decrement until validation passes. - @Angry3vilbot
- Fixed: Crash and queen deletion when inserting invalid bee
- Closes GTNH#26207
- #7695 Added explicit nanite clamping logic to MTEBECAssembler and updated tooltip to document the maximum nanite capacity. - @RecursivePineapple
- Added: Nanite clamping tooltip
- Fixed: Nanite overflow handling with larger hatch
- #7693 Changed output slot group in MTEBasicMachineBaseGui from singletonSlotGroup to a dedicated output slot group to prevent shift-click items from entering input slots. - @AnsonYeung
- Fixed: Shift-click output placing items into input slots
- Closes GTNH#26204
- #7692 Added validation check to prevent Stocking Input Hatch from being attached to MTEEyeOfHarmony, and added corresponding tooltip. - @AnsonYeung
- Added: Validation check for input hatch attachment on Eye of Harmony
- Fixed: Input hatch attachment violation on Eye of Harmony
- #7691 Moved beam crafter controller recipe from ResearchStationAssemblyLine to AssemblyLine to change the research requirement gate from Research Station to Scanner. - @Nana-Sakura
- Fixed: Unintended progression gating of dependent machines to UV tier
- #7690 In ResearchStationAssemblyLine.addBecCasingRecipes, changes the screw Shijima x48 input to bolt Shijima x48. - @fehling135
- Fixed: BEC casing recipe with two Shijima screw slots
- #7687 Removed inaccurate tooltip line from
advanced-assembly-line.mdin English and Russian language files. - @fehling135- Removed: 'Does not overclock beyond 1 tick' text from AAL tooltips
- Fixed: outdated tooltip information
- #7685 MTEHatchInputBus.fillStacksIntoFirstSlots only calls GTUtility.compactInventory when mInventory.length > 1. A zero-sized inventory made subList throw IllegalArgumentException each tick. - @RecursivePineapple
- Fixed: Error ticking unpaired CRIB proxies with a zero-slot inventory
- #7684 Added NBT serialization for
isOutputLockedflag inMTEHatchNonConsumableBase.java. - @fehling135- Fixed: nanite hatch lock state loss
- Closes GTNH#26187
- #7683 MTEOreDrillingPlantBase.setElectricityStats now caps the overclock tier at the highest tier that still shortens the base progress time. The base time is getBaseProgressTime() while drilling down or at the bottom, and 80 otherwise. EUt and max progress time use the capped tier. - @fehling135
- Fixed: Ore Drilling Plant consuming endless power from overclocking past the minimum time
- Closes GTNH#26188
- #7680 GTStructureUtility.chainAllGlasses now wraps the tiered element in a ProxyStructureElement that overrides getDescription. It returns a per-tier lang key from the new GlassTier.getTierLangKeys list, filled at registration as GT5U.MBTT.Glass.NN. Lang entries were added for tiers 03 to 13, HV to UXV. - @AnsonYeung
- Added: Tier-specific glass hints, HV to UXV
- Fixed: Structure hint always showing borosilicate glass when alternative glass is used
- #7678 Added client disconnect event handlers in
GTClient.javaand vacuum factory grid classes to properly unload client-side data structures, preventing memory leaks on dedicated server disconnects. - @boubou19- Added: client disconnect handlers
- Fixed: NAC and BEC client world leaks
- #7677 MTEMultiBlockBaseGui now looks up GT5U.gui.hoverable.computation_loss instead of the nonexistent GT5U.gui.text.computation_loss. The key was added to en_US.lang. - @Ranzuu
- Added: Out of computation tooltip
- Fixed: Incorrect out of computation error text on the Space Mining Module
- Closes GTNH#26182
- #7671 Reverts PR #7204. ToolVajra.onItemUse regains its own block-breaking logic, and the S23PacketBlockChange early resync in BlockMachines.harvestBlock is removed. doesSneakBypassUse still returns false, with its comment changed. - @AnsonYeung
- Removed: Early block resync packet after harvesting a machine block
- Fixed: Interaction regressions from the Vajra offhand fix
- #7666 In PowerGogglesGuiOverlay the min and max TextFieldWidgets now use formatAsInteger(true) and a non-negative digits-only Pattern ("[0-9]*"), replacing setFormatAsInteger(true). - @Pxx500
- Fixed: Power Goggles manual graph scale not accepting input, Power Goggles scale values capped at the maximum integer
- Closes GTNH#25702
- #7656 Added ignoreCollision() to the recipe builder in the RecipeMaps assembler alt path and to five UV recipes in LargeHadronColliderRecipes. The author did not test the change. - @AnsonYeung
- Fixed: NAC assembler recipe flagged by the collision checker
- Closes GTNH#25586
- #7655 Added explicit structure check trigger from main structure formation in
MTENanochipAssemblyComplex.javainstead of relying on delayed onPostTick callbacks. - @AnsonYeung- Fixed: NAC recipe start with stale hatches on structure formation
- Closes GTNH#25592
- #7654 MTEHatchCraftingInputSlave.onRightclick now returns true for a non-EntityPlayerMP (client side) so the client skips the item/offhand action. The server no longer has to revert the placement. - @AnsonYeung
- Fixed: Block placed client side and reverted when right-clicking a Crafting Input Proxy with a block in hand
- #7653 ItemMachines.placeBlockAt now sends an S23PacketBlockChange and the tile entity's description packet to the placing EntityPlayerMP right away. Before, markBlockForUpdate delayed the sync by a full tick. - @AnsonYeung
- Fixed: .name block showing briefly when placing GT machines
- Closes GTNH#23861
- #7647 Added config change listener in
MTEHatchCondensateDetector.javato trigger BEC hatch updates on config modifications, preventing stale state inMTEBECStorage.java. - @AnsonYeung- Fixed: BEC hatch not updating on config change
- #7644 Corrected rotation calculation in
MTESpinmatron.javausing ExtendedFacing to properly respect multiblock controller flip and rotation. - @AnsonYeung- Fixed: Spinmatron auto-rotation for left and right sides
- #7642 MTELapotronicSuperCapacitorGui now reads kekztech.gui.lapotronic_super_capacitor.* keys instead of kekztech.infodata.*. Seven matching entries were added to kekztech en_US.lang. - @Ranzuu
- Added: separate GUI lang keys for the Lapotronic Super Capacitor
- #7641 GTUtility.processFormatStacks now strips trailing format code pairs from the output. A test, testProcessFormatStacks, was added in GTUtilityTest. - @Eldrinn-Elantey
- Fixed: Markdown tooltip separators not becoming ChromaticTooltips dividers
- #7639 Added proper fluid retrieval method in
MTEMultiBlockBase.javaand updatedMTEBoardProcessorModule.javato use correct storage input method that doesn't artificially limit ME input to 1L. - @AnsonYeung- Fixed: NAC Immersion Device fluid drain rate limitation
- Closes GTNH#25590
- #7637 Added null-safety check in
MTEPipeLaserMirror.javato prevent NPE when retrieving connections. - @Azusfin- Fixed: Laser Vacuum Mirror null side connection crash
- #7636 Updated casing amount display in
MTEBECAssembler.java,MTEBECDiode.java, andMTEBECIONode.javatooltip methods. - @Azusfin- Fixed: Inaccurate BEC casing amount tooltips
- #7633 MTETargetChamber.createTooltip: replaced the two separate addInputBus lines with one addInputBus("2", ..., 2, 3) call that lists both dot positions. - @DylanTaylor1
- Fixed: Target Chamber input bus tooltip
- #7626 Removed the StructureLib.addClientSideChatMessages call and its import from MTELINAC.construct. - @AnsonYeung
- Removed: LINAC length chat message
- Fixed: LINAC chat spam on launch
- #7625 In TTRecipeAdder.addResearchableAssemblylineRecipeLong, replaced GTUtility.safeInt with a plain (int) cast when folding totalComputationRequired and computationRequiredPerSec into tPersistentHash. - @Azusfin
- Fixed: Clamped Assembly Line persistent hash
- #7624 Removed the hashCode and equals overrides from GTRecipe.RecipeAssemblyLine, so it uses Object's implementations again. The overrides, added in #7555, used mPersistentHash, which can collide. - @AnsonYeung
- Removed: RecipeAssemblyLine hashCode and equals overrides
- Fixed: Assembly Line recipe hash collisions
- #7622 In MTEAssemblyLine.checkProcessing, the two power checks (hatch tier limit and amperage limit) were removed from the start of the recipe loop. Item parallel is now computed with Integer.MAX_VALUE as the cap, and the redundant tStacks and tFluids assignments were dropped. - @Azusfin
- Fixed: Assembly Line reporting insufficient power when items or fluids were the problem
- Closes GTNH#26119
- #7615 Removed the selectedBackground(TT_BUTTON_CELESTIAL_32x32) calls from createPowerSwitchButton and createStructureUpdateButton in MTEBaseModuleGui. - @AnsonYeung
- Fixed: Godforge module power switch and structure update button backgrounds
- #7614 Replaced double/float calculations with BigDecimal in LargeBoilerFuelBackend.java, MTELargeBoilerGui.java, and MTELargeBoilerBase.java to ensure consistency between recipe calculations and UI display. - @Miklebe
- Added: log calculation bonus for solid fuels
- Fixed: Large Boiler math imprecision between NEI and reality
- #7612 ToolboxSlot.isItemInToolSet copies an uncharged MetaGeneratedTool stack, charges the copy by 1 EU, and runs the tool type check on the copy. It also returns false early when the tool set is empty. - @querns
- Fixed: toolbox rejecting uncharged electric tools
- #7610 StoneType.findStoneTypeByPrefix now checks for a null list from STONE_TYPES_BY_PREFIX before calling isEmpty. - @Algent
- Fixed: Ore Finder Wand NullPointerException crash
- Closes GTNH#26122
- #7606 In checkProcessing of MTELargeCombustionEngine and MTEExtremeCombustionEngine, a failed depleteInput now does continue instead of returning NO_FUEL_FOUND. - @Eldrinn-Elantey
- Fixed: combustion engines not falling back to another fuel when one runs low
- #7605 Added "before:computronics;" to the @Mod dependencies string in GTMod. - @felixfour
- Fixed: Computronics load order dependency conflict with GT6
- #7604 Added output-side watcher notifiers to ExtremeHeatExchanger, HeatExchanger, AdvHeatExchanger, HighTempGasCooledReactor, and TTMultiblockBase. - @Azusfin
- Fixed: Missing output watchers on multiple multiblock hatches
- #7602 MTEMachineWithFluidScreenBaseGui wraps the fluid tank in a RealCapacityFluidTank that reports machine.getRealCapacity() and passes it to FluidSlotSyncHandler. - @YannickMG
- Fixed: fluid gauge capacity and fullness changing when void mode is enabled
- #7601 MTEHighTempGasCooledReactorGui registers a StringSyncValue for getReactorInfoText in registerSyncValues and reads from it instead of the client-side tile entity fields. - @Eldrinn-Elantey
- Fixed: HTGR GUI showing all resources as empty
- Closes GTNH#25737
- #7597 Updated MTEMegaIndustrialApiary onRemoval logic to properly output stored queens before removal completes, matching Extreme Industrial Greenhouse behavior. - @Angry3vilbot
- Fixed: Mega Apiary voiding queens on controller destruction
- Closes GTNH#26060
- #7595 In GTRecipeBuilder.applyDefaultSpecialValues, replaced the pattern-matching switch on Number with an if/else chain of instanceof checks, to avoid a jvmDowngrader switch pattern matching bug. - @Sanduhr32
- Fixed: jvmDowngrader switch pattern matching bug in recipe special value handling
- #7594 Added addIfSmartInput calls in the hatch adder methods of the affected multiblocks. MTEHatchNonConsumableBase, MTEHatchDataInput and MTEHatchUncertainty now implement ISmartInputHatch and call notifyWatchers on change. - @Azusfin
- Fixed: missing input watchers on special hatches
- #7592 MTERadioHatch implements ISmartInputHatch and calls notifyWatchers when sievert changes; MTEBioVat registers the radio hatch via addIfSmartInput and runs its sievert update before super.onPostTick. - @Azusfin
- Fixed: Bacterial Vat not scheduling a recipe check on sievert change
- #7591 TargetChamberFrontend drops the hardcoded AMPERAGE constant and uses recipeInfo.recipeMap.getAmperage(). computeVoltageForEURate now divides by amperage. - @Eldrinn-Elantey
- Fixed: Voltage calculation in Target Chamber NEI display ignored amperage
- #7588 Changed int type coercion to Math.max in MTETreeFarm and MTETreeFarmLegacy to ensure minimum stack size of 1 instead of rounding down to 0. - @Angry3vilbot
- Fixed: Forestry sapling fruit stack size rounded to zero
- Closes GTNH#25772
- #7585 Added GTCreativeHatchSource class and updated HatchElementBuilder and MTENanoForge to handle null player in hatch autoplace logic. - @AnsonYeung
- Added: GTCreativeHatchSource utility class
- Fixed: Nano Forge NEI preview crash on servers, Creative hatch placement with gt_hatch=1 flag
- Closes GTNH#26074
- #7584 ReplicatorBackend.overwriteFindRecipe now returns null when maxParallelCalculatedByInputs(1, fluids, items) is below 1, instead of returning a recipe that produced currentParallel 0. - @Nana-Sakura
- Fixed: internal error warning from Replicator with ME input hatch and missing UU-Matter
- #7581 Removed the getColorFromItemStack override (fixed RGB 225,225,225) and a redundant getItemStackDisplayName override from BaseItemIngotHot, so the parent class colouring applies. - @serenibyss
- Removed: fixed grey colour override on GT++ hot ingots
- Fixed: GT++ hot ingots had no tint
- #7580 Corrected the casing name string in MTEIndustrialMacerator.createTooltip. - @metalcupcake5
- Fixed: typo in Industrial Maceration Stack tooltip
- #7579 Changed beginStructureBlock in MTEIndustrialThermalCentrifuge.createTooltip from (5, 8, 5) to (5, 8, 6). - @UltraProdigy
- Fixed: incorrect footprint in Large Thermal Refinery tooltip
- Closes GTNH#26080
- #7575 Replaced non-reversible
Math.round()rounding logic withMath.ceil((amount + 0.5) / multiplier) - 1inMTELatexto correctly handle recipe lookups across fluid amount boundaries. - @UltraProdigy- Fixed: long to int narrowing issue, recipe lookup boundary edge cases
- Closes GTNH#26067
- #7573 Changed the neiHandlerInfo height for the DTPF recipe map in RecipeMaps from 156 to 166. - @Eldrinn-Elantey
- Fixed: DTPF NEI recipe window too short
- #7572 In MTECircuitAssemblyLine.validateRecipe, the assembler-mode tier limit now returns CheckRecipeResultRegistry.insufficientVoltage(recipe.mEUt * 4L) instead of NO_RECIPE. - @Azusfin
- Fixed: wrong error message for insufficient voltage in assembler mode
- #7570 Renamed shouldCheck to getCheckMode and added shouldCheckCell in the ME output hatch/bus classes. Reworked updateFlags so allowAnyInput depends on check mode and available space, plus the last input tick outside recipe check. Removed setEnabledIf(isCaching) from the two GUI toggles. - @hinyb
- Fixed: ME output hatch and bus refusing input within 1 tick, check mode requiring a cell
- #7567 Added @IMetaTileEntity.SkipGenerateDescription to GTPPMTECable, which was omitted in PR 5261. - @Eldrinn-Elantey
- Fixed: GT++ cables missing the skip-description annotation
- #7566 Switched getInfoData in several multiblocks to GT5U.multiblock.recipesDone.fmt and GT5U.multiblock.usage.fmt, and added GT5U.infodata.turbine.* keys to en_US.lang, all missed in #7106. - @Yoshy2002
- Added: turbine info lang entries
- Fixed: untranslated recipes done and usage lines, missing turbine info text in Transcendent Plasma Mixer translation
- Closes GTNH#26048
- #7565 BeamlineRecipeLoader: the two hardcoded amounts now use baselineAmount * maxUses * 3 for MaskList.CSOC and MaskList.ACC. MaskList constructor assignments and getters were reordered to match the argument order. - @DylanTaylor1
- Fixed: CeLUAG Target Chamber recipe base amounts not scaled after the mask rework
- Migration: Corrected a CeLUAG cost that was only ever wrong in 2.9 daily builds; measured per gem the cost is identical to 2.8.4.
- #7562 MTECircuitAssemblyLine.validateRecipe now, in MACHINEMODE_CAL, returns NO_RECIPE if there are fewer input buses than recipe inputs, or if the first stack in bus i (first valid stack for ME buses) does not match recipe.mInputs[i]. - @Sanduhr32
- Fixed: Circuit Assembly Line accepting items from any bus regardless of order
- Migration: Check Circuit Assembly Line builds in circuit assembly line mode and put each required item in its own input bus, in the order the recipe lists them.
- Closes GTNH#25974
- #7560 Corrected durations.json keys to match the actual ResourceLocation identifiers used by Minecraft for vanilla music records. - @Eldrinn-Elantey
- Fixed: Vanilla music discs looping instead of playing once, Duration lookup mismatch for vanilla records
- #7557 Modified MTEPurificationPlant to update last working tick after cycle completion instead of relying on unreliable powerSwitchSyncer. - @Sanduhr32
- Fixed: Incorrect shutdown timer display on multiblock machines
- Closes GTNH#25857
- #7556 In CommonWidgets.createMachineTitle, moved the tooltip from the outer 9x9 ParentWidget to the inner 7x7 colored fill Widget. - @Eldrinn-Elantey
- Fixed: color swatch tooltip only showing on the 1px border
- #7555 ALRecipeDataPacket collects recipes in a LinkedHashSet, and RecipeAssemblyLine gets hashCode and equals based on its persistent hash. MTEAdvAssLine picks the recipe by saved hash instead of assertSingleRecipe, which was removed from AssemblyLineUtils. Adds a functional test. - @mitchej123
- Fixed: out of memory crash saving Assembly Line recipe NBT, wrong recipe reloaded for outputs with several Assembly Line recipes
- #7554 SyncValue factories call allowC2S on every created sync value, and the per-value allowC2S calls in SyncValues were removed. MilestonePanel progress bar textures use a size of 130 instead of -1. - @serenibyss
- Fixed: Godforge milestone progress bars not updating, Godforge UI elements not syncing client to server
- Closes GTNH#24080
- #7548 MTEExtremeHeatExchanger.onRunningTick null-checks the hot fluid hatch's base meta tile entity before logging and calling doExplosion. - @Angry3vilbot
- Fixed: Extreme Heat Exchanger spamming null pointer errors after hatch explosion
- Closes GTNH#25964
- #7547 FuelSpecialValueFormatter takes the amount from mFluidInputs[0], else the first container capacity found in mInputs, else 1000. This replaces the mInputs[0] lookup from #7536. - @Sanduhr32
- Fixed: NEI fuel value wrong or failing for recipes without a cell as first input
- #7543 Modified CoverEUMeter to sync max energy value from server; updated CoverEUMeterGui to use the synced value instead of client-side calculation. - @daxsc
- Fixed: Energy detector cover on Fusion Reactors not accepting threshold input
- Closes GTNH#26020
- #7542 Added IHatchElement.matchesHatch, defaulting to a class instanceof check, and overrode it for CryotheumHatch and PyrotheumHatch to compare mLockedFluid. HatchElementBuilder anyOf and atLeast now use it for item filters and skip checks. - @Yoshy2002
- Fixed: Pyro and Cryo hatches mixed up in structure previews
- #7541 MTENeutronActivator.onPostTick null-checks the accelerator's base meta tile entity before calling isActive. - @MLGfruitshoot
- Fixed: Neutron Activator crash
- Closes GTNH#25896
- #7540 Moved Pyrotheum Heating Hatch to HatchElement enum alongside Cryo Hatch; updated MTEMultiBlockBase to recognize both hatches in holo projector validation; updated recipe reference in MTEAdvEBF. - @Yoshy2002
- Fixed: Holo projector false errors when building Cryogenic Freezer, Cryo hatch recognition in structure preview
- Closes GTNH#26017
- #7536 FuelSpecialValueFormatter multiplies mSpecialValue by FluidContainerRegistry.getContainerCapacity of the first recipe input instead of a fixed 1000. - @Sanduhr32
- Fixed: Acid Generator Redstone EU value mismatch in NEI
- Closes GTNH#25861
- #7535 Removed the duplicate GGMaterial.tairitsu plateDense recipe (9 ingots, circuit 9, 5 s, ZPM) from BenderRecipes and its unused import. - @mllfjn
- Removed: duplicate Dense Tairitsu Plate bender recipe
- Fixed: Dense Tairitsu Plate having two identical recipes with different times
- Closes GTNH#25607
- #7533 Reverted PR #7528 in en_US.lang, restoring the Max Output values for gt.multiblock.ExtremeHeatExchanger.lava, hotcoolant and hotsolarsalt. - @Sanduhr32
- Fixed: Extreme Heat Exchanger steam tooltip values reverted to earlier numbers
- #7532 Removed the isFiltered and isFilteredToItem overrides that always returned false from MTEHatchSteamBusOutput, so it uses the MTEHatchOutputBus filter logic. - @mllfjn
- Fixed: Steam Output Bus filtering not working
- Closes GTNH#25548
- #7531 MTEHatchBeamlineConnector.getInfoData reports BeamInformation fields. MTETargetChamber returns the LOW_ENERGY or new HIGH_ENERGY check result instead of NO_RECIPE. IGregTechDeviceInformation.toComponent now builds its argument array with System.arraycopy to avoid an ArrayStoreException. - @Sanduhr32
- Added: Above Required Energy message for the Target Chamber, Beam energy, particle, rate and focus in Beamline Connector scan info
- Fixed: ArrayStoreException in toComponent
- Closes GTNH#25910
- #7530 Corrected argument order in beginVariableStructureBlock in MTEManualTrafo and beginStructureBlock in MTELargerTurbineBaseLegacy. - @UltraProdigy
- Fixed: Wrong structure dimensions in Manual Transformer tooltip, Wrong structure dimensions in Larger Turbine legacy tooltip
- #7529 Corrected cell capacity awareness in DustLoader recipe generation for hot ingot vacuum freezer recipes. - @mllfjn
- Fixed: BartWorks hot ingot vacuum freezer recipe amperage
- Closes GTNH#25784
- #7527 In MTEOreDrillingPlantBaseGui the chunk radius IntSyncValue now calls allowC2S(), and the button calls notifyUpdate() after adjustChunkRadius so the client change reaches the server. - @mllfjn
- Fixed: Unable to reduce working area of Ore Drilling Plant tier 2
- Closes GTNH#25771
- #7524 Fixed hatch leak in MTEHatchCokeOven and MTECokeOven by correcting hatch registration and containment logic. - @RealSilverMoon
- Fixed: Coke Oven hatch leak
- Closes GTNH#25981
- #7521 CoverMetricsTransmitter and ItemSensorCard now collect getInfoData() into a list, call getExtraInfoData(list) on the tile, and use the combined result. - @Yoshy2002
- Fixed: Missing extra info data on Control Panel through Metrics Transmitter and Sensor Card
- #7517 Migrated lang keys for recipe completion display in MTEMultiBlockBase and MTEPCBFactory that were missed in PR #7106. - @Yoshy2002
- Fixed: scanner recipe count display, multiblock recipe finished display
- Closes GTNH#25799
- #7515 GTCLSCompat.pushToDisplayProgress now translates gt.loading.progress.post_init.loading_gt, with underscores instead of hyphens, to match the lang key. - @Ranzuu
- Fixed: Misspelled lang key for the GT loading progress message
- #7512 Removed OutputHatch from the atLeast hatch list for the casing element in MTEPreciseAssembler's structure definition. - @Ableytner
- Removed: Output hatch from the Precise Assembler structure preview
- Fixed: Precise Assembler structure preview listing an output hatch
- #7509 MTEHatchInputME.drain returns an empty FluidStack of the requested fluid when amount is 0 and a matching slot exists, because AE cannot run an extract with a 0 size. - @AnsonYeung
- Fixed: ME Stocking Input Hatch failing on 0 L fluid extraction, Spinmatron not accepting Kerosene through a Stocking Input Hatch
- Closes GTNH#25972
- #7504 SpeedBoostBehavior now skips the jump-key ascent while a client screen is open. JetpackBehavior drops the ClientGuiHelper class and checks Minecraft.currentScreen directly. - @Spaghetti-OberNub
- Fixed: Mechanical armor flight rising on spacebar while a GUI is open
- Closes GTNH#26252
- #7499 Added startupCheck handling to MTEBlackHoleCompressor and MTEBlackHoleUtility to prevent state changes during initialization. - @AnsonYeung
- Fixed: BHC/utility hatch state changes on restart
- #7498 MTEIndustrialPackager.createProcessingLogic overrides findRecipeMatches to append a schematic recipe from findSchematicRecipe when the map is packagerRecipes. The shared recipe map is unchanged. - @DreamYao520
- Added: Schematic crafting recipes in the Amazon Packager
- Fixed: Amazon Packager unable to process Schematic recipes the single-block Packager can
- Closes GTNH#25578
- #7497 Removed the Fluid Canner and Plasma Arc Furnace MetaTileEntity IDs from the default machine ID lists in the LV, MV, HV and EV sections of bartworks Configuration. - @DreamYao520
- Removed: Deprecated Fluid Canners and Plasma Arc Furnaces from Ross 128 b ruin machine pools
- Fixed: Ross 128 b ruins giving deprecated machines
- Closes GTNH#25697
- #7495 BaseMetaTileEntity.getTankInfo no longer checks the cover's letsFluidIn/letsFluidOut. Those permissions are already enforced in fill and drain. - @Eldrinn-Elantey
- Fixed: Fluid pipes disconnecting from tanks with a closed Pump or Fluid Regulator cover
- #7492 Added casing count validation to MTEBECMultiblockBase to enforce minimum casing requirements. - @Azusfin
- Fixed: BEC unable to validate casing count
- #7491 addMiddleInputToMachineList in MTEOilCracker, MTEMegaOilCracker and MTEMegaOilCrackerLegacy now calls addIfSmartInput to register the hatch watcher. - @Yoshy2002
- Fixed: Cracker multiblocks not detecting fluid added to a stocking input hatch
- #7488 MTEAdvAssLine.addDataAccessToMachineList calls addIfSmartInput to register the watcher. MTEHatchWirelessDataItemsInput now copies the recipes list into a new ArrayList before downloading, so the old and new sets compare correctly. - @Azusfin
- Fixed: Advanced Assembly Line not auto-detecting new data sticks, Wireless data hatch not triggering a recipe check
- #7487 BioDataEnum.getPlasmidCell returned the DNASampleFlask stack; it now returns plasmidCell. - @UltraProdigy
- Fixed: Plasmid Cell fake recipes in BioLab showing the DNA Sample Flask in NEI
- #7486 MTECircuitAssemblyLine.addInputHatchToMachineList now calls addIfSmartInput on the hatch, so the hatch change watcher is registered. - @Azusfin
- Fixed: Circuit Assembly Line not checking recipes when fluid is added to an input hatch
- Closes GTNH#25843
- #7485 Moved the Cerium and Samarium registerCauldronCleaningFor calls into a new RecipeLoader.registerCauldronRemaps, called from GTMod.onPostInitialization before GTPostLoad.addCauldronRecipe, so NEI caches the remapped recipes. - @DreamYao520
- Fixed: NEI cauldron recipes for Cerium and Samarium showing the wrong output
- Closes GTNH#25927
- #7484 BaseItemDustUnique builds internalMaterialName from the lowercased material name with non-alphanumerics removed. getItemStackDisplayName checks StatCollector.canTranslate(typeLoc + "." + internalMaterialName) and uses it before the formatted generic name. - @Eldrinn-Elantey
- Fixed: BaseItemDustUnique ignoring per-material oreprefix override keys
- #7481 Changed the Iridium Sheetmetal casing count string from 96 to 98 in MTEIntegratedOreFactory.createTooltip(). - @DylanTaylor1
- Fixed: Wrong Iridium Sheetmetal count in Integrated Ore Factory tooltip
- #7479 Modified MTELatex to lazy-load singularity item reference and deduplicate singularity validation logic to prevent NPE when the item hasn't been loaded yet. - @koolkrafter5
- Fixed: LATEX machine NPE on load
- #7470 MTEWirelessCharger.chargePlayerItems passes this.mTier to manager.charge instead of Integer.MAX_VALUE. - @zaru-noodles
- Fixed: Wireless Charger bypassing charging tier requirements
- Closes GTNH#22101
- #7469 RESEARCH_STATION_DATA changed from Integer to Long metadata, with the upper 48 bits for minimum computation and the lower 16 for amps. SPECIAL_VALUE_ALIASES now accepts any Number key, and applyDefaultSpecialValues handles Byte, Short, Integer and Long (Long via safeInt). TTRecipeAdder gains the deprecated addResearchableAssemblylineRecipeLong taking long computation values. ResearchStationFrontend reads the long metadata. - @Sanduhr32
- Added: addResearchableAssemblylineRecipeLong method
- Fixed: wrong values for Research Station (issue 25810), 16 bit cap on Research Station minimum computation
- Migration: GTRecipeConstants.RESEARCH_STATION_DATA is now a RecipeMetadataKey<Long>: values passed to .metadata(RESEARCH_STATION_DATA, x) must be long, and reads return Long. GTRecipeMapUtil.SPECIAL_VALUE_ALIASES now holds RecipeMetadataKey<? extends Number>; the int TTRecipeAdder.addResearchableAssemblylineRecipe overloads are kept.
- Closes GTNH#25810
- #7467 Changed priority input validation in MTEHatchOutputBusMEGui and MTEHatchOutputMEGui to permit negative values. - @hinyb
- Fixed: ME output hatches now accept negative priority values
- Closes GTNH#25913
- #7466 Added missing watcher to beam input in MTEBeamMultiBase to ensure recipe checks are triggered on input changes. - @Azusfin
- Fixed: LHC turns off after server restart
- Closes GTNH#25912
- #7463 HeatingCoilSpecialValueFormatter returns two lines via Arrays.asList. GT5U.nei.heat_capacity now holds only the K value and a new GT5U.nei.heat_capacity.material key holds the coil name. - @Eldrinn-Elantey
- Fixed: Heating coil NEI text overflowing GUI bounds
- Closes GTNH#25905
- #7460 TTRenderGTProgressBar.setMaxLineWidth now sets maxStringW to width instead of width + 2. - @slprime
- Fixed: Waila progress bar width
- #7458 GTPowerfailTracker.getMachineOwner now takes the IGregTechTileEntity and uses TeamManager.getOrCreateTeam(ownerName, ownerUuid) instead of getTeamByPlayer, which returned null. GTPacketClearPowerfail no longer stores the sender UUID and removePowerfailEvents resolves the tile entity by dimension and position. - @AnsonYeung
- Fixed: NullPointerException in GTPowerfailTracker.removePowerfailEvents when a multiblock is removed
- #7455 MTEBECStorage.compile: raised withHatches max for casing 'B' from 16 to 20. Tooltip addCasing for ElectromagneticallyIsolatedCasing changed from "0-343" to "324-343". - @Azusfin
- Fixed: BEC Storage hatch limit too low for 19 Condensate Detector Hatches, BEC Storage tooltip casing minimum
- Closes GTNH#25884
- #7451 Added an empty addStructureInfo call in MTELargeEssentiaSmeltery.createTooltip() ahead of the master channel line. - @DylanTaylor1
- Fixed: Missing space in Large Essentia Smeltery tooltip
- #7449 Replaced StatCollector.translateToLocal with GTUtility.sendChatTrans/sendChatComp using ChatComponentTranslation across MTECircuitAssemblyLine, MTEPreciseAssembler, MTEIntegratedOreFactory (and Legacy), GTPPMultiBlockBase, CoverOverflowValve, MTEQuantumForceTransformer, MTEIndustrialArcFurnace, ItemEuMeterGT, MTEEyeOfHarmony and others. Added lang keys including GT5U.chat.voiding_mode_set. - @Eldrinn-Elantey
- Added: lang keys for Industrial Arc Furnace mode names, lang key for Eye of Harmony animation toggle, lang key for voiding mode chat message
- Fixed: machine chat messages translated with the server's language, Integrated Ore Factory passing a resolved string as translation key
- #7444 AECacheCounter.extract now removes the key when it reaches zero, and updateAll iterates with an iterator and removes entries whose remaining count is 0 or less. - @hinyb
- Fixed: Memory leak in ME output caching
- #7442 GTPPMultiBlockBase.addToMachineList only routes MTEHatchDynamoMulti hatches above 4A to the TecTech list and adds them to mExoticDynamoHatches, so 4A hatches fall through to the regular dynamo list. The TecTech hatch lists are marked deprecated. MTENuclearReactor has an import cleanup. - @Sanduhr32
- Fixed: LFTR not forming with 4A dynamo hatches, F-1A Rocket Engine not forming with a 4A IV dynamo hatch
- Closes GTNH#25464, GTNH#25876
- #7441 Updated tile.blockCactusCharcoal, blockCactusCoke, blockSugarCharcoal and blockSugarCoke entries in assets/miscutils/lang/en_US.lang with the 'Block of' prefix. - @Angry3vilbot
- Fixed: Missing 'Block of' in Sugar/Cactus Coke/Charcoal block names
- Closes GTNH#21800
- #7439 Replaced xyz.wagyourtail.jvmdg.util.Pair with fastutil BooleanObjectPair in MTEBufferBaseGui, MTEFilterBaseGui, MTEFilterGui and MTESpecialFilterBaseGui. - @tiffit
- Fixed: NoClassDefFoundError from the jvmdg Pair class in filter and buffer GUIs
- #7438 In MTEElectricImplosionCompressor.createTooltip, the addCasing call for "Any Tiered Glass" now passes false instead of true for the tiered flag. - @DylanTaylor1
- Fixed: tiered label on glass in Electric Implosion Compressor tooltip
- #7437 Synchronized watcher lists between parent MTEHatch and child classes, and temporarily enable ticking in Stocking Bus during GUI slot updates to allow inventory change detection. - @Azusfin
- Fixed: Stocking input bus manual slot not triggering recipe check, CRIB inventory slot update recipe check, Parent/child watcher notification issue
- Closes GTNH#25872
- #7436 CommonBaseMetaTileEntity.setColorRaw checks hasValidMetaTileEntity before calling onColorChangeClient. onColorChangeClient on IMetaTileEntity is now a default no-op and the empty overrides in MetaTileEntity and MetaPipeEntity are removed. - @AnsonYeung
- Fixed: Crash when a color packet arrived for an invalid tile entity
- #7432 Modified MTELatex recipe matching to divide found fluid amounts by LATEX multiplier, adjusting fluid quantities to match recipe expectations before validation. - @koolkrafter5
- Fixed: LATEX discount application in recipe search
- Closes GTNH#23852, GTNH#25859
- #7431 ProcessingWire changes .circuit(1) to .circuit(24) in the cable coating recipes and removes the stale 'to be removed in the next Major Update' comments. - @koolkrafter5
- Fixed: Cable recipes split between circuit 1 and circuit 24
- #7429 MTEBECIONode pulls provided tier and available nanites from the assembler instead of having MTEBECAssembler push them, and applies a power-of-two divisor using the new GTUtility.mulSafe. Sync values in MTEBECIONodeGui lose setters. Lang and tooltip text updated. - @RecursivePineapple
- Fixed: BEC IO nodes not receiving nanites from the assembler on world load, missing newline in IO node condensate info
- #7427 Added a Postea transformer for bartworks:BioLabParts that strips every tag key except Name, skipping stacks with the NEI key. AdditionalRecipes tags the Clonal Cellular Synthesis output with NEI, and MTEBioVat compares cultures via getBioCultureFromNBTTag instead of the ID field. - @Sanduhr32
- Fixed: Bio Lab parts carrying extra NBT data
- #7418 Modified MTEHatchFluidGenerator to call notifyAllOnline() after modifying inventory rather than before, ensuring multiblock structure is checked with updated state. - @ReignOfFROZE
- Fixed: air intake hatch multiblock notification
- #7415 MTEHatchVoidBus overrides isItemValidForPhantomSlot to return true, same fix as #7387. - @toenailsin
- Fixed: Void bus filters could not be set
- #7414 Overrode getInventoryStackLimit to return 1 in MTEHatchPatternProvider and MTEHatchCraftingInputME. - @hinyb
- Fixed: Crafting patterns stacking in the Crafting Pattern Provider (LMA), Patterns stacking in the ME Crafting Input Buffer
- Closes GTNH#25827
- #7411 MTEHatchInputBusME and MTEHatchInputME gained a private scheduleRecipeCheck(RecipeCheckReason) helper that loops over watchers. configureWatchers now schedules a THROTTLED check, and the auto-pull path schedules an IMMEDIATE check through the helper. - @AnsonYeung
- Fixed: no recipe check after ME input bus or hatch config change
- #7410 In gtnhlanth Particle enum, WBOSON symbol changed from \u207B to \u207A and the "Gauge Bosons" comment became "Bosons". - @xicoa
- Fixed: W boson charge symbol
- #7407 Modified MTEIndustrialArcFurnace to check item and fluid output availability during standby before processing, returning an output-full error if needed. - @DreamYao520
- Fixed: Arc Furnace infinite start-stop cycle with unavailable outputs
- Closes GTNH#25816
- #7406 MTEFluidPipe and MTEItemPipe onLeftclick now build the message from ChatComponentText and ChatComponentTranslation with formatNumber instead of a StringBuilder. New lang keys were added to en_US.lang and ru_RU.lang, including GT5U.item.pipe.swap.items and the gas-proof and restrictive messages. - @Eldrinn-Elantey
- Added: translation keys for pipe swap messages
- Fixed: untranslated pipe swap chat messages, duplicated pipe swap chat messages
- #7405 GTWorldgenerator gets a single getOregenPattern(). getClientOregenPattern() and getServerOregenPattern() are kept as deprecated wrappers. The separate client field is removed. setClientOregenPattern() now only sets the pattern when no integrated server instance exists. - @Algent
- Added: getOregenPattern
- Fixed: unstable oregen pattern lookup for mods
- #7403 FluidEjectionHelper.ejectFluids now subtracts the amount actually stored (amount - tmp.amount) from output.remainingAmount after storePartial, so the loop progresses. - @Azusfin
- Fixed: infinite loop in fluid ejection
- #7402 Added save/load serialization of channel data to MTEHatchSplitterRedstone. - @Quaerere-Git
- Fixed: NAC redstone hatch channel reset on reload
- Closes GTNH#24657
- #7399 Replaced direct air block references with proper block state checks in MTETreeFarm structure. - @koolkrafter5
- Fixed: air block references in Tree Farm structure
- #7398 Removed macerator recipe right-click handling from GTNEIMacerationStackConversion. - @koolkrafter5
- Removed: macerator recipe right-click handler
- #7397 LanthanidesRecipeMaps: removed custom progressBar and transfer rect on both maps, set Source Chamber NEI height to 178, and changed Target Chamber maxIO item outputs from 4 to 1. Removed the slot position overrides in TargetChamberFrontend. - @Ranzuu
- Removed: custom progress bar on Target Chamber and Source Chamber NEI pages
- Fixed: Target Chamber NEI page layout, Source Chamber NEI page layout
- Closes GTNH#25012
- #7396 In MTEIndustrialCompressor.createTooltip, beginStructureBlock arguments changed from (7, 8, 7) to (7, 7, 8). - @NotKaizul
- Fixed: Large Electric Compressor tooltip size order
- Closes GTNH#25790
- #7395 BlockSheetMetal now calls GregTechAPI.registerMachineBlock(this, -1) and overrides breakBlock and onBlockAdded to call GregTechAPI.causeMachineUpdate. - @FourIsTheNumber
- Fixed: sheetmetal blocks not triggering multiblock structure checks, Industrial Mixer new structure not auto-checking
- Closes GTNH#25789
- #7393 MaterialBuilder.meltingPoint defaults to -1, Materials.getLiquidTemperature checks for -1 and the constructor averages component melting points for compounds. MaterialsInit gets explicit setMeltingPoint calls for organic chemicals and exotic fluids. - @Nana-Sakura
- Added: melting points for organic chemicals and exotic fluids
- Fixed: Fluid temperature showing 0K
- Closes GTNH#24362
- #7392 MTEHatchInputBusME and MTEHatchInputME call configureWatchers from setSlotConfig, clearSlotConfigs and pasteCopiedData, which bypassed it after #7185. - @ReignOfFROZE
- Fixed: ME input buses and hatches not updating when network contents change
- #7391 BWMetaGeneratedOres overrides onBlockActivated, onBlockClicked and onBlockHarvested to post OreInteractEvent on the Forge event bus, as GTBlockOre does. - @Algent
- Fixed: Touch-based Visual Prospecting not working on BartWorks ores
- Closes GTNH#25778
- #7390 Modified MTEIndustrialApiary temperature calculation to include height dependency in the logic. - @vnesterovskyi
- Fixed: industrial apiary temperature dependency on height
- #7389 FluidEjectionHelper.ejectFluids drops the inner while loop and makes one storePartial call per output per pass, using its boolean result to decide whether to move on to the next hatch. - @hinyb
- Fixed: Fair fluid ejection dumping the same fluid into multiple slots above Integer.MAX_VALUE
- #7387 Adds an isItemValidForPhantomSlot override returning index == FILTER_SLOT_INDEX to MTERecipeFilter and MTETypeFilter, needed after #7116. - @toenailsin
- Fixed: Phantom slot not working in Recipe Filter and Type Filter
- #7386 Restores six deleted *_disabled.png overlay_button textures removed in #7048, which are still referenced by MUI1 through GTUITextures. - @mllfjn
- Fixed: Missing textures on Advanced Assembly Line GUI buttons
- Closes GTNH#25701
- #7382 Disabled fluorite auto-gen flag in RecipeGenOre. - @MLGfruitshoot
- #7381 Fixed typo in network lifecycle methods; added network to network set on join; moved route invalidation to tracker; added divide-by-zero prevention; improved network state updates; added factory network and BEC routing tests. - @RecursivePineapple
- Added: unit tests for factory networks and BEC routing, network ID to BEC scanner info
- Removed: unused Dijkstra code
- Fixed: BEC condensate injection bug, network lifecycle method typo
- #7378 DroneConnection's NBT constructor skips getLoadedGTBaseMachineAt and leaves cachedCentre and cachedMachine null when NetworkUtils.isClient() is true. - @RealSilverMoon
- Fixed: Client log spam from off-thread tile entity reads in DroneConnection
- #7377 Removed incorrect theme initialization from MTEBoiler base class; added correct theme setup to MTEBoilerBronze. - @TheYoingLad
- Added: theme setup in MTEBoilerBronze
- Removed: incorrect theme code from MTEBoiler
- Fixed: boiler GUI theme
- #7372 MTEExoticModule.convertItemToPlasma now loops over all oreIDs of the stack and uses the first one that resolves to a registered plasma fluid, instead of only the first oreID. - @Azusfin
- Fixed: Heliofusion Exoticizer giving wrong output for carbon dust
- Closes GTNH#25904
- #7371 ForgeOfGodsData battery fields, getters, setters and NBT (setLong) changed from int to long. SyncValues use LongSyncValue, MTEForgeOfGods increaseBattery/reduceBattery take long with overflow clamping, and BatteryConfigPanel validates input with BigInteger and a digits-only pattern. - @DreamYao520
- Fixed: God Forge battery charge overflow above the int limit, crash when entering the long maximum as battery charge
- #7368 Added block icon definition to BlockDarkWorldSludgeFluid for proper rendering in item/fluid preview systems. - @zaru-noodles
- Added: block icon for sludge
- Fixed: mixer crash on chum recipe
- Closes GTNH#25688
- #7367 Modified BECRecipes to use single hexanite gear + small gear instead of double hexanite gear in time dilation recipes. - @Ruling-0
- Fixed: Tipler/Galli recipe conflict
- #7366 checkMachine in MTEMegaOilCracker, MTEMegaOilCrackerLegacy and MTEDigester now sets heatLevel to HeatingCoilLevel.None before checking the structure piece. - @Yoshy2002
- Fixed: coil tier not resetting on structure check in Mega Oil Cracker and Digester
- #7362 Updated TTMultiblockBase to use the same utility function for NBT item serialization as MTEMultiblockBase, ensuring items are correctly persisted regardless of stack size. - @Azusfin
- Fixed: BEC item voiding on restart
- #7355 MTELargeNaquadahReactor structure array adjusted to include missing symmetrical block. - @Sanduhr32
- Fixed: missing block in LNR symmetry
- #7350 TTRenderGTProgressBar.draw clamps the progress ratio to 0-1 and guards against a zero max. MTEPump.onPostTick only increments the bottom pump's mProgresstime while it is below mMaxProgresstime. - @zaru-noodles
- Fixed: client hang when looking at a Basic Pump with full buffer
- Closes GTNH#25641
- #7348 MTEMultiBlockBase.getWailaBody now builds the item name from the stack in NBT with loadItemStackFromNBT and getDisplayName on the client. It looks the fluid up by its internal name through FluidRegistry and uses getLocalizedName. - @Eldrinn-Elantey
- Fixed: untranslated WAILA output item and fluid names on dedicated servers
- #7345 MTEHatchInputME now calls a new proxyCheckup, which runs proxy.onReady if the proxy is not ready, from both isAllowedToWork and endRecipeProcessing, because onFirstTick can run too late. - @lc-1337
- Fixed: ME fluid input hatch not supplying fluid right after world startup
- #7340 AntimatterForgeGui now formats the contained and change values with numberFormat instead of standardFormat. - @1328116700
- Fixed: scientific notation on SSASS/SLAM GUI values
- Closes GTNH#25589
- #7337 Added neiTransferRectId("gt.recipe.fakecuttingsaw") to the cutting machine recipe map in RecipeMaps. - @TotallyNotOndre
- Fixed: progress bar not clickable in cutting machines
- #7336 Added contentsChanged flag updates in MTEBECStorage shutdown procedures to notify hatches of storage state changes. - @RecursivePineapple
- Fixed: hatches not updating when BEC storage shuts down
- #7335 CoverMetricsTransmitter's getInfoData fallback now runs each string through IGregTechDeviceInformation.decode before building the payload, following the deferred key/args format from #7111. - @Eldrinn-Elantey
- Fixed: raw translation keys on Advanced Sensor Cards
- #7333 chainAllGlasses in GTStructureUtility is wrapped in a new triggerItemTransform element that caps the trigger stack size at the max glass tier index (capGlassStack) before it reaches the tiered glass element. - @AnsonYeung
- Fixed: projector stack size picking glass tiers without the glass channel
- Migration: Only affects which glass a projector or the survival autobuilder picks while placing a new multiblock when no glass channel is set. A large held stack now means the highest glass tier. Explicit glass channel settings behave as before.
- #7332 Modified
MTEVoidMinerBaseto provide detailed failure reasons and updated language strings with specific shutdown messages for intended void mining failures. - @Algent- Added: Detailed Void Miner failure messages
- Fixed: Asteroid dimension mining failure clarity
- Closes GTNH#25647
- #7329 Added validation in
CondensateTyperequiring multiples of half-unit amounts; updated recipes inBECMetaMaterialRecipesandBECRecipesto use varied materials (Netherite, Proto-Halkonite, etc.) by tier; improved nanite length exception reporting inTecTechRecipeMaps. - @Ruling-0- Added: Condensate unit validation, Tier-specific recipe component diversity
- Fixed: BEC recipe conflicts, Excess condensate generation
- #7326 Fixed
EnumCycleSettingRowGUI sync; updatedMTEBECIONodeto accept multi-amp hatches and respectmin-parallelconstraints; corrected BEC Assembler and IO Node tooltip text. - @AnsonYeung- Removed: BEC Assembler tooltip section
- Fixed: IO Node crash on multi-amp, Outdated BEC documentation
- #7324 Bumps the compileOnlyApi ForestryMC dependency from 4.11.28 to 4.11.30. MechArmorBase now implements IArmorApiaristMulti instead of IArmorApiarist, including in the InterfaceList. - @FourIsTheNumber
- Fixed: crash caused by Forestry interface change
- #7322 Modified
EnumCycleSettingRowto fix GUI parameter handling on servers; addedcopyToClient()methods to all parameter classes (IntegerParameter,LongParameter,DoubleParameter,BooleanParameter,EnumParameter,StringParameter,FluidParameter,CompositeParameter) and refactoredSettingsPanelParameterCompatto delegate to this new interface. - @Corexis- Added: copyToClient() method on Parameter classes
- Fixed: Server-side parameter GUI crash, Space Elevator Pump GUI interaction
- Closes GTNH#25621
- #7317 The air element in MTENanoForge ('Z') and MTEForgeOfGods ('L') changed from ofBlock(Blocks.air, 0) to StructureLib's isAir(). - @koolkrafter5
- Fixed: structurelib log spam from Nano Forge and Forge of the Gods
- #7310 Restructured
IOutputBusTransactionandIOutputHatchTransactioninto newIOutputTransactioninterface; fixed void protection logic inMTEHatchOutputBusMEandMTEHatchOutputME; corrected parallel capacity calculations inFluidEjectionHelperandItemEjectionHelper; revertedlastInputTickto prevent cascading output loops. - @hinyb- Added: IOutputTransaction interface
- Removed: lastInputTick optimization
- Fixed: Void protection bypass, Infinite output loops, Dynamic capacity parallel calculation
- Closes GTNH#25740
- #7308 Modified
MTEBeamCrafterto set EU/t discount to 0% during calculation, then apply the correct EU/t at recipe end to fix 1-tick recipe power accounting. - @AnsonYeung- Fixed: 1-tick recipe power consumption
- #7305 MaterialGenerator now always creates RecipeGenOre and adds the Fluorite dehydrator recipe inline. RecipeGenFluorite is deleted. RecipesGregTech chemplant Fluorite recipes now output getRawOre, with the fluid amounts swapped between the sand and sandstone variants. - @MLGfruitshoot
- Added: GT++ ore byproducts for raw ore and ore blocks, full ore chain for Fluorite
- Removed: special Fluorite recipe class
- Fixed: missing washer and thermal centrifuge recipes for some GT++ ores, missing byproducts on GT++ raw ore and ore blocks
- Migration: Check setups that take output from the two Fluorite chemical plant recipes: they keep their inputs but now give raw Fluorite ore instead of the same number of Fluorite ore blocks.
- #7304 MTEHatchVacuumConveyorGui now calls allowC2S() on the contents GenericSyncValue so client-to-server sync is allowed. - @AnsonYeung
- Fixed: delete stored CC button not syncing
- #7303 Refactored
MTEBeamCrafterto useProcessingLogicinstead of custom logic, enabling CRIB support and future void protection. - @AnsonYeung- Added: CRIB support for Beam Crafter
- #7302 In MTEIndustrialArcFurnace.onRunningTick, the ArcIgnition phase now returns true after the power drain check instead of falling through to super. The recipe check uses getMaxInputEu() against startupRequiredPower, and calculatedEut is set to startupRequiredPower. - @Pxx500
- Fixed: Industrial Arc Furnace startup power check and EU usage in the arc ignition phase
- #7301 Added max tier placement logic back to
GlassTierwith explanatory comment. - @Ruling-0- Fixed: glass tier max placement
- #7297 MTEYOTTAHatch.canAccept had inverted locked-fluid logic. It now returns true only when the locked fluid is null or equal to the input and the stored fluid is null or equal to the input. It also returns false for a null input or null fluid stack. - @ChromicRedBrick
- Fixed: YOT Hatch Sticky Mode blocking external AE fluid insertion
- Closes GTNH#21268
- #7296 Updated the OVERLAY_WIRELESS_ACTIVITYDETECTOR.png texture. - @KleinGrrmpf
- Fixed: missing pixels on the Wireless Activity Detector overlay
- #7288 Modified
RecipeMapFrontendandBECAssemblyFrontendto display correct nanite tier with teal color and add line break for Max Nanite Tier. Updated lang keys in en_US and ru_RU. - @Ruling-0- Fixed: BEC tooltip nanite tier display, BEC tooltip overflow
- #7287 Added new
MacerationStackConversionRecipeclass andGTNEIMacerationStackConversionNEI handler. ModifiedMTEIndustrialMaceratorconversion logic to preserve upgrade chip NBT. Registered viaGTProxy. - @koolkrafter5- Added: MacerationStackConversionRecipe class, GTNEIMacerationStackConversion NEI handler, lang keys for stack conversion tooltip
- Removed: old inline conversion recipes from MTERecipeLoader
- Fixed: maceration stack upgrade chip loss on conversion
- #7283 MTEHighTempGasCooledReactorGui splits getReactorInfoText by line and runs each line through IGregTechDeviceInformation.decode before passing it to the terminal text widget. - @Eldrinn-Elantey
- Fixed: raw translation keys in the HTGR GUI
- #7278 Removed the explosion addInfo lines from createTooltip in MTELargeNaquadahReactor and MTENeutronActivator, plus an unused EnumChatFormatting import. - @MLGfruitshoot
- Removed: false explosion tooltip lines
- Fixed: Large Naquadah Reactor and Neutron Activator tooltips claiming the machines explode
- #7274 Removed the MTEHatchInputME special case in MTEMultiBlockBase.drain. MTEHatchInputME.drain now simulates with extractItems when doDrain is false and only does poweredExtraction and an info slot update when it is true. Structure error widgets get CenterLeft alignment and childPadding 2. - @AnsonYeung
- Fixed: Endothermic Fridge not consuming fluids from ME input hatches, structure error text alignment in multiblock GUI
- Closes GTNH#25363
- #7273 AntimatterForge saves the previously used magnetic stabilization fluid and the passive power consumption to NBT and restores them on load. Constants are also renamed to upper case and reordered. - @Sprite104
- Fixed: Antimatter Forge passive power consumption resetting after restart, Antimatter Forge power failing on server restart
- Closes GTNH#20591, GTNH#23534
- #7272 MTEHatchCraftingInputME.insertItem and insertFluid now skip stacks already at Integer.MAX_VALUE and handle inserted sizes above Integer.MAX_VALUE in the merge branch. The duplicate overflow handling is removed, and refund calls isEmpty() to delete zero-size stacks. - @lc-1337
- Fixed: wrong stack math when inserting beyond int max into the ME crafting input hatch, zero-size stacks left after refund
- #7271 Removed reference to Explosion Hazard Blocks from MTEImplosionCompressor tooltip. - @Yoshy2002
- Removed: Explosion Hazard Block mention from tooltip
- Fixed: Misleading Implosion Compressor structure tooltip
- Closes GTNH#25410
- #7268 Ore worldgen now calls StoneType.findStoneType(world, x, y, z) instead of resolving the stone from block and meta and bailing out on canGenerateInWorld. StoneType's prefix map is built with a plain groupingBy collector, and the unused OreManager.setOre and VISUAL_STONE_TYPES are removed. - @Algent
- Removed: unused OreManager.setOre method
- Fixed: ores not generating correctly on Seth
- Closes GTNH#24680
- #7266 MTEHatchOutputMEBase now calls updateCellArray in setPriority and setCacheMode. Every 20 ticks onPostTick calls updateCell and sets the active state from wasActive instead of the proxy's active state. - @hinyb
- Fixed: ME Output Bus in Cache Mode not visible to ME network after server restart
- Closes GTNH#25516
- #7262 In MTESOFuelCellMK1 and MTESOFuelCellMK2 the 'g' element changes from ofBlock(sBlockGlass1, 0) to Casings.ReinforcedGlass.asElement(). - @LazyFlesh
- Fixed: unintended glass change in Solid Oxide Fuel Cell structures
- Migration: The material change this reverts existed only between two 2.9 daily builds one day apart. A 2.8.4 SO Fuel Cell was built from IC2 Reinforced Glass, which Postea converts to GT Reinforced Glass on world load, so the machine keeps validating.
- #7259 Fixed numeric constant in MTELargeNaquadahReactor tooltip text. - @JustACasualDay
- Fixed: Incorrect block amount in structure tooltip
- Closes GTNH#25498
- #7258 Removed registerPlasmaArcFurnace and its call in MTERecipeLoader. The matching core mod change is NewHorizonsCoreMod PR 1829. - @zaru-noodles
- Removed: Plasma Arc Furnace crafting recipes
- Fixed: deprecated Plasma Arc Furnace still craftable
- Closes GTNH#25488
- #7256 powerfailTracker.removePowerfailEvents is now called only on the server side, guarded by isServerSide in BaseMetaTileEntity.onRightclick and in MTEMultiBlockBase.onGuiOpened and onRemoval. - @AnsonYeung
- Fixed: crash when destroying a multiblock controller on a server, crash when breaking a vending machine block
- Closes GTNH#25490, GTNH#25501
- #7255 BaseMetaTileEntity.enableWorking now sets the shutdown reason to ShutDownReasonRegistry.NONE. - @mllfjn
- Fixed: machine controller cover keeping the old shutdown reason after re-enabling
- Closes GTNH#25368
- #7254 The recipe info text widget in MTEMultiBlockBaseGui is now enabled when maxProgressTime is above 0, instead of when item or fluid output lists are non-empty. Predicates.isNonEmptyList is replaced by isPositive, which checks an IntSyncValue. - @mllfjn
- Fixed: missing duration in multiblock GUI for processes with no results
- Closes GTNH#25374
- #7246 In MTEMultiBlockBaseGui, a shared change listener is now also attached to the maxProgressTime syncer, alongside the item and fluid output syncers, so the recipe info widget rebuilds in the right order. - @mllfjn
- Fixed: fluid amounts shown as infinity after manually turning on a multiblock
- Closes GTNH#25021
- #7243 Updated en_US.lang strings for the foundry module tooltips to match earlier balance changes: 0.1 to 0.08, 6 to 8, and 75% to 80%. - @chrombread
- Fixed: outdated Foundry module tooltip values
- #7242 EIGSeedBucket.removeSeedFromDrops now checks the drop's ore dictionary IDs against a seed entry. Matching items are removed from the drop table instead of only being reduced by the consumed amount. - @JesseSprinkle
- Removed: seed output from Extreme Industrial Greenhouse
- Fixed: Extreme Industrial Greenhouse outputting seeds
- #7240 Updated
MTENanoForgestructure validation to skip maintenance hatch requirement for T4 tier while keeping it for lower tiers. Reduced minimum casing count to 2780. - @DylanTaylor1- Fixed: T4 Nanoforge incorrectly requiring maintenance hatch
- #7238 Updated
MTEPurificationUnitFlocculationandMTEMegaIndustrialApiarywater placement logic (minimal diff suggests water block state or placement timing fix). - @Yoshy2002- Fixed: Water placement in purification and apiary multiblocks
- #7234 Enhanced
FakeCuttingFrontend,FakeCuttingSpecialInfo, andGTNEIDefaultHandlerto display recipe modifiers and requirements. UpdatedFakeCuttingRecipesto compute and show energy discounts. Added new ICF recipe catalyst support. - @TotallyNotOndre- Added: Cleanroom/LowGrav requirement display, Energy discount per fluid in NEI, ICF catalyst indicator, Overclock accounting in handlers
- #7233 Changed OreMixes heightRange for GTPP5 (15-58), GTPP7 (20-58), GTPP11 (18-58) and GTPP12 (22-58). - @Algent
- Fixed: Toxic Everglades ore veins generating outside the terrain height
- #7232 Removed pollution configuration from
PollutionConfigand disabled pollution inMTEThermalBoilerLegacy. Completes earlier PRs (#6855, #7197) that removed muffler hatch requirement and tooltip references. - @DylanTaylor1- Removed: Pollution configuration entries for Thermal Boiler, Pollution output from MTEThermalBoilerLegacy
- Fixed: Thermal Boiler still requiring pollution handling
- Closes GTNH#25572
- #7231 Removed the getLastShutDownReason() == POWER_LOSS identity check in BaseMetaTileEntity and MTEMultiBlockBase, since it failed for reasons deserialized by readFromNBT. removePowerfailEvents is now always called, and the tracker ignores missing entries. - @AnsonYeung
- Fixed: power failure markers not clearing after world reload
- #7229 Fixed
ArcFurnaceContextstartup power accounting. Added 'machine tier' optional argument toResultInsufficientStartupPowerfor better error reporting. UpdatedMTEIndustrialArcFurnacewith corrected startup logic. Enhanced electrode tooltip generation inArcFurnaceElectrodeloader. - @Pxx500- Added: startup amperage line on electrode tooltips, machine tier amperage estimate in startup power failure message, iridium ore macerator recipe
- Fixed: startup ignoring electrode amps per parallel, causing silent failures, netherite hot-start skipping the startup power check
- #7224 Changed chemicalBathRecipes maxIO in RecipeMaps from (2, 3, 2, 2) to (2, 6, 2, 2). The NEI handler gets 6 item output slots. - @Auynonymous
- Fixed: Salty Root chemical bath recipe display in NEI
- Closes GTNH#25456
- #7223 RecipeGenExtruder adds an ingot + Shape_Extruder_Small_Gear recipe with duration max(mass*2,1) at vVoltageMultiplier EU/t, skipped for radioactive materials. RecipeGenFluids adds a Shape_Mold_Gear_Small fluid solidifier recipe, 144 fluid, 3 seconds. - @Auynonymous
- Added: GT++ small gear extruder recipes, GT++ small gear fluid solidifier recipes
- Fixed: missing GT++ small gear recipes
- #7221 GTPowerfailRenderer called glEnable with GL_ALPHA, which is not a valid capability; changed to GL_ALPHA_TEST. - @AnsonYeung
- Fixed: GL error log spam on power failure rendering
- #7216 Updated createTooltip in a number of multiblock classes (BioVat, Circuit Assembly Line, Void Miners, Large Naquadah Reactor, Yotta Fluid Tank, Plasma Forge, Solar Factory, and others) to pass hint block numbers to the MultiblockTooltipBuilder hatch methods, removing wrong dot values and using addMufflerHatch in MTEAirFilterBase. - @Yoshy2002
- Added: missing hatch tooltips
- Fixed: wrong structure hint numbers on multiblock hatches
- #7215 WorldgenGTOreLayer and GTWorldgenerator now cache a CachedOreVein (layer, placementSeed, placement) per oreseed so every chunk uses the same placement seed. OreManager gains canSetOreForWorldGen checks. The oregen pattern is split into client and server getters and a client setter. - @Kogepan229
- Fixed: ore veins fragmenting across chunk boundaries, small veins of a different ore spawning inside ore chunks, ores missing from some chunks of a vein
- Migration: Forward-only worldgen fix. A vein that was half generated in 2.8.4 may not line up perfectly with the half generated after the update, which is cosmetic.
- Closes GTNH#24689, GTNH#24690
- #7207 Added a " Frame Box" suffix to the frameGt OrePrefix and changed BlockFrameBox.getLocalizedName to use it, keeping the switch for special materials. Added six en_US.lang entries for the phononmedium and quarkgluonplasma entangled condensates (abbrev, fluid, cell). - @Ruling-0
- Fixed: BW frame box names showing only the material, missing names for two entangled condensates
- #7206 GTItemSink now passes imte.getBaseMetaTileEntity() to the InventoryItemSink super constructor instead of the meta tile entity. - @AnsonYeung
- Fixed: conveyor covers ignoring input blocking
- Closes GTNH#24642
- #7205 Corrected the hatch dot numbers and added missing hatch entries in createTooltip() for MTECircuitAssemblyLine, MTEFuelRefineFactoryLegacy, MTESupercriticalFluidTurbineLegacy, MTEElectricImplosionCompressor, MTEExothermicHearth, MTEIndustrialExtruder, MTELargeChemicalReactor, MTENuclearReactor and MTEMicrowave. Tooltip text only. - @Yoshy2002
- Fixed: wrong hatch hints in multiblock tooltips
- #7204 ToolVajra.onItemUse was rewritten to redirect right click to the break action, removing the per-block special cases. BlockMachines.harvestBlock now sends an S23PacketBlockChange to the player to resync immediately. - @AnsonYeung
- Fixed: Vajra hotswap broken, broken machine block reappearing for one tick
- Closes GTNH#25198
- #7199 In MTEElectricAutoWorkbench, mode 9 now reads the grid positionally instead of compacting items, the preview is refreshed in all modes, and benchContent() no longer mis-indexes its accumulator. Mode 0 recipe building was extracted into helper methods. - @DerekChan65535
- Fixed: Circle mode not matching shaped recipes, stale recipe preview in slot 28, material mis-count in benchContent
- #7195 In EyeOfHarmonyFrontend.format, the Numerical case no longer passes the EU values through formatNumber and passes them directly to translateToLocalFormatted. - @DylanTaylor1
- Fixed: EOH Numerical notation showing exponential form
- #7194 Added GTRecipe.rollOutput(IGregTechTileEntity, int) and rollOutput(int, int). MTEBasicMachine, MTEBasicMachineBronze, MTESteamMaceratorBronze and MTESteamMaceratorSteel now use it in checkRecipe. - @tiffit
- Fixed: Steam Extractor 100% output chance on cropsNH recipe
- Closes GTNH#25402
- #7192 ArmorState.load only adds a saved active behavior to activeBehaviors if it is still present in the behaviors map. - @FourIsTheNumber
- Fixed: toggleable armor behaviors stuck active after augment removal
- #7191 MechArmorBase.showIngamePopups and showNodes now call context.isBehaviorActive instead of hasBehavior for GogglesOfRevealing. - @FourIsTheNumber
- Fixed: Mechanical Armor goggles not toggleable
- #7190 MTEDigester now implements ICasingTextureProvider and the hatch adder casingIndex changed from 47 to 48. The custom getTexture override using TextureFactory was removed. - @koolkrafter5
- Fixed: Digester hatch textures using the wrong casing
- #7184 Moved Materials.Air = loadAir() from loadDegree1Compounds() to loadDegree2Compounds() in MaterialsInit so its components (noble gases) are initialised before it, avoiding a null material component. - @tiffit
- Fixed: Air chemical formula containing an empty component
- Closes GTNH#25389
- #7183 IGregTechDeviceInformation.toComponent now escapes % as %% in the key part before building the ChatComponentTranslation. Keys must be lang keys, since a literal % in the key is converted. - @AnsonYeung
- Fixed: Debug Scanner crash on strings containing a percent sign
- Closes GTNH#25390
- #7181 ArmorEventHandlers.onPlayerTick now returns early unless the phase is START and the player is alive. It restores step height only for players in savedStepHeight, instead of matching on MAGIC_STEP_HEIGHT. - @wlhlm
- Fixed: EnderIO Dark Boots step assist not working with Modular Armor
- Closes GTNH#25354
- #7180 BlockBaseModular registers FRAME-type blocks via GregTechAPI.registerMachineBlock and calls GregTechAPI.causeMachineUpdate in breakBlock and onBlockAdded. Material blocks and ore are excluded by a block type check. - @FourIsTheNumber
- Fixed: Industrial Centrifuge incomplete structure check with GT++ frames
- Closes GTNH#25384
- #7177 In MTELargeChemicalReactor's coil placement, survivalPlaceBlock now returns PlaceResult.REJECT instead of SKIP when mCoilAmount is above 0. - @AnsonYeung
- Fixed: Large Chemical Reactor preview missing blocks
- Closes GTNH#25245
- #7176 Corrected armor piece index comparison in MechArmorBase jetpack rendering logic. - @FourIsTheNumber
- Fixed: jetpack rendering
- #7170 Corrected input/output order in DustLoader mixer recipe generation. - @AnsonYeung
- Fixed: swapped mixer inputs and outputs
- #7168 canDumpFluidToMEByLayer in MTEMultiBlockBase now loops over the outputs and returns false when there are fewer layers than outputs. OutputHatchWrapper's transaction now implements IRecipeCheckAware and passes setRecipeCheck to the wrapped hatch. FluidEjectionHelper now filters transactions with a single predicate. - @AnsonYeung
- Fixed: Distillation Tower crash with fewer outputs than layers, Distillation Tower producing non-stop into a full ME output hatch
- #7165 Added intermediate cast to regular TileEntity before casting to GregTech tile entity in ItemMachines offhand wrench logic. - @mhowell9
- Fixed: fluid pipe wrench crash
- #7164 Added chili powder macerator recipe back to the Pulverizer recipe loader. - @Algent
- Added: chili powder macerator recipe
- Fixed: missing macerator recipe
- Closes GTNH#25318
- #7163 In RecipesMachinesCustom.treeGrowthSimulator, the GTOreDictUnificator plank/Wood input was replaced with new OreDictItemStack("plankWood", 8). - @tiffit
- Fixed: Sterile Farm Casing recipe rejecting other wood planks
- Closes GTNH#25319
- #7162 CellLoader in bartworks now adds the Empty cell output only when cellEmpty is negative. Before, a positive value produced a null ItemStack in the outputs. - @tiffit
- Fixed: Crash in the cell loader when cellEmpty is positive
- #7159 Disabled enchantability flag in MechArmorBase. Augments remain the intended method for adding special properties to mechanical armor. - @Spaghetti-OberNub
- Fixed: armor piece glow visual bug
- Closes GTNH#25329
- #7158 MilkInfusionBehavior called Potion.isBadEffect(), which is client-only. It now checks via the PotionAccessor mixin interface and its gt5u$isBadEffect(), as PlayerSleepEventHandler does. The per-effect 5000 EU drain call was removed in the rewrite. - @Spaghetti-OberNub
- Fixed: Server crash from Milk Infusion armor augment
- Closes GTNH#25337
- #7155 MTEHatchCraftingInputME.isItemValidForSlot requires an ICraftingPatternItem only for indexes below SLOT_CIRCUIT and defers to the superclass otherwise. The unused IAddGregtechLogo interface was also removed. - @TheYoingLad
- Fixed: Crafting input hatch manual slot not accepting items
- #7154 MTECable.onLeftclick now skips the swap only when oldMetaID equals newMetaID, replacing the class, material, voltage and amperage comparison. - @AnsonYeung
- Fixed: Shift-click not replacing wires and cables of the same type
- Closes GTNH#25306
- #7152 RecipeMapBackend now uses GTUtility.mod for the cacheMap index in matchRecipeStream and cache, so a negative hash no longer gives a negative array index. - @AnsonYeung
- Fixed: Maceration Stack shutdown from a recipe cache crash
- Closes GTNH#25302
- #7151 MechArmorBase.protectEntity now loads the context from the armor stack passed in instead of the leggings slot, and getProtectionCount returns 4 using the new ForestryMC API. ForestryMC dependency bumped from 4.11.26 to 4.11.27. - @FourIsTheNumber
- Fixed: Apiarist augment only working on leggings
- #7150 MTEMultiBlockBase.getInfoData now uses IGregTechDeviceInformation.encode for the efficiency and pollution lines, so the translation key and value are sent together and translated on the client, rather than pre-translating with GTUtility.translate. - @MassAnarchyy
- Fixed: Portable scanner translation crash on multiblocks with mufflers
- Closes GTNH#25324
- #7146 Glass tier checks in checkMachine now call getTierForStructure() instead of reading mTier. MTEHatchEnergyDebug overrides getTierForStructure() to return voltageTier. - @FourIsTheNumber
- Fixed: Debug energy hatch failing the glass tier check on multiblocks
- #7143 GTInflectionManager now uses its own log4j Logger instead of GTMod.GT_FML_LOGGER, so the static access no longer initializes GTMod and many GT classes during early mixin load. - @zyf051520
- Fixed: GTMod loading too early when inflection is used, breaking late mixins
- #7137 MTEEnhancedMultiBlockBase.checkHasInputHatch now counts any MTEHatchCraftingInputSlave in mDualInputHatches as an input hatch, even when supportsFluids() is still false. - @AnsonYeung
- Fixed: Compact fusions unforming on world restart due to a missing input hatch
- Closes GTNH#25275
- #7136 MTECable.onLeftclick now calls issueTileUpdate after issueBlockUpdate in the cable swap path. - @AnsonYeung
- Fixed: Visual desync on cable swap in multiplayer
- Closes GTNH#25208
- #7133 LoaderGTOreDictionary registers stone for Materials.Stone with metadata 0 instead of the wildcard 32767, so GTOreDictUnificator no longer picks the wildcard as the canonical item. - @AnsonYeung
- Fixed: Mortar not craftable from stone produced by compressing stone plates
- Closes GTNH#25151
- #7132 Adds MetaTileEntity.isItemValidForPhantomSlot, which defaults to false. MTEItemStackHandler.isItemValid now also accepts it. MTERegulator, MTEFilter, MTEElectricAutoWorkbench and MTEAutoChisel override it, and slot offsets become named constants. MTEAutoChisel.isValidSlot now excludes its special slot. - @TheYoingLad
- Fixed: Phantom slot duping, Phantom slots that could not be interacted with
- #7131 ClientMetaManager.readBlockFromPacket is now empty. It used chunk-local coordinates as world coordinates and wrote metadata to the wrong position. writeBlockToPacket now sets the client meta for any IBlockWithClientMeta block without the tracker lookup. - @AnsonYeung
- Fixed: Random client-side metadata overwrite on block change packets
- #7127 Adds displayedAmperesIn() to MTETransformer, overridden in MTEWetTransformer and MTETransformerHiAmp with half-mode values. WAILA NBT sends a new displayedAmperesIn tag and getWailaBody reads it in place of maxAmperesIn. - @AnsonYeung
- Fixed: Incorrect amperage in the transformer WAILA tooltip
- Closes GTNH#25127
- #7120 In MTEScanner.checkRecipe, an ALScannerResult whose eut is above V[mTier] now returns FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS before calculateOverclockedNess. This restores the check lost in PR 5677. - @AnsonYeung
- Fixed: Scanner running Assembly Line research above its voltage tier
- Closes GTNH#25077
- #7115 Updated tooltip text in MTEIndustrialMixer controller to match actual in-game casing name. - @Steelux8
- Fixed: Mixer casing name consistency
- #7103 Corrected progress bar widget theme registration class in GTWidgetThemes and ProgressbarWidgetTheme to use correct class references. - @TheYoingLad
- Fixed: Resource pack heat bar override compatibility
- #7101 FluidEjectionHelper no longer clamps the per-parallel amount with GTUtility.longToInt. FluidParallelData.perParallel and its constructor argument change from int to long. - @Marsietiss
- Fixed: Fluid output above the int limit being voided
- #7100 Marked space miner recipes as collision-ignorant in IG_RecipeAdder so duplicate input recipes are not removed by the collision checker. - @AnsonYeung
- Fixed: Space miner ore detection
- Closes GTNH#24426
- #7088 KnockbackResistBehavior now uses the AttributeModifier constructor without a UUID, so a random UUID is generated, and the hardcoded KNOCKBACK_RESIST_UUID is removed. The author does not know why this fixes the crash. - @FourIsTheNumber
- Fixed: Crash when experimenting with Mechanical Armor
- Closes GTNH#25221
- #7087 MTEMultiBlockBase gets getEUtForDamageCalc() returning mEUt, used in doRandomMaintenanceDamage. MTEExtendedPowerMultiBlockBase overrides it to return lEUt, which broke when a safeInt copy into mEUt was removed in #6611. - @Yoshy2002
- Fixed: new turbines not losing durability
- #7085 Removed the getInventoryStackLimit override returning 1 from MTEHatchExtrusion and the shape filter on the item slot grid in MTEHatchExtrusionGui. The gui now uses CommonButtons.createToggleButton. - @TheYoingLad
- Removed: Stack size limit of 1 on Extrusion Hatch slots
- Fixed: Extrusion Hatch slot limit
- Closes GTNH#25190
- #7084 Corrected fluid output handling in MTEDistillationTower and MTEMegaDistillationTower by fixing OutputHatchWrapper and VoidProtectionHelper logic; cleaned up MTEMultiBlockBase's IVoidable output handling. - @hinyb
- Removed: MockIVoidableMachine test mock
- Fixed: Distillation Tower fluid output without void fluids
- Closes GTNH#25206
- #7081 Removed mHungerEffect from GTProxy, hungerEffect from the Gregtech.General config and its load line in GTPreLoad. Rewrote onPlayerTickEventServer with an early return and dropped the hunger calculation. - @koolkrafter5
- Removed: hungerEffect config option
- Fixed: Food bar slowly draining while idle
- Closes GTNH#25078
- #7080 Adds ProcessingCrop, an IOreRecipeRegistrator on OrePrefixes.crop. It adds a compressor recipe of 8 crop to IC2_PlantballCompressed, 15 s at 2 EU/t, and is registered in LoaderOreProcessing. - @UltraProdigy
- Added: Compressor recipe for Compressed Plantball
- Fixed: Missing plantball recipe from the questbook
- Closes GTNH#25171
- #7079 ArcFurnaceElectrode.addInformation swaps the order of OCSpeedFactor and OCPowerFactor in the tooltip. Changes en_US and ru_RU tectech lang string fog.upgrade.text.14. - @Pxx500
- Fixed: Overclock order shown as Power/Speed in tooltips
- #7078 In gtPlusPlus ClientProxy.init, the AnimatedBlockTextureHandler registration is wrapped in Angelica.isModLoaded(). The Angelica runtimeOnlyNonPublishable line in dependencies.gradle is commented out. - @Ruling-0
- Fixed: Accidental runtime dependency on Angelica
- #7070 ClientMetaManager.writeToBuffer now always writes the block count (0 when the tracker has no list) and always writes a meta short, falling back to the world block metadata. This matches what readFromBuffer reads, so the stream no longer goes out of alignment. - @AnsonYeung
- Fixed: Corrupt chunk sync data for a second tracker, Corrupt chunk sync data for synced blocks without client meta
- #7068 Made mStrongRedstone and oldStrongRedstone private in CoverableTileEntity and added getStrongRedstone, setStrongRedstone and toggleStrongRedstone. The setter calls issueBlockUpdate only on change. mNeedsBlockUpdate moved from CommonBaseMetaTileEntity to CoverableTileEntity, and the soldering iron toggle in BaseMetaTileEntity and BaseMetaPipeEntity now uses toggleStrongRedstone. - @AnsonYeung
- Fixed: Strong redstone output spamming block updates every tick
- #7064 GTUtility.isFlowingWater returns metadata > 0 for CoFH water blocks. The update loop between CoFH water and GT tile entities is not fixed, only worked around. - @AnsonYeung
- Fixed: Flocculation Purification Unit not forming with a cover on it, CoFH flowing water not detected
- Closes GTNH#25192
- #7061 MetaTileEntity.getColor now returns the new IColoredTileEntity.UNCOLOURED (-1) when getBaseMetaTileEntity is null. - @YannickMG
- Fixed: NPE in MetaTileEntity.getColor
- #7056 Corrected hatch count and type requirements in MTESpargeTower and MTENuclearReactor, updated English language file with corrected requirement text. - @Luca-Guettinger
- Fixed: Sparge Tower construction requirement, Nuclear Reactor construction requirement
- #7055 Removed GTCopiedBlockTextureRender compact mode logic, updated multiple CTM property files to use compact_expanded mode instead. - @tiffit
- Removed: compact CTM mode checks, GTCopiedBlockTextureRender z-fighting workaround
- Fixed: CTM z-fighting workaround
- #7051 Switched MTEBeamMirror from simple facing to extended facing logic for proper directional output handling. - @Sanduhr32
- Fixed: downward-facing beam mirror output rotation
- #7050 Removed the ItemGTToolbox check from GTClient.shouldHeldItemForceFullBlockBB so the tool-aware hitbox logic applies. ItemGTToolbox.shouldDrawHighlightGrid now returns false for MetaPipeEntity targets when no tool is selected. - @querns
- Removed: forced full-block hitbox when holding the toolbox
- Fixed: hitbox blocking screwdriver use on TecTech Laser and Data hatches with a facing cable, toolbox grid drawn on pipes with no tool selected
- Closes GTNH#25149
- #7046 Corrected the tooltip strings in en_US.lang for gt.item.circuit.chip.stemcell and gt.item.circuit.chip.biocell. - @Shadowsoftime99
- Fixed: typo in Stemcells and Biocells tooltips
- Closes GTNH#25143
- #7036 Added Worldgen.EndAsteroids config class with size, probability and generate toggle, wired into DimensionDef (setGeneratesAsteroids now takes a boolean) and the Asteroids.EndAsteroids property builder; added a lang key. All options require an MC restart. - @LazyFlesh
- Added: End asteroids config section, option to disable End asteroids
- Fixed: End asteroids config missing after the asteroid refactor
- #7033 Re-enabled OreInteractEvent firing in GTBlockOre for left-click interactions, fixing a regression from VisualProspecting PR #65. - @Algent
- Fixed: OreInteractEvent not firing on ore left-click, Visual Prospecting prospecting requirement
- Closes GTNH#25136
- #7032 Removed the "chip" oredict name from all 24 chip items registered in MetaGeneratedItem03; the specific oredict names stay. - @Eldrinn-Elantey
- Removed: generic chip ore dictionary entry on circuit chips
- Fixed: AE2 substitution swapping different circuit chips in patterns
- #7031 GTCopiedBlockTextureRender and SBRWorldContext: Added conditional z-fighting fix that only applies layer offset adjustments during compact CTM rendering. Split boolean logic to track CTM state creation and cleanup. - @tiffit
- Fixed: Z-fighting with non-compact CTM rendering
- #7030 MTETeslaTowerGui: Adjusted button and panel layout for improved UX; added localization string to lang file. - @Luca-Guettinger
- Fixed: Tesla Tower power pass button and panel UX
- #7029 String-layout fixes in BECStructureDefinitions, AssemblyComplexStructureString, AntimatterStructures and ForgeOfGodsRingsStructureString. - @Yoshy2002
- Added: two BEC Storage glass blocks
- Removed: BEC Storage archway
- Fixed: asymmetric BEC Assembler ring sections, Antimatter Forge structure symmetry, Forge of the Gods ring structure symmetry
- Migration: Symmetry fixes unform your existing Antimatter Forge, Antimatter Generator and Forge of Gods rings - a few casings moved or changed type, so rebuild those sections against the new structure hologram.
- #7028 Changed the hatch names in tectech MachineLoader and the matching entries in the gregtech and tectech en_US.lang files. - @Yoshy2002
- Fixed: Inconsistent capitalization of Assembly Line Reception Connector names
- #7018 MTEBoilerGui: Added muffler button UI component to the boiler GUI. - @Keter01
- Added: Muffler button for all steam boilers
- Fixed: Missing muffler button on Solar Boiler and other steam boilers
- Closes GTNH#24377
- #7012 Adds CropsNHIndustrialFarm(28055) to MetaTileEntityIDs, matching the registration in CropsNH's MTELoader. - @C0bra5
- Added: MTE ID 28055 for CropsNH Industrial Farm
- Fixed: missing MTE ID registration for the CropsNH Industrial Farm
- #7007 MTEIndustrialCokeOven: the STRUCTURE_PIECE_NEXT shape's bottom row changed from ' FFF' to ' FF', so the first slice no longer overwrites the right-most blocks of the base structure, which have no valid hatch spots. - @Yoshy2002
- Fixed: Industrial Coke Oven slices not counting when a hatch sits at the end of the base structure's first slice
- Closes GTNH#24879
- #7005 Added validation or deduplication logic to GTRecipeRegistrator to prevent conflicting autogen arc furnace recipes. - @Pxx500
- Fixed: Autogen arc furnace conflicts
- #7004 WorldGeneratorSpace fixes swapped MinSize/MaxSize in the radius roll and swapped positive/negative ellipsoid lists. HEEIslandScanner drops the shared mutable pooled key for immutable pairs, WorldgenGTOreLayer drops a line that overwrote validated dimVeinHeights, and WorldgenStone is cleaned up with coordinate and early-exit fixes. Hashtable and some lists move to fastutil types. - @Algent
- Fixed: asteroids spawning on HEE islands, swapped asteroid min and max size, swapped asteroid ellipsoid lists, ore vein heights being overwritten, stone boulder generation using wrong coordinates
- #7003 Corrects section sign colour codes in gtnhlanth.tt.sc.info10, gtnhlanth.tt.synch.info8 and info9 in the gtnhlanth en_US.lang. - @DylanTaylor1
- Fixed: gray text in beamline tooltip equations
- #7002 MechArmorAugmentRegistries changes setMinimumCore(3) to setMinimumCore(2) on the forcefield augment. - @FourIsTheNumber
- Fixed: Wrong minimum core tier on the forcefield augment
- #7000 IArmorBehavior.protectsAgainst now returns protectsAgainstFully instead of false, so GalaxySpace's IHazardProtector check sees spacesuit behaviors. - @Eldrinn-Elantey
- Fixed: Spacesuit augment not protecting against atmospheric pressure
- Closes GTNH#25082
- #6999 Removed fragile player name-based ownership detection from readFromNbt across 7 ME-related hatch classes. Unified initialization to occur only during placement via ItemMachines, following AENetworkProxy's documented behavior for setPlayerId. - @AnsonYeung
- Removed: Player name-based ownership detection from readFromNbt
- Fixed: ME output bus proxy being set to -1 when using /nick
- Closes GTNH#25065
- #6992 MechArmorAugmentRegistries adds setMinimumCore(3) to the forcefield augment. PR #7002 later changes this value to 2. - @Spaghetti-OberNub
- Fixed: Energy Grid Defense core requirement
- #6991 In AssemblyLineRecipes, the Mega Distillation Tower research item changes from ItemList.Distillation_Tower to GregtechItemList.Machine_Adv_DistillationTower. - @chrombread
- Fixed: Distillation Tower scan matching both the Flotation Cell and the Mega Distillation Tower
- Closes GTNH#25072
- #6988 MTEIndustrialMixer tooltip changes the glass casing line's tier flag to false. checkMachine adds a glassTierNotEnough(UIV) error when exotic energy hatches are present and glassTier is below UIV. - @LunaDziaba
- Added: Structure error when using a multi-amp energy hatch with glass below UIV
- Fixed: Inaccurate Industrial Mixing Machine tooltip, Multi-amp energy hatches accepted without UIV glass
- Closes GTNH#25068
- #6985 Changed MTEEndothermicFridge cooling boost from speed boost to perfect overclock to support subtick precision, aligning with the deprecated MVF implementation. - @chrombread
- Fixed: Endothermic Fridge overclock behavior at high voltages
- #6977 In MTEBasicMachineBaseGui.createSpecialSlot, the ModularSlot no longer calls singletonSlotGroup(1000), so it is not a shift-click target. - @AnsonYeung
- Fixed: Storage slot used as a backup destination when shift-clicking into single block machine inputs
- Closes GTNH#25004
- #6976 WorldgenQuery.findRandomWithWeight and findRandomWithoutWeight compared the remaining roll with
<= 0instead of< 0. Both now use< 0. - @Tuxprogrammer- Fixed: Last vein in the filtered list never selected by worldgen queries
- #6973 Changed "Tungsten Steel" to "Tungstensteel" in en_US.lang for gregtech, kubatech and miscutils. - @Yoshy2002
- Fixed: inconsistent Tungstensteel spelling in lang strings
- #6968 MechArmorBase.shouldRender is now client-only and, when the helmet has no HoloInventory augment active, checks the player's Baubles slots for an IHoloGlasses item and returns true if one is found. - @Eldrinn-Elantey
- Fixed: modular helmet blocking HoloInventory glasses in a bauble slot
- #6967 GTRecipeRegistrator.registerReverseArcSmelting now skips the universal arc furnace recipe when isNoOpReverseArcSmelting finds a single output equal to the input with the same stack size. The gas variant recipes are still registered. - @Pxx500
- Removed: Arc Furnace recipes with identical input and output
- Fixed: Arc Furnace recipes with the same input and output
- Closes GTNH#25045
- #6966 GTDummyWorld now overrides getTileEntity(int, int, int) to return null, which stops the crash when a TileEntity is looked up in the dummy world. - @tiffit
- Fixed: crash when inserting Infused Seeds into the Extreme Industrial Greenhouse
- Closes GTNH#23998
- #6965 Changed the addOtherStructurePart string in MTETankTFFT.createTooltip from "Multi I/O Hatches" to "1x Multi I/O Hatch". - @jude123412
- Fixed: T.F.F.T tooltip implying more than one Multi I/O Hatch is allowed
- Closes GTNH#21110
- #6961 Changed the NEI handler shiftY from 6 to 8 in NEIGTConfig, reduced the EyeOfHarmonyFrontend background height base from 117 to 115, and raised the Eye of Harmony handler height from 314 to 326. - @slprime
- Fixed: misplaced recipe background in NEI recipe handlers
- #6960 Swapped the names of the toolHeadAngleGrinder_OVERLAY.png and toolHeadElectricSnips_OVERLAY.png files under the ichorium CUSTOM material icons. - @KwazziAus
- Fixed: swapped Ichorium Electric Wire Cutters and Angle Grinder textures
- #6956 Added a getRenderType() override returning -1 to BlockEOHRender and BlockForgeOfGods, the same fix as #6948. - @tiffit
- Fixed: missing textures on Eye of Harmony and Forge of the Gods render blocks
- #6952 In MTELargeEssentiaSmeltery.checkMachine, the early return condition was inverted (errors.isEmpty() instead of !errors.isEmpty()), so mParallel was never set on a valid structure. - @Krakenrek
- Fixed: Large Essentia Smeltery parallel always zero
- Migration: The zero-parallel bug existed only in 2.9 daily builds; the Large Essentia Smeltery worked in 2.8.4 and works now.
- Closes GTNH#25020
- #6951 Fixed ore mode logic in MTEIndustrialArcFurnace. - @kuba6000
- Fixed: Arc furnace ore mode
- #6950 Fixed text rendering bounds in PositionedStructureError. - @Luca-Guettinger
- Fixed: Structure error text clipping for long names
- #6948 BlockRenderer now overrides getRenderType to return -1, so the block does not render with the default block model. - @tiffit
- Fixed: missing texture on blocks rendered with BlockRenderer
- #6947 Added ProxiedMteGui, a ModularUI2 factory registered in GTGuis that opens the master's GUI with a fictional client-side MTE. MTEHatchCraftingInputSlave.onRightclick now opens it on the server instead of calling the master's onRightclick. CommonMetaTileEntity.getColoredTheme became public final. - @AnsonYeung
- Added: proxy GUI that opens without the buffer loaded on the client
- Fixed: unable to open the proxy GUI
- Closes GTNH#23564
- #6942 Updated laser hatch validation in MTEIndustrialArcFurnace to only allow specific hatch types. - @Pxx500
- Fixed: Arc furnace configuration validation
- #6941 Split recipe-check output logic from actual output in MTEHatchOutputBusME and MTEHatchOutputME, and added IRecipeCheckAware transactions. IVoidable.canDumpFluidToME now takes a List of FluidId, so implementers must update. MTEMultiBlockBase, the ejection helpers and VoidProtectionHelper were adjusted to match. Depends on #6998. - @hinyb
- Fixed: ME output hatch and bus voiding outputs during actual output, Fusion Reactor output hatches not respecting priority
- Migration: Addons implementing IVoidable must change canDumpFluidToME to take a list of fluid outputs.
- Closes GTNH#25183
- #6940 In MTELapotronicSuperCapacitor.processInputHatch, MTEHatchEnergyMulti hatches now add maxAmperes + (maxAmperes >> 2) to mMaxEUIn instead of maxAmperesIn(). The hatch instanceof checks in addBottomHatches were converted to pattern matching. - @Sanduhr32
- Fixed: LSC controller exploding when Laser Target Hatch amperage is changed
- Closes GTNH#25031
- #6934 Added setArcSmeltingIntoWithGas to MaterialBuilder and a mArcSmeltIntoWithGas map in Materials. GTRecipeRegistrator gets hasReverseArcSmeltingRecipe and gas-aware arc furnace recycling registration. Copper and AnyCopper now use Oxygen to reach AnnealedCopper. - @Pxx500
- Added: arc furnace recipes for Annealed Copper using Oxygen
- Fixed: Annealed Copper arc smelting not using oxygen
- #6928 Removed lastRecipe caching in MTEBeamCrafter to enable dynamic recipe switching via hatch priority; disabled CRIB support. - @ham-corp
- Removed: CRIB support in Beamcrafter structure
- Fixed: Hatch color priority on beamcrafter
- Closes GTNH#24780
- #6927 BaseMetaTileEntity.getStoredEU now clamps getEUVar() to mMetaTileEntity.maxEUStore() instead of getEUCapacity(). This brings back part of #6751, which #6779 reverted. - @Sanduhr32
- Fixed: stored EU capped against the wrong capacity value
- #6925 Added Hazard.STANDARD_HAZARDS (CBRN, temperature, electrical, no SPACE) and moved CBRN_HAZARDS and TEMPERATURE_HAZARDS into Hazard. The IC2 hazmat, nano and advanced solar helmet mixins now return STANDARD_HAZARDS.contains(hazard), and providesFullHazmatProtection iterates that set. - @FourIsTheNumber
- Fixed: Nano, Hazmat and Advanced Solar Helmet protecting against the space hazard
- #6924 Modified MTEExothermicHearth to allow unlimited tier skipping behavior in multiblock recipe processing. - @Yoshy2002
- Fixed: Exothermic Hearth unable to perform unlimited tier skips
- #6923 Added a getBlocksToPlace override returning the placed casing and meta to the structure element in GTStructureUtility, so the auto-place and NEI preview see the block. - @Yoshy2002
- Fixed: missing blocks in the God Forge module NEI preview
- Closes GTNH#25010
- #6922 GTUtility caches the distilled water block lazily instead of at class load. Added GTStructureUtility.fillStructureWithWater, reset needsWaterFill at the start of checkMachine, and reordered water and air element chains so water is tried first. - @Yoshy2002
- Added: automatic water placement for the Flocculation Unit and Purification Plant
- Fixed: Chem Bath and Ore Washing Plant not detecting distilled water, missing water in the NEI preview of the wash plant, clarifier and flocculation unit
- Migration: The distilled-water detection bug existed only in 2.9 daily builds. These multiblocks now also fill their own water pool.
- Closes GTNH#25042
- #6914 MTEEnergyInfuser.isItemStackFullyCharged now also treats an RF item as full when receiveEnergy(stack, 1, true) returns 0, which is what the transformed Draconium block returns. - @czqwq
- Fixed: Energy Infuser not outputting charged Draconium Blocks
- #6912 Changed PCB factory casing validation in MTEPCBFactory to only enforce minimum casing requirements for T3, preventing over-restrictive checks on lower tiers. - @Yoshy2002
- Fixed: PCB factory tier validation
- #6911 MTEIndustrialChiselLegacy.getRecipe now reads bus slots through getStackInSlot instead of accessing the mInventory array directly, so buses that do not back their slots with that array work. - @AnsonYeung
- Fixed: crash of the Legacy Chisel multiblock with a Stocking Input Bus
- Closes GTNH#24892
- #6905 Swapped hint block coordinates in MTEMegaDistillationTower so tooltip hints now align with actual placed block positions; added screwdriver interaction support for mode switching. - @chrombread
- Added: screwdriver right-click mode switching
- Fixed: tooltip hint coordinates misaligned with in-world layout
- #6901 Added onBaseTEDestroyed overrides to CoverRedstoneTransmitterExternal and CoverRedstoneTransmitterInternal that remove the frequency from sWirelessRedstone. The GUI syncers now route through processCoverData (basic covers) or call unregisterSignal before setting (advanced transmitter covers). - @FrostyFire1
- Fixed: basic redstone transmitter frequency staying in the map after the block is broken, old frequency not cleaned up when changing frequency or privacy in the cover GUI
- #6900 In ItemMachines.placeBlockAt, setOwnerName and setOwnerUuid now run before setFrontFacing. setFrontFacing triggered getProxy while the owner was still unset, a regression from #6758. - @AnsonYeung
- Fixed: ME output bus owner set to -1 on placement, Stocking Input Hatch (ME) not retrieving fluid from a subnet, ME output bus failing next to a storage bus with a security terminal
- Closes GTNH#24924, GTNH#24925, GTNH#24931, GTNH#24973
- #6898 GTRecipe_WithAlt gets a copy constructor and copy/copyShallow overrides. RecipeGenMultisUsingFluidInsteadOfCells and GTRecipeUtils.removeDuplicates now carry mOreDictAlt and mOreDictIds along with the filtered inputs. - @tiffit
- Fixed: oredict recipe inputs not working in RecipeGenMultisUsingFluidInsteadOfCells multis
- #6891 Removed the redundant augment.getTooltip() call in ItemAugment.addAdditionalToolTips, since GTGenericItem already adds the tooltip passed to its constructor. - @Eldrinn-Elantey
- Fixed: augment tooltip description shown twice
- #6889 getExoticAndNormalEnergyHatchList moved from MTEExtendedPowerMultiBlockBase to MTEMultiBlockBase. getInfoData now sums stored EU over that list instead of only mEnergyHatches. - @evgengoldwar
- Fixed: internal energy not shown with multi-amp or laser hatches
- #6880 Removed
finalmodifier from connectedTex field in BWBlocksGlass.java and BWBlocksGlass2.java to allow CTM to override; also removed unused connected variable from BlockCasings8.java. - @ABKQPO- Removed: Unused connected variable
- Fixed: Java 21 crash with CTM override on connection fields
- #6878 MTEMultiBlockBaseGui.registerSyncValues now uses the local baseMetaTileEntity for the shutdown display string and reason key sync values. multiblock.getBaseMetaTileEntity() returns null once the controller is broken, which caused an NPE. - @tiffit
- Fixed: server crash when breaking a multiblock with its GUI open
- #6875 Fixed NBT saving/loading of the 'outputColor' tag in MTENanochipAssemblyModuleBase; when server restarts, outputColor was resetting to -1, causing addOutputAtomic to fail finding the hatch and stopping the machine. - @czqwq
- Fixed: NAC module outputColor NBT tag not persisting across server restart
- #6870 Added a synced
canUseWirelessvalue to MTELapotronicSuperCapacitor that disables wireless toggle and rebalance buttons in MTELapotronicSuperCapacitorGui when no UHV+ capacitors are present, plus server-side guard in rebalance(). - @Luca-Guettinger- Fixed: LSC wireless mode and manual rebalance usable without UHV+ capacitors
- Closes GTNH#24950
- #6867 Added null-safety checks in CoverEnderFluidLinkGui to prevent crashes during GUI initialization on server. - @Luca-Guettinger
- Fixed: Ender fluid link cover crash on open
- Closes GTNH#24951
- #6859 Added map corruption checks and defensive initialization in GhostCircuitSyncHandler, GhostCircuitSlotWidget, GhostShapeSlotWidget, and GhostShapeSyncHandler to prevent NPE during sync handler setup. - @Luca-Guettinger
- Fixed: NPE crash when opening singleblock GUIs
- #6856 In MTEThermalBoiler and MTEThermalBoilerLegacy createParallelHelper, water inputs are zeroed with inputFluid.amount = 0 again, instead of nulling the array entry. - @Yoshy2002
- Fixed: Thermal Boiler logic broken by the combination of #6798 and #6836
- #6854 MTEIndustrialFishingPond structure definition merges the separate InputHatch hatch adder into the single atLeast call, so the chain has one element with all hatch types. - @Yoshy2002
- Fixed: NEI preview of the Industrial Fishing Pond listing only input hatches
- #6853 HatchElementBuilder.buildAndChain now puts the built hatch element first in the chain and the passed elements after it. #6780 had reversed that order. - @AnsonYeung
- Fixed: multiblock preview not showing hatches, survival autobuild ignoring hatch hint
- #6845 BlockSheetMetal.getIcon now reads from the class's materials field (IOreMaterial, getTextureSet) instead of GregTechAPI.sGeneratedMaterials, which #6790 had introduced. - @tiffit
- Fixed: sheetmetal block icon using the wrong material
- #6843 Changed
SpaceTime.getFluid()toSpaceTime.getMolten()in BeamCrafterRecipes to provide the correct molten fluid instance to the recipe. - @tiffit- Fixed: Null fluid in PseudoStar recipe
- #6839 Adds IMetaTileEntity.getLocalNameKey(), with getLocalName() translating it. getInventoryName() on GT tile entities now returns a lang key, and ScannerHelper and CoverWirelessController translate it at display. Several standalone tile entities that returned null or hardcoded English now return lang keys. - @Luca-Guettinger
- Added: Meta ID line in the scanner output for GT machines, getLocalNameKey on IMetaTileEntity
- Fixed: pipes showing Unknown in the debug scanner, raw keys in the wireless controller cover
- #6836 GTRecipe.maxParallelCalculatedByInputs now skips fluid inputs with amount <= 0 (the 'NC' not-consumed entries) in the parallel calculation. - @AnsonYeung
- Fixed: DTPF not running spacetime recipe without catalyst with convergence
- Closes GTNH#24912
- #6833 In MTEHatchInputME, loadNBTData and pasteCopiedData skip null FluidStacks from GTUtility.loadFluid, and Slot.copy now copies the config instead of sharing it. - @lc-1337
- Fixed: NullPointerException on MTEHatchInputME
- Closes GTNH#24338
- #6828 Added .allowC2S() to IntSyncValue fields in beam machine GUIs: playerTargetBeamRate (Beam Stabilizer), playerTargetBeamEnergyeV and playerTargetAccelerationCycles (LHC stats panel), and related beam output hatch sync values. - @czqwq
- Fixed: Beam Stabilizer text input configuration, LHC beam energy and acceleration cycle configuration, GUI sync security exceptions
- #6826 VoidMinerUtility.DropMap gains an addDrop overload taking a list of StoneType, and generateDropMaps uses the new DimensionHelper.getDimFullName and a stone type lookup per dimension, falling back to Stone. - @jude123412
- Fixed: Void Miner giving the wrong stone type outside the overworld
- Closes GTNH#21921
- #6824 In OreMixes, removed the primary material from the setLocalizedName arguments of three infused-ore veins, since the primary ore is already added to the vein name. - @tiffit
- Fixed: duplicate ore names in vein names
- #6822 Added call to GTProxy to invoke toolbox block breaking event handler; removed unneeded @SubscribeEvent annotations from ItemGTToolbox since the class was never registered with Forge EventBus. - @querns
- Removed: Unused @SubscribeEvent annotations from ItemGTToolbox
- Fixed: IC2 block drops when broken with toolbox wrench, Reactor chamber voiding
- Closes GTNH#25091
- #6821 In MTEPlasmaModule, setInputMaxParallel, setPlasmaTier and setMultiStepPlasma overrides were renamed to separate *Debug methods, and SyncValues now binds the debug sync values to them. - @TheYoingLad
- Fixed: FOG Plasma Fabricator debug setters overriding the super methods
- #6819 Removed the alpha component from the Dragonblood RGBA array in MaterialsElements, so GTPP's alpha-gated animation no longer applies to it. - @Ruling-0
- Removed: GTPP flashing animation on Dragon Blood
- Fixed: Dragon Blood showing the wrong animation
- #6818 In MTEMultiBlockBase.doCheckRecipe, the no-input-bus branch with input separation now builds an item list holding the controller slot (if canUseControllerSlotForRecipe) and passes it to processingLogic.setInputItems before process(). - @dipo33
- Fixed: controller slot circuit ignored with input separation and no input buses
- Closes GTNH#24304
- #6816 Added casing block texture entry in GregtechMetaCasingBlocks6 to resolve texture reference from PR #6328. - @AnsonYeung
- Fixed: Missing energy hatch texture on Compact Fusion 5
- #6814 Modified CommonMetaTileEntity, MTEAirFilterBase, MTEExoFoundry, and MTEForgeOfGods to fix hatch counting and diagnostics display logic. Removed incorrect air filter bus requirements. - @Luca-Guettinger
- Removed: Extraneous lang entry
- Fixed: Air Filter diagnostics with no hatches, Exo Foundry module hatch reporting
- #6811 NightVisionBehavior.onKeyPressed calls context.toggleBehavior(BehaviorName.NightVision) instead of getArmorState().toggle(), which skipped markDirty(). - @Eldrinn-Elantey
- Fixed: Night vision toggle not marking armor state dirty
- #6810 Replaced runtime animation calculations in gtPlusPlus materials with standard interpolated texture animations. Updated TextureSet and CondensateType enums, added MCMeta animation files, and removed AnimatedBlockTextureHandler and related runtime animation code. - @Ruling-0
- Added: Baked animated texture files for three materials, MCMeta animation metadata files
- Removed: AnimatedBlockTextureHandler, Runtime animation calculations, BlockBaseModular custom animation logic, TextureBlockMaterial, BaseItemComponent animation code
- Fixed: Animation synchronization issues, Performance overhead from runtime animations
- #6809 Updated tooltip strings in MTEDroneCentre to include deprecation notice. - @Luca-Guettinger
- Added: Deprecation tooltip to legacy Drone Centre
- Fixed: Missing deprecation indicator on legacy Drone Centre
- #6805 Added debug mode and creative checks to MTELapotronicSuperCapacitorGui, MTESpinmatronGui, and related sync classes. Fixed capitalization in MTELapotronicSuperCapacitor class name. - @TheYoingLad
- Added: Debug mode checks in GUI setters, Creative mode checks
- Fixed: MUI2 c2s sync issues, Class name inconsistency
- #6803 Refactored MTEMegaIndustrialApiary to aggregate bee list by species and production speed, paginate at 36 entries/page, strip unnecessary NBT, and merge recipe outputs. Fixed power switch SecurityException from MUI2 c2s restrictions and optimized onStorageContentChanged and buildAggregatedBeeList hotpaths. - @Luca-Guettinger
- Added: Bee data aggregation, Pagination system for bees
- Fixed: Client crash with thousands of bees, Server lag with large bee counts, C17PacketCustomPayload overflow, Power switch SecurityException, C2S error when turning off running machine
- Closes GTNH#19233, GTNH#21461, GTNH#21549, GTNH#22492
- #6801 Updated MTEBlackHoleCompressor stability checks to consistently treat 0 as unstable across all display and logic layers. - @UltraProdigy
- Fixed: Inconsistent stability state interpretation
- #6799 Removed the checkHasAnyInput(errors) call from MTEMassFabricator.checkMachine. - @Yoshy2002
- Removed: Required input check on the Mass Fabricator
- #6798 Fixed water consumption logic in MTEThermalBoiler and MTEThermalBoilerLegacy. The issue was caused by PR #6661's recipe system changes which broke the zero-amount water slot workaround used for parallel calculation. - @Yoshy2002
- Fixed: Thermal Boiler not consuming water, Parallel calculation returning 0
- Closes GTNH#24858
- #6797 Removed a problematic validation check in MTEExtremeEntityCrusher. - @Luca-Guettinger
- Removed: Invalid structure check in Extreme Entity Crusher
- Fixed: Bad structure check in Extreme Entity Crusher
- #6794 Fixed FluidDisplayStackRenderer to properly render GT++ fluids. - @Luca-Guettinger
- Fixed: GT++ fluid rendering
- #6793 Corrected logic in MTEBlackHoleCompressor to properly void items when space-time is in the hatch with an unstable black hole. - @Luca-Guettinger
- Fixed: Items not being voided with unstable black hole
- #6790 BlockSheetMetal gets a client getIcon override using the material icon set. GTStructureUtility.ofSheetMetal wraps the element in a ProxyStructureElement that spawns a tinted hint particle for Materials and Werkstoff. - @tiffit
- Fixed: Missing texture on sheetmetal break particles, Sheetmetal missing from structure hint preview
- #6785 Updated MTEEndothermicFridge and MTEExothermicHearth structure tooltip strings to reflect correct block compositions. - @chrombread
- Fixed: Incorrect structure information in machine tooltips
- #6784 Removed incorrect check in MTEEtchingArrayModule.java validation logic. - @Luca-Guettinger
- Removed: Incorrect validation check
- Fixed: NAC Module etching array validation
- #6783 MTEFluidShaper.checkMachine adds a break after errors.clear() in the width loop so it no longer keeps iterating. - @Luca-Guettinger
- Fixed: Legacy Fluid Shaper structure check
- #6780 SteamHatchElement in MTESteamMultiBlockBase now implements getDescriptionLangKey and getDisplayName using the steam bus lang keys. HatchElementBuilder.buildAndChain now adds the passed elements before the built hatch element instead of after. - @Luca-Guettinger
- Fixed: Missing names for steam bus hatches in multiblock diagnostics, Element order in hatch chains
- #6779 Reverted PR #6751 in BaseMetaTileEntity.java and related classes. Restores full face rechecking logic for blocks that dynamically change EU facing configurations. - @AnsonYeung
- Fixed: Transformer mode-switching EU acceptance, Dynamic EU facing reconfiguration
- Closes GTNH#24844
- #6775 Removed the line in the GTSoundLoop constructor that overrode targetVolume with VOLUME_RAMP (0.0625f); targetVolume keeps its default of 1. Regression from PR #6120. - @tiffit
- Fixed: Machines playing at very low volume
- #6772 ToolboxUtil.damageSelectedTool now calls MetaGeneratedTool#doDamage instead of doDamageToItem, which applied an extra 200x multiplier to the already GT-scaled damage. - @querns
- Fixed: Toolbox using excessive durability on ProjectRed gates
- Closes GTNH#24610
- #6771 Added exception handling in ForgeHooksMixin to account for toolbox containers when adjusting block hardness based on tool stats and wrench mode. - @querns
- Fixed: Wrench precise mode in toolbox
- Closes GTNH#24827
- #6770 Restored proper color handling in FluidDisplayStackRenderer.java after regression introduced by PR #6649's custom GTPP renderer implementation. - @Luca-Guettinger
- Fixed: Broken fluid display colors
- Closes GTNH#24824
- #6767 Fixed minimum casing count validation in MTEExoFoundry.java and updated the corresponding language file entry. - @Luca-Guettinger
- Fixed: Exo-Foundry casing validation
- #6766 In ResearchStationAssemblyLine, replaced ItemRegistry.megaMachines[0] with ItemList.ExothermicHearth in the UIV-tier assembly line recipe and the Smelting Module Controller recipes (research item plus 64x ingredient). Removed the megaEBF local. - @chrombread
- Fixed: recipes still using the old Mega EBF item instead of the Exothermic Hearth
- #6764 Updated MTEDroneCentre.java renderer logic to account for the new structure layout where certain positions that were previously air are now filled with blocks. - @Yoshy2002
- Fixed: Drone Centre structure rendering
- #6763 Modified MTEIntegratedOreFactory.java to add two iridium sheetmetal blocks to the structure. - @Sanduhr32
- Fixed: Missing IOF structure blocks
- #6762 Updated MTEDroneCentre.java to add the missing steel frame block in layer 2 of the multiblock structure. - @PLASMAchicken
- Fixed: Missing steel frame in Drone Centre
- Closes GTNH#24819
- #6760 Fixed two rows in ForgeOfGodsStructureString so the base layer second furthest from the controller is symmetric. - @Sanduhr32
- Fixed: asymmetric Forge of the Gods base layer
- #6757 Added allowC2S() to the ModularUI2 sync values and sync handlers used in cover and machine GUIs, and adjusted EnumSyncValue generics. Bumped ModularUI2 to 2.3.66-1.7.10. - @TheYoingLad
- Fixed: GUI settings not syncing from client to server after the ModularUI2 change
- #6753 Removed the checkHasMaintenanceHatch call from MTENetworkSwitchAdv.checkMachine. - @czqwq
- Fixed: QOS Network Switch requiring a maintenance hatch
- #6750 ItemMachines.placeBlockAt now calls setFrontFacing with BaseTileEntity.getSideForPlayerPlacing, so the orientation is set before the server sends the default one. - @AnsonYeung
- Fixed: Auto-Taping Maintenance Hatch briefly facing down on placement
- #6746 Added a type-aware drain(side, FluidStack, int amount, boolean) overload in CommonMetaTileEntity and overrode it in MTEHatchMultiInput, MTEHatchInputDebug and MTEHatchInputME. MTEMultiBlockBase.depleteInput second pass now calls it instead of the amount-only drain. - @Caedis
- Fixed: primary input water not consumed across multiple input hatches
- Closes Dupes-Exploits-GTNH#301
- #6745 BaseItemCell and BaseItemPlasmaCell.getColorFromItemStack now apply the component material colour, including the glow and rainbow hue cycle modes selected by the material's alpha value. - @GDCloudstrike
- Fixed: GT++ cell contents always rendering white
- #6744 Added MaterialBuilder.setMiningLevel, which sets toolQuality, and called it on many materials in MaterialsInit, for example Americium 3 and Antimony, Arsenic, Barium, Caesium, Cadmium and Cerium 2. - @tiffit
- Fixed: ores losing their minimum mining level
- Closes GTNH#23769
- #6738 MTEHatchOutput.lockFluid now switches mMode to 9 when locking and back to 0 when unlocking, and sets or clears the locked fluid. FluidLockSlotWidget.fill and drain now call lockFluid(true) and lockFluid(false). - @Angry3vilbot
- Fixed: output hatches not locking fluids in default mode
- Closes GTNH#24739
- #6736 Added GTLanguageManager.hasGTLocalizationKey, which checks LANGMAP. ItemMachines.registerDescription now uses it instead of StatCollector.canTranslate to decide whether a key is already registered. - @iouter
- Fixed: identical tooltips on identically named machines, New Algae Farm showing a deprecated tooltip
- Closes GTNH#24756
- #6732 Replaced the PNG textures/items/gt.metaitem.03/273.png with a cleaned version. - @Auynonymous
- Fixed: stray pixels on the ypic texture
- #6730 Registered the fieryblood fluid container with OrePrefixes.cellMolten instead of cell in LoaderGTBlockFluid, and excluded cellMolten from the FierySteel isContainer special case in OrePrefixes.getDefaultLocalNameFormatForItem. - @Eldrinn-Elantey
- Fixed: Fiery Steel molten cell showing the wrong name
- #6726 Modified
MTELargeHadronColliderto roll RNG for blacklisted particles and void them instead of skipping the roll entirely. - @ham-corp- Fixed: LHC blacklist particle generation
- #6725 Corrected block placement logic in
MTEExoFoundryand updatedFoundryFakeModuleCostLoaderto reflect correct symmetry. - @Auynonymous- Fixed: Exo-Foundry structure symmetry
- #6722 In MTEBasicBatteryBuffer.buildUI, the ModularSlot overrides now override getItemStackLimit(ItemStack) instead of getSlotStackLimit(), returning 1. - @TheYoingLad
- Fixed: empty batteries stacking in Battery Buffer slots
- #6721 Added a STEAM_GAUGE widget theme key and themed textures for the gauge. MTESteamMultiBlockBaseGui uses the theme instead of getThemeTier(). The getThemeTier overrides in the steam multis and MTESteamMultiBlockBase were removed. - @YannickMG
- Fixed: steam multi gauge using wrong theme
- #6720 Updated
MTEIndustrialArcFurnaceto properly handle muffler controller interaction, fix sound position, and remove coil tier restrictions. - @kuba6000- Fixed: Arc Furnace muffling, Arc Furnace sound positioning, Arc Furnace coil tier restriction
- #6719 Moved the protected mMetaTileEntity field from CommonBaseMetaTileEntity back to BaseMetaTileEntity, following #6028 and #6711. This restores the field location for code that accesses it through BaseMetaTileEntity. - @AnsonYeung
- Fixed: mMetaTileEntity field location after #6028 and #6711
- #6718 Refactored texture icon processing to handle GT++ textures independently of GT's textures by adjusting load order logic in
Textures.javaand texture container classes. - @tiffit- Fixed: GT++ texture rendering in CoreMod dev environment
- #6712 CoverWirelessControllerGui now registers conditionModeSyncValue with syncManager.syncValue("condition_mode", ...), which was missing. - @Luca-Guettinger
- Fixed: Wireless Machine Controller cover crash on redstone button click
- Closes GTNH#24738
- #6711 CommonBaseMetaTileEntity now calls getMetaTileEntity() instead of reading the mMetaTileEntity field in handleFirstTick, handleColorChangeClient, handleBlockUpdateClient and handleUpdateDataChangeServer. - @Caedis
- Fixed: NullPointerExceptions in machine tile entity updates
- #6710 Fixed tooltip generation in MTEIndustrialArcFurnace. - @Pxx500
- Fixed: Arc Furnace tooltip
- #6709 In TTMultiblockBase.addClassicToMachineList and addEnergyInputToMachineList, the MTEHatchEnergyMulti and MTEHatchDynamoMulti instanceof checks now come before MTEHatchEnergy and MTEHatchDynamo, so they go into eEnergyMulti and eDynamoMulti. - @Sanduhr32
- Fixed: Active Transformer not transforming, TecTech hatch classification
- Closes GTNH#24731
- #6708 Added missing sync handler registration in TTMultiblockBaseGui and TileEntityModuleMiner for cycleDistance parameter. - @Luca-Guettinger
- Fixed: Space Miner GUI crash
- #6707 Added band-aid fix in TTMultiblockBaseGui and CompositeParameter to prevent GUI crash. Full solution will involve rewriting BEC to use the parameter system. - @TheYoingLad
- Fixed: BEC GUI crash
- #6706 Corrected parameter assignment order in TileEntityModuleMiner to match intended function signature. - @TheYoingLad
- Fixed: Space Miner parameter mixup
- #6705 Removed the IItemBehaviour.getNameOverride hook and the MetaBaseItem.getItemStackDisplayName override. Name and tooltip suppliers became Function<ItemStack,String> in MetaGeneratedItem, and the Infinite Spray Can uses BehaviourSprayColorInfinite::getNameWithColor. - @TheYoingLad
- Fixed: Infinite Spray Can no longer changing name
- Closes GTNH#24716
- #6702 Updated recipe definitions in RecipeLoader2 and MTERecipeLoader to reference new Large Turbine controllers instead of outdated ones. - @Yoshy2002
- Fixed: Large Turbine recipe controller assignments
- #6701 Re-added base textures and _OVERLAY variants for FIERY, NUCLEAR, and CUSTOM materials (crystallinepinkslime, rhugnor, vibrant, DIAMOND) that were removed by a deduplication script that failed to check overlay compatibility requirements. - @tiffit
- Added: Material texture files (base and overlay variants)
- Fixed: missing material textures
- #6698 MTEHatchOutput.saveNBTData writes lockedFluidName whenever lockedFluid is set, not only when fluid-locked. loadNBTData restores it whenever the key is present instead of checking isFluidLocked() first. - @TheYoingLad
- Fixed: output hatch locked fluid not saving or loading
- #6697 Corrected casing count and naming in MTEPCBFactory tooltip to match the actual Cooling Tower requirements and align with Cooling Tower controller documentation. - @Angry3vilbot
- Fixed: PCB Factory cooling tower casing count, casing name consistency
- Closes GTNH#23958
- #6696 Added IMetaTileEntity.shouldSendInitialClientData() (default true). CommonBaseMetaTileEntity.getDescriptionPacket only calls sendClientData() when it returns true; MTEBasicMachine returns isFacingValid(mMainFacing). - @tiffit
- Fixed: machine front face blinking on place
- Closes GTNH#24664
- #6690 Added CoverBaseGui.getStringMaxWidth, which returns 100 on a dedicated server and otherwise calls IKey.renderer.getMaxWidth, since that touches the client-only FontRenderer. The redstone transmitter and IO cover GUIs use it. - @tiffit
- Fixed: server crash when interacting with GT covers
- Closes GTNH#24713
- #6687 Updated BaseItemComponent, BaseItemIngotHot, BlockBaseModular and other GT++ base classes to use IIconContainer interface instead of hardcoded texture paths, enabling proper texture fallback to NONE set like GT materials. - @tiffit
- Added: IIconContainer implementation in GT++ item/block base classes
- Removed: hardcoded texture paths in BaseItemCell, BaseItemPlasmaCell
- Fixed: GT++ textures broken by PR #6681 texture deduplication
- #6686 Split GT++ Material initialization into two phases: construction (property computation only) and deferred registration (fluid/cell creation), gated by a static flag opened during ModItems.runMaterialGenerator() in preInit. Demonstrated with MTEFrothFlotationCell structure as static final. - @Luca-Guettinger
- Added: deferred material registration phase gating
- Fixed: GT++ cells being overwritten by GT cells during startup
- #6685 Fixed incorrect key in parametrizer card implementation for mining modules, added NBT-based filter copying capability to ItemParametrizerMemoryCard and TileEntityModuleMinerGui, and added language keys for the feature. - @Krepyn
- Added: parametrizer card ability to copy mining module filters
- Fixed: parametrizer card not working with mining modules due to wrong key
- #6684 FlaskRenderer.renderItem now wraps rendering in glPushAttrib/glPopAttrib (enable, color buffer and current color bits) inside try/finally so GL state no longer leaks. - @NeutronSelector
- Fixed: offhand item textures becoming opaque when holding a Volumetric Flask
- Closes GTNH#23127
- #6683 Added storeToCache in MTEHatchOutputMEBase, which adds to the cache and sets lastInputTick. The bus transaction commit now uses it. markDirty dispatch moved from addToCache to storePartial. - @hinyb
- Fixed: ME Output Bus voiding items on multiple transactions in one tick
- Closes GTNH#24652
- #6679 In MTEHatchInputBusMEGui and MTEHatchInputMEGui, the status string now uses EnumChatFormatting.RESET after the state instead of a hard-coded section sign code. Added widgetTheme(GTWidgetThemes.DISPLAY_TEXT). - @Ranzuu
- Fixed: ME bus and hatch status text colour with resource packs
- #6675 In OverclockCalculator.calculateOverclock, the recipe power is now rounded up with Math.ceil before the cast to long in the tiersAbove calculation, removing an unsafe truncating cast. - @Nana-Sakura
- Fixed: overclock calculator giving wrong power use with UV dual hatches
- Closes GTNH#24686
- #6670 Modified RenderForgeOfGods to re-bind the VBO before draw calls, preventing GL state corruption that occurred under specific conditions involving God Forge and matter manipulator interactions. - @Luca-Guettinger
- Fixed: crash when using Forge of Gods with matter manipulator in copy mode
- #6666 MTESolarGenerator overrides getMinimumStoredEU() to return 0 for tier 0 and defers to super for other tiers. The tier-0 panel stores 2 EU, below the inherited 512 EU reserve, so BaseMetaTileEntity never emitted. - @Junyan721113
- Fixed: 1-volt Solar Panel not exporting EU
- #6664 Added null safety checks for owner UUID field in MTEHatchInputBusME and MTEHatchInputME before dereferencing. - @Luca-Guettinger
- Fixed: NPE spam in ME hatch logging when UUID is null
- #6659 Corrected offhand item reference in GTPacketUpdateItem to properly handle both main hand and offhand item updates. - @TheYoingLad
- Fixed: Circuit programming broken after prior changes
- Closes GTNH#24641
- #6658 Corrected block placement coordinates in MTEExoFoundry checkMachine validation logic. - @Auynonymous
- Fixed: Exo Foundry block misplacement
- #6652 Replaced background(...) with backgroundOverlay(...) across hatch and machine GUIs. Added the SLOT_FLUID_DARK texture and fluid_dark_gray.png, used by MTEHatchInputMEGui. - @Ranzuu
- Added: dark fluid slot texture
- Fixed: ME Input Hatch fluid slot border colour
- #6651 Moved the NaquadahReworkRecipeLoader.Remover() call from GoodGenerator's load-complete handler into GTMod post-initialization, just before GTPostLoad.addCauldronRecipe(), so the cauldron remap is filled before the NEI display is built. - @loenaaaa
- Fixed: wrong cauldron washing outputs for impure and pure naquadah dust in NEI
- Closes GTNH#24493
- #6646 Added issueTextureUpdate() call in MTEHatchCokeOven when mode is updated via screwdriver interaction. - @tiffit
- Fixed: Coke Oven Hatch texture update lag
- Closes GTNH#24621
- #6645 Fixed NPE in GraphRouteTracker and BEC classes, corrected EU/t calculation for max field strength, reset min/default field strength from 0 to 1, fixed containment field off-state behavior, and corrected observation array nanite detection order dependency. - @RecursivePineapple
- Fixed: NPE when breaking BEC conduits, NPE in GraphRouteTracker, BEC EU/t consumption overflow for max field strength, BEC invalid default field strength values, Containment field operating when disabled, Observation array nanite detection after reordering
- #6644 MTEHatchInputME and MTEHatchInputBusME gridProxy owner lookup changed from getPlayerEntityByName(getOwnerName()) to func_152378_a(getOwnerUuid()). - @Lyfts
- Fixed: stocking hatches not pulling after owner nickname change
- Closes GTNH#24237
- #6643 Corrected stack detection logic in RecipeMapFrontend and SpargeTowerFrontend to properly identify which item is being examined for tooltip display. - @slprime
- Fixed: Tooltip display for recipe maps showing incorrect stack information
- #6642 Removed fuel value validation logic in MTESemiFluidGenerator that was incorrectly allowing any burnable item to be used as fuel input. - @Luca-Guettinger
- Removed: Semi-Fluid Generator fuel acceptance for arbitrary burnable items
- Fixed: Semi-Fluid Generator rejecting invalid fuel items
- #6641 Added IToolStats.isSaw, true only in ToolSaw. MetaGeneratedTool.onBlockStartBreak now handles ice and packed ice for saws by dropping the block, removing it and calling doDamage with getToolDamagePerDropConversion. The ice handling in ToolSaw and ToolChainsawLV convertBlockDrops was removed. - @DarkShadow44
- Fixed: saw placing water when breaking ice, infinite water and ice
- Closes GTNH#24424
- #6640 In bartworks CraftingRecipes, the MV rock cutter battery slot changed from IC2_AdvBattery to the oredict GTOreDictUnificator battery MV, and the HV slot from IC2_EnergyCrystal to the HV battery. - @Algent
- Fixed: MV Rock Cutter not craftable
- Closes GTNH#24103
- #6637 Casings: shifted BEC casing texture indices after adding texture page 17. BlockCasingsBEC and Textures updated to match. - @RecursivePineapple
- Fixed: BEC casing texture misalignment
- #6636 MTEIndustrialExtruder: changed input validation from mInputBusses to use crib-inclusive checks consistent with other multiblocks. - @Yoshy2002
- Fixed: Industrial Extruder not forming with only cribs
- #6632 OrePrefixes.getOrePrefix returns ore for oreCallistoIce instead of matching the oreCallisto prefix. - @tiffit
- Fixed: callisto ice ore processing
- #6631 OrePrefixes.getOrePrefix now returns ore for orePlutonium, orePlutonium241 and oreTitanium instead of matching the orePluto and oreTitan prefixes. - @tiffit
- Fixed: plutonium ore processing, titanium ore processing, ore map broken in latest dailies
- Closes GTNH#24516
- #6630 MTEHatchOutputME: corrected overflow logic to use isAllowed() check instead of canStore() for proper fluid handling in no-voiding mode. - @hinyb
- Fixed: ME Output Hatch voiding fluids in no-voiding mode, fluid voiding with multiple overflow outputs
- Closes GTNH#24384, GTNH#24617
- #6629 TileEntityModulePumpGui: corrected button offset calculation during scroll operations. - @Luca-Guettinger
- Fixed: Space Pump button offset after scrolling
- #6627 Removed the useInventoryTint = false lines in GTRendererBlock and GTRendererCasing inventory rendering. GTRendererCasing.renderWorldBlock and SBRWorldContext.doCleanup now set useInventoryTint back to true. - @tiffit
- Fixed: grass block losing its color when held in hand
- Closes GTNH#24132
- #6624 MTETreeFarm and MTETreeFarmLegacy: fixed sapling type filtering logic. ForestryTreeHandler refactored to prevent double-registration. RecipeLoaderTreeFarm simplified to avoid duplicate recipe population. - @Yoshy2002
- Removed: legacy duplicate recipe loading
- Fixed: trees farms not recognizing all saplings, NEI showing duplicate tree farm recipes
- #6621 MTEIndustrialApiary: one-line fix to correct secondary bee effect acceleration logic. - @thehoblit
- Fixed: Industrial Apiary accelerated secondary bee effect
- #6617 MTEExtremeCombustionEngine overrides getMaxEfficiency to return 30000 with boostEu and 10000 otherwise. It saves and loads mEfficiency, boostEu, fuelConsumption, fuelValue and fuelRemaining in NBT, and supportsPowerPanel returns false. - @Yoshy2002
- Fixed: Extreme Combustion Engine efficiency resetting on world reload, Extreme Combustion Engine unable to boost output above 100%
- Closes GTNH#24576
- #6616 MTEIndustrialForgeHammer.checkMachine now resets solenoidLevel to null instead of -1, since the structure check only tests for null. - @Yoshy2002
- Fixed: Industrial Sledgehammer solenoid not detected in new structure
- Closes GTNH#24599
- #6615 Renamed setMatrixElemet to setMatrixElement in MTEHatchUncertainty and MTEHatchUncertaintyGui, and setMatrixElement now calls compute() after writing the element. - @czqwq
- Fixed: Uncertainty Hatch matrix status only refreshing every 16 seconds, setMatrixElemet typo
- #6611 Fixed energy variable usage in MTELargeBoilerBase and MTEPlanetaryGasSiphon where lEUt (loss) was incorrectly used instead of mEUt (output); cleaned up unnecessary changes in MTELargeTurbineBase. - @Ruling-0
- Fixed: energy mismatch in boiler, energy mismatch in planetary gas siphon
- #6607 RecipeLoaderGenericChem now builds the Milling_Ball_Alumina and Milling_Ball_Soapstone output stacks and calls ItemGenericChemBase.createMillingBallNBT on them before using them as recipe outputs. - @czqwq
- Fixed: crafted Alumina and Soapstone Milling Balls missing their NBT
- #6593 Modified MTELargeHadronCollider to roll particle ID per output hatch instead of once for all hatches, and to only roll particles compatible with active modules; added 'Machine is off' message for portable scanner. - @ham-corp
- Added: 'Machine is off' message in portable scanner
- Fixed: LHC particle output rolling, module-incompatible particle generation
- Closes GTNH#24039
- #6592 Modified GTCopiedBlockTextureRender to disable CTM rendering in inventory mode and fall back to default IIcon, allowing CTM blocks to use non-CTM inventory textures. - @Ruling-0
- Fixed: CTM block inventory rendering, BEC casing inventory appearance
- #6590 JetpackBehavior checks a new ClientGuiHelper.isGuiOpen() on the client and ignores ascend/descend input when a GUI is open. CreativeFlightBehavior resets fallDistance when it can drain 75 EU, on both sides. New MilkInfusionBehavior and Augment_MilkInfusion (Helmet, uncommon, min core 1) check every 10 ticks on the server and remove each bad potion effect for 5000 EU, with a drink sound. - @Spaghetti-OberNub
- Added: Milk Infusion augment for helmets
- Fixed: jetpack movement while a GUI is open, fall damage while descending with creative flight
- #6588 MTEMegaChemicalReactor.checkMachine loops over getExoticAndNormalEnergyHatchList() instead of mEnergyHatches when comparing glassTier to hatch tier. The MTEHatchEnergy import is removed. - @chrombread
- Fixed: exotic energy hatches ignored the glass tier in the Mega Chemical Reactor
- #6584 RedstoneSnifferGui built the yes/no text with IKey.lang(...).toString(). It now uses StatCollector.translateToLocal for gui.yes and gui.no. - @Yoshy2002
- Fixed: server crash from the Redstone Sniffer GUI
- Closes GTNH#24528
- #6583 WorldgenGTOreLayer.LayerGenerator tracks a placed flag set when a primary, secondary, between or sporadic ore is placed. If nothing was placed, executeWorldgenChunkified returns NO_OVERLAP_AIR_BLOCK so the vein is retried. The empty NoOresInVein vein and the GTWorldgen default now return NO_OVERLAP_AIR_BLOCK instead of ORE_PLACED. - @arisado
- Fixed: ore veins generating with no ores below their y level
- Closes GTNH#23727
- #6582 SingleRecipeCheck.writeToNBT checked mOutputChances for null before writing mFluidOutputChances, which threw an NPE. It now checks mFluidOutputChances. - @Yoshy2002
- Fixed: NPE when saving a recipe locked machine with chanced outputs, which blocked chunk saving
- Closes GTNH#24545
- #6579 Added GTGuiTextures.SLOT_FLUID_TANK and SLOT_ITEM_TANK with new png files. MTEBasicTankBaseGui and MTEDigitalTankBaseGui replace disableThemeBackground with background(SLOT_FLUID_TANK) and drop the hardcoded white text color. MTETieredChest only gets comments for the future MUI2 port. - @Ranzuu
- Added: fluid tank slot texture, item tank slot texture
- Fixed: transparent fluid slot in tank GUIs, hardcoded white text color in Digital Tank filter screen
- #6573 In MTESteamMultiBlockBase, mSteamOutputs is now an ArrayList of MTEHatchOutputBus instead of MTEHatchSteamBusOutput. addToMachineListInternal is typed on E, so the unchecked cast is gone. - @tiffit
- Fixed: ClassCastException when a void bus is used on a steam multiblock
- Closes GTNH#24526
- #6571 Added fuelMaxEnergy tracking to MTEBoiler to capture peak energy per burn cycle instead of using hardcoded divisor. Fixed float quantization desync in progress widget. Updated heat bar tooltip to display actual temperature in Celsius. Implemented NBT fallback for save compatibility. - @Eldrinn-Elantey
- Added: fuelMaxEnergy tracking, Temperature display in heat tooltip
- Fixed: Boiler fuel indicator accuracy, Progress widget desync, Heat bar visual feedback
- #6569 MTEDigitalTankBaseGui.createFilterScreen applies GTWidgetThemes.DISPLAY_TEXT to the lock fluid text widget. - @Ranzuu
- Fixed: Digital Tank filter screen text used the default widget theme
- #6567 MTEBuffer.moveItems now calls cleanInventory and compactInventory over 0 to getMovableInventoryEnd(). MTEFilterBase overrides it to return NUM_INVENTORY_SLOTS, and GTUtility gains a ranged cleanInventory overload. - @Worive
- Fixed: item dupe through sort stacks on GT filters
- Closes Dupes-Exploits-GTNH#286
- #6566 MTEMultiBlockBaseGui: moved the highlight and player-facing code from the onMousePressed lambda into a private static highlightAndFaceBlock method marked @SideOnly(Side.CLIENT), so client player classes are not loaded on the server. - @czqwq
- Fixed: NoSuchMethodError crash on dedicated server from the multiblock highlight button
- #6564 Added bounds checking in TileEntityModuleMinerGui calculator to prevent array index out of bounds exception when drone selection is empty. - @TheYoingLad
- Fixed: Space Miner calculator array out of bounds crash
- #6561 Reverted GUI changes in elevator module classes (Assembler, Miner, Pump) to restore missing functionality. Adjusted TileEntityModuleBase and TTMultiblockBase. - @TheYoingLad
- Fixed: Space elevator module GUI buttons
- Closes GTNH#24393
- #6558 Added supportsVoidProtection and supportsBatchMode overrides returning true in MTEIndustrialFishingPond and MTEIndustrialMacerator, and supportsVoidProtection in MTETreeFarm. - @tiffit
- Fixed: missing void protection on Zhuhai Fishing Port, Tree Growth Simulator and Industrial Maceration Stack, missing batch mode on Zhuhai Fishing Port and Industrial Maceration Stack
- #6556 Added input beam validation check to Collider mode (matching Accelerator mode), added NBT persistence for beam stabilizer target rate, and reduced Top Quark catalyst recipe cost from 8x to 1x. - @ham-corp
- Added: Input validation for LHC Collider mode, Beam stabilizer target rate persistence
- Fixed: Input beam change during LHC operation, Beam stabilizer settings loss, Top Quark catalyst production imbalance
- #6553 Added MTEHatchMaintenance.IsAutoMaintenanceInput, which compares with unification equality. allowPutStack and MTEHatchMaintenanceGui.isRepairItem now both use it. - @tiffit
- Fixed: auto-maintenance hatch rejecting HV circuits
- Closes GTNH#24415
- #6552 ChemicalRecipes and gtnhlanth RecipeLoader now take Materials.PotassiumHydroxide.getDust instead of the coremod item. PosteaTransformers registers item replacements from dreamcraft:PotassiumHydroxideDust and dreamcraft:item.PotassiumHydroxideDust to the GT dust. - @loenaaaa
- Added: Potassium Hydroxide dust replacement transformers
- Fixed: duplicate CoreMod Potassium Hydroxide dust
- #6547 Modified MTEElectricImplosionCompressor to accept energy hatches above UMV tier. - @Yoshy2002
- Fixed: Energy hatch tier acceptance in EIC
- Closes GTNH#24460
- #6544 MTEDigitalChestBase insert() returns early when the stored stack is non-empty and does not match the incoming stack. Added a hasStack helper for the later match check. - @tiffit
- Fixed: super chest dupe, super chest importing items that do not match the stored item
- Closes Dupes-Exploits-GTNH#252, GTNH#24417
- #6543 Modified MTEHighTempGasCooledReactor rendered casing configuration. - @OTPANNIEXD
- Fixed: HTGR rendered casing appearance
- #6542 Modified GTLog to clear the log message buffer when logging is disabled, preventing unbounded list accumulation. - @Alexdoru
- Fixed: Log message buffer memory leak (~2 MB)
- #6541 MTEFluidPipe.onLeftclick clamps the copied fluid amount with newPipe.getCapacity() instead of the newPipe.mCapacity field. - @Nana-Sakura
- Fixed: fluid loss when changing pipes
- Closes GTNH#24454
- #6540 Modified RunnableCableUpdate and RunnableMachineUpdate to call blockExists() before accessing block data, preventing repeated loadChunk() calls and associated disk I/O on stale chunk snapshots. - @Luca-Guettinger
- Fixed: Off-thread chunk loading causing excessive disk I/O and OOM
- #6525 MTEBasicMachineWithRecipe now stores hasInputFluidSlot and hasOutputFluidSlot separately, passed through from MTEBasicMachineWithRecipeBuilder. MTEBasicMachineBronze overrides getTankInfo to report steam as a tank, at twice the stored steam and capacity values. - @danyadev
- Added: steam contents in Waila
- Fixed: Waila showing both fluid slots on single-fluid-slot machines
- Closes GTNH#23580
- #6523 Modified SBRWorldContext and related SBR classes to properly manage world references, removing strong references in ISBRWorldContext and adding cleanup in render implementations. - @Alexdoru
- Removed: ISBRWorldContext interface
- Fixed: Memory leak caused by retained world references in SBR rendering
- #6521 Swapped the gt.metaitem.03 textures 106.png and 107.png. - @jude123412
- Fixed: swapped bio circuit board textures
- #6518 ComponentAssemblyLineMiscRecipes: added "Transcendent" to circuitTierMaterials and extended the generateWrapRecipes loop from 11 to 14, removing the two hand-written UMV and UXV wrap recipes. - @GDCloudstrike
- Added: Max circuit wrap assembler recipe
- Fixed: Max circuit wrap missing a recipe
- #6509 Modified MTEBeamCrafter voltage check to account for hatch amperage, and added per-tick EU consumption. - @ham-corp
- Fixed: G8 catalyst crafting, EU consumption
- #6507 GTGuiThemes.STANDARD_GRAY id changed from gregtech:standard_standard_gray to gregtech:standard_gray. - @Ranzuu
- Fixed: wrong id for standard gray GUI theme
- #6505 MTEMultiBlockBase.depleteInput(FluidStack, boolean) now sums the simulated drain from each input hatch. If the total covers the cost, it drains the hatches in turn until the requested amount is taken. - @54M44R
- Fixed: depleteInput not aggregating fluid across input hatches
- Closes GTNH#19308
- #6499 Adds OrePrefixes for the space ores (oreMoon, oreMars, oreAsteroid, orePhobos, oreDeimos, oreCeres and so on) and sets one on each StoneType through setPrefix. They had all used the default prefix, which overrode the overworld ore in GTOreDictUnificator. - @tiffit
- Added: ore prefixes for space stone types
- Fixed: overworld ores not smeltable in tcon smeltery, NEI showing every ore in the macerator giving crushed ice
- #6492 The GTBlockOre constructor now checks that stoneTypes[i] is not null before calling isEnabled(). - @tiffit
- Fixed: crash when ore stone variants are disabled in config
- #6489 MTEHatchCraftingInputME now overrides getSupportedStackTypes() to return both ITEM_STACK_TYPE and FLUID_STACK_TYPE when supportFluids is true. - @Eldrinn-Elantey
- Fixed: Crafting Input Buffer fluid pattern highlighting
- #6484 MTESteamMultiBlockBase overrides supportsVoidProtection() to return true. The GTPPMultiBlockBase inheritance that used to provide this was removed in #6160. - @jamiehu427
- Fixed: steam multis locked to void excess mode
- Closes GTNH#24376
- #6482 GTPostLoad.addCauldronRecipe now loops over dustImpure, dustPure, crushed and dust prefixes and takes the output from MetaGeneratedItem01.getCauldronWashingResult, which is now public. - @Luca-Guettinger
- Fixed: cauldron NEI page missing purified dusts, crushed ores and wheat
- Closes GTNH#24357
- #6481 AssemblerRecipes adds .circuit(1) to the Casing_CleanStainlessSteel recipe and changes the FormingCore recipe from .circuit(1) to .circuit(2). - @UltraProdigy
- Fixed: Forming Core recipe conflicting with Clean Stainless Steel Machine Casing
- Migration: Add programmed circuit 1 to any automated assembler or AE2 pattern that makes Clean Stainless Steel Machine Casings.
- Closes GTNH#24383
- #6480 MTESteamCentrifuge texture update logic corrected (1-line change). - @VortexSo4
- Fixed: Steam Separator texture update on steel variant
- Closes GTNH#24213
- #6472 HTGRLoader copies the builder's output chances into the recycle recipe chances and adds a SHELL_RECYCLE_CHANCE constant of 9500. NEI virtual outputs are now added to the recipe with their own chance array, and the itemOutputsGetter override is removed from HighTemperatureGasCooledReactorRecipeMapFrontend. - @6C-C6
- Fixed: HTGR recycle recipes ignoring output chances, NEI showing zero-return materials in HTGR recycling, NEI showing HTGR chances in the wrong position
- #6469 Removed faulty onRightClick logic from MTECokeOven that was improperly handling bucket interactions. - @ROBERT-PARKOURCIVILIZATIONGOD
- Removed: Coke Oven right-click handler
- Fixed: Coke Oven creosote spillage on bucket click
- Closes GTNH#24329
- #6465 MTEDebugStructureWriter negates the origin numbers again in the highlight box offsets. printStructure is split so getPseudoJavaCode returns the string, and a new button in MTEDebugStructureWriterGui copies it with GuiScreen.setClipboardString on the client. Adds a copy_to_clipboard overlay texture and a lang key. - @VortexSo4
- Added: Copy Structure To Clipboard button in the Structure Writer
- Fixed: Structure Writer bounding box and printed structure displayed incorrectly
- #6464 MTEExtremeCombustionEngine writes the output to lEUt instead of mEUt in checkProcessing, and getInfoData reads lEUt without negating it. - @tiffit
- Fixed: Extreme Combustion Engine not generating EU, scanner showing negative power output
- #6462 Enhanced MTELargeMolecularAssembler channel loss handler to refresh pattern cache when channel status changes. - @Kogepan229
- Fixed: LMA pattern updates on channel loss
- #6461 MTELargeCombustionEngine writes the output to lEUt instead of mEUt in checkProcessing, and getInfoData reads lEUt. - @tiffit
- Fixed: Large Combustion Engine not generating EU
- Closes GTNH#24354
- #6460 Added minimum casing limit check in MTEAdvDistillationTower to validate structure integrity before forming. - @Nana-Sakura
- Fixed: Dangote multiblock structure validation
- #6453 MaterialsInit sets the Void default local name to "Void Metal". PipeStats.getMaterial in GregtechConduits returns Materials.Void directly for the Void entry and now returns IOreMaterial. - @iouter
- Fixed: Void Metal Pipe had no name
- #6452 SingleRecipeCheck.buildItemCost stores zero-cost non-consumable inputs in itemCost and checkRecipeInputs requires them to be present. GTRecipe.getCachedCombinedItemInputs becomes public, and MTEFluidShaper uses getTierForStructure() for the energy hatch glass tier check. - @54M44R
- Fixed: recipe locking ignoring non-consumable items, recipe locking breaking input hatch separation on the Fluid Shaper
- Closes GTNH#17868
- #6451 Corrected numeric values in CircuitComponent eternity foil generation recipe. - @Auynonymous
- Fixed: Eternity foil infinite generation exploit
- #6446 Updated hint number from 2 to 3 in MTEDistillationTower to match actual multiblock structure rules where energy hatches are not permitted at that position. - @ham-corp
- Fixed: Distillation Tower structure hint text
- #6443 RecipeLoaderCoalTar and PyrolyseRecipes now add recipes to
pyrolyseRecipesandcokeOvenRecipesrecipemaps. The Kerogen recipe moves from bartworks PyrolyseOven, which is deleted. ProcessingLog.addPyrolyeOvenRecipes() is removed. - @TotallyNotOndre- Removed: unused log Pyrolyse Oven recipe method, bartworks PyrolyseOven recipe loader
- Fixed: coal tar recipes missing from the Industrial Coke Oven
- #6436 Added discount parameter to MTEMassSolidifier recipe handling. - @54M44R
- Fixed: Mass Solidifier missing discount
- #6427 Removed unnecessary entity copy retention in MobEECRecipe, preventing world leak. - @Alexdoru
- Removed: Entity copy retention
- Fixed: MobHandlerLoader world memory leak
- #6420 ProcessingPlank reworked so wildcard plank iteration no longer produces bogus slab recipes. Adds a Desugar record, Blocks/Item imports and javadoc formatting changes. - @Luca-Guettinger
- Fixed: bogus Oak Slab recipes in NEI from wildcard plank iteration
- Closes GTNH#24154
- #6418 Added setMaxSinkSlotStackSize integration in MTERegulator and pre-transfer validation in MTEBuffer to enforce stack size limits in the new ItemTransfer API. - @Luca-Guettinger
- Fixed: Regulator not respecting phantom slot stack size, Chest Buffer ignoring target stack size
- Closes GTNH#24175, GTNH#24629
- #6417 StatisticsPanel: header row widths, margins and text scale reworked (header size WIDTH_MAJOR x HEIGHT_MINOR, scale 0.75, spacer width 70) and the stat row tooltip handling changed. - @GDCloudstrike
- Fixed: off-center module headers in the Godforge statistics panel, missing stat tooltips in the Godforge statistics panel
- #6415 Changed a single-line condition in MTEIndustrialChemicalBath structure validation logic. - @czqwq
- Fixed: Industrial Chemical Bath structure validation
- #6408 Added hatch type check in MTEIndustrialCentrifuge and MTEIndustrialCentrifugeLegacy to reject heavy mode recipe attempts. - @chrombread
- Fixed: Heavy mode recipe execution restriction on regular centrifuge
- #6405 Improved ToolVajra.onItemUse with better synchronization logic to handle both regular block destruction and shift-click tile entity interactions. - @czqwq
- Fixed: Vajra ghost block desync with proper shift-click support
- #6403 Reverted changes to ToolVajra.onItemUse due to regression with tile entity drops and shift-click state synchronization. - @Alexdoru
- #6402 Modified ToolVajra.onItemUse to return true so that the C08PacketPlayerBlockPlacement packet is sent to the server, keeping the block state synchronized. - @czqwq
- Fixed: Vajra ghost block desynchronization
- #6398 MTEHatchDataItemsInput and MTEHatchWirelessDataItemsInput override onRightclick to return true without opening the GUI. - @ABKQPO
- Fixed: empty GUI opening on the Assembly Line Reception Connector and Wireless Assembly Line Reception Connector
- #6395 Corrected integer overflow in ParallelHelper processingLogic when handling the 16x power increase of heavy mode. - @GDCloudstrike
- Fixed: Integer overflow in Spinmatron heavy mode processing logic
- #6393 AssemblerRecipes: the OreDictItemStack input changed from 'rodAnyIron' to 'stickAnyIron', the ore dictionary name that exists. - @TotallyNotOndre
- Fixed: iron bars Assembler recipe using a wrong ore dictionary name
- #6392 Added hatch validation logic to MTEIndustrialMixer to limit multiamp hatches to 1 and prevent coexistence with other energy hatches. - @Yoshy2002
- Fixed: Industrial Mixer multiamp hatch restriction enforcement
- #6388 Removed the hasTagCompound() check from the sanity check in ItemGTToolbox.buildUI, which threw a RuntimeException for toolboxes with no NBT. - @querns
- Fixed: crash when opening the inventory of a toolbox with no NBT data
- #6387 Added addSubChannelUsage calls to the createTooltip of about 20 multiblocks and added a SE_MOTOR ("motor") entry to GTStructureChannels. - @DylanTaylor1
- Added: missing structure channel lines in multiblock tooltips, Space Elevator Motor Tier structure channel
- Fixed: multiblock tooltips missing structure channel info
- #6382 MTEChestBuffer.getTickRateDesc now builds the string as '<n> stacks of 64 items every <time>second' instead of 'Moves <n> items every ...'. - @Alexdoru
- Fixed: chest buffer tooltip saying items instead of stacks
- #6380 MTESteamWasher.createTooltip: beginStructureBlock(5, 5, 5, false) changed to beginStructureBlock(9, 6, 5, false). - @Alexdoru
- Fixed: wrong structure dimensions in the Steam Purifier tooltip
- #6379 BlockCasings9.getIcon for meta 2 had the PRIMITIVE_WOODEN_CASING_TOP and _SIDE icons swapped in the ordinalSide >= 2 check. - @slprime
- Fixed: swapped top and side textures on Primitive Wooden Casing
- #6374 Corrected casing reference in MTEPlanetaryGasSiphon structure definition. - @Yoshy2002
- Fixed: Siphon structure using incorrect rebolted casing
- #6365 MTEPreciseAssembler.getUpdateData now sends casingTier + 4, so values -3 to 3 map to 1-7 and survive the 0x7F mask in the initial client sync. receiveClientEvent accepts 1-7 and subtracts 4. - @czqwq
- Fixed: transparent Precise Assembler controller texture with Imprecise Electronic Unit Casings
- #6361 Added missing background texture/styling element to MTEVoidMinerBaseGui button panel in ModularUI2. - @TheYoingLad
- Fixed: Missing button backgrounds in void miner filter panel
- #6357 Corrects background rendering for hovered buttons and slots in multiblock GUIs. Fixes chemical reactor fluid slot overlay drawing order. Updates ModularUI2 dependency to latest version. - @TheYoingLad
- Fixed: Hovered button/slot background rendering, Chemical reactor fluid slot overlay
- #6352 MTEHatchInputDebug now overrides drain(int, boolean) to return a copy of the first stored fluid at the requested amount, and overrides isFluidChangingAllowed instead of canTankBeEmptied. - @kuba6000
- Fixed: NPE from the debug input hatch when a multiblock uses drain(int, boolean)
- #6333 ItemDroneRemoteInterface.onItemRightClick checks that the target world exists and that the tile at the stored position is an IGregTechTileEntity holding an MTEDroneCentre before opening the GUI. Otherwise it sends a translated chat message. Adds lang key GT5U.tooltip.drone_remote_not_found. - @TheYoingLad
- Added: chat message when the linked Drone Centre is missing
- Fixed: NPE when using a Drone Remote Interface linked to a broken Drone Centre
- #6332 BaseMetaTileEntity.onRightclick now computes isHardHammer and isJackhammer and runs the same branch for both tool lists. The first branch is taken only when the side has no cover, and the second branch handles either tool. - @UltraProdigy
- Fixed: inconsistent Hammer and Jackhammer behaviour on machines
- #6331 Reworked MTEHatchExtrusion and MTEHatchExtrusionGui: removed the oneStackLimit sync value and field, added a limited inventory handler using ProxiedItemHandlerModifiable, and switched the item slot layout from SlotGroupWidget to Grid. - @TheYoingLad
- Fixed: Extrusion Bus exposing real extrusion shapes (issue 24034)
- Closes GTNH#24034
- #6330 Modified FissionFuelLoader to restrict recipes to multiblock-only and added single-block centrifuge recipe variants, established pattern for other multis in GTRecipeConstants. - @UltraProdigy
- Added: single-block centrifuge fuel rod recipes, recipe filtering pattern
- Removed: duplicate centrifuge outputs
- Fixed: fuel rod double-processing bug
- #6324 MTEHatchCokeOven.getAccessibleSlotsFromSide returned null in the default switch branch; it now returns GTValues.emptyIntArray. - @Vlamonster
- Fixed: NPE in Coke Oven hatch getAccessibleSlotsFromSide
- #6321 Updated ModularUI2 dependency, fixed widget sync issues in PatternSlot, ToolboxInventoryGui, and other GUI classes, removed unnecessary state management. - @TheYoingLad
- Removed: duplicate state management
- Fixed: single-block machine GUI interaction
- Closes GTNH#24201
- #6316 ToolboxSelectGuiFactory.getToolboxSlot checks the current slot, then the offhand, then scans the hotbar and uses the first ItemGTToolbox found. Adds a checkIfSlotIsToolbox helper. - @querns
- Fixed: toolbox select GUI failing to open when the scroll wheel and middle click land within the same tick
- #6315 RowHelper.makeInvertRedstoneRow swaps its normal and inverted strings. CoverIOBaseGui now compares ioMode against TransferMode.EXPORT instead of IMPORT for the blocking button overlay, tooltip and label. Also adds a diamond operator on CoverAdvancedRedstoneTransmitterBaseGui and fixes a comment typo. - @kuba6000
- Fixed: inverted labels in conveyor, pump and fluid detector cover GUIs
- #6311 Removes the "(2 minimum total)" text from the pillar line in MTEOilDrillBase.createTooltip. - @Yoshy2002
- Fixed: wrong pillar size in Oil Drill tooltip
- #6307 Changed autoplace value in MTENanochipAssemblyComplex from 25 to 500. - @chrombread
- Fixed: Nanochip Assembly Complex autoplace rate
- #6306 Added a varargs addTo(IRecipeMap...) overload to GTRecipeBuilder and PyrolyseRecipes now adds each recipe to both pyrolyseRecipes and cokeOvenRecipes. Removed the legacy AddGregtechRecipe.importPyroRecipe reflection import and its onLoadComplete call, and moved the 0.8 duration multiplier into a recipeTransformer on the coke oven recipe map. - @TotallyNotOndre
- Removed: legacy pyrolyse recipe import for the Industrial Coke Oven
- Fixed: Industrial Coke Oven importing only vanilla oredicted log pyrolyse recipes
- #6296 Fixed memory leak in GTChunkManager.java (added 11 lines, removed 3) and GTProxy.java (added 2 lines) related to chunk tracking and pollution tracking. Prevents unbounded growth of internal caches. - @Alexdoru
- Fixed: chunk manager memory leak, pollution system memory leak
- #6295 MTEFuelRefineFactory.setProcessingLogicPower now calls the super implementation, then sets unlimited tier skips. It no longer sets voltage and amperage by hand. The unused explodesOnComponentBreak override is removed. - @Alexdoru
- Removed: unused explodesOnComponentBreak override
- Fixed: Naquadah Fuel Refinery using 2 amps with a single energy hatch
- #6293 MTEFrothFlotationCell's STRUCTURE_DEFINITION is no longer built in a static initializer and is created lazily in getStructureDefinition. The static initializer called ofFrame on MaterialsAlloy, which broke GT++ registration. - @Yoshy2002
- Fixed: GT++ cells registered as GT cells
- #6287 Corrected output bus count description in MTEPlasmaForge.java (1 line changed). - @JMan-Zx
- Fixed: Plasma Forge output bus count description
- #6285 Removed the duplicated words ('at at', 'the the') in MTECleanroom and MaterialsInit, and corrected the addController string in MTEIndustrialSifter. - @Yoshy2002
- Fixed: duplicate words in Cleanroom error and Glue formula, Industrial Sifter controller position tooltip
- #6279 Moved filter message generation to MEFilterBase.java base class and updated localization keys in en_US.lang; simplified MTEHatchOutputMEBase.java logic (6 additions, 12 removals). - @hinyb
- Added: Centralized filter update message logic in MEFilterBase.java
- Removed: Redundant message code from MEFilterFluid.java and MEFilterItem.java
- #6276 MEFilterFluid and MEFilterItem had their enable and disable keys swapped, and the keys are now corrected. MTEHatchOutputMEBase.updateFilter now sends the chat message only when GTUtility.isServer() is true. - @TheYoingLad
- Fixed: swapped fluid and item filter chat messages on ME output hatch and bus, filter chat message sent twice
- #6274 Adds fluid.oil, fluid.tile.fluidBlockSludge, fluid.sludge, fluid.oilgc and fluid.fuelgc to en_US.lang. Also adds a trailing newline at the end of the file. - @iouter
- Added: fluid.oil lang key, fluid.sludge lang key, fluid.oilgc lang key, fluid.fuelgc lang key, fluid.tile.fluidBlockSludge lang key
- Fixed: missing fluid lang keys
- #6273 Corrected max tier overclock calculation in MTETreeFarm.java (1 line changed). - @Nana-Sakura
- Fixed: Issue #24135: TGS consuming MAX+1 power with UXV dual hatches
- Closes GTNH#24135
- #6272 Changed
waterAmount,lubricantAmount,parallelFromFluids,parallelFromItemsfrom int to long in MTEIntegratedOreFactory.checkProcessing() and chemicalWash(); updated drain logic to handle multiple hatches and large fluid amounts (61 additions, 14 removals). - @luoyangyuli2001- Fixed: Integer overflow causing negative parallel counts, Incorrect fluid consumption
- #6267 MTEMegaBlastFurnace.checkMachine now checks exotic energy hatch tiers against glassTier when glassTier is below UMV. The previous check sat inside the laser-hatch branch and had no effect on exotic hatches. The tooltip calls addGlassEnergyLimitInfo(VoltageIndex.UMV). - @khaskelbergTAU
- Fixed: Mega EBF energy hatch not limited by glass
- Closes GTNH#24123
- #6261 MTEHatchCreativeMaintenance now sets all tool flags in both constructors and in onMaintenancePerformed. The onPostTick override that set them each tick is removed. - @AnsonYeung
- Fixed: wall-shared auto-taping maintenance hatch not repairing one machine after being copied with the matter manipulator
- #6260 Werkstoff.Stats uses -1 as the unset melting point sentinel. getMeltingPoint maps -1 to 1123, and the new getMeltingPointDirect returns the raw value, which WerkstoffLoader.getFluidTemperature now uses. - @Nana-Sakura
- Added: getMeltingPointDirect accessor
- Fixed: BartWorks fluids defaulting to 1123K temperature
- Closes GTNH#24112
- #6253 Fixed the machine name string in LoaderMetaTileEntities for CHEMICAL_REACTOR_UV. - @UltraProdigy
- Fixed: typo in UV Chemical Reactor name
- #6245 Removed disableEoHRecipe from the Ross128b, Ross128ba and Everglades DimensionDef entries. EyeOfHarmonyRecipe takes IOreMaterial pairs, handles GT++ materials, and merges the stone dust output via a map. EyeOfHarmonyRecipeStorage.specialDeepDarkRecipe now scans Werkstoff and GT++ ores through BWOreAdapter and GTPPOreAdapter. RecipeGenOre for GT++ ores was cleaned up. - @SST-03
- Added: Eye of Harmony recipes for Ross128b, Ross128ba and Everglades, BartWorks and GT++ ores in the Deep Dark Eye of Harmony recipe
- Fixed: Deep Dark Eye of Harmony missing outputs that Deep Dark void miners give, low Netherrack dust output in Eye of Harmony
- Migration: Check Eye of Harmony setups: the Deep Dark recipe and the stone dust output changed, so rebalance any running setup.
- Closes GTNH#19935, GTNH#20962
- #6238 Changed 'item input' to 'fluid input' in gt.blockmachines.input_hatch_me.autopull.desc in en_US.lang. - @Eldrinn-Elantey
- Fixed: wrong description for the ME auto-pull input hatch
- #6237 Added the missing ')' to item.MiningDroneUMV.name in the gtnhintergalactic en_US.lang. - @Eldrinn-Elantey
- Fixed: typo in Mining Drone MK-XII name
- #6231 MetaBaseItem and MetaGeneratedItem replace the localization key/args maps with Supplier<String> maps. GTUtility.translate now tolerates null parameters. Description of the multi-slot input hatch moved from MTEHatchInput to MTEHatchMultiInput, and lang entries were added. - @iouter
- Added: names and tooltips for the Stable Baryon, Lepton, Meson, Boson and Empty Containment Units
- Fixed: error tooltips on items and machines, multi-slot input hatch description
- #6228 GTUtility.getContainerForFilledItem returns null when the drain returns null or zero amount. MTEDigitalTankBase.onPreTick was flattened with early returns. - @danyadev
- Fixed: fluid duplication with GT fluid tanks
- Closes Dupes-Exploits-GTNH#273
- #6227 Added IFluidContainerItemMetaTile with a getFluidNbtKey method, implemented by MTEDigitalTankBase and MTETieredTank. ItemMachines now looks up the meta tile for the stack and uses its NBT key for getFluid and the fill/drain paths, instead of a hardcoded mFluid and MTEDigitalTankBase. - @Kogepan229
- Added: IFluidContainerItemMetaTile interface
- Fixed: fill and drain on GT++ Tank and Super Tank items
- #6224 Deleted two compressorRecipes entries (4 GraniteBlack / GraniteRed dust to 3 stone, 5 s, 2 EU/t) from CompressorRecipes. - @UltraProdigy
- Removed: Black Granite dust compressor recipe, Red Granite dust compressor recipe
- Fixed: recipe conflict with the dust to plate recipe for granite
- #6222 Corrected a compilation issue in the Froth Flotation Cell multi-block machine. - @Alexdoru
- Fixed: Build compilation error
- #6221 Removed 94 unused localization keys from gregtech en_US.lang that were orphaned during PR #6206. - @Eldrinn-Elantey
- Removed: 94 unused localization keys
- Fixed: Stale localization entries
- #6219 FluidGT6 now stores the material's default local name and resolves the oreprefix key through OrePrefixes.getOreprefixKey instead of reusing the material key. The unused localizedName supplier field was removed. - @iouter
- Fixed: GT++ plasma fluids showing a wrong name
- #6217 Deletes the gt.bwMetaGenerated*, and gt.metaitem.01.8150 tooltip entries from the bartworks, goodgenerator and gregtech en_US.lang files. - @iouter
- Removed: redundant material tooltips
- #6214 In MaterialsAlloy, TUNGSTEN_CARBIDE is now generated with MaterialUtils.generateMaterialFromGtENUM(Materials.TungstenCarbide) and the standalone GT++ material definition is removed. - @iouter
- Removed: separate GT++ Tungsten Carbide material definition
- Fixed: GT++ Tungsten Carbide components being null
- #6213 Changes the MassFabricator durationMultiplier config default in MachineStats and the static sDurationMultiplier in MTEMassfabricator from 3215 to 3200. - @loenaaaa
- Fixed: inconsistent UUM recipe durations in the Mass Fabricator
- Closes GTNH#23956
- #6210 MTEIndustrialThermalCentrifuge.newMetaEntity now passes this.mName instead of STRUCTURE_PIECE_MAIN to the constructor. LoaderMetaTileEntities registers the controller with the English name Large Thermal Refinery, and the tooltip machine type string and some log and comment strings are renamed. - @Yoshy2002
- Fixed: Large Thermal Refinery controller created with the wrong name when placed, Large Thermal Refinery registered under the Industrial Thermal Centrifuge name
- #6209 TTRecipeAdder.addResearchableAssemblylineRecipe now passes GTUtility.copyAmount(1, aOutput) to itemOutputs in both overloads. - @UltraProdigy
- Fixed: Research Station recipe output count matching the Assembly Line output
- #6208 Adds removeOrePrefix(cellMolten) to the four magnetic materials in MaterialsInit. LoaderGTBlockFluid now skips addAutogeneratedMoltenFluid for materials in the cellMolten mNotGeneratedItems list. - @UltraProdigy
- Removed: autogenerated molten fluids for Magnetic Iron, Neodymium, Samarium and Steel
- #6205 Added getLocalizedName override in GTFluid.java to attempt StatCollector translation of fluid unlocalized names with fallback. - @Eldrinn-Elantey
- Added: fluid name localization override
- Fixed: fluid localization support
- #6198 Corrected canFillFluid/canAcceptFluid method calls, replaced tryFillAE with dumpFluid, added storage contents exposure in getInfoData and getWailaAdvancedBody across output ME hatch classes. - @hinyb
- Added: storage info exposure
- Removed: obsolete tryFillAE method
- Fixed: fluid acceptance checks, recipe start conditions, Distillation Tower voiding
- Closes GTNH#24032, GTNH#24052
- #6197 Added super.addInformation call to preserve base tooltip, replaced StatCollector translation calls with GTUtility.translate in ItemGTToolbox.java. - @Eldrinn-Elantey
- Removed: unused StatCollector import
- Fixed: missing base tooltip content, inconsistent localization
- #6194 Removes the itemInputs(itemInputs) calls that re-applied a fixed item input array in the Naquadah case of the wafer handling in GTRecipeConstants, so the builder's own lens oredict input is used. - @LooseEthics
- Fixed: Naquadah wafers accepting only one lens type in the Laser Engraver
- Closes GTNH#23897
- #6193 In MTEHatchOutputMEBase, markDirty moved into addToCache and lastInputTick is only updated in storePartial. In MTEMultiBlockBase, the swapped canFillFluid and canAcceptFluid calls in dumpFluid and canDumpFluidToME are restored. - @hinyb
- Fixed: ME output hatch cache not persisting, swapped fluid acceptance checks for ME output hatches, ME hatch input timer updating on the wrong call
- Closes GTNH#24011
- #6192 ItemGTToolbox.buildUI now saves through ToolboxItemStackHandler.onContentsChanged and falls back to scanning the inventory for the open toolbox if the original slot no longer holds it. Adds null checks in ToolboxUtil.saveToolbox, GTPacketToolboxEvent and ToolboxRenderer, adds createScreen with a mod id to SelectGuiHolder, and removes unused code. - @querns
- Removed: unused toolbox helper methods
- Fixed: toolbox duplicating or voiding items when moved out of its slot with number keys, toolbox null pointer crashes during use and rendering, ModularUI2 console warning when the radial menu opens
- Closes GTNH#24003
- #6191 Edited one row of the flower layer in the MTEMegaIndustrialApiary structure definition (' NF FFO ' became ' NFF FFO '). Follow-up to #6183. - @Sanduhr32
- Fixed: asymmetric flower layer in the Mega Industrial Apiary structure
- Migration: Rebuild the Mega Apiary: three symmetry fixes (#6153, #6183, #6191) changed its structure layout, and the shape in this release is the final one.
- #6186 Added laser hatch compatibility text to MTEPlasmaForge tooltip. - @ham-corp
- Added: laser hatch compatibility note to DTPF tooltip
- Closes GTNH#23987
- #6185 Corrected success rate calculation and beam input validation in MTEBeamCrafter to check correct hatch positions and apply proper recipe success conditions. - @ham-corp
- Fixed: Beam Crafter 100% success rate exploit, incorrect beam input handling
- Closes GTNH#24005
- #6183 Edited one character in the controller layer string of the structure definition in MTEMegaIndustrialApiary, follow-up to #6153. - @Sanduhr32
- Fixed: second asymmetric block in Mega Industrial Apiary structure
- #6181 Re-added Thermal Centrifuge recipes in RecipesMachinesMulti and fixed tooltip method call in MTEIndustrialThermalCentrifugeLegacy. - @Yoshy2002
- Fixed: missing Thermal Centrifuge recipes, incorrect tooltip method
- #6179 Reworded the addInfo calls in MTEUniversalChemicalFuelEngine.createTooltip so the string concatenation no longer merges the two sentences. - @Ranzuu
- Fixed: run-together text in the Universal Chemical Fuel Engine tooltip
- Closes GTNH#23916
- #6165 Corrected power calculation in MTEIntegratedOreFactory to handle multiple hatches properly. - @VortexSo4
- Fixed: power calculation with multiple hatches in IOF
- #6156 Updated MTEIntegratedOreFactory to properly apply recipe time values and removed batch mode logic that was interfering with recipe duration. - @Alexdoru
- Removed: batch mode from IOF
- Fixed: IOF not respecting recipe time
- #6155 Replaced getInfoData overrides and MegaMultiBlockBase's getExtendedInfoData/getCurrentInfoData with getExtraInfoData(List<String>) using new translated .s lang keys. Moved formatUIEUt into MTEActiveTransformer. - @evgengoldwar
- Fixed: scanner info on several multiblocks
- #6154 Updated RecipeGenRecycling to use vVoltageMultiplier from material tier instead of fixed values for fluid extractor recipe generation. - @Eldrinn-Elantey
- Fixed: incorrect mid-tier recycling recipes
- Closes GTNH#23965
- #6153 Edited one character in one layer string of the structure definition in MTEMegaIndustrialApiary so the layer is mirror-symmetric. - @Sanduhr32
- Fixed: asymmetric Mega Industrial Apiary structure layer
- #6143 GenerateNodeMap.getNextValidTileEntity now returns null when the pipe is not connected at the opposite side of the incoming direction. The method was also de-nested. - @couref
- Fixed: cables transferring energy through energy-blocking covers
- Closes GTNH#23931
- #6140 MTEOilDrillBase now keeps batchMultiplier as a protected field, set to 128 only when batchMode and reachingVoidOrBedrock() hold, and folds it into calculateMaxProgressTime. The per-tier createTooltip overrides and the MTEOilDrillInfinite batch code were removed. Angelica dev dependency bumped to 2.1.4, and TODOs were added in UndergroundOil about int casting. - @boubou19
- Removed: batch mode line in oil drill tooltips
- Fixed: batch mode on the Infinite Fluid Drilling Rig, batched fluid amount check with voiding disabled
- #6138 Removed KeyboardUtils.isShiftKeyDown, which called LWJGL Keyboard on the server. Callers now use isSneaking with server-side isRemote checks, and MTEHatchTurbineProvider uses a new SyncedKeybind CTRL_KEYBIND registered in GTProxy. - @DarkShadow44
- Added: synced Ctrl keybind
- Fixed: server crash when using the Personal Healing Nanobooster, server-side key checks in GT++ items and hatches
- Closes GTNH#23902
- #6135 In CentrifugeRecipes, the ProcessingSand oil recipe input changed from OreDictItemStack "sandOil" x2 to GTOreDictUnificator ore Oilsands x2. - @czqwq
- Fixed: Oilsands to Oil Cell centrifuge recipe input
- #6134 The scanner info text in MTEMultiBlockBase.getInfoData now uses new GT5U.multiblock.scanner.* lang keys that keep the format parameters. The original GT5U.multiblock.* keys are reduced to plain labels. The en_US, ru_RU and zh_CN lang files were updated. - @evgengoldwar
- Added: GT5U.multiblock.scanner.* lang keys
- Fixed: translated format strings with parameters not rendering correctly, incorrect status display in the cleanroom controller UI
- Closes GTNH#23615, GTNH#23943
- #6131 In EntityRenderer.getAxesFromFacing, the vertical axis is rounded component-wise with Math.round. rotateAxis could leave small float errors, so the axis was no longer a cardinal vector. - @Ruling-0
- Fixed: EEC entities rendered with the wrong rotation for certain controller facings
- #6130 Increased priority of GT5U mouse event handler so GT pick block event fires before AE2 ME Pick Block event, allowing Toolbox and spray can handlers to execute. - @querns
- Fixed: Toolbox and spray can clobbering from AE2 ME Pick Block handler
- #6129 GTPowerfailTracker.writeToNBT skips null owners, null players and null team leaders. GTPowerfailRenderer.powerfails is now an Int2ObjectOpenHashMap keyed by dimension, and the packets and PowerfailLayerManager were updated to match. The renderer also binds the block texture atlas and sets GL attribute and blend state. The Client.save() call in GTPacketOnPowerfail was removed. - @RecursivePineapple
- Fixed: server NPE from invalid player UUID in powerfail data, powerfail notifications showing in the wrong dimension, incorrect blending on powerfail alerts
- Closes GTNH#22547
- #6128 AEInventoryItemIO implements simulatedSinkIterator(). The anonymous iterator became a named inner class with a simulated flag that is passed to extractItem. - @hiroscho
- Added: simulatedSinkIterator implementation for AEInventoryItemIO
- Fixed: AEInventoryItemIO missing the simulatedSink implementation required by GTNHLib
- #6127 Rewrote AveragePerTickCounter to use a fixed-size circular buffer of values and timestamps (period + 1 entries) instead of an ArrayDeque of Measurement objects. getAverage caches per tick and handles windows that are not yet full. - @hinyb
- Fixed: wrong average values from getSensorInformation on gt_machine in OpenComputers
- Closes GTNH#23081
- #6125 In kubatech EntityRenderer.renderParticle, glMatrixMode was called with GL_MODELVIEW_MATRIX, which is not a valid mode. It now uses GL_MODELVIEW. - @Ruling-0
- Fixed: invalid GL matrix mode in EEC entity renderer causing entities to render with the wrong rotation
- #6116 MTEHatchInput sent the raw colorization byte without the +1 offset, so an unsent value read as 0 (Black). It now uses the +1/-1 offset like the input bus and vacuum conveyor hatch, and the shared tooltip code moved into MTEHatch.addColorChannelInfo. - @Alexdoru
- Fixed: flickering "Color channel: Black" in WAILA on input hatches
- #6115 Removed tooltipShowUpTimer(TOOLTIP_DELAY) from createFluidInputSlot and createFluidOutputSlot in MTEBasicMachineWithRecipeBaseGui. - @chrombread
- Removed: tooltip delay on singleblock fluid I/O slots
- Fixed: delayed tooltips on fluid slots in singleblock machine GUIs
- Closes GTNH#23893
- #6112 Adds Polybenzimidazole, RadoxPoly and PolyphenyleneSulfide to the plastic case in OrePrefixes.getDefaultLocalNameFormatForItem. Fixes the 'Polybenzimidazone' typo in en_US.lang. - @Alexdoru
- Fixed: three plastics named ingot/plate instead of bar/sheet, Polybenzimidazole Wrapper Spool typo
- #6109 Deletes ItemVolumetricFlaskGui (ModularUI2). ItemVolumetricFlask again implements IItemWithModularUI and opens its GUI through GTUIInfos with the old ModularUI widgets. - @chrombread
- Removed: ModularUI2 Volumetric Flask GUI
- Fixed: Volumetric Flask GUI failing on servers
- #6107 ItemHealingDevice.addInformation inserts spaces between the lang strings and the number. The leading space is removed from GTPP.nanohealer.tooltip.3 in en_US.lang and ru_RU.lang. - @Yoshy2002
- Fixed: Personal Nanobooster tooltip spacing
- #6106 Corrected shutdown reason localization key in ShutDownReasonRegistry and corresponding language file entry. - @Yoshy2002
- Fixed: shutdown reason spelling and localization
- Closes GTNH#23904
- #6102 Added Muffler Hatch check in MTEImplosionCompressor.checkMachine(). - @Spaghetti-OberNub
- Fixed: Implosion Compressor structure check for Muffler Hatch
- Closes GTNH#23685
- #6101 BehaviourWireCutter.onItemUseFirst returns false for TileDrive and TileChest unless the player is sneaking. It also adds null checks for the tile entity and the selected part. - @UltraProdigy
- Fixed: wirecutter overwriting AE2 cell formatting on ME Chest and ME Drive
- #6099 MTETieredMachineBlockBaseGui registers the item_inv slot group with shift transfer disabled (registerSlotGroup("item_inv", 1, false)). - @Caedis
- Fixed: shift transfer into the slot next to the ghost circuit in single block machines
- #6094 MTEDissolutionTank.checkRatio now loops over all input FluidStacks and sums the major and minor amounts. It returns majorAmount == minorAmount * mSpecialValue instead of dividing. The settings plugin version is also bumped to 2.0.24. - @LooseEthics
- Fixed: Dissolution Tank not seeing two water hatches, imprecise ratio check from integer division
- Closes GTNH#22482
- #6093 ProcessingDust excludes Materials.Stone from the autogenerated compressor plate recipe. The recipe moves to NewHorizonsCoreMod (sister PR 1642). - @UltraProdigy
- Removed: duplicate Stone Plate compressor recipe
- Fixed: Stone Plate compression recipe registered twice
- #6092 In MTEPurificationUnitDegasser.addRecipeOutputs, the bonus output multiplier subtracts 1.0d instead of 1.0f, so the multiplication is done in double precision and the float rounding error is gone. - @SST-03
- Fixed: Degasser outputting extra Grade 7 Water with SuperconductorUIVBase
- Closes GTNH#23827
- #6091 CommonWidgets.createCircuitSlot change listener now uses the sync manager isClient instead of GTMod.proxy.isClientSide before calling markInventoryBeenModified. - @chrombread
- Fixed: Circuit slot not triggering a recipe check
- #6089 ResearchStationAssemblyLine moves the Stargate recipes out of the postload block so the Chronic Singularity item resolves later. It also drops the SGCraft mod load requirement. - @UltraProdigy
- Removed: SGCraft load requirement for Stargate recipes
- Fixed: Stargate plate recipe missing items
- Closes GTNH#23815
- #6083 MTEOreDrillingPlantBase onScrewdriverRightClick now reports the diameter as chunkRadiusConfig * 2 chunks and chunkRadiusConfig * 32 blocks. The tooltip is rewritten to match, and chat calls use sendChatTrans. - @UltraProdigy
- Fixed: Incorrect working area in Miner multiblock tooltips
- #6071 In MTEBasicMachineWithRecipeBaseGui, the fluid input and output slot onValueChanged now checks the ModularUI 2 sync manager isClient instead of GTMod.proxy.isClientSide, which returned true on the server. - @chrombread
- Fixed: Singleblock fluid slots not triggering a recipe check when changed
- #6069 Updated MTEResearchStation.java and en_US.lang to include previously undocumented hatches in the structure tooltip. - @C0bra5
- Added: Hatch documentation in tooltip
- Fixed: Research Station structure tooltip completeness
- #6068 CoverChestGui now stores the cover side and overrides getGuiId to return "cover.chest." plus the side, so each cover gets its own panel id. - @glektarssza
- Fixed: Second chest cover on the same block could not be opened
- #6058 MTEBasicMachineWithRecipeBaseGui replaces the anonymous ModularSlot onSlotChanged overrides with changeListener callbacks that call markInventoryBeenModified only on the server and not during init. - @Caedis
- Fixed: Singleblock fluid and ghost circuit slots responding sporadically until the GUI was closed
- Closes GTNH#23749
- #6057 Made sync value nullable in MTEResearchStationGui to handle cases where it may not be initialized. - @SST-03
- Fixed: Research Station GUI crash after Daily 399
- Closes GTNH#23725
- #6056 MTESolarTower structure definition now uses a custom structure element for the 'g' casing so hologram projector and auto-place builds work. The NEI display of max tier is also fixed. - @riggzh
- Fixed: Solar Tower could not use projector build, Solar Tower in NEI showed only max tier 1
- #6054 loadStackFromNBT in MTEHatchOutputME and MTEHatchOutputBusME now reads the stack from the "itemStack"/"fluidStack" sub-tag, returns null for an invalid stack, and restores the size from the "size" tag. - @lc-1337
- Fixed: ME Output Hatch and ME Output Bus cache not loading correctly from saved data
- #6053 MTEAlgaePondBase.checkForWater now also treats the IC2 distilled water fluid block (BlocksItems.getFluidBlock(InternalName.fluidDistilledWater)) as water. - @GDCloudstrike
- Fixed: distilled water not working in the Algae Pond
- #6051 Updated status check in MTEPurificationPlant to evaluate both idle and active states, as online state was split after PR #5835. - @Yoshy2002
- Fixed: Waterline recipes running only every other cycle
- Closes GTNH#23736
- #6049 In MTEIndustrialMolecularTransformer, the 'c' structure element is wrapped with activeCoils(), so the coil blocks get the active glow. - @NeutronSelector
- Fixed: Molecular Transformer coils not lighting up
- Closes GTNH#23713
- #6048 Adds change listeners that call markInventoryBeenModified on the server side to the circuit slot in CommonWidgets and to the special slot, charger slot and other slots in MTEBasicMachineWithRecipeBaseGui. - @chrombread
- Fixed: recipe checks not starting after slot changes in MUI2 single block machines
- #6046 MTELapotronicSuperCapacitorgui replaces the client-side onMousePressed callback with an InteractionSyncHandler, so rebalance() and the sync value updates run on the server side only. - @kx08
- Fixed: LSC rebalance button doing nothing
- Closes GTNH#23181
- #6045 Corrected status check in MTEPurificationPlant to use the correct state constant, allowing recipes to run when conditions are met. - @Spicierspace153
- Fixed: Waterline machine not turning on to run recipes
- Closes GTNH#23726
- #6039 The scanner.info.CASS.tier lang string now takes a %s argument and getInfoData in MTEComponentAssemblyLine and MTEAssemblyMatrixModule uses translateToLocalFormatted instead of concatenation. Updated en_US and ru_RU lang files. - @chrombread
- Fixed: missing space between casing tier label and value in scanner info
- #6036 Replaces the MACHINE_CASING_GEARBOX_TITANIUM.png iconset texture. - @seventh-june
- Fixed: titanium gearbox texture shading
- #6034 Removed the old slicer meta ID (631 at LV, 632 at MV, 633 at HV, 634 at EV in the visible part of the diff) from each tier's DefaultIntList in bartworks Configuration. - @NeutronSelector
- Removed: old slicer IDs from default ruins machine lists
- Fixed: server crash in Ross128b invalid ruins machine generation
- Closes GTNH#23669
- #6031 Corrected item reference in MixerRecipes for cropsNH weed extractor. - @C0bra5
- Fixed: cropsNH weed extractor item reference typo
- #6027 Adjusted MTEMassSolidifier NEI priority to list LV fluid solidifier variant first in recipe display. - @chrombread
- #6026 Adds a .special() entry, a Tool_DataOrb named "Orb to copy", to the fake data orb copy recipe in GTPostLoad.addFakeRecipes. - @C0bra5
- Fixed: missing source orb in the data orb duplication fake recipe
- #6024 MTENeutronActivator.checkMachine_EM now only scans upward for middle layers when the machine is not yet formed (!mMachine). When already formed, it re-checks only up to the stored height instead of looping while structureCheck_EM returns true on unloaded chunks. - @Worive
- Fixed: Neutron Activator hanging the server when not fully chunkloaded
- Closes GTNH#23032
- #6021 MTELargeEssentiaSmeltery: fixed preview hatch orientation and tier 3/4 length, replaced the wildcard StructureUtility import with explicit imports, and added a LES_ESSENTIA_CELL channel to GTStructureChannels. - @TheYoingLad
- Added: Essentia Diffusion Cell tier slider for the Large Essentia Smeltery preview
- Fixed: Large Essentia Smeltery preview hatch orientations, Large Essentia Smeltery tier 3 and 4 preview length
- Closes GTNH#17962
- #6017 Corrected random number generation in TileEntityModuleMiner from nextInt(x) [0, x-1] to proper [1, x] range calculation for output chances. - @SST-03
- Fixed: incorrect chance calculation bug, Clay and Cheese inaccessible from Space Elevator
- Closes GTNH#23509
- #6015 Changed the English display names in LoaderMetaTileEntities (Item Distributor, tier 9) and GregtechEnergyBuffer (Energy Buffer 1by1, tier 9). IDs unchanged. - @UltraProdigy
- Fixed: UHV Item Distributor and Energy Buffer labeled MAX Voltage
- #6014 MTEHatchOutputMEBase.storePartial now calls env.dispatchMarkDirty() before addToCache when not simulating, so the cache gets saved. - @lc-1337
- Fixed: ME Output Buses/Hatches voiding stored content on server restart
- Closes GTNH#23631
- #6009 Updated MTEIndustrialElectrolyzer build-block tooltip text to reflect current structure specification. - @seventh-june
- Fixed: incorrect build-block tooltip
- Closes GTNH#23668
- #6007 Replaced the binary texture assets/gregtech/textures/gui/overlay_button/redstone_on.png. - @Yoshy2002
- Fixed: wrong pixels in the redstone-on button texture
- #6003 Adjusted MTEOpticalOrganizerModule structure definition by 1 character to fix asymmetry. - @Yoshy2002
- Fixed: Optical Organizer asymmetric structure
- #5999 MTEHatchInputBusME: shifted circuit slot X, config slots, arrow, auto-pull button, manual slot and text widget by +5 px. Tooltip tier change is taken from the PR body, as that part of the diff is truncated. - @chrombread
- Fixed: off-center Stocking Input Bus GUI, Stocking Input Bus tooltip tier
- #5998 EIGIC2Bucket.recalculateDrops now picks the block under the crop by MTEExtremeIndustrialGreenhouse.isOldStructure(): Clean Stainless Steel Machine Casing for the old structure, Sterile Farm Casing for the new one, and restores the same block afterwards. Also the casing hatch element now uses CASING.asElement() instead of the hardcoded Sterile Farm Casing. - @kuba6000
- Fixed: Extreme Industrial Greenhouse IC2 mode not working with the new structure
- #5993 Fixed logic in MTENanochipAssemblyComplex laser drain routine to check module charge state before draining. - @NotAPenguin0
- Fixed: NAC laser always fully draining
- #5989 Added necessary overrides for singleRecipeLocking, batchMode, voidProtection, and inputSeparation in MTEIndustrialPackager and MTEIndustrialWireMill. - @VortexSo4
- Added: multiblock method overrides for feature control
- Fixed: missing overrides in refactored structure rework multis
- #5985 Fixed ConcurrentModificationException in MTENanochipAssemblyComplex by using Iterator API instead of Map.remove during iteration. - @NotAPenguin0
- Fixed: ConcurrentModificationException during multi-pattern conversion
- #5983 MTESpargeTower.checkMachine now checks mOutputHatchesByLayer.isEmpty() before calling get(mHeight - 1). Removed the debug Logger.INFO calls. - @seventh-june
- Removed: debug log messages in Sparge Tower structure check
- Fixed: Sparge Tower crash during structure check
- #5981 Updated MTEForgeOfGods and GodforgeMath to cap fuel factors to prevent integer overflow, fixed FuelConfigPanel layout issues causing icon cutoff and text overflow. - @GDCloudstrike
- Fixed: Godforge fuel overflow from large consumption factors, fuel config panel visual cutoff issues
- Closes GTNH#23518
- #5980 Modified MTENanochipAssemblyModuleBase to use separate simulated and actual ParallelHelper objects: one for determining EU/t cost without consuming items, and one for actual recipe execution. - @chrombread
- Fixed: item voiding when NAC modules lack sufficient power
- #5979 Added crash prevention in MTELargeMolecularAssembler when interacting with Pattern Provider, added temporary OVERLAY_HATCH_PATTERN_PROVIDER texture and updated MTEHatchPatternProvider with localization. - @asquared31415
- Added: Pattern Provider Hatch placeholder texture, crash prevention for LMA/Pattern Provider interaction
- Fixed: crash in Interface Terminal with Pattern Provider
- #5977 ParallelHelper.determineParallel passes recipe.mEUt to CheckRecipeResultRegistry.insufficientVoltage instead of tRecipeEUt, matching the value getAllowedTierSkip compares against. - @youkoaona
- Fixed: insufficient voltage message showing the discounted recipe EU/t
- #5975 Updated MTEIndustrialElectrolyzer structure validation to properly accept input hatches and perform muffler requirement checks. - @chrombread
- Fixed: input hatches rejected by Industrial Electrolyzer, missing muffler validation
- #5970 Refactored MTESplitterModule to iterate directly over input stacks instead of using a Map-based collection that was combining identical items from different sources, preventing item duplication and crashes. - @NotAPenguin0
- Fixed: item duplication in splitter module with multi-colored inputs, crashes from map-based item collection
- #5969 Updated tooltip text in MTEThermalBoiler and ThermalBoilerFrontend to mention filter requirement. - @noah-cope-dev
- Fixed: Missing filter requirement mention in tooltip
- Closes GTNH#23488
- #5967 In RecipesMachinesMulti.multiChisel, the fluid input changed from MaterialsAlloy.EGLIN_STEEL_BASE to MaterialsAlloy.EGLIN_STEEL. - @UltraProdigy
- Fixed: Sturdy Printer Casing recipe requiring an unobtainable fluid
- #5962 Fixed IndexOutOfBoundsException in MTEElectricImplosionCompressor.resetPiston by preventing negative index access to immutable list. - @Alexdoru
- Fixed: Index out of bounds exception in Electric Implosion Compressor piston reset
- #5961 Modified MTENanochipAssemblyModuleBase to separate recipe validation (simulated) from recipe execution (consumed), and optimized autoplace budget calculation. - @NotAPenguin0
- Fixed: Items consumed during recipe check instead of after execution, autoplace budget causing excessive right-click requirement
- #5960 GTShapelessRecipe.matches now reads getStackInSlot once per slot into a local variable, so a slot changing between calls no longer causes a NullPointerException. - @noah-cope-dev
- Fixed: NullPointerException in shapeless recipe matching with the Crafting Station
- Closes GTNH#23618
- #5959 In MTEBasicMachine.onPostTick, setActive is now called inside the drainEnergyForProcess branch with mProgresstime >= 0, instead of only when mProgresstime > 0. - @Sinerum
- Fixed: singleblock machines not becoming active for 1 tick recipes, Basic Distillery not displaying EU usage
- Closes GTNH#23594
- #5955 Moved isTalkModeActive state from MTENanochipAssemblyComplex to MTENanochipAssemblyComplexGui, making it per-player per-session instead of synced across all players. - @purebluez
- Fixed: multiplayer talk mode desync
- #5954 Removed incorrect override of hasMaintenance() from MTENanochipAssemblyModuleBase; the correct method getDefaultHasMaintenance() was already being overridden. - @FourIsTheNumber
- Removed: incorrect hasMaintenance override
- Fixed: NAC module operation, progressTime increment, output updates
- #5944 Added tier-skipping enablement in MTEMegaChemicalReactor after it was unintentionally lost during refactoring from the base class. - @chrombread
- Fixed: MCR tier-skipping
- #5943 Added InputHatch to the atLeast hatch list for casing element 'B' in MTENeutroniumCompressor. - @UltraProdigy
- Added: input hatch support on the Neutronium Compressor
- #5942 Modified MTEHatchEnergyTunnelGui to trigger structure check when the amp limit changes on a non-running machine, ensuring multiblock validates new power constraints. - @TheYoingLad
- Fixed: AAL power limit enforcement, energy hatch amperage respect
- Closes GTNH#17755, GTNH#22588
- #5940 Removed the at-most-one energy hatch check in MTEMegaChemicalReactor.checkMachine and the matching tooltip line. - @chrombread
- Removed: one energy hatch limit on the Mega Chemical Reactor
- Fixed: Mega Chemical Reactor rejecting multiple energy hatches
- #5934 In MTEHatchOutputMEBase, removed the early returns in updateFilter that skipped updates based on isFiltered. Removed the lastInputTick == tickCounter check from canStore and moved it to storePartial, so it only applies when inserting. - @hinyb
- Fixed: ME output hatch overflow protection failing, ME output hatch cell filter not updating when swapping cells
- #5932 Corrected GUI text widget synchronization in multiple drone centre GUI files, refactored ProductionRecord class to simplify storage logic, and added StatsBundle for tracking. Changes fix desync issues affecting drone operations. - @RealSilverMoon
- Added: StatsBundle class
- Fixed: drone centre GUI display, production record handling
- #5929 Fixes overlay texture application in MTEEyeOfHarmony from 1024 to 1024 + 16 + 12, and migrates TecTech BA0 casings to Casings.java. - @chrombread
- Added: TecTech BA0 casings to Casings.java
- Fixed: Eye of Harmony hatch overlay texture rendering
- #5926 Adds a return statement in MTEVoidMinerBase.onLeftClick() to prevent unintended NBT data modification when not using a data stick. - @purebluez
- Fixed: Void Miner accidental NBT data overwriting on left-click
- #5920 MTEHatchCraftingInputME.pushPattern now loops over the MEInventoryCrafting slots. It rejects anything that is neither an IAEItemStack nor an IAEFluidStack (the latter only when supportFluids is set). It records a ScheduledReason (UNSUPPORTED_STACK or SOMETHING_STUCK) and exposes it through getScheduledReason. - @Kogepan229
- Added: Reason reporting for refused patterns in the ME crafting input hatch
- Fixed: Crafting input hatch accepting patterns with unsupported stack types
- #5919 Adds pattern craftability check in MTELargeMolecularAssembler before processing. - @Kogepan229
- Fixed: LMA crash loop when processing unsupported patterns
- Closes GTNH#23543
- #5918 Follow-up to #5913: restored the _OVERLAY textures and flattened the fluxed set to use the main texture on blocks and items. Pipe and cable pass1 rendering now works with the set. - @Auynonymous
- Added: Fluxed Electrum overlay textures
- Fixed: Fluxed Electrum pipe and cable second pass not rendering, Fluxed Electrum overlays missing after the previous change
- #5917 Reverts commit 6554cf2. The fluxed CUSTOM material icon textures and their .mcmeta files under blocks/items materialicons are restored to their previous names, including the _OVERLAY variants. - @Auynonymous
- Fixed: Broken Fluxed Electrum textures
- #5916 CoverFluidRegulatorGui.validateTickRateText now checks whether the parseExpression result is null and uses 20 instead of dereferencing it. - @chrombread
- Fixed: Fluid Regulator cover crash on invalid tick rate input
- Closes GTNH#23554
- #5913 Renamed the fluxed material set textures and mcmeta files from _OVERLAY names to the main texture names for blocks and items. The set now uses the main texture layer. - @Auynonymous
- Fixed: missing arrow and insulation on Fluxed Electrum pipes and cables
- #5907 Updates RecipeGenRecycling to apply GT-style duration/EU logic for macerator recycling, adds RECYCLE metadata support for Arc Furnace, applies correct Fluid Extractor EU/t calculation, and adjusts recycle log voltage output to computed power usage. - @Eldrinn-Elantey
- Added: maceratorRecycling recipe category, Arc Furnace recycling generation with RECYCLE metadata, GT-style Fluid Extractor EU/t calculation
- Fixed: GT++ recycling recipe alignment with GregTech standards, Fluid Extractor power calculation accuracy
- #5879 BacterialVatFrontend.drawNEIOverlayForOutput now calls super first and then drawFluidOverlay. drawFluidOverlay returns early for non-fluids and no longer calls the super overlay itself. - @ABKQPO
- Fixed: Bacterial Vat NEI output overlay drawing the wrong overlay
- #5878 Added @SubscribeEvent to the GTClient.onWorldUnload override. The override lacked the annotation, so the Forge EventBus registration in the GTProxy constructor hit a null subInfo. - @Alexdoru
- Fixed: NullPointerException in GTClient event registration at startup
- #5876 TooltipHelper.voltageTierText bound check changed from voltageIndex >= VoltageIndex.MAX to voltageIndex > VoltageIndex.MAX, so MAX is no longer rejected. - @Ruling-0
- Fixed: MAX tier tooltips showing Invalid Voltage Tier
- #5874 Added survival build cost implementation to MTEImplosionCompressor.java (+10 lines) and MTEVacuumFreezer.java (+10 lines), which was missed when implementing PR #5812. - @VortexSo4
- Fixed: Missing survival build implementation in two multiblocks
- #5872 AntimatterGenerator structure 'H' element changed from HatchElement.ExoticEnergy with a custom addLaserSource adder to HatchElement.ExoticDynamo. The adder was removed, and the wireless EU clamp now reads capacity from the exotic dynamo hatches. - @harrynull
- Removed: Laser target hatch support on the Antimatter Generator
- Fixed: Antimatter Generator accepting laser target hatches instead of laser source hatches
- #5861 Restores the GTPacketSetConfigurationCircuit (ID 12) and GTPacketSetMold (ID 18) packets removed in #5683. BaseTileEntity and MTEHatchSolidifier send them to the server from the MUI1 select dialogs only. - @zyf051520
- Fixed: circuit selection menu broken in singleblock machines, CRIB circuit slot select panel not working, Solidifier Hatch mold selection not syncing
- Closes GTNH#23432
- #5858 Bumps ModularUI2 from 2.3.35 to 2.3.37 and moves GUI code off deprecated calls: childIf now takes suppliers, setColor becomes color, overlayTexture becomes overlay. createCircuitSlot takes IMetaTileEntity, and MTECokeOvenGUI is renamed MTECokeOvenGui. - @chrombread
- Fixed: some interfaces not opening on latest daily, phantom item slots not working
- Closes GTNH#23466
- #5855 Fixed NPE in MTECokeOven by correcting a null check or reference (single line change in src/main/java/gregtech/common/tileentities/machines/multi/MTECokeOven.java). - @RealSilverMoon
- Fixed: NPE in Coke Oven logging
- #5851 BlockSheetMetal removes the renderAsNormalBlock override and adds canRenderInPass (passes 0 and 1) and getRenderBlockPass returning 1, copied from ore blocks. - @RecursivePineapple
- Fixed: sheetmetal alpha overlay not rendering, sheetmetal redstone conductance issues
- #5843 MTEIndustrialCokeOven.createTooltip uses addCasingInfoExactly instead of addCasingInfoMin for the heat casings line. Tooltip text only. - @UltraProdigy
- Fixed: Industrial Coke Oven tooltip showing a minimum heat casing count
- Closes GTNH#23445
- #5832 Extracted black hole close logic into a dedicated method in MTEBlackHoleCompressor that correctly resets the spacetime cost and triggers render scale updates, eliminating previous duplicated logic. - @FourIsTheNumber
- Removed: Duplicated black hole close logic
- Fixed: Spacetime cost not resetting on natural black hole closure
- Closes GTNH#23438
- #5816 ToolScrewdriver.getIcon and getRGBa had the aIsToolHead condition inverted; both now use !aIsToolHead to pick primary vs secondary material. - @jude123412
- Fixed: Screwdriver head and handle textures and colors swapped
- #5814 Removed the aOptimize flag and the duration/stack-size divisor loop from the GTRecipe constructor. Every caller (BartWorks loaders, GT++ recipe loaders, RecipeMap, GTUtility, SpaceProjectManager, ExtremeHeatExchangerRecipe and others) was updated to the new signature. - @StaffiX
- Removed: GTRecipe missed recipe optimizer
- Fixed: recipes having amounts and duration divided on load
- Migration: The leading aOptimize boolean of the GTRecipe and GTRecipe_WithAlt constructors is still there but ignored, so a recipe an addon builds with it set to true is no longer scaled down.
- #5801 MTEHatchInputBusME.setStackToZeroInsteadOfNull now returns true while processingRecipe is set, so decrStackSize drains correctly when the bus shifts slot IDs during recipe processing. - @serenibyss
- Fixed: stocking input bus not extracting from slot 1 during recipe processing
- #5800 Corrected strings in en_US.lang files and a few other language files. Renamed the lang keys input_busses to input_buses and separateBusses to separateBuses, with matching changes in MTEAdvAssLine, MTEIndustrialWireMill and MTEAdvEBF. - @Yoshy2002
- Fixed: typos in tooltips and GUI text, misspelled lang keys for input buses
- #5796 BlockDimensionDisplay now checks the fixBottomFaceUV mixin option from HodgePodge and conditionally flips UV coordinates on the bottom face. Texture files for dimension display blocks were also reoriented to match. - @leagris
- Fixed: Flipped bottom face textures on dimension displays
- #5795 Edits en_US.lang for gregtech, goodgenerator and miscutils. ItemAlgaeBase.addInformation now uses the GTPP.algae.tooltip.* keys instead of GTPP.tooltip.*. - @Yoshy2002
- Fixed: Typos in en_US lang strings, Algae item tooltip keys not matching the lang file
- #5794 In RecipeMaps, the cauldron recipe map drops neiRecipeBackgroundOffset(7, 0) and sets neiRecipeBackgroundSize to 170x60 instead of 165x60. - @Ranzuu
- Fixed: NEI Cauldron recipe tab not aligned
- Closes GTNH#23369
- #5791 Updated PurificationUnitLaserFrontend recipe map configuration and uvtreatment.png progress bar texture. - @Ranzuu
- Fixed: High Energy Laser Treatment NEI page alignment
- Closes GTNH#23370
- #5789 MTECokeOven.onRightclick returns false when the fluid field is null before trying to fill the held container. - @loenaaaa
- Fixed: NullPointerException when extracting creosote from an empty Coke Oven
- #5787 Moved GL overlay rendering logic from GuiContainerRotorBlock to texture asset GUIPrimitiveKUBox.png. - @Ranzuu
- Removed: GL overlay code from GuiContainerRotorBlock
- #5784 GTUtility.compactInventory now calls MutableBoolean.setValue(true) and getValue() instead of setTrue() and isTrue(), which are missing from the old commons-lang3 version. The body calls this an attempt. - @Florexiz
- Fixed: Crash on Thermos servers from missing commons-lang3 methods
- #5782 In MTEAdvAssLine.tick, recipesDone++ became recipesDone += currentRecipeParallel on the batch output path. - @StaffiX
- Fixed: Advanced Assembly Line recipe counter undercounting in batch mode
- #5779 TileEntityHeatedWaterPump.handleRefuel now nulls the fuel stack when it is empty and only places or drops the container item if it is non-null. GTUtility gains dropItem and dropItemToBlockPos helpers, and the old dropItemsOrClusters call is replaced. - @Taskeren
- Fixed: Heated Water Pump crash when consuming a fuel with a container item
- #5778 MTEDieselEngine and MTELargeSemifluidGenerator now write and read mEfficiency, boostEu, fuelConsumption, fuelValue and fuelRemaining in saveNBTData and loadNBTData. The intake obstruction line was moved within the tooltip builders so both match. - @Yoshy2002
- Fixed: Large Diesel Engine losing boosted efficiency on world reload, Large Semifluid Generator losing efficiency on world reload
- Closes GTNH#20271
- #5777 In LoaderMetaTileEntities.registerCanningMachine, the boolean argument passed to each MTEBasicMachineWithRecipe canner registration changed from false to true (the diff shows six of the tier entries; the rest is truncated). - @FourIsTheNumber
- Fixed: Canning Machines not set to use fluid
- #5771 Adds the CircuitImprint enum and CircuitPartsItem, which replaces the BW meta items. Imprints are stored in the CAL NBT under id_imprint and mapped back to the enum. The old Type key is kept for backwards compatibility, and DeprecatedPartsMigrationRecipe handles conversion. - @boubou19
- Added: CircuitImprint enum, old imprint and sliced circuit conversion recipe
- Fixed: Circuit Assembly Line imprint migration
- Migration: CAL imprints and sliced circuits are now NBT-independent; place an old item in a crafting grid to convert it to the new meta-id linked version, and re-do any AE2 patterns or autocrafting that produced or consumed the old NBT imprints, since the new ones are different item metas.
- Closes GTNH#23396
- #5768 Dropped the "tile." and "item." prefixes from NHCoreMod names passed to GameRegistry.findBlock and getModItem in GTBeeDefinition, DEFCRecipes and EyeOfHarmonyRecipe. - @Nikolay-Sitnikov
- Fixed: bee mutation block lookups for NHCoreMod blocks, DEFC casing recipe Bloody Ichorium lookup, Eye of Harmonics stone dust lookups
- #5767 Added neighbor update calls in MetaTileEntity rotation handler to refresh laser/data pipe connections. - @kx08
- Fixed: Laser hatch pipe connection persistence after rotation, Data hatch pipe connection persistence after rotation
- Closes GTNH#20301
- #5766 ToolVajra.onItemUse now calls world.notifyBlocksOfNeighborChange after removedByPlayer, onBlockDestroyedByPlayer and harvestBlock succeed. - @michaeldoylecs
- Fixed: Vajra right-click break not sending block updates to neighbors
- #5760 BlockMachines.canConnectRedstone now also handles BaseMetaPipeEntity and returns hasCoverAtSide for the given side. - @Engineer12798
- Fixed: redstone not connecting to pipe covers
- #5759 Corrected GTMusicSystem and MTEBetterJukebox disc resource name handling to properly replicate vanilla record logic without double-prepending. - @eigenraven
- Fixed: Pigstep disc not playing, EFR Music discs not playing
- Closes GTNH#19698, GTNH#19955
- #5758 Removed unnecessary string prepending in MTEBetterJukebox that was breaking modded music disc resource lookups. - @eigenraven
- Fixed: modded music disc support in jukebox
- #5756 In ThaumcraftRecipes, Sensor_MV and Sensor_HV component stacks changed from count 2 to 1 in the infusion recipes for the magic energy converter and absorber. - @UltraProdigy
- Fixed: TC Energy Converter and Absorber recipes showing 2 sensors per stack
- #5754 Extended MTEAdvEBF tooltip to include discount information similar to other discount-based machines. - @UltraProdigy
- Added: discount info to Volcani tooltip
- Fixed: missing discount tooltip on Advanced EBF
- #5753 Corrected rotation logic in TileEntityDysonSwarm and TileEntityPlanetaryGasSiphon texture handling to properly apply rotation transformations. - @serenibyss
- Fixed: textures not rotating properly on Dyson and gas siphon
- #5746 TileEntityHeatedWaterPump.canExtractItem now returns GTUtility.isEmptyFluidContainer(item). handleRefuel drops the container item via GTUtility.dropItemsOrClusters when the fuel stack is not empty. GTUtility.reInit was also cleaned up, with added comments. - @Taskeren
- Fixed: Stirling water pump eating buckets that were hoppered out
- Closes GTNH#23282
- #5743 Modified IGregtechWailaProvider interface and GregtechBlockWailaDataProvider to properly differentiate between coil types, including glowing variants, and return the correct recipe metadata. - @danyadev
- Fixed: incorrect coil recipe shown on glowing coils
- #5733 GTNEIDefaultHandler offsetX changed from 3 to 5, which shifts WINDOW_OFFSET. - @slprime
- Fixed: NEI recipe handler padding
- #5725 Added missing conflict resolution in ProcessingStone for basalt plate cutting recipe. - @UltraProdigy
- Fixed: Basalt plate cutting recipe conflict
- #5715 In RecipeLoaderGlueLine, the outputs now use GTUtility.copyAmountUnsafe to build stacks of 128 and 512 Graphene dust, since the stack size exceeds the normal limit. - @UltraProdigy
- Fixed: broken 128 and 512 Graphene recipes
- Closes GTNH#23205
- #5713 Fixed counter accumulation logic in MTEAdvAssLine and world reload persistence in MTEMultiBlockBase parallel tracking. - @StaffiX
- Fixed: AAL only counting last recipe, Parallel count resetting on world reload
- #5712 In FoundryFakeModuleCostLoader, the Hypercooler recipe's Casing_AdvancedVacuum count changed from 20 to 19 and Hatch_Input_LV x1 was added as an input. - @chrombread
- Fixed: Hypercooler module cost display missing an input hatch
- #5708 TileEntityDysonSwarm.getPowerFactor returns 1.0 early when Mods.GalacticraftCore is not loaded, before the IOrbitDimension check. - @UltraProdigy
- Fixed: crash when placing the Dyson Swarm controller without Galacticraft
- Closes GTNH#23173
- #5701 MTEWindmill gets a DISPENSER_OR_CLAY IStructureElement. It accepts a dispenser or hardened clay in check, shows a clay hint, places clay, and lists both as blocks to place. The structure definition uses it in place of a plain clay element. - @UltraProdigy
- Fixed: Dispenser missing from the Windmill structure preview
- Closes GTNH#22956
- #5693 Added hatch validity filtering in MTELargerTurbineBase.getInfoData to prevent null pointer exceptions from invalid hatches. - @ABKQPO
- Fixed: Larger Turbine crash on panel query
- #5691 Tier argument changed from 3 to 4 in the MTEHatchInputBusME (non-autopull), MTEHatchOutputBusME and MTEHatchOutputME constructors. - @chrombread
- Fixed: ME bus and hatch tier shown as HV instead of EV
- #5689 RecipeGenRecycling now includes OrePrefixes.dust in the valid prefixes. Dusts skip the maceration recipe and skip the fluid extractor recipe when the material requires a blast furnace. - @UltraProdigy
- Added: Fluid extraction recipes for smeltable GT++ alloy dusts
- Fixed: GT++ dusts that can be smelted in a furnace could not be fluid extracted directly
- Closes GTNH#24202
- #5686 Removed redundant input hatch tier validation in MTEAlgaePondBase following PR #5608 recipe changes. - @UltraProdigy
- Removed: Algae Pond input hatch tier check
- Fixed: Algae Pond hatch logic
- #5683 Removed GTPacketSetConfigurationCircuit, GTPacketSetMold and GTPacketSetShape and their GTPacketTypes entries (IDs 12, 18, 20 left unused). The circuit selection is now applied on the server through a syncer callback in CommonWidgets.createCircuitSlot. Fixed the slot index in MTEHatchExtrusion. - @zyf051520
- Removed: GT packets for circuit, mold and shape setting
- Fixed: Extrusion Hatch circuit slot modifying normal slots
- #5680 Added input separation toggle flag and configuration option to MTEExoFoundry. - @chrombread
- Added: Input separation toggle option
- Fixed: Input separation configurability
- #5679 Removed inefficient per-slot validation loop and replaced with field-based tracking. Simplified mask acceptance logic while maintaining single-type population in usage slots. Reduced inventory capacity and fixed MTEHatchExtrusion slot numbering bug. - @RecursivePineapple
- Removed: Exponential slot scanning in focus bus
- Fixed: Focus input bus performance, MTEHatchExtrusion slot numbering
- #5671 Added null-safety check in MachineRecipes.java when accessing Galacticraft integration. - @danyadev
- Fixed: Crash when NHCoreMod loaded without Galacticraft
- #5663 In ChemicalRecipes, fluid inputs for the RawStyreneButadieneRubber recipe changed from Styrene 36 / Butadiene 108 to 72 / 216, fixing a regression from the refactor in PR 4279. - @chochem
- Fixed: Wrong fluid amounts in the styrene butadiene rubber recipe
- #5659 MixinGalacticraftRocketPollution now returns unless worldObj.getTotalWorldTime() % 20 == 0, and skips the call when the computed pollution is zero or less. The per-tick behaviour came in when the ModMixins mixins were folded into Hodgepodge and then moved to GT. - @wlhlm
- Fixed: Rockets producing 20 times the listed pollution
- Closes GTNH#23141
- #5657 Removed the display-name based colour logic from GTMetaItemX32.getColorFromItemStack so the item is never tinted, and dropped the unused Utils and MathUtils imports. - @serenibyss
- Fixed: Incorrect tint on GT++ quad cell batteries
- #5655 Added addPlasma() to the Promethium material definition in MaterialsInit.loadPromethium. - @chochem
- Added: Promethium plasma cell
- Fixed: Missing cell version of promethium plasma
- Closes GTNH#23107
- #5654 Removed the HydrochloricAcid x3 and NitricAcid x1 component pairs from the AquaRegia Werkstoff in WerkstoffLoader so no formula is generated. Added TODOs for a proper fix with recipe rebalancing. - @chochem
- Removed: Aqua Regia chemical formula
- Fixed: Wrong Aqua Regia chemical formula
- #5653 Modified tooltip text in MTEIndustrialLaserEngraver to reference all upper-tier laser sources. - @Yoshy2002
- Fixed: Inaccurate tooltip information
- Closes GTNH#21168
- #5644 In RecipesMachinesMulti, the 'T' ingredient of the Hatch_Input_Steam recipe is now GregtechItemList.GTFluidTank_ULV.get(1) in place of the enum constant itself. - @Ableytner
- Fixed: broken Steam Input Hatch recipe
- #5642 DetravCreativeTab now extends GTCreativeTab with the key GT_DETRAV_TAB and the name Detrav Scanner. The icon is ItemList.Tool_Scanner, with a stick as fallback. - @Worive
- Fixed: wrong Detrav Scanner creative tab name
- Closes GTNH#21351
- #5639 Added GTBlockOre.getDropsForPlayer, which takes the harvesting player directly. getDrops now calls it with the thread-local harvester. Nothing in GT5 calls the new method, so other mods have to call it. - @Miklebe
- Added: GTBlockOre.getDropsForPlayer method for other mods
- Fixed: fortune not applying to GT ores for Bound Pickaxe right click
- #5638 Moved the tier, voltage multiplier, formula and symbol setup and the generateOreMaterial calls for RARE_EARTH_LOW, RARE_EARTH_MID and RARE_EARTH_HIGH out of RecipesRareEarthProcessing.init (post init) into GTPPEverglades.GenerateRareEarthOreMaterials, which GenerateOreMaterials calls. - @chrombread
- Fixed: crash on load from defining ores in post init
- #5637 multiblockRockBreakerRecipes in GTPPRecipeMaps is now registered in NEI as gtpp.recipe.multiblockrockbreaker, with a new MultiblockRockBreakerFrontend and max IO of 3 item inputs, 1 item output and 2 fluid inputs. The NEI catalyst link to the generic rock breaker map was removed, along with the getAvailableRecipeMaps override in MTEIndustrialRockBreaker. - @Faotik
- Added: Boldarnator NEI page
- Fixed: wrong circuit shown on the Boldarnator NEI page
- Closes GTNH#22199
- #5633 Fixed the crafting pattern keys in RecipesMachines (X to H for the Tesseract Terminal, I to P for the three air intake hatches). Fixed the output of the Steam Output Bus recipe in RecipesMachinesMulti and renamed vulcanus() to volcanus(). GregtechItemList now implements IItemContainer, and IGregtechItemContainer was deleted. - @serenibyss
- Fixed: missing GT++ multiblock controller recipes, Tesseract Terminal recipe, air intake hatch recipes, Steam Output Bus recipe giving an input bus
- Closes GTNH#23105
- #5632 RecipesMachinesTiered.tanks(): the 'U' ingredient changed from ItemList.Pump_LV/Pump_MV to Electric_Pump_LV/Electric_Pump_MV for the GT++ LV, MV and HV fluid tanks. - @chochem
- Fixed: wrong pump in LV, MV and HV Fluid Tank recipes
- #5631 MTEBasicMachine.createSteamProgressBar tooltip now multiplies the steam amount and max steam store by 2, because internal steam storage is kept at a 2:1 ratio. - @chochem
- Fixed: steam machine gauges showing half the real steam
- Closes GTNH#23102
- #5629 In MaterialsInit, loadNetheriteLine now calls Materials.Netherite.remove(SubTag.SMELTING_TO_FLUID), and loadNetherite no longer adds that subtag or removes the cellMolten prefix. - @chochem
- Removed: molten Netherite
- Fixed: Netherite having a molten form
- #5620 EIGFlowerBucket.tryCreateBucket returns null for ItemBlockSpecialFlower items and BlockModFlower or BlockSpecialFlower blocks. - @C0bra5
- Fixed: Botania flowers accepted by the Extreme Industrial Greenhouse
- #5619 Added null check to prevent crash in MTEHatchCraftingInputME highlight function. - @Kogepan229
- Fixed: Interface Terminal crib highlight crash
- Closes GTNH#22536
- #5615 Added a meta range check (below 0 or 32000 and above) before the meta % 1000 lookups in getRGBa, getIconContainer, getMaterialRenderer and addAdditionalToolTips in MetaGeneratedItemX32, MetaGeneratedItem99 and GTMetaItemX32. - @danyadev
- Fixed: wrong material flavor text on items with meta 32000 and above
- #5614 In MTEPreciseAssembler.tieredTextLine, the separator color after mk3 changes from LIGHT_PURPLE to GRAY. - @chrombread
- Fixed: purple slash in the Precise Assembler tooltip
- #5613 Fixed tooltip size reference in MTELatex to use correct BBB size constant. - @chrombread
- Fixed: Latex multiblock tooltip display
- #5610 Fixed turbine texture orientation in MTEAirFilterBase across all 3 tiers. - @GDCloudstrike
- Fixed: Electric Air Filter turbine texture visibility
- #5608 Ported Algae Pond recipes to a new gtpp.recipe.algae_pond RecipeMap with AlgaePondFrontend and an ALGAE_POND_TIER metadata key. Added CasingTier and chainAllCasings with a TIER_CASING structure channel, and rewrote MTEAlgaePondBase's water check, tier init and casing check. - @boubou19
- Added: Algae Pond NEI recipe page, Pond tier line in the scanner info, CasingTier registry for tiered casings
- Removed: Rarely changed per-recipe durations on Algae Pond recipes
- Fixed: Wrong casing texture in world, Sterile casing count shown as a minimum when exactly 64 are required, Algae farm hatch tiers
- Migration: The Algae Pond floor now needs at least 75 machine casings, up from 64, and that applies to the old controller you already have standing. The floor has only 80 usable positions and hatches do not count, so a pond with more than five hatches or buses unforms on load; take the extras out or rebuild it. Parallels also drop from 2 to 1. Both controllers are called Algae Farm in game.
- Closes GTNH#21644
- #5606 Removed the renderAsNormalBlock override returning false from BlockCasings5, so the coil block counts as a normal block for redstone power again. - @danyadev
- Fixed: heating coils not transferring redstone signals since 2.8.0
- Closes GTNH#20455, GTNH#21742
- #5602 In MTEOreDrillingPlantBase.processOreList, the tryConsumeDrillingFluid call is moved out of the ore iterator loop and back to before it, undoing the misplacement from the earlier refactor. - @Spicierspace153
- Fixed: Ore Drilling Plant consuming 2 buckets of drilling fluid per block
- #5599 ProcessingLogic.tryCachePossibleRecipesFromPattern now calls getCurrentRecipeMap first so the dual-input recipe cache clears on a recipe map change. MTEMultiBlockBase null-checks processingLogic before passing it to pattern hatches and also does so in addInputBusToMachineList. MTEHatchCraftingInputME now keeps its ProcessingLogic set in a WeakHashMap-backed set, and MTEHatchCraftingInputSlave remembers logics until a master is bound. - @zyf051520
- Fixed: crash when switching mode on a multi-mode multiblock with a CRIB, CRIB proxy hatch not passing processing logic to a master bound later
- #5594 SET_HYPOGEN is marked custom in TextureSet. BlockBaseModular and FluidUtils use white colour for custom texture sets, and the PR adds hypogen fluid textures with mcmeta animation files and hypogen block textures. - @serenibyss
- Added: molten hypogen texture, hypogen plasma texture, hypogen block textures
- Fixed: molten hypogen has no texture
- Closes GTNH#22967
- #5592 Adds simulatedSinkIterator to MTEDigitalChestBase and MTEInfiniteItemHolder item IO, and switches them to SimpleItemIO from gtnhlib. The local gregtech.api.implementation.items.SimpleItemIO is deleted. - @hiroscho
- Added: simulated sink support for quantum chests
- #5586 kekztech AssemblyLine recipe changes the EnderIO itemBasicCapacitor meta from 6 to 5. - @serenibyss
- Fixed: unintended recipe gating on an endgame recipe
- #5585 Added power state reset logic in MTEPurificationPlant after power failure to prevent unintended overconsumption. - @kx08
- Fixed: Waterline excessive power usage after powerfail
- Closes GTNH#22951
- #5574 MTEHatchCraftingInputME.loadNBTData only reads showPattern when the NBT key exists, so the field keeps its default when the key is missing. - @ABKQPO
- Fixed: AE cribs hidden in interface terminal by default
- Closes GTNH#23034
- #5572 GTNEIDefaultHandler offsetX changed from 5 to 3, which shifts WINDOW_OFFSET. - @slprime
- Fixed: misaligned background in GregTech NEI recipe handlers
- #5569 MTEHatchInputDebug.drain returns null for a null request and returns a copy only when the requested fluid matches an entry in fluidList, instead of always returning aFluid.copy(). - @chrombread
- Fixed: debug hatch draining fluids outside its filter
- #5566 Applied same material stats definition and duplicate mass removal for Tantalum Hafnium Carbide as PR #5565 to the 2.8 maintenance branch. - @UltraProdigy
- Removed: duplicate mass value
- Fixed: unbalanced Tantalum Hafnium Carbide tool properties in 2.8.4
- #5565 Defined material stats for Tantalum Hafnium Carbide in WerkstoffLoader.java that were previously missing, and removed duplicate mass configuration entries. - @UltraProdigy
- Removed: duplicate mass value
- Fixed: unbalanced Tantalum Hafnium Carbide tool properties
- #5564 Changed hardcoded incorrect chemical formula strings in WerkstoffLoader.java to use '?' placeholders for materials with unknown or overly complicated compositions, reverting broken formulas from PR #4156. - @chochem
- Fixed: incorrect chembalance calculations for platinum-line materials
- #5563 MTEPurificationUnitBase.onRightclick returns early on the client (world.isRemote), so the data stick linking logic only runs on the server. - @Spicierspace153
- Fixed: waterline data stick message shown twice in chat
- #5562 Reworked GT++ material item and block rendering (BaseItemComponent, BaseItemCell, BaseItemIngotHot, BaseOreComponent, TextureSet, etc.), removed dead colour and texture code and the CustomTextureSet class, and cleaned up the GT++ iconsets. The diff was too large to fetch, so this is based on the title, body and file list. - @serenibyss
- Removed: unused GT++ material colour and texture code
- Fixed: GT++ tint applied to overlay textures, missing outline textures on Hypogen, Fiery and Nuclear materials
- #5555 Added server-side check in GTStructureUtility.hint() to prevent calling hint on frame blocks on dedicated servers. - @chochem
- Fixed: side check crash when hint called on frame blocks
- #5549 Corrected logic error in GTPostLoad cauldron recipe initialization that was causing dailies to crash. - @chochem
- Fixed: Cauldron NEI recipe crash
- #5543 Refactored block/tile entity rendering pipeline; removed separate BlockDrone, BlockNanoForgeRenderer, BlockWormholeRender classes and consolidated to unified renderer; fixed frustum culling for drone rendering and frame-rate independent laser positioning; improved blade rotation smoothness. - @YamiKami-Sama
- Removed: BlockDrone class, BlockNanoForgeRenderer class, BlockWormholeRender class
- Fixed: HIL laser acceleration with high FPS, HIL laser disappearance at close range, drone rendering outside camera frustum, blade rotation smoothness
- #5541 MTEBoilerGui registers a FloatSyncValue named heat and attaches it to the GTProgressWidget through syncHandler, with a dynamic tooltip that shows the clamped percentage. - @Spicierspace153
- Added: heat percentage tooltip on steam boiler heat bar
- Fixed: missing tooltip on the steam boiler heat bar
- #5536 Updated createTooltip in MTELINAC, MTESynchrotron, MTESourceChamber and MTETargetChamber: coolant line order and Coolant value 300 to 60, renamed Maximum Source Energy, added addTecTechHatchInfo, reordered the EU/t terms. The Source Chamber output energy calculation was rewritten as maxMaterialEnergy * (1 - pow(...)), which is the same math. - @Ruling-0
- Fixed: wrong beamline multiblock tooltips
- Closes GTNH#22857
- #5532 RunnableMachineUpdate.initExecutorService is now private and called lazily from postTaskToRun, returns early if the executor exists, and shutdownExecutorService null-checks and resets EXECUTOR_SERVICE to null. The init call in GTMod.onServerStarting is removed. - @DarkShadow44
- Fixed: crash at server start with Galacticraft from a null or stale machine update executor
- #5531 WerkstoffLoader.run tracks a position counter and calls CLSCompat.updateDisplay, which reports pos / werkstoffHashSet.size() to Better Loading Screen. initCls no longer returns step arrays and invokeStepSize is removed. - @DarkShadow44
- Fixed: BartWorks materials loading bar stuck at 4%
- #5527 Corrected single character in MTEIndustrialArcFurnace affecting WAILA tooltip rendering. - @UltraProdigy
- Fixed: Industrial Arc Furnace WAILA mode display
- #5523 Edited achievement.*.desc strings in en_US.lang to match how the achievements are actually granted. - @chochem
- Fixed: achievement descriptions that did not match how they are awarded
- #5521 Added missing item consumption logic in MTEResearchStation to handle holder destruction. - @ABKQPO
- Fixed: Research Station item consumption on holder destruction
- #5518 Removed secondary material definition for rubber in OrePrefixes, preventing cables from yielding rubber when macerated. - @UltraProdigy
- Removed: rubber cable maceration secondary output
- Fixed: rubber duplication exploit
- #5517 GTCapesLoader: removed downloadGTNHNameCapes and its call in run(), and removed the trailing "/gm" from the UUID Pattern so it can match. - @glowredman
- Removed: name-based GTNH cape list download
- Fixed: UUID cape list regex never matched
- #5514 MTEMultiSolidifier.createTooltip now uses addVoltageParallelInfo(BASE_PARALLELS) instead of addStaticParallelInfo, and the width expansion line spells out Voltage Tier. - @StaffiX
- Fixed: Fluid Shaper tooltip described parallels incorrectly
- #5509 GTBeeDefinition.ESSENTIA gets a separate display name, Reanimus, through a new constructor overload. The enum name and the registered species id stay the same. - @SST-03
- Fixed: two bees both named Essentia Bee
- Closes GTNH#22746
- #5507 MTEDigitalChestBase.onPostTick wraps the extraCount logic in a null check on mInventory[1]. - @Caedis
- Fixed: NullPointerException in digital chest post tick when the input slot is empty
- #5504 Changed default shape check flag to false in MTEElectricImplosionCompressor to prevent premature structure validation. - @ABKQPO
- Fixed: Block duplication in Electric Implosion Compressor
- #5503 MTELargerTurbineBase.doRandomMaintenanceDamage now checks shouldCheckMaintenance() before calling causeMaintenanceIssue. - @NovanOfLowat
- Fixed: XL turbines developing unfixable maintenance issues when maintenance is disabled
- Closes GTNH#22642
- #5501 Refactored fluid handling logic in MTEChamberCentrifuge stocking hatch to eliminate duplication vulnerability. - @chrombread
- Fixed: Fluid duplication with spinmatron/centrifuge
- #5500 MetaTileEntity.onBlockDestroyed only updates MTEPipeLaser and MTEPipeData neighbours when this implements IConnectsToEnergyTunnel or IConnectsToDataPipe, and checks the neighbour is connected on that side. MTEDigitalChestBase tracks lastTrueCount, includes mInventory[1] in ME listener notifications and initialises it on NBT load. CoverTeslaCoil uses an IGregTechTileEntity instanceof check before removing the connection. - @Glease
- Fixed: pipe connection counts going wrong when a neighbouring block was broken, digital chest item count sent to ME networks, Tesla Coil cover error on removal from a non-GregTech tile
- #5497 GTAchievements computes the column count from the Visual Assembly Line recipe count with a max column height of 27, and logs to the GT log any autogenerated achievement that has no lang entry. About 278 missing entries were added to en_US.lang. - @boubou19
- Added: lang entries for autogenerated Assembly Line achievements, GT log output listing missing achievement lang entries
- Fixed: unlocalised autogenerated achievement entries, autogenerated achievements running offscreen
- #5493 GTShapedRecipe and GTShapelessRecipe getCraftingResult now skip charge drained from MetaGeneratedTool components when summing the charge for the crafted item. - @captainjolt
- Fixed: Crafted electric items inherited charge from electric tools used as ingredients
- Closes GTNH#22348
- #5488 In bartworks ToolLoader.java, the small gear in the MV electric screwdriver recipes (Lithium, Cadmium and Sodium battery variants) changes from Titanium to Aluminium. - @UltraProdigy
- Fixed: MV Electric Screwdriver took Small Titanium Gears instead of Small Aluminium Gears
- Closes GTNH#22745
- #5485 In tectech Assembler.java, the Diamond lens input count for the UMV and UXV 4096A laser target hatch recipes goes from 1 to 4. - @UltraProdigy
- Fixed: UMV and UXV 4k Target Hatch lens count did not match the other 4k Target Hatch recipes
- Closes GTNH#22742
- #5483 BlockCactusCharcoal, BlockCactusCoke, BlockSugarCharcoal and BlockSugarCoke set setResistance(20), setHardness(5) and setHarvestLevel("pickaxe", 1), and override damageDropped to return the metadata. - @DarkShadow44
- Fixed: GT++ cactus/sugar charcoal and coke blocks breaking instantly
- #5482 CustomGlyphs constants are now wrapped in GlyphReplacements.registerCustomGlyph from GTNHLib. GTNHLib is bumped from 0.8.15 to 0.8.20. - @DeathFuel
- Fixed: custom glyph handling with Angelica fonts
- #5477 GTRecipeMapUtil.convertCellToFluid now returns early through a new hasCells check when there are no cells or filled containers and removeIntegratedCircuit is false. This avoids the pendingIntegratedCircuit being consumed a second time. - @UltraProdigy
- Fixed: duplicate integrated circuit in multiblock Chemical Reactor/LCR recipes
- #5475 Updated tooltip string in MTEChemicalPlant.java to reflect catalyst housing position line from PR #5429. - @Flakxo
- Fixed: Chemical Plant catalyst housing description
- #5473 Switched from instance-based pattern caching to ItemStackMap-based caching in MTELargeMolecularAssembler, since ItemStack instances were not stable for comparison. - @Kogepan229
- Fixed: Large molecular assembler lag
- Closes GTNH#22639, GTNH#22703
- #5467 OverclockCalculator.calculateMultiplierUnderOneTick stored heatMultiplier and regularMultiplier as int, so multiplying large powers of 2 overflowed to 0. They are now double. - @Sopel97
- Fixed: overflow in sub-tick overclock multiplier giving 0 parallels, Helioflare Power Forge internal error
- Closes GTNH#22375
- #5465 In CoverItemMeterGui and CoverWirelessItemDetectorGui the number fields get setDefaultNumber(0) and setNumbers(0, Integer.MAX_VALUE). The slot field also gets setFormatAsInteger(true), and TextWidget uses the diamond operator. - @chrombread
- Fixed: crash from unbounded item threshold text fields on item detector covers
- #5462 Bumped ModularUI2 from 2.3.19-1.7.10 to 2.3.20-1.7.10 in dependencies.gradle. - @chrombread
- Fixed: PCB not saving trace size
- Closes GTNH#22706
- #5459 Fixed mixin remap annotations in the late mixins for BiomesOPlenty FoliageRenderer, EFR, IC2, Natura, Railcraft, Thaumcraft and Tinkers Construct. Class-level remap = false is used where needed, and injects change from TAIL to RETURN, found by running with mixin debug. - @ah-OOG-ah
- Fixed: pollution mixins failing to apply for other mods' furnaces and boilers
- #5458 MTETurboCharger.onPostTick duplicated MTECharger logic and skipped the counter++ the tooltip relies on. It now overrides a new forceCharge() hook in MTEBasicBatteryBuffer and calls super, and MTECharger gets a getTransferMultiplier() hook (15). - @PLASMAchicken
- Fixed: Turbo Charger WAILA tooltip not showing stored EU
- Closes GTNH#22701
- #5456 In RecipesGregTech.chemicalReactorRecipes, the Apatite dust + Sulfuric Acid recipe changed from .circuit(21) to .circuit(2). - @chochem
- Fixed: Sulfuric Apatite Mix had no LCR recipe
- Closes GTNH#22696
- #5453 Changed IKey.renderer.getFontHeight() to always return standard MC height (9) in GTBaseGuiBuilder.java to avoid state-dependent font height calculations. - @chrombread
- Fixed: MUI2 title widget layout
- #5452 ItemAirFilter.getItemStackDisplayName returns the t2 lang key for damage 1. getFilterMaxDamage now returns 50 for damage 0, 2500 for damage 1, and 0 otherwise. - @6C-C6
- Fixed: GT++ Tier 2 air filter showing the Tier 1 name
- #5451 Added removeOrePrefix(OrePrefixes.cell) to loadRadoxPolymer in MaterialsInit. This replaces a workaround in NewHorizonsCoreMod. - @chrombread
- Removed: Radox Polymer cell
- #5450 OrePrefixes.addAspect built a TC_AspectStack from hardcoded TCAspects.MACHINA, 1 instead of its aspect and amount parameters. It now uses the parameters. - @chochem
- Fixed: wrong Thaumcraft aspects on ore prefix items after the prefix refactor
- #5449 Added conditional in GTRenderedTexture to skip bottom face UV workaround when Hodgepodge FixesConfig.fixBottomFaceUV is true. - @leagris
- Fixed: Bottom face UV rendering compatibility
- #5445 MTEBioVat.onPostTick now sets mSievert to 0 when the number of radiation hatches is not exactly one. The server-side checks are merged into one block. - @StaffiX
- Fixed: Bacterial Vat running sievert recipes without a radio hatch
- Closes GTNH#22652
- #5444 Added setAutoGeneratedRecycleRecipes(false) to the loadProtoHalkonite and loadExoHalkonite material definitions in MaterialsInit. - @chrombread
- Removed: recycling recipes for Proto Halkonite and Exo Halkonite
- Fixed: Proto and Exo Halkonite being fluid extractable
- #5441 newDataStickForNEI takes an amount argument. The Reads Research result stick is created with 0 and the Writes Research result stick with 1, in GTRecipeConstants and TTRecipeAdder. This replaces the dedicated Data Stick exclusion code in NotEnoughEnergistics. - @Kogepan229
- Fixed: Data Stick not shown as non-consumed in Assembly Line recipes
- #5430 Fixed recipe parameters in RecipesMachines.java for Industrial Coke Oven. - @StaffiX
- Fixed: Industrial Coke Oven recipe output
- #5428 BaseMetaTileEntity.onRightclick calls powerfailTracker.removePowerfailEvents(this) when enabling a machine whose last shutdown reason is POWER_LOSS. - @CN132DAS
- Fixed: powerfail event staying after re-enabling a machine with a Soft Mallet
- #5425 MTEDigitalChestBase inventory insert() now handles the output slot (slot 1) by filling it up to its stack size limit, then inserting the remainder into the internal inventory. Forced inserts ignore the item capacity limit, and the method returns the real remaining count. - @RecursivePineapple
- Fixed: superchests dropping items on the ground when a conveyor pushes or pulls on a full machine
- #5420 MTELESU.checkMachine was missing a (long) cast in the overflow check, so the int multiplication overflowed to a negative value and set mStorage to Long.MAX_VALUE - 1. The cast is added. - @OmdaCZ
- Fixed: L.E.S.U. overflowing to max long power storage with 107 casings
- #5419 Added missing initialization and null checks in Godforge loader and ForgeOfGodsUpgrade to prevent crashes during mod loading. - @serenibyss
- Fixed: pack-load crash after MUI2 port
- #5418 Tooltip string edits in AntimatterForge and AntimatterGenerator createTooltip. The generator cycle line changes from 1 second to 5 seconds. No behaviour change. - @DylanTaylor1
- Fixed: Wrong cycle time in Antimatter Generator tooltip
- #5405 MTEHatchInputBusME and MTEHatchInputME.endRecipeProcessing now call proxy.onReady() when the AENetworkProxy is not ready, since it can run before onFirstTick. - @lc-1337
- Fixed: Crash on world load with ME input hatch and bus
- #5404 MTEUniversalChemicalFuelEngine.createTooltip changes the addCasingInfoExactly count for Titanium Pipe Casing from 93 to 14. Tooltip text only. - @chrombread
- Fixed: Wrong Titanium Pipe Casing count in Universal Chemical Fuel Engine tooltip
- #5400 GhostCircuitSlotWidget.onMouseScroll negates scrollDirection.modifier, and the shift-click path calls panel.closeIfOpen() instead of animateClose(). The stale TODO is removed. - @chrombread
- Fixed: Inverted scroll direction on ghost circuit slot, Shift click in circuit selector panel
- #5399 PatternSlot.patternDetails and getPatternDetails are now @Nullable in MTEHatchCraftingInputME, and getPatternInputs and getItemsForHoloGlasses check for null instead of dereferencing it. - @Alexdoru
- Fixed: NPE with holo glasses and invalid patterns in the ME crafting input hatch
- #5393 RecipeGenMaterialProcessing.generateRecipes now also requires material.smallestStackSizeWhenProcessing <= 64 before generating the dust processing recipe. - @chochem
- Removed: Indalloy 140 recycling recipe with too few inputs
- Fixed: Infinite Indalloy 140 recycling for free resources
- Closes GTNH#22580
- #5385 Updated RecipesMachines to use GT Coke Oven Controller in Industrial Coke Oven recipe, following up on PR #1442. - @Vlamonster
- #5384 GTAchievements.onItemPickup gets new cases for ten gt.metaitem.01 ids and an Industrial Diamond check that issue the achievements on pickup. These were dropped earlier when achievement checks were removed from multiblocks for performance. - @Florexiz
- Fixed: Aluminium achievement not granted, Material achievements not granted on pickup
- Closes GTNH#18712
- #5379 Modified MTERecipeLoader and AssemblerRecipes to align solar boiler recycling recipes with PR #4717 recipe updates. - @chochem
- Fixed: Solar boiler recipe consistency
- #5377 Added null check in MTEPCBFactory overclock validation to handle missing cooling tower gracefully. - @guid118
- Fixed: PCB Factory crash without cooling tower
- Closes GTNH#22556
- #5376 CellLoader and DustLoader now check getGas(1) and getFluid(1) for non-null instead of hasCorrespondingGas/hasCorrespondingFluid or getGas(0)/getFluid(0), which returned null in the auto generation. - @UltraProdigy
- Fixed: Missing oxygen and hydrogen outputs in Bartworks electrolysis recipes
- #5375 GTItemSink now stores the IMetaTileEntity as a field and overrides getStoredItemsInSink to sum stack sizes over the inventory with an optional filter. CommonMetaTileEntity.getAccessibleSlotsFromSide returns an empty array when the base tile entity is null or dead, which avoids an NPE. - @RecursivePineapple
- Fixed: Crash when replacing Input Buses on machines, Item moving into singleblock machines
- Closes GTNH#22560
- #5372 MTEHatchInputBus.onPostTick now calls updateSlots every server tick instead of only when the inventory was modified. getDescriptionData and onDescriptionPacket now send and load the inventory slots to the client. - @Spicierspace153
- Fixed: Input bus sorting mode not visible in the GUI
- #5370 Added drain prevention to MTEHatchCokeOven and MTECokeOven controller logic. - @Vlamonster
- Fixed: Coke Oven controller fluid drainage
- #5369 Modified MTECokeOven to prevent unintended re-enabling and added structure validation warning display. - @Vlamonster
- Added: Structure warning display for Coke Oven
- Fixed: Coke Oven re-enabling every 20 ticks
- #5368 MTEBusInputFocus.isItemValidForUsageSlot no longer has the size < 16 check that returned false otherwise. It now accepts an ICanFocus item when the usage slots are empty and otherwise compares against the first item. - @RecursivePineapple
- Fixed: Focus Input Bus item insertion
- #5363 In ItemVolumetricFlaskGui the close button handler now receives the capacity syncer and calls setIntValue(getIntValue()) before closing the panel, which forces the value to be synced and saved to the item NBT. - @chrombread
- Fixed: Volumetric Flask NBT data not persisting
- #5356 Enhanced tooltip text and layout in MTEHighTempGasCooledReactor (7 line changes). - @Pxx500
- Fixed: HTGR tooltip display
- #5355 In MTEMultiBlockBaseGui the recipe info column gets START cross-axis alignment, DISPLAY_ROW_HEIGHT goes from 13 to 15, the icon right margin from 1 to 2, and the item name truncation width from 48 to 46 minus the amount string length. - @chrombread
- Fixed: Recipe info widget spacing and size in multiblock GUIs
- #5352 MTELapotronicSuperCapacitorgui sync values now read getEnergyInputValues() and getEnergyOutputValues() instead of the 5m input data and the passive discharge getter. The getters in MTELapotronicSuperCapacitor were renamed and return energyInputValues and energyOutputValues. - @Spicierspace153
- Fixed: Lapotronic Supercapacitor GUI showing the 5 minute average instead of the 5 second average, Lapotronic Supercapacitor GUI average EU output showing the passive discharge amount
- #5350 MTEHatchSteamBusInput overrides buildUI to return an anonymous MTEHatchInputBusGui subclass whose getDimension returns 2. - @chrombread
- Fixed: Steam input bus GUI showing 1 slot instead of 4
- #5349 MTEHatchInputBusME overrides useMui2() to return false, falling back to the legacy GUI. - @Spicierspace153
- Fixed: Stocking bus cannot open UI (#22522)
- Closes GTNH#22522
- #5348 Removed the custom setChemicalFormula call from loadDiatomite in MaterialsInit so the generated compound formula is used. - @chochem
- Fixed: Diatomite formula missing brackets for the iron oxide part
- #5346 Replaced bolt and bolt_OVERLAY PNGs in materialicons/CUSTOM/* and gt.metaitem.01/319.png; no code changes. - @ABKQPO
- Fixed: Bolts of Ender IO alloys facing the wrong direction
- Closes GTNH#22478
- #5342 Corrected output mode logic in MTEHighTempGasCooledReactor multiblock implementation (4 line changes). - @kuba6000
- Fixed: HTGR output mode
- #5340 Removes the addGlassEnergyLimitInfo() call from MTEIndustrialLaserEngraver.createTooltip(). - @UltraProdigy
- Removed: glass energy limit line in the Industrial Laser Engraver tooltip
- #5339 Added addGlassEnergyLimitInfo() to the MultiblockTooltipBuilder in MTEIndustrialLaserEngraver.createTooltip. - @UltraProdigy
- Added: Glass energy hatch limit line in Industrial Laser Engraver tooltip
- Fixed: Missing energy hatch limit info in tooltip
- #5337 Modified PanelGap height constant in MTEMultiBlockBaseGui to restore visual consistency with MUI1 styling. - @SST-03
- Fixed: MUI2 visual spacing parity with MUI1
- #5331 Added player inventory binding check in MTEMultiBlockBaseGui and MTEMultiBlockBase to prevent null reference errors. - @chrombread
- Fixed: Player inventory binding in MTEBaseGui
- #5329 CoverBaseGui.createBasePanel passes getGuiId() to ModularPanel.defaultPanel instead of calling .name(getGuiId()) on a panel named panelName. - @chrombread
- Fixed: Crash with covers from upstream
- #5326 Changed 'effect' to 'affect' for sleep.event.downsides in miscutils en_US.lang. - @arch1t3cht
- Fixed: Spelling of 'affect' in the sleep event message
- #5324 MTEHatchInputDebug.drain returns aFluid.copy() instead of a copy with amount set to Integer.MAX_VALUE. - @chrombread
- Fixed: Debug input hatch returning an inflated fluid amount on drain
- #5323 MTEMultiBlockBaseGui: ListWidget gets crossAxisAlignment START. GTBaseGuiBuilder: addRecipeViewerExclusionArea replaced with addExclusionArea after the MUI2 update. - @Spicierspace153
- Fixed: misaligned text in the multiblock terminal
- #5315 PlatinumSludgeOverHaul.isInBlackList returns true for stacks whose item is kubatech HTGR_ITEM. - @Pxx500
- Fixed: BartWorks overriding HTGR recipes
- #5312 GTUITextures.PICTURE_INFORMATION now points to gui/picture/information_symbol instead of gui/picture/information. - @chrombread
- Fixed: missing information icon texture in MUI1 GUIs
- #5311 MTEHatchTFFT overrides getCapacity to return the controller's per-fluid capacity capped at Integer.MAX_VALUE, or 0 with no controller. EnderIO's AbstractLiquidConduit reads the capacity. - @zyf051520
- Fixed: conduit connection to T.F.F.T hatch
- #5307 Modified GTBlockOre and BlockStonesAbstract to respect stone hardness and sound properties; added generation biome checks to StoneType to prevent ice ore in overworld. - @RecursivePineapple
- Fixed: Ice ore generating in overworld, Marble ore being instantly breakable, Ore blocks using wrong sound effects
- Closes GTNH#22012, GTNH#22461
- #5302 MTEDecayWarehouse skips onPostTick while mStartUpCheck > 0, caps the IO budget at 95% of available EU/t, and sets mEfficiency instead of mEfficiencyIncrease. DecayableRecipe half-life divisor changed from 40 to 320. IsotopeDecayFrontend uses formatNumbers and the lang string uses %s. - @RecursivePineapple
- Fixed: Decay Warehouse powerfail on startup with IO, Decay Warehouse Not Enough Energy loop
- Closes GTNH#21412, GTNH#22070
- #5294 Added GTUtility.getIntegratedCircuit(21) to the itemInputs of the Poop Juice to Basic Slurry recipe in RecipeLoaderAgriculturalChem. - @chochem
- Fixed: raw animal waste recipe conflict
- #5292 Removed addCentrifugeRecipe() from Realgar, Cryotheum, EnderEye and Pyrotheum in MaterialsInit. Removed the HEE endium_ore macerator recipe from Pulverizer. Changed the circuit in the SSFUEL mixer recipe in MixerRecipes from 1 to 2. - @chochem
- Removed: Realgar centrifuge recipe, Cryotheum centrifuge recipe, Ender Eye centrifuge recipe, Pyrotheum centrifuge recipe, Endium Ore macerator recipe
- Fixed: six recipe conflicts
- #5284 MTEOilDrillBase stores mOilFieldChunks as ChunkCoordIntPair instead of Chunk. The chunk position comes from block coordinates shifted right by 4 instead of getChunkFromBlockCoords. - @Glease
- Fixed: oil drill loading chunks during its tick
- #5279 GlassTier.registerGlassAsTiered now loops over blockFusedQuartz metas 0-5 with tier 3 and ordering 1+i. Thaumcraft blockCosmeticOpaque meta 2 ordering changed from 2 to 7. - @chochem
- Fixed: Fused Quartz Glass missing glass tiering
- Closes GTNH#22406
- #5267 MTEHatchElementalDataOrbHolder.getCircuitSlot returns getSizeInventory() - 1 instead of getSlots(mTier), since the slot formula changed with the bigger busses PR. - @chrombread
- Fixed: index out of bounds error on the Elemental Data Orb Holder hatch
- #5266 Removed setDensity(51, 50) from loadIronMagnetic, loadSteelMagnetic and loadNeodymiumMagnetic in MaterialsInit. - @loenaaaa
- Fixed: magnetic metals having longer shaping, bending and solidifying times
- Closes GTNH#22384
- #5263 Removes the mCasing = 0 and clearHatches() calls from the tier loop in MTEIndustrialArcFurnace.checkMachine, restoring the code from before #5212. - @Glease
- Fixed: large arc furnace structure check bugs introduced by the previous fix
- #5262 Adds SubTag BLASTFURNACE_CALCITE_DOUBLE to Garnierite in MaterialsInit, and a BlastFurnaceRecipes entry: 2 Garnierite dust + 1 Carbon dust to nickel ingots plus Ash (22.22%) and 1,000 L CO2, 12 s at MV, coil heat 1200. - @loenaaaa
- Added: EBF recipe for Garnierite dust with carbon, EBF calcite/quicklime recipes for Garnierite ore
- Fixed: Garnierite missing an EBF recipe
- Closes GTNH#22359
- #5255 MTEPCBFactory checkMachine logic refined to prevent T3 from appearing in hints/creative build for lower tiers. - @BlueWeabo
- Fixed: PCB Factory tier hint visibility, PCB Factory creative build tier selection
- #5243 BlockCasings12 now sets the correct harvest level for coke oven bricks; lang file updated to localize recipe category. - @chochem
- Fixed: Coke oven brick harvest level, Recipe category language key
- #5241 ItemPowerGoggles copies the stack before replacing its NBT in linkGoggles and unlinkGoggles, then reapplies enchantments through a new setEnchantmentData helper. In linkGoggles the GTPacketUpdateItem is now sent after the tag is set. - @serenibyss
- Fixed: Power Goggles losing enchantments when linking or unlinking
- Closes GTNH#22156
- #5240 Refactored MTEIndustrialApiary to move blockExists check into flowercoords null-check for safer chunk validation. - @serenibyss
- Fixed: Industrial Apiary server rejoin crash
- Closes GTNH#22149
- #5239 Corrected preview texture or rendering offset in MTECokeOven GUI class. - @chrombread
- Fixed: Coke Oven preview display
- #5237 Wraps the coil element in GTStructureChannels.HEATING_COIL.use(...) for the listed multis, and adds addSubChannelUsage(HEATING_COIL) to their tooltips and to the Mega Oil Cracker and Mega Alloy Blast Smelter. - @serenibyss
- Added: heating coil channel on several multiblocks, heating coil channel tooltip lines
- Fixed: Utupu-Tanuri ignoring the coil sub channel in the hologram projector
- Closes GTNH#22320
- #5235 Replaced super bus references with regular input busses in RecipesMachines chisel recipes due to super bus deprecation in PR #5213. - @VortexSo4
- Fixed: chisel recipe compatibility with deprecation
- #5229 MTEMultiBlockBase.batchMode now initialises to getDefaultBatchMode() && supportsBatchMode() instead of only the default. - @VortexSo4
- Fixed: batch mode enabled on multiblocks that do not allow it
- #5228 GTUtility.appendRate wraps progressTime / amount in df.format in the s/each branch. - @chrombread
- Fixed: unrounded seconds per item in the recipe info widget
- #5221 MTEScanner now returns FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS when tRecipe.mResearchVoltage exceeds V[mTier], before consuming inputs. This replaces the old mMaxProgresstime/mEUt check against Integer.MAX_VALUE - 1. - @chochem
- Fixed: IV Scanner starting LuV recipes, scanner running recipes above its tier
- Closes GTNH#22315
- #5218 Removes MachineType.MACERATOR_PULVERIZER and its lang keys in en_US and ru_RU, switches the affected MTEs to MachineType.MACERATOR, and changes MTEIndustrialMacerator.getMachineType to "Macerator, IMS". - @UltraProdigy
- Removed: Macerator/Pulverizer machine type
- Fixed: inconsistent macerator machine type name
- #5216 Pulverizer replaces the single Marble block recipe with a loop over OreDictionary.getOres("blockMarble"), adding one macerator recipe per entry (8 s, 4 EU/t, output Marble dust). - @chochem
- Added: macerator recipes for all blockMarble ore dictionary entries
- Fixed: cannot macerate marble or marble cobblestone into dust
- Closes GTNH#22172
- #5215 Updated MTEHighTempGasCooledReactor tooltip generation and added fill level display to the GUI; added corresponding language string. - @Pxx500
- Fixed: HTGR tooltip display, HTGR fill information visibility
- #5214 MTELargeEssentiaSmeltery.getInfoData wrote to a fixed index 8, which broke once the parent class stopped returning an 8-length array. It now copies the parent array with one extra slot and sets the last index. - @Glease
- Fixed: errors when scanning the Large Essentia Smeltery
- #5212 Added structure validation checks in MTEIndustrialArcFurnace to enforce hatch placement rules and minimum casing requirements. - @Glease
- Fixed: Large Arc Furnace structure validation logic
- #5211 ItemDisplayKey gains an NBTTagCompound field, filled from the stack's tag compound in MTEMultiBlockBaseGui. The item drawable and hover text methods now take the key instead of item and damage. - @FrostyFire1
- Fixed: recipe output showing wrong items when NBT differs
- #5209 Added side check in GTStructureUtility to prevent calling client-sided methods on server-side code when processing frame hints. - @combusterf
- Fixed: NoSuchMethodError crash with Botanic Horizons wrench on multis
- Closes GTNH#22132
- #5205 In BacterialVatFrontend.drawEnergyInfo the isExact check was inverted, so nei.biovat.1.name and nei.biovat.2.name were swapped. The condition is now
if (isExact). - @chochem- Fixed: wrong sievert text on Bacterial Vat NEI pages, Mutagen recipe showing wrong sievert
- Closes GTNH#22232
- #5203 GTUtility.appendRate now appends progressTime / amount with an "s/each" suffix when perSecond <= 1 in the shortened format, and keeps the "/s" output otherwise. - @chrombread
- Added: seconds per item display in the recipe info widget
- Fixed: recipe info widget rate text for slow recipes
- #5201 In MTEHatchEnergyDebugGui the voltage tier label used IKey.lang inside a dynamic key. It now calls GTUtility.translate, matching the earlier fluid regulator fix. - @chrombread
- Fixed: crash when opening the debug energy hatch GUI on a server
- #5200 CoverFluidRegulatorGui.getAverageSpeedText used IKey.lang inside the IKey.dynamic supplier, which loads a client-only class on a dedicated server. It now uses GTUtility.translate. - @FrostyFire1
- Fixed: server crash when opening the Fluid Regulator cover
- Closes GTNH#22274
- #5198 Adds .recyclable() to the gem entry in OrePrefixes so recycling recipes are generated for it again. - @chochem
- Added: gem maceration recipe
- Fixed: missing recipe to macerate regular gems to dust
- Closes GTNH#22251
- #5196 GTUtility.translate now calls StatCollector.translateToLocal when the varargs array is empty, and translateToLocalFormatted only when parameters are given. - @ChromaPIE
- Fixed: Format error text on translated strings containing a percent sign
- #5193 GlobalMetricsCoverDatabase.onBlockBreak iterated the reverse-lookup set while events modified it, causing a ConcurrentModificationException. It now iterates a copy in a new HashSet. - @Worive
- Fixed: crash when destroying a machine with multiple Metrics covers
- Closes GTNH#19367
- #5192 Corrected OrePrefixes.java configuration to prevent crashes related to the #5121 refactor. - @chochem
- Fixed: Game startup crash from OrePrefixes refactor
- #5191 Corrected rotor definition in OrePrefixes.java following the refactor from enum to class implementation (#5121). - @Vlamonster
- Fixed: Rotor OrePrefixBuilder configuration
- #5185 Removes the registerOre call for Blocks.lit_furnace under OreDictNames.craftingFurnace in LoaderGTOreDictionary. - @chochem
- Removed: lit furnace ore dictionary entry
- Fixed: lit furnace cycling in recipes, useless recycling recipes from lit furnace
- #5181 Edits ChemicalRecipes: the acetate recipe now takes 64+64+7 Cobalt II Acetate, 9_000 Naphthenic Acid and gives 13_500 Acetic Acid; the hydroxide recipe inputs are reordered with the circuit last. - @UltraProdigy
- Added: Acetic Acid output on the Cobalt II Acetate recipe
- Fixed: Cobalt II Acetate to Cobalt II Naphthenate recipe used 10x fluid for a 9x recipe
- #5178 Reverts the shared fancy Waila fluid renderer for GT tanks and reimplements getWailaBody and getWailaNBTData in MTEDigitalTankBase, using the waila.fluid render string with getRealCapacity(). - @SuperSoupr
- Fixed: Waila fluid tooltip on digital tanks with voiding mode
- #5177 Fixed tooltip strings in MTEChamberCentrifuge to display correct information about machine capabilities. - @SST-03
- Fixed: Wrong tooltips in centrifuge GUI
- #5176 MTEAdvAssLine caps regular overclocks at the smaller of the voltage tier difference and log2(duration / inputs). The batch multiplier is now truncated to an int before it scales parallel and duration. - @SST-03
- Fixed: AAL overclocking too much for some recipes, wrong recipe time with batch mode in the Advanced Assembly Line
- Closes GTNH#20976, GTNH#22196
- #5174 Modified MTEMultiBlockBaseGui to manually reset shutdown reason to NONE on MUI2 end to prevent stale state display. - @FrostyFire1
- Fixed: Incorrect shutdown reason displayed in GUI
- #5173 GTPacketClearPowerfail.clearClient now calls PowerfailLayerManager only when Mods.Navigator.isModLoaded() is true. - @chrombread
- Fixed: ClassNotFoundException after machine powerfail in devenv without Navigator
- #5170 NeedMaintainanceUIFactory uses TextWidget.localised for the two rotor labels instead of translateToLocal, since StatCollector and I18n handle formatting differently. - @FrostyFire1
- Fixed: format error on the non-wireless maintenance cover
- #5169 Escaped the percent sign as %% in the gt.interact.desc.issue_rotor_low and issue_rotor_dead keys in en_US.lang and ru_RU.lang, because the strings go through format handling. - @FrostyFire1
- Fixed: format error in maintenance cover rotor labels
- #5166 Modified MTEAdvancedBoilerBase to return empty/full buckets after fuel consumption. - @DarkShadow44
- Fixed: Fuel bucket consumption without return
- #5160 CircuitImprintLoader.makeAndAddCutterRecipe now builds the recipes with RecipeMap API 2 (RA2) in cutterRecipes, using a long EU/t value. It no longer registers or removes recipes in slicerRecipes, and the unused bwCircuitTagMap and gtrecipeWorldCache were removed. - @chochem
- Fixed: circuits cannot be sliced, circuit cutting recipes display in NEI
- Closes GTNH#22153
- #5155 Refactored GTPacketSound to use double xyz coordinates instead of int x/z and short y. Updated all callers to sendSoundToPlayers to use doubles and add 0.5 offset for block-centered positioning. - @Kynake
- Fixed: Sound spatial positioning for machines and entities
- #5149 Moved Liquid Air material classification in MaterialsInit to correct recipe category. - @chochem
- Fixed: Noble gas centrifuge recipe output
- Closes GTNH#22130
- #5148 GTSoundLoop and SoundLoopAnyBlock store the tile position in separate int fields, and use them for checkChunksExist and getBlock instead of casting the float sound position. GTSoundLoop gains a constructor taking explicit sound coordinates, and SoundLoopAnyBlock adds 0.5f to its position. - @leagris
- Fixed: sound loops not playing on negative coordinates, sound loops failing at large coordinates, TecTec sound loop emitter lookup failures
- #5140 GTSoundLoop constructor adds 0.5f to the tile X, Y and Z when setting the sound position. - @leagris
- Fixed: machine sound origin off-centre from the block
- #5138 Changed the en_US.lang value of GT5U.tooltip.purify.2, which had been set to the naquadah fuel text since PR 4155. - @chochem
- Fixed: wrong tooltip on BartWorks crushed ores
- Closes GTNH#22114
- #5136 Bumped ModularUI2 from 2.3.4-1.7.10 to 2.3.5-1.7.10 in dependencies.gradle. - @FrostyFire1
- Fixed: Crash when opening some multiblocks
- #5134 In CoverEnderFluidLink.readLegacyDataFromNbt, the export flag is now the negation of the legacy import/export bit. - @FrostyFire1
- Fixed: Ender Fluid Link covers inverted import/export after migration
- Migration: The inverted import/export state affected only people who had already loaded a 2.9 daily build in October 2025. Coming from 2.8.4 the conversion runs with the corrected code and covers keep their direction.
- Closes GTNH#22099
- #5132 Updated tooltip strings in MTEElectricImplosionCompressor and MTEImplosionCompressor to reference the correct casing block name. - @PLASMAchicken
- Fixed: Incorrect casing block reference in tooltip
- Closes GTNH#21646
- #5131 CoverChest now uses a single LegacyLimitingItemStackHandler for both MUI1 and MUI2 instead of a separate MUI2 handler. CoverChestGui height calculation and slot alignment were reworked, and CoverBaseGui sets the standalone panel height to include the player inventory. - @FrostyFire1
- Fixed: Item holder cover layout, Items disappearing or duplicating in the item holder cover
- Closes GTNH#22091
- #5129 MTEHatchInputBusME.getStackInSlot applies the SLOT_COUNT virtual offset only while processingRecipe, and returns the circuit and manual slots outside recipe checks. - @Miklebe
- Fixed: Stocking Bus circuit not changing on click
- #5128 FluidUtils.addGtFluid overloads now pass the texture name "fluid.autogenerated" to addGTFluid instead of "autogenerated" and "fluid." + aName. - @jude123412
- Fixed: Broken textures on GT++ fluids
- #5127 MultiblockTooltipBuilder gets a separate addDynamicSpeedBonusInfo (old additional text) and addDynamicSpeedInfo now uses a new GT5U.MBTT.Speed.Absolute lang key. MTEMultiAutoclave and MTEIndustrialAlloySmelter switched to the bonus variant. - @chochem
- Fixed: Wrong dynamic speed tooltips on Pyrolyse Oven and Chemical Plant
- #5122 MTEMultiBlockBaseGui.createItemRecipeInfo and createFluidRecipeInfo now skip null stacks read from the packet instead of dereferencing them. - @FrostyFire1
- Fixed: Crash when a multiblock has null output items or fluids
- #5117 Fixed tooltip value in MTEAdvDistillationTower from 85% to 15% EU usage. - @UltraProdigy
- Fixed: Incorrect 85% EU tooltip display
- Closes GTNH#22057
- #5116 Added material validation in OrePrefixes, improved ore prospecting in GTBlockOre/GTItemOre, fixed unificator error handling, added setHasOre to MaterialGenerator, and fixed NEI plugin crash handling in ore layer helper. - @RecursivePineapple
- Added: Ore prospecting on block harvest, Material validation for part generation
- Fixed: Deep Dark void miner invalid ore generation, Crashes from null materials in ore generation
- Closes GTNH#22009
- #5115 PollutionConfig.pollutionDieselGeneratorReleasedByTier default list extended from {0.1, 1.0, 0.9, 0.8} to {0.1, 1.0, 0.9, 0.8, 0.7, 0.6}. Paired with a config change in the modpack repo. - @chochem
- Fixed: Diesel generator pollution config erroring in the log and not working
- #5113 Modified MTEElectricImplosionCompressor to handle config changes that toggle the piston feature, providing a fallback for block recovery. - @SST-03
- Fixed: Block loss when disabling EIC piston config
- #5112 In loadPrismarine, removed addDustItems and addGemItems and added SubTag.NO_ORE_PROCESSING. Moving Prismarine from materialsGTNH to materials made it take effect, which caused null recipe inputs. - @chochem
- Removed: Prismarine dust and gem generation
- Fixed: crash from null recipe inputs with Prismarine
- #5098 Changed the default local name of the nethersemifluid material in MaterialsInit. - @JustACasualDay
- Fixed: Nether Semifluid misspelling
- Closes GTNH#22027
- #5090 Adds cell, cell_OVERLAY, nanites and nanites_OVERLAY PNGs under materialicons/CUSTOM/glowstone. Adds a nanites.png.mcmeta with frametime 1 animation. - @jude123412
- Added: glowstone nanite texture, glowstone cell texture
- Fixed: missing glowstone nanite and cell textures
- #5086 GTBlockOre.getMaterialIndex and getStoneIndex return 0 for negative meta. getMaterial and getStoneType now use GTDataUtils.getIndexSafe and can return null. getIndexSafe gets @Nullable annotations. - @RecursivePineapple
- Fixed: ArrayIndexOutOfBoundsException in GTBlockOre.getMaterial from negative meta values
- #5082 Re-added annealed copper recipe registration in MaterialsInit. - @chochem
- Fixed: annealed copper Arc Furnace recipe
- Closes GTNH#21982
- #5081 FluidCannerBackend.findFallback only adds fluidOutputs when drainedFluid.amount > 0. The recipe builder is split into steps to allow that check. - @chochem
- Fixed: Fluid Canner outputting a zero or negative amount fluid stack
- #5078 Added setAutoGeneratedRecycleRecipes(false) to the netherite material in MaterialsInit. - @chrombread
- Removed: netherite recycle recipes
- Fixed: netherite having recycle recipes
- #5076 Added OptionalBoolean utility, updated ore drilling logic, fixed GTPPOreAdapter material checks, added Everglades planet textures, corrected NEI language strings. - @RecursivePineapple
- Added: OptionalBoolean utility class, Everglades planet textures
- Fixed: MBM mining invalid ore, ice ore dust blacklist, GT++ adapter material handling, NEI planet labels
- #5075 KeyProvider.getKey now returns a lang key String instead of an IKey, so the enums no longer create client-only IKey objects on the server. The GUI code wraps the string with IKey.lang or StatCollector.translateToLocal where it is displayed. FilterDirectionMode, FilterType and MachineProcessingCondition now use lang keys instead of GTUtility.trans. - @chrombread
- Fixed: server crash from accessing IKey in cover mode enums
- #5074 MetaGeneratedItem01.onEntityItemUpdate now calls a new cancelMovementAndTeleport helper in the three cauldron branches instead of calling setVelocity and setPosition directly. This is a fix attempt, so the crash may not be fully resolved. - @querns
- Fixed: crash when throwing items into a cauldron for cleaning
- #5073 Restored addOreItems() on the Carbon material in MaterialsInit.loadCarbon. - @chochem
- Added: Carbon ore items
- Fixed: Missing carbon ore items, error spam in daily 187
- #5072 Added missing texture configuration for Fusion Casings MK III/IV in GregtechMetaCasingBlocks3 and GregtechMetaCasingBlocks6. - @ABKQPO
- Fixed: Fusion Casing texture connections
- Closes GTNH#19579
- #5071 Added MaterialBuilder.addOrePrefix (whitelist), moved the ICE_ORE ore and rawOre registrations from Materials and OrePrefixes into MaterialsInit, and tagged the gases NO_ORE_PROCESSING. The fluid extraction recipe moved from ProcessingOre into the new ProcessingIceOre. - @Miklebe
- Added: ProcessingIceOre recipe registrator, MaterialBuilder addOrePrefix
- Removed: Dust generation for gas ice ores
- Fixed: Gas materials loaded incorrectly with dusts from ice ores
- Closes GTNH#21971
- #5068 GTBaseGuiBuilder.build() now adds the muffler button only if the mte is an instance of MTEMultiBlockBase. - @VortexSo4
- Fixed: Muffler buttons crashing the world
- #5062 In MaterialsInit, the gas materials now call addOreItems() and setOreMultiplier(4) and add SubTag.ICE_ORE through the new Material Builder. This restores the behaviour lost in the ore refactor. - @Miklebe
- Fixed: ICE_ORE support missing after the ore refactor
- #5060 Added nbtSensitive() to the fallback recipes built in FluidCannerBackend.findFallback, so cached recipes are no longer reused across different NBT. - @Bjdufre1
- Fixed: Klein bottle capacity stuck at initial run value in fluid canners
- Closes GTNH#20404
- #5057 In RadioHatchMaterialLoader, the special-material stick entry now passes (byte) 1 instead of (byte) 2 to radioHatchMaterialAdder. This fixes a regression from PR #3728. - @chochem
- Fixed: Long rods in Radio Hatch having the same mass as normal rods
- Closes GTNH#21274
- #5052 Corrected tooltip text in MTEBlackHoleCompressor. - @GTNH-Afx237v7
- Fixed: Black Hole Compressor tooltip grammar
- #5051 Edited createTooltip text in MTEElementalDuplicator, MTEHIPCompressor (beginStructureBlock height 8 to 10) and MTEVoidMiners. No behaviour change. - @DylanTaylor1
- Fixed: Elemental Duplicator tooltip wording, HIP Compressor tooltip structure height, Void Miner tooltip hatch descriptions
- #5050 Modified GTPacketClearPowerfail and PowerfailLayerManager to properly remove powerfail entries from the wrappers hashmap when powerfails are deleted. - @SuperSoupr
- Fixed: Powerfail persistence after deletion in JourneyMap
- Closes GTNH#21536
- #5049 Implemented toLong method in PowerfailLocationWrapper to include full block coordinates instead of only chunk coordinates, enabling JourneyMap to distinguish multiple powerfails in the same chunk. - @SuperSoupr
- Fixed: Multiple powerfails in same chunk on JourneyMap
- #5045 Replaced itemAlkalusDisk.png with a version whose alpha channel works correctly. - @ABKQPO
- Fixed: Alkalus Disk texture alpha channel
- #5040 Added rendering fix to MTEMultiBlockBaseGui for proper title bar display with maintenance hoverables. - @FrostyFire1
- Fixed: MUI2 title bar rendering with maintenance hoverable
- #5039 Reduced packet size in IControllerWithOptionalFeatures and MTEMultiBlockBase GUI code by removing unnecessary data transmission. - @chrombread
- Removed: Oversized packet payload
- Fixed: Server-client desync crash on MUI1 multiblocks
- #5035 MTEIndustrialDehydrator.createTooltip replaces addBulkMachineInfo(4, 2.2f, 0.5f) with addStaticParallelInfo(4), addStaticSpeedInfo(2.2f) and addStaticEuEffInfo(0.5f). Only the tooltip text changes. - @chrombread
- Fixed: Vacuum Furnace tooltip describing static parallel as dynamic
- #5033 MTEMultiBlockBaseGui.createMufflerButton now takes topRelOffset and rightRelOffset parameters. The multiblock GUI calls it with -4 and -9, where the old hardcoded values were -4 and -8. - @chrombread
- Fixed: muffler button position differing from the old GUI
- #5032 MTEMultiBlockBaseGui adds createCoverTabs, using CoverTabButton. GTBaseGuiBuilder.getCoverPanel now builds a new CoverGuiData instead of casting posGuiData to CoverGuiData, which threw a ClassCastException. - @FrostyFire1
- Added: cover tabs on ModularUI2 multiblock GUIs
- Fixed: crash when opening a cover from a cover tab on a ModularUI2 singleblock
- #5031 Modified MTEMultiBlockBaseGui to preserve shutdown duration state when initializing the GUI. - @FrostyFire1
- Fixed: Shutdown duration reset on GUI open
- #5025 ItemEjectionHelper's PriorityQueue of ItemParallelData now sorts by remaining stack size divided by perParallel (remaining parallels) instead of the absolute remaining item count. - @RecursivePineapple
- Fixed: item ejector unable to eject one parallel of a recipe at high parallel counts
- #5024 Removed the getWailaNBTData and getWailaBody overrides from MTEAutoCrafter, along with their unused imports. The base class already shows the parallel line. - @Eldrinn-Elantey
- Removed: duplicate max parallel line in the Auto Crafter Waila tooltip
- Fixed: duplicate max parallel line in the Auto Crafter Waila tooltip
- #5020 MTEHatchOutputBusME.flushCachedStack uses continue instead of break when poweredInsert returns a remainder, so later cached stacks are still tried. - @hiroscho
- Fixed: ME Output Bus items getting stuck when AE2 could not accept a full stack
- #5018 In FluidCannerBackend.findFallback the drain branch was nested inside the loop over input fluids, so it never ran without a fluid present. It is moved out to the item loop level. - @couref
- Fixed: fluid canners not emptying volumetric flasks
- Closes GTNH#21865
- #5015 OverclockCalculator.calculateMultiplierUnderOneTick now computes voltage tiers above the recipe (log4ceil of EU/t and machine voltage divided by 8) next to power tiers above. The overclock limit uses one or the other depending on amperageOC. - @Vlamonster
- Fixed: Mega Vacuum Freezer Subspace Cooling behavior not matching its description, sub-one-tick overclock multiplier calculation
- Closes GTNH#21657
- #5007 SimplePowerGogglesRenderer adds getTimedDifferenceText, which switches on PowerGogglesConfigHandler.readingIndex. render5mDifference and render1hDifference use it instead of a fixed format string. - @FrostyFire1
- Fixed: Power goggles timed difference ignoring the reading type config
- #5006 BaseTileEntity.markDirty now checks that worldObj is not null before getting the chunk. Code such as loadNBTData can call it before the world is assigned. - @SKProCH
- Fixed: Crash from markDirty being called before the world was set on a tile entity
- #5004 GTRecipeRegistrator.registerMaterialRecycling now skips the Ichorium block and the quartz block. Pulverizer adds an explicit Ichorium block to 2 Ichorium dust macerator recipe (44 s 2 ticks, 4 EU/t). The three quartz block recipes get the maceratorRecycling category, and an old comment in ProcessingDust is gone. - @chochem
- Added: Block of Ichorium macerator recipe giving 2 Ichorium dust
- Fixed: Block of Ichorium recycling into the wrong amount
- Closes GTNH#19870
- #5002 CircuitImprintLoader now adds the imprint recipe to RecipeMaps.cutterRecipes instead of slicerRecipes. The method and variable were renamed from slicing to cutter. - @VortexSo4
- Fixed: Circuit imprint recipes registered in the deprecated slicer recipe map
- #4998 FormingPressBackend.modifyFoundRecipe now checks that recipe.mInputs contains Shape_Mold_Credit before writing the mold's timestamp NBT onto the output. Before, it checked all available input items. - @zyf051520
- Fixed: Forming Press putting a timestamp on non-coin outputs when a Coin Mold was in the inputs
- #4996 Corrected
PowerfailLayerManagericon removal logic to properly respond to JourneyMap deletion requests. Partial fix-multiple power fails per chunk still require clearing via UI or command. - @Bjdufre1- Fixed: JourneyMap power fail icon deletion
- Closes GTNH#21536
- #4994 BlockOverlayRenderer.drawGrid now calls a new calculateLineWidth(). It multiplies the configured line width by Minecraft displayHeight divided by 1080. - @Kynake
- Fixed: Thin block overlay lines at resolutions above 1080p
- #4991 MTELargeEssentiaSmeltery overrides polluteEnvironment with a copy of the base logic that skips the air check above the muffler. It accumulates pollution, and once 10,000 is reached it splits it across the valid muffler hatches and calls calculatePollutionReduction on each. - @kopatych3348
- Fixed: Large Essentia Smeltery power failing because of pollution output
- Closes GTNH#18214, GTNH#21556
- #4990 EIGSeedBucket.recalculateDrops checks INetherSeed from Hodgepodge first and calls hodgepodge$getPlant, before the ItemSeeds and ItemSeedFood branches. Bumps Hodgepodge to 2.7.2, which this needs, along with NEI, AE2 and ThaumicTinkerer. - @TheYoingLad
- Fixed: crash when inserting Flesh Root seeds into the Extreme Industrial Greenhouse
- Closes GTNH#21414
- #4979 MTEHatchMaintenance.onRightclick now also allows TabletFakePlayer besides OC robot fake players. Bumps NotEnoughItems to 2.8.4-GTNH and ModularUI2 to 2.2.20-1.7.10. - @sisyphussy
- Fixed: dynamism tablet not performing maintenance
- #4978 MTEVoidMinerBase.checkHatches no longer requires an input hatch. A batchMultiplier field (16 in batch mode, else 1) is used for max progress time, output stack size and consumeNobleGas. The three MTEVoidMiners tooltips now read Ores only for the input bus. - @chrombread
- Fixed: Void Miner tooltip listing Mining Pipes, input hatch required despite being optional, noble gas drain in batch mode
- #4976 Partial revert of input bus validation in MTEFusionComputer to allow Crib hatches alongside standard input buses. - @chrombread
- Fixed: Crib hatches not allowed in regular Fusion Reactor
- #4975 Modified MTELargeFusionComputer structure check to allow Crib (cribu) hatch type alongside other valid input hatches. - @serenibyss
- Fixed: Crib hatches not allowed in Compact Fusion Reactor
- Closes GTNH#21706
- #4972 MTEAdvAssLine now passes GTUtility.copy(output) to addOutputAtomic so the shared stack is not modified. ItemEjectionHelper.ejectItems skips histogram entries with a count of 0 or less. - @RecursivePineapple
- Fixed: Advanced Assembly Line ArithmeticException divide by zero
- Closes GTNH#21692
- #4971 Adds a WorldEvent.Unload handler in Pollution that removes the dimension's entry from GTMod.proxy.dimensionWisePollution. - @DarkShadow44
- Fixed: pollution handler reused after relogging, world memory leak from pollution handler
- #4966 ContainerFishTrap and ContainerPestKiller.canInteractWith now check the block with instanceof BlockFishTrap and BlockPestKiller instead of comparing against the GregtechItemList block. - @Bjdufre1
- Fixed: GT++ Fish Catcher interface not opening, GT++ Pest Killer interface not opening
- Closes GTNH#21633
- #4964 Maintenance hatch adders in TTMultiblockBase, MTELapotronicSuperCapacitor and MTETeslaTower now call registerMachineController for MTEHatchDroneDownLink. MTEPreciseAssembler uses buildHatchAdder, and MTEHatchDroneDownLink.onRightclick returns true when there is no connection. - @guid118
- Fixed: Drone Downlink Hatch not connecting on Good Generator and TecTech multiblocks, blocks placed against an unconnected Drone Downlink Hatch
- Closes GTNH#21143
- #4957 NetheriteRecipes wraps the ancient debris recipes in EtFuturumRequiem and ThaumicTinkerer isModLoaded checks. SpacePumpingRecipes only adds the T3 endergoo entry when HardcoreEnderExpansion is loaded. - @chochem
- Fixed: error spam from missing mod recipe inputs in the dev environment
- #4956 MTEHatchSteamBusOutput overrides pushOutputInventory to return false. - @sisyphussy
- Fixed: auto-output on steam output hatches
- #4955 MTEMoltenModule, MTEPlasmaModule and MTESmeltingModule compute EU/t times duration as a BigInteger in onRecipeStart and pass the negated value to addEUToGlobalEnergyMap. Molten and Smelting return insufficientStartupPower. - @52871299hzy
- Fixed: energy overflow in Godforge modules
- #4951 ChemicalRecipes.addDefaultPolymerizationRecipes changes the base material input from 14 * INGOTS to 15 * INGOTS in the Air and Oxygen recipes. - @chochem
- Fixed: wrong base fluid amount in polymerization recipes
- #4947 The placeholder OrePrefixes entry now has a default stack size of 64 instead of 1. - @Glease
- Fixed: veinminer dropping the wrong item count
- #4945 MTELargeBoiler now checks for efficiency increase eligibility on liquid fuel recipes via additional else-if condition in onRunningTick, matching behavior for solid fuels. - @Miklebe
- Fixed: Large Boiler not gaining efficiency with liquid fuels
- Closes GTNH#21550
- #4944 Added OrePrefixes.ingotHot.disableComponent(Materials.Netherite) to Materials.disableUnusedHotIngots. - @chochem
- Removed: hot netherite ingot
- Fixed: untextured hot netherite ingot
- #4942 MTECharcoalPit.isWoodLog returns true for any instance of BlockLog before falling back to the logWood oredict lookup. - @Glease
- Fixed: stripped logs not working in the Charcoal Pile Igniter
- Closes GTNH#21533
- #4941 In MTECable.getInfoData, the null check on the PowerNodePath now runs before reloadLocks is called, which previously threw a NullPointerException. - @chochem
- Fixed: crash when scanning a cable with no node path
- #4935 MTELapotronicSuperCapacitor structure hint getHint now maps the channel number to the correct capacitor tier through a switch. UHV and UEV Capacitor enum entries use ItemBlockLapotronicEnergyUnit UHV_cap_storage and UEV_cap_storage instead of MAX_LONG. Also bumps Angelica and EnderIO dev dependencies. - @TheYoingLad
- Fixed: LSC hologram placing the wrong capacitor for the configured capacitor channel, UHV and UEV LSC capacitors using the max long value as storage
- #4922 BlockMachines#onNeighborChange uses a checkingAdjacent re-entrancy flag to skip nested calls. Nested calls force tile creation in the chunk, which fires further neighbor updates until the stack runs out. - @RecursivePineapple
- Fixed: StackOverflowError when loading chunks with many GT machines
- #4879 MTETankTFFT now calls notifyMultiHatch on input and output fluid moves. clearHatches no longer unbinds the hatch, which unbinds itself when removed, and tfftHatch is now public. MTEHatchTFFT drops the Optional.Interface annotations because kekztech is now part of GT5u, and gets notification and unbind handling. - @zyf051520
- Removed: Optional.Interface annotations on MTEHatchTFFT
- Fixed: AE not seeing fluid injected through TFFT Tank input hatches, Phantom fluid shown to AE after the TFFT Tank is destroyed
- #4550 Modified MTEMultiBlockBaseGui title rendering logic to implement line wrapping behavior for long machine names. The change adds workaround logic to detect when title text exceeds display bounds and forces newline insertion. - @chrombread
- Fixed: multiblock GUI titles not wrapping to new lines
- #4441 In the GTStructureUtility machine-placing element, placeBlock and survivalPlaceBlock now set front facing to SOUTH via ITurnable after a successful placement. Placement returns early on failure. - @RecursivePineapple
- Fixed: Crash when previewing decay warehouse structure
- Closes GTNH#20031
Performance
- #8140 MTELargeMolecularAssembler adds a patternChanged flag set in scheduleRecipeCheck. issuePatternChangeIfNeeded returns early unless the flag is set, then clears it. - @AnsonYeung
- Fixed: Large Molecular Assembler tick time spent on periodic pattern scanning
- #8009 GraphRouteTracker.iterateNetworkBFS keeps a visited set so each node is processed once. NetworkStepList and StepQueue use ArrayDeque instead of ObjectArrayList to avoid array shifts, and a regression test for converging routes was added. - @Worive
- Fixed: BEC route traversal lag with converging routes
- Closes GTNH#26730
- #7936 Refactored ejection helpers and output hatches to batch fluid insertions via IOutputTransaction, reducing transaction overhead in MTEHatchOutput, MTEHatchOutputBus, and ME output implementations. - @hinyb
- #7931 Consolidated multiple full-storage checks per bee input into a single check per cycle in MTEMegaIndustrialApiary. - @Armisael5
- Fixed: Mega Apiary input mode lag
- #7929 GTRecipeLookupBranch stores up to two entries in inline fields and only creates a map when a third is added, then nulls the inlined entries. The map is now a HashMap instead of a LinkedHashMap. GTRecipeLookup.Node keeps a single inline recipe and a list only for additional recipes, and lookup code goes through getNode and putNode. - @boubou19
- #7922 Refactored resource string handling to delay concatenation of domain, colon, and path until needed, instead of splitting the concatenated string back into components. Adjusted callsites throughout gregtech, bartworks, and goodgenerator modules. - @boubou19
- #7883 Added model batching for GT inventory models and implemented render cache in
MTEBasicMachineandMTEBasicGenerator. UpdatedGTRendererBlockandGTRenderedTexturerendering pipeline. - @boubou19- Added: render cache in MTEBasicMachine, render cache in MTEBasicGenerator
- #7872 Added BoundedTextureCache, used by BWMetaGeneratedBlocks, BWMetaGeneratedOres and other block classes to cache getTextures results. CommonMetaTileEntity now caches inventory textures through a new getInventoryTextures hook, and GlobalIcons caches the missingno icon and clears it via invalidateMissingIconCache after an atlas rebuild. - @boubou19
- Added: texture cache for GT block rendering
- Fixed: high render allocation rate for GT blocks in NEI
- #7866 Reverted sorting logic in MTEHatchInputBus.java to skip sorting if the contents haven't changed, relying on existing instant recipe check flag. Restored flag initialization in MTEElectrodeHatch.java. - @AnsonYeung
- Fixed: Excessive NBT hashing performance cost during sorting
- #7821 Replaces IMetaTileEntity.getDescriptionData/onDescriptionPacket (NBTTagCompound) with writeToStream/readFromStream (ByteBuf), and replaces getInitialDataForClient/receiveInitialDataOnClient in BaseMetaTileEntity and BaseMetaPipeEntity with ByteBuf streams. CoverRegistry.cover now takes one direction and cover id, and MTEHatch, MTEHatchCokeOven, MTEHatchMaintenance and others are ported. - @AnsonYeung
- Added: writeToStream and readFromStream on IMetaTileEntity
- Removed: getDescriptionData and onDescriptionPacket on IMetaTileEntity, six-side CoverRegistry.cover
- Migration: Addons overriding getDescriptionData or onDescriptionPacket must move to writeToStream(ByteBuf) and readFromStream(ByteBuf); old overrides without @Override still compile but are never called. Calls to the six-argument CoverRegistry.cover must use cover(coverable, direction, coverID).
- #7806 GTModHandler adds getRecipeCandidates and getRecipeOutputFrom, which build one ordered snapshot of recipes matching the crafting grid layout and reuse it across metadata variants in ProcessingLog and ProcessingPlank. GTCapesLoader replaces downloadGalaxySpaceCapes with hardcoded addGalaxySpaceCapes and adds URLs to the download error messages. - @boubou19
- Added: hardcoded GalaxySpace capes
- Removed: GalaxySpace cape download
- Fixed: GalaxySpace capes failing to load from a dead URL
- #7798 ProcessingLog plank recipe now uses BUFFERED | DO_NOT_CHECK_FOR_COLLISIONS. Materials.contains is now a plain loop, BartWorks debug logging is gated behind MainMod.DEBUG, array copies of CONTENTS are removed, and GTModHandler, GTRecipeRegistrator, RecipeChangeAudit and gtPlusPlus CommonProxy have smaller optimisations. - @boubou19
- #7789 GTThaumcraftCompat.registerThaumcraftAspectsToItem checks ThaumcraftApi.exists first and calls registerObjectTag directly when no tag exists, skipping the lookup of already registered aspects. - @boubou19
- #7786 Adds GTModHandler.restartBufferingCraftingRecipe(), called at the end of GTMod post init. Without NewHorizonsCoreMod loaded, GTMod.onLoadComplete calls stopBufferingCraftingRecipes() to run the second pass. With NHCore present, NHCore calls it after its script loading. - @boubou19
- Added: second buffering pass for delayed recipe removals
- #7764 NodeGTBaseMetaTile.needsEnergy now uses the new BaseMetaTileEntity.canAcceptEnergyThisTick (input amps and EU capacity). IEnergyConnected.emitEnergyToNetwork breaks at usedAmperes >= amperage, and MTECable.transferElectricity returns early when amperage <= 0. - @Algent
- Fixed: RF receiver getting one extra amp after the budget was used
- #7739 Added a static VALUES array to CondensateType, IconType, ToolboxSlot, AugmentCategory, CombType, DropType, PropolisType and others, and replaced values() calls with it in loops and array sizing. - @boubou19
- #7698 Adds a core-profile 330 shader path for the TESRs using ShaderRecipe, MeshBuilder VAOs and JOML matrices, with a 120/VBO legacy fallback. Narrows glPushAttrib bits, moves lazy init into RenderInit (boot/resource reload), cuts allocations in render loops, and fixes the Space Elevator currentWaitTime NBT read. - @mitchej123
- Added: core-profile shader path for endgame TESRs, RenderInit resource reload hook
- Fixed: Space Elevator currentWaitTime NBT read, long first-frame stalls from lazy render init
- #7682 Removes the tectech PipeActivity/PipeActivityMessage/IActivePipe packet system and the random client-side activeness delay. Adds VacuumConveyorPipeClientStateManager on the client. Adds IGregTechTileEntity.isTickDisabled, and MetaPipeEntity.setCheckConnections now checks connections immediately when ticking is disabled or deferCheckConnection returns false. checkActive now returns a boolean. - @AnsonYeung
- Added: client state manager for vacuum conveyor pipes, isTickDisabled on IGregTechTileEntity
- Removed: pipe activity packet sync, IActivePipe
- #7664 SimplePowerGogglesRenderer: removed per-frame list and stream allocations, added a shared DecimalFormat, a measurements array cache and CachedText/gradient color caches keyed on the last value and config index. - @boubou19
- Fixed: power goggles allocations during rendering
- #7563 Added IMetaTileEntity.needsClientTick() (default true in CommonMetaTileEntity) and onClientSoundStateChanged(). Base tile and pipe entities skip client ticking and disable ticking when not needed, and cache the MTE reference instead of comparing getBaseMetaTileEntity() each tick. Removed BaseMetaTileEntity.updateStatus(), and MTELargeFusionComputer now plays sounds from onClientSoundStateChanged. - @mitchej123
- Added: needsClientTick opt-out, onClientSoundStateChanged callback
- Removed: BaseMetaTileEntity updateStatus
- Migration: Addon multiblocks, tanks, hatches, buffers, cables, pipes and frames no longer get onPreTick/onPostTick on the client unless they override needsClientTick() to return true. setBaseMetaTileEntity is now final in MetaTileEntity and MetaPipeEntity, and classes implementing IMetaTileEntity directly must add needsClientTick() and onClientSoundStateChanged().
- #7511 Added MachineStats.machines.useStackWatcher (default true, requires world restart). When false, MTEHatchInputBusME and MTEHatchInputME do not register watcher stacks and report needsPeriodicChecks via a new ISmartInputHatch default method. MTEMultiBlockBase then uses a timed recipe check schedule, with a random offset every 100 ticks once the machine has been idle that long. - @AnsonYeung
- Added: Config option to disable StackWatcher for ME stocking inputs
- Fixed: AE2 lag from StackWatcher on stocking input hatches
- #7409 MTEWirelessEnergy converted to non-tickable by offloading state checks to a manager that only updates when needed. Removes continuous BaseMetaTileEntity.updateEntity calls. - @AnsonYeung
- Added: WirelessEnergyHatchManager
- #7185 MTEMultiBlockBase is moved to event-driven checks through IHatchWatcher.scheduleRecipeCheck(RecipeCheckReason). Input hatches, multi-fluid hatches, output hatches and buses, data access hatches and ME input hatches notify watchers on content changes. Legacy and Antimatter Forge hatch adders call addIfSmartInput. - @ReignOfFROZE
- Added: event-based recipe checks, data access hatch recipe change notifications
- Removed: interval-based recipe checks, recheck interval and trigger recipe check settings on stocking buses and hatches
- #7182 Energy drain in MTEMultiBlockBase and MTEExtendedPowerMultiBlockBase iterates the hatch lists directly (Iterables.concat) with an isValid check instead of building temporary arrays. ExoticEnergyInputHelper.drainEnergy takes an Iterable, and MTEHatchOutputMEBase.flushCachedStack checks cache.isEmpty() before proxy.isActive(). - @AnsonYeung
- Fixed: lag from energy drain and ME output hatch flush
- #6895 Adds an oldMufflerState field and setMufflersIfChanged in MTEMultiBlockBase. MTEMultiBlockBase.onPostTick and TTMultiblockBase.onPostTick call it instead of setMufflers. - @AnsonYeung
- #6893 Adds IHatchWatcher and watcher registration in MTEHatch. ISmartInputHatch now has addWatcher and removeWatcher, and justUpdated and doFastRecipeCheck are removed. MTEHatchInput and MTEHatchInputBus implement it, and MetaTileEntity.onContentsChanged now calls markDirty. The ME and crafting input hatches and MTEMultiBlockBase were updated to match. - @AnsonYeung
- Added: hatch watcher notifications for instant recipe checks
- Migration: Hatches implementing ISmartInputHatch or IDualInputHatch must replace justUpdated() and doFastRecipeCheck() with addWatcher and removeWatcher, which MTEHatch subclasses inherit, and call notifyWatchers() when their contents change outside the normal inventory path. MTEMultiBlockBase.mSmartInputHatches is no longer public.
- #6864 In the arc furnace recipe generator in GTRecipeConstants, the gas-variant loop now runs only when recycle is false, so recycling recipes only get the base recipe. Non-recycling recipes still get gas and plasma variants. - @kuba6000
- Removed: gas variants of arc furnace recycling recipes
- #6829 GTUtility.compactInventory now reuses a ThreadLocal Object2ObjectOpenCustomHashMap, cleared before and after use, instead of creating a new map on every call. - @boubou19
- Fixed: memory allocations in compactInventory
- #6813 Replaced the RecipeMapBackend lookup with a trie-based GTRecipeLookup (ported from GregTech-Modern) using GTItemStack, GTFluid and GTOreDict lookup ingredients, and added recipe deduplication, a RecipeLookupValidator and a profiler. Added functional tests and a runServer25RecipeLookupValidation Gradle task. - @Pxx500
- Added: trie-based recipe lookup, recipe deduplication
- Fixed: slow server startup with the collision check java arg
- Closes GTNH#24757
- #6751 BaseMetaTileEntity caches EU I/O face updates behind a dirty flag set on facing and cover changes, and getStoredEU and injectEnergyUnits avoid redundant canAccessData and capacity calls. MTEBasicTank.onPreTick returns early on an empty input slot. MTEHatchInputBus.onPostTick only runs updateSlots when hasInventoryBeenModified, and updateSlots is now called when the sort toggle changes. - @czqwq
- #6734 Added gregtech.api.objects.RingBuffer, a double[]-backed ring buffer implementing List<Double>, and replaced the LinkedList outputCurrentHistory in MTETeslaTower with it. The buffer is resized when the history size changes instead of trimming nodes. - @Sanduhr32
- Added: RingBuffer class
- #6704 Replaced AdvancedModelLoader + IModelCustomExt with WavefrontVBOBuilder.compileToVBO and IVertexArrayObject.render() in BlackholeRenderer, NanoForgeRenderer, MTEExoFoundry and RenderSpaceElevatorCable. Needs the matching GTNHLib change (GTNHLib#354). - @sisyphussy
- #6681 TextureSet, Textures and the block and item icon containers now resolve missing textures through the NONE set, via new GTTextureSetBlockIconContainer and GTTextureSetItemIconContainer classes. Over 3000 duplicate PNGs were deleted. - @tiffit
- Added: texture set fallback to NONE
- Removed: duplicate material textures
- #6680 RecipeGenMultisUsingFluidInsteadOfCells and recipe deduplication now use fastutil custom hash maps and sets with an Fnv1a32 hashing strategy. Comparators are static fields, Object.clone is replaced by Arrays.copyOf, and equals sorts less often. - @danyadev
- #6674 Refactored PlatinumSludgeOverHaul to remove duplicated code and cache repeated call results in locals, with list-based blacklists using direct Materials constants. Added a BWUtil.checkStackAndPrefix overload taking an ItemData so the association is looked up once. - @danyadev
- #6491 GTModHandler now stores keep-shapeless and only-remove-native flags per output in an Object2IntOpenCustomHashMap (delayedRemovalByOutputFlags). bulkRemoveRecipeByOutput and bulkRemoveByRecipe run over the buffered data when stopBufferingCraftingRecipes is called. - @danyadev
- #6476 Crafting recipes across bartworks, goodgenerator, ggfab, GT++ and GTProxy are added with the new GTModHandler.RecipeBits.BUFFERED flag so they are buffered and registered in a batch. The author compared recipe dumps after each commit. - @danyadev
- #6468 GTModHandler.removeFurnaceSmelting now calls remove on the smelting list map directly instead of iterating every key. This relies on the Hodgepodge MixinFurnaceRecipes mixin. - @danyadev
- #6378 Refactored GTModHandler, GTOreDictUnificator, and GTRecipeRegistrator to eliminate streaming overhead and parallization issues, replacing lambda-heavy code with direct iteration. - @danyadev
- #6370 Refactored removeRecipe code in GTModHandler to eliminate redundant stream creation and reduce isStackValid call overhead during bulk removals. - @danyadev
- #6066 MetaGeneratedItemRenderer replaces the HashMap keyed by RendererKey with a fastutil Long2ObjectOpenHashMap keyed by a packed item/damage long, removing the RendererKey class. - @Alexdoru
- #6047 Added cached VALUES arrays to OutputBusType, CircuitImprint and CircuitWraps and replaced values() calls in hot paths. CircuitWraps gets a registerWraps method and CircuitImprint declarations were reformatted. - @Alexdoru
- #6038 Cached values() arrays in VoidingMode and CoverControlsWork.State, made getMetaTileEntity and getSidedRedstoneMask final, switched the lag warning to parameterized logging, and replaced a string-concatenated log. ItemList.setRender now registers with the instance metaItemRenderer only when on the client side. - @Alexdoru
- Removed: unused NumberFormat in MathUtils
- #5957 ProcessingLogic.dualInvWithPatternToRecipeCache becomes a WeakHashMap. The per-hatch ProcessingLogic registration and reset callbacks are removed from MTEHatchCraftingInputME, MTEHatchCraftingInputSlave, IDualInputHatchWithPattern, MTEMultiBlockBase and the GUI. PatternSlot equals and hashCode are removed so it uses reference comparison. - @zyf051520
- Removed: setProcessingLogic and resetCraftingInputRecipeMap on IDualInputHatchWithPattern
- Migration: IDualInputHatchWithPattern.setProcessingLogic is removed, so custom dual input hatches drop it; the recipe cache now clears on its own. ProcessingLogic.dualInvWithPatternToRecipeCache is now a WeakHashMap, so ProcessingLogic subclasses that use it must be recompiled.
- #5900 Disabled ticking for Auto-Taping Maintenance Hatch, Stocking Input Bus/Hatch (ME non-advanced), and Muffler hatches in their implementations; added cover detection to re-enable ticking when needed. Improved tile entity data sync timing in BaseMetaTileEntity. - @AnsonYeung
- Added: Dynamic ticking enable/disable for hatches based on cover state, Immediate client sync on tile load
- Fixed: Missing hatch textures on world join, Unnecessary hatch ticking overhead
- #5882 MTEHatchInputBus.fillStacksIntoFirstSlots and MTELinkedInputBus.fillStacksIntoFirstSlots now call a new GTUtility.compactInventory(List, start, end) overload. It replaces the per-call HashMap and ArrayList merging code. - @danyadev
- Fixed: Lag from input bus slot compaction
- #5844 GTMod.onIDChangingEvent returns early when FMLModIdMappingEvent.remappedIds is empty, skipping GTUtility.reInit, GTRecipe.reInit and RemovedMetaRegistry.init. - @danyadev
- Fixed: slow world exit from redundant ID remapping handler
- #5781 Block and item icons can declare an optional resource and fall back to the vanilla atlas transparent texture when the file is missing. BlockIcon with overlay and all ItemIcons default to optional, the empty PNG files and duplicate RENDERING_ERROR copies are removed, and custom icon registration is deduplicated. Diff not available, based on the body and file list. - @leagris
- Added: optional icon resources
- Removed: empty placeholder PNG files, duplicate RENDERING_ERROR textures
- #5765 MTEEnhancedMultiBlockBase and MTEHatchMaintenance write the extended facing or rotation in getDescriptionData and read it in onDescriptionPacket. The onFirstTick calls to StructureLibAPI.queryAlignment are removed, including in MTEBrickedBlastFurnace and TTMultiblockBase. - @mitchej123
- Removed: client alignment queries
- #5764 hasValidMetaTileEntity is final in BaseMetaTileEntity and BaseMetaPipeEntity, and getRenderBoundingBox reads mMetaTileEntity directly. MTECable and MTEFluidPipe call setBaseMetaTileEntity on the new instance instead of setMetaTileEntity. - @mitchej123
- #5520 BlockLargeHexPlate registers two icons and picks one by the parity of the wrapped coordinates, using Math.floorMod with a batch size of 4. The 16 per-tile PNGs were replaced by smaller LargeHexTile_0 and LargeHexTile_1 textures. - @sisyphussy
- Removed: 16 large hex tile textures
- #5480 Modified MTEHatch to only send network updates when hatch state actually changes, reducing packet overhead from thousands per second to 10-20 per second on typical bases. - @Glease
- Fixed: excessive network updates
- #5468 ItemStackData.mNBT is now @Nullable and taken directly from the stack. The unique data tag uses the constant 10, the NBTTagCompound type id, and getStack only sets the tag when it is non-null. - @Alexdoru
- #5466 Recipe removal code in GTModHandler and RecipeUtils now uses GTOreDictUnificator.get_nocopy instead of get. The PR also renames variables, adds braces, and uses IC2 recipe map clear() directly. - @Alexdoru
- Fixed: ItemStack copies created during recipe removal
- #5410 Rewrites CircuitImprintLoader to register items and generate cutting and crafting recipes once after GT postload, adds CircuitWraps, and removes CircuitPartLoader and the run-on-player-join call. Static recipes are moved to NewHorizonsCoreMod PR 1472. - @boubou19
- #5398 Marked MetaPipeEntity.getBaseMetaTileEntity final so the JIT can inline it. Fixed the 'dismanteled' typo in the IMetaTileEntity javadoc. - @Alexdoru
- #5392 Deleted WerkstoffLoader.removeIC2Recipes and its call in MainMod.onModLoadingComplete, plus the IC2 imports. The method scanned Recipes.macerator for oreNULL inputs and BWMetaGeneratedItems outputs. - @boubou19
- Removed: BartWorks IC2 macerator recipe removal pass
- #5391 Stripped the enforceUnification branch and helper passes from StaticRecipeChangeLoaders.unificationRecipeEnforcer, which iterated all recipe maps, and removed the unused imports. The author reports the removed code had no effect. - @boubou19
- Removed: redundant recipe map iteration in BartWorks unification enforcement
- #5380 Refactored BridgeMaterialsLoader: replaced the nested ternary with explicit null checks and removed duplicated and unreachable registration code, along with unused imports. The author says the logic is unchanged. - @boubou19
- Removed: duplicated and unreachable bridge material code
- #5378 GTClient now calls RenderOverlay.onChunkUnload, onWorldUnload and reset on chunk unload, world unload and server connect. RenderOverlay.reset is static and invalidates all instances, and byChunk uses a HashMultimap. - @Glease
- Fixed: Overlay render cleanup never being called, causing lag when reloading chunks
- #5225 RecipeMapBackend replaces the Int2ObjectLinkedOpenHashMap cache with a fixed 256-entry GTRecipe array indexed by hash modulo size, and the input hash combines with XOR instead of addition. - @Vlamonster
- #4592 Removed multithreaded background structure checking in
RunnableMachineUpdateand consolidated per-world structure check requests into a single check per tick, eliminating the mutex contention and race conditions that could cause checks to be delayed or skipped. - @dvdmandt- Fixed: Structure checks may be delayed or never run when queued concurrently
Removals
- #8293 Deleted EIGIC2Mode, EIGIC2Bucket and the EIGModes.IC2 registration. Removed the eigMode and eigNoHumidity sync values and the related GUI code from MTEExtremeIndustrialGreenhouseGui. Moved tooltip text for the EEC, MIA and EIG into markdown, with new constants in MTEExtremeEntityCrusher. - @MLGfruitshoot
- Removed: Extreme Industrial Greenhouse IC2 mode, Extreme Industrial Greenhouse no-humidity setting
- Migration: Before updating, take every IC2 crop out of any Extreme Industrial Greenhouse in IC2 mode; on the first load they are deleted, not output. Refill the greenhouse with normal-mode seeds after the update.
- #8054 Removed HATCH_NANITE_SINGULARITY (ID 9417), the ItemList registration and the PCB Factory check that rejected it. HATCH_NANITE is now registered with a capacity of Integer.MAX_VALUE. - @chrombread
- Removed: Singularity Nanite Containment Bus
- Closes GTNH#26808
- #7991 Deleted the shaped recipe for BEAMLINE_FOCUS_INPUT_BUS in gtnhlanth RecipeLoader and changed the need_exactly_one_focus_input string in en_US.lang and ru_RU.lang. - @fehling135
- Removed: Focus Input Bus crafting recipe
- #7874 Deleted ItemBlueprint, its registration in ModItems, the GregtechItemList.BlueprintBase entry, the recipe in RecipesGeneral, the texture and lang entries. - @MLGfruitshoot
- Removed: Blueprint [I am useless] item, Blueprint crafting recipe
- #7851 Deletes GregtechMetaCasingBlocksPipeGearbox and its textures, lang entries and GTPPBlocks registration. Removes RedMetalCatalyst and YellowMetalCatalyst from GregtechItemList, ModItems, RecipeLoaderGenericChem and MTEChemicalPlant, and RESEARCH_2 to RESEARCH_7 from ItemDummyResearch. - @MLGfruitshoot
- Removed: GT++ pipe gearbox casings, Red Metal Catalyst, Yellow Metal Catalyst, Basic and Advanced Chemistry, Physics and Metallurgy research papers
- #7178 Deleted most of the ADD_CASINGS_ONLY Werkstoff entries (blockCasing and blockCasingAdvanced prefixes) from BWGTMaterialReference; Carbon and a few others remain. - @LazyFlesh
- Removed: unused BW element casings
- Migration: Break any BartWorks material casings and rebolted casings made from GT materials before updating, except the Carbon, Silver, Iridium, Naquadah, Naquadah Alloy, Osmiridium, Black Steel and Wood ones; casings of BartWorks' own materials, such as Ruridit, are not affected.
- #7063 Deleted 191 lines of material RGB shifting animation code from GTClient that was manipulating argb values every client tick. - @FourIsTheNumber
- Removed: RGB shifting animation system
- Fixed: Material color glitches
- #6807 Deleted the WHITE_METAL material from gtPlusPlus MaterialsElements.STANDALONE, its component generation calls in ModItems (spring, fine wire, foil and others), the blacklist entry in PlatinumSludgeOverHaul, and the lang entries in gregtech and miscutils. - @UltraProdigy
- Removed: White Metal and all its items, blocks and frame box
- Migration: White Metal is deleted. Any ingots, dusts, plates, springs, fine wire or foil you hold disappear on first load, and nothing converts them.
- #6691 Removed seven Werkstoff definitions at offsetID3 +0, +2, +6, +7, +8, +11 and +12 from WerkstoffMaterialPool, along with their recipes in gtnhlanth RecipeLoader. PosteaTransformers now removes matching bartworks items, blocks and tile entities from existing saves. - @YannickMG
- Removed: PTMEG, Tetrahydrofuran, Acidicised 1,4-Butanediol, Polytetrahydrofuran, Tungstophosphoric Acid, PTMEG recipes
- Migration: PTMEG Elastomer, Polytetrahydrofuran, Tetrahydrofuran, Acidicised 1,4-Butanediol, Tungstophosphoric Acid, Toluene Diisocyanate and Toluene Tetramethyl Diisocyanate are all removed, with no recipe to convert them. Their cells, dusts, ingots and blocks turn into dirt on first load, and any of their fluids left in tanks or pipes is lost.
- #6328 Deleted the old blocks and their classes (for example BlockLightGlass, BlockSuperLight), merged MTERedstoneBase into MTERedstoneLamp, removed the custom GT++ CTM implementation in favour of compact CTM, and reworked texture registration and Textures.java. Diff was too large to fetch, so this is based on the PR body and file list. - @VortexSo4
- Removed: Redstone Circuit Block, Redstone Strength Display, Redstone Scale, Button Panel, unused chemical catalysts, duplicate GT++ textures, custom GT++ CTM implementation, unused Bio Circuit and Advanced Circuit assets
- #6301 Removed the capsule and capsuleMolten prefixes from the BartWorks Werkstoff loader, BWMetaGeneratedItems, CellLoader and MoltenCellLoader. Deleted BWGTMetaItems and GTMetaItemEnhancer. ExtruderRecipes were adjusted for the bumped cost. - @UltraProdigy
- Removed: BartWorks capsule items, BartWorks molten capsule items, capsule entries in NEI
- Migration: The four GT capsule and molten-capsule item types are unregistered with no replacement, so a GT-fluid-filled wax or refractory capsule you were holding disappears on first load. Almost nobody has these; they were hidden from NEI in 2.8.4. Forestry's own capsules keep working, you just cannot fill them with GT fluids.
- #6202 Removed ten entries from the bars-to-material map in LoaderGTItemData, for both the GT bar map and the EnderIO bar map. Dependent on NewHorizonsCoreMod PR 1667. - @Nikolay-Sitnikov
- Removed: EnderIO bar material mappings, Tungsten Bars material mapping
- #6180 Deleted item.BasicGenericChemItem.29 to 32 name keys and a duplicate gtpp tiered tank key from miscutils en_US.lang, and the matching ru_RU entries. - @UltraProdigy
- Removed: Limpid Water Catalyst, Flawless Water Catalyst, Particle Acceleration Catalyst, Synchrotron-Capable Catalyst
- #6030 Deleted the saltyRoot GGItem and its GameRegistry.registerItem call from goodgenerator Loaders, the ItemRefer.Salty_Root entry, and the chemical bath recipe in RecipeLoader2. - @C0bra5
- Removed: Salty Root item, Salty Root chemical bath recipe
- Fixed: incomplete removal of Salty Root
- #5824 Removed ItemAlgaeBase, AlgaeDefinition, AlgaeUtils, IAlgalItem, the GregtechItemList.Algae entry and its registration in ModItems, plus the algae tooltip lang keys in en_US and ru_RU. - @evgengoldwar
- Removed: unused Algae item, algae tooltip text
- #5821 Deletes BlockPestKiller, TileEntityPestKiller, ContainerPestKiller, GUIPestKiller, InventoryPestKiller and BTF_FluidTank. Also removes the GuiHandler entry, the RecipesGeneral assembler recipe, the GregtechItemList entry and the lang keys. - @evgengoldwar
- Removed: Pest Killer
- Migration: The Pest Killer no longer exists: placed machines disappear from an existing world.
- #5820 Deletes BlockPooCollector, the TileEntityPooCollector, TileEntityAdvPooCollector and TileEntityBaseFluidCollector classes, GTPPFluids entries, the dust generation in ModItems, RecipeLoaderAgriculturalChem content and the related lang keys. RecipeLoaderCoalTar drops the dustSmallDirt outputs. - @evgengoldwar
- Removed: Poo Collector, Raw Animal Waste, Manure Slurry, Fertile Manure Slurry, Manure Byproduct dust, Organic Fertilizer dust, Dried Earth dust
- Migration: Remove Poo Collectors and any poop line items or fluids from your base before updating.
- #5819 Deleted BlockProjectTable, TileEntityProjectTable, ContainerProjectTable, GUIProjectTable, the two project table inventories, the registration in ModBlocks and ModTileEntities, the GuiHandler entry, the recipe in RecipesMachines and the lang entry. - @evgengoldwar
- Removed: Project Table, Project Table recipe
- Migration: Take any Project Table out of your machines and storage before updating, because placed blocks and stacks are deleted.
- #5808 Deleted Gregtech.machines.useMachineMetal, GregTechAPI.sUseMachineMetal and its assignment in GTPreLoad.loadConfig. - @Nikolay-Sitnikov
- Removed: useMachineMetal config option
- #5718 Removes the White_Dwarf_Shape_Extruder_* entries from ItemList, IDMetaItem03 (IDs 729-756) and MetaGeneratedItem03. Also removes the matching FluidSolidifierRecipes, AE2Compat blocking-mode entries and item textures. - @chrombread
- Removed: White Dwarf extruder molds, White Dwarf mold fluid solidifier recipes
- Migration: The White Dwarf Matter extrusion molds are removed. They had no use in 2.8.4, so almost nobody made any; if you did, three of them (Plate, Rod and Bolt) become Exotic, Cosmic and Transcendent Circuit Boards because their item ids were reused, and the rest become nameless unusable stacks.
- #5669 Comments and tooltips mark Shape_Extruder_Wire and White_Dwarf_Shape_Extruder_Wire as deprecated. The White Dwarf wire mold recipe is removed from FluidSolidifierRecipes, the wire mold is removed from the MTEHatchExtrusion whitelist, and the Spinneret recipe in AssemblerRecipes uses Shape_Extruder_Rod. The extruder's own uses of the mold are not removed yet. - @chrombread
- Removed: White Dwarf Wire extruder mold solidifier recipe, Wire extruder mold support in the Extrusion Hatch
- Migration: The Kevlar Spinneret assembler recipe now takes 16 Extruder Shape (Rod) instead of 16 Extruder Shape (Wire) - fix that pattern. Wire molds you already own still work in the Extruder, but no new wire mold of either kind can be made, so keep the ones you have.
- #5667 MTEVoidMiners drops the STRUCTURE_PIECE_OLD shape and the legacy 'F', 'G' and 'H' elements, including the UV casing check. Only the current structure piece is checked now. - @UltraProdigy
- Removed: old Void Miner structure support
- Migration: Rebuild any Void Miner that still uses the old structure to the current one, following the controller's structure hologram.
- #5658 Cleans up gtPlusPlus ModItems: moves items to GregtechItemList and several fluids (NuclearWaste, fertilisers, Raisin Juice, Mob Essence) to GTPPFluids, deletes GTPPIntegratedCircuitItem, BaseItemTCShard and CompatBaubles, and adds .ignore() entries in MissingMappingsHandler for the removed ids. The miscutils:Hydroxide remap to itemCellHydroxide is replaced by an ignore. - @serenibyss
- Removed: Bio and Breakthrough circuits, Terra, Ignis, Aer and Aqua shards, Bio and T3 recipe selectors, raw meat block, Hydroxide cell
- #5651 Removed the deprecated laser source/target hatch IDs from MetaTileEntityIDs, their registrations in tectech MachineLoader, CustomItemList entries and lang keys. Follow up to GT5-Unofficial#2859. - @UltraProdigy
- Removed: Deprecated laser source and target hatches
- Migration: The deprecated laser source and target hatches are removed from the game; any you have placed stay as dead blocks and any multiblock that used one will unform. Swap them for the current laser hatches before you update.
- #5650 Deleted MTEWirelessDynamo, its WIRELESS_DYNAMO_ENERGY_HATCH_* MetaTileEntityIDs, the registerWirelessDynamoHatch loader and the lang entries. - @UltraProdigy
- Removed: Single-amp Wireless Dynamo hatches (ULV-MAX)
- Migration: Replace any single-amp Wireless Dynamos with the multi-amp wireless dynamo hatches before updating; old ones stop working.
- #5648 Removed Machine__Slicer and SlicingMachine ItemList entries, SLICER_* and SLICING_MACHINE_* MetaTileEntityIDs, the slicerRecipes map, MachineType.SLICER, textures, and loader registrations. ProcessingFood now registers the cheese slicing recipe as a cutter recipe. Must merge with nei-custom-diagram#57 and NewHorizonsCoreMod#1543. - @UltraProdigy
- Removed: Slicing Machine (LV-IV, LuV-UMV), Slicer recipe map
- Migration: Replace Slicing Machines with Cutting Machines before updating, since a placed one stays behind as a dead block. The Cutting Machine and the Industrial Cutting Factory now run the slicing recipes.
- #5646 Removed ToolCast_MV/HV/EV registrations, MetaTileEntityIDs entries, GGItemList entries, GGFabRecipeMaps (toolCastRecipes), the fallback lookup in MTEMultiSolidifier, lang entries and textures. SingleUseToolRecipeLoader keeps only the solidifier recipes. - @UltraProdigy
- Removed: Basic Tool Casting Machine (MV, HV, EV), Tool Casting Machine recipe map
- Migration: Empty any Tool Casting Machines and replace them with a Fluid Solidifier before updating; afterwards whatever is left inside one can no longer be taken out.
- #5595 Deletes the Zirconium Werkstoff from gtnhlanth WerkstoffMaterialPool, leaving the GregTech Zirconium as the only one. - @UltraProdigy
- Removed: Duplicate Zirconium (lanthanides addon)
- Fixed: Two separate Zirconium ingots
- Migration: This only matters if your world is very old. The deprecated duplicate Zirconium material is gone; it could not be obtained at all in 2.8.4, so only worlds carried over from several versions back can hold any. Those dusts and ingots become nameless unusable stacks rather than being cleanly removed. The real Zirconium is untouched.
- #5481 Removed book_MultiMachineManual from BookHandler. Book metadata is now passed explicitly and stored in an Int2ObjectMap, and ItemBaseBook iterates over the map keys and looks books up by meta. - @ABKQPO
- Removed: Large Processing Factory manual book
- #5278 ElectrolyzerRecipes: removes the water cell to electrolyzedWaterCell recipe and both electrolyzedWaterCell decomposition recipes. Replaces them with one recipe from a Water Cell and 2 Empty Cells, 100 s, 30 EU/t. - @UltraProdigy
- Added: direct Water Cell electrolysis recipe
- Removed: Electrolyzed Water Cell recipes
- Migration: Remove any setup that makes Electrolyzed Water Cells and feed Water Cells straight into the Electrolyzer.
- #5251 Deletes the registerCableCoaters block in LoaderMetaTileEntities and the four Machine_*_CableCoater ItemList entries, removes the Latex tooltip line and the 'to be removed' comment in ProcessingWire. The assembler cable recipes stay. - @chrombread
- Removed: Basic Cable Coater, Advanced Cable Coater, Advanced Cable Coater II, Cable Coater (EV)
- #5248 Removed the registrations and crafting recipes for the EV to UV MTERadioHatch instances in bartworks CraftingRecipes, and dropped the always-false isDeprecated constructor argument and its red DEPRECATED tooltip branch from MTERadioHatch. - @VortexSo4
- Removed: EV Radio Hatch, IV Radio Hatch, LuV Radio Hatch, ZPM Radio Hatch, UV Radio Hatch, tiered Radio Hatch crafting recipes
- Migration: Empty any EV, IV, LuV, ZPM or UV Radio Hatch and replace it with the HV Radio Hatch before updating. After the update a multiblock using one loses that hatch, and held ones become unusable items.
- #5247 Removes the SimpleDustWasher_ULV registration in GregtechSimpleWasher, the GregtechItemList entry, its NEI catalyst removal and the earlywasher achievement. - @VortexSo4
- Removed: Deprecated ULV Simple Washer, earlywasher achievement
- Migration: Replace any ULV Simple Washer with a Simple Washer I before updating.
- #5244 Deletes BlockSuperJukebox, ContainerSuperJukebox, GUISuperJukebox, InventorySuperJukebox and their registrations in ModBlocks and ModTileEntities. Also rewrites the else-if chain in GuiHandler. - @VortexSo4
- Removed: Sir Mixalot [Jukebox] block
- Migration: Pick up any Sir Mixalot [Jukebox] and its contents before updating.
- #5091 Removed MaterialsInit entry for liquid air plasma. - @chrombread
- Removed: Liquid air plasma material
Internal / Refactor
- #8292 Added TooltipHelper.anyCasingText(), which calls StatCollector.translateToLocal on gt.mbtt.structure.any_casing each time. Replaced the repeated lookups in markdown-tooltip multiblocks across goodgenerator, gtnhintergalactic, kekztech, kubatech and tectech, and replaced the English literals in MTEDecayWarehouse. - @Eldrinn-Elantey
- Added: TooltipHelper.anyCasingText
- Fixed: Decay Warehouse tooltip hatch location not translated
- #8289 Removed world-aware getIcon overrides from GT++, GTNH Intergalactic and TecTech casing blocks. They only delegated to getIcon(side, meta), and GTRendererCasing never calls them. - @Eldrinn-Elantey
- Removed: unused world-aware getIcon overrides on casing blocks
- #8253 Deletes GTLanguageManager.writePlaceholderStrings and its call in GTProxy.onInitialization. HydroEnergy already moved its one key to gt.interact.desc.mb.running in HydroEnergy#50. - @Eldrinn-Elantey
- Removed: 144 Interaction_DESCRIPTION_Index strings, writePlaceholderStrings
- #8252 Removes GTLanguageManager.addAnySubBlockLocalization and ANY_SUB_BLOCK. ItemCasings, ItemLongDistancePipe, ItemMachines, ItemOresLegacy, ItemStonesAbstract and GregtechMetaItemCasingsAbstract override getItemStackDisplayName to return gt.block.any_sub_block for WILDCARD meta. - @Eldrinn-Elantey
- Removed: addAnySubBlockLocalization, 68 wildcard keys in GregTech.lang
- #8246 Removes the FACE_* constants and FACES from GTLanguageManager and its addStringLocalization calls. CoverableTileEntity keeps a private FACES key array and reads it through StatCollector. Removes the unused gt.lang.face.any from the en_US, ru_RU and zh_CN lang files. - @Eldrinn-Elantey
- Removed: GTLanguageManager side name registration, gt.lang.face.any key
- #8217 Replaced ItemFluidDisplay checks and GTUtility fluid display helpers with StackInfo.isFluidDisplayItem and StackInfo.getFluid in the GT frontends, GTNEIDefaultHandler, GTRecipe, Godforge, and the intergalactic and ore plugin NEI handlers. - @danyadev
- #8209 Removed the StringTranslateMixin and LocaleMixin that tracked the currently translating mod to keep kubatech's percent signs intact, along with MixinsVariablesHelper. MobHandlerLoader now passes formatNumber output to a %s in the lang string, and LanguageRegistryMixin is kept as its own entry. - @danyadev
- Removed: kubatech locale mixins
- #8154 Removed hardcoded EnumChatFormatting prefixes from substituted arguments at 66 call sites and moved the colors into 25 lang keys. Colors chosen at runtime, keys reused with different colors, and values already colored by a helper stay in code. - @Eldrinn-Elantey
- Removed: hardcoded colors on tooltip arguments
- #8070 MetaGeneratedTool01 reads one tooltip key per tool family via a TIERED_TOOLTIPS map. RTG pellet names and decaying dust tooltips move into the miscutils assets lang, with the isotope superscript passed as a format argument. DustDecayable now takes a formula and a decay product and adds a translated decay result line. The Neptunium 239 formula is corrected. - @Eldrinn-Elantey
- Fixed: Neptunium 239 Dust showing the Neptunium 238 formula, Decay result line on decaying dusts not translating
- #8060 HatchElementBuilder gets public getters for its adder, casing index, hint, filters, reject, description names and flags. The private getHint is now the public getHatchItemTypeName. - @ABKQPO
- Added: Public getters on HatchElementBuilder
- #8033 Replaces GTUtility.trans numbered lookups with GT5U.gui.* / GT5U.nei.* keys in en_US.lang and StatCollector calls. MTETransformer and DefaultSpecialValueFormatter switch to translateToLocalFormatted with substitutions. MTEVacuumConveyorPipe now uses the existing cable and pipe wrench keys. - @Eldrinn-Elantey
- Fixed: raw translation key shown in vacuum conveyor pipe chat messages
- #8025 MetaGeneratedTool01 registers tools with empty names and resolves them through a TIERED_NAMES map to one lang key per family taking a tier argument. en_US, ru_RU and zh_CN lang files are updated. - @Eldrinn-Elantey
- Removed: 27 per-tier tool name strings
- #8003 Names and tooltips move from GTLanguageManager to asset lang files in gtnhlanth, miscutils, kubatech, ggfab and detravscannermod. Adds GTMetaItem.addItemWithNameKey and a MetaGeneratedTool.getChargedName hook, and three registration paths skip empty names and tooltips; 48 keys become 14 for four families. - @Eldrinn-Elantey
- #7999 MetaGeneratedTool.addTool now registers only the charged name and skips empty tooltips. Discharged tools format name and tooltip from gt.metatool.empty.name and gt.metatool.empty.tooltip. 54 names and 37 tooltips moved to assets/gregtech/lang, and GregTech.lang drops from 3170 to 2910 keys. - @Eldrinn-Elantey
- #7998 Moved ore dictionary registration out of GTProxy into OreDictRegistrationHandler, reworked GTOreDictUnificator, ItemData and OrePrefixes, and removed ManualOreDictTweaks. Removed the four-argument addAssociation overload, GregTechAPI.sUnificationEntriesRegistered and ToolDictNames.craftingToolSolderingMetal. - @danyadev
- Removed: craftingToolSolderingMetal tool dictionary name, ManualOreDictTweaks, GregTechAPI.sUnificationEntriesRegistered
- Migration: GTOreDictUnificator.addAssociation lost its boolean argument, and the ItemData(OrePrefixes, Materials, boolean) constructor is gone; use the two-argument one. ToolDictNames.craftingToolSolderingMetal, the 'j' shorthand in GTModHandler.addCraftingRecipe, GregTechAPI.sUnificationEntriesRegistered, OrePrefixes.mPrefixInto, ItemData.mBlackListed, ItemData.mExtraData and the class gregtech.api.enums.ManualOreDictTweaks are removed.
- #7973 Adds 209 lines each to the en_US, ru_RU and zh_CN asset lang files. GTLanguageManager.writeToLangFile skips keys the asset lang already provides, so the Java constructor literals stay as dead defaults. No Java changed. - @Eldrinn-Elantey
- #7927 Moves createTooltip text of MTEHighTempGasCooledReactor and MTEIndustrialArcFurnace into en_US, ru_RU and zh_CN tooltip .md files with SkipGenerateDescription; adds six structure keys and two machine type keys to en_US.lang, and takes casing names from Casings.getLocalizedName. - @Eldrinn-Elantey
- Added: markdown tooltips for HTGR and Industrial Arc Furnace, six structure keys, two machine type keys
- #7895 Names go through IMetaTileEntity.getLocalName() with shared family keys, and code-built tooltips move into keys with arguments. gt.blockmachines keys in GregTech.lang drop from 1856 to 929, and about 180 per-locale asset lang keys are removed. Added SkipGenerateName and SkipGenerateDescription annotations, and machine constructors now pass an empty name. - @Eldrinn-Elantey
- Removed: about 927 per-tier machine name and tooltip lang keys
- #7858 Ported hardcoded tooltip strings to markdown files for EN and RU locales. Moved structure layer descriptions to lang keys. Precise Assembler split into two markdown files due to addStaticSpeedInfo placement. - @Eldrinn-Elantey
- Added: Markdown tooltip files for four multiblock machines (EN, RU)
- Removed: Lang key entries for Extreme Heat Exchanger info (now inlined in markdown)
- Fixed: Wrong hot coolant and hot solar salt output rates, Untranslated plasma and throttle lines
- #7855 Moved 49 lines of hardcoded tooltip text to markdown loader with translations for English, Russian, and Chinese. Replaced manual fluid name strings with registry lookups in AntimatterForge.java and AntimatterGenerator.java. - @Eldrinn-Elantey
- Added: Markdown tooltip files for Antimatter Forge and Generator (EN, RU, ZH), Fluid registry-backed stabilization lists
- Removed: Hardcoded tooltip strings in machine classes
- Fixed: Fluid name mismatches in stabilization lists
- #7795 Replaces addInfo chains with addMarkdown resources in the MTE classes, marks them SkipGenerateDescription, and localizes structure hint strings using existing and five new lang keys. MTEBECIONode.beginStructureBlock now passes true for its second argument. - @Eldrinn-Elantey
- Added: markdown tooltips for seven TecTech multiblocks
- #7756 Renamed NaquadahReworkRecipeLoader to NaquadahRecipeLoader and removed the scan code. Added NaquadahRecipeOutputs for conversion at registration and NaquadahRecipePatches.patchCropsNhRecipes() for CropsNH chemical reactor recipes. Requires CropsNH#239 and NewHorizonsCoreMod#1906. - @boubou19
- Added: NaquadahRecipeOutputs, NaquadahRecipePatches
- Removed: load-complete Naquadah recipe scan
- #7748 Removed the scan in gtnhlanth RecipeLoader (-648 lines) and GTNHLanthanides. Added LanthanidesRecipeOutputs, called from the ore processing loaders, RecipeGenOre and GregtechSimpleWasher to convert outputs at registration. Requires NewHorizonsCoreMod#1904. - @boubou19
- Added: LanthanidesRecipeOutputs output converter
- Removed: load-complete cerium line recipe scan
- #7744 Ported twelve tooltips (TileEntitySpaceElevator and the assembler, miner, pump, manager and research modules, one file per tier) to addMarkdown with new md files under lang/en_US/tooltip. Removed orphaned lang keys and added three gt.mbtt.structure keys. - @Eldrinn-Elantey
- Added: markdown tooltips for Space Elevator and its modules
- Removed: orphaned Space Elevator tooltip lang keys
- #7743 Replaced PlatinumSludgeOverHaul.replacePureElements() with PlatinumSludgeRecipes.register(). Added PlatinumSludgeOutputs, which converts outputs as recipes are registered in the ore processing loaders, GTForestryCompat, GTModHandler, GTProxy and ItemComb. Added RecipeChangeAudit as a recipe dumper. - @boubou19
- Added: recipe change audit dumper
- Removed: load-complete recipe scan for Platinum Sludge
- #7727 MTEMultiBlockBase now owns getWailaBody and getWailaNBTData. Subclasses override the new getExtraWailaBody and getExtraWailaNBT instead of calling super, across about 60 multiblock classes. Addons that overrode the old methods need to move to the new ones. - @evgengoldwar
- Added: getExtraWailaBody and getExtraWailaNBT hooks
- #7681 Replaces addInfo chains in the five gtnhlanth MTEs with addMarkdown and adds SkipGenerateDescription. Shared lines stay in en_US.lang and are pulled in with {lang:}, and coolant flow lines use {var:fluidUnit}. Structure strings move to StatCollector, and the Forge of Gods reuses the shared around_controller key. - @Eldrinn-Elantey
- Added: markdown tooltips for five Lanthanides multiblocks, localized structure text
- Removed: BEAMLINE_SCANNER_INFO constant
- Fixed: Russian tooltip lines that differed from the English source
- #7667 Replaced addInfo chains with addMarkdown in the TecTech multiblocks (MTEEyeOfHarmony, MTEResearchStation, MTETeslaTower, MTEForgeOfGods, the Godforge modules) and marked them SkipGenerateDescription. Structure text moved to StatCollector lang keys, orphaned description keys were removed in all languages, and zh_CN markdown was added for Tesla Tower and Research Station. - @Eldrinn-Elantey
- Added: markdown tooltips for eight TecTech multiblocks, lang keys for Plasma Module and Forge of Gods structure text
- Removed: orphaned description lang keys, old Advanced Assembly Line description keys
- Fixed: Forge of Gods tooltip showing Stellar Energy Casing
- #7660 Replaced addInfo chains with addMarkdown(ResourceLocation, vars) in MTELapotronicSuperCapacitor, MTESOFuelCellMK1, MTESOFuelCellMK2 and MTETankTFFT. Added en_US and ru_RU tooltip .md files and dropped the unused description keys from the kekztech en_US.lang and ru_RU.lang. - @Eldrinn-Elantey
- Added: markdown tooltips for LSC, SO Fuel Cells and TFFT
- Removed: unused kekztech description lang keys
- #7649 Housekeeping across about 300 files (BartWorks, functional test, a forbidden-sysout CI workflow and more). The diff was too large to fetch, so the details are inferred from the file list. - @boubou19
- Added: forbidden sysout test workflow
- Removed: BWMultipleTileEntityContainer
- #7634 Replaced addInfo chains with addMarkdown(ResourceLocation) in MTEDEFusionCrafter, MTEExtremeEntityCrusher, MTEExtremeIndustrialGreenhouse, MTEMegaIndustrialApiary and the EIGNormalMode/EIGIC2Mode classes. Added en_US and ru_RU tooltip .md files and removed the old description keys from the lang files. - @Eldrinn-Elantey
- Added: markdown tooltips for DEFC, Extreme Entity Crusher, Extreme Industrial Greenhouse and Mega Apiary
- Removed: old description lang keys for these four machines
- #7632 Replaced per-addon MODID constants with Mods.ModIDs.* across the bartworks, detrav, galacticgreg, ggfab, goodgenerator and kubatech packages, and others. Extended the forbidden-getModItem workflow with more grep patterns, including GameRegistry.findItem. Removed the GGMARK constants and Tags.MODID. - @boubou19
- Removed: per-addon MODID constants, GGMARK and GGMARK_TOOLTIP constants
- #7539 Removed deprecated GTUtility.translate and translateMultiline wrappers. Callers now use GTSplit.splitLocalized and splitLocalizedFormatted, and GTSplit gained a Collection overload of splitLocalizedFormatted. - @Eldrinn-Elantey
- Added: Collection overload of GTSplit.splitLocalizedFormatted
- Removed: GTUtility.translate, GTUtility.translateMultiline
- #7507 Restored the WxHxL parameter order of beginStructureBlock and beginVariableStructureBlock in MultiblockTooltipBuilder and updated about 200 call sites. This reverts the earlier signature change so addons such as HydroEnergy do not need to adapt. - @AnsonYeung
- #7425 GTUtility.translate is deprecated and kept as a wrapper for addon compatibility. All internal usages are replaced with StatCollector.translateToLocal / translateToLocalFormatted. - @Eldrinn-Elantey
- #7419 MTEVacuumFreezer tooltip strings moved to lang keys resolved by StatCollector, the class is marked SkipGenerateDescription, and the casing name comes from Casings. Added shared gt.mbtt.structure keys (any_casing, interior, front_center_2nd_layer) to en_US and ru_RU. - @Eldrinn-Elantey
- Added: shared structure tooltip lang keys, Russian translations for Vacuum Freezer tooltip
- #7365 Renamed Hungarian-notation public fields of gtPlusPlus.core.material.Material (vTier to tier, vChemicalFormula to chemicalFormula, vRadiationLevel to radiationLevel, vVoltageMultiplier to voltageMultiplier, vComponentCount to componentCount, etc.) and updated all references. Addons reading these fields need to be updated. - @MLGfruitshoot
- Migration: The public fields of gtPlusPlus.core.material.Material lost their v prefix: vTier, vVoltageMultiplier, vChemicalFormula, vChemicalSymbol, vDurability, vRadiationLevel, vSmallestRatio and vComponentCount are now tier, voltageMultiplier, chemicalFormula, chemicalSymbol, durability, radiationLevel, smallestRatio and componentCount.
- #7359 ScannerHelper.addTitleComp changed from private static to public static. - @C0bra5
- #7327 Many multis such as MTEAdvAssLine, MTEAssemblyLine, MTECleanroom and MTECryogenicFreezer drop their getTexture overrides and implement ICasingTextureProvider. A new IIconTexture interface is implemented by GTCopiedBlockTextureRender and GTRenderedTexture, and BlockMachines uses it for connected textures. Also adds several _GLOW Textures entries and bumps dependency versions. - @tiffit
- Added: connected texture support for GTRenderedTexture casings, glow overlays for Charcoal Pit, ME Hatch and DTPF
- #7314 Adds MaterialIconRegistry with TextureType and IconType enums, replacing the INDEX_* constants and the IS_BLOCK_TEXTURE and suffix arrays in TextureSet. About 60 callers, including the tool classes, MTECable, PrefixTextureLinker and the Detrav prospector, now use IconType ordinals. - @jude123412
- Added: MaterialIconRegistry, ore textures
- Removed: TextureSet INDEX constants and parallel arrays
- Migration: TextureSet.INDEX_* constants and TextureSet.withBlockTextures(String) are removed; use MaterialIconRegistry.IconType and TextureSet.withCustomTextures(String, IconType...). TextureSet.mTextures is now sized and indexed by IconType.
- #7312 MTEHatchSolidifier.solidifierMolds changed from ItemStack[] to a non-final ArrayList<ItemStack>. GhostMoldSlotWidget and GhostMoldSyncHandler now use size() and get() instead of array access. - @loenaaaa
- #7307 OreMixes gains a method for collecting ore variants per dimension, using a new getter for asteroid materials on ModDimensionDef. Cached VALUES arrays were added to DimensionDef, GTStones, StoneType and OreMixes, and loops in GTWorldgenloader and GT5OreLayerHelper now use them. - @boubou19
- Added: method returning all worldgen ore variants, cached VALUES arrays on several enums
- Closes GTNH#24927
- #7300 Added GlassTier.getMaxTierIndex(), returning maxTier - minTier + 1, for BlockRenderer6343. - @AnsonYeung
- Added: GlassTier.getMaxTierIndex
- #7295 Deleted BECRecipeLoader and its run() call in GTMod.onPostInitialization. - @Ruling-0
- Removed: BECRecipeLoader, test iron plate condensate assembling recipe
- #7239 Added a default glow(boolean) to ITextureBuilder, overridden in GTTextureBuilder, with glow() now calling glow(true). GTBlockOre.getTextures is simplified to use it. - @leagris
- Added: glow(boolean) overload on ITextureBuilder
- #7227 Moved GTPPRecipeMaps entries into gregtech.api.recipe.RecipeMaps and the GT++ frontend classes from gtPlusPlus.api.recipe to gregtech.api.recipe.maps. Call sites in bartworks, goodgenerator and RecipeCategories are updated, and the ABS non-alloy category key is renamed from gtpp.recipe.category to gt.recipe.category. - @Yoshy2002
- Removed: GTPPRecipeMaps entries and GT++ frontends in the gtPlusPlus package
- Migration: gtPlusPlus.api.recipe.GTPPRecipeMaps is removed; use gregtech.api.recipe.RecipeMaps, which has the same field names. The GT++ NEI frontend classes moved from gtPlusPlus.api.recipe to gregtech.api.recipe.maps.
- #7203 Added GregTechAPI.isGTRenderer(Block), which compares against the wormhole, blackhole, Eye of Harmony, Forge of Gods, bio fluid and antimatter render blocks. - @RealSilverMoon
- Added: GregTechAPI.isGTRenderer
- #7202 MechArmorBase.shouldRender now returns context.isBehaviorActive(BehaviorName.HoloInventory). The Baubles and IHoloGlasses fallthrough and the related imports are removed. - @FourIsTheNumber
- Removed: baubles holo glasses fallthrough in Mechanical Armor
- #7193 MechArmorBase.shouldRender now calls load(null, stack) and checks isBehaviorActive(BehaviorName.HoloInventory) instead of scanning the NBT active list. - @FourIsTheNumber
- #7172 In CellLoader and DustLoader, renamed input to werkstoffCell and mixed output lists to itemComponents and fluidComponents; no behaviour change. - @Ruling-0
- #7167 Removes MEFilterBase, MEFilterItem and MEFilterFluid and moves filtering into CellInventoryHandler via MTEHatchOutputMEBase.canStore. MTEHatchOutputMEBase drops to a single type parameter, and en_US.lang is updated for the filter message. - @hinyb
- Added: fuzzy and ore dictionary filtering for ME output hatches
- Removed: MEFilter classes
- #7156 Adds Textures.BlockIcons.createTextureWithCasing and the ICasingTextureProvider interface, and replaces the copy-pasted getTexture in about 85 GT, BartWorks and GoodGenerator multiblock classes. Not every multiblock is covered. - @tiffit
- Added: ICasingTextureProvider, optional glow overlay for multiblocks that lacked one
- #7149 Updated MTEMultiBlockBase and GTUtility to use translated strings for progress/details display instead of hardcoded English text. Fixed optional localization implementation and migrated boiler GUI text to language files. - @Ranzuu
- Added: multiblock progress/details localization entries
- Removed: hardcoded progress/details strings
- #7148 Updated all generator classes (Combustion, Gas Turbine, Steam Turbine, Naquadah Reactor, Plasma, Magic converters, Solar, Lightning Rod) to use GTUtility.translate() with @SkipGenerateDescription and added en_US.lang and ru_RU.lang entries. Added getTooltipLines() hook to MTEBasicGenerator. - @Eldrinn-Elantey
- Added: language file entries for all generators
- Removed: hardcoded generator names and tooltips
- #7135 MTERocketFuelGeneratorBase now extends MTEBasicGenerator instead of MTEBasicTank, removing about 227 lines of duplicated methods and the override that disabled the MUI2 GUI. - @TheYoingLad
- Fixed: Rocket Fuel Generators not using the MUI2 GUI
- #7116 Moved slot and stack validity checks into the MTE item handler. Hatches such as MTEHatchDataAccess, MTEHatchMagnet and MTEHatchMaintenance now override isItemValidForSlot, and the per-GUI filter overrides in the hatch Gui classes were removed. MTEHatchDataAccessGUI was renamed MTEHatchDataAccessGui. - @TheYoingLad
- Removed: per-GUI slot filter overrides
- #7045 Reworked RecipeMapBackend: replaced the item and fluid contains-index multimaps with plain sets of meaningful items and fluids, removed ensureLookupCurrent and RecipeMapBackendProfiler, and dropped redundant validation in GTRecipeLookup. Adjusted RecipeMapBackendLookupTest and GTRecipeLookupBuilderTest to stop the warnings. - @AnsonYeung
- Removed: recipe lookup profiler (RecipeMapBackendProfiler)
- Fixed: test warnings emitted on every build
- #7025 BW glass is re-registered as BW_TieredGlass and BW_ExtraGlass with a new meta-to-tier map in BorosilicateGlass. The old blocks are kept as deprecated BW_GlasBlocks and BW_GlasBlocks2 and hidden from NEI. RendererGlassBlock, the color and connected-texture code in BWBlocksGlass and BWBlocksGlass2, and ChemicalBath glass recipes are removed. Needs NewHorizonsCoreMod and modpack PRs merged first. - @Auynonymous
- Added: UXV Universium borosilicate glass tier, new borosilicate glass textures, MCPatcher connected textures for glass
- Removed: material tinting of borosilicate glass, old glass block renderer, old glass blocks from NEI
- Fixed: RPP glass being named as LuV tier material
- Migration: Every borosilicate block already placed, and every one sitting in a chest, is converted when the world loads, so none of it has to be crafted or put back by hand. Cosmic Neutronium glass becomes Infinity glass, old Infinity becomes Transcendent and old Transcendent becomes Hexanite; each keeps its glass tier, so the extra material only shows when you recycle it. Coloured borosilicate is gone: those blocks come back as plain borosilicate. Multis that stopped checking glass above a cap now check every energy hatch against the glass: the Extreme Industrial Greenhouse (above UV), the Mega Industrial Apiary (above UEV) and the UMV-capped mega multis, so for example an EIG with Osmium glass and a UHV hatch stops forming. The Antimatter Containment Casing now counts as UIV glass instead of UMV.
- #7023 Adds setTexture(Supplier<IIcon>) and getTexture to AugmentBuilder, registers the textures in MechArmorAugmentRegistries, removes getModularArmorTexture from IArmorBehavior and its implementations, and updates MechanicalArmorRenderer. - @Spaghetti-OberNub
- Added: AugmentBuilder.setTexture
- Removed: IArmorBehavior.getModularArmorTexture
- #6998 Adds IOutputHatch, IOutputHatchTransaction and OutputHatchType, extends MTEHatchOutput, MTEHatchVoid and MTEMultiBlockBase, and switches several multis from addOutput to addOutputPartial. IVoidable gains getOutputHatches and addFluidOutputs now returns boolean, so addon implementers and overriders have to update. - @hinyb
- Added: fluid ejection helper, IOutputHatch interface, OutputHatchType enum
- Migration: Addons implementing IVoidable directly must add getOutputHatches(), and overrides of MTEMultiBlockBase.addFluidOutputs(FluidStack[]) must return boolean. The protected static MTEMultiBlockBase.dumpFluid is removed; use addOutputPartial(FluidStack) or addOutputAtomic(FluidStack).
- #6994 Migrated KubaTechGTMultiBlockBase from MUI1 to MUI2 across 5 machines: DEFusionCrafter, Extreme Industrial Greenhouse, Extreme Entity Crusher, and updated Industrial Arc Furnace and Mega Industrial Apiary with minimal changes. Added 3 new GUI classes. Improved diagnostic display names and added fuel info clearing logic. - @Luca-Guettinger
- Added: Three new KubaTech MUI2 GUI classes, Fuel info clearing on formation
- Removed: EIGDynamicInventory class, KubaTechGTMultiBlockBase MUI1 GUI code
- Fixed: Crash with Extreme Industrial Greenhouse/Apiary from rapid GUI interaction
- Closes GTNH#16484
- #6987 Migrated MTEDrillerBase class hierarchy from MUI1 to MUI2, creating 4 new dedicated GUI classes (MTEDrillerBaseGui, MTEOilDrillBaseGui, MTEOreDrillingPlantBaseGui, MTEConcreteBackfillerBaseGui). Removed MUI1 GUI code from machine classes. Updated MTEDeepEarthHeatingPump to use new GUI. Added tooltip line for drilling fluid requirement. - @Luca-Guettinger
- Added: Four new MUI2 GUI classes for driller machines, Drilling fluid requirement tooltip
- Removed: MUI1 GUI code from driller machine classes
- Fixed: Ore Drilling Plant broken lang entry
- Closes GTNH#25120
- #6962 GTWidgetThemes.DISPLAY_TEXT is replaced by DISPLAY_TEXT_WHITE and a new DISPLAY_TEXT_GRAY. Usages across the hatch, multiblock and cover GUIs are updated, and the hardcoded .color(0x404040) is removed from CoverFluidfilterGui and FuelConfigPanel. - @Ranzuu
- Added: gray display text widget theme
- Fixed: hardcoded text colour in Fluid Filter cover and fuel config panel
- #6932 MTEBasicMachineBaseGui gets a type parameter T extends MTEBasicMachine. Callers in MTEBasicMachineWithRecipe and basic machines such as MTEBoxinator, MTEMiner and MTEPump now use the diamond operator. - @TheYoingLad
- #6902 MTELargeNeutralizationEngine no longer builds the tooltip strings with EnumChatFormatting helpers. It calls StatCollector.translateToLocal with new gt.multiblock.NeutralizationEngine.* keys added to en_US.lang. - @loenaaaa
- Added: translatable Large Neutralization Engine tooltip keys
- #6863 BlockLaser.registerBlockIcons is now empty, and getIcon returns Textures.BlockIcons.LASER_PLATE.getIcon() directly instead of a cached blockIcon field. - @tiffit
- #6861 Replaces literal eut values (for example 8 and 16) with TierEU.RECIPE_ULV and TierEU.RECIPE_LV / 2 across bartworks, goodgenerator and GT oreprocessing loaders, ChiselBackend, FormingPressBackend and others. Only a few files are visible in the diff, so the full set of changed values is not known. - @LazyFlesh
- #6852 Deletes the MUI1 addUIWidgets overrides, helpers, unused imports and tooltip constants from MTEBuffer, MTEFilterBase, MTESpecialFilter, MTERecipeFilter and MTETypeFilter. Also drops MTEChestBuffer.getMaxStacks and inlines one tooltip key in MTEItemDistributor. - @TheYoingLad
- Removed: old ModularUI 1 code in buffer and filter machines
- #6848 Moved the circuit index IntSyncValue from CommonWidgets into GhostCircuitSyncHandler, which now takes the MTE, and the shape sync from MTEHatchExtrusionGui into GhostShapeSyncHandler. GhostCircuitItemStackHandler.setCircuitConfig treats 0 as NO_CONFIG, and GhostShapeSlotWidget sets setAllowDeselected(true). - @TheYoingLad
- #6802 Removed issueClientUpdate, GTPacketCreateTE, GTPacketTileEntity and ITemporaryTE. Added scheduleTexturePacket, moved initial data into the description packet, and moved common NBT handling into CommonBaseMetaTileEntity. Addons calling issueClientUpdate must switch to issueTileUpdate or issueTextureUpdate. - @AnsonYeung
- Added: scheduleTexturePacket
- Removed: issueClientUpdate, GTPacketCreateTE, GTPacketTileEntity, ITemporaryTE
- Migration: Replace IGregTechTileEntity.issueClientUpdate() with issueTileUpdate(). ITemporaryTE and GTPacketCreateTE are removed, and BaseTileEntity.getCoords, isInvalidTileEntity, getRandomNumber and isDead are now final.
- #6758 Removed IMetaTileEntity.shouldSendInitialClientData, the BlockMachines.onBlockPlacedBy override, MTEBasicMachine.onFacingChange and mHasBeenUpdated, and the MTEBasicMachineBronze.isFacingValid override. MTEBasicMachine's constructor now sets mMainFacing to UNKNOWN so the first rotation initializes it. Also bumped chunkapi, AE2 and Binnie versions. - @AnsonYeung
- Removed: shouldSendInitialClientData, mHasBeenUpdated
- Migration: MTEBasicMachine.mHasBeenUpdated and MTEBasicMachine.doDisplayThings() are removed, so subclasses that called or overrode doDisplayThings must drop it.
- #6739 Moved the GUI code for many MetaTileEntity hatches and single-block machines into MUI2 classes such as MTETieredMachineBlockBaseGui. Deleted gregtech.api.gui.widgets.CommonWidgets in favor of gregtech.api.modularui2.common.CommonWidgets and CommonButtons. Added MTEItemStackHandler, getSlotLimit, and made MetaTileEntity.onContentsChanged public. - @TheYoingLad
- Added: shared MUI2 GUI base classes for hatches, CommonButtons and CommonWidgets in modularui2.common
- Removed: gregtech.api.gui.widgets.CommonWidgets
- #6733 Rewrote FluidUtils.getWildcardFluidStack to reuse one FluidStack variable and return on the first valid lookup, instead of allocating and querying all name variants up front. - @C0bra5
- #6723 Replaced raw types and unchecked casts with proper generics in creative tab, sub-item, tooltip and Werkstoff constructor code (for example List<ItemStack>, List<? extends ISubTagContainer>), and removed the matching SuppressWarnings. Touches about 130 files, including a large rewrite of WorldSpawnedEventBuilder. - @Nikolay-Sitnikov
- #6713 Element enum trimmed (anti-elements and unused fields removed), Tiberium declared statically as Element.Tr, bartworks.util.EnumUtils deleted. Materials.isRadioactive is deprecated and returns false; Werkstoff proxy stats set radioactive false; GT++ MaterialUtils drops the radioactivity and nuclear icon set branches. - @Nikolay-Sitnikov
- Removed: anti-elements, EnumUtils.createNewElement
- #6693 The Dyes enum stores packed RGB colours instead of RGBA, and the rgba field is replaced by rgb. The HTGR item renderer in kubatech was updated to read the new field. - @Nikolay-Sitnikov
- Removed: RGBA packed colour in Dyes
- Migration: Dyes.rgba (0xrrggbbaa) is now Dyes.rgb (0xrrggbb), so code reading rgba fails with NoSuchFieldError. Code that unpacked the colour with shifts of 24, 16 and 8 must shift by 16, 8 and 0.
- #6647 Deleted gregtech.api.util.ExternalMaterials and replaced its uses with direct references to Werkstoff materials. Renamed WerkstoffLoader.LuVTierMaterial to RhodiumPlatedPalladium. - @Nikolay-Sitnikov
- Removed: ExternalMaterials class
- Migration: WerkstoffLoader.LuVTierMaterial is now WerkstoffLoader.RhodiumPlatedPalladium, and gregtech.api.util.ExternalMaterials is removed, so reference the Werkstoff materials directly.
- #6628 Removed getGUIWidth() and getGUIHeight() overrides and the MIN_WIDTH_WITH_INV logic from CoverBaseGui and its subclasses. Standalone and popup panels now use coverChildren(), and the player inventory is bound through SlotGroupWidget. - @tiffit
- Removed: getGUIWidth and getGUIHeight methods from cover GUIs
- #6602 Removed parameterMap from TTMultiblockBase. IParametrized now returns a list of Parameter objects through getParameters and loads old data through loadLegacyParameters. Added StringParameter and ported ItemParametrizerMemoryCard. Updated the Tesla Tower, Intergalactic space miner module and their GUIs to match. - @TheYoingLad
- Added: StringParameter, parametrizer card support for the new parameter system
- Removed: parameterMap in TTMultiblockBase
- Migration: OpenComputers programs that set TecTech parameters have to be rewritten. The calls are now setParameter(name, value) and getParameters() (a table by name) on the machine's gt_machine component; 2.8.4's tt_machine component with setParameters(hatch, id, value) is gone, and getParameters(hatch, id) returns the whole table. Only the Space Elevator modules, the Tesla Tower and the BEC machines have parameters a program can reach; the Quantum Computer, Microwave Grinder, Network Switch, YOTTank, Compact Fusion Computers and Neutron Activator have none. On the Space Miner the names are distance, parallel, cycle, cycleDistance, range and step; mode became cycle and overdrive can no longer be set.
- #6585 Added static loadValue/saveValue helpers to BooleanParameter, DoubleParameter and IntegerParameter, and used them in MTETeslaTower and TileEntityModuleMiner in place of manual NBT casts. - @TheYoingLad
- Added: parameter load/save helpers
- #6555 checkMachine(IGregTechTileEntity, ItemStack) is deprecated for removal and replaced by a void checkMachine taking a List<StructureError>. A new checkPiece overload takes the error list, and new MissingOutputHatchDT and SimpleStructureError types are added. The old checkPiece and the validate/generate diagnostics hooks are deprecated. - @AnsonYeung
- Added: structure error list in structure checks, missing output hatch error for the distillation tower, simple structure error type
- #6506 Deprecated RecipeBits.DISMANTLEABLE and BITSD, removed all usages, and replaced BITSD with BITS across bartworks, goodgenerator, detrav, gtPlusPlus and GT loaders. The BWUtil createGTCraftingRecipe overload dropped the aDismantleable parameter and is now private. - @danyadev
- Removed: DISMANTLEABLE recipe bit usage, BITSD usage
- #6497 EntityStaballoyConstruct.dropFewItems rolls each count once and drops one stack of that size instead of looping and dropping single items. - @UltraProdigy
- #6444 MTEFilterBase now builds its UI through the new MTEFilterBaseGui, which adds the invert filter button and a gradual-redstone tooltip on the emit redstone button. MTEFilter and MTESpecialFilter override useMui2 to return false and keep the old GUI. Adds isInvertFilter/setInvertFilter and makes getEmptySlots public. - @TheYoingLad
- Added: MTEFilterBaseGui, invert filter button texture
- #6439 The PICTURE_ARROW_* constants in GTGuiTextures change from BiFunction width factories to plain adaptable UITexture constants. configureTooltip moves from MTEBufferBaseGui to MTETieredMachineBlockBaseGui, which also gets configureDynamicTooltip taking suppliers. The button loop in MTEBufferBaseGui is simplified. - @TheYoingLad
- Added: dynamic tooltip helper for MUI2 machine GUIs
- #6432 Moved createChargerSlot and createTooltipForChargerSlot from MTEBasicMachineWithRecipeBaseGui to MTETieredMachineBlockBaseGui, with the tooltip method now protected. - @TheYoingLad
- #6412 Replaced Row()/Column() with Flow.row()/Flow.column(), alignX/alignY/align with center()/Rel helpers, sizeRel/heightRel/widthRel with full()/fullHeight()/fullWidth(), registerSlotGroup with singletonSlotGroup(), and background(base, overlay) with backgroundOverlay. Also moved the canister overlay textures into GTGuiTextures and added a canister_dark texture. - @TheYoingLad
- Removed: deprecated ModularUI2 usages
- #6384 Added euModSupplier/speedBoostSupplier and setEuModifierSupplier/setSpeedBonusSupplier to ProcessingLogic, applied in process(). Multiblocks such as Mega Oil Cracker, Fluid Shaper, Industrial Mixer, Packager, Wire Mill and Large Fluid Extractor replaced anonymous process() overrides with these suppliers. - @Ruling-0
- Added: EU modifier supplier in ProcessingLogic, speed bonus supplier in ProcessingLogic
- #6358 Added NaquadahFuelRefineryCasing, RadiantProofSteelFrameBox, FieldRestrictionCasing and FieldRestrictionGlass to Casings.java, and swapped the raw ofBlock calls in MTEAdvImplosionCompressor and MTENaquadahFuelRefinery for them. - @Yoshy2002
- Added: NaquadahFuelRefineryCasing, RadiantProofSteelFrameBox, FieldRestrictionCasing and FieldRestrictionGlass entries in Casings
- #6341 Deleted unused GT++ classes (ITexturedBlock, RunnableWithInfo, BTF_Inventory, GUITypes and others), trimmed GTUITextures and reformatted it, and added a serverStopped handler in GTplusplus that calls GTPPCore.onServerStop. Addons using the removed GT++ API classes will break. - @Alexdoru
- Removed: unused GT++ classes and methods
- Migration: Addons that referenced the removed GT++ classes need to stop using them.
- #6338 Removed gtPlusPlus.api.objects.Logger usages and most of the class, added a log4j Logger field to GTplusplus, deleted ASMConfiguration and GTCorePlugin.isDevEnv, and removed unused classes such as ShapedRecipe. Addons calling the old Logger or removed GT++ classes will stop compiling. - @Alexdoru
- Removed: GT++ Logger wrapper, GT++ ASMConfiguration, GT++ ShapedRecipe helper
- Migration: Addons that used the GT++ Logger or other removed GT++ classes need their own logger or a replacement.
- #6335 Replaced direct getTagCompound/setTagCompound handling with the GTNHLib ItemStackNBT helper across bartworks and gregtech item classes (programmer, lab parts, rotors, coolant and radioactive cells, energy armor, meta items). Bumps GTNHLib from 0.9.49 to 0.9.50. - @Alexdoru
- #6297 Added NEITemplateContext so createNEITemplate takes one context argument instead of seven. Added RecipeMapFrontend.prepareRecipe so recipes are prepared once before caching. Removed LHCNEIHandler and moved its logic into LargeHadronColliderFrontend. Replaced setDisplayStack/setMaxRecipesPerPage with setHeight/setShiftY in neiHandlerInfo. Moved tooltip hooks to NEI Badge. - @slprime
- Added: NEITemplateContext, RecipeMapFrontend.prepareRecipe
- Removed: LHCNEIHandler
- Migration: Addon frontends must change createNEITemplate overrides to take a GTNEIDefaultHandler.NEITemplateContext and addProgressBar overrides to take (ModularWindow.Builder, NEITemplateContext). FixedPositionedStack.mChance, chanceFormat and LHCNEIHandler are removed; setDisplayStack in neiHandlerInfo still works but is no longer needed for the icon.
- #6292 Added Materials entries and MaterialBuilder definitions, registered the fluids by hand in LoaderGTBlockFluid with GTFluidFactory so they use MetaGeneratedItem98 cells, and added textures with mcmeta animations and en_US lang keys. Linked to NewHorizonsCoreMod PR 1684. - @Nikolay-Sitnikov
- Added: Pollution material, Sodium Potassium material, Enriched Bacterial Sludge material, Fermented Bacterial Sludge material
- Removed: unused fluid lang keys in ru_RU and zh_CN
- Fixed: misnamed fluid PNG file
- #6282 Updated multiple basic machine classes to use
gt.blockmachines.basicmachine.*localization keys; modified MTEBasicMachineWithRecipe.java, GTLanguageManager.java, and MachineType.java; added comprehensive entries to en_US.lang. - @Eldrinn-Elantey- Added: Localization keys for basic machines in en_US.lang
- #6280 Deleted the GTplusplus.INIT_PHASE enum and CURRENT_LOAD_PHASE, hardcoded the 'miscutils' mod id in @Mod and @Mod.Instance, and removed the phase-gated logging in GTPPMultiBlockBase.addToMachineListInternal. - @Alexdoru
- Removed: GT++ INIT_PHASE enum, phase-gated hatch log messages
- #6216 SBRInventoryContext and SBRWorldContext now have private constructors and static create() factories returning the interface types. setup() moved to ISBRInventoryContext and ISBRWorldContext, and SBRContextHolder uses the interfaces. Removed the unused LIGHTNESS constant and fixed Javadoc. Mods that bundle GT5 API classes may hit IllegalAccessError. - @leagris
- Added: create() factory methods for SBR contexts
- Removed: unused LIGHTNESS constant in SBRInventoryContext, public constructors of SBRInventoryContext and SBRWorldContext
- #6199 getWrittenBook now treats the title and page arguments as lang keys when StatCollector.canTranslate returns true, and replaces literal \n with newlines. The strings in LoaderGTBlockFluid and BookHandler moved to keys in the gregtech and miscutils en_US.lang files, and ItemBaseBook resolves its title through GTUtility.translate. - @Eldrinn-Elantey
- Added: book lang keys in en_US.lang
- Removed: hardcoded book page strings
- #6175 MTETieredMachineBlock now returns true from useMui2 and builds MTETieredMachineBlockBaseGui in buildUI. Direct subclasses with a GUI (battery buffer, tank, buffer, solar generator, digital chest, tiered chest, buck converter, debug machines) override useMui2 to false. The base GUI gets a logo child and adjusted bottom padding, and MTEBasicMachineWithRecipeBaseGui keeps its own padding and no logo. - @TheYoingLad
- Added: GregTech logo on the tiered machine GUI
- #6160 Renamed MTESteamMultiBase to MTESteamMultiBlockBase (and its Gui class) and changed its superclass from GTPPMultiBlockBase to MTEExtendedPowerMultiBlockBase, moving the five methods it used into the new class. Replaced getCasingTextureId overrides with isHighPressure, moved updateHatchTexture to the base class, and moved the steam multis into gregtech.common.tileentities.machines.multi.steam. - @VortexSo4
- Migration: Addons extending MTESteamMultiBase must extend MTESteamMultiBlockBase, which now extends MTEExtendedPowerMultiBlockBase, replace getFrontOverlay and getFrontOverlayActive with getActiveOverlay, getInactiveOverlay and their glow variants, and implement isHighPressure. The steam multis such as MTESteamMacerator moved to gregtech.common.tileentities.machines.multi.steam.
- #6152 Added ItemList.FORESTRY_DECORATIVE_PLANKS as an ImmutableList and used it in CraftingRecipeLoader, CuttingRecipes and NEIHiding. CuttingRecipes was also restructured, with a GTRecipeConstants import added. - @boubou19
- Added: FORESTRY_DECORATIVE_PLANKS list
- #6151 Added ShieldedAcceleratorCasing (texture id now gt(12,126), same as 1662) and collider casings (ColliderCasing, CMSCasing, ATLASCasing, ALICECasing, LHCbCasing) to the Casings enum. Beam crafting multis, MTELargeHadronCollider and the gtnhlanth LINAC, Source Chamber, Synchrotron and Target Chamber now use them. - @ham-corp
- Added: Casings enum entries for collider casings and the Shielded Accelerator Casing
- #6150 Added @Override annotations to methods that implement or override a parent method. Removed trivial overrides that only call super, and removed an unneeded ISubTagContainer interface from Werkstoff. - @Alexdoru
- Removed: redundant overrides, ISubTagContainer from Werkstoff
- #6148 MTEDrillerBase now uses WorkState and PipeActionResult enums in place of int constants. The wrapper key class for map keys was replaced with bit packing and an Int2ObjectOpenHashMap. Subclasses (oil drill, ore drill, concrete backfiller, Deep Earth Heating Pump) were updated. - @Alexdoru
- Removed: wrapper key inner class
- #6147 Deleted MTETooltipMultiBlockBaseEM and switched the goodgenerator multis and MTELargeFusionComputer to extend TTMultiblockBase, with tooltip handling moved into MTETooltipMultiBlockBase and TTMultiblockBase. - @Alexdoru
- Removed: MTETooltipMultiBlockBaseEM
- #6139 Removed duplicated onWireCutterRightClick batch mode overrides from many multiblock classes and moved the toggle into the parent class. Machines with extra behaviour now call super. - @Alexdoru
- Removed: duplicated batch mode toggle methods
- #6079 Removed GTLanguageManager calls from GTFluid.addFluid and GTUtility.getWrittenBook, which now use lang keys. CircuitComponentFakeItem drops its gt. prefix and MissingMappingsHandler remaps gregtech:gt.gt.fakecircuitcomponent to the new name. About 449 lines were added to en_US.lang. - @Eldrinn-Elantey
- #6078 Renamed MTEAdvDebugStructureWriter to MTEDebugStructureWriter, ItemList.AdvDebugStructureWriter to DebugStructureWriter and the ID constant to DEBUG_STRUCTURE_WRITER (still 349). Deleted the tectech MTEDebugStructureWriter, its registration, CustomItemList entry, the ID 15499 and its lang entries. - @TheYoingLad
- Removed: TecTech Debug Structure Writer
- #6077 Renamed MTEBasicMachineBaseGui to MTETieredMachineBlockBaseGui and widened its bound from MTEBasicMachine to MTETieredMachineBlock. supportsInventoryRow moved from MTEBasicMachine to MTETieredMachineBlock, and the circuit slot check now uses an instanceof check on IConfigurationCircuitSupport. - @chrombread
- Removed: MTEBasicMachineBaseGui class name
- #6075 Added GTUtility.translateMultiline (array and Collection overloads) that translates a key and splits on the literal backslash-n with a Guava Splitter. ItemArmorTinFoilHat.addInformation now uses it, and the en_US lang entry was edited for punctuation. - @Eldrinn-Elantey
- Added: GTUtility.translateMultiline helper
- #6065 hashCode in EnderLinkTag, EnderLinkTank and TeslaCoverConnection now uses GTNHLib Fnv1a32 instead of the 31-multiplier scheme. - @Alexdoru
- #6064 Modified MetaGeneratedItem, MetaBaseItem, and GTGenericItem to store localization keys and resolve display names/tooltips at runtime using GTUtility.translate; updated all MetaGeneratedItem subclasses and en_US.lang with new entries. - @Eldrinn-Elantey
- Added: localization key storage for MetaGeneratedItem
- #6032 MTEWirelessCharger replaces StatCollector calls with GTUtility.translate. The %,d placeholders in gtpp.tooltip.wireless_charger.2-4 and gtpp.chat.wireless_charger.enter/leave became %s in en_US.lang and ru_RU.lang. - @Eldrinn-Elantey
- #6028 BaseMetaTileEntity.updateEntityProfiled is now final and split into smaller methods. Shared helpers such as handleFirstTick and handleColorChangeClient, and shared fields (oldX/Y/Z, mColor, oldColor, oldRedstoneData, oldUpdateData, mMetaTileEntity), moved into CommonBaseMetaTileEntity. BaseMetaPipeEntity uses the same helpers. - @TechLord22
- #6018 TooltipHelper.fluidText and fluidRateText now call coloredText with L_COLOR and use the gt.unit.liter and gt.unit.liter_per_second lang keys. - @Eldrinn-Elantey
- #6005 Refactored MTECropHarvestor to use GTUtility.translate for localization and TooltipHelper for formatting. Updated Gregtech4Content and language files. - @Eldrinn-Elantey
- Added: 17 new language entries for Crop Manager UI, 17 Russian language entries
- Removed: 1 miscutils lang entry
- #5966 Adds GTLanguageManager.addAnySubBlockLocalization, TooltipHelper.fluidText and fluidRateText with L_COLOR, and switches cable loss text to GTUtility.translate. Casing registrations in BlockCasings* drop hard-coded English names. Dependency versions are bumped, including NEI, GTNHLib, ModularUI2, AE2 and Avaritia. - @Eldrinn-Elantey
- Added: liter tooltip helpers
- #5952 Adds MTEBasicMachineWithRecipeBuilder, a step builder, and converts the registrations in LoaderMetaTileEntities and the GT++ Dehydrator, LFTR and SimpleWasher loaders to it. Removes the single-line-description constructors from MTEBasicMachineWithRecipe, and adds hasInputFluidSlot and hasOutputFluidSlot flags for later use. - @danyadev
- Added: basic machine builder
- Removed: single-line description constructors of MTEBasicMachineWithRecipe
- Migration: Every 2.8.4 MTEBasicMachineWithRecipe constructor is gone: the remaining ones take a String[] description, a SoundResource and hasInputFluidSlot and hasOutputFluidSlot booleans. Addons can instead register basic machines through MTEBasicMachineWithRecipeBuilder, which GT itself now uses.
- #5931 Reorganizes the Casings enum and ports the remaining GTPP and TecTech casings, including BlockGodforgeGlass. Renames IsamillGearBoxCasing to IsaMillGearboxCasing and updates MTESpinmatron. - @chrombread
- #5923 GTMultiTextureRender constructor changed from public to protected, and a static create factory was added. TextureFactory.of(ITexture...) calls create. - @sisyphussy
- Added: GTMultiTextureRender.create factory
- Removed: public GTMultiTextureRender constructor
- Migration: Addons that call new GTMultiTextureRender directly must use TextureFactory.of or GTMultiTextureRender.create.
- #5922 Added GT++ casing entries to the Casings enum, covering GregtechMetaCasingBlocks4 and GregtechMetaCasingBlocks. Removed the old TurbineShaft entry from the earlier GT++ section. - @VortexSo4
- Added: GT++ casing entries in Casings enum
- Removed: TurbineShaft entry in its old position
- #5894 Moved the three controller crafting recipes from RecipesMachinesMulti into new registerReworkMTERecipes in MTERecipeLoader, and added registerReworkMigrationRecipes for the shapeless legacy-to-new conversions, marked for deletion after the next major version after 2.9. The shapeless conversion recipes are removed from RecipesMachinesMulti. - @chrombread
- Added: registerReworkMTERecipes, registerReworkMigrationRecipes
- #5887 Removed MultiblockTooltipBuilder.ContributorList. Added addAuthors and addStructureAuthors builder methods backed by two lists, and toolTipFinisher is called without a list argument. MTEExtremeIndustrialGreenhouse was updated to the new calls. - @chrombread
- Added: addAuthors builder method, addStructureAuthors builder method
- Removed: ContributorList helper class
- #5886 Renamed MTEIndustrialWireMillModern to MTEIndustrialWireMill and updated LoaderMetaTileEntities. The IndustrialWireMill.ID and the controller name string are unchanged. - @VortexSo4
- #5866 Replaced literal .eut(...) values with TierEU constants across about 70 files, using TierEU.RECIPE_LV / 2 for 16 and RECIPE_MV / 2 for 60. The diff shows no value changes. - @LazyFlesh
- #5859 Removed sFluidContainerList, sFilledContainerToData, sEmptyContainerToFluidToData and GTUtility.reInit in favour of FluidContainerRegistry. Kept fluidToContainersMap as an IdentityHashMap, fed by insertInFluidToContainersMap from the GTProxy registration event handler. - @danyadev
- Removed: GT fluid registry duplicate of FluidContainerRegistry
- #5853 Deleted the deprecated MTEHatchOutputME and MTEHatchOutputBusME wrapper classes in gregtech.common.tileentities.machines, and pointed all imports at the outputme package. Added getProvider to the ME output bus and hatch, renamed getCheckMode to shouldCheck, and added generic type parameters to MTEHatchOutputMEBase.Environment. - @hinyb
- Added: getProvider accessor on ME output hatches
- Removed: deprecated MTEHatchOutputME and MTEHatchOutputBusME wrapper classes
- #5849 Removed GregTechAPI.sItemStackMappings and itemStackMultiMaps, the GTUtility.reMap methods, and their registrations in CoverRegistry, GTHashSet, RecipeMapBackend and GTOreDictUnificator. Also removed the GTMod.onIDChangingEvent remap loops and the unused sOreToCobble and getCobbleForOre. - @danyadev
- Removed: ItemStack map remapping on ID change, sOreToCobble, getCobbleForOre
- #5848 Removed the explicit GTUtility.addFluidContainerData calls in BartWorks loaders (CellLoader, MoltenCellLoader, GTMetaItemEnhancer), leaving only the call in the FluidContainerRegisterEvent subscriber. Removed runMoltenUnificationEnforcement, the decimalFormatters field and getDecimalFormat. - @danyadev
- Removed: explicit addFluidContainerData calls, runMoltenUnificationEnforcement, unused getDecimalFormat
- #5812 Deleted MTECubicMultiBlockBase. MTEImplosionCompressor and MTEVacuumFreezer now extend MTEExtendedPowerMultiBlockBase with their own StructureDefinition built from onElementPass/transpose, and Casings gained SolidSteelMachineCasing and FrostProofMachineCasing entries. - @VortexSo4
- Added: SolidSteelMachineCasing and FrostProofMachineCasing casing entries
- Removed: MTECubicMultiBlockBase
- Migration: Addons that extend MTECubicMultiBlockBase need to move to another multiblock base class and define their own structure.
- #5802 ItemRegistry gains a vat entry for MTEBioVat, and CraftingRecipes uses ItemRegistry.vat.copy() instead of constructing MTEBioVat. Static MetaTileEntityIDs imports in ItemRegistry are reduced. - @serenibyss
- #5752 Replaces GTUtility.formatNumbers call sites with NumberFormatUtil.formatNumber across bartworks, goodgenerator, detrav and gregtech. Bumps GTNHLib from 0.8.41 to 0.9.6 and waila from 1.9.15 to 1.19.20. - @Connor-Colenso
- #5751 Renames MTEChamberCentrifuge and its GUI to MTESpinmatron, along with the ItemList entries, MetaTileEntityIDs entry, SoundResource entry, BlockIcons entries, texture files and lang keys. The meta ID 1033 is unchanged, and the GUI calls the super createRightPanelGapRow. - @chrombread
- #5747 DimensionHelper replaces its public String[] arrays with a LinkedHashMap of Dimension records and lookup methods. TileEntityWormhole now saves dimIndex and still reads the old dimID key. - @ABKQPO
- Removed: public dimension name arrays in DimensionHelper
- Migration: Addon code that reads the DimensionHelper name arrays must use the new lookup methods such as getIndex and getAllDisplayedNames.
- #5731 BaseRecipeLoader now finds com.dreammaster.item.NHItemList with a MethodHandle and getNHCoreModItem returns an ItemStack. Assembler and ResearchStationAssemblyLine use it. Deleted the unused ZPMRubberChanges class. - @Nikolay-Sitnikov
- Removed: ZPMRubberChanges class
- #5727 Extracted heat sensing logic into IHeatProducer interface, fixed redstone emitter to respect face orientation, added GTPacketClientMTERendererData for client render syncing, and expanded IMTERenderer capabilities. - @YamiKami-Sama
- Added: IHeatProducer interface, GTPacketClientMTERendererData network packet, Render distance configuration
- Fixed: Heat Sensor emitting redstone on all faces
- #5692 Dropped the "item." prefix from NewHorizonsCoreMod item names passed to getModItem, LazyItem and StoneType dust setters across recipe loaders, ItemComb, GTBeeDefinition, AE2Compat and others. Must ship with NewHorizonsCoreMod#1557. - @Nikolay-Sitnikov
- #5677 Adds ScannerHandlerRegistry (RecipeMaps.scannerHandlers), the IGTScannerHandler interface and GTScannerResult, with handlers registered in ScannerHandlerLoader. MTEScanner is rewritten to use them, MTEResearchStation is reworked, and a new MTEResearchStationGui is added. Prospection data helpers in GTUtility are changed. - @C0bra5
- Added: scanner handler registry, Research Station GUI
- #5675 Removes ArmourLoader, BaseArmour and BaseArmourHelm, moves ItemArmourTinFoilHat to ItemArmorTinFoilHat extending BaseItemWearable, and registers it from WearableLoader. - @Spicierspace153
- Removed: ArmourLoader, BaseArmour, BaseArmourHelm
- #5673 Deletes RecipeUtils, ShapedRecipeObject and LateRegistrationHandler, moves callers to GTModHandler, and adds an addSmeltingRecipe overload with an xp argument. The Magnetron recipe in bartworks CraftingRecipes keeps the same 3x3 layout. - @serenibyss
- Removed: GT++ RecipeUtils class
- #5672 Removes methods from gtPlusPlus FluidUtils and ItemUtils, adds getHotWater, getPahoehoeLava, getSuperHeatedSteam and getHotCoolant to GTModHandler, and switches recipe code to GTPPFluids and GregtechItemList. - @serenibyss
- #5652 Removed IC2 fertilizer and GTBaseCrop code, goodgenerator crop loaders, liquid fertilizer, GT++ UN fertilizers and the Crop Manager MTE. Fertilizer secondary outputs now use getModItem to reach CropsNH, and MetaTileEntityIDs were reworked. Diff was not available, so this is based on the PR body and file list. - @C0bra5
- Removed: IC2 Fertilizer references, Liquid fertilizer, GT++ UN Fertilizers, GT Crop Manager
- Migration: Crop Harvestors and the EV and higher Crop Gene Extractors, Synthesizers and Seed Replicators are converted to their CropsNH equivalents in place as your save loads. The LV, MV and HV Crop Gene Extractors and Crop Gene Synthesizers are deleted - placed ones turn to air and stacks turn to stone, so break and scrap them before you update.
- #5634 RecipesMachinesMulti.steamMultis adds the GTModHandler crafting recipe for Controller_SteamAlloySmelterMulti inside the EtFuturumRequiem check. The matching NewHorizonsCoreMod removal is in a separate PR. - @danyadev
- Added: Steam Fuser recipe in GT5-Unofficial
- #5627 CI is deleted and its remaining callers (goodgenerator loaders, RecipeLoaderGenericChem, SlotDataStick, MTEAtmosphericReconditioner, MTEChemicalPlant, angle grinder and electric snips loaders, buffer dynamo, power substation and rocket fuel generator registration) now use direct item and fluid references. - @serenibyss
- Removed: CI class
- #5626 RecipesGregTech is rewritten to use GTValues.RA and direct item lookups, some recipes move into RecipesMachinesCustom and RecipesMachinesMulti, the CI init calls are removed from CommonProxy, and Particle.getBaseParticle gains an amount overload. - @serenibyss
- Added: Particle.getBaseParticle overload with an amount
- Removed: CI init calls from CommonProxy
- #5625 BlockBaseModular fields are renamed and trimmed, and the localized name now comes from a new properName on the BlockTypes enum ("Block of %s", "%s Frame Box", "%s Ore [Old]") instead of string handling. ItemBlockGtBlock is updated for the renamed blockType field. - @Spicierspace153
- Removed: extra fields and name string handling in BlockBaseModular
- #5623 MaterialGenerator drops unused temp fields and the deprecated addFluidCannerRecipe overloads, generate now returns void, and the unused custom colour in generateOreMaterial is removed. - @Spicierspace153
- Removed: deprecated fluid canner overloads in MaterialGenerator, unused custom colour in generateOreMaterial
- #5621 GT++ RecipesMachines is split into RecipesMachinesCustom, RecipesMachinesMulti and RecipesMachinesTiered, and recipes move from the CI and RecipeUtils helpers to GTModHandler and the recipe builder. Unused CI and RecipeUtils members and the unused blockCustomJukebox field are removed, and ItemList gains a MACHINE_CASINGS array. - @serenibyss
- Removed: unused CI and RecipeUtils methods, unused custom jukebox block field
- Fixed: tiered machine cover recipe used Multi-Use Casings at UEV and above
- #5591 Moved the UI into MTEHatchElementalDataOrbHolderGui on MTEHatchBaseGui, replacing the gridTemplate4by4 panel. OVERLAY_SLOT_DATA_ORB now points at gui/overlay_slot/data_orb via fullImage. - @Spicierspace153
- #5561 Removed dead MUI1 code and IAddGregtechLogo from MTERadioHatch, AntimatterGenerator, MTEMicrowaveEnergyTransmitter, MTENanoForge, MTETranscendentPlasmaMixer, MTEPCBFactory, MTEPurificationUnitBase and MTEHatchNbtConsumable. - @serenibyss
- Removed: unused MUI1 GUI code
- #5560 Deleted unused MUI1 methods and imports from MTEBoiler, MTEBoilerLava, MTEBoilerSolar and MTEAdvancedBoilerBase (slot backgrounds, createAshSlotMui1, texture overrides) left over from the MUI2 port. - @serenibyss
- Removed: unused MUI1 boiler GUI code
- #5552 Renamed .dot(n) to .hint(n) across multiblock structure definitions in bartworks, ggfab, goodgenerator and other packages, following StructureLib PR 52. - @UltraProdigy
- #5535 Added GTClient.getAnimationRenderTicks (tick plus partial render time) and deprecated getAnimationTicks. Item renderers were deduplicated, and Cosmic Neutronium and Infinity renderers moved to GTNHLib's universium shader. Removed extra glPush/PopMatrix calls and markNeedsAnimationUpdate, and fixed the alpha passed to glColor4f in colorGTItem from 255 to 1. - @sisyphussy
- Added: getAnimationRenderTicks
- Removed: markNeedsAnimationUpdate
- #5534 Split block-copy texture building out of GTTextureBuilder into a new GTBlockTextureBuilder reached via TextureFactory.blockBuilder(). Removed setFromBlock, setFromSide, addLayer, addIcon varargs and setAllowAlpha from ITextureBuilder, removed the allowAlpha overloads of TextureFactory.of, and deprecated stdOrient and the single-texture of(). - @sisyphussy
- Added: GTBlockTextureBuilder
- Removed: allowAlpha texture option, ITextureBuilder.setFromBlock, ITextureBuilder.addLayer
- Migration: ITextureBuilder lost setFromBlock, setFromSide, useWorldCoord and noWorldCoord, which moved to TextureFactory.blockBuilder(), and addLayer, setAllowAlpha and the varargs addIcon, so layers go through TextureFactory.of(ITexture...). TextureFactory.of(icon, rgba, allowAlpha) is removed; use of(icon, rgba).
- #5519 Removed the Yamcl dependency from dependencies.gradle and the YAMCore required-after entry from TecTech. NetworkDispatcher now uses a SimpleNetworkWrapper with explicit packet ids 0-3, pipe and renderer message handlers implement IMessageHandler directly, and TecTech's logger is a log4j Logger. MTEWorldAccelerator sends ChatComponentTranslation messages. - @Nikolay-Sitnikov
- Added: translatable World Accelerator chat messages
- Removed: Yamcl dependency
- #5511 Removed renderItemIcon and related helpers from GTRenderUtil and switched BWItemRenderer, FlaskRenderer and the GT item renderers to GTNHLib's ItemRenderUtil. Bumped GTNHLib from 0.8.20 to 0.8.22. - @FourIsTheNumber
- Removed: GTRenderUtil.renderItemIcon
- #5461 Moved createTitle from GTBaseGuiBuilder into CommonWidgets.createMachineTitle(IMetaTileEntity, int), which returns the widget on the client and null otherwise. GTBaseGuiBuilder now calls it. - @serenibyss
- Added: CommonWidgets.createMachineTitle helper
- #5440 Split Dyes enum to distinguish Machine Metal from Gui Metal, updated IColoredTileEntity and related classes to use separate color values. - @ABKQPO
- Added: Gui Metal color unit, Client config entry for Gui Metal
- Fixed: Machine texture coloring
- #5433 Renames the godforge data and util packages: ForgeOfGodsGuiUtil moves up into the godforge package, and Modules, Panels, SyncHypervisor, SyncValue and SyncValues move into a new sync package. Imports are updated. - @serenibyss
- #5426 Extracts createTerminalParentWidget from createTerminalRow in MTEMultiBlockBaseGui and makes it overridable, for the NAC and Foundry UIs. - @chrombread
- #5406 Added long/int overloads of RadioHatchMaterialLoader.radioHatchMaterialAdder and the RadioHatchMaterial constructor, which cast internally. The old int/byte versions are kept and marked @Deprecated for outside callers, and addRadioHatchMaterials was reworked to use the new ones. - @boubou19
- Added: long/int overloads for radio hatch material registration
- #5401 Adds ArmorState, which loads behaviors from frame, core and augments and saves back to the stack. Behaviors are identified by BehaviorName and identical ones are merged. Adds ArmorPartBuilder with FrameBuilder, CoreBuilder and AugmentBuilder, and IHazardProtector.protectsAgainstFully. - @RecursivePineapple
- Added: Stackable speed, swim and jump boost augments
- #5360 Removes the @Deprecated annotation and Javadoc from GTRecipeBuilder.BUCKETS. - @chochem
- #5353 In MTEMultiBlockBaseGui, replaces the textBoxToInventoryGap field with an overridable getTextBoxToInventoryGap() returning 22, used by getBasePanelHeight and createPanelGap. - @chrombread
- #5330 Adds MTEBasicMachineBaseGui and overrides buildUI in MTEBasicMachine to use it. useMui2() returns false, so nothing switches over yet. Adds supportsInventoryRow(). - @chrombread
- Added: MTEBasicMachineBaseGui base class
- #5328 Added CommonWidgets with muffle button, power switch, circuit slot and panel close button factories. The muffler button is removed from GTBaseGuiBuilder and added in MTEMultiBlockBaseGui, with overridable position methods that MTECokeOvenGUI uses. MTEHatchBaseGui uses CommonWidgets for the circuit slot. - @chrombread
- Added: CommonWidgets class
- #5317 Added MTEHatchBaseGui with configurable corner flows and circuit slot support. The energy debug, input bus debug, input debug, PH sensor, heat sensor, neutron sensor and radio hatch GUIs now extend it. getCircuitSlotX and getCircuitSlotY on IConfigurationCircuitSupport are deprecated. - @chrombread
- Added: MTEHatchBaseGui base class for hatch GUIs
- #5310 MTEMultiBlockBaseGui uses ModularUI2's ItemDisplayWidget and FluidDisplayWidget. ResizableItemDisplayWidget is deleted. - @Spicierspace153
- Removed: ResizableItemDisplayWidget
- #5300 Removed MUI1 implementations such as drawTexts, createFuelSlotMui1 and the related widget imports from about 21 classes, including MTERadioHatch, AntimatterForge, MTEBoiler and MTEPlasmaForge. Addons that override the removed MUI1 methods will no longer compile. - @chrombread
- Removed: ModularUI 1 GUIs for ported machines
- #5288 Bumped ModularUI2 to 2.3.8-1.7.10. MTEMultiBlockBaseGui.createButtonColumn uses reverseLayout, and MTETranscendentPlasmaMixerGui now calls super and adds the parallel button. Redundant margin and topRel calls were removed. - @chrombread
- #5286 Renamed MTEMultiBlockBase.supportsTerminalCornerColumn to supportsTerminalRightCornerColumn and MTEMultiBlockBaseGui.createTerminalCornerColumn to createTerminalRightCornerColumn. Addons that override or call the old names need updating. - @chrombread
- #5281 Moved many MTEForgeOfGods fields and default constants into a new shared data class, ForgeOfGodsData. GodforgeMath methods now take that data object instead of the MTEForgeOfGods controller. - @serenibyss
- #5261 Standardises material name accessors across GregTech, BartWorks and GT++ (getDefaultLocalName, getLocalizedNameKey, getLocalizedName), removes the mLocalizedName field, makes mChemicalFormula private, and moves GT++ material lang keys to the Material.xxx format. The diff was too large to fetch, so this comes from the PR body. - @iouter
- Added: localizable material lore text
- Removed: mLocalizedName field on GT materials
- Migration: Addons should call getLocalizedName(), getDefaultLocalName() and getChemicalFormula() instead of reading mLocalizedName or mChemicalFormula. GTLanguageManager.addStringLocalization now returns void and lost its three-argument overload, so every addon that calls it must be recompiled, and code that used the returned string must look the translation up separately.
- #5258 Bumps AE2-Unofficial to rv3-beta-754-GTNH and AE2FluidCraft-Rework to 1.5.30-gtnh. MTEHatchCraftingInputME, MTEHatchOutputBusME and MTEHatchOutputME use IAEStack, getAEInputs and getConfigAEInventory, and the reflection on CellInventory.restrictionLong is removed. - @lc-1337
- Removed: reflection access to cell restriction field
- #5207 Adds a circuit() method to the recipe builder and replaces GTUtility.getIntegratedCircuit() calls in itemInputs() across over 100 files with it, moving the circuit to the last position. GTUtility.getIntegratedCircuit() is kept. - @UltraProdigy
- Added: circuit() recipe builder method
- #5199 MTEMultiBlockBase.runMachine now calls a new overridable incrementProgressTime() instead of inlining ++mProgresstime, with the completion check moved into its own block. - @RecursivePineapple
- Added: overridable multiblock progress hook
- #5161 Renames Materials enum fields (for example Fuel to Diesel, Plastic to Polyethylene, DarkAsh to AshDark, Silicone to RubberSilicone, FoolsRuby to Spinel) and updates all references across GT5U, bartworks and goodgenerator. Addons and NewHorizonsCoreMod need matching updates. - @Vlamonster
- Migration: Addon developers must update references to the renamed Materials fields, and NewHorizonsCoreMod needs its matching update for #5161.
- #5156 Moved the LiquidAir field in Materials and loadLiquidAir in MaterialsInit to a different position in the lists. The definition is unchanged. - @Vlamonster
- #5121 Converts OrePrefixes from an enum to a class with an OrePrefixBuilder. Field access such as mTextureIndex becomes getters, and values() becomes the VALUES array. NewHorizonsCoreMod needs a matching update. - @Vlamonster
- Added: OrePrefixBuilder
- Migration: Addon code must use the OrePrefixes getters and the VALUES array instead of the old fields and values().
- #5118 Moved the OrePrefixes mGeneratedItems additions (nanite, lens, plate, etc.) out of OrePrefixes into per-material addOrePrefix calls in MaterialsInit. Lens is added to the MaterialBuilder addMetalItems javadoc, and the old SubTag condition for lenses is removed. - @Vlamonster
- Removed: central OrePrefixes generated-item list for these materials, old SubTag condition for lenses
- #5114 Removed the static fields, builders, ID map entries and related recipes/processing (ProcessingStone, CraftingRecipeLoader, ProcessingModSupport parent-mod flags) for the unused materials. Also changed the formula of the Promethium Ore Concentrate werkstoff from Po to Pm. - @chochem
- Removed: 43 unused materials
- Fixed: Promethium Ore Concentrate formula using Po instead of Pm
- Migration: Addons that reference the removed Materials fields (for example Materials.Angmallen, Materials.Chert or Materials.Greywacke) need to stop using them.
- #5110 Added MaterialsIDMap, an Int2ObjectOpenHashMap registered from Materials.init(), holding every material id. Removed MaterialBuilder.setMetaItemSubID and the metaItemSubID constructor parameter of Materials, and all setMetaItemSubID calls in MaterialsInit. mMetaItemSubID defaults to -1. - @Vlamonster
- Added: MaterialsIDMap
- Removed: MaterialBuilder.setMetaItemSubID
- Fixed: Greywacke and Complexity Catalyst sharing one id
- Migration: Addons can no longer pass a meta item id to MaterialBuilder or to a Materials constructor, because GT assigns material ids in its own MaterialsIDMap. A material that needs generated items has to be added there in GT5-Unofficial.
- #5109 Moved MUI2 classes into gregtech/common/gui/modularui/ (e.g. MTEMultiBlockBaseGui to multiblock.base, SelectItemUIFactory renamed ItemSelectBaseGui in base). Moved inline MUI2 UI code from MTERadioHatch and MTENeutronSensor into gui classes such as MTENeutronSensorGui. About 98 files touched. - @chrombread
- Migration: Addons that import moved MUI2 classes, such as MTEMultiBlockBaseGui or SelectItemUIFactory, need to update to the new gregtech.common.gui.modularui packages and names.
- #5108 Removes MaterialsGTNH and moves its fields and loading into Materials and MaterialsInit. NewHorizonsCoreMod needs a matching update. - @Vlamonster
- Removed: MaterialsGTNH class
- Migration: Addon code must use Materials.<Name> instead of MaterialsGTNH.<Name>.
- #5107 Removes MaterialsUEVplus and moves its fields and loading into Materials and MaterialsInit, updating about 60 files. NewHorizonsCoreMod needs a matching update. - @Vlamonster
- Removed: MaterialsUEVplus class, duplicate Protomatter and Antimatter in Materials
- Migration: Addon code must use Materials.<Name> instead of MaterialsUEVplus.<Name>. The Dimensionally Transcendent catalysts and residue and Magnetohydrodynamically Constrained Star Matter are now Materials.DTCC, DTPC, DTRC, DTEC, DTSC, DTR and MHDCSM.
- #5106 Added MTEMultiBlockBaseGui.withMachineModeIcons(UITexture...). Deleted the per-machine Gui subclasses (Deep Earth Heating Pump, Industrial Electromagnetic Separator, Multi Canner, Amazon Packager, Industrial Dehydrator, Industrial Plate Press, Industrial Wash Plant, Steam Washer and others) and their getGui() now returns the base GUI with icons. - @FrostyFire1
- Removed: per-machine GUI classes that only set machine mode icons
- #5105 Deleted MaterialsOreAlum. Its nine fields now live on Materials and are built in MaterialsInit.loadAluminiumOres; recipe classes (BauxiteRefineChain, Centrifuge, Distillery, ElectromagneticSeparator, Mixer) now reference Materials.X. - @Vlamonster
- Removed: MaterialsOreAlum class
- Migration: Addons that use MaterialsOreAlum.X should use Materials.X instead.
- #5085 Drops the deprecated tier aliases from Materials and MaterialsInit. Call sites such as pipe recipes in GTModHandler and MTERecipeLoader now use ZPM, HV and the other tier names. NewHorizonsCoreMod and Electro-Magic-Tools needed matching updates. - @Vlamonster
- Removed: deprecated tier material aliases
- Migration: Addon code must use the tier names (ULV to MAX) instead of the deprecated aliases.
- #5084 Removes MaterialsKevlar and moves its fields and loading into Materials and MaterialsInit. Call sites are updated. NewHorizonsCoreMod needs a matching update. - @Vlamonster
- Removed: MaterialsKevlar class
- Migration: Addon code must use Materials.<Name> instead of MaterialsKevlar.<Name>.
- #5083 Removes MaterialsBotania and moves its fields and loading into Materials and MaterialsInit. Renames MaterialBuilder.addOrePrefixBlacklist to removeOrePrefix. NewHorizonsCoreMod needs a matching update. - @Vlamonster
- Removed: MaterialsBotania class
- Migration: Addon code must use Materials.<Name> instead of MaterialsBotania.<Name>; MaterialsBotania.BotaniaDragonstone is now Materials.Dragonstone.
- #5065 MTEMultiBlockBaseGui.build now uses GTBaseGuiBuilder, which gains muffler button options (doesAddMufflerButton and position fields). The duplicated cover tab and panel code is removed, and the power panel is positioned relative to the main panel instead of through an Area calculation. - @FrostyFire1
- Fixed: power panel positioning in the multiblock GUI
- #5036 Added removeResource, removeAllResource, findResource and hasResource (with and without amount) to MTEHatchInputBus, with overrides in MTEHatchInputBusME. MTEBlackHoleCompressor.searchAndDecrementCatalysts now calls these with ItemList entries instead of matching MetaGeneratedItem01 damage values. - @VortexSo4
- Added: Input bus helper methods for finding and removing items
- #5027 Implements IItemSource, IItemSink and ItemIO capabilities on GT meta tile entities (GTItemSink, SimpleItemIO) and ports item moving in MTEBasicMachine, MTEBuffer, output buses, covers like CoverArm and the coke oven hatch to GTItemTransfer. About 1000 lines of old item moving helpers in GTUtility are removed, which affects addons that call them. Depends on GTNHLib PR 167. - @RecursivePineapple
- Added: item source and sink support on GT machines
- Removed: old item moving helpers in GTUtility
- Migration: Addon code that called the GTUtility item moving helpers (moveMultipleItemStacks, moveOneItemStack, moveOneItemStackIntoSlot, moveFromSlotToSlot, moveFromSlotToSide, moveStackIntoPipe, moveStackFromSlotAToSlotB, isAllowedToTakeFromSlot, isAllowedToPutIntoSlot) must move to gregtech.api.util.GTItemTransfer; those helpers are removed.
- #5021 CoverRedstoneWirelessBase extends Cover with frequency and privateChannel fields, reads both the legacy int and the compound NBT, and the transmitter and receiver subclasses use getMapFrequency. PUBLIC_MASK became CHANNEL_MASK. The en_US and ru_RU freq_format string now takes a second argument. - @FrostyFire1
- Removed: CoverLegacyData use in the wireless redstone base
- #5010 CoverEnderFluidLink now extends Cover with separate export and privateChannel fields and reads both the legacy int NBT and the new format. EnderFluidLinkUIFactory now extends CoverUIFactory<CoverEnderFluidLink>, and CoverLoader passes the texture to the new constructor. The old masks stay with a TODO to remove after 2.9. - @FrostyFire1
- Removed: CoverLegacyData use in the Ender Fluid Link Cover
- #4992 CoverArm now extends Cover instead of CoverLegacyData, with export, internalSlotId and externalSlotId fields. Old packed data is converted on load, and the legacy masks stay with a TODO to remove them after 2.9. ArmUIFactory now extends CoverUIFactory<CoverArm>. - @FrostyFire1
- Removed: CoverLegacyData use in robot arm cover
- #4983 PowerGogglesHudHandler now only decides when to render. Drawing moved to the new abstract PowerGogglesRenderer and SimplePowerGogglesRenderer. GTPacketUpdatePowerGoggles drops the refresh flag from its constructors and wire format, and number formatting moved to PowerGogglesUtil.format. - @Dream-Master
- Added: PowerGogglesRenderer, SimplePowerGogglesRenderer
- Removed: refresh flag in power goggles update packet
- #4804 Moves HUD rendering from PowerGogglesHudHandler into a new PowerGogglesRenderer with SimplePowerGogglesRenderer, leaving the handler to decide when to render. Drops the refresh flag from GTPacketUpdatePowerGoggles and moves number formatting to PowerGogglesUtil. - @FrostyFire1
- #4686 Expands MaterialBuilder and converts Materials, MaterialsBotania, MaterialsGTNH, MaterialsKevlar, MaterialsOreAlum, MaterialsUEVplus and Bartworks bridge loaders to use it. Renames the mUnificatable field to mUnifiable, which breaks addon code that references it. - @Vlamonster
- Migration: Addons can no longer call new Materials(...), since its constructor is now protected. MaterialBuilder(id, iconSet, name) is replaced by MaterialBuilder() with setName, setDefaultLocalName and setIconSet, and setTypes, setRGB and setRGBA are gone in favour of setARGB.
- #4671 Adds IOutputBus, IOutputBusTransaction, OutputBusType and ItemEjectionHelper, implemented on output, ME, steam and void busses. Removes MTEMultiBlockBase.getStoredOutputs, replaces IVoidable item slot methods with getOutputBusses, and splits addOutput into addOutputPartial, addOutputAtomic and addItemOutputs for addon code. - @RecursivePineapple
- Added: output bus interfaces, item ejection helper
- Removed: old stored outputs void protection mechanism
- Fixed: item void protection logic
- Migration: Addon multiblocks must call addOutputAtomic(ItemStack) instead of addOutput(ItemStack) and addOutputPartial(ItemStack) instead of addOutputPartial(ItemStack, boolean); addItemOutputs now returns a boolean and getStoredOutputs() is removed. IVoidable implementers replace getItemOutputSlots and getVoidOutputSlots with getOutputBusses() and implement canDumpItemToME(List<ItemId>), and custom output busses implement IOutputBus.
- #4595 Replaced inline alignment limit overrides in multiblock classes (MTEHeatExchanger, MTELargeTurbine, MTEDistillationTower, etc.) with preset
IAlignmentLimitsconstants from StructureLib. Cleaned up redundant method overrides and removed explicit rotation restrictions. All changes are backwards-compatible; previously valid multiblock placements remain valid. - @AbdielKavash- Added: North→South rotation for NOT_UPSIDE_DOWN multiblocks, rotation/flip capability for Large Turbines
- Removed: unnecessary rotation restriction overrides, redundant getAlignmentLimits() methods in MTELargeTurbine and other multiblocks
- Fixed: Large Heat Exchanger rotation to north→south direction (closes #14206)
- Closes GTNH#14206
- #4571 Ported ~40 cover GUI classes from the old UI system to ModularUI2 by updating inheritance and imports. Added new texture definitions to GTGuiTextures and modified base Cover and CoverGui classes to support the new framework. - @chrombread
- Added: ModularUI2 texture definitions for cover GUIs
- #4487 Replaced unmaintainable config code with a slot-based system in MTEHatchInputME and MTEHatchInputBusME. Removed AE operations from getStackInSlot, changed NBT format with migration code via GTDataUtils, restructured bus inventory (slots 0-15 for items, 16-17 for ghost circuit + manual), and added fluid draining outside recipe checks. - @RecursivePineapple
- Added: Slot-based configuration system for hatches, NBT migration code for old hatch formats, Fluid draining outside recipe checks, Structure check trigger when expedite recipe check toggled
- Removed: Legacy config code in stocking hatches, Unnecessary AE operations from getStackInSlot, Tooltip warning for expedite recipe check
- Fixed: Stocking hatch and bus performance bottleneck
- Migration: Stocking hatch and bus NBT format has changed; old configurations will migrate automatically but verify your AE integration remains stable after updating.
Documentation
- #8091 MTEResearchStation: swaps the hint indices on the 'E' holder hatch element and the 'F' hatch adder, and changes the casing counts and misc hatch hint numbers in createTooltip(). Adds a new lang key for the back center casing location. - @DylanTaylor1
- Fixed: Research Station construction tooltip and hint blocks
- #8090 MTEBoardProcessorModule.createTooltip() gets an extra info line and a suffix on the output hatch structure line. en_US.lang adds two new keys and changes the flush_tank label to include the requirement. - @mak8427
- Added: Output Hatch requirement notes for Board Processor flushing
- Fixed: missing documentation about flushing in the Board Processor
- Closes GTNH#24537
- #8019 Added tooltip line GT5U.tooltip.nac.module.splitter.body.5 to MTESplitterModule.createTooltip and the en_US.lang entry. - @chrombread
- Added: Splitter module tooltip line about splitting CCs
- #7943 Adds a comment in MTEEyeOfHarmony.recipeChanceCalculator explaining that the pity check compares chance with previousRecipeChance before overflow penalties. No logic change. - @Worive
- #7608 Comment-only change in GTNHMod.java about when to use the gregtech_nh id for Loader.isModLoaded and @Optional, and how to detect GT6. - @felixfour
- #7574 Added a credit line to README.md linking the artist and the original work. - @FourIsTheNumber
- Added: Spacetime texture credit in README
- #7027 GTAchievements and language file: Added 128 new achievement localization strings. - @boubou19
- Added: Achievement localization entries
- #6982 Adds addSubChannelUsage calls (BOROGLASS, STRUCTURE_LENGTH, ITEM_PIPE_CASING and others) to createTooltip in about 20 multiblock classes, including MTEAssemblyLine, MTEAdvAssLine, MTEIndustrialMixer and MTEElectricImplosionCompressor. No behaviour change. - @DylanTaylor1
- Added: subchannel lines in multiblock tooltips
- #6100 JavaDoc added to both GTUtility.translate overloads. - @Eldrinn-Elantey
- #6042 Added a comment line to the texture page table in Textures.BlockIcons noting page 20, 0-15 is used by CropsNH casings. - @C0bra5
- #5845 Added a "Gui Metal" entry to the example color JSON in docs/ResourcePacks_Guide.md, following PR 5440. - @Ranzuu
- Added: Gui Metal entry in the resource pack guide
Chores
- #8305 Updated ru_RU/tooltip/industrial-maceration-stack.md to match the revised English text from #8283. - @Eldrinn-Elantey
- #8275 Reverts #8250 raw-type casts to direct tagList casts, bumps AE2-Unofficial to rv3-beta-1077-GTNH, gtnhsettingsconvention to 2.0.34 and updates the Gradle wrapper scripts. - @Kogepan229
- #8181 Renames Werkstoff names in GGMaterial (Naquadah Based Liquid Fuel Mk-I to Mk-VI and depleted variants), fixes casing in MTESolarFactory, precise-assembler, space-elevator and antimatter-forge tooltips, and changes Beamline to Beam Line in gtnhlanth en_US.lang. - @DylanTaylor1
- Fixed: Inconsistent Mk-N tier naming in tooltips
- #8172 Removed the unused GT5U.machines.stocking_bus.force_check key and the fast recipe check lines from the autopull hatch description in en_US.lang. - @DreamYao520
- Removed: fast recipe check text from hatch tooltip, unused translation key
- #8117 Deleted the duplicate keys gt.item.adv_sensor_card.tooltip.machine and gt.item.desc.stored_heat, plus a comment line, from en_US.lang. - @MLGfruitshoot
- Removed: duplicate translation keys
- Closes GTNH#24259
- #8029 Adds gt.lang.face.* and gt.metaitem..with..name keys to en_US, ru_RU and zh_CN lang files. The Russian redstone direction text and two templates are reworded. No code changes. - @Eldrinn-Elantey
- Added: Side names in asset lang, Named item copy names in asset lang
- Fixed: Wrong case in Russian side names
- #7975 TextureSet skips the /void icon type. MetaGeneratedItem gains setNoBaseIcon and an invisible base icon. CircuitComponentFakeItem falls back to the real component's icon. Some BartWorks glass texture names are corrected. GT++ BasicTileBlockWithTooltip gets a usesSidedTextures hook. White Dwarf Matter uses its molten fluid texture. - @boubou19
- Removed: registrations of nonexistent textures
- Fixed: missing texture errors in the log
- #7897 Updated coil heat tooltip formatting in
BlockCasings5and lang files to use ':' separator and red color code. - @Connor-Colenso - #7886 Added OreMixes.getOrePrefixesVariants(IOreMaterial), which returns the stone variant OrePrefixes of an ore; used by the coremod for NEI Planets. - @boubou19
- Added: OrePrefixes lookup helper
- #7880 Replaced the getmoditems, ismodloaded, sysout and scala-presence workflows with test-forbidden-usage.yml, which collects all grep violations before failing and also checks findItemStack and findBlock. Added BuildCraftEnergy to Mods and ModIDs. - @UltraProdigy
- Added: combined forbidden usage workflow, BuildCraftEnergy mod entry
- Removed: four separate forbidden-test workflows
- #7868 Commented out the runtimeOnlyNonPublishable Angelica 2.2.8:dev line in dependencies.gradle; the compileOnly api dependency stays. - @Ruling-0
- Removed: runtime Angelica dev dependency
- #7864 dependencies.gradle bumps the devOnlyNonPublishable Horizon-QA dev artifact from 0.13.1 to 0.14.0. - @Worive
- #7817 GTRecipe.RecipeAssemblyLine.checkInvalidRecipes and IG_RecipeAdder.addSpaceMiningRecipe log at info instead of error. A spacetime gem texture file is also touched. - @boubou19
- Fixed: false error entries in the log
- #7773 Adds DO_NOT_CHECK_FOR_COLLISIONS to BUFFERED addCraftingRecipe calls across bartworks, ggfab, goodgenerator, GTMod and other loaders where the log showed the removal found nothing. Adds parse_useless_recipe_removals.py to summarise the log by call site. - @boubou19
- #7763 Added GTLoggers to hold the GT loggers and GTLog.conditionalLogger for config-toggled ones. Replaced GTLog.err/out/ore/exp/ico and the BartWorks DebugLog (deleted) with Log4j calls, and merged the kubatech loggers. - @boubou19
- Added: GTLoggers class, conditionalLogger helper, rotating log files
- Removed: BartWorks DebugLog class
- #7731 Modified MetaGeneratedTool to cap mining speed presentation to 2 decimal places in tooltip display. - @Connor-Colenso
- #7730 Reformatted DetravMetaGeneratedTool01 tooltip layout and updated Scanner language files for visual consistency. - @Connor-Colenso
- #7697 label-test-review-refresh.yml now records the PR number and uploads it as an artifact. label-test.yml also triggers on workflow_run and passes review_signal_run_id and review_signal_head_sha to the reusable workflow. - @label-sync-bot-gtnh
- #7669 Adds label-test.yml and label-test-review-refresh.yml, generated by Label-Sync-GTNH, which call reusable workflows from that repo. - @label-sync-bot-gtnh
- Added: label test workflows
- #7668 Deleted .github/workflows/labels.yml, which used mheap/github-action-required-labels to block merges. - @UltraProdigy
- Removed: pull request label check workflow
- #7645 Removed 12 orphaned .ogg files from assets/gregtech/sounds (e.g. MultiAlgaeFLoop.ogg, MultiVacuumFreezer.ogg) that have registered MTE*.ogg equivalents. - @Algent
- Removed: 12 orphaned sound files
- #7600 Updated MTEAdvDistillationTower tooltip to remove incorrect parallel and size constraints documentation. - @Nana-Sakura
- Removed: Outdated size and parallel constraints description
- Closes GTNH#26096
- #7583 gtPlusPlus Material now overrides IOreMaterial#getPart and delegates to getComponentByPrefix, for use by a change in another repo. - @serenibyss
- #7564 Bumped Horizon-QA devOnly dependency from 0.7.0 to 0.11.0 and set format_version to 2 in the EBF missing_coils.json and valid.json. - @Worive
- #7534 Corrected item display names in lang file; registration names remain unchanged. - @UltraProdigy
- #7528 Updated EHE steam tooltip text in lang file with correct coolant throughput values. - @Sanduhr32
- Closes GTNH#25939
- #7522 Updated EHE tooltip text in lang file to match the machine's new capabilities from PR #6211. - @DylanTaylor1
- #7519 Moved createTooltip() strings in the KekzTech and Kubatech multiblocks, including the EIG mode classes, to StatCollector lang keys. Added @SkipGenerateDescription, new en_US and ru_RU entries in the gregtech, kekztech and kubatech lang files, and new gt.mbtt.structure.* keys. - @Eldrinn-Elantey
- Added: Lang keys for KekzTech and Kubatech multiblock tooltips, Russian tooltip translations
- #7503 Deleted .github/workflows/label-mute-prs.yml, which used pull_request_target. - @MalTeeez
- Removed: Unused MuTE PR labeling workflow
- #7369 Modified tooltip strings in MTECokeOven and MTENuclearReactor. - @DylanTaylor1
- #7364 RecipeGenOre: removed a commented-out condition and an extra semicolon after the Cell_Empty assignment. No behaviour change. - @MLGfruitshoot
- Removed: commented-out code
- Fixed: typo in RecipeGenOre
- #7358 Adds UtilitiesInExcess to the Mods enum and UTILITIES_IN_EXCESS ("utilitiesinexcess") to Mods.ModIDs. - @FourIsTheNumber
- Added: Utilities in Excess mod id
- #7321 Updated English language string for Tiny Pump to display flow rate with '/second' suffix and improved spacing. - @Yoshy2002
- #7247 Updated
MTEYottaFluidTankhatch requirement logic. Renamed all T.F.F.T references to TFFT inMTEHatchTFFT,MTETankTFFT, and language files for consistency. - @DylanTaylor1- Fixed: YOT Tank requiring hatches when YOT Hatch present, TFFT not searchable in NEI due to periods in name
- #7201 Added new Assembler recipe entry in MTERecipeLoader.java for Algae Casing production. - @zaru-noodles
- Added: Algae Casing assembler recipe
- Closes GTNH#25214
- #7197 Removed pollution-related text from MTEThermalBoiler.java tooltip/description. - @DylanTaylor1
- Removed: pollution mention from Thermal Boiler description
- #7140 Switched ChemicalFormulaFilter.normalizeCustomGlyphs to the new GlyphReplacements.getGlyphReplacementsMap() char map, cleaned up CustomGlyphs, and bumped GTNHLib from 0.11.14 to 0.11.16. - @sisyphussy
- Removed: deprecated GlyphReplacements usage
- #7134 Lossless re-compression of 13 PNGs (GUI slot textures, a few item icons, Minecraft unicode font pages); no code changes. - @UltraProdigy
- #7102 Added fastutil 8.5.18 and joml 1.10.8 as testImplementation dependencies in dependencies.gradle. - @UltraProdigy
- Fixed: missing test dependencies
- #7093 Updated gregtech ru_RU.lang (+6096 -639) from ParaTranz. - @Eldrinn-Elantey
- #6979 Adds Horizon-QA 0.5.0 as a devOnly dependency, sets horizonqa: true in build-and-test.yml, and adds ElectricBlastFurnaceFormationTests with valid and missing_coils structure templates. - @Worive
- Added: Horizon QA tests for the Electric Blast Furnace
- #6969 Added Russian translations to
ru_RU.langcovering GT5U.armor.* keys. - @Eldrinn-Elantey- Added: Russian localization for modular armor
- #6858 Adds @Deprecated to GTModHandler.getWater and GTModHandler.getLava, which already had the @deprecated javadoc tag. - @Yoshy2002
- #6855 Updated 30+ multiblock machines with corrected acronyms, machine type classifications, hatch requirements, and casing material specifications to match recent structure reworks. - @DylanTaylor1
- Added: Acronyms for updated machines (OWP, ICB, IBM, etc.), Subchannels to tooltips (length, glass), Mold texture assets
- Removed: Muffler hatch requirement from Thermal Boiler, Input bus requirement from XL Turbines, Foundry machine type from Exo-Foundry, Glass tier limits
- Fixed: Machine tooltip accuracy, Structure definition consistency
- #6850 Adds a commented-out runtimeOnlyNonPublishable entry for MatterManipulator 0.1.35-GTNH in dependencies.gradle for dev environments. - @Auynonymous
- #6840 Set enableModernJavaSyntax=jvmDowngrader with target 8, multi-release versions 17,21,25 and the gtnhlib stubs provider; added jaxb-api compileOnly. Made PLAYERS_BY_UUID and UUID_BY_NAME static in GTProxy, moved the Thaumcraft compat init to preinit, and added @SideOnly(CLIENT) to GuiHandler.getClientGuiElement. - @TheYoingLad
- #6789 Bumped StructureLib to 1.4.37 and changed IStructureElement.getDescription() overrides to getDescription(T context) in StructureChecker, GTStructureUtility and HatchElementBuilder. - @Luca-Guettinger
- #6755 Removed the FluidRecipe.addRecipeMap loop with GregTech5RecipeExtractor from GTClient.onLoadComplete. Also bumped several dependency versions in dependencies.gradle, including NEI, GTNHLib, ModularUI2, waila, AE2 and AE2FluidCraft-Rework. - @Kogepan229
- Removed: GregTech recipe map registration for AE2FC FluidRecipe
- #6741 GTMod @Mod version now uses GT_Version.VERSION instead of "MC1710". Removed the explicit newline escapes from the BartWorks credits string in mcmod.info. - @MalTeeez
- Fixed: mcmod.info failing to parse as JSON
- #6727 Changed recipes with solder fluids to use
SubstituteFluidStack, updated Lead Lined Box to useOreDictItemStack, and changed fluid ordering in NEI cycle preview of soldering fluids. - @TotallyNotOndre- Added: Additional substitute fluid recipes
- #6717 Deleted bartworks.util.StreamUtils and bartworks.API.recipe.BWNBTDependantCraftingRecipe. The PR notes it was not yet tested in a full pack. - @Nikolay-Sitnikov
- Removed: StreamUtils, BWNBTDependantCraftingRecipe
- #6694 Deleted bartworks.API.BioVatLogicAdder and its call in MainMod.runOnPlayerJoined. BWUtil.calculateSv no longer consults the removed material/sievert list and keeps the proton-based fallback, with TODOs to give materials real radiation values. - @Nikolay-Sitnikov
- Removed: unused Radio Hatch code in BartWorks
- #6677 Moved MTETurbineHousingGui from hatch.base to hatch and updated the import in MTEHatchTurbineProvider. Replaced a hard-coded white colour with the DISPLAY_TEXT widget theme and removed a deprecated align call. - @TheYoingLad
- #6648 Deleted GT_MetaGenerated_Item_03, GT_PurifiedWaterRecipes and BlockSuperJukebox, which were empty files. - @Nikolay-Sitnikov
- Removed: empty source files
- #6560 Added BlockCasings14 extending BlockCasingsAbstract with 16 subtype slots, GregTechAPI.sBlockCasings14, registration in LoaderGTBlockFluid, and a placeholder section in Casings. - @chrombread
- Added: BlockCasings14
- #6515 Replaced deprecated CapturingTessellator/TessellatorManager calls with DirectTessellator.startCapturing and stopCapturingToVBO(VertexBufferType.IMMUTABLE). VertexBuffer fields became IVertexArrayObject in BlackholeRenderer, RenderForgeOfGods, StructureVBO and TextureUpdateRequester. - @sisyphussy
- #6450 Corrected quantum circuit casing texture asset (file rename/replacement). - @Auynonymous
- Fixed: Quantum circuit casing visual appearance
- #6434 Deleted the unused texture gui/picture/brain.png from the gregtech assets. - @Ranzuu
- Removed: unused Nanochip Assembly Complex brain icon texture
- #6375 In AssemblerRecipes, the duplicate name tag and book recipes (vanilla leather with damage wildcard vs. NewHorizonsCoreMod ArtificialLeather) are merged into one using OreDictItemStack("leather"). Other duplicated recipes in the file were collapsed the same way (+22/-244). - @TotallyNotOndre
- Removed: duplicate Artificial Leather assembler recipes
- #6373 New AnyCarbon material (formula C, not unifiable, SET_DULL) in Materials and MaterialsInit, registered as an ore re-registration on Carbon, Coal, Charcoal and Lignite. - @TotallyNotOndre
- Added: AnyCarbon oredict
- #6353 Updates GTCLSCompat.java and CLSCompat.java loading message localization strings with better language keys. - @Discreater
- Added: Localization strings for loading messages
- #6281 Updated tooltip strings and abbreviations in multiple machine classes and en_US.lang; fixed Thermal Boiler machine type classification from boiler to heat exchanger; revamped Extreme Heat Exchanger tooltip formatting. - @DylanTaylor1
- Added: TCP abbreviation for TurboCan Pro, SOFC abbreviation for Solid-Oxide Fuel Cells, LST/XLST abbreviations for HP/SC variants
- Fixed: Thermal Boiler machine type classification
- #6218 dependencies.gradle: ModularUI 1.3.1 to 1.3.2 and ModularUI2 2.3.45-1.7.10 to 2.3.49-1.7.10. - @Alexdoru
- Fixed: crash in dev environment
- #6215 Removed the trailing '# пример...' comment from gt.item.circuit_part.glass_fiber.tooltip in en_US.lang. - @Eldrinn-Elantey
- Removed: stray comment text in the Glass Fiber tooltip
- Fixed: Glass Fiber tooltip showing a leftover comment
- #6206 Added 280 fluid localization entries to en_US.lang. - @Eldrinn-Elantey
- Added: fluid name localization keys
- Closes GTNH#24029
- #6189 Updated mining drone language keys to include tier information. - @UltraProdigy
- #6167 Added dimension strings to tooltips in PCB bio chamber, PCB cooling tower, five compact fusions, Volcanus, Exxon, and Large Essentia Smeltery. - @ham-corp
- Added: structure dimensions to machine tooltips
- #6163 Removed the concurrency group with cancel-in-progress from .github/workflows/labels.yml. - @UltraProdigy
- Removed: concurrency block in the labels workflow
- #6122 Changed the DEBUG_MODE_* and PANIC_MODE_* fields in GTRecipeBuilder from private to public so NHCore and other GT5U code can read them. - @boubou19
- #6114 dependencies.gradle: Postea 1.2.3 -> 1.2.5. - @UltraProdigy
- #6072 Refactored GTLanguageManager usage across output hatch and cover classes to use localized chat messages; removed deprecated GTLanguageManager methods. - @Discreater
- Added: Localized chat messages for hatches and covers
- Removed: GTLanguageManager class
- #6067 Removed after:berriespp from the dependencies string in bartworks.MainMod. - @C0bra5
- Removed: after:berriespp dependency
- #6035 dependencies.gradle bumps Postea from 1.2.2 to 1.2.3 to enforce the new primitive interfaces. - @C0bra5
- #6012 Removes the Baubles to Baubles-Expanded dependency substitution block from dependencies.gradle. - @Eldrinn-Elantey
- Removed: Baubles dependency substitution
- #5991 Adds about 50 new entries to ItemList and MetaTileEntityIDs (15516 and up). Renames the old Mega Blast Furnace, Mega Vacuum Freezer, Electric Implosion Compressor, Mega Distillation Tower and Universal Chemical Fuel Engine IDs to Legacy* names, and updates their registrations. Numeric IDs of the legacy entries are unchanged. - @VortexSo4
- Added: controller IDs and items for the structure rework
- #5990 dependencies.gradle: Hardcore-Ender-Expansion compileOnly version goes from 1.13.0-GTNH to 1.12.19-GTNH. - @Caedis
- #5915 Replaces MTEElectricBlastFurnace.ogg and MTEAdvEBF.ogg sound files. - @IX-git
- #5898 Bumped ModularUI2 from 2.3.39-1.7.10 to 2.3.41-1.7.10 in dependencies.gradle. - @chrombread
- #5897 Casings enum gained entries for the BlockCasings1-13 and related blocks, and the BlockCasings classes got javadoc pointing to Casings.asElement(). No multiblocks were ported to it. - @chrombread
- Added: GregTech casing entries in the Casings enum
- #5865 Bumped ModularUI2 from 2.3.37 to 2.3.39. Migrated to the new API: flex to resizer, panel to syncedPanel, setColor to color, and the GenericSyncValue builder and constructor. Removed the marginTop(4) on the power panel and Spinmatron config buttons, and moved MTEHatchMufflerAdvancedGui into the modularui.hatch package. - @chrombread
- #5862 Updated CircuitWraps.java to strip trailing 's' from plural names when generating wrap display names (e.g., Biocellss → Biocells). - @flamingowrangler2869
- Fixed: Double plural 's' in wrap names
- #5852 Bumped ModularUI2 from 2.3.25 to 2.3.35. Changed childIf calls in MTEMultiBlockBaseGui to use suppliers, adjusted the expression result handling in CoverFluidRegulatorGui, and switched FluidDisplayWidget.fluid to value in FuelConfigPanel. - @chrombread
- #5822 Moved the optimize-images job out of build-and-test.yml into its own optimize-images.yml workflow, triggered only on paths matching **/*.png. - @UltraProdigy
- #5806 Postea bumped to 1.2.2. Tile entity transformers now take (tag, world, chunk). The item replacement for gt.blockores uses addSimpleReplacement, and the frame box item handler uses addTransformationHandler returning a boolean. Also bumped NEI, GTNHLib, ModularUI2, AE2, AE2FluidCraft, ThaumicTinkerer and ForestryMC. - @C0bra5
- #5774 MTEEssentiaOutputHatchME now uses IMEMonitor<AEEssentiaStack> and injectItems instead of the removed IEssentiaGrid API. MTEHatchOutputMEBase passes h.getStackType() to MEInventoryHandler. Bumped AE2 to rv3-beta-819, AE2FluidCraft-Rework to 1.5.57 and ThaumicEnergistics to 1.7.27. - @Kogepan229
- #5755 Reverts f5e5c10: drops the chunkapi and endlessids dependencies for NotEnoughIds 2.1.10 and removes ClientMetaManager and the client meta tracker classes. IBlockWithClientMeta registers a NEID ClientBlockTransformerRegistry transformer again, and GTCoilTracker fields go back to private. - @Caedis
- Removed: ChunkAPI and EndlessIDs compatibility
- #5739 Adds the optipng step from GTNH-Actions-Workflows to build-and-test.yml and recompresses the PNG resources under src/main/resources. - @boubou19
- #5734 Adjusted icon scaling parameters in GTPowerfailRenderer and added configurable scaling option to Client config. - @WayneYam
- Added: Powerfail icon scaling configuration
- #5723 Changed the CoreTweaks runtime dev dependency to com.github.GTNewHorizons:CoreTweaks:0.3.3.8-GTNH and removed the ivy repository for makamys releases from repositories.gradle. - @mitchej123
- #5719 Replaced direct string concatenation with localized chat methods throughout base tile entities, pipes, cables, hatches, and transformers. Removed unused GTLanguageManager utility. - @Discreater
- Removed: Unused GTLanguageManager class
- #5704 Replaced hardcoded chat message strings with localized text calls across void miner, linked input bus, antimatter generator, and turbine classes. Removed unused GTLanguageManager static method. - @Discreater
- Removed: GTLanguageManager obsolete method
- #5682 Refactored chat message sending across 40+ files to use GTUtility.sendChatTrans() for server-side localization. - @Discreater
- #5674 Deletes FoundryRecipes and its load() call in MachineRecipeLoader. The recipes move to NewHorizonsCoreMod (PR 1551). - @chrombread
- Removed: FoundryRecipes from GT5-Unofficial
- #5575 dependencies.gradle bumps the devOnlyNonPublishable BlockRenderer6343 from 1.4.2 to 1.4.4. - @UltraProdigy
- #5559 Added localization support to MTETypeFilter tooltip and GTDamageSources death messages with corresponding lang file entries. - @Discreater
- Added: Type Filter tooltip localization, death message localization
- #5556 Bumped Applied-Energistics-2-Unofficial from rv3-beta-754-GTNH to rv3-beta-761-GTNH in dependencies.gradle. - @chrombread
- #5551 Replaced addon.gradle, build.gradle and settings.gradle with build.gradle.kts and settings.gradle.kts. The NBT version is now read through the providers exec API so the configuration cache works without local git tags. Functional test dependencies moved into afterEvaluate, settings convention plugin bumped to 2.0.6. - @eigenraven
- Removed: addon.gradle, build.gradle
- Fixed: Gradle configuration cache failure when git tags are not fetched locally
- #5548 Deprecated GTUtility.sendChatToPlayer and added GTUtility.sendChatToPlayerTrans to handle server-side message translation based on client locale. Updated ~20 locations in multi-blocks to use new method. - @Discreater
- Added: GTUtility.sendChatToPlayerTrans method
- #5544 Updated tooltip text in MTEMagLevPylon to provide clearer description of MagLev functionality. - @chrombread
- #5525 Updated the ModularUI2 version in dependencies.gradle. - @chrombread
- #5496 Adds RandomBoubles (mod id randomboubles) to the Mods enum and ModIDs in Mods.java. - @Ethryan
- Added: RandomBoubles entry in the Mods enum
- #5474 Bumps ModularUI2 from 2.3.20-1.7.10 to 2.3.21-1.7.10 in dependencies.gradle. - @chrombread
- #5443 Bumps ModularUI2 from 2.3.17-1.7.10 to 2.3.18-1.7.10 in dependencies.gradle. - @serenibyss
- #5442 Bumps the ModularUI2 dependency in dependencies.gradle from 2.3.16-1.7.10 to 2.3.17-1.7.10. - @serenibyss
- #5421 Bumps the ModularUI2 dependency in dependencies.gradle from 2.3.15-1.7.10 to 2.3.16-1.7.10. - @serenibyss
- #5408 Bumped gtnhsettingsconvention in settings.gradle from 2.0.1 to 2.0.3. - @boubou19
- Fixed: publishToMavenLocal Gradle task
- #5403 Bumped ModularUI2 in dependencies.gradle from 2.3.13-1.7.10 to 2.3.15-1.7.10. - @serenibyss
- #5383 Bumped gtnhsettingsconvention to 2.0.1 and JUnit BOM to 5.14.1, added junit-platform-launcher runtime deps, and enabled Gradle configuration cache and parallel. Added gradle-daemon-jvm.properties targeting toolchain 25 and regenerated the wrapper scripts. - @eigenraven
- Added: Gradle daemon JVM toolchain file
- #5327 dependencies.gradle: ModularUI2 2.3.12 -> 2.3.13. - @serenibyss
- #5319 dependencies.gradle: ModularUI2 2.3.11 -> 2.3.12. ProgressbarWidgetTheme overrides the new withNoHoverBackground method. - @serenibyss
- #5309 dependencies.gradle: ModularUI2 2.3.10 -> 2.3.11, ProjectRed 4.12.0 -> 4.12.4 (compileOnlyApi), Chisel 2.17.3 -> 2.17.5 (compileOnly and testImplementation). - @chrombread
- #5299 dependencies.gradle: ModularUI2 2.3.9-1.7.10 to 2.3.10-1.7.10. - @serenibyss
- #5298 dependencies.gradle: ModularUI2 2.3.8-1.7.10 to 2.3.9-1.7.10. - @serenibyss
- #5242 Replaced MUI1 ItemVolumetricFlaskGui implementation with MUI2 version (ItemVolumetricFlaskGui.java); flasks can now hold up to their maximum capacity. - @chrombread
- Added: MUI2 volumetric flask GUI
- Removed: MUI1 flask UI implementation
- Fixed: text field flickering in flask GUI
- #5126 Caps Checkstyle task maxHeapSize at 1g in build.gradle and reverts the org.gradle.jvmargs bump from #5125 back to -Xmx2g. - @wlhlm
- Fixed: out-of-memory error in the checkstyleMain CI task
- #5125 Raised org.gradle.jvmargs from -Xmx2g to -Xmx4g in gradle.properties. - @boubou19
- Fixed: out-of-memory errors in CI builds
- #5120 Set remap = false on the @Mixin annotations of the new furnace pollution mixins for Et Futurum Requiem (blast furnace, smoker), Thaumcraft alchemy furnace and Tinkers' Construct FurnaceLogic. - @UltraProdigy
- #5102 Updated localization string in miscutils lang file. - @Miklebe
- #5097 Added tooltip to MTEIntegratedOreFactory describing extra fluid costs for ChemBath mode. - @SST-03
- Closes GTNH#22030
- #5088 Bumped com.github.GTNewHorizons:ModularUI2 from 2.3.2-1.7.10 to 2.3.3-1.7.10 in dependencies.gradle. - @FrostyFire1
- #5067 MTEChamberCentrifugeGui no longer computes x and y from the parent Area. openInfoPanel and openTurbinePanel use relative(parent).leftRel(1).topRel(0) instead of pos(x, y). - @chrombread
- #5066 dependencies.gradle bumps ModularUI2 from 2.3.1-1.7.10 to 2.3.2-1.7.10. - @FrostyFire1
- Fixed: scrolling in ModularUI2 GUIs
- #5058 Bumps ModularUI2 from 2.2.20 to 2.3.1-1.7.10 and adapts to its API changes. GTWidgetThemes.register() is no longer called, theme JSON keys become background:hover and selectedBackground:hover, canApplyTheme(true) becomes canApplyTheme(), TextWidget becomes generic, and MTEMultiBlockBaseGui and RedstoneSnifferGuiBuilder are reworked. 19 more files are not shown in the diff. - @FrostyFire1
- Added: redstone sniffer background texture
- #5009 Added VendingMachine entry and VENDING_MACHINE ("vendingmachine") id to Mods and Mods.ModIDs. - @cubefury
- Added: Vending Machine mod id
- #5001 Adds @SuppressWarnings("PointlessArithmeticExpression") to about 30 recipe loader classes in bartworks and gregtech.loaders.postload.recipes. - @Vlamonster
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Dream-Master (1021), @UltraProdigy (698), @chrombread (431), @boubou19 (250), @Yoshy2002 (206), @AnsonYeung (205), @Ruling-0 (167), @serenibyss (151), @Auynonymous (143), @RecursivePineapple (137), @Eldrinn-Elantey (134), @Luca-Guettinger (132), @TheYoingLad (119), @FourIsTheNumber (114), @Nana-Sakura (101), @tiffit (97), @Nikolay-Sitnikov (93), @DylanTaylor1 (92), @Ranzuu (91), @chochem (90), @MLGfruitshoot (85), @Alexdoru (78), @FrostyFire1 (75), @VortexSo4 (68), @Spicierspace153 (67), @Algent (60), @EnderProyects (57), @GDCloudstrike (56), @Sanduhr32 (55), @Pxx500 (54), @danyadev (53), @sisyphussy (50), @NotAPenguin0 (48), @ham-corp (46), @Angry3vilbot (45), @cubefury (45), @koolkrafter5 (44), @YannickMG (44), @Azusfin (42), @ABKQPO (39), @Caedis (37), @Kogepan229 (32), @DreamYao520 (31), @Vlamonster (31), @loenaaaa (30), @lc-1337 (28), @hinyb (27), @leagris (27), @C0bra5 (26), @kuba6000 (26), @Worive (26), @evgengoldwar (25), @LazyFlesh (25), @Miklebe (23), @fehling135 (22), @slprime (22), @czqwq (21), @Nockyx (21), @querns (21), @seventh-june (21), @iouter (20), @Spaghetti-OberNub (20), @jude123412 (19), @wlhlm (17), @Connor-Colenso (16), @RealSilverMoon (16), @Glease (15), @LazyFleshWasTaken (15), @SST-03 (15), @StaffiX (15), @DarkShadow44 (12), @glowredman (11), @Guvante (11), @mitchej123 (11), @shironakoushi (11), @Discreater (10), @Ethryan (10), @LewisSaber (10), @TotallyNotOndre (10), @vermz99 (10), @zyf051520 (10), @Armisael5 (9), @mllfjn (9), @PLASMAchicken (9), @Copilot (7), @flamingowrangler2869 (7), @OTPANNIEXD (7), @ReignOfFROZE (7), @purebluez (6), @SuperSoupr (6), @BlueWeabo (5), @combusterf (5), @copilot-pull-request-reviewer (5), @GirixK (5), @KleinGrrmpf (5), @kx08 (5), @MassAnarchyy (5), @zaru-noodles (5), @54M44R (4), @Bjdufre1 (4), @Chitak985 (4), @eigenraven (4), @guid118 (4), @JustACasualDay (4), @LooseEthics (4), @mak8427 (4), @MalTeeez (4), @NeutronSelector (4), @Ressed (4), @Taskeren (4), @YoungOnionMC (4), @1328116700 (3), @AbdielKavash (3), @Ableytner (3), @asquared31415 (3), @Cardinalstars (3), @chazzybearr (3), @hiroscho (3), @mamiemru (3), @MarloGr (3), @metalcupcake5 (3), @mhowell9 (3), @NekoNou (3), @noah-cope-dev (3), @NotKaizul (3), @OneEyeMaker (3), @PierceC7 (3), @PlayfulPiano (3), @Quetz4l (3), @thehoblit (3), @YamiKami-Sama (3), @3ricbae (2), @6C-C6 (2), @ah-OOG-ah (2), @AshVz (2), @awolosewicz (2), @bencimp (2), @C-Remilian (2), @ChromaPIE (2), @claude (2), @Cleptomania (2), @CN132DAS (2), @error1number404 (2), @felixfour (2), @Flakxo (2), @Florexiz (2), @glektarssza (2), @hxync (2), @IX-git (2), @june-dev-username (2), @Justxs (2), @khaskelbergTAU (2), @kielxyz (2), @Kynake (2), @label-sync-bot-gtnh[bot] (2), @LunaDziaba (2), @luoyangyuli2001 (2), @Lyfts (2), @mattiasploesch-cpu (2), @MeiTianyou (2), @micvog (2), @miozune (2), @POPlol333 (2), @ROBERT-PARKOURCIVILIZATIONGOD (2), @SKProCH (2), @toenailsin (2), @vnesterovskyi (2), @WayneYam (2), @Windorain (2), @52871299hzy (1), @AbdoDayem (1), @arch1t3cht (1), @arisado (1), @Brabb3l (1), @bumbleBee945 (1), @captainjolt (1), @ChromicRedBrick (1), @codebuff-team (1), @Corexis (1), @couref (1), @dagger8243 (1), @daxsc (1), @DeathFuel (1), @DerekChan65535 (1), @dipo33 (1), @dragongod100 (1), @dvdmandt (1), @EdenExecutive (1), @Elyspio (1), @Emilgardis (1), @Engineer12798 (1), @envoidia (1), @Faotik (1), @feazy-andrei (1), @Fib4ik (1), @Ghoose1 (1), @GhostCoder6969 (1), @GijsvandenHoven (1), @Graymare (1), @GreatBrandon (1), @grimly (1), @GTNH-Afx237v7 (1), @H3stur (1), @hanben02 (1), @harrynull (1), @Iamworking12 (1), @isadora-6th (1), @jamiehu427 (1), @Jesse-njx (1), @JesseSprinkle (1), @JL2210 (1), @JMan-Zx (1), @Junyan721113 (1), @jurrejelle (1), @Keter01 (1), @konradmoesch (1), @kopatych3348 (1), @Krakenrek (1), @Krepyn (1), @Ktmi (1), @KwazziAus (1), @label-sync-bot-gt-nh[bot] (1), @lekior (1), @LeoCav46 (1), @lfpraca (1), @lonei-G (1), @LunarLambda (1), @lynxx131 (1), @Marsietiss (1), @maybemattie (1), @mcmlevi (1), @michaeldoylecs (1), @ModularityEnjoyer (1), @Naos65 (1), @noitacude013 (1), @NovanOfLowat (1), @OmdaCZ (1), @PantACRO4life (1), @philzin (1), @PinkYuDeer (1), @Quaerere-Git (1), @Quollveth (1), @riggzh (1), @Rikka-Kitani (1), @rnp6211 (1), @s-yh-china (1), @Shadowsoftime99 (1), @Sinerum (1), @Sopel97 (1), @Sprite104 (1), @Stars-27 (1), @Steelux8 (1), @StellaCaerulea (1), @Sunrunner37 (1), @SuperficialCake (1), @TechLord22 (1), @telemenar (1), @thedarkcolour (1), @Tuxprogrammer (1), @Tyronadre (1), @Willshaper (1), @Xela10001 (1), @xicoa (1), @youkoaona (1), @ZaykieT (1)