#General Support & Feedback
1 messages · Page 4 of 1
cuz the ores have their own block ID
and writing the json files isnt that hard either
I just observed the behaviour that GT ores dont generate when you have a perfectly and correctly written ore gen datapack
tfw i did something cursed
function createElement(name, protons, neutrons, sym, iso, halfLife, decays) {
if (!name || !protons || !neutrons || !sym) {
throw new Error("Required parameters missing: name, protons, neutrons, and sym are all required.");
}
GTCEuStartupEvents.registry(
'gtceu:element',
event => {
let elem = event.create(name)
.protons(protons)
.neutrons(neutrons)
.symbol(sym);
if (typeof halfLife === 'number') {
elem.halfLifeSeconds(halfLife);
}
if (typeof decays === 'string' && decays.trim() !== '') {
elem.decayTo(decays);
}
if (typeof iso === 'boolean') {
elem.isIsotope(iso);
}
}
);
}
createElement('mana', -1, -1, '★');
works like a charm
Hi. I'm getting an error when trying to run ./gradlew build that there isn't a git repository initialised. I ran git init and it gave me a different error so I assume the process of building is a bit more complex than just running ./gradlew build? Do I have to install IntelliJ and the plugins or is it possible to build without?
you need to clone the project from github - that way you have all the history
thanks
Part 2: I've modified the code and I'm now requiring Biomes O Plenty but it doesn't want to build it. I'm mostly unfamiliar with dependencies so how do I add a dependency to the build? Second image is after adding modCompileOnly(forge.biomesoplenty) in dependencies.gradle but evidently that didn't work (I was mostly just guessing anyway)
look at forge.versions.toml
Thanks. I've tried to do that but I can't figure it out. What does the module and version.ref mean? I've tried with the group id and modrinth maven but it doesn't seem to be working
It gives a different error when I don't include the version which I have near the top so it's definitely doing something but I think at least one of either the module or version.ref is wrong
You need to include the version at the top and how to fetch it at the bottopm
I've got biomesoplenty = "19.0.0.96" and biomesoplenty = { module = "maven.modrinth:biomes-o-plenty", version.ref = "biomesoplenty" } but it still gives the error that the package does not exist.
I just downloaded the specific version of biomes o plenty to check and it has a file at biomesoplenty/api/item/BOPItems.class so idk what's wrong
nvm I managed to fix it
solved
Hey guys! Is this function called every tick? If so, this is a WorkableElectricMultiblockMachine
no
For on-ticks you need to make your own TickableSubscription
or wait 
That one specifically might be called every tick that the machine is running a refcipe
yeah that seems to be the case. If it has a recipelogic and that recipelogic is currently processing a recipe, that method will be called every tick
I love my shield health TickableSubscription
I had to look at monilabs to learn how. Just my opinion but that info only being in the dev section of the wiki
Is a bit odd
Most addon devs wont look at that side
Look how the large combustion engine does it
It needs lubricant to run
what there wrong?
do you have your block class init called?
i have only this
Is there a particular reason as to why registry.accept(new ResourceLocation(entry.modid, entry.planksRecipeName)); works for some mods and not others? (Looking in .../gtceu/data/recipe/misc/WoodMachineRecipes.java it uses it for harder wood recipes. It removes the recipes for Biomes O Plenty but not for The Undergarden or Alex's Caves (haven't test any other mods yet)
It's adding the recipes so I know how I'm passing it is working (through getDefaultEntries() in WoodMachineRepices.java)
registry has the type Consumer<ResourceLocation>
Edit: I think it might be datapack load order? I'm gonna check
Edit 2: nope. making a proper support ticket
Hi! I’m trying to use GTCEU Modern on version 1.21.1 with NeoForge, but I’ve run into an issue. The server only works with version 1.4.6 and below, but the client crashes on those versions. On the client, versions 7.0.0 and above work fine, but then the server fails to start. Could you please help me resolve this?
we've had to drop 1.21 support for a while, working on a new release and backporting all the stuff now
hopefully there will be another 1.21 release in the next few months
Thank you so much, I COMPLETELY forgot I sent a message here🥲
Also Merry Christmas(If its Christmas for you guys)
common archonite w
Alright so,
//Schrabidium 312
event.create('schrabidium')
.protons(126)
.neutrons(186)
.halfLifeSeconds(-1)
.decayTo(null)
.symbol('Sa')
.isIsotope(true)
this is my code for my custom element, which works fine. But I'm curious how to make the chemical symbol its atomic symbol show its isotope, just like how uranium 235 has "U235" in its symbol
Create element:
public static final Element U238 = createAndRegister(92, 146, -1, null, "Uranium-238", "U-238", false);
Create material:
Uranium238 = new Material.Builder(GTCEu.id("uranium"))
.ingot(3)
.liquid(new FluidBuilder().temperature(1405))
.color(0x1d891d).secondaryColor(0x33342c).iconSet(RADIOACTIVE)
.appendFlags(EXT_METAL)
.element(GTElements.U238)
.radioactiveHazard(1)
.buildAndRegister();
this is the java code for both the material and element. I'm pretty sure by creating the material and setting it to be an element it will just take the symbol of the element
Woah, woah, woah, I'm using kubejs Javascipt not actual java(too much for me lol)
Anyways I figured it out, but thanks anyway!
Very important: How do I make an element hazardous?
An element can't be hazardous, a material can. The hazard system isn't insanely fleshed out, but it should still be fine. I think it's just .radioactiveHazard(1) on the material though
Alright, thanks again
Also: How do I use .decayTo()?
Do I just like .decayTo('lead') for example
decayTo("gtceu:lead") should work yeah
I'm not sure if un-namespaced would work or not
So would that work for like just ingots? Or would it also do like say uranium rod -> lead rod for example
That I don't know, you'll have to try, sorry
That's fine, wouldn't need it anyway I was just curious
does the number in .radioactiveHazard() have any effect?
yeah it's the multiplier for how fast it progresses
the hazard system isn't the best fleshed out right now sadly and I'm not very experienced with it
Is there a min and a max?
I'm not sure, I imagine it's just a multiplier so 0 = nothing happens and 9999 = you touch it and die immeidately 
but that's honestly just a guess
Do you know what value uranium has?
Time to find out lol
1
see here
the java and kjs code are basically 1:1
ah
Honestly true
Are multiblock recipes nerfed?
i have a IV LCR that can't run IV recipes
nvm that's just because i was using a single 4A ev thing
//Uranium 239
event.create('uranium_239')
.protons(92)
.neutrons(147)
.halfLifeSeconds(5)
.decayTo('gtceu:neptunium_239')
.symbol('U²³⁹')
.isIsotope(true)
//Neptunium 239
event.create('neptunium_239')
.protons(93)
.neutrons(146)
.halfLifeSeconds(5)
.decayTo('gtceu:plutonium')
.symbol('Np²³⁹')
.isIsotope(true)
So I'm trying to make elements decay into something, but I've had no luck.
the element doesnt use ²
it just uses 2
just normal numbers
and the rest
ive never seen decay so idk
so Im playing 1.20.1 working on my mod pack and for some reason all the bronze recipes and countless others have been invisible on emi, jei, etc. Im so lost and theres no recipes for these items either.
also Im using gtceu 7.0
I did that so that the ingame symbol would show the isotope like it does with the pre-made element U235
Maybe
latest is 7.4.0
it does it regardless I just downgraded in hopes it would fix it to no result
Could be Almost Unified if you have that
THANK YOU
i hope that spoilage (aka decay) will be a feature in 8.0 :)
Thank you🥲
When is 8.0 planned to come out?
there is no ETA currently
We're aiming for "before 2030" 
Tomorrow
If it doesn't come out tomorrow, refer to above again until it does

