// If there are any errors, it's probably due to me misspelling an ID or putting in a non-existent one
ServerEvents.recipes(event => {
  
  // Extra recipe relating to variants
  
  // Cutting using a Stonecutter
  let blockCutting = (base, variant) => {
    event.remove({ output: variant.replace(/.* /, "") }) // Make this not remove slab combining recipes OR remove all slab combining recipes
    event.stonecutting(variant, base)
  }
  
  let twoxcrafting = (base, variant) => {
    event.remove({ output: variant.replace(/.* /, "") })
    event.shaped(variant, [
      'AA ',
      'AA ',
      '   '
    ],{
      A: base,
    })
  }
  
  let stairs = (base, variant) => {
    event.remove({ output: variant.replace(/.* /, "") })
    event.shaped(variant, [
      'A  ',
      'AA ',
      'AAA'
    ],{
      A: base,
    })
  }
  
  let slab = (base, variant) => {
    event.remove({ output: variant.replace(/.* /, "") })
    event.shaped(variant, [
      'AAA',
      '   ',
      '   '
    ],{
      A: base,
    })
  }
  
  let verticalslab = (base, variant) => {
    event.remove({ output: variant.replace(/.* /, "") })
    event.shaped(variant, [
      'A  ',
      'A  ',
      'A  '
    ],{
      A: base,
    })
  }
  
  let wall = (base, variant) => {
    event.remove({ output: variant.replace(/.* /, "") })
    event.shaped(variant, [
      'AAA',
      'AAA',
      '   '
    ],{
      A: base,
    })
  }
  
  // Cutting ratios:
  // 1 for full block or wall
  // 2 for slab or stairs
  // 4 for anything else, e.g chain, door, trapdoor
  
  
  
  // --- METALS ---
  
  // IRON
  blockCutting('minecraft:iron_block', '1x quark:iron_pillar')
  blockCutting('minecraft:iron_block', '1x quark:iron_plate')
  blockCutting('minecraft:iron_block', '2x quark:iron_plate_slab')
  blockCutting('minecraft:iron_block', '2x quark:iron_plate_stairs')
  blockCutting('minecraft:iron_block', '2x quark:iron_plate_vertical_slab')
  blockCutting('minecraft:iron_block', '4x minecraft:chain')
  blockCutting('minecraft:iron_block', '4x minecraft:iron_bars')
  blockCutting('minecraft:iron_block', '4x minecraft:iron_door')
  blockCutting('minecraft:iron_block', '4x minecraft:iron_trapdoor')
  blockCutting('minecraft:iron_block', '4x quark:grate')
  blockCutting('minecraft:iron_block', '4x quark:iron_button')
  blockCutting('minecraft:iron_block', '4x quark:iron_ladder')
  blockCutting('minecraft:iron_block', '4x supplementaries:iron_gate')
  
  // RAW IRON
  blockCutting('minecraft:raw_iron_block', '1x quark:raw_iron_bricks_wall')
  blockCutting('minecraft:raw_iron_block', '1x quark:raw_iron_bricks')
  blockCutting('minecraft:raw_iron_block', '2x quark:raw_iron_bricks_slab')
  blockCutting('minecraft:raw_iron_block', '2x quark:raw_iron_bricks_stairs')
  blockCutting('minecraft:raw_iron_block', '2x quark:raw_iron_bricks_vertical_slab')
  
  // COPPER
  blockCutting('minecraft:copper_block', '1x minecraft:cut_copper')
  blockCutting('minecraft:copper_block', '4x caverns_and_chasms:copper_bars')
  blockCutting('minecraft:copper_block', '2x minecraft:cut_copper_stairs')
  blockCutting('minecraft:copper_block', '4x minecraft:lightning_rod')
  blockCutting('minecraft:copper_block', '4x caverns_and_chasms:copper_button')
  blockCutting('minecraft:copper_block', '2x minecraft:cut_copper_slab')
  blockCutting('minecraft:copper_block', '2x quark:cut_copper_vertical_slab')
  
  // RAW COPPER
  blockCutting('minecraft:raw_copper_block', '1x quark:raw_copper_bricks_wall')
  blockCutting('minecraft:raw_copper_block', '1x quark:raw_copper_bricks')
  blockCutting('minecraft:raw_copper_block', '2x quark:raw_copper_bricks_slab')
  blockCutting('minecraft:raw_copper_block', '2x quark:raw_copper_bricks_stairs')
  blockCutting('minecraft:raw_copper_block', '2x quark:raw_copper_bricks_vertical_slab')
  
  // GOLD
  blockCutting('minecraft:gold_block', '4x quark:gold_bars')
  blockCutting('minecraft:gold_block', '4x quark:gold_button')
  blockCutting('minecraft:gold_block', '4x supplementaries:gold_door')
  blockCutting('minecraft:gold_block', '4x supplementaries:gold_gate')
  blockCutting('minecraft:gold_block', '4x supplementaries:gold_trapdoor')
  
  // RAW GOLD
  blockCutting('minecraft:raw_gold_block', '1x quark:raw_gold_bricks_wall')
  blockCutting('minecraft:raw_gold_block', '1x quark:raw_gold_bricks')
  blockCutting('minecraft:raw_gold_block', '2x quark:raw_gold_bricks_slab')
  blockCutting('minecraft:raw_gold_block', '2x quark:raw_gold_bricks_stairs')
  blockCutting('minecraft:raw_gold_block', '2x quark:raw_gold_bricks_vertical_slab')
  
  // NETHERITE
  blockCutting('minecraft:netherite_block', '1x netherexp:cut_netherite_block')
  blockCutting('minecraft:netherite_block', '1x netherexp:cut_netherite_pillar')
  blockCutting('minecraft:netherite_block', '1x netherexp:netherite_grate')
  blockCutting('minecraft:netherite_block', '1x netherexp:netherite_plated_block')
  blockCutting('minecraft:netherite_block', '2x netherexp:cut_netherite_slab')
  blockCutting('minecraft:netherite_block', '2x netherexp:cut_netherite_stairs')
  blockCutting('minecraft:netherite_block', '4x supplementaries:netherite_door')
  blockCutting('minecraft:netherite_block', '4x supplementaries:netherite_trapdoor')
  
  // BRONZE
  blockCutting('unify:bronze_block', '1x mobs_of_mythology:cut_bronze_block')
  
  // LEAD
  blockCutting('unify:lead_block', '1x oreganized:cut_lead')
  blockCutting('unify:lead_block', '1x oreganized:lead_bricks')
  blockCutting('unify:lead_block', '1x oreganized:lead_pillar')
  blockCutting('unify:lead_block', '4x oreganized:lead_bars')
  blockCutting('unify:lead_block', '4x oreganized:lead_door')
  blockCutting('unify:lead_block', '4x oreganized:lead_trapdoor')
  
  // SILVER
  blockCutting('unify:silver_block', '1x galosphere:silver_panel')
  blockCutting('unify:silver_block', '1x galosphere:silver_tiles')
  blockCutting('unify:silver_block', '2x galosphere:silver_panel_slab')
  blockCutting('unify:silver_block', '2x galosphere:silver_panel_stairs')
  blockCutting('unify:silver_block', '2x galosphere:silver_tiles_slab')
  blockCutting('unify:silver_block', '2x galosphere:silver_tiles_stairs')
  blockCutting('unify:silver_block', '2x v_slab_compat:galosphere/silver_panel_vertical_slab')
  blockCutting('unify:silver_block', '2x v_slab_compat:galosphere/silver_tiles_vertical_slab')
  blockCutting('unify:silver_block', '4x caverns_and_chasms:silver_bars')
  
  
  
  // --- GEMS ---
  
  // JADE
  blockCutting('sullysmod:jade_block', '1x sullysmod:chiseled_jade')
  blockCutting('sullysmod:jade_block', '1x sullysmod:jade_brick_wall')
  blockCutting('sullysmod:jade_block', '1x sullysmod:jade_bricks')
  blockCutting('sullysmod:jade_block', '1x sullysmod:jade_pillar')
  blockCutting('sullysmod:jade_block', '1x sullysmod:jade_totem')
  blockCutting('sullysmod:jade_block', '2x sullysmod:jade_brick_slab')
  blockCutting('sullysmod:jade_block', '2x sullysmod:jade_brick_stairs')
  
  // LAPIS
  blockCutting('minecraft:lapis_block', '1x caverns_and_chasms:lapis_brick_wall')
  blockCutting('minecraft:lapis_block', '1x caverns_and_chasms:lapis_bricks')
  blockCutting('minecraft:lapis_block', '1x caverns_and_chasms:lapis_pillar')
  blockCutting('minecraft:lapis_block', '2x caverns_and_chasms:lapis_brick_slab')
  blockCutting('minecraft:lapis_block', '2x caverns_and_chasms:lapis_brick_stairs')
  blockCutting('minecraft:lapis_block', '2x v_slab_compat:caverns_and_chasms/lapis_brick_vertical_slab')
  
  
  // AMETHYST
  blockCutting('minecraft:amethyst_block', '1x caverns_and_chasms:cut_amethyst_brick_wall')
  blockCutting('minecraft:amethyst_block', '1x caverns_and_chasms:cut_amethyst_bricks')
  blockCutting('minecraft:amethyst_block', '1x caverns_and_chasms:cut_amethyst')
  blockCutting('minecraft:amethyst_block', '1x galosphere:chiseled_amethyst')
  blockCutting('minecraft:amethyst_block', '1x galosphere:smooth_amethyst')
  blockCutting('minecraft:amethyst_block', '2x caverns_and_chasms:cut_amethyst_brick_slab')
  blockCutting('minecraft:amethyst_block', '2x caverns_and_chasms:cut_amethyst_brick_stairs')
  blockCutting('minecraft:amethyst_block', '2x galosphere:amethyst_slab')
  blockCutting('minecraft:amethyst_block', '2x galosphere:amethyst_stairs')
  blockCutting('minecraft:amethyst_block', '2x galosphere:smooth_amethyst_slab')
  blockCutting('minecraft:amethyst_block', '2x galosphere:smooth_amethyst_stairs')
  blockCutting('minecraft:amethyst_block', '2x v_slab_compat:caverns_and_chasms/cut_amethyst_brick_vertical_slab')
  blockCutting('minecraft:amethyst_block', '2x v_slab_compat:galosphere/smooth_amethyst_vertical_slab')
  
  // AMBER
  
  // ALLURITE
  
  // LUMIERE
  
  
  
  // --- STONES ---
  
  // STONE
  /*blockCutting('minecraft:stone', '1x minecraft:chiseled_stone_bricks')
  blockCutting('minecraft:stone', '1x minecraft:stone_brick_wall')
  blockCutting('minecraft:stone', '1x minecraft:stone_bricks')
  blockCutting('minecraft:stone', '1x supplementaries:stone_tile_wall')
  blockCutting('minecraft:stone', '1x supplementaries:stone_tile')
  blockCutting('minecraft:stone', '2x minecraft:stone_brick_slab')
  blockCutting('minecraft:stone', '2x minecraft:stone_brick_stairs')
  blockCutting('minecraft:stone', '2x minecraft:stone_slab')
  blockCutting('minecraft:stone', '2x minecraft:stone_stairs')
  blockCutting('minecraft:stone', '2x quark:stone_brick_vertical_slab')
  blockCutting('minecraft:stone', '2x quark:stone_vertical_slab')
  blockCutting('minecraft:stone', '2x supplementaries:stone_tile_slab')
  blockCutting('minecraft:stone', '2x supplementaries:stone_tile_stairs')
  blockCutting('minecraft:stone', '2x v_slab_compat:supplementaries/stone_tile_vertical_slab')
  blockCutting('minecraft:stone', '4x minecraft:stone_button')
  blockCutting('minecraft:stone', '4x minecraft:stone_pressure_plate')*/
  
  // COBBLESTONE
  blockCutting('minecraft:cobblestone', '1x caverns_and_chasms:cobblestone_brick_wall')
  blockCutting('minecraft:cobblestone', '1x caverns_and_chasms:cobblestone_bricks')
  blockCutting('minecraft:cobblestone', '1x caverns_and_chasms:cobblestone_tile_wall')
  blockCutting('minecraft:cobblestone', '1x caverns_and_chasms:cobblestone_tiles')
  blockCutting('minecraft:cobblestone', '1x minecraft:cobblestone_wall')
  blockCutting('minecraft:cobblestone', '1x quark:cobblestone_bricks_wall')
  blockCutting('minecraft:cobblestone', '1x quark:cobblestone_bricks')
  blockCutting('minecraft:cobblestone', '2x caverns_and_chasms:cobblestone_brick_slab')
  blockCutting('minecraft:cobblestone', '2x caverns_and_chasms:cobblestone_brick_stairs')
  blockCutting('minecraft:cobblestone', '2x caverns_and_chasms:cobblestone_tile_slab')
  blockCutting('minecraft:cobblestone', '2x caverns_and_chasms:cobblestone_tile_stairs')
  blockCutting('minecraft:cobblestone', '2x minecraft:cobblestone_slab')
  blockCutting('minecraft:cobblestone', '2x minecraft:cobblestone_stairs')
  blockCutting('minecraft:cobblestone', '2x quark:cobblestone_bricks_slab')
  blockCutting('minecraft:cobblestone', '2x quark:cobblestone_bricks_stairs')
  blockCutting('minecraft:cobblestone', '2x quark:cobblestone_bricks_vertical_slab')
  blockCutting('minecraft:cobblestone', '2x quark:cobblestone_vertical_slab')
  blockCutting('minecraft:cobblestone', '2x v_slab_compat:caverns_and_chasms/cobblestone_brick_vertical_slab')
  blockCutting('minecraft:cobblestone', '2x v_slab_compat:caverns_and_chasms/cobblestone_tile_vertical_slab')
  
  // Driftshale/Quicksoil
  twoxcrafting('aether_redux:driftshale', 'aether_redux:polished_driftshale')
  twoxcrafting('aether_redux:polished_driftshale', 'ascended_quark:quicksoil_bricks')

  blockCutting('aether:quicksoil', '1x ascended_quark:quicksoil_bricks_wall')
  blockCutting('aether:quicksoil', '1x ascended_quark:quicksoil_bricks')
  blockCutting('aether:quicksoil', '2x ascended_quark:quicksoil_bricks_slab')
  blockCutting('aether:quicksoil', '2x ascended_quark:quicksoil_bricks_stairs')
  blockCutting('aether:quicksoil', '2x ascended_quark:quicksoil_bricks_vertical_slab')

  blockCutting('aether_redux:driftshale', '1x ascended_quark:quicksoil_bricks_wall')
  blockCutting('aether_redux:driftshale', '1x ascended_quark:quicksoil_bricks')
  blockCutting('aether_redux:driftshale', '2x ascended_quark:quicksoil_bricks_slab')
  blockCutting('aether_redux:driftshale', '2x ascended_quark:quicksoil_bricks_stairs')
  blockCutting('aether_redux:driftshale', '2x ascended_quark:quicksoil_bricks_vertical_slab')

  blockCutting('aether_redux:polished_driftshale', '1x ascended_quark:quicksoil_bricks_wall')
  blockCutting('aether_redux:polished_driftshale', '1x ascended_quark:quicksoil_bricks')
  blockCutting('aether_redux:polished_driftshale', '2x ascended_quark:quicksoil_bricks_slab')
  blockCutting('aether_redux:polished_driftshale', '2x ascended_quark:quicksoil_bricks_stairs')
  blockCutting('aether_redux:polished_driftshale', '2x ascended_quark:quicksoil_bricks_vertical_slab')



  blockCutting('aether:quicksoil', '1x aether_redux:polished_driftshale_wall')
  blockCutting('aether:quicksoil', '1x aether_redux:polished_driftshale')
  blockCutting('aether:quicksoil', '2x aether_redux:polished_driftshale_slab')
  blockCutting('aether:quicksoil', '2x aether_redux:polished_driftshale_stairs')
  blockCutting('aether:quicksoil', '2x v_slab_compat:aether_redux/polished_driftshale_vertical_slab')

  blockCutting('aether_redux:driftshale', '1x aether_redux:polished_driftshale_wall')
  blockCutting('aether_redux:driftshale', '1x aether_redux:polished_driftshale')
  blockCutting('aether_redux:driftshale', '2x aether_redux:polished_driftshale_slab')
  blockCutting('aether_redux:driftshale', '2x aether_redux:polished_driftshale_stairs')
  blockCutting('aether_redux:driftshale', '2x v_slab_compat:aether_redux/polished_driftshale_vertical_slab')

  blockCutting('aether_redux:polished_driftshale', '1x aether_redux:polished_driftshale_wall')
  blockCutting('aether_redux:polished_driftshale', '1x aether_redux:polished_driftshale')
  blockCutting('aether_redux:polished_driftshale', '2x aether_redux:polished_driftshale_slab')
  blockCutting('aether_redux:polished_driftshale', '2x aether_redux:polished_driftshale_stairs')
  blockCutting('aether_redux:polished_driftshale', '2x v_slab_compat:aether_redux/polished_driftshale_vertical_slab')
  
})