
ServerEvents.recipes(event => {

    event.recipes.gtceu.macerator('soul_sand_dust')
        .itemInputs('minecraft:soul_sand')
        .itemOutputs('thermal_extra:soul_sand_dust')
        .duration(20)
        .EUt(8);
    
    event.shapeless(
        Item.of('thermal_extra:soul_sand_dust', 1),
        [
            'minecraft:soul_sand',
            '#forge:tools/mortars'
        ]
    );

    event.recipes.gtceu.mixer('soul_infused_dust')
        .itemInputs('#forge:dusts/invar', '2x thermal_extra:soul_sand_dust')
        .itemOutputs('3x #forge:dusts/soul_infused')
        .duration(200)
        .EUt(8);

    event.recipes.gtceu.create_mixer('soul_infused_dust_kinetic')
        .itemInputs('#forge:dusts/invar', '2x thermal_extra:soul_sand_dust')
        .itemOutputs('3x #forge:dusts/soul_infused')
        .duration(200)
        .inputStress(16)
        .rpm(8);

    event.recipes.gtceu.mixer('signalum_dust')
        .itemInputs('#forge:dusts/silver', '3x #forge:dusts/copper', '4x minecraft:redstone')
        .itemOutputs('4x #forge:dusts/signalum')
        .duration(300)
        .EUt(32);

    event.recipes.gtceu.create_mixer('signalum_dust_kinetic')
        .itemInputs('#forge:dusts/silver', '3x #forge:dusts/copper', '4x minecraft:redstone')
        .itemOutputs('4x #forge:dusts/signalum')
        .duration(300)
        .inputStress(512)
        .rpm(32);

    event.recipes.gtceu.mixer('lumium_dust')
        .itemInputs('#forge:dusts/silver', '3x #forge:dusts/tin', '2x minecraft:glowstone')
        .itemOutputs('4x #forge:dusts/lumium')
        .duration(400)
        .EUt(128);

    event.recipes.gtceu.create_mixer('lumium_dust_kinetic')
        .itemInputs('#forge:dusts/silver', '3x #forge:dusts/tin', '2x minecraft:glowstone')
        .itemOutputs('4x #forge:dusts/lumium')
        .duration(400)
        .inputStress(2048)
        .rpm(128);

    event.recipes.gtceu.mixer('enderium_dust')
        .itemInputs('3x #forge:dusts/lead', '1x #forge:dusts/diamond', '2x minecraft:enderpearl')
        .itemOutputs('4x #forge:dusts/enderium')
        .duration(600)
        .EUt(512);

    event.recipes.gtceu.mixer('shellite_dust')
        .itemInputs('#forge:dusts/black_bronze', '3x #forge:dusts/signalum')
        .itemOutputs('4x #forge:dusts/shellite')
        .duration(700)
        .EUt(2048);

    event.recipes.gtceu.mixer('twinite_dust')
        .itemInputs('3x #forge:dusts/enderium', '2x #forge:dusts/amethyst', '#forge:dusts/lumium')
        .itemOutputs('6x #forge:dusts/twinite')
        .duration(800)
        .EUt(8192);

    event.recipes.gtceu.mixer('dragonsteel_dust')
        .itemInputs('4x #forge:dusts/tungsten', '8x #forge:dusts/shellite', '2x #forge:dusts/twinite')
        .inputFluids('thermal_extra:refined_sunflower_oil 1000')
        .itemOutputs('14x #forge:dusts/dragonsteel')
        .duration(900)
        .EUt(32768);

    event.recipes.gtceu.mixer('prismalium_dust')
        .itemInputs('8x #forge:dusts/naquadah', '4x #forge:dusts/shellite', '7x #forge:dusts/tungsten_carbide')
        .itemOutputs('19x #forge:dusts/prismalium')
        .duration(1000)
        .EUt(65536);

    event.recipes.gtceu.mixer('melodium_dust')
        .itemInputs('14x #forge:dusts/electrum', '3x #forge:dusts/amethyst', '4x #forge:dusts/darmstadtium', '7x #forge:dusts/europium')
        .inputFluids('gtceu:mercury_barium_calcium_cuprate 2000')
        .itemOutputs('30x #forge:dusts/melodium')
        .duration(1100)
        .EUt(131072);

    event.recipes.gtceu.mixer('stellarium_dust')
        .itemInputs('4x #forge:dusts/melodium', '1x #forge:dusts/dragonsteel')
        .inputFluids('gtceu:neutronium 12000')
        .itemOutputs('17x #forge:dusts/stellarium')
        .duration(1200)
        .EUt(524288);

    // Replaces
    event.replaceInput({input: '#forge:ingots/lumium'},
    '#forge:ingots/lumium',
    'thermal:lumium_ingot'
    );
    event.replaceOutput({output: '#forge:ingots/lumium'},
    '#forge:ingots/lumium',
    'thermal:lumium_ingot'
    );
    event.replaceInput({input: '#forge:dusts/lumium'},
    '#forge:dusts/lumium',
    'thermal:lumium_dust'
    );
    event.replaceOutput({output: '#forge:dusts/lumium'},
    '#forge:dusts/lumium',
    'thermal:lumium_dust'
    );
    event.replaceInput({input: '#forge:gears/lumium'},
    '#forge:gears/lumium',
    'thermal:lumium_gear'
    );
    event.replaceOutput({output: '#forge:gears/lumium'},
    '#forge:gears/lumium',
    'thermal:lumium_gear'
    );

    event.replaceInput({input: '#forge:ingots/signalum'},
    '#forge:ingots/signalum',
    'thermal:signalum_ingot'
    );
    event.replaceOutput({output: '#forge:ingots/signalum'},
    '#forge:ingots/signalum',
    'thermal:signalum_ingot'
    );
    event.replaceInput({input: '#forge:dusts/signalum'},
    '#forge:dusts/signalum',
    'thermal:signalum_dust'
    );
    event.replaceOutput({output: '#forge:dusts/signalum'},
    '#forge:dusts/signalum',
    'thermal:signalum_dust'
    );
    event.replaceInput({input: '#forge:gears/signalum'},
    '#forge:gears/signalum',
    'thermal:signalum_gear'
    );
    event.replaceOutput({output: '#forge:gears/signalum'},
    '#forge:gears/lumium',
    'thermal:signalum_gear'
    );

    event.replaceInput({input: '#forge:ingots/enderium'},
    '#forge:ingots/enderium',
    'thermal:enderium_ingot'
    );
    event.replaceOutput({output: '#forge:ingots/enderium'},
    '#forge:ingots/enderium',
    'thermal:enderium_ingot'
    );
    event.replaceInput({input: '#forge:dusts/enderium'},
    '#forge:dusts/enderium',
    'thermal:enderium_dust'
    );
    event.replaceOutput({output: '#forge:dusts/enderium'},
    '#forge:dusts/enderium',
    'thermal:enderium_dust'
    );
    event.replaceInput({input: '#forge:gears/enderium'},
    '#forge:gears/enderium',
    'thermal:enderium_gear'
    );
    event.replaceOutput({output: '#forge:gears/enderium'},
    '#forge:gears/enderium',
    'thermal:enderium_gear'
    );

    event.replaceInput({input: '#forge:ingots/soul_infused'},
    '#forge:ingots/soul_infused',
    'thermal_extra:soul_infused_ingot'
    );
    event.replaceOutput({output: '#forge:ingots/soul_infused'},
    '#forge:ingots/soul_infused',
    'thermal_extra:soul_infused_ingot'
    );
    event.replaceInput({input: '#forge:dusts/soul_infused'},
    '#forge:dusts/soul_infused',
    'thermal_extra:soul_infused_dust'
    );
    event.replaceOutput({output: '#forge:dusts/soul_infused'},
    '#forge:dusts/soul_infused',
    'thermal_extra:soul_infused_dust'
    );
    event.replaceInput({input: '#forge:gears/soul_infused'},
    '#forge:gears/soul_infused',
    'thermal_extra:soul_infused_gear'
    );
    event.replaceOutput({output: '#forge:gears/soul_infused'},
    '#forge:gears/soul_infused',
    'thermal_extra:soul_infused_gear'
    );

    event.replaceInput({input: '#forge:ingots/shellite'},
    '#forge:ingots/shellite',
    'thermal_extra:shellite_ingot'
    );
    event.replaceOutput({output: '#forge:ingots/shellite'},
    '#forge:ingots/shellite',
    'thermal_extra:shellite_ingot'
    );
    event.replaceInput({input: '#forge:dusts/shellite'},
    '#forge:dusts/shellite',
    'thermal_extra:shellite_dust'
    );
    event.replaceOutput({output: '#forge:dusts/shellite'},
    '#forge:dusts/shellite',
    'thermal_extra:shellite_dust'
    );
    event.replaceInput({input: '#forge:gears/shellite'},
    '#forge:gears/shellite',
    'thermal_extra:shellite_gear'
    );
    event.replaceOutput({output: '#forge:gears/shellite'},
    '#forge:gears/shellite',
    'thermal_extra:shellite_gear'
    );

    event.replaceInput({input: '#forge:ingots/twinite'},
    '#forge:ingots/twinite',
    'thermal_extra:twinite_ingot'
    );
    event.replaceOutput({output: '#forge:ingots/twinite'},
    '#forge:ingots/twinite',
    'thermal_extra:twinite_ingot'
    );
    event.replaceInput({input: '#forge:dusts/twinite'},
    '#forge:dusts/twinite',
    'thermal_extra:twinite_dust'
    );
    event.replaceOutput({output: '#forge:dusts/twinite'},
    '#forge:dusts/twinite',
    'thermal_extra:twinite_dust'
    );
    event.replaceInput({input: '#forge:gears/twinite'},
    '#forge:gears/twinite',
    'thermal_extra:twinite_gear'
    );
    event.replaceOutput({output: '#forge:gears/twinite'},
    '#forge:gears/twinite',
    'thermal_extra:twinite_gear'
    );

    event.replaceInput({input: '#forge:ingots/dragonsteel'},
    '#forge:ingots/twinite',
    'thermal_extra:dragonsteel_ingot'
    );
    event.replaceOutput({output: '#forge:ingots/dragonsteel'},
    '#forge:ingots/twinite',
    'thermal_extra:dragonsteel_ingot'
    );
    event.replaceInput({input: '#forge:dusts/dragonsteel'},
    '#forge:dusts/twinite',
    'thermal_extra:dragonsteel_dust'
    );
    event.replaceOutput({output: '#forge:dusts/dragonsteel'},
    '#forge:dusts/twinite',
    'thermal_extra:dragonsteel_dust'
    );
    event.replaceInput({input: '#forge:gears/dragonsteel'},
    '#forge:gears/dragonsteel',
    'thermal_extra:dragonsteel_gear'
    );
    event.replaceOutput({output: '#forge:gears/dragonsteel'},
    '#forge:gears/dragonsteel',
    'thermal_extra:dragonsteel_gear'
    );

    event.replaceInput({input: '#forge:ingots/prismalium'},
    '#forge:ingots/prismalium',
    'thermalendergy:prismalium_ingot'
    );
    event.replaceOutput({output: '#forge:ingots/prismalium'},
    '#forge:ingots/prismalium',
    'thermalendergy:prismalium_ingot'
    );
    event.replaceInput({input: '#forge:dusts/prismalium'},
    '#forge:dusts/prismalium',
    'thermalendergy:prismalium_dust'
    );
    event.replaceOutput({output: '#forge:dusts/prismalium'},
    '#forge:dusts/prismalium',
    'thermalendergy:prismalium_dust'
    );
    event.replaceInput({input: '#forge:gears/prismalium'},
    '#forge:gears/prismalium',
    'thermalendergy:prismalium_gear'
    );
    event.replaceOutput({output: '#forge:gears/prismalium'},
    '#forge:gears/prismalium',
    'thermalendergy:prismalium_gear'
    );

    event.replaceInput({input: '#forge:ingots/melodium'},
    '#forge:ingots/melodium',
    'thermalendergy:melodium_ingot'
    );
    event.replaceOutput({output: '#forge:ingots/melodium'},
    '#forge:ingots/melodium',
    'thermalendergy:melodium_ingot'
    );
    event.replaceInput({input: '#forge:dusts/melodium'},
    '#forge:dusts/melodium',
    'thermalendergy:melodium_dust'
    );
    event.replaceOutput({output: '#forge:dusts/melodium'},
    '#forge:dusts/melodium',
    'thermalendergy:melodium_dust'
    );
    event.replaceInput({input: '#forge:gears/melodium'},
    '#forge:gears/melodium',
    'thermalendergy:melodium_gear'
    );
    event.replaceOutput({output: '#forge:gears/melodium'},
    '#forge:gears/melodium',
    'thermalendergy:melodium_gear'
    );

    event.replaceInput({input: '#forge:ingots/stellarium'},
    '#forge:ingots/stellarium',
    'thermalendergy:stellarium_ingot'
    );
    event.replaceOutput({output: '#forge:ingots/stellarium'},
    '#forge:ingots/stellarium',
    'thermalendergy:stellarium_ingot'
    );
    event.replaceInput({input: '#forge:dusts/stellarium'},
    '#forge:dusts/stellarium',
    'thermalendergy:stellarium_dust'
    );
    event.replaceOutput({output: '#forge:dusts/stellarium'},
    '#forge:dusts/stellarium',
    'thermalendergy:stellarium_dust'
    );
    event.replaceInput({input: '#forge:gears/stellarium'},
    '#forge:gears/stellarium',
    'thermalendergy:stellarium_gear'
    );
    event.replaceOutput({output: '#forge:gears/stellarium'},
    '#forge:gears/stellarium',
    'thermalendergy:stellarium_gear'
    );
});