#General Support & Feedback

1 messages · Page 2 of 1

steep locust
#

but lemme check with square

#

maybe onion broke smth else minionlaugh

#

square works

#

whatever

#

fixed in dev

dire quiver
#

🎉

steady edge
#

how to fix

valid junco
steady edge
#

wtf i use tlauncher

#

am i cooked

#

???

random ermine
#

buy the game

valid junco
steady edge
#

Nah

crimson basin
tepid flint
raw egret
#

imagine using tlauncher in 2025

wise echo
#

Thoughts on being able to right click with an empty bucket on the coke oven and all tanks to empty/fill it?

shy blade
#

I'm trying to start the server via powershell 7.5, it gives me the error: could not open `user_jvm_args.txt'

random ermine
shy blade
#

i already have java 17 how can i make ps see this

candid gust
#

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

shy blade
#

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

candid gust
#

I'm glad that worked for you

molten yew
#

Guys where can i get modpack link

slate zodiac
#

like the modern one?

#

curseforge should be good

nova mural
#

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

nova mural
#

just trying to add a vein

dire quiver
#

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

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

dire quiver
#

hm

nova mural
#

(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

dire quiver
#

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

nova mural
#

The veined vein generator requires a mat or blockstate, according to wiki

#

.size is for a different generator type I beleive

chrome rain
#

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
dire quiver
#

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

chrome rain
#

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

dire quiver
#

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

chrome rain
#

ill show

dire quiver
#

Did u make a custom oreprefix with kjs and ensure the ores have collision and loottables

chrome rain
dire quiver
#

Do ```js

chrome rain
#
    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

dire quiver
#
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

chrome rain
#

it just looks a bit janky how it stops at deepslate

dire quiver
chrome rain
#

right well ill be honest im not actually using moon stone, it was just the example. Heres the actual example im using

dire quiver
#

Ah

chrome rain
#
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

dire quiver
#

make a deeplivingslate layer with both replaceable tags

#

Then it will replace both layer blocks and complete the vein below

chrome rain
#

so the livingslate block needs #timor_ignotia:livingslate_replaceables & #timor_ignotia:livingrock_replaceables?

dire quiver
#

If those are the main and deeper block yea

#

(#tag, #tag)

#

Should work?

chrome rain
#

the stone is livingrock and the deepslate is livingslate

dire quiver
#

The layer is basically just saying what blocks it can replace

chrome rain
#

but then wont it replace livingslate with a livingrock variant of ore rather than a livingslate ore variant?

dire quiver
#

Generate a ore prefix for both of them

chrome rain
#

literally cannot see why this wont work

dire quiver
#

Then it'll work fine it should just know which block to use based on what it reolaced

chrome rain
#

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)
        )
    })```
dire quiver
#

The layer is just whichever preset list of blocks you give it to replace blocks with ores

#

Give it a layer with both tags

chrome rain
#

wow

#

wait can u do an example

dire quiver
#

Ig let me get up

chrome rain
#

tried vein.layer({"livingrock"}, {"livingslate"}) earlier but that done nothing too, just caused an error

dire quiver
#

no you don't give it multiple layers

#

One layer

#

When you define your layer you give it multiple tags

chrome rain
#

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')```
dire quiver
#

yea

chrome rain
#

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

dire quiver
#

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

chrome rain
#

so theres no veins that go across both stone and deepslate?

dire quiver
#

I am unsure id have to check

#

im pretty sure they dont do that

#

yea it looks like they all cover 1 block

chrome rain
#

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.

dire quiver
#

im unsure

#

its bc diorite and granite are in the stone ore replaceable tag by vanilla I think

chrome rain
dire quiver
#

nice

chrome rain
#

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')```
quasi hound
chrome rain
dire quiver
chrome rain
#

but yes

chrome rain
#

livingslate is the brown for clarity

#

like what piece of code specifies to replace livingslate with a livingslate variant of ore

dire quiver
#

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

chrome rain
#

so do i need the livingslate bit then?

dire quiver
#

you can just use one layer that covers both slate and rock

#

you dont need 2 layers

chrome rain
#

tysm

#

also heres another question

#

why dont ore veins spawn in the centre of the chunk anymore?>

#

or maybe they do

dire quiver
#

by default veins have a 12 block random offset from the chunk center they generated in

#

its in the gt config

chrome rain
#

thats getting disabled asap lol

dire quiver
#

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

chrome rain
#

whats the most common vein type

dire quiver
#

the big clump ball thing

#

hold on let me check vein types

chrome rain
#

there dike, veined, layered, standard, and theres cuboid i think

#

theres no documentation on the standard one

dire quiver
#

most are layered

#

I think

#

oh cuboid veins are like nh I think lol

chrome rain
#

naquadah?

dire quiver
#

naq and pitchblende

#

are cuboid

chrome rain
#

sweet

#

whats the one where everything is mixed in a nice even blend, no layers or patterns just pure randomness

#

.classic?

dire quiver
#

standard?

#

prolyl

#

wait

chrome rain
#

like most gtnh veins, they so beautiful

dire quiver
#

gtnh veins are cuboid

#

not blobs, theyre square in chunks

#

lmao

chrome rain
#

wait yea ur right

#

u just mine a giant square

#

are they ALL cuboid

chrome rain
#

yo deepa are you good with material sets and colours?

dire quiver
#

no

#

withers has done that in moni

chrome rain
#

wdym

#

dig through monifactory?

dire quiver
#

monifactory, withers did alot of that for the modpack

#

iconset stuff

#

for like infinity/omnium

chrome rain
#

ah yea, have already made custom iconsets for stuff

chrome rain
#

just wondering if u know a fix to this

chrome rain
#

these are 2 different ores believe it or not

dire quiver
#

🤨

chrome rain
#

how do u change the variant of the ore

dire quiver
#

oouuh

#

hm

chrome rain
dire quiver
#

doesnt gt only do 1 pattern???

#

oh

#

@random ermine :3 dyk

chrome rain
#

did a lot of digging through material_sets and couldnt find anything to do with ore blocks

random ermine
#

its in the block/material_sets folder

dire quiver
#

oh wait the ore pattern is part of material sets?

#

ic

chrome rain
#

raw_ore_block is the 9 compressed raw material block right?

dire quiver
dire quiver
#

not raw ore

#

idk

chrome rain
#

found it

#

just ore.png

chrome rain
# random ermine yes

you dont happen to know what basaltic mineral sand uses as a material_set off the top of your head?

dire quiver
#

search the gh for registry

#

uses SAND iconset

chrome rain
dire quiver
#

which seems to default to one ore pattern

#

since theres none

#

I just searched basaltic on the gh

chrome rain
#

have u got it set to filter in files rather than just showing names?

dire quiver
#

sands parent is FINE

chrome rain
#

shows nothing really

dire quiver
#

just hit enter

chrome rain
#

brings up basalt bricks png lol

#

u must have some dev build

dire quiver
#

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

chrome rain
#

sweet

#

how do u know all this valuable info

dire quiver
chrome rain
#

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

dire quiver
#

like layered ig

dire quiver
chrome rain
#

how come

dire quiver
#

because its easy LOL

#

I dont wanna mine out whole chunks I can just mine a line for the ore I want

chrome rain
#

yes gregtech needs to be the opposite of easy

dire quiver
#

make chemlines hard whatever but atp its just wasting time pointlessly for ore

#

idk

north elm
#

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 3sAstolfoThink

steep locust
#

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

valid junco
#

being able to filter recipes based on tier would also help

north elm
north elm
#

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 ariliaSalut

steep locust
north elm
#

Ohhh, yeah, didn't mean it that way but you'd probably want that so it's best for most users yurisweat Yeah that kills it, guess I'll just have it in a private version again

steep locust
#

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

north elm
#

True, if I do do it I'll just take some timings out of interest ellySip 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 3sAstolfoThink 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

dire quiver
chrome rain
dire quiver
#

thats slow for me

#

terminally online

chrome rain
#

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?

chrome rain
#

only 3.2 seconds

dire quiver
chrome rain
#

sweet

dire quiver
#

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

chrome rain
#

um

chrome rain
dire quiver
#

does it gen ingots??

chrome rain
#

nope

#

dont want it to

dire quiver
#

ok so isnt that what you already have and want

#

what are you trying to acheive

chrome rain
#

but using the flag GTMaterialFlags.FORCEGENERATEBLOCK makes it gen a block

chrome rain
#

like a stone block

#

that macerates 1:1 into the big dust

#

just like how andesite block macerates 1:1 into andesite dust

dire quiver
#

oh

#

you want to add the existing stone block to the material and have it macerate into a dust

chrome rain
#

or stone into stone dust 1:1 etc.

dire quiver
#

you wanna register a new stone block?

chrome rain
#

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')```
dire quiver
#

you wanna gen a new block

#

errrrrm

#

you may just need to register it with kjs as block

#

not using gt api

chrome rain
#

so by the fact that a .rock tagprefix is mentioned in the github, it would lead you to believe that .rock() would work, right?

dire quiver
#

no

#

they register their stones as normal blocks

chrome rain
#

oh

#

hardcoded

#

deepa are you working on a modpack by any chance

dire quiver
#

yea

#

"gregtech" pack where i remove everything from gregtech

chrome rain
dire quiver
chrome rain
dire quiver
#

but the mod has a good api and base

#

so I do a little jank and uh make something else

chrome rain
#

u hate gregtech?

dire quiver
chrome rain
#

it doesnt seem like it lol

dire quiver
#

I dont like gt derivatives game design

chrome rain
#

so what style of pack r u making

chrome rain
#

pumps as covers? or

dire quiver
#

no lol I love that

#

sec

chrome rain
#

proud to be the 7th downloader of that mod

#

its still only at 12.8k downloads wow

dire quiver
#

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

chrome rain
#

so you feel that gregtech heavily depends on the existance of ae2?

#

yea your absolutely correct

dire quiver
#

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

chrome rain
#

well look at packs like DJ2, do you aspire for your pack to be like it?

dire quiver
#

I don't know much about dj2 but I hear good

chrome rain
dire quiver
#

personally my favourite pack is a create pack

#

lmao

chrome rain
#

Dimensionally Transcendant Plasma Forge

#

Magnetohydronamically Constrained Star matter

#

gtnh moment

dire quiver
#

real

#

gtnh at least gives cool multiblocks and puzzle solvey stuff

#

but im not a fan of waiting sim

chrome rain
#

so the best bet is to just add 1 single macerator recipe. for livingrock into livingrock dust?

dire quiver
#

I think thats what gt does

#

just manual recipe

chrome rain
#

amazing renders and visuals

dire quiver
#

true

chrome rain
#

aka a shit ton of work

dire quiver
#

I think the pack is very cool and technologically impressive for sure

#

but its basically its own game atp

chrome rain
#

especially for the game version

dire quiver
#

hardly even modded mc

chrome rain
#

your adding things no one has added before

chrome rain
#

fairly certain that cursed concrete bucket recipe comes from gtnh? and nows its baked into vanilla gregtech

#

stuff like that

dire quiver
dire quiver
chrome rain
chrome rain
dire quiver
#

yea

chrome rain
dire quiver
#

unsure

chrome rain
#

wooden tank in gtceu looks straight out of 2015 railcraft

#

differently functionality albeit

dire quiver
#

funny actually gtnh just added the primitive pump from ceu

chrome rain
#

in a recent update?

dire quiver
#

2.7 or whatev

#

latestish

chrome rain
#

wait rlly? never noticed that

#

wonder how a primitive pump would work irl

#

although tbf the electric pumps arent powered by electric

dire quiver
neat lynx
chrome rain
chrome rain
#

with the 1/72nd dusts

dire quiver
#

pssh never

neat lynx
#

that requires preexisting water in the system

#

but things like calcium chloride are deliquescent

chrome rain
#

is the ae2-o-fied mana pool aesthetically pleasing?

chrome rain
#

"DO NOT CONSUME"

neat lynx
chrome rain
#

numerical mana yeoo

quaint musk
#

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 tr

livid void
#

2 lcr strat?

dire quiver
#

2 lcr with a bunch of circuited hatches lamo

quaint musk
#

(And platline, etc)

livid void
#

what in the bottleneck

#

also recipe conflict

quaint musk
#

Perfect overclock gaming skillissue

#

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

chrome rain
#

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

reef crane
#

how do i figure out the primary and secondary color of a material

random ermine
#

guess

#

if it looks wrong
change it

#

using a color picker usually won't work

reef crane
#

well has somebody made code for stone ingots by chance?

sullen matrix
#

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?

reef crane
#

you could just adda seperate mod or make them in kjs

sullen matrix
wispy fable
#

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.

humble terrace
wispy fable
#

im too stupid to know how, but i'll find out lol

humble terrace
#

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)

