ServerEvents.recipes(event => {
    
    // Small Item Port Input
    event.shaped('mm:small_item_port_input',
        [' 1 ', ' 2 ', '   '], {
        1: 'minecraft:hopper', 
        2: '#forge:storage_blocks/redstone'
    }).id('mm:small_item_port_input')
    
    // Item Port Input
    event.shaped('mm:item_port_input',
        [' 1 ', ' 2 ', ' 3 '], {
        1: 'minecraft:hopper', 
        2: 'mm:small_item_port_input', 
        3: '#forge:storage_blocks/redstone'
    }).id('mm:item_port_input')
    
    // Large Item Port Input
    event.shaped('mm:large_item_port_input',
        ['121', '343', '121'], {
        1: 'minecraft:hopper', 
        2: 'mm:item_port_input', 
        3: '#forge:storage_blocks/redstone',
        4: 'minecraft:iron_block'
    }).id('mm:large_item_port_input')
    
    // Huge Item Port Input
    event.shaped('mm:huge_item_port_input',
        ['121', '232', '121'], {
        1: 'minecraft:hopper', 
        2: 'mm:large_item_port_input', 
        3: 'minecraft:iron_block'
    }).id('mm:huge_item_port_input')
    
    // Maxed Item Port Input
    event.shaped('mm:maxed_item_port_input',
        ['121', '232', '121'], {
        1: 'minecraft:hopper', 
        2: 'mm:huge_item_port_input', 
        3: 'minecraft:iron_block'
    }).id('mm:maxed_item_port_input')
    
    // Small power Port Input
    event.shaped('mm:small_power_port_input',
        [' 1 ', ' 2 ', '   '], {
        1: 'minecraft:comparator', 
        2: '#forge:storage_blocks/redstone'
    }).id('mm:small_power_port_input')

    // power Port Input
    event.shaped('mm:power_port_input',
        [' 1 ', ' 2 ', ' 3 '], {
        1: 'minecraft:comparator', 
        2: 'mm:small_power_port_input', 
        3: '#forge:storage_blocks/redstone'
    }).id('mm:power_port_input')

    // Large power Port Input
    event.shaped('mm:large_power_port_input',
        ['121', '343', '121'], {
        1: 'minecraft:comparator', 
        2: 'mm:power_port_input', 
        3: '#forge:storage_blocks/redstone',
        4: 'minecraft:iron_block'
    }).id('mm:large_power_port_input')

    // Huge power Port Input
    event.shaped('mm:huge_power_port_input',
        ['121', '232', '121'], {
        1: 'minecraft:comparator', 
        2: 'mm:large_power_port_input', 
        3: 'minecraft:iron_block'
    }).id('mm:huge_power_port_input')

    // Maxed power Port Input
    event.shaped('mm:maxed_power_port_input',
        ['121', '232', '121'], {
        1: 'minecraft:comparator', 
        2: 'mm:huge_power_port_input', 
        3: 'minecraft:iron_block'
    }).id('mm:maxed_power_port_input')

    // Small Fluid Port Input
    event.shaped('mm:small_fluid_port_input',
        [' 1 ', ' 2 ', '   '], {
        1: 'minecraft:bucket', 
        2: '#forge:storage_blocks/redstone'
    }).id('mm:small_fluid_port_input')

    // Large Fluid Port Input
    event.shaped('mm:large_fluid_port_input',
        ['121', '343', '121'], {
        1: 'minecraft:bucket', 
        2: 'mm:small_fluid_port_input', 
        3: '#forge:storage_blocks/redstone',
        4: 'minecraft:iron_block'
    }).id('mm:large_fluid_port_input')

    // Maxed Fluid Port Input
    event.shaped('mm:maxed_fluid_port_input',
        ['121', '232', '121'], {
        1: 'minecraft:bucket', 
        2: 'mm:large_fluid_port_input', 
        3: 'minecraft:iron_block'
    }).id('mm:maxed_fluid_port_input')

    // Small Item Port Input to Output
    event.shapeless(
        Item.of('mm:small_item_port_output'), 
        ['mm:small_item_port_input']
    ).id('mm:small_item_port_output_from_input')

    // Small Item Port Output to Input
    event.shapeless(
        Item.of('mm:small_item_port_input'), 
        ['mm:small_item_port_output']
    ).id('mm:small_item_port_input_from_output')

    // Item Port Input to Output
    event.shapeless(
        Item.of('mm:item_port_output'), 
        ['mm:item_port_input']
    ).id('mm:item_port_output_from_input')

    // Item Port Output to Input
    event.shapeless(
        Item.of('mm:item_port_input'), 
        ['mm:item_port_output']
    ).id('mm:item_port_input_from_output')

    // Large Item Port Input to Output
    event.shapeless(
        Item.of('mm:large_item_port_output'), 
        ['mm:large_item_port_input']
    ).id('mm:large_item_port_output_from_input')

    // Large Item Port Output to Input
    event.shapeless(
        Item.of('mm:large_item_port_input'), 
        ['mm:large_item_port_output']
    ).id('mm:large_item_port_input_from_output')

    // Huge Item Port Input to Output
    event.shapeless(
        Item.of('mm:huge_item_port_output'), 
        ['mm:huge_item_port_input']
    ).id('mm:huge_item_port_output_from_input')

    // Huge Item Port Output to Input
    event.shapeless(
        Item.of('mm:huge_item_port_input'), 
        ['mm:huge_item_port_output']
    ).id('mm:huge_item_port_input_from_output')

    // Maxed Item Port Input to Output
    event.shapeless(
        Item.of('mm:maxed_item_port_output'), 
        ['mm:maxed_item_port_input']
    ).id('mm:maxed_item_port_output_from_input')

    // Maxed Item Port Output to Input
    event.shapeless(
        Item.of('mm:maxed_item_port_input'), 
        ['mm:maxed_item_port_output']
    ).id('mm:maxed_item_port_input_from_output')

    // Small power Port Input to Output
    event.shapeless(
        Item.of('mm:small_power_port_output'), 
        ['mm:small_power_port_input']
    ).id('mm:small_power_port_output_from_input')

    // Small power Port Output to Input
    event.shapeless(
        Item.of('mm:small_power_port_input'), 
        ['mm:small_power_port_output']
    ).id('mm:small_power_port_input_from_output')

    // power Port Input to Output
    event.shapeless(
        Item.of('mm:power_port_output'), 
        ['mm:power_port_input']
    ).id('mm:power_port_output_from_input')

    // power Port Output to Input
    event.shapeless(
        Item.of('mm:power_port_input'), 
        ['mm:power_port_output']
    ).id('mm:power_port_input_from_output')

    // Large power Port Input to Output
    event.shapeless(
        Item.of('mm:large_power_port_output'), 
        ['mm:large_power_port_input']
    ).id('mm:large_power_port_output_from_input')

    // Large power Port Output to Input
    event.shapeless(
        Item.of('mm:large_power_port_input'), 
        ['mm:large_power_port_output']
    ).id('mm:large_power_port_input_from_output')

    // Huge power Port Input to Output
    event.shapeless(
        Item.of('mm:huge_power_port_output'), 
        ['mm:huge_power_port_input']
    ).id('mm:huge_power_port_output_from_input')

    // Huge power Port Output to Input
    event.shapeless(
        Item.of('mm:huge_power_port_input'), 
        ['mm:huge_power_port_output']
    ).id('mm:huge_power_port_input_from_output')

    // Maxed power Port Input to Output
    event.shapeless(
        Item.of('mm:maxed_power_port_output'), 
        ['mm:maxed_power_port_input']
    ).id('mm:maxed_power_port_output_from_input')

    // Maxed power Port Output to Input
    event.shapeless(
        Item.of('mm:maxed_power_port_input'), 
        ['mm:maxed_power_port_output']
    ).id('mm:maxed_power_port_input_from_output')

    // Small Fluid Port Input to Output
    event.shapeless(
        Item.of('mm:small_fluid_port_output'), 
        ['mm:small_fluid_port_input']
    ).id('mm:small_fluid_port_output_from_input')

    // Small Fluid Port Output to Input
    event.shapeless(
        Item.of('mm:small_fluid_port_input'), 
        ['mm:small_fluid_port_output']
    ).id('mm:small_fluid_port_input_from_output')

    // Large Fluid Port Input to Output
    event.shapeless(
        Item.of('mm:large_fluid_port_output'), 
        ['mm:large_fluid_port_input']
    ).id('mm:large_fluid_port_output_from_input')

    // Large Fluid Port Output to Input
    event.shapeless(
        Item.of('mm:large_fluid_port_input'), 
        ['mm:large_fluid_port_output']
    ).id('mm:large_fluid_port_input_from_output')

    // Maxed Fluid Port Input to Output
    event.shapeless(
        Item.of('mm:maxed_fluid_port_output'), 
        ['mm:maxed_fluid_port_input']
    ).id('mm:maxed_fluid_port_output_from_input')

    // Maxed Fluid Port Output to Input
    event.shapeless(
        Item.of('mm:maxed_fluid_port_input'), 
        ['mm:maxed_fluid_port_output']
    ).id('mm:maxed_fluid_port_input_from_output')

})