we had silkposting, now get ready for gregposting 
too high hoped
before 2050
wtf you can't just give out hard deadlines like that
you'll have to wait until 2080 at least
The events of Cyberpunk 2077 will occur in its entirety before 8.0 is out
is there a way to add a material from another mod that has both ingot and plate into every gt machine easily or do i have to manually make every recipe?
Add a GT material for it, and use setignored to set the ingot and plate for the mod to be used
%t gtmwiki
thanks
I'm so confused, so i started adding a few custom materials, and now when i enter the game i crash with this:
I was the big dumb, I had a number in the paranthesis that should not have been there
how can i make materials show like "cool material" instead of "cool.material"
i can figure it out
In /kubejs/assets/gtceu/lang/en_us.json, put something like this in:
{
"gtceu.materials.cool_material":"Cool Material",
"gtceu.materials.other_material":"Other Material"
}
how can i make a custom material radioactive?
@pulsar barn It’s .radioactiveHazard()
thank you 🙏 love you
i was LOOKING everywhere under the sun for it
if you knew how to make acidic, pleze tell
Don’t think it’s implemented sadly
HOPEFULLY in 8.0
alr
The universe might just be black holes when that one comes out though🥲
true
hazard code 
Look at how moni does thier custom acids
lemme look
Cause they have kjs mats with the acidic state
idk where to look for it tho, also i dont know WHICH are acidic
Hexafluorisic Acid?
Smth like that. Not at pc so cant see exact spelling. I ussaly just project wide github search
ah i see
.liquid(new GTFluidBuilder().attribute($FluidAttributes.ACID))
imma joink that
do be cool if i could make dusts hazardous (like bases)
the Material Builder says that it cant be found?
materials.js#1066: Error in 'GTCEuStartupEvents.registry': Can't find method com.gregtechceu.gtceu.api.data.chemical.material.Material$Builder.radioactiveHazard().
how do i add gems for existing materials?
Add a gem property
i can't find it nowhere
also i couldn't find a Java Class for it
oh wait, i found something
Odd
Did you figure it out?
Send your code
i removed it
Oh damn
thats how i moved onto ```js
//The Great Lanthanum Arc
What was the material? Like .dust and etc
.. i mayhaps have only given it a liquid form

In material properties page.........
Have you added stuff to existing materials before?
yes
Its the same logic
Its exactly the same as say adding an ingot or ore property. Just class name difference
Nice
Cheese vein?
did you know that we have code for actual in-world radiation, but it's unused?
Yep :333
Hazard code
the cheese is material seeded by a ayylamos in a attmept to terraform the moon
probably some sort of lithotrophic organisms
hi
I'm having some weird problems with the ME Pattern Buffer + Proxy. Currently have two EBF, one with 2 buffers and one with 2 proxies (one of them isn't in use yet). When crafting items that are available in my ME system, it works just fine., but when there are prerequisites flowing into the EBF while there is a craft already ongoing, the Proxied EBF interrupts its crafting or even turns off completely.
Currently playing Monifactory 0.13, but I doubt that has anything to do with that issue I'm experiencing.
How to use computer, search
very helpful, thank you.
I thought the 7.4.1 update announcement was for 8.0
keep dreaming buddy
🥲
yo how do i advertise my modpack
#1110422284608471091
it says i dont have permission
then don't
If you want to to get Pack Developer role, you must release your pack on any platform, and kindly ask for the role
-# atleast it worked for me, lol
Is there way to fix not downloading mods while modpack importing in SKLauncher? Separately curseforge opens and links with necessary mods too.
no idea what SKLauncher is - try PRISM
This isn't a GregTech problem, ask in your launcher's Discord
Don't use it, please, use publicly trusted launchers (Official, curseforge, modrinth, Prism)
Also ye, piracy I think isn't supported there
who do i ask for modpack role
so what's wrong with this vein?
GTCEuServerEvents.oreVeins( event => {
event.add("kubejs:low_pressure_vein", vein => {
vein.weight(100)
vein.clusterSize(95)
vein.density(2.5)
vein.discardChanceOnAirExposure(0)
vein.layer("deepslate")
vein.dimensions("minecraft:overworld")
vein.biomes("#minecraft:is_overworld")
vein.heightRangeUniform(-63, -38)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.get('coperyrite'), 12)
.oreBlock(GTMaterials.get('dull_derg'), 5)
.veininessThreshold(0.25)
.maxRichnessThreshold(4.5)
.minRichness(0.95)
.maxRichness(6.0)
.edgeRoundoffBegin(10)
.maxEdgeRoundoff(0.25)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.get('coperyrite'))
.density(0.45)
.radius(2.5)
)
})
})
so what happens is it loads in the game, but it's like it doesn't exist. I checked the logs. I'll send em to ya.
@slender briar can i have modpack role pls i have posted it on curse and gifthub🥺 also sorry for ping
well someone said i should ping them'
Pinging the significant other of the server owner is wild
Not saying its wrong, but funny
Fair enough
also who even is the owner
Maya
ik
but like why is she the owner then ?
does she like code gt
or smt
cuz i havent heard anything
just curius
She was an admin back when this server was first made for gtceu (1.12). The the original people left modding
Ownership got put to her
Many packdevs use #1086542724821418005
ah
a ok then
That's why we're there lol, mods are there to help
In that case can forest get the modpack creator role
@reef crane you got a link to the cf/modrinth page?
yea can I get a link
and while, i'm here, history lesson wooo
Maya was a dev for Omnifactory, then eventually Nomifactory, and GTCE, later on, the GTCE addon called Gregicality was made, and she worked on that too
This server was originally the gregicality server, and I don't remember who the owner was, but eventually the server was given to her
She, as well as a few others, also started work on a GTCE fork, known as GTCEu, lead by her
by now, it's almost a full rewrite with very little of CE remaining
I'm not sure if the server was given to her before or after development of CEu started, I wasn't there at the time so idk the timeline exactly
Eventually, Kila ported CEu to modern, and it became part of the CEu org, which ofc is owned by maya
This is very abridged, mostly just the relevant parts
but why isnt kile here tho ?
but whyyyyy
rlly ? never seen him
ye i do, hold on
Done 👍
thx
Welcome to the club buddy
🥳
what GT version?
Question about the "smart item filter" -- im trying to setup some stupid levels of ore process automation but the smart item filter is only configurable for centrifuge, sifter, electrolyzer -- is this it or am i using it wrong? I would like to auto send smeltable dusts to my multi smelter (granted I can guarantee this will be a bad idea down the road but for now I would like to be able to do this...)
yeah, version 1.14.2 i do
7.4.1
forge 1.20.1
it displays the fire overlay which fights with whichever blocks particular overlay
oh there is a low drag update maybee that fixes it
It most liely won't
this is a problem by us I think ,could you make an issue on https://github.com/GregTechCEu/GregTech-Modern/issues mentioning your setup and version number? thanks!
doesnt happen with just gt so ill have to narrow it down it seeems
well that was fast
happeens with embeddium
sorry i wasn't meaning you, i meant the gregtech monitor lol
this seems... strange
okay i think something in kubejs is messed up because this recipe is fine
this one is bugged but it must bee something on my end because its not like this in another instance
What exactly?
what version is reccomended for gtceu and kubejs? 1.21.1 crashes
%t gt121
GT on 1.21.1 is currently outdated, buggy and not playable - work is being done to make an updated port but that might be a few more month
Is there any way to add a chemical equation to an item?
setComponents I think
%t gtmwiki
it costs less eu and time than ut should and gives 12 instead of 3
it seems like it should have something to do with my recipes for modded woods and stuff but i can't find the recipe anywhere in my kubejs folder
Anyone know how I can state a minimum and/or maximum tier of dynamo hatch that can be used in a custom multi? I'm assuming there's something i can add onto this in the pattern?
.or(Predicates.abilities(PartAbility.OUTPUT_ENERGY).setMaxGlobalLimited(1))
where("E", Predicates.blocks("gtceu:fusion_casing").setMinGlobalLimited(10)
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS))
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS))
.or(Predicates.blocks(PartAbility.INPUT_ENERGY.getBlocks(GTValues.ZPM).toArray()).setMaxGlobalLimited(2)))
.where("F", Predicates.blocks("gtceu:superconducting_coil"))
Awesome ty, that's exactly what I was after, also what is your modpack btw? I want to try it out and also assume I can find many how to examples within.
Phoenix forge technologies
Sorry bout the huge wall when the important bit was smol. On phone and the copy paste systsme sucks
Lol all good, I'm used to sifting through things for the treasure, also sweet I'll definitely check it out. This now lets me essentially have an HV multi generator that can output many amps of HV by only allowing HV Dynamo Hatches but producing more than 512 EU/t. Sounds odd but it works.
EMI keeps crashing my game.
seemingly when i open the ender tank recipe
what pack? seems their recipe has more slots than EMI allows
I believe it should be community modern, the recipe seemingly crashing it is a normal 3x3 grid, I have crafted it, and only sometimes crashes
How do i make it so create's andesite alloy is considered the ingot of my custom material? I couldnt find the solution to this in the documentation
GTCEuStartupEvents.registry('gtceu:material', event => {
event.create('andesite_alloy')
.ingot()
.dust()
.components('1x andesite', '1x iron')
.iconSet(GTMaterialIconSet.ROUGH)
.color(0xC7C8B8)
.secondaryColor(0x809587)
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_ROD)
})
GTCEuStartupEvents.materialModification( event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"))
TagPrefix.block.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"))
})```
Pass in creates ingot into your setignored
how do i do it?
%t setignored
oh it doesnt work for blocks? is there a way for me to make it consider the andesite alloy block from create as the block for this material or do i have to bite the bullet
Unfortunately not
For storage blocks it removes recipes w/o replacing the output
For ores it completely crashes
damn
wait so how were storage blocks for vanilla materials done? were they hardcoded? or does this issue happen only with custom materials
ah so its just not possible only via JS?
Not to my knowledge
damn
hmm
i guess I could do a workaround
i noticed that the create storage block for andesite alloy uses the same tag as the generated one for my material
so i could just hide the generated version so only the create one shows up
in jei
I typically change recipe outputs (event.replaceoutput({"output" : "#forge:storage_blocks/andesite_alloy"}, "#forge:storage_blocks/andesite__alloy", "create:andesite_alloy_block"))
I donno how to hide items in JEI or EMI
/**
emi hide
*/
JEIEvents.hideItems(event => {
event.hide(["/advanced_[a-z_]+_canvas_hive/"])
event.hide(["/exspansion_box_[a-z_]+_canvas/"])
event.hide(["/exspansion_box_[a-z_]/"])
event.hide(["/advanced_[a-z_]+_beehive/"])
event.hide({ mod: "productivebees", output: /exspansion/ })
event.hide({ mod: "productivebees", output: /breeding_chamber/ })
event.hide({ mod: "productivebees", output: /incubater/ })
event.hide({ mod: "productivebees", output: /gene_indexer/ })
})
its as simple as giving them a special tag
or that
there are two options
That's one of the options yeah
the tag one is better though because it works both for JEI and EMI
so does that
who uses emi by itself
like seriously
all packs either use jemi
or emi + tmrv
what's tmrv?
i mean my modpack is for 1.20 and i had both JEI and EMI and when i tried the JEIEvent method, it worked only for JEI
so i just removed emi and im using just jei
pft is also 1.20.1 and that works fine with jemi
whats pft
phoenix forge technologies, my pack
might just be unreliable ig, aka works for some not for others
jei api is utter jank
mainly because emi fucks up with tcon recipes
I litterlay can't use just jei for like 80% of my coremod stuff
cause it doesnt allow anything
dont get me wrong i love EMI
but as i said, it doesn't work well with tcon
so for now im sticking to jei
I lowkey
actually love that
Now not what I was going for by any means
but its cool
JEI doesn't let you scroll through material lists in multiblock previews
tcon is just behind the times
and recipe trees (means that I don't have to install JEC)
tcon and jei like each other because they both make all other mods walk on eggshells
lol
JEC mentioned
my beloved
saved my ass literal hours when playing Omnifactory
EMI trees are so much better though
I'm trying to make a fusion inspiried render but it's a rectangle instead of circle
math
is fun
c:hidden_from_recipe_viewers
its universal for all recipe viewer mods: JEI, EMI and others
Is it only for 1.21.1 bc I don't see c:tag used a lot in 1.20.1
moni also uses it
Coolio
fwiw
moni mentioned
What the fuck is a stable father figure lead dev
math goes brr
need to play more moni
me
for pft
I'm also the only dev

i need that omnifactory nostalgia but i love modern gtceu
I meant for moni
but also my gf wants me to play stardew valley lol
any one knows how to add tooltip to simple machine in kjs?
IS there any way I can add new material flag for an existing material? I.e, adding frames to copper
yeah in material modification event
so i tried adding my custom material but it it crashes whenever i open a world 
net.minecraftforge.fml.ModLoadingException: GregTech (gtceu) encountered an error during the done event phase
7java.lang.IllegalArgumentException: gtceu:smelt_dust_andesite_alloy_to_ingot: output items is empty
andesite alloy ingots are empty
looking at your code,
GTCEuStartupEvents.materialModification(event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"))
})
StartupEvents.postInit(event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy")), "create:andesite_alloy"
})
first of all, why is this there twice
second of all, why is the "create:andesite_alloy" after the second closing bracket (and thus outside the fucntion call)
I think if you remove the postInit thing and just move the create tag to inside the setIgnored call (as asecond argument) it'll wrok
i just did this
fair enough. then just move the brackets around
GTCEuStartupEvents.materialModification(event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"), "create:andesite_alloy")
})``` like this?
GTCEuStartupEvents.materialModification(event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"))
})
StartupEvents.postInit(event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"), "create:andesite_alloy")
})
try this, let me know if it works
@main viper you made the setignored tag, do you know why the tag reccomends doing it both in materialmodification and postinit? is that just to ensure that the somemod:material_ingot is 100% generated/loaded?
you've made it backward
it works 
i think
Awesome 
awesome
now to figure out how to replace the generated storage block with the create mod's one
ye
if so, do the same but for TagPrefix.block and using the block's ID
GTCEuStartupEvents.materialModification(event => {
TagPrefix.block.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"))
})
StartupEvents.postInit(event => {
TagPrefix.block.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"), "create:andesite_alloy_block")
})
here
ive been told that doesnt work
right here
wait what
oki
and if not, tell me the crash/error if there is any? because for all intents and purposes, that should just work I think
the one thing I can think of is that you might have to cast it from a block to an item or something like that
wtf avaritia's infinity block's item ID is just avaritia:infinity? 
idk
odd
fair enough
I don't really do packdev or touch mods outside of GTM tbh 
I just dev for GTM and do GTM stuff
except sometimes ghosti asks me to do stuff for CFT, but even then I mostly do GTM addon stuff there
okay so
it doesnt crash but doesnt look like it sees the create block as the part of the generated material
i might have not looked good enough but i didnt see any errors either
just asking, what are you trying to do, i'm a bit confused now
make gt ignore the andesite alloy block?
i want to treat the create's block as the storage block of the custom material im making
basically make GT use create's andesite alloy block instead of gt's autogenned one
try this
thats exactly what i have rn in the script
and what's happening
it removes the generated storage block from GT but doesnt see create's block as part of the generated material
Are you sure? is there no e.g. compression recipe from 9 ingots to 1 block?
so for example the block cant be used in GT machines for recipes
yeah no gt machine recipes for it
oh, me too on my infinity block
maybe thats what jolly meant by "For storage blocks it removes recipes w/o replacing the output"
so it's just breaks the recipe
apparently it also crashes for ores, according to them
can you send your whole file again? I'm gonna have a look
GTCEuStartupEvents.registry('gtceu:material', event => {
event.create('andesite_alloy')
.ingot()
.dust()
.components('1x andesite', '1x iron')
.iconSet(GTMaterialIconSet.ROUGH)
.color(0xC7C8B8)
.secondaryColor(0x809587)
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_ROD)
})
/*GTCEuStartupEvents.materialModification(event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"), "create:andesite_alloy")
})*/
GTCEuStartupEvents.materialModification(event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"))
TagPrefix.block.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"))
})
StartupEvents.postInit(event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"), "create:andesite_alloy")
TagPrefix.block.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"), "create:andesite_alloy_block")
})```
For the block, try doing setIgnoredBlock(...) instead of setIgnored(...) on the second call