magic creekBOT
humble terrace
dire quiver
humble terrace
#

I'll look into it in morning if you were being serious

#

MIGHT be above my paygrade though

dire quiver
#

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

hidden elk
#

any idea on why this loads fine but the recipe isn't working?

dire quiver
#

the formatting 💀

#

moni exampole

#

it looks like you need a namespace for your id

hidden elk
#

yeah i was just testing

dire quiver
hidden elk
#

however

#

the recipe is technically working

dire quiver
#

also dont use gt iron dust

#

use the tag

hidden elk
#

but the fluid tag is wrong

dire quiver
#

forge:dusts/iron

hidden elk
#

how can i get the fluid tag for liquid steel?

dire quiver
#

hold a steel liquid bucket

#

and do /kubejs hand

hidden elk
#

huh its just steel

hidden elk
#

i fixed it and its working perfectly now

hidden elk
#

does this work?

#

i want to make all veins much more dense

dire quiver
#

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

hidden elk
#

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

valid junco
#

there should be an error log

hidden elk
#

java.lang.RuntimeException: Value 4.0 outside of range [0.0:1.0]

#

i need to cap the density in some way

valid junco
#

Math.min(1.0, newDensity)

hidden elk
#

ty

#

strange that the value got to 4 though

#

if the max is 1 and all i did was doubling

