ServerEvents.recipes(event => {
    let ctnh = event.recipes.gtceu
    ctnh.chemical_reactor('blue_vitriol')
        .EUt(30)
        .duration(50)
        .itemInputs('gtceu:purified_chalcopyrite_ore')
        .inputFluids(Fluid.of('gtceu:nitric_acid', 1000))
        .outputFluids(Fluid.of('gtceu:blue_vitriol_solution', 1000))
        .itemOutputs('gtceu:tiny_platinum_group_sludge_dust')
    // CuSO4 + H2O -> H2SO4 + Cu + O
    ctnh.electrolyzer('blue_vitriol1')
        .EUt(60)
        .duration(100)
        .inputFluids(Fluid.of('gtceu:blue_vitriol_solution', 1000))
        .outputFluids(Fluid.of('gtceu:sulfuric_acid', 1000))
        .outputFluids(Fluid.of('gtceu:oxygen', 1000))
        .itemOutputs('gtceu:copper_dust')
        .chancedOutput('gtceu:chalcogen_anode_mud_dust', 500, 0)
        .circuit(3)
    ctnh.centrifuge('chalcogen_anode_mud_bonus')
        .EUt(64)
        .duration(300)
        .itemInputs('gtceu:chalcogen_anode_mud_dust')
        .itemOutputs('gtceu:silver_dust')
        .chancedOutput('gtceu:copper_dust', 1000, 1000)
        .chancedOutput('gtceu:gold_dust', 750, 750)
    // Ag2TeSe + 4O + Na2CO3 -> Na2TeO3 + SeO2 + 2Ag + CO2
    ctnh.dehydrator('tellurium_recycle')
        .EUt(GTValues.VA[GTValues.HV])
        .duration(600)
        .itemInputs('gtceu:chalcogen_anode_mud_dust')
        .itemInputs('6x gtceu:soda_ash_dust')
        .inputFluids(Fluid.of('gtceu:oxygen', 4000))
        .itemOutputs('6x gtceu:sodium_tellurite_dust')
        .itemOutputs('3x gtceu:selenium_dioxide_dust')
        .itemOutputs('2x gtceu:silver_ingot')
        .outputFluids(Fluid.of('gtceu:carbon_dioxide', 1000))
    // Na2TeO3 + H2O -> TeO2 + 2NaOH
    ctnh.electrolyzer('tellurium_recycle1')
        .EUt(GTValues.VA[GTValues.MV])
        .duration(400)
        .itemInputs('6x gtceu:sodium_tellurite_dust')
        .inputFluids(Fluid.of('minecraft:water', 1000))
        .itemOutputs('3x gtceu:tellurium_dioxide_dust')
        .itemOutputs('6x gtceu:sodium_hydroxide_dust')
        .circuit(2)
    // TeO2 + 2SO2 + H2O -> Te + H2SO4 + SO3
    ctnh.chemical_reactor('tellurium_recycle2')
        .EUt(GTValues.VA[GTValues.EV])
        .duration(300)
        .itemInputs('3x gtceu:tellurium_dioxide_dust')
        .inputFluids(Fluid.of('gtceu:sulfur_dioxide', 2000))
        .inputFluids(Fluid.of('minecraft:water', 1000))
        .itemOutputs('gtceu:tellurium_dust')
        .outputFluids(Fluid.of('gtceu:sulfuric_acid', 1000))
        .outputFluids(Fluid.of('gtceu:sulfur_trioxide', 1000))
    // SeO2 + H2O -> H2SeO3
    ctnh.mixer('selenium_dioxide_recycle')
        .itemInputs('3x gtceu:selenium_dioxide_dust')
        .inputFluids(Fluid.of('minecraft:water', 1000))
        .outputFluids(Fluid.of('gtceu:selenous_acid', 1000))
        .duration(400)
        .EUt(GTValues.VA[GTValues.MV])
    // H2SeO3 + 2SO2 -> Se + H2SO4 + SO3
    ctnh.chemical_reactor('selenium_dioxide_recycle1')
        .EUt(GTValues.VA[GTValues.EV])
        .duration(300)
        .inputFluids(Fluid.of('gtceu:selenous_acid', 1000))
        .inputFluids(Fluid.of('gtceu:sulfur_dioxide', 2000))
        .itemOutputs('gtceu:selenium_dust')
        .outputFluids(Fluid.of('gtceu:sulfuric_acid', 1000))
        .outputFluids(Fluid.of('gtceu:sulfur_trioxide', 1000))
})