uh
TagPrefix.setIgnoredBlock(GTMaterialRegistry.getMaterial("andesite_alloy")) like this?
my code
GTCEuStartupEvents.materialModification(event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"))
TagPrefix.block.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"))
})
StartupEvents.postInit(event => {
TagPrefix.ingot.setIgnored(GTMaterialRegistry.getMaterial("andesite_alloy"), "create:andesite_alloy")
TagPrefix.block.setIgnoredBlock(GTMaterialRegistry.getMaterial("andesite_alloy"), "create:andesite_alloy_block")
})
oh
lmk if that works
@main viper can you update your command to add that you have to use setIgnoredBlock for blocks, and remove the bit about it not working?
i love how the emoji at the beginning actually made me read this sentence in mind as if someone was actually shouting it
needs more caps tho

Wait a second... so a solution for .setIgnored(), was just using StartupEvents.postInit() instead???

I don't 100% understand it, but it seems the soltuion used there is to set ignore on the block "normally' during material modification, and then with the correct block/item on postinit
not 100% sure, and honestly maybe this should work with suppliers atp but w/e
Lemme try it rq
Okay it actually works, wtf
The last thing that I to do for infinity, is to add that black vignette to everything
I copied the code off someone else. I can't remember who it was or what modpack, but I think it is ensuring that the mod is loaded
Actual? Neato
I'll edit once I'm on PC because mobile discord sucks
the halo
i cant add the halo and the shake to infinity components
{
"parent": "item/generated",
"textures": {
"layer0": "gtceu:item/material_sets/infinity/plate",
"halo": "avaritia:misc/halo"
},
"loader": "avaritia:halo",
"halo": {
"texture": "#halo",
"color": -16777216,
"size": 10,
"pulse": true
}
}
you can make a custom fluid still
GTCEuStartupEvents.registry('gtceu:material', event => {
event.create('dimensionally_transcendent_residue')
.fluid()
.iconSet('dimensionally_transcendent_residue')
})
like this
and what if i want to add element and just use .setIgnoredBlock()?

not sure, never used setIgnored at all
i mean
fluids is a type of block
ok
event.create("hyperdegenerate_matter")
.element(GTElements.get("hyperdegenerate_matter"))
.color(0xffffff).iconSet("hyperdegenerate_matter")
.liquid(new GTFluidBuilder().state(GTFluidState.PLASMA).customStill())
heres what i found in moni
yeah, custom still, its a model/texture somewhere
nope
i didn't saw the fluid model anywhere
Try .iconSet("dull")
event.create('dimensionally_transcendent_residue')
.liquid(2000000000)
.color(0xffffff)
.iconSet('dull')
event.create('dimensionally_transcendent_residue')
.liquid(2000000000)
.color(0xffffff)
.iconSet('dimensionally_transcendent_residue')
GTCEuStartupEvents.registry("gtceu:material_icon_set", event => {
// Only exists for a custom fluid texture?
event.create("hyperdegenerate_matter").parent(GTMaterialIconSet.RADIOACTIVE)
})
whaaat
no idea how this works
solved
Same issue
btw guys do yall have any feedback on how could i improve this quest chart visually? as in how could i make the placement of quests look better.
im not very good at making these, which is why im asking
It does work with suppliers.
IDK why they didnt use suppliers
update (its prettier now)
Pretty sure it is wrong channel
ive seen others share their work on their modpacks here so i just assumed i could do that as well