valid junco
#

sounds like the setter has the wrong range

#

no, makes sense - a value of 1.0 means every block is an ore

hidden elk
#

so this should be the script if anyone ever needs it

#

yeah it looks like its working

dire quiver
#

Did not heed my warning!!!

short nova
#

quick question: how do I change the name of my new material so it's not just "material.gtceu.whatever"?

short nova
#

oh thanks

short nova
#

hey so
what's an orePrefix??

chrome rain
#

sorry for random ping btw

dire quiver
#

dw about it

dire quiver
#

🤔

#

maybe

chrome rain
#

hmm

dire quiver
#

in kjs

#

yea probably not

chrome rain
#

tried this

GTCEuStartupEvents.materialModification(event => {
    GTMaterials.CertusQuartz.setColor(0x9fd5e8)
});```
#

didnt work

dire quiver
#

interesting

chrome rain
#

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

dire quiver
#

yea idk..

chrome rain
#

thats stolen straight from pansmith btw

dire quiver
#

I don't think it can be edited

chrome rain
#

aight ok, sorry to bother

chrome rain
dire quiver
#

I don't know if thats possible

#

that just doesnt work with gt metallurgy

chrome rain
#

how does gtceu handle the certus quartz registry

neat lynx
lone sage
#

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?

hidden elk
#

how can i change the durability of some gt tools?

neat lynx
hidden elk
quasi hound
neat lynx
lone sage
valid junco
onyx canopy
#

is there any way to extract quest data from a corrupted save onto a backup of the corrupted save

north elm
#

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

warm crag
#

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

humble terrace
#

Make an issue on GitHub so we can keep track of it

north elm
strong swan
#

Can custom KubeJS steam multiblocks go past 8 parallel recipes? Tried setting it to 32 but still only does 8 at a time

coarse basin
north elm
short nova
#

does GTCEUM (wow this mod series is gonna have like 20 letters by 2050) have Tinker's support?

neat lynx
#

doubt it

short nova
#

god DAMNIT I hate dealing with mod compat ;v;

#

also nice pfp

short nova
#

well is there a nice way to change all the recipes to either the 144 mB system or the 90 mB system?

humble terrace
#

Yeah but it'd be a pain to get working right I presume

short nova
#

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

fossil sorrel
#

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

reef crane
#

how do i limit items to go into a machine so that only one stack goes and no more

valid junco
reef crane
#

i do

valid junco
#

if it's a input bus make sure to turn the auto pulling off (the power button)

reef crane
#

but its not importing

valid junco
#

did you set it to import?

#

post a screenshot of the setup

reef crane
valid junco
#

and what is on the other side of the cover - assuming you placed it on the machine

reef crane
valid junco
# reef crane

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

reef crane
#

a

bronze plover
#

apparently in 1.12 gt crowbars can be used as railcraft crowbars? would be a nice feature to implement in modern as well

bronze plover
#

oh true i thought it only had bugfixes

bronze plover
#

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

coarse basin
#

if something is inverted, there's probably a bug floating around xD

cedar geode
#

is there a way to make 64a energy hatches (not laser)?

neat lynx
unreal pier
#

Is there a way to modify things so that steam loses heat to the environment?

reef crane
#

how do i change the mining level of tools?

reef crane
#

like the gregtech tools

wispy fable
#

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

short nova
#

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

chrome rain
pallid slate
chrome rain
#

changes ingots value from 90mb to 144

pallid slate
#

Yeah but he's asking for the opposite

chrome rain
#

if he wants the opposite then remove gt from the pack lmao

pallid slate
#

That's one way to do it

chrome rain
# pallid slate 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?

lone sage
#

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?

pallid slate
short nova
#

I just want to be able to play two good mods together

last cobalt
#

are the default veins in the kubejs format somewhere?

runic light
#

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?

livid void
#

wrong gregtech

#

this is gregtech modern for 1.20.1

slender briar
#

Are you thinking of GT Intergalactic or GT4:R?

marble anvil
fluid topaz
#

...actually, let me move this to a dedicated thread, this is kinda big.

nocturne pike
#

how would i make steam singleblocks have fluid capacity?

reef crane
#

how do i choose colors for materials cuz they got letters in them and stuff

#

and the wiki says it can only take numbers

warm crag
reef crane
#

waht

warm crag
#

what part was unclear?

static oriole
#

.color(0xE79A3F) // Crimson

#

simple stuff really

#

0x is telling kubejs its a hexadecimal, then the numbers after are the actual color

reef crane
#

aaaa

#

i see

#

so it dosent have to be a number

static oriole
#

correct

warm crag
#

reading 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

timber elbow
#

Are there any guides like the quest book in this mod??

static oriole
#

There is no offical gt modern guide no

#

However, a lot of the stuff from the GT:NH guide still applies

neat lynx
static oriole
#

Ye. the community pack does a wonderful job

timber elbow
#

Sorry for the long response, which pack is it and is it for 1.20.1?

static oriole
#

the gregtech community pack modern

#

it is 1.20.1

#

the non modern community pack is 1.12.1

graceful dove
#

Why i don't have textures?

#

Minecraft 1.21.1 3 diаferents boilers

#

And so with all the textures of the machines

valid junco
#

are you using the old outdated version or the beta from github?

valid junco
#

either use the not yet released beta from github - or play on 1.20.1

graceful dove
#

Oh, okay, thank you

fossil sorrel
#

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__".
magic creekBOT
fossil sorrel
#

Nevermind brackets instead of parenthesis ughhh

#

Yeah that was the issue, I used parentheses instead of brackets 🧠

fossil sorrel
#

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
        )
fossil sorrel
#

Gave, up, going to manually add recipes

fossil sorrel
#

For anyone wondering, I did it by modifying the OreProperty in materialModification

let deshOreProperty = GTMaterials.get('desh').getProperty(PropertyKey.ORE);
    deshOreProperty.setOreByProducts('mythril', 'iron');
static oriole
#

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

fossil sorrel
#

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

static oriole
#

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!

fossil sorrel
#

I am not 100% sure that's the issue, but I am too infuriated by it to test it out 😆

cedar geode
#

hi does anyone know the list of names for gcym casings (the ones that are used in GCYMBlocks.CASING_X)

static oriole
forest salmon
#

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')
})
static oriole
#

idk if a space is needed after 2x

#

i always use a space

#

i often just remove the recipe then make a new one

forest salmon
#

okay

#

how do i add a chance output? I tried adding .withChance() and that didn't work

static oriole
#

.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

forest salmon
#

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)

?

static oriole
#

looks right

forest salmon
#

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

static oriole
#

as long as it is a lv recipe

#

it works

#

event.recipes.gtceu.macerator

#

are the recipes that the grinder uses

forest salmon
#

alrighty! thank you

static oriole
#

glad to help

forest salmon
#

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

static oriole
#

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

granite pollen
#

when making an issue on the repo, "latest version" means release, not dev, correct?

granite pollen
#

finished writing issue report before response, so assuming it means release

forest salmon
#

what version of jei works with gregtech ceu 1.21? i've tried newer and older, they haven't worked so far

forest salmon
#

doesn't seem to matter what version of jei/emi iuse

livid void
livid void
#

@random ermine

random ermine
#

curse

random ermine
forest salmon
#

where do i find hte 1.21 version?

#

nvm found it

#

tried with jei, also doesn't work

#

here's the log too

random ermine
#

it's not up to date and won't be

forest salmon
#

is there a way to speed up the coke oven / primitive blast furnace? would i have to write a java addon for it?

forest salmon
#

how do i make custom cables?

#

the wiki doesn't show much about ti

random ermine
#

cable property

forest salmon
#

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)
})
random ermine
#

no clue why it's in the dust section but here you go

#

last parameter isn't required, false by default

forest salmon
#

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

random ermine
#

you're trying to create and use materials in the same event handler

forest salmon
#

huh

#

oh is it because of using andesite dust from gtceu?

#

yep that's why

forest salmon
#

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.

static oriole
#

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

forest salmon
#

yeah

static oriole
#

if you want cables

#

turn the boolean to false

#

super conductors don't have cables because they don't need them

forest salmon
#

oh okm

forest salmon
#

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

static oriole
#

i could never figure out singleblocks

#

only multis

forest salmon
#

okay

static oriole
forest salmon
#

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?

static oriole
#

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

random ermine
#

that should've been a PR.

static oriole
#

hmm?

#

a pull request for an external mod?

#

is that a thing?

random ermine
#

no, for GT

static oriole
#

ohhh, do you mean oktawia should have done a pr on gtm to make this an offficial integration?

random ermine
#

y e s

#

we've had this planned for a while but it's been waiting on other stuff

random ermine
static oriole
#

well ok, fair enough

#

but that's not the most common thing

random ermine
#

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

static oriole
#

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

random ermine
#

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

forest salmon
#

htf does this work? I copied the two corners but nothing happnened.

random ermine
#

I have no idea how it even runs tbh

#

wait this is the same person who made crazy ae2 addons

#

oh no

forest salmon
#

figured it out

static oriole
#

you can thank me for a few of the ideas

#

🫡

random ermine
#

no I said "oh no" because the code (and the ideas) suck in that one too

static oriole
#

well, it works so ehhh

random ermine
#

like, an ae2 addon does nOT NEED A MOB SPAWNER????

static oriole
#

she is just having fun with it tbh

random ermine
#

or A 3RD CIRCUIT CARD???

#

but like, worse

static oriole
#

how is it worse?

#

the programmed circuit card mod can't do subnets

random ermine
#

because it's a separate pattern provider

static oriole
#

not anymore

random ermine
#

and not just an upgrade card

static oriole
#

hasn't been for a while actually

random ermine
#

both are awful ideas that destroy the intended solutions in the mod

static oriole
#

like 8 versions

random ermine
#

but this is also just a worse implementationb

#

or an auto block clicker

static oriole
#

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

random ermine
#

why does an ae2 addon have that

forest salmon
#

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.

static oriole
#

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

random ermine
#

that's fine but it also has nothing to do with AE2 and is already in GTM

static oriole
#

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

forest salmon
#

well i just realized what the problem was lol.

static oriole
#

was it a simple thing?

forest salmon
#

I forgot .build())

#

nvm

static oriole
forest salmon
#

example.js#32: Error in 'GTCEuStartupEvents.registry': TypeError: Cannot find function where in object com.gregtechceu.gtceu.api.registry.registrate.MultiblockMachineBuilder@64c555f7.

static oriole
#

where it's pretty much useless

static oriole
#

can you post your predicates?

forest salmon
#

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()))
static oriole
#

why does it go a,b,c,d,e,f,k?

forest salmon
#

lol the K was me

static oriole
#

is the k actually in the aisles?

forest salmon
#

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

static oriole
#

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

forest salmon
#

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.

static oriole
#

hmm, then that should be a ok

#

forgot about those recipes

forest salmon
#

I suppose I could add those recipes to a centrifuge huh?

static oriole
#

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?

forest salmon
#

yeah

static oriole
#

not sure why you decided to make the block's rendering ptfe casings since those are hv

#

but hey, it works

forest salmon
#

okay so it works for you?

#

huh...

static oriole
#
    .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

forest salmon
#

hmm

#

how do i change the tier of a recipe?

#

do i just remove and readd the recipes?

static oriole
#

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?

forest salmon
#

it's lv, and steam is ulv

#

at least it doesn't work for some reason

static oriole
#

ulv is the same recipe tier

#

steam multiblocks and high pressure machines can run lv recipes

forest salmon
#

oh ok

#

weird, yeah it's not crafting

#

i'm stupid

#

I forgot to give it steam

#

now it's working

static oriole
#

noice

forest salmon
#

do you have a pre steam multiblock that sieves?

#

or do you have a sieve in steam that i could use?

static oriole
#

i have not figured out primitive machines

forest salmon
#

okay

static oriole
#
        .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)

forest salmon
#

what is the overlay for the macerator? for GuiTextures?

static oriole
forest salmon
#

okay

scarlet hemlock
forest salmon
static oriole
#

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

brazen field
#

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

valid junco
#

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)

brazen field
#

i see, so are there no big incompatibilites?

#

because even on 1.20.1 my modpack would constantly crash

valid junco
#

I would say that all GTCEu Modern based modpacks are on 1.20.1

#

I have played Monifactory, Sky of Grind and Star Technologies

brazen field
#

ok, ill try it again on 1.20.1

#

thanks

valid junco
#

ohh - also the #modern-community-pack

brazen field
#

oh thanks

#

ill look into that too

forest salmon
#

is there a config to allow GT ores to drop multiple raw with fortune?

static oriole
#

There is not

#

there were, issues with the intended system

#

so it was not fully implemented

plucky plover
#

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?)

random ermine
plucky plover
plucky plover
# plucky plover to further explain, im trying to have all fluid pipes go to a specific inventory...

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)

reef crane
#

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) 
 })
random ermine
#

diluted sulfuric acid already exists

#

you can't create a material with the same ID as an existing one

reef crane
#

what

#

like its in vanilla gt?

random ermine
#

ya

#

did you not check?

reef crane
#

i did

random ermine
reef crane
#

idk then imma rename it to diluted sulfuric acid solution

#

ok then thx for the help as always

random ermine
#

👍

reef crane
#

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.

random ermine
#

fluidTemp was deleted a good while ago

#

you should be doing liquid(tempHere) instead of fluid()

reef crane
#

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

lost mortar
#

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?

reef crane
#

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

acoustic vapor
reef crane
#

a

#

well how do i access it

#

or sum

acoustic vapor
#

GTMaterials.get("treated_wood")

#

for treated wood, for example

#

...okay I think I'm gonna move my question to its own thread

static oriole
#

a good old github search is ussaly the way

marble anvil
random ermine
#

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.

marble anvil
#

Oh, I also fixed the mat ID thing, thanks.

forest salmon
#

is the tool used to make multiblocks available in 7.0.0?

hexed pivot
#

the terminal?

forest salmon
#

specifically to work with KJS, there was talk of a tool used to make a file from an ingame multi

static oriole
#

yes, but it does them sideways

#

i have a working python script that does it from copy/paste gadget data thou

#

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

marble anvil
static oriole
#

yes

marble anvil
static oriole
#

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

slate scarab
#

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.

random ermine
#

the first one, at least

#

it's also fixed on 1.20

#

I'll make a fix for 1.21

slate scarab
#

cool on further testing the 1.20.1 issue occurs due to not having LDLib installed

marble anvil
marble anvil
static oriole
#

if that's what you meant

arctic grail
#

help pls this thing doesn't take power at all

livid void
#

is that the right face?

static oriole
#

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

livid void
#

i meant side of the generator

static oriole
#

ah

livid void
#

i thought they had a specific power side

#

may be wrong

static oriole
#

they do yeah

arctic grail
static oriole
#

this is power output