#General Support & Feedback
1 messages · Page 2 of 1
🎉
your file is corrupted - try to download it again
we do NOT support piracy - buy the game
Nah

yes it's spyware
imagine using tlauncher in 2025
Thoughts on being able to right click with an empty bucket on the coke oven and all tanks to empty/fill it?
I'm trying to start the server via powershell 7.5, it gives me the error: could not open `user_jvm_args.txt'
install java 17, you're trying to use java 8 rn
I thought 22 java would work, Now I'll try to get 17
i already have java 17 how can i make ps see this
I had to uninstall all other versions of Java except 17
so uninstall java 22, restart the PC
I don't know if it is necessary but I also deleted the java JRE from the java folder
I fixed everything, I just accidentally closed ps once after it confirmed that forge was installed, so i just deleted everything from serverpack and ran the script again
I'm glad that worked for you
Guys where can i get modpack link
I have an error in kubejs, Is this an bug?
modify_vein.js#19: Error in 'GTCEuServerEvents.oreVeins': The choice of Java method com.gregtechceu.gtceu.api.data.worldgen.generator.veins.VeinedVeinGenerator.oreBlock matching JavaScript argument types (net.minecraft.world.level.block.state.BlockState,number) is ambiguous; candidate methods are:
class com.gregtechceu.gtceu.api.data.worldgen.generator.veins.VeinedVeinGenerator oreBlock(net.minecraft.world.level.block.state.BlockState,int)
class com.gregtechceu.gtceu.api.data.worldgen.generator.veins.VeinedVeinGenerator oreBlock(com.gregtechceu.gtceu.api.data.chemical.material.Material,int)
I beleive kubejs provides values as number but it is requiring integer
send your code?
oh I think veined gen mightve changed
sec
you 1:1 copied the wiki lol
if I had to guess this is the issue
idk if you can use that in veined gen
ik you cant in layered
also you should be adding other mods ores as gtmaterials anyways
@nova mural
In the wiki, It says either GT material or block state so it should be fine
Yeah I copied the wiki, I was still testing stuff out
@dire quiver
hm
(net.minecraft.world.level.block.state.BlockState,number)and VeinedVeinGenerator oreBlock(net.minecraft.world.level.block.state.BlockState,int) seems to be the problem, it is num instead of int
and I'm not sure if it's possible to have int in kubejs
its supposed to autoconvert
rhino
I think you're doing it wrong then
Block.getBlock("xycraft_world:xychorium_ore_stone_blue")).size(1, 1))
are you supposed to supply a blockstate??
.size is for smtn else mayb
idk using non gt mat blocks is fucked up
The veined vein generator requires a mat or blockstate, according to wiki
.size is for a different generator type I beleive
Does anyone know how to register a material in Kubejs without replacing an existing item e.g.
Would like to register a "manasteel" material, however would also like to keep botania's manasteel ingot as the ingot
.fluid()
.element(GTElements.get("manasteel"))
.color(0x669ace).iconSet('metallic')
.flags(GTMaterialFlags.NO_SMELTING, GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_GEAR)
.cableProperties(524288, 4, 0, true);
.ingot.setIgnored(GTElements.get("manasteel"), "botania:manasteel_ingot")```
This isnt working
You typically can't or don't wanna do this
Unless you manually reassemble recipes
Or use like, jaopca gregtech
and add gt manasteel to the manasteel ingot tag
Does anyone know how to make an ore generate across multiple vein layers
vein.weight(20)
vein.clusterSize(25)
vein.density(0.5)
vein.discardChanceOnAirExposure(0.3)
vein.layer("moon")
vein.layer("deepslate")
vein.dimensions("ad_astra:moon")
vein.heightRangeUniform(-40, 20)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(6).mat(GTMaterials.Diamond).size(1, 3))
.layer(l => l.weight(4).mat(GTMaterials.Graphite).size(1, 2))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Diamond)
.placement("surface")
.density(0.4)
.radius(5)
)
})```
It generates in moon stone but stops as soon as it hits deepslate
and if i remove "moon", in generates in deepslate but not moon stone
What are you using to gen the layers
The world layers
Are you using my mod? Gtm world layers? Or kjs layers
@chrome rain
Where does vein.layer("moon") come from
You can only have 1 vein layer I think??? And your "moon layer" probably only effects moon stone replaceable tag (I know it would if you're using my mod, I need to add deep variant layers) if you're not using my mod, and ad astra tag prefix ores ACTUALLY WORK, you just need to add deepslate to #ad_astra:moonstone_replaceables OR make another world layer with both tags
kjs
yes tags are correct
ill show
Did u make a custom oreprefix with kjs and ensure the ores have collision and loottables
event.create('moon')
.targets('#ad_astra:moon_stone_replaceables')
.dimensions('ad_astra:moon')
})```
Do ```js
event.create('moon', 'ore')
.stateSupplier(() => Block.getBlock('ad_astra:moon_stone').defaultBlockState())
.baseModelLocation('ad_astra:block/moon_stone')
.unificationEnabled(true)
.materialIconType(GTMaterialIconType.ore)
.generationCondition(ItemGenerationCondition.hasOreProperty)
.miningToolTag('mineable/pickaxe')
})```
oops lol
the blocks are fine, the ores generatre
GTCEuStartupEvents.registry('gtceu:tag_prefix', event => {
event.create('moon', 'ore')
.stateSupplier(() => Block.getBlock('ad_astra:moon_stone').defaultBlockState())
.baseModelLocation('ad_astra:block/moon_stone')
.unificationEnabled(true)
.materialIconType(GTMaterialIconType.ore)
.generationCondition(ItemGenerationCondition.hasOreProperty)
.miningToolTag('mineable/pickaxe')
})```
alr
it just looks a bit janky how it stops at deepslate
Add another layer here called deep moon with moonstone, deepslate replaceables
right well ill be honest im not actually using moon stone, it was just the example. Heres the actual example im using
Ah
GTCEuStartupEvents.registry('gtceu:world_gen_layer', event => {
event.create('livingrock')
.targets('#timor_ignotia:livingrock_replaceables')
.dimensions('mythicbotany:alfheim')
event.create('livingslate')
.targets('#timor_ignotia:livingslate_replaceables')
.dimensions('mythicbotany:alfheim')
})
GTCEuStartupEvents.registry('gtceu:tag_prefix', event => {
event.create('livingrock', 'ore')
.stateSupplier(() => Block.getBlock('botania:livingrock').defaultBlockState())
.baseModelLocation('botania:block/livingrock')
.unificationEnabled(true)
.materialIconType(GTMaterialIconType.ore)
.generationCondition(ItemGenerationCondition.hasOreProperty)
.miningToolTag('mineable/pickaxe')
event.create('livingslate', 'ore')
.stateSupplier(() => Block.getBlock('kubejs:livingslate').defaultBlockState())
.baseModelLocation('kubejs:block/livingslate')
.unificationEnabled(true)
.materialIconType(GTMaterialIconType.ore)
.generationCondition(ItemGenerationCondition.hasOreProperty)
.miningToolTag('mineable/pickaxe')
})```
was scared of people copying my ideas
lol
anyways if u know botania youll understand this
make a deeplivingslate layer with both replaceable tags
Then it will replace both layer blocks and complete the vein below
so the livingslate block needs #timor_ignotia:livingslate_replaceables & #timor_ignotia:livingrock_replaceables?
the stone is livingrock and the deepslate is livingslate
The layer is basically just saying what blocks it can replace
but then wont it replace livingslate with a livingrock variant of ore rather than a livingslate ore variant?
Generate a ore prefix for both of them
i have
literally cannot see why this wont work
Then it'll work fine it should just know which block to use based on what it reolaced
so its nothing to do with the vein.layers in the custom ore vein creator?
vein.weight(30)
vein.clusterSize(35)
vein.density(0.7)
vein.discardChanceOnAirExposure(0)
vein.layer("livingrock")
vein.dimensions("mythicbotany:alfheim")
vein.heightRangeUniform(-10, 40)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.get('elementium'), 4)
.oreBlock(GTMaterials.Copper, 3)
.rareBlock(GTMaterials.Quartzite, 31)
.rareBlockChance(0.3)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.4)
.minRichness(0.5)
.maxRichness(0.9)
.edgeRoundoffBegin(8)
.maxEdgeRoundoff(0.2)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.get('elementium'))
.placement("surface")
.density(0.4)
.radius(5)
)
})```
The layer is just whichever preset list of blocks you give it to replace blocks with ores
Give it a layer with both tags
Ig let me get up
tried vein.layer({"livingrock"}, {"livingslate"}) earlier but that done nothing too, just caused an error
no you don't give it multiple layers
One layer
When you define your layer you give it multiple tags
oh so instead of giving it multiple layers, u give it 1 layer with multiple tags?
like this?
.targets('#timor_ignotia:livingrock_replaceables', '#timor_ignotia:livingslate_replaceables')
.dimensions('mythicbotany:alfheim')```
yea
and another question, why does vanilla gregtech do this too? is it meant to be some sort of realistic then, cuz if so thats fine. But im yet to find an ore vein that crosses both stone AND deepslate
Notice how it stops generating at stone, and only stays in deepslate
bc theres some ore veins that target the normal stone layer and some that do deeper veins
and with the height assigned to the vein, theres a chance it spawns low on stone layer and cuts off
just the way it is
so theres no veins that go across both stone and deepslate?
I am unsure id have to check
im pretty sure they dont do that
yea it looks like they all cover 1 block
do u think that ores should be able to cross into deepslate as well as stone?
cuz it already does that for tuff, granite etc.
eh
im unsure
its bc diorite and granite are in the stone ore replaceable tag by vanilla I think
you legend
nice
so does that mean i can get rid of the second event.create
.targets('#timor_ignotia:livingrock_replaceables', '#timor_ignotia:livingslate_replaceables')
.dimensions('mythicbotany:alfheim')
event.create('livingslate')
.targets('#timor_ignotia:livingslate_replaceables')
.dimensions('mythicbotany:alfheim')```
Dirt ore? 
livingslate
I mean if you only want one layer that effects all the stones sure
but yes
then how come that doesnt replace the livingslate with livingrock ores
livingslate is the brown for clarity
like what piece of code specifies to replace livingslate with a livingslate variant of ore
the gt ore vein when replacing blocks, I assume, checks if that block belongs to an oreprefix and if it does replaces it with its block to ore variant
ok class
so do i need the livingslate bit then?
tysm
also heres another question
why dont ore veins spawn in the centre of the chunk anymore?>
or maybe they do
by default veins have a 12 block random offset from the chunk center they generated in
its in the gt config
thats getting disabled asap lol
this does not apply to the veins that generate not in clumps
like the snakey ones
iirc
but you can just not add any snake veins
idr their actual name rn
if its dykevein or veinedvein
lmao
whats the most common vein type
there dike, veined, layered, standard, and theres cuboid i think
theres no documentation on the standard one
most are layered
I think
oh cuboid veins are like nh I think lol
naquadah?
sweet
whats the one where everything is mixed in a nice even blend, no layers or patterns just pure randomness
.classic?
like most gtnh veins, they so beautiful
yo deepa are you good with material sets and colours?
monifactory, withers did alot of that for the modpack
iconset stuff
for like infinity/omnium
ah yea, have already made custom iconsets for stuff
just wondering if u know a fix to this
🤨
how do u change the variant of the ore
did a lot of digging through material_sets and couldnt find anything to do with ore blocks
its in the block/material_sets folder
wouldnt that just be a raw block
not raw ore
idk
yes
you dont happen to know what basaltic mineral sand uses as a material_set off the top of your head?
whered u find that
which seems to default to one ore pattern
since theres none
I just searched basaltic on the gh
have u got it set to filter in files rather than just showing names?
sands parent is FINE
just hit enter
well dont click a file just enter on the search bar lmao
but yea it uses SAND material set which inherits FINE's ore pattern
reading
lol
should try that some day
deep what vein type is your favourite
idk if being blinded by gtnh is a good thing but cuboid veins are amazing
layered can be good and bad. the player can grab the "layer" that they wont and practically leave the rest
cuboid forces the player to mine that full vein to get those 12 pieces of calcite in lapis for example, but then u also get the lapis
dude I hated that shit so much
how come
because its easy LOL
I dont wanna mine out whole chunks I can just mine a line for the ore I want
yes gregtech needs to be the opposite of easy
Probably a stupid question, but has it ever been considered to sort the recipes as they appear in JEI/EMI someway (primarily I'm thinking of sorting by EU/t, then Duration, so you can quickly find which recipes are available at which stage)?
I've done this in a private version of the 1.12 one but idk if it's possible in Modern 
Don't think it's possible with modern recipe viewers
If you can find public api ways to do it in emi/jei/rei I would be willing to take a look but afaik there isn't
being able to filter recipes based on tier would also help
Unless I'm completely blanking out this is something I experienced in GT:NH too, yeah; when you check Usage for a specific tier of machine it filters by the max Voltage, can't imagine how they implemented that though
I'll see what I can find when I have time, although I have doubts since recipes are much more dynamic today
Might actually be really simple after all, GTRecipeJEICategory.registerRecipes gets called after /reload too, where the Recipes per category are registered, this should be the place where you'd sort them, I'll try it out if that works tomorrow 
I mean yeah you could pre-sort them but I was assuming you meant have it able to be dynamically sorted
Ohhh, yeah, didn't mean it that way but you'd probably want that so it's best for most users
Yeah that kills it, guess I'll just have it in a private version again
I also am not sure if they actually get registered in order, but I can check later. Sorting every recipe category would increase the time that it takes for the recipe viewers plugins to initialize as well so

True, if I do do it I'll just take some timings out of interest
Though honestly, in regards to the dynamic sorting, it might just suffice to do it as a mod setting (and specify it needs a reload), since even if it was possible to integrate into the Recipe Viewer, it wouldn't really "fit" design-/context-wise
If you don't hear from me about it again I either forgot about it or it didn't really work out, but I'll make sure to get broader feedback on the idea in #modern-dev-talks before I'll do anything substantial
ayo deepa
hi
damn u quick at replying
ok so, made living rock dust as a material, just the dust. So needed the flag to force generate a block. Problem is the block acts as a 9 ingot compressed block (storage block). Do you know how to register a new stone type so it macerates into 1 dust, like how andesite and granite work?
you may need setignored for ingots n stuff? let me check gt code
sweet
Granite = new Material.Builder(GTCEu.id("granite"))
.dust()
.color(0xd69077).secondaryColor(0x71352c).iconSet(ROUGH)
.flags(DECOMPOSITION_BY_CENTRIFUGING)
.components(SiliconDioxide, 4, Redrock, 1)
.buildAndRegister();
its just .dust()
?
how did u register ur material
um
.dust()
.color(0xc6bead)
.iconSet('sand')```
does it gen ingots??
but using the flag GTMaterialFlags.FORCEGENERATEBLOCK makes it gen a block
im trying to make it have a dust and a stone
like a stone block
that macerates 1:1 into the big dust
just like how andesite block macerates 1:1 into andesite dust
oh
you want to add the existing stone block to the material and have it macerate into a dust
or stone into stone dust 1:1 etc.
not the existing stone block
you wanna register a new stone block?
yes, a new livingrock stone type
then i use a helper function to override it with botanias livingrock
already have the helper function, and it works
just dont know how to register the new stone itself
TagPrefix.gemChipped.setIgnored(GTMaterialRegistry.getMaterial("fluix_crystal")) // (2)
TagPrefix.rock.setIgnored(GTMaterialRegistry.getMaterial("sky_stone"), AEBlocks.SKY_STONE_BLOCK) // (3)
TagPrefix.ingot.removeIgnored(GTMaterials.Iron) // (4)
})```
found this on the github
for replacing a rock
but this doesnt work
.dust()
.rock()
.color(0xc6bead)
.iconSet('sand')```
you wanna gen a new block
errrrrm
you may just need to register it with kjs as block
not using gt api
so by the fact that a .rock tagprefix is mentioned in the github, it would lead you to believe that .rock() would work, right?
priv server?
whats the idea here lmao
well basically I hate gregtech
but the mod has a good api and base
so I do a little jank and uh make something else
u hate gregtech?
it doesnt seem like it lol
I dont like gt derivatives game design
so what style of pack r u making
mbd2 spotted
proud to be the 7th downloader of that mod
its still only at 12.8k downloads wow
basically just
gt was designed to be an immersive slow microcrafting game, you make processing lines to dump materials in and process over time while you go engineer other stuff
but the way gt derivatives treat it, its just pushing gt and logistics mods further and further especially with ae2, often creating an unengaging gameplay loop of just spamming patterns or interfaces which completely removes the enjoyment of microcrafting and reaching your goals, and the satisfaction from getting cheaper recipes, more and more design choices just making ae2 the answer to everything expecting you to have it
it mostly just comes down to ae being overpowered
base gt5 only had until IV
gt6 has like, 4 tiers
so you feel that gregtech heavily depends on the existance of ae2?
yea your absolutely correct
no not gregtech, gregtech community versions
not the base mod
the base mod is cool
but people are twisting the design for something it isnt
following the classic expert minecraft design
like in e2e, nomi, doing 9x9 crafting with bullshittium for infinity whatever
it just becomes more and more bs patterning, unfun
well look at packs like DJ2, do you aspire for your pack to be like it?
I don't know much about dj2 but I hear good
yea crafting nonsensical ingots with no meaning
Dimensionally Transcendant Plasma Forge
Magnetohydronamically Constrained Star matter
gtnh moment
real
gtnh at least gives cool multiblocks and puzzle solvey stuff
but im not a fan of waiting sim
so the best bet is to just add 1 single macerator recipe. for livingrock into livingrock dust?
nah man gtnh is great, devs put a lot of work into eye of harmony, forge of the gods etc
amazing renders and visuals
true
aka a shit ton of work
I think the pack is very cool and technologically impressive for sure
but its basically its own game atp
especially for the game version
hardly even modded mc
your adding things no one has added before
yea tru
fairly certain that cursed concrete bucket recipe comes from gtnh? and nows its baked into vanilla gregtech
stuff like that
also the new hatch recipes in ceu
you legend
stem from gtnh?
where they use glue/pe in assembler
yea
yea and the coke oven too?
unsure
wooden tank in gtceu looks straight out of 2015 railcraft
differently functionality albeit
funny actually gtnh just added the primitive pump from ceu
in a recent update?
wait rlly? never noticed that
wonder how a primitive pump would work irl
although tbf the electric pumps arent powered by electric
hygroscopy, probably
capillary flow?
pssh never
no
that requires preexisting water in the system
but things like calcium chloride are deliquescent
is the ae2-o-fied mana pool aesthetically pleasing?
like silica gel
"DO NOT CONSUME"
me when applied botanics:
numerical mana yeoo
saw this while searching for something else pattern related, possibly reel
tbh was discussing this elsewhere, given that gtm seemingly added pollution and hazards on a whim (but have done nothing regarding this), and given that patterned chemlines are the meta over in NH, makes you wonder if the 2 LCR strat is the intended way to play gtm 
2 lcr strat?
2 lcr with a bunch of circuited hatches lamo
Logical conclusion to patterned chemlines
(And platline, etc)
What bottleneck?
Perfect overclock gaming 
Hell, I shoved all of platline in a single LCR for the hell of it on my latest run and it yep its meta for a reason lol
Suppressed: java.lang.NullPointerException: Cannot invoke "com.gregtechceu.gtceu.api.data.chemical.material.Material.hasProperty(com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey)" because "material" is null any ideas
found it nvm
how do i figure out the primary and secondary color of a material
well has somebody made code for stone ingots by chance?
i want to add copper tool for the early game but i cant find how to specify the durability,mining level,etc in .toolProperties() can someone give me some advice?
you could just adda seperate mod or make them in kjs
yea but if gt has the funtionality i rather use it
hey, is there a way to add a day / nighttime requirement in a custom recipe? im trying to add something that has higher efficiency during the night.
Could make a recipe condition that checks for it
im too stupid to know how, but i'll find out lol
I'm making a RecipeCondition rn for checking day/night, you can grab a prerelease from GitHub to use it until 1.6.4/1.7.0 releases once its merged (modern#2885)
What
Adds a recipe condition that checks if its day or night
thank you a lot!
now do ftb quest checking
shit yourself
crying
I'll look into it in morning if you were being serious
MIGHT be above my paygrade though
I made an issue for it a while ago, something id like eventually
gt already has some ftb team api stuff for ownership
so theoretically you can just query the machine owners team for quest completion of an id??
it doesnt.... sound hard
any idea on why this loads fine but the recipe isn't working?
yeah i was just testing
but the fluid tag is wrong
forge:dusts/iron
liquid steel doesnt exist?
hold a steel liquid bucket
and do /kubejs hand
huh its just steel
i fixed it and its working perfectly now
Goodness what ide is that
But yea that should work I think aside from density maybe capping at 1 and being a float iirc
so like maybe *2 and if it's above 1 then just set to 1
it does load but it doesn't look like the veins are denser
i tried this but i can't create a new world
says disconnected to server
there should be an error log
java.lang.RuntimeException: Value 4.0 outside of range [0.0:1.0]
i need to cap the density in some way
Math.min(1.0, newDensity)
ty
strange that the value got to 4 though
if the max is 1 and all i did was doubling
sounds like the setter has the wrong range
no, makes sense - a value of 1.0 means every block is an ore
Bruh I said the issue here
Did not heed my warning!!!
quick question: how do I change the name of my new material so it's not just "material.gtceu.whatever"?
oh thanks
hey so
what's an orePrefix??
makes a block generate ores
not exactly on topic
does you know how to change the colour of an existing material
sorry for random ping btw
dw about it
I don't think you can at all
🤔
maybe
hmm
tried this
GTCEuStartupEvents.materialModification(event => {
GTMaterials.CertusQuartz.setColor(0x9fd5e8)
});```
didnt work
interesting
its not a big issue
however
GTMaterials.RhodiumPlatedPalladium.setComponents("3x palladium", "1x rhodium", "2x lumium")
GTMaterials.RhodiumPlatedPalladium.setFormula('Pd3Rh(SnFe)4(CuAg4)2', true)
GTMaterials.Glowstone.setComponents("1x tricalcium_phosphate", "1x gold")
GTMaterials.Glowstone.setFormula('AuCa3(PO4)2', true)
GTMaterials.get('energetic_alloy').setFormula('Au2(Si(FeS2)5(CrAl2O3)Hg3)(AuCa3(PO4)2)');
GTMaterials.get('vibrant_alloy').setFormula('Au2(Si(FeS2)5(CrAl2O3)Hg3)(AuCa3(PO4)2)(BeK4N5)');
GTMaterials.get('end_steel').setFormula('Fe(SiO2)(Au2(Si(FeS2)5(CrAl2O3)Hg3)(AuCa3(PO4)2)(BeK4N5))');
GTMaterials.get('microversium').setFormula('Fe2(Si(FeS2)5(CrAl2O3)Hg3)(AuCa3(PO4)2)D')
GTMaterials.get('thorium_hydroxide').setFormula('Th(OH)4')
})```
all of this works, but the color one didnt
thought it was strange
yea idk..
thats stolen straight from pansmith btw
I don't think it can be edited
aight ok, sorry to bother
new question, do u know how to register a material and it be a 4 compressed to block rather than 9?
how does gtceu handle the certus quartz registry
block.modifyMaterialAmount(CertusQuartz, 4);
in your case, it'd probably be more like TagPrefix.block.modifyMaterialAmount(FunnyNewMaterial, 4)
Hey guys, me and my friend are starting to get into mv, but we need a nice energy source. We are looking at the large bronze boiler, but all fuels do not look sustainable or efficient. Do you guys have any suggestions?
don't use the LBB
how can i change the durability of some gt tools?
edit the tool property of the material
how?
Benzene is the usual suggestion. Diesel from oil is also a good idea
I think you need to make a new one, but I don't quite know how
Hmm okay, but what is a other efficient power generation method in your opinion?
Aight thanks!
steam age: high pressure liquid boiler with creosote, HP solar boiler
LV age: steam - or naphtha
MV age: benzene or naphtha / diesel
HV age: nitrobenzene or cetane boosted diesel
EV/IV age: gasoline / high octance gasoline
is there any way to extract quest data from a corrupted save onto a backup of the corrupted save
Since it was implemented in 2023 (and subsequently cherry-picked to the 1.20.1 version), when GCYM multiblocks were added to the base mod, there has been the enableTieredCasings setting. However, to this day, this setting isn't used anywhere, and as such does nothing. Is this intended? @coarse basin You seem to be the one who implemented it originally, do you have any idea? Wanted to ask here before making an Issue about it
I'm relatively new to the team, but there are more than a few configs that aren't currently used for anything
frankly this isn't our top priority but whenever we stumble on one of these while refactoring we'll usually either make them function the way it was intended or purge them
Make an issue on GitHub so we can keep track of it
Will do 
Can custom KubeJS steam multiblocks go past 8 parallel recipes? Tried setting it to 32 but still only does 8 at a time
uuuhhh...
my mind doesn't reach back 2 years, sorry xD
's Alright, omergunr's explanation helped enough
I'll wait ~a week if a dev decides to take a look at it before I'll ask if I can try my hand at it
does GTCEUM (wow this mod series is gonna have like 20 letters by 2050) have Tinker's support?
doubt it
well is there a nice way to change all the recipes to either the 144 mB system or the 90 mB system?
Yeah but it'd be a pain to get working right I presume
nevermind lmao I found it apparently there's just a mod that does that
let's hope I don't ever install a third mod that involves melting metal
Is it possible to copy recipes from one mod to gt using kjs?
I need to copy all mana pool recipes to a custom multiblock in my case
I just want to know if there's a work-around instead of just writing each recipe myself
how do i limit items to go into a machine so that only one stack goes and no more
use a robot arm cover with keep exact mode
i do
if it's a input bus make sure to turn the auto pulling off (the power button)
but its not importing
and what is on the other side of the cover - assuming you placed it on the machine
did you place the arm on the pipe? that won't work - in order for keep exact to work it needs to be on the inventory it needs to monitor
eg - place it on the machine and the drawer directly next to it
a
apparently in 1.12 gt crowbars can be used as railcraft crowbars? would be a nice feature to implement in modern as well
Make a GitHub issue
oh true i thought it only had bugfixes
does this mean it loses 75% both ways around? it seems like that's what a literal interpretation would be but idk if its like, one is inverted
yes, this should convert 4 eu to 1 fe and 4 fe to 1 eu. meaning you lose 3 in the process and 3/4 == 75%
if something is inverted, there's probably a bug floating around xD
is there a way to make 64a energy hatches (not laser)?
there are 64A substation hatches, but afaik they can only be used on the substation and active transformers
Is there a way to modify things so that steam loses heat to the environment?
how do i change the mining level of tools?
like the gregtech tools
Hey, my script crashes all the time, on the line of the workableCasingRenderer. The crashlog won't give any useful info too, namely "Can't find method com.gregtechceu.gtceu.integration.kjs.events.GTRegistryEventJS.create(string,string,number,number). (startup_scripts:machines.js#7)"
.rotationState(RotationState.NON_Y_AXIS)
.recipeType('void_extracting')
.tankScalingFunction(tier => tier * 8000)
.workableCasingRenderer('kubejs:assets/gtceu/textures/block/casing/cosmic_stone', 'gtceu:block/machines/item_collector', 1, 1);```
Also, I had the end not ...1, 1); but false); before. I tried using the ones because of the "(string,string,number,number)" error
asking this again, is there any way to change all the fluid recipes so that an ingot is worth 90 mB instead of 144?
via kubejs
god I hate unifying mods
which mods are u using that uses 90mb
I think TConstruct
changes ingots value from 90mb to 144
Yeah but he's asking for the opposite
if he wants the opposite then remove gt from the pack lmao
That's one way to do it
im experiencing an extremely annoying bug rn. Pretty much any block with the tag "forge:needs_wood_tool" actually requires a diamond tool. Theres no mods that use this tag apart from gregtech, and tinkers construct has ONE block that uses this tag, so it feels like a gt only problem but it definitely isnt. Do u know what could be causing this?
Hi guys, I am quite confused how item pipes and ae2 work together, I want to connect my ae2 network to a item input of an machine with a filter to only put a specific item in. This item, however, does not appear in the item input. How do i do this properly?
I do not have the slightest idea sry
to be fair I'm fine with either
I just want to be able to play two good mods together
are the default veins in the kubejs format somewhere?
I play Minecraft on version 1.16.5 with gregtech and projectE mods. I wanted to speed up the mechanisms from the gregtechmi clock from project E, but for some reason the speed at which electricity was supplied to the machine did not increase, unlike the speed of the mechanism itself, although there was enough of it. How can I solve this problem without resorting to a standing mechanism?
Are you thinking of GT Intergalactic or GT4:R?
I just updated my GTCEU Modern version to the latest: 1.6.4 and I am having errors with my multiblocks that causes the game to crash on start, is anyone acquainted with the new version? Log: https://mclo.gs/Up0Iqnt
...actually, let me move this to a dedicated thread, this is kinda big.
how would i make steam singleblocks have fluid capacity?
how do i choose colors for materials cuz they got letters in them and stuff
and the wiki says it can only take numbers
those are numbers, they're just written in hexadecimal
waht
what part was unclear?
.color(0xE79A3F) // Crimson
simple stuff really
0x is telling kubejs its a hexadecimal, then the numbers after are the actual color
correct
hexadecimals are literally numbers (only the base is different), colors are integers where the 1st 8 bits are red 2nd set of 8 are green and 3rd are blue
Are there any guides like the quest book in this mod??
There is no offical gt modern guide no
However, a lot of the stuff from the GT:NH guide still applies
there is the community pack, which has a questbook
Ye. the community pack does a wonderful job
Sorry for the long response, which pack is it and is it for 1.20.1?
the gregtech community pack modern
it is 1.20.1
the non modern community pack is 1.12.1
Why i don't have textures?
Minecraft 1.21.1 3 diаferents boilers
And so with all the textures of the machines
are you using the old outdated version or the beta from github?
yeah no - don't use that version
either use the not yet released beta from github - or play on 1.20.1
Oh, okay, thank you
Anyone have an idea why this:
GTMaterials.Platinum.setProperty(PropertyKey.BLAST, new $BlastProperty(3500, 'higher', GTValues.VA(GTValues.EV), 20*50, -1, -1));
woulds throw this error:
materials/materials.js#8: Error in 'GTCEuStartupEvents.registry': Java class "com.gregtechceu.gtceu.api.GTValues" has no public instance field or method named "__noSuchMethod__".
Issues referenced:
Couldn't find issue 8 in repo materials/materials.js. HTTP status: 404. Message: Not Found
Nevermind brackets instead of parenthesis ughhh
Yeah that was the issue, I used parentheses instead of brackets 🧠
Why does the game crash when I add the .addOreByproducts with a custom material?
event.create('desh')
.ingot()
.ore()
.addOreByproducts('mythril')
.color(0xef8f00)
.element(GTElements.get('desh'))
.iconSet(GTMaterialIconSet.METALLIC)
.flags(GTMaterialFlags.GENERATE_PLATE,
GTMaterialFlags.GENERATE_BOLT_SCREW,
GTMaterialFlags.GENERATE_DENSE,
GTMaterialFlags.GENERATE_RING,
GTMaterialFlags.GENERATE_FINE_WIRE,
GTMaterialFlags.GENERATE_FOIL,
GTMaterialFlags.GENERATE_GEAR,
GTMaterialFlags.GENERATE_ROD,
GTMaterialFlags.GENERATE_FRAME
)
Gave, up, going to manually add recipes
For anyone wondering, I did it by modifying the OreProperty in materialModification
let deshOreProperty = GTMaterials.get('desh').getProperty(PropertyKey.ORE);
deshOreProperty.setOreByProducts('mythril', 'iron');
that is certinely one way, but I never had issues with .addOreByproducts for stuff
i've got lead in my dormant ember
but if it works, it works
I'm very sure the issue is that I am using a custom material, which I am registering at the same time
It works with stuff like iron or copper, but mythril makes it go crazy
I could never get the tool properites to work without modifying after
ah, I see
since I used lead, it just had to look in the gtceu jar
custom materiels in the byproducts cause it
thanks!
I am not 100% sure that's the issue, but I am too infuriated by it to test it out 😆
hi does anyone know the list of names for gcym casings (the ones that are used in GCYMBlocks.CASING_X)
so I am trying to change the recipe for sphalerite in the electrolyzer, I want to make it so that one sphalerite turns into one zinc, and one sulfur.
is this wrong?
event.replaceInput({type: 'gtceu:electrolyzer'}, '2xgtceu:sphalerite_dust', 'gtceu:sphalerite_dust')
})
idk if a space is needed after 2x
i always use a space
i often just remove the recipe then make a new one
okay
how do i add a chance output? I tried adding .withChance() and that didn't work
.chancedOutput('kubejs:copper_vein_traces', 3500, 1)
idk what the second number means, but if it's 0 it crashes you
first number is chance 1-10000
with 10k being 100% chance
so then it would look like this,
event.recipes.gtceu.electrolyzer('sphalerite_dust')
.itemInputs(
'gtceu:sphalerite_dust'
)
.itemOutputs(
'gtceu:sulfur_dust',
'gtceu:zinc_dust',
)
.chancedOutput('gtceu:gallium_dust', 1500, 1)
.duration(120)
.EUt(15)
?
looks right
how do i make it so my recipe can use the steam macerator?
I'm looking at the wiki and see nothing on it so that's why I am asking here
as long as it is a lv recipe
it works
event.recipes.gtceu.macerator
are the recipes that the grinder uses
alrighty! thank you
glad to help
so I am building a few multiblocks, and I wanted to ask...
how should my aisle look? my multiblock is currently brick on the bottom layer, the second layer has 4 bronze casings in the corners, and an input bus, output bus, input hatch and controller in-between those, then the top layer is all bronze casings
the first aisles from the bottom is the first layer
.aisle("QGQ", "CCC", "QGQ")
.aisle("G9G", "COC", "G9G")
.aisle("QGQ", "C@C", "QGQ")
the row where the @ is, is the very bottom layer of the multi
when making an issue on the repo, "latest version" means release, not dev, correct?
finished writing issue report before response, so assuming it means release
what version of jei works with gregtech ceu 1.21? i've tried newer and older, they haven't worked so far
Are you using snapshop or curseforge release
@random ermine
curse
install the version from github releases, it's up to date.
where do i find hte 1.21 version?
nvm found it
tried with jei, also doesn't work
here's the log too
is there a way to speed up the coke oven / primitive blast furnace? would i have to write a java addon for it?
just modify the recipes
cable property
sure
but like how do i write the cable property?
because what i have is this which is wrong.
GTCEuStartupEvents.registry('gtceu:material', event => {
event.create('andesite_alloy')
.ingot(2)
.components('4x gtceu:andesite_dust', '1x iron')
.color(0x839689).iconSet(GTMaterialIconSet.DULL)
.cableProperties(8)
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_SMALL_GEAR, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_LONG_ROD)
})
no clue why it's in the dust section but here you go
last parameter isn't required, false by default
OOH
yeah that's weird
cool, so now I am getting the error:
Cannot invoke "com.gregtechceu.gtceu.api.data.chemical.material.Material.hasProperty(com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey)" because "material" is null
you're trying to create and use materials in the same event handler
are the coke oven and primitive blast furnace kinetic machines? or how do i create a machine like that?
oh wait i'm dumb sorry
so i have andesite alloy wire, but cables were not created.
they are the correct voltage, and have the proper amps per tier, but there aren't any cables.
is this a superconductor?
is the boolean value set to "true" in your cable properities
also can just look at it's tooltip in game
yeah
if you want cables
turn the boolean to false
super conductors don't have cables because they don't need them
oh okm
where can i find an example of a custom steam machine?
because i want to make a couple of machines
because when i try to do this:
GTCEuStartupEvents.registry('gtceu:machine', event => {
event.create('steam_electrolyzer', 'steam', true)
})
it gives me the error:
Error in "GTCEuStartupEvents.registry: can't find method
okay
so I want my structure to look like this:
It's got steam machine casings, all around the sides except the corners, it's got bronze machine casings in the corners, bricked bronze casings as the bottom layer, bronze pipe casing makes up the inside, and bronze firebox casing and the top execpt for the corners and middle.
how would i write this?
bottom layer is always on the bottom like this
.aisle("CDDDC", "BDBDB", "BDEDB", "BBDBB", "BBBBB")
.aisle("CDDDC", "CBBBC", "CEFEC", "BDDDB", "BBGBB")
.aisle("CDDDC", "BDBDB", "BDEDB", "BBDBB", "BBBBB")
.aisle("BCCCB", "BBHBB", "BBCBB", "BBBBB", "BBBBB")```
very bottom layer is the bottom
think of the aisles as looking at it from the top as a 4d being
i assume the first layer is 100% the steam machine casings
so the first set of aisles would be .aisle("SSSSS", "SSSSS", "SSSSS", "SSSSS", "SSSSS")
now that you have gone through Professor Phoenixvine's crash source on multiblock aisles
use this
this is a mod from my friend oktawia
it did not exist before she started helping me with PFT
that.. could've been a PR.
that should've been a PR.
no, for GT
ohhh, do you mean oktawia should have done a pr on gtm to make this an offficial integration?
(except when you tell it not to be ;) )
anyway making this an addon to the integration, as a separate mod
is about the worse idea I've seen so far
sorry but it's been explicitly stated that if you make this you should PR it
also why does it mention KJS at all when it doesn't use it
it gives kubejs aisles
she knew nothing about any of this btw
just started after i asked her for help, she said she wanted to help me with my modpack
mhm, I can see that
because why the hell does she send the data as a STRING and then REFORMAT IT AFTER ANYWAY
or why does it go to the server at all
it doesn't need to
no wait it gets handled on server and sent to client
htf does this work? I copied the two corners but nothing happnened.
I have no idea how it even runs tbh
wait this is the same person who made crazy ae2 addons
oh no
figured it out
hahhahahha
you can thank me for a few of the ideas
🫡
no I said "oh no" because the code (and the ideas) suck in that one too
well, it works so ehhh
like, an ae2 addon does nOT NEED A MOB SPAWNER????
she is just having fun with it tbh
because it's a separate pattern provider
not anymore
and not just an upgrade card
hasn't been for a while actually
both are awful ideas that destroy the intended solutions in the mod
like 8 versions
it's just a pattern modifer for non subnets, then you also just need a upgrade card on the storage bus in the subnet to work with subnets
why does an ae2 addon have that
got an error:
[14:57:42] [ERROR] ! example.js#30: Error in 'GTCEuStartupEvents.registry': TypeError: Cannot find function where in object com.gregtechceu.gtceu.api.registry.registrate.MultiblockMachineBuilder@90772f7.
idk
btw, it was purely just ae2 stuff until she wanted to help with PFT
i suggested the amperage meter
thought it would be cool to see all the greg power stuff being seen through her ae2 displays
that's fine but it also has nothing to do with AE2 and is already in GTM
tbh i'm not using the kubejs aisles tool mod
i am using her python script that turns building gadgets template data into aisles
which has the limit of the seclection range of the copy/paste gadget
i will say the energy exporter is just ehhh
bassicly a super op (no tax) eu p2p
well i just realized what the problem was lol.
was it a simple thing?
the crazy pattern modifier (the main part of the circuited system) in PFT is locked to uev
example.js#32: Error in 'GTCEuStartupEvents.registry': TypeError: Cannot find function where in object com.gregtechceu.gtceu.api.registry.registrate.MultiblockMachineBuilder@64c555f7.
where it's pretty much useless
one of the .where predicates is messed up it seems
can you post your predicates?
yeah
.where("A", Predicates.blocks("gtceu:bronze_machine_casing"))
.where("B", Predicates.blocks("gtceu:bronze_firebox_casing"))
.where("C", Predicates.blocks("gtceu:steam_machine_casing"))
.or(Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setMaxGlobalLimited(1))
.where("D", Predicates.blocks("gtceu:bronze_pipe_casing"))
.where("E", Predicates.blocks("gtceu:bronze_brick_casing")))
.where("K", Predicates.controller(Predicates.blocks(definition.get()))
why does it go a,b,c,d,e,f,k?
lol the K was me
is the k actually in the aisles?
yeah
Here's the updated code
event.create('large_steam_electrolyzer', 'multiblock')
.machine((holder) => new $SteamMulti(holder, 4))
.rotationState(RotationState.NON_Y_AXIS)
.recipeType('electrolyzer')
.recipeModifier((machine, recipe) => $SteamMulti.recipeModifier(machine, recipe), true)
.pattern(definition => new FactoryBlockPattern.start()
.aisle("ABBBA", "BCCCB", "BCCCB", "BCCCB", "ABBBA")
.aisle("ACCCA", "CDDDC", "CDDDC", "CDDDC", "ACCCA")
.aisle("ACCCA", "CDDDC", "CDDDC", "CDDDC", "ACCCA")
.aisle("ACCCA", "CDDDC", "CDDDC", "CDDDC", "ACCCA")
.aisle("EEEEE", "EEEEE", "EEFEE", "EEEEE", "EEEEE")
.where("A", Predicates.blocks("gtceu:bronze_machine_casing"))
.where("B", Predicates.blocks("gtceu:bronze_firebox_casing"))
.where("C", Predicates.blocks("gtceu:steam_machine_casing"))
.or(Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setMaxGlobalLimited(1))
.where("D", Predicates.blocks("gtceu:bronze_pipe_casing"))
.where("E", Predicates.blocks("gtceu:bronze_brick_casing")))
.where("F", Predicates.controller(Predicates.blocks(definition.get()))
.build())
.workableCasingRenderer(
"gtceu:block/casings/solid/machine_casing_inert_ptfe",
false
)
I changed K to F
okay, i will see if that crashes me but one thing first
why are you trying to use a recipe type that almost ALL the recipes either use or give fluids
you can't do that with steam machines
unless you write a new java class for em
oh i guess that's fair. damn was hoping I could make an early game way to turn sphalerite and galena into sulfur and lead and sulfur and zinc respectfully.
I suppose I could add those recipes to a centrifuge huh?
you could, but electrolyzer works fine
i just spaced about the ore recipes that don't deal with fluids
also, you did load the steam machine java class right?
yeah
not sure why you decided to make the block's rendering ptfe casings since those are hv
but hey, it works
.machine((holder) => new $SteamMulti(holder, 4))
.rotationState(RotationState.NON_Y_AXIS)
.recipeType('electrolyzer')
.recipeModifier((machine, recipe) => $SteamMulti.recipeModifier(machine, recipe), true)
.pattern(definition => FactoryBlockPattern.start() // Corrected: Removed 'new'
.aisle("ABBBA", "BCCCB", "BCCCB", "BCCCB", "ABBBA")
.aisle("ACCCA", "CDDDC", "CDDDC", "CDDDC", "ACCCA")
.aisle("ACCCA", "CDDDC", "CDDDC", "CDDDC", "ACCCA")
.aisle("ACCCA", "CDDDC", "CDDDC", "CDDDC", "ACCCA")
.aisle("EEEEE", "EEEEE", "EEFEE", "EEEEE", "EEEEE")
.where("A", Predicates.blocks("gtceu:bronze_machine_casing"))
.where("B", Predicates.blocks("gtceu:bronze_firebox_casing"))
.where("C", Predicates.blocks("gtceu:steam_machine_casing") // 'C' can be a casing OR a specific hatch
.or(Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setMaxGlobalLimited(1))
)
.where("D", Predicates.blocks("gtceu:bronze_pipe_casing"))
.where("E", Predicates.blocks("gtceu:bronze_brick_casing"))
.where("F", Predicates.controller(Predicates.blocks(definition.get())))
.build()
)
.workableCasingRenderer("gtceu:block/casings/solid/machine_casing_inert_ptfe", "gtceu:block/machines/compressor", false)```
no, i had to do some tweaking
also gave the controller a face render for you
are you sure you want the render to be ptfe thou?
because it also does this
could be smth like this instead
.workableCasingRenderer("gtceu:block/casings/steam/bronze/bottom", "gtceu:block/machines/electrolyzer", false)
oh, and do you know how to make it not be called gteu.block.large_steam_electrolyzer
example lang file
hmm
how do i change the tier of a recipe?
do i just remove and readd the recipes?
i have seen some complicated scripts to do it, but i ussaly just remove the recipe than make a new recipe
sph electrolyzing is mv?
ulv is the same recipe tier
steam multiblocks and high pressure machines can run lv recipes
oh ok
weird, yeah it's not crafting
i'm stupid
I forgot to give it steam
now it's working
noice
do you have a pre steam multiblock that sieves?
or do you have a sieve in steam that i could use?
i have not figured out primitive machines
okay
.machine((holder) => new $SteamMulti(holder, 4))
.rotationState(RotationState.NON_Y_AXIS)
.recipeType('sifter')
.recipeModifier((machine, recipe) => $SteamMulti.recipeModifier(machine, recipe), true)
.appearanceBlock(GTBlocks.CASING_PRIMITIVE_BRICKS)
.pattern(definition => FactoryBlockPattern.start()
.aisle("BBBBB", "CCCCC", "CCCCC", "CCCCC")
.aisle("BCCCB", "CDDDC", "CDDDC", "CDDDC")
.aisle("BCCCB", "CDDDC", "CDDDC", "CDDDC")
.aisle("BCCCB", "CDDDC", "CDDDC", "CDDDC")
.aisle("BBBBB", "CCECC", "CCCCC", "CCCCC")
.where("B", Predicates.blocks("gtceu:bronze_firebox_casing"))
.where('C', Predicates.blocks('gtceu:steam_machine_casing').setMinGlobalLimited(10) // Corrected line
.or(Predicates.abilities(PartAbility.STEAM_IMPORT_ITEMS).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM).setMaxGlobalLimited(1))
.or(Predicates.abilities(PartAbility.STEAM_EXPORT_ITEMS).setMaxGlobalLimited(6)))
.where('E', Predicates.controller(Predicates.blocks(definition.get())))
.where("D", Predicates.blocks("gtceu:steel_frame"))
.build())
.workableCasingRenderer("gtceu:block/casings/steam/bronze/bottom", "gtceu:block/machines/sifter", false)```
steam sifter
(in my pack it's used to use cobble, stone, sand, and gravel for some basic resources but it also looks like a sifter)
would assume it's just called macerator
okay
if there is no mob spawner inside it wont add any mobs to the network, so it wont work, it will assemble tho, but this does not matter
How would I make an abs recipe?
.circuit(2)
.itemInputs('32x gtceu:unrefined_aluminfrost_dust', '1x gtceu:cobalt_dust')
.inputFluids('kubejs:frost 6000')
.itemOutputs('32x gtceu:aluminfrost_ingot')
.duration(4200)
.EUt(100)
.blastFurnaceTemp(1700)```
wait i am silly
wouldn't it litterly just be alloy_blast_smelter recipe type with the .blastFurnaceTemp(1700)?
idk why i thought why they would be different
hey i was just wondering whether GregTechCEu Modern has any known incompatibilities? im trying to make a mod pack with it and it always crashes or does weird stuff, but then works normal once i remove greg tech
it starts doing this, if that helps with anything
1.19 is no longer supported
the current version is 1.6.4 on Minecraft 1.20.1 using Forge
or the testing build on github of 1.7.0 for Minecraft 1.21 with Neoforge
but the testing build seems to still have some bugs (missing texture on quad pipes etc)
i see, so are there no big incompatibilites?
because even on 1.20.1 my modpack would constantly crash
I would say that all GTCEu Modern based modpacks are on 1.20.1
I have played Monifactory, Sky of Grind and Star Technologies
ohh - also the #modern-community-pack
is there a config to allow GT ores to drop multiple raw with fortune?
There is not
there were, issues with the intended system
so it was not fully implemented
Hey, im tryin to figure out untagged filtering on the tag filter,
the help says that $ can be used to specify untagged, but i cant for the life of me figure out the syntax of it
to further explain, im trying to have all fluid pipes go to a specific inventory, but the fluid pipes dont have an item tag, just a block tag (that seems to get ignored)
ive tried
gtceu:*fluid_pipe $gtceu:*fluid_pipe $gtceu:potin_small_fluid_pipe (just to see if i could get 1 specific fluid pipe to filter) $gtceu:potin_small_fluid_pipe$ (to see if it requires enclosing) gtceu:$potin_small_fluid_pipe
and various other formats to no avail
edit: Even wrapping the untagged character in wildcards *$* doesnt seem to filter anything
Edit2: okay, so just using $ filters everything that is untagged, is there a way to filter beyond that, without having the use the very limited standard item filter (with only 9 slots?)
$ for untagged means $ will match ANY untagged item
Damn, is there any way to filter by item name with Greg tech covers? Other than the previously mention standard 9 slot filter?
Normal item filter.
putting this here for others:
It is relatively simple to add item tags to items if kubejs is installed (which, from what i've seen, most if not all modpacks include)
in Instances\[modpack]\kubejs\server_scripts edit tags.js with the following
event.add("someNameSpace:Some_Random_tag", [regex of items or item registry name])
For the specific example i needed
event.add("gtceu:fluid_pipes", /.*fluid_pipe.*/)
if tags.js doesnt exist, create it and put the following
ServerEvents.tags('item', event => { event.add("gtceu:fluid_pipes", /.*fluid_pipe.*/) })
(shout out to all those people that'll close their own forum posts saying they found the solution without posting the solution - so anyone with that very specific, niche issue, gets a glimpse of hope but has it destroyed in the same instant) (my very niche call out of a very niche feeling, i hope y'all understand)
hi yall, wrote this code rq but it crashes my game, figured out its cuz of the acids but i cant tell why
GTCEuStartupEvents.registry('gtceu:material', event => {
//existing elements
GTMaterials.Copper.addFlags(GTMaterialFlags.GENERATE_GEAR)
//new elementsandshi
//andesite_alloy
event.create("andesite_alloy")
.ingot()
.color(0xc7d2c6).iconSet("dull")
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_ROTOR, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.GENERATE_SMALL_GEAR)
.components("9x wrought_iron", "andesite")
//nethersteel
event.create("nethersteel")
.ingot()
.color(0x75511e).iconSet("metallic")
.flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_ROTOR, GTMaterialFlags.GENERATE_FRAME, GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.GENERATE_SMALL_GEAR)
.components("9x wrought_iron", "andesite")
//diluted_sulfuric_acid
event.create('diluted_sulfuric_acid')
.fluid()
.color(0xffffb3)
.fluidTemp(300)
//diluted_nitric_acid
event.create('diluted_nitric_acid')
.fluid()
.color(0xffeb99)
.fluidTemp(300)
})
diluted sulfuric acid already exists
you can't create a material with the same ID as an existing one
i did
idk then imma rename it to diluted sulfuric acid solution
ok then thx for the help as always
👍
well i renamed both of the acids and now it says it dosent find temp or sum
[19:12:37] [INIT] KubeJS 2001.6.5-build.16; MC 2001 forge
[19:12:37] [INIT] Loaded plugins:
[19:12:37] [INIT] - dev.latvian.mods.kubejs.forge.BuiltinKubeJSForgePlugin
[19:12:37] [INIT] - dev.latvian.mods.kubejs.forge.BuiltinKubeJSForgeClientPlugin
[19:12:37] [INIT] - dev.latvian.kubejs.mekanism.MekanismKubeJSPlugin
[19:12:37] [INIT] - com.lowdragmc.lowdraglib.kjs.LDLibKubeJSPlugin
[19:12:37] [INIT] - dev.ftb.mods.ftbxmodcompat.ftbquests.kubejs.KubeJSIntegration
[19:12:37] [INIT] - dev.ftb.mods.ftbxmodcompat.ftbteams.kubejs.FTBTeamsKubeJSPlugin
[19:12:37] [INIT] - qinomed.kubejsdelight.KubeJSDelightPlugin
[19:12:37] [INIT] - com.almostreliable.lootjs.kube.LootJSPlugin
[19:12:37] [INIT] - com.blakebr0.cucumber.compat.kubejs.CucumberKubeJSPlugin
[19:12:37] [INIT] - com.lowdragmc.mbd2.integration.kubejs.MBDKubeJSPlugin
[19:12:37] [INIT] - com.gregtechceu.gtceu.integration.kjs.GregTechKubeJSPlugin
[19:12:37] [INIT] - argent_matter.gcyr.integration.kjs.GCYRKubeJSPlugin
[19:12:37] [INIT] - dev.latvian.mods.kubejs.create.KubeJSCreatePlugin
[19:12:37] [INIT] - novamachina.exnihilosequentia.common.compat.kubejs.KubeJSExNihiloPlugin
[19:12:47] [INFO] Loaded script startup_scripts:example.js in 0.295 s
[19:12:47] [INFO] Loaded script startup_scripts:food.js in 0.065 s
[19:12:47] [INFO] Loaded script startup_scripts:material_sets.js in 0.008 s
[19:12:47] [INFO] Loaded script startup_scripts:multiblocks.js in 0.003 s
[19:12:47] [INFO] Loaded script startup_scripts:tools.js in 0.005 s
[19:12:47] [INFO] Loaded 5/5 KubeJS startup scripts in 8.197 s with 0 errors and 0 warnings
[19:12:52] [ERROR] ! material_sets.js#26: Error in 'GTCEuStartupEvents.registry': TypeError: Cannot find function fluidTemp in object com.gregtechceu.gtceu.api.data.chemical.material.Material$Builder@46fdb4d.
fluidTemp was deleted a good while ago
you should be doing liquid(tempHere) instead of fluid()
aight
so like this?
event.create('sulfuric_acid_solution')
liquid(300)
.color(0xffffb3)
a
bvm
nvm
well i fixed it but it wont start again
//sulfuric_acid_solution
event.create('sulfuric_acid_solution')
.fluid()
.color(0xffffb3)
.liquid(300)
//nitric_acid_solution
event.create('nitric_acid_solution')
.fluid()
.color(0xffeb99)
.liquid(300)```
a wait
nvm
i think this the correct code
nvm figured it out
Hello,
Yesterday I was working with my dusts and the smart tag for the electrolyzer and I noticed that several dusts (Bentonite, Alumite and Biotite) don't get pick up by the MV robotic arm. It's a known bug?
is there a place where i can see all materials to give them more parts like gears and stuff?
idk how theyre named
for ex how is treated wood named
it's all in GTMaterials in the gtm codebase
GTMaterials.get("treated_wood")
for treated wood, for example
...okay I think I'm gonna move my question to its own thread
a good old github search is ussaly the way
I wrote this script and get the following errors: (in other attached file - Silly Problems.txt) could someone explain the problem? Thanks! 
- god please the formatting, use newlines
StainlessSteel,DamascusSteeletc. aren't material IDs. they'd bestainless_steel,damascus_steel, etc.
also please sort your material registration into separate files
a ~250 line file (with one material per line, no less!) ends up as quite difficult to read.
also
if you have any of your materials depend on others you make with KJS, you need to register them in the correct order & in separate event listeners.
I fixed the formatting
so now I get to sound like an Idiot, could you explain what an event listener is?
Oh, I also fixed the mat ID thing, thanks.
is the tool used to make multiblocks available in 7.0.0?
the terminal?
specifically to work with KJS, there was talk of a tool used to make a file from an ingame multi
yes, but it does them sideways
i have a working python script that does it from copy/paste gadget data thou
here
you just paste in the copy/paste gadget json data into the script
yk, this could also be used for java multis too
the raw aisle data is very useful for both
just needs some syntax tweaking
Like the building gadgets gadget?
yes
Where do you find this?
bring the copy/paste gadget into a template manager with a template
then press save then copy
then boom, the data is in your clipboard
hello i was testing a GT 7 SNAPSHOT on 1.21.1 and found another issue entirely, both JEI and EMI could left click to increase the OC but not right click to decrease(tested on clean instance with only JEI, EMI and GT), when i used the 1.20.1 snapshot (also on clean instance with only JEI and GT) no GregTech Recipe types showed up.
known issue
the first one, at least
it's also fixed on 1.20
I'll make a fix for 1.21
cool on further testing the 1.20.1 issue occurs due to not having LDLib installed
thank you
Do you have an example of what it looks like inside the python file?
help pls this thing doesn't take power at all
is that the right face?
it's kinda hard to see which side of a mixer is the front, but you can't put power in through the front
shift right click using a wrench on one of the faces not connected to the wire
try and see if that fixes it
i meant side of the generator
ah
they do yeah
it seems? output of items is on the other side, it shouldve worked
