ServerEvents.recipes(event => {
	event.remove({output: 'create_sa:portable_drill'})
	event.remove({output: 'create:chromatic_compound'})
	event.remove({output: 'create_sa:brass_drill_head'})
	event.remove({output: 'create_dd:excavation_drill'})
	event.remove({output: 'create_dd:item_stockpile'})
	event.remove({output: 'create_dd:industrial_fan'})
	event.remove({output: 'create_dd:gabbro'})
	event.remove({output: 'create:mechanical_arm'})
	event.remove({output: 'create_dd:hydraulic_press'})
	event.remove({input: 'create_crush_everything:diamond_shard'})
	event.remove({output: 'create_crush_everything:diamond_shard'})
	event.remove({input: 'create_dd:diamond_shard'})
	event.remove({input: 'create_dd:kinetic_mechanism'})
	event.remove({output: 'create_dd:diamond_shard', input: 'minecraft:diamond'})
	event.replaceOutput(
	{ output: 'create_crush_everything:diamond_shard' },
	'create_crush_everything:diamond_shard',            // Arg 2: the item to replace
	'create_dd:diamond_shard'         // Arg 3: the item to replace it with
  )
  event.replaceInput(
  { mod: 'create_dd', type: 'minecraft:crafting_shaped' },
  'create:scorchia',
  'createindustry:asphalt'
  )
	event.shaped(
  Item.of('v_borne:andesite_drill_head', 1), // arg 1: output
  [
    ' B ',
    'CAC', // arg 2: the shape (array of strings)
    'AAA'
  ],
  {
    A: 'create:andesite_alloy',
	B: 'minecraft:iron_nugget',
	C: 'create:iron_sheet',
  })
	event.shaped(
  Item.of('create_sa:brass_drill_head', 1), // arg 1: output
  [
    'CBC',
    'BAB', // arg 2: the shape (array of strings)
    'CBC'
  ],
  {
    A: 'v_borne:andesite_drill_head',
    B: 'create:andesite_alloy',
	C: 'create:brass_ingot',
  })
	event.shaped(
  Item.of('v_borne:andesite_hand', 1), // arg 1: output
  [
    ' C ',
    'CBC', // arg 2: the shape (array of strings)
    ' A '
  ],
  {
    A: 'create:shaft',
    B: 'create:andesite_alloy',
	C: 'vintageimprovements:andesite_sheet'
  })
	event.shaped(
  Item.of('create:mechanical_arm', 5), // arg 1: output
  [
    'CCD',
    'C  ', // arg 2: the shape (array of strings)
    'AB '
  ],
  {
    A: 'create_dd:integrated_mechanism',
    B: 'create:brass_casing',
	C: 'create:brass_sheet',
	D: 'v_borne:andesite_hand'
  })
	event.shaped(
  Item.of('create:mechanical_arm', 1), // arg 1: output
  [
    'CCD',
    'C  ', // arg 2: the shape (array of strings)
    'AB '
  ],
  {
    A: 'create:precision_mechanism',
    B: 'create:brass_casing',
	C: 'create:brass_sheet',
	D: 'v_borne:andesite_hand'
  })
	event.shaped(
  Item.of('create:controls', 5), // arg 1: output
  [
    ' C ',
    ' B ', // arg 2: the shape (array of strings)
    ' A '
  ],
  {
    A: 'create_dd:integrated_mechanism',
    B: 'create:brass_casing',
	C: 'minecraft:lever'
  })
	event.shaped(
  Item.of('create_dd:industrial_fan', 1), // arg 1: output
  [
    '  ',
    'ABC', // arg 2: the shape (array of strings)
    '   '
  ],
  {
    A: 'design_decor:industrial_gear',
	B: 'create_dd:industrial_casing',
	C: 'create:propeller',
  })
	event.recipes.create.mechanical_crafting('create_dd:excavation_drill', [
    'DBC ',
    ' BAA'
  ], {
	A: 'create:brass_ingot',
	B: 'create_dd:bury_blend',
	C: 'create_dd:integrated_mechanism',
	D: 'create_sa:brass_drill_head'
  })
  	event.shapeless(
  Item.of('minecraft:diamond', 1), // arg 1: output
	[
		'4x create_dd:diamond_shard',
	])
  	event.shapeless(
  Item.of('create:mechanical_drill', 3), // arg 1: output
	[
		'create:andesite_casing',
		'v_borne:andesite_drill_head'
	])
  	event.shapeless(
  Item.of('create:rotation_speed_controller', 5), // arg 1: output
	[
		'create_dd:integrated_mechanism',
		'create:brass_casing',
	])
	event.shapeless(
  Item.of('create_dd:kinetic_motor', 1), // arg 1: output
	[
		'create:andesite_casing',
		'create_dd:kinetic_mechanism',
		'v_borne:carbon_brush'
	])
	event.shapeless(
  Item.of('create:gearbox', 5), // arg 1: output
	[
		'create:andesite_casing',
		'create_dd:kinetic_mechanism',
	])
    let inter = "v_borne:unfinished_gabbro"; // making a variable to store the transitional item makes the code more readable
    event.recipes.create
        .sequenced_assembly(
            [
                Item.of("create_dd:gabbro").withChance(88.0), // this is the item that will appear in JEI as the result
				Item.of("minecraft:water_bucket").withChance(6.0),
				Item.of("minecraft:obsidian").withChance(6.0),// the rest of these items will be part of the scrap
            ],
            "minecraft:magma_block",
            [
                // the transitional item is a variable, that is 'kubejs:incomplete_bauxite' and is used during the intermediate stages of the assembly
                event.recipes.createDeploying(inter, [inter, 'mekanism:enriched_iron']),
				event.recipes.createFilling(inter, [inter, Fluid.water(333)]),
                event.recipes.createPressing(inter, inter),
            ]
        )
        .transitionalItem(inter)
        .loops(3); // set the transitional item and the number of loops
	event.recipes.create.mixing(
	'create:chromatic_compound',
	['4x create:powdered_obsidian', '4x minecraft:glowstone_dust', 'create:polished_rose_quartz', '2x minecraft:amethyst_shard']).superheated()
    let inter2 = "create_dd:incomplete_integrated_mechanism"; // making a variable to store the transitional item makes the code more readable
    event.recipes.create
        .sequenced_assembly(
            [
                Item.of("create_dd:integrated_mechanism").withChance(88.0), // this is the item that will appear in JEI as the result
				Item.of("create:precision_mechanism").withChance(4.0),
				Item.of("create:brass_sheet").withChance(6.0),// the rest of these items will be part of the scrap
            ],
            "create:brass_sheet",
            [
                // the transitional item is a variable, that is 'kubejs:incomplete_bauxite' and is used during the intermediate stages of the assembly
                event.recipes.createDeploying(inter2, [inter2, 'create_dd:integrated_circuit']),
				event.recipes.createDeploying(inter2, [inter2, 'create:cogwheel']),
				event.recipes.createDeploying(inter2, [inter2, 'create:electron_tube']),
            ]
        )
        .transitionalItem(inter2)
        .loops(3); // set the transitional item and the number of loops
	event.recipes.create.crushing(
	['create_dd:coal_piece', Item.of('create_dd:coal_piece').withChance(0.75), Item.of('create_dd:coal_piece').withChance(0.5), Item.of('create:scoria').withChance(0.25)],
	'#create:stone_types/scorchia')
	event.recipes.create.crushing(
	[Item.of("create:crushed_raw_nickel").withChance(0.40), Item.of("create:experience_nugget").withChance(0.25), Item.of("create:crushed_raw_osmium").withChance(0.12)],
	'#create_dd:stone_types/gabbro')
    let inter3 = "create_dd:incomplete_integrated_circuit"; // making a variable to store the transitional item makes the code more readable
    event.recipes.create
        .sequenced_assembly(
            [
                Item.of("create_dd:integrated_circuit").withChance(86.0), // this is the item that will appear in JEI as the result
				Item.of("create:electron_tube").withChance(8.0),
				Item.of("createaddition:electrum_ingot").withChance(6.0),// the rest of these items will be part of the scrap
            ],
            "create:brass_sheet",
            [
                // the transitional item is a variable, that is 'kubejs:incomplete_bauxite' and is used during the intermediate stages of the assembly
				event.recipes.createDeploying(inter3, [inter3, 'mekanism:enriched_redstone']),
				event.recipes.createDeploying(inter3, [inter3, 'createaddition:electrum_ingot']),
				event.recipes.createDeploying(inter3, [inter3, 'v_borne:lapis_sheet']),
				event.recipes.createDeploying(inter3, [inter3, 'mekanism:hdpe_pellet']),
				event.recipes.createPressing(inter3, inter3),
            ]
        )
        .transitionalItem(inter3)
        .loops(1); // set the transitional item and the number of loops
	event.recipes.create.mechanical_crafting('create_dd:hydraulic_press', [
    ' E ',
    'DCD',
    'ABA'
  ], {
	A: 'minecraft:copper_block',
	B: 'create:mechanical_press',
	C: 'create_dd:hydraulic_casing',
    D: 'create:fluid_pipe',
	E: 'create_sa:hydraulic_engine'
  })
	event.recipes.create.crushing(
	'4x create_dd:diamond_shard',
	'minecraft:diamond')
    let inter4 = "create_dd:incomplete_kinetic_mechanism"; // making a variable to store the transitional item makes the code more readable
    event.recipes.create
        .sequenced_assembly(
            [
                Item.of("create_dd:kinetic_mechanism").withChance(90.0), // this is the item that will appear in JEI as the result
				Item.of("create:shaft").withChance(6.0),
				Item.of("create:super_glue").withChance(4.0),// the rest of these items will be part of the scrap
            ],
            "create:iron_sheet",
            [
                // the transitional item is a variable, that is 'kubejs:incomplete_bauxite' and is used during the intermediate stages of the assembly
                event.recipes.createDeploying(inter4, [inter4, 'create:andesite_alloy']),
				event.recipes.createDeploying(inter4, [inter4, 'create:cogwheel']),
				event.recipes.createDeploying(inter4, [inter4, '#forge:slimeballs']),
				event.recipes.createDeploying(inter4, [inter4, 'create:zinc_nugget']),
            ]
        )
        .transitionalItem(inter4)
        .loops(2); // set the transitional item and the number of loops
	event.shapeless(
  Item.of('create_dd:black_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:black_dye'
	])
	event.shapeless(
  Item.of('create_dd:blue_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:blue_dye'
	])
	event.shapeless(
  Item.of('create_dd:light_blue_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:light_blue_dye'
	])
	event.shapeless(
  Item.of('create_dd:red_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:red_dye'
	])
	event.shapeless(
  Item.of('create_dd:green_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:green_dye'
	])
	event.shapeless(
  Item.of('create_dd:lime_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:lime_dye'
	])
	event.shapeless(
  Item.of('create_dd:pink_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:pink_dye'
	])
	event.shapeless(
  Item.of('create_dd:magenta_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:magenta_dye'
	])
	event.shapeless(
  Item.of('create_dd:yellow_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:yellow_dye'
	])
	event.shapeless(
  Item.of('create_dd:gray_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:gray_dye'
	])
	event.shapeless(
  Item.of('create_dd:light_gray_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:light_gray_dye'
	])
	event.shapeless(
  Item.of('create_dd:brown_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:brown_dye'
	])
	event.shapeless(
  Item.of('create_dd:cyan_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:cyan_dye'
	])
	event.shapeless(
  Item.of('create_dd:purple_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:purple_dye'
	])
	event.shapeless(
  Item.of('create_dd:orange_asphalt_block', 4), // arg 1: output
	[
		'4x create_dd:white_asphalt_block',
		'minecraft:orange_dye'
	])
})