sorry
Is there ANYWAY to disable surface rock generation?
config
event.create('seared_stone')
.ingot()
.components('2x clay', '2x quartz_sand', '2x flint')
.iconSet(GTMaterialIconSet.ROUGH)
.color(0x4E4946)
.secondaryColor(0x242021)
.flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING, GTMaterialFlags.MORTAR_GRINDABLE)
.toolStats(new ToolProperty (1, 1, 128, 1,
[
GTToolType.MORTAR
]
))```
Why does this not create a recipe for the mortar?
hey does anyone know how to control a GT pump with redstone
Go into the controllers ui, what does it show
as long as the pump is in import mode
it will always work
regardless of the redstone on the controller
i tried powering the drum and the pipe block
It might only work on actual machines and not pipes
i mean it connected
sadly pipes don't check for redstone updates
anyone?
idk but u can just make a recipe for it
ive tested this with a material of my own, it seems it just dosent make a recipe for mortars for some reason
as in, a recipe for the mortar tool or a recipe to use the mortar to make it into dust?
ty for reporting, we're discussing it
for now you can add it yourself
Just had an idle thought: will there ever be any rework to cable loss?
The mechanic as a whole seems to tread a very thin line between <stumbling block that causes new players' setups to not work> and <negligible> which isn't very engaging.
Reducing all cable loss in LV down to 1 EU per amp-meter so that insulated cables have zero loss would help alleviate the "why is my EBF not starting?" issue, but not the other half of the mechanic having negligible impact past EV, especially since superconductors become more and more practical to use at scale as you progress.
A more transformative change would be to have energy receivers take cable loss into account and draw additional amps as needed to run the machine but this might introduce balance issues like the old machine pausing/powerfail behavior had.
Any thoughts?
Actually, singleblock machines do this already by drawing 2 amps instead of 1 when their internal energy buffer is low, including situations when cable loss would result in one amp not being enough to run the recipe.
It's probably why we only hear about confusion with cable loss when new players try double-hatching their EBF for their first Aluminium - the 2 LV hatches have a maximum draw of 4A LV so you can only lose up to 8 EU/t before the recipe fails.
On second thought, altering current cable loss values might not do much as I originally thought since the people who have issues with their first double-hatched EBF aren't always using LV cables, nor are they always insulating their cables.
that and also the primary reason for it is to incentivise people to use certain cables over others
will be fixed in the next version
epic win
I'm aware that that's the purpose. It's a perfectly reasonable tradeoff to have in theory - you have to pick between cheap cables or efficient energy transmission. (or one of several points on the spectrum between the two)
The issue I'm pointing out is that of all the cases I've seen, players' interaction with the mechanic is less often "Hmm. Tungsten wire is easier to make than Platinum but has higher loss, so I will [execute plan of action where cable choice is dictated by available resources, application, and other case-specific factors]", it's "oh, my EBF doesn't work and I had to ask in the Discord to figure out why only to discover it was because there were 8 or more blocks between the generator and energy hatches." or "Cable loss? I just pick the wire that's cheap and has high amperage and build the one or two extra generators to make up the difference."
I admit that modern GT modpacks tend to make design decisions that throw a wrench into what balance already exists, Moni included, but at least in the case of Moni those decisions change which option is more or less suited to a given application or make the mechanic easier to avoid entirely, which are distinct from the issue at hand.
The idea is good, but the implementation doesn't always result in the intended interaction.
can you stop a fluid moving through a pipe with redstone
no pipes do not listen to machine controllers
can you stop an output bus from giving fluid to a pipe?
when you use a machine controller on a multiblock, does it stop the multiblock or just that hatch its attached to?
yes, a machine controller can turn off/on an output or input bus/hatch
always the part you place the controller on
only the auto import / export
also: turn off the hatch if you use a robot arm for item movement
and also turn off the input bus/hatch when you place a pattern provider on it - it's not possible to pull from a pattern provider
hm if u turn it off will it still accept items pushed into it?
yes
basically im working out how to threshold control stuff and trying to limit what i do with ae
i was worried that ae was my only option for redstone controlled movement
can u machine control an arm or pump?
there is a button in the machine controller
which one?
oh my god i realised its cause i had the pump on the pipe not the actual block
that is so dumb
why is the maint hatch treated as an additional texture, slightly floating above the multiblock (u can see in the picture the sliver of the pixel behind is there)
but machine covers arent, so they flicker and glitch?
i just got told that them being on doesnt cause lag if its touching an ae or gt part, only if its another mod?
well i found the issue
im on 1.6.4 gtceu
and i guess machine controllers just dont work for other targetted covers
straight up just doesnt work
grandpa version
i assume this was fixed in 1.12
idk modern ver of gtceu ;-;
idiot thing
like was this issue dealt with?
7 month old version, yeah try 7.4.1
yeah 7.0.0 we completely reworked how our models work
Oh the other parts are also the same kind of overlay, they just aren't pushed out quite far enough. I guess.
Same for covers, the offset that's supposed to get rid of z-fighting is too small
Exciting!
Ty
Do you know if the machine cover with pumps and arms was touched?
between 1.6.4 and 7.5.0, probably yeah
at the very least visually
This bit
When it targets another cover on the block, like a pump, you can indeed select that pump on the machine controller ui, but other than that nothing works
No redstone control, and settings are misremembered
yeah I think we fixed that
I've looked around but the online docs don't show a method that works, for custom material creation what is the proper method for default enchantments?
.addEnchantmentForTools(silk_touch, 1)
This does not work as i get the error: Cannot find function addEnchantmentForTools
Error in 'GTCEuStartupEvents.registry': TypeError: Cannot find function addEnchantmentForTools in object com.gregtechceu.gtceu.api.data.chemical.material.properties.ToolProperty$Builder@3a8a774a.
I also do have the 2 suggested classes loaded at the top of the file, being:
Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey');
Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.ToolProperty');
The only difference between this material that fails and another material that works is the addEnchantmentForTools portion.
nvm this seemed to do it, the java docs had something else listed which got me there
hmm, seems odd for it to have changed, but that example did work when I made the page
oh well
I'll make a tiny pr updating it
my goat
Would I be right in assuming KJS cannot handle tiered multis (like the large boiler tier system) by itself and that would be a java route? I've scanned through messages in the disc and I saw some older posts saying just use java but just not sure if that's still the case.
iirc the large boiler "tier system" is just having 2 differnet multis(?)
Yeah we just have 4 different multis
Is it just a recipe modifier editing a shared recipe_type? The tiers don't have different recipe viewer pages do they? As in don't they all run off the same base recipe but scale steam output differently? I don't recall each large boiler having its own recipe type but maybe I'm off on that? I just can't check rn.
ahhh, like that
yeah, the actual large boilers have a java class as callback which has a recipe modifier and its own recipelogic
if you want your machine to do custom logic based on tiers that's more difficult than just "make it faster/slower based on coil tier" or sth like that, then yeah you will need a custom machine class I think
Ah ok, tyvm, I may go that route. I can always just register the tiers as completely separate multis but they just won't share the same recipe page like how the boilers do (and I think fusion reactors?).
no you can have multis with the same recipetype, and then have a recipemodifier attached to the multis that give them different bonusses etc
I'll mess around with modifiers and see what I can come up with.
I think KJS can handle things like that
Monifactory had tiered microverse projectors made through KJS
But yeah, still recipe modifiers
no
even before the java rework they were entirely normal multis
not tiered or recipe modifiers at all
I've made my alchemical crucibles from them
They had custom recipe modifiers
the new ones do
that are made in java
Sry but where can I find which mod launcher version is compatible with which GTCEu modern version? Specifically I need the neoforge version 21.x for GTCEu modern mc1.21.1-7.0.2 as it doesn't show it upon an "ERROR DURING MOD LOADING" just that it didn't find something
%t gt121
GT on 1.21.1 is currently outdated, buggy and not playable - work is being done to make an updated port but that might be a few more month
Idk what you mean with that
Read #1280248963991080980 message
don't try to play GT on 1.21 - play on 1.20.1
Very useful, guess I'll have to go trial and error then
it won't work
even if you get it to load - the current GT 1.21 version is not playable
I have had it work, there were bugs but it was running
%t gt121
GT on 1.21.1 is currently outdated, buggy and not playable - work is being done to make an updated port but that might be a few more month
GT 1.21.1 is a work-in-progress version, try 1.20.1 instead
So I'm trying to add Zirconium to my gt modpack
//Zirconium
event.create('Zirconium')
.element('zirconium')
.ingot()
.liquid()
.color(0xF4F8FF)
.inconSet(SHINY)
.flags(plates, dense_plate, rod, bolt_and_screw, frame, gear, long_rod, block, foil, ring, spring, small_spring, small_gear, rotor, round)
Because the GT Modern Docs says that adding custom elements is only for those NOT on the periodic table, so I was assuming that this is how you do it but it didn't work🥲. The docs also says "For those elements, see GTElements," but I have no idea where to check that so...
Wait it might just be cuz I wrote ".inconSet"
gimme a second
you gotta add a property to it
Nope not it
wdym?
GTMaterials.Zirconium.setProperty($PropertyKey.INGOT, new $IngotProperty().addFlags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_DENSE));
just anywhere in your materials block
you could name your material zirconiumy or smth
but you cant make a material the same name as an existing one
So like this?
//Zirconium
event.create('zirconiumy')
GTMaterials.Zirconium.setProperty($PropertyKey.INGOT, new $IngotProperty())
.element('zirconium')
.ingot()
.liquid()
.color(0xF4F8FF)
.iconSet(SHINY)
.flags(plates, dense_plate, rod, bolt_and_screw, frame, gear, long_rod, block, foil, ring, spring, small_spring, small_gear, rotor, round)
well you'd do it outside the builder of zirconiumy, it's either make a new material thats a close name but not exactly then lang it so it looks the same, or add a property to the existing material
And what would I do if I wanted to add the plate,screw, etc versions of it?
I think it's this
flags are on the material, so not quite
how can i make uh a recipe GUI look like the Assembly Line?
make a rtui file
a what?
🙏
not too sure how you actually bind it, lemme try to find the assline's recipe type
what if
its based on its name
ah wait no
its in the thingimabob
its also gtceu/ui/recipe_type
I use intellj
yeah
did you find anything?
nothing useful sadly
can someone please tell me, how i use a .rtui file?
i have done literally everything i can, and its still not doing damn shit
can someone ping me when if they find something? I can give files tomorrow as im giving up for tongight
Having a really odd issue with a specific person having a crash on startup because of a custom texture for a custom multiblock not being able to be found, although no one else has said issue, it works for me in both CF and prism launchers (and many other people), they have reinstalled prism and the modpack, but the custom texture file just cant be found for them, we checked in the KJS discord and screret tried helping out as well, but nothing seems to work for this one person, any ideas?
its crashing due to
Texture kubejs:block/custom_casings/solid_aluminium_casing/solid_aluminium_casing does not exist in any known resource pack
but the texture does exist for them, in the proper spot, kinda running out of ideas here, wondering if anyone else has run into this at all
they are using prism and have tried installing it through the CF import option and directly from zip
tried nuking prism and installing through flatpak instead of the app image, no luck. Tried switching form jre17 to jdk17, no luck. Tried installing the pack through various means, no luck. File is in the correct location, not corrupted. Completely baffled and just want to play my pack
other custom multis load fine but the first that uses a kubejs texture crashes
Is it? Worked last time for me
How could I remove certain tools from a material? Like removing the flint mortar, for example.
Read the wiki
%t gtmwiki
Tool creation page
I think I found it, thanks
can someone please help me with .rtui files?
my recipe type is called organism_assembly_line and i want it to have the SAME GUI as the assembly line
i have a organism_assembly_line.rtui in kubejs/assets/gtceu/ui/recipe_types and even used a NBT Editor to change the recipe type it mentions to be gtceu:organism_assembly_line, but it does not work
i even changed it to say organism_assembly_line but shit does not work
it would be kind for someone to respond. i've been waiting for like two days
great question. nobody knows, probably.
I believe it is based on name and also some other mystical marker nobody knows how to use :)
so uhh...
yeah alright. if you don't know either, whats the point of asking
Just curious, is there a better way to make isotopes of materials? Like ik gregtech has neptunium built into it, as it's a periodic table element. So I'm curious if I have to make a custom element named, neptunium 247, for example. Or if I can just generate materials for the pre-built neptunium as an isotope
just add a new element, that's what GT does for Pu239 and and Pu241
and all the other isotopes
if you're feeling extra lazy, make a script for it @wheat granite
Alright so I'm good
Thanks

Why can't I insert bettery into battery buffer? Both are low voltage
Ah, its not willed with anything. That should explain it
Have an error while creating a coal like material.
GTCEuStartupEvents.registry('gtceu:material', lpmats => {
lpmats.create('lignite_coal')
.gem(2, 12000)
.ore(2, 7)
.element(GTElements.C)
.color(0x120601).iconSet(GTMaterialIconSet.LLIGNITE)
})
ReferenceError: "GTCEuStartupEvents" is not defined
It seems to just be the file for some reason. no matter what i change I get this error
GTCEuStartupEvents.registry('gtceu:material', event => {
event.create('nexus')
.element("nexus")
.color(0x95abff).iconSet(GTMaterialIconSet.SHINY)
.gem()
.ore(2, 4, true)
.addOreByproducts('lanthanum', 'nexus', 'gold')
.separatedInto('gold')
.washedIn('sodium_persulfate')})
this is how mine looks
you have a tpyo
typo
you wrote .LLIGNITE
can i change the chunk grid value for diff dimensions? like it the overworld the grid is 5x5 and in the end its 3x3 for example
Did GTM version 7.5.0 change the minimum version of Java or Forge that can be used with the mod?
I'm on a server with GTM as the only mod and it launches fine with 7.4.1 but when I swap in 7.5.0 the server crashes.
openjdk version "21.0.9" 2025-10-21 LTS
OpenJDK Runtime Environment Temurin-21.0.9+10 (build 21.0.9+10-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.9+10 (build 21.0.9+10-LTS, mixed mode, sharing)
MinecraftForge v47.4.0 for MC 1.20.1
from reading #modern-dev-talks there appears to be some issue in 7.5
no shot 
oh yep I've definitely got the error they're talking about there
skimmed past it since that channel is actually about development 95% of the time and technical support is redirected here
so best to wait for a 7.5.1
true, but our main mod crashing on our curseforge release is definitely development related 
just downloaded gtceu-1.20.1-7.5.0 and it crashed instantly with something about vanillarecipehandler
Thanks for the report! We're working on it
apologies
7.5.1 will probably come tonight with a fix
https://github.com/GregTechCEu/GregTech-Modern/pull/4579 should fix it 
working on getting that released
hey guys, modpack im on used to use gtceu 6.4, and recently it upgraded to 7.4.1
it also had create vintage (not vintage improvements) and it had a bunch of kubejs scripts to ensure gt compatability with all the create vintage recipes and fluids etc
upgrading to 7.4.1 caused all of these to break, but vintage didnt change version
so im wondering where to start trying to bugfix, as an absolute beginner
cause surely none of the coding for the vintage recipes would have changed given it didnt change version?
a slightly weird thing- some scripts do work with vintage, others dont
Gregtech does nothing with create or it’s addons
So ig it’s either outdated Kube script
Or the addon itself
idrk why it would become outdated when the mod didnt change? im kinda at a loss
is there a changelog of what scripts changed
i already had some stuff with rock breaker recipes kubejs scripts changing
so its probably that
Prolly well the wiki has some Kube script examples
just do i have to go thru the current wiki exhaustatively or do they collect changes somewhere
The errors shpikd tell you
nothing errors sadly it just doesnt work
like nothing in the file gets implemented or errored
sure will attach a pastebin
ill give two pastebins, one that adds recipes and it works, and another that fails
https://pastebin.com/wycXJF0Z This fails
https://pastebin.com/BiD7sSTs This works
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
i dont think its the json file filtering since another script that doesnt work doesnt use it
hey i have no idea whats going on either but thats because i wouldnt even if it was really well done
i have fully no idea
is there a more uh.. canonical way of pulling gtceu recipes out with the intent to add them to non gtceu machines?
it worked in 6.4 but in 7.4 pulls the error :
[23:34:15] [Render thread/ERROR]: mods/create/oreVibratingAdd.js#8: Error in 'ServerEvents.recipes': TypeError: Cannot read property "item" from undefined
oops
Issues referenced:
Couldn't find issue 8 in repo create/oreVibratingAdd.js. HTTP status: 404. Message: Not Found
thank you bot you gave it ur best shot
ANOTHER JUICE PR HAS BROKEN A RELEASE
Is there anything wrong with this? The mutliblock works fine but the autogenerated texture(the casing itself not the overlay) does not work
gtceu/block/casings/solid/machine_casing_solid_steel
should be
gtceu:block/casings/solid/machine_casing_solid_steel
rn you're using minecraft:textures/gtceu/block/casings/solid/machine_casing_solid_steel.png as the texture
I see, thanks
I don't know why but the multiblock tool I use to convert builds into asile format for gtceu multiblocks doesn't work
Keeping saying (no console) despite me downloading python again
Just curious if anyone who uses the tool has solved the issue
There's a mod for it by phoenixvine
Whats the name
kubejs aisle tool. I didn't make it but I did it take it over
Thank you
"material.gtceu.strontium_hydroxide": "Strontium hydroxide",
"gtceu.coker_unit": "Coker Unit"
Anyone know why the lang for coker unit does not work?
thats how you do lang for a recipe type
gtceu.block.coker_unit
is the key for the actual block
Oh, thanks
//#region Ingots
event.create('nine_percent_nickel_steel')
.components('3x nickel','1x austenite')
.ingot()
.liquid()
.color(0xC8C8D0)
.iconSet('METALLIC')
.flags(plates, dense_plate, rod, bolt_and_screw, frame, gear, long_rod, block, foil, ring, spring, small_spring, small_gear, rotor, round, fine_wire)
//#region Dusts
event.create('austenite')
.components('2x steel','1x manganese','1x nickel')
.dust()
.color(0xC0C0C0)
.iconSet('METALLIC')
Also I don't know why, but this is not generating components for my materials
im not sure what i'm supposed to do to my recipes to fix this
i saw that but im not sure what that is or like... do i just put an arbitrary integer after the id?
I'm curios why you are touching base gt recipe modifiers tbh. But yeah I think so
most i've done is make custom recipe modifiers for my java machines
i don't exactly know what that means but i dont think im doing that, i've added a lot of recipes, removed a few, and added some mateerials all in kubejs
odd, based on what the wiki says it shouldn't touch that.
from the page's wording I assumed it only affected java stuff
it didnt like that now it's a red breaking error
before, it just said a error on every recipe but seemed to load them all
it doesn't seem like any recipes are actually broken but the error spam makes it pretty much impossible to see if there are any real ones that break a recipe
Nah, I believe thats a bug that was fixed in 7.5.1
i am using 7.5.1 forge 1.20.1
it's fixed in 7.5.2 which will release probably this weekend, but also if you create recipes in the correct ways (via kjs or the recipebuilder) this shouldn't happen. How are you creating them?
event.recipes.gtceu.assembler('comparabletobees:assembler/spyglass')
.itemInputs(
'#forge:lenses/white',
'#forge:rings/gold',
'#forge:plates/copper',
['#forge:leather', '#forge:canvas']
)
.itemOutputs(
'minecraft:spyglass'
)
.duration(100)
.EUt(4)
inside of a ServerEvents.recipes(event => {})
in kubjes
Nuh uh
KJS serializes the recipe to json with the keys you give it
And you didn't add a key for the color (which you shouldnt do btw)
wdym? even after the optional patch thing?
Well no before that
Trying to add a custom steam grinder recipe and found this layout, are they correct and if not, what changed need to be done to fix these?
.itemInputs('minecraft:raw_copper')
.itemOutputs('2x gtceu:copper_dust')
.duration(200)
.EUt(2)
event.recipes.gtceu.steam_grinder('coal_grinding')
.itemInputs('minecraft:coal')
.itemOutputs('gtceu:coal_dust')
.duration(100)
.EUt(2)
})```
Items tags will be fixed after I get the correct custom recipe layout and this was found just rn at 3 am so haven't been able to test it yet
Any help is appreciated:)
event.recipes.gtceu.macerator() should work for the steam grinder, i believe as long as you put .EUt() as 1 to 8, i believe, but it will also work in single block macerators
are macerator_recycling and ore_crushing exclusively auto generated
well then i've just found .addMaterialInfo(true)
Steam machines can run any LV recipes
So 0 to 32 eu/t
Ty this worked :)
I was gonna make my own fission reactor for my modpack but I'm glad its being added to base gt
So less work for me
i cant add that black vignette to infinity components aaaaaaaaaaaaaaaaa
I will gladly help playtest gtceu modenr 8.0🙏🙏🙏🙏
Ask @jovial pelican
Same issue actually
I've been trying to add vignette to GTCEu materials, but I did not succeed
Is it "normal" that GT energy providers (generators/cables) still push into Flux Plugs from Flux Networks even though the GT energy provider blocks are blacklisted in the config for Flux Networks and don't actually physically connect to the GT energy provider? Not sure if the Flux Plugs are accepting energy from something they shouldn't or GT is pushing energy into something it shouldn't, and not sure if this would be something to go to their issues or something on the GT end. Thought I'd check here first. The Flux Points will not provide energy to something that is blacklisted, but the Flux Plugs will still receive energy from something that is blacklisted.
GTCEuStartupEvents.registry('gtceu:machine', event => {
event.create('steam_separator', 'multiblock')
.machine((holder) => new $SteamMulti(holder, 8))
.rotationState(RotationState.NON_Y_AXIS)
.recipeTypes('centrifuge')
.recipeModifier((machine, recipe) => $SteamMulti.recipeModifier(machine, recipe), true)
.pattern(definition => FactoryBlockPattern.start()
.aisle("aaa", "aaa", "cac")
.aisle("aaa", "ada", "aaa")
.aisle("aaa", "aba", "cac")
.where("a", Predicates.blocks("gtceu:steam_machine_casing")
.or(Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM).setMaxGlobalLimited(1)))
.where("b", Predicates.controller(Predicates.blocks(definition.get())))
.where("c", Predicates.blocks.any())
.where("d", Predicates.blocks("gtceu:bronze_gearbox"))
.build())
.workableCasingModel("gtceu:block/casings/solid/machine_casing_bronze_plated_bricks", "gtceu:block/machines/centrifuge")
})
Is anything wrong with my code here? I'm asking because when I load up the game, the controller block looks like the multiblocks casing without any overlay
did you run datagen?
\
Well "gtceu:block/machines/centrifuge" just fine for @pulsar barn
yeah, it do
Because the controller looks like steam machine casing, I can deduce that it must be an issue with "gtceu:block/machines/centrifuge"
my code:
GTCEuStartupEvents.registry('gtceu:machine', event => {
event.create('cyclotron', 'multiblock')
.rotationState(RotationState.NON_Y_AXIS)
.recipeTypes([GTRecipeTypes.get('cyclotron'), 'centrifuge'])
.recipeModifiers([GTRecipeModifiers.OC_NON_PERFECT, GTRecipeModifiers.PARALLEL_HATCH])
.appearanceBlock(() => Block.getBlock("gtceu:vibration_safe_casing"))
.pattern(definition => FactoryBlockPattern.start()
.aisle("BBBBB", "BCCCB", "BCCCB", "BCCCB", "BBCBB", "ABBBA", "AABAA")
.aisle("BBBBB", "CADAC", "CAAAC", "CADAC", "BAAAB", "BADAB", "ABBBA")
.aisle("BBBBB", "CAFAC", "CDFDC", "CAFAC", "CDFDC", "BAFAB", "BBFBB")
.aisle("BBBBB", "CADAC", "CAAAC", "CADAC", "BAAAB", "BADAB", "ABBBA")
.aisle("BBEBB", "BCCCB", "BCCCB", "BCCCB", "BBCBB", "ABBBA", "AABAA")
.where("A", Predicates.any())
.where("B", Predicates.blocks("gtceu:vibration_safe_casing")
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))
.or(Predicates.abilities(PartAbility.PARALLEL_HATCH).setMaxGlobalLimited(1)))
.where("C", Predicates.blocks("kubejs:obsidian_glass"))
.where("D", Predicates.blocks("gtceu:titanium_pipe_casing"))
.where("E", Predicates.controller(Predicates.blocks(definition.get())))
.where("F", Predicates.blocks("gtceu:titanium_gearbox"))
.build())
.workableCasingModel('gtceu:block/casings/solid/vibration_safe_casing',
'gtceu:block/machines/centrifuge')
})```
But it doesn't make sense because it works for archonite
Okay now IM REALLY confused because the code "works" for him
well not multiblock shit, but overlay
imma redo the structure
the ufck you mean, cannot find object Function
fuck it
sorry, but i gotta work on my own shit
GTCEuStartupEvents.registry('gtceu:machine', event => {
event.create('steam_separator', 'multiblock')
.machine((holder) => new $SteamMulti(holder, 8))
.rotationState(RotationState.NON_Y_AXIS)
.recipeTypes('centrifuge')
.recipeModifier((machine, recipe) => $SteamMulti.recipeModifier(machine, recipe), true)
.appearanceBlock(() => Block.getBlock("gtceu:steam_machine_casing"))
.pattern(definition => FactoryBlockPattern.start()
.aisle("aaa", "aaa", "cac")
.aisle("aaa", "ada", "aaa")
.aisle("aaa", "aba", "cac")
.where("a", Predicates.blocks("gtceu:steam_machine_casing")
.or(Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM).setMaxGlobalLimited(1)))
.where("b", Predicates.controller(Predicates.blocks(definition.get())))
.where("c", Predicates.blocks.any())
.where("d", Predicates.blocks("gtceu:bronze_gearbox"))
.build())
.workableCasingModel('gtceu:block/casings/solid/machine_casing_bronze_plated_bricks', 'gtceu:block/machines/centrifuge')
})
Alright so I turns out that I had a damaged gtceu modern instance. After reinstalling it, I managed to get the control block to actually have a machine overlay
However I don't know why but the multiblock is not building
Like even when I press "u" with jei to view the mutliblock, it does not show any preview
any errors during startup that are being logged?
event.create('naquadrium')
.parent('radioactive_hazard')
can i do this?
radioactive_hazard is registered before that
%t tryitandsee
Isnt radioactive already an icon set?
It is
yeah, but im remaking it
with more violent radioactive secondary effects
because these materials im making require more violent measurements
Not that I'm aware of
Also:
"gtceu.block.steam_separator": "Steam Separator"
Doesn't seem to work
Don't know what I am doing wrong
which glass cannon forgot to update the radioactive iconset for the plate, double plate, spring and turbine blade?
yk what to do
github?
k
Iirc they havent been changed since we switched from zedtech to gt refreshed
i can tell
Man I almost forgot about zedtech
Idk
Its autogen tho
Just gotta rerun the script that generates the overlays
No I meant that the textures are generated with a script
The things that are broken
.. but i physically interacted with the secondary overlays?
Or do you mean that they are layered with scripts?
I'm specifically talking about this
I still am on a blind string on what you are trying to tell me
Might be too late for me to understand
you're saying the overlay textures are outdated, right?
They're generated from the material/secondary textures with this
Or so I've been told
Especially radioactive, which is just noise.
I see
GTCEuStartupEvents.registry('gtceu:machine', event => {
event.create('steam_separator', 'multiblock')
.machine((holder) => new $SteamMulti(holder, 8))
.rotationState(RotationState.NON_Y_AXIS)
.recipeTypes('centrifuge')
.recipeModifier((machine, recipe) => $SteamMulti.recipeModifier(machine, recipe), true)
.appearanceBlock(() => Block.getBlock("gtceu:steam_machine_casing"))
.pattern(definition => FactoryBlockPattern.start()
.aisle("aaa", "aaa", "cac")
.aisle("aaa", "ada", "aaa")
.aisle("aaa", "aba", "cac")
.where("a", Predicates.blocks("gtceu:steam_machine_casing")
.or(Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.EXPORT_FLUIDS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM).setMaxGlobalLimited(1)))
.where("b", Predicates.controller(Predicates.blocks(definition.get())))
.where("c", Predicates.blocks.any())
.where("d", Predicates.blocks("gtceu:bronze_gearbox"))
.build())
.workableCasingModel('gtceu:block/casings/solid/machine_casing_bronze_plated_bricks', 'gtceu:block/machines/centrifuge')
})
PLEASE someone help🙏 I've been stuck on this for quite a bit
What's your issue/error
whats the problem house ?
So I was struggling until I looked into the logs and...
"
[17Feb2026 16:11:11.594] [GTCEu Multiblock Async Thread-0/ERROR][GregTechCEu/]: Error while assembling multiblock com.gregtechceu.gtceu.common.machine.multiblock.steam.SteamParallelMultiblockMachine@56e2bc80: TypeError: Cannot find function any in object Function. (startup_scripts:Multiblock Registration/Machine Registry/SteamAdditionsPort.js#8)"
Issues referenced:
Couldn't find issue 8 in repo Registry/SteamAdditionsPort.js. HTTP status: 404. Message: Not Found
The name of my js file, I'm making the multiblocks from the steam additions gt mod so I don't have to depend on the addon's updates
Therefore, if gt has a big update and the mod breaks, my version will be fine(probably)
.where("c", Predicates.blocks.any())
This line is breaking
Interesting
I mean I don't really see anything out of the ordinary. Let me compare it to my other WORKING mutliblock
Okay so the multiblock now exists , however the controller name is still block.gtceu.whatever
Another minor issue:
When using a terminal to build the multiblock, it says "incomplete" as instead of having a steam input for power, it automatically places a steam input bus
You need to define it in a lang file
Yeah... but I'm familiar with the format as I used "gtceu.block.steam_separator": "Steam Separator"
Which works fine for my friend, Archonite, but does not work for me
is it in a file named en_us.json?
yes
Works perfectly fine for items
// railed_bricks
event.recipes.gtceu.assembler('kubejs:kubejs/railed_bricks')
.itemInputs('1x minecraft:bricks')
.itemInputs('1x minecraft:rail')
.itemOutputs('1x kubejs:railed_bricks')
.duration(60)
.EUt(7)
.addMaterialInfo(true)
any reason why addMaterialInfo is doubling the output for recycling?
event.recipes.gtceu.assembler('kubejs:basic_lava_generator')
.itemInputs('4x #forge:plates/iron')
.itemInputs('2x #forge:glass/colorless')
.itemInputs('4x #forge:dusts/netherrack')
.inputFluids(Fluid.of('gtceu:rubber', 576))
.itemOutputs('simplefluidgenerators:basic_lava_generator')
.duration(200)
.EUt(LV)
.circuit(1)
.addMaterialInfo(true)
this also gives 4 iron dust, 4 glass dust, 4 netherrack dust
what in the world could railed bricks be usefull for
a pretty dumb and oddly specific multiblock to allow this lol, but im noticing a ton of recycling recipes added with addMaterialInfo are very wrong in recycling amounts
Strange that it would only double glass outputs :idfk-some-thinking-emoji:
guys and galls, i think i have a ghost recipe
should be Predicates.any() brochacho
i have this beautiful assesement:
but. i have THREE recipes that include blaze
one of them, has no output
BUT it has the despoil sickle
so its like an inbred of an error and functional
its like.. ferctional or some shit
crisis averted. ghost recipe gone
but what is weird, is the display
this is what the display for the fox recipe shows, but it actually is functional
I got it dw
fire
That blood magic ?
is it intended that mask and gloves are invisible in curios slots
oh no i mean on the player
seem to not render while in curios slots but do in armor slots
What are Low Voltage sources of energy generation beside steam turbine?




