ServerEvents.recipes(event => {
    //Inputs
    let Dirt = 'minecraft:dirt'
    let SoulSand = 'minecraft:soul_sand'
    let RedSand = 'minecraft:red_sand'
    let Gravel = 'minecraft:gravel'
    let Sand = 'minecraft:sand'
    let Dust = 'exdeorum:dust'
    let Netherrack = 'exdeorum:crushed_netherrack'
    let EndStone = 'exdeorum:crushed_end_stone'
    let Deepslate = 'exdeorum:crushed_deepslate'
    let Blackstone = 'exdeorum:crushed_blackstone'
    let Moss = 'minecraft:moss_block'
    let compInput = 'shouldn"t be used'
    let Soul_Lava = 'allthemodium:soul_lava'

    let StringMesh = 'exdeorum:string_mesh'
    let FlintMesh = 'exdeorum:flint_mesh'
    let IronMesh = 'exdeorum:iron_mesh'
    let GoldMesh = 'exdeorum:golden_mesh'
    let DiamondMesh = 'exdeorum:diamond_mesh'
    let NetheriteMesh = 'exdeorum:netherite_mesh'

    let addSifting = (input, mesh, output, amount, chance) => {
        if(input == Dirt) {
            compInput = 'compressium:dirt_1'
        } else if (input == SoulSand) {
            compInput = 'compressium:soulsand_1'
        } else if (input == RedSand) {
            compInput = 'compressium:redsand_1'
        } else if (input == Gravel) {
            compInput = 'compressium:gravel_1'
        } else if (input == Sand) {
            compInput = 'compressium:sand_1'
        } else if (input == Dust) {
            compInput = 'exdeorum:compressed_dust'
        } else if (input == Netherrack) {
            compInput = 'exdeorum:compressed_crushed_netherrack'
        } else if (input == EndStone) {
            compInput = 'exdeorum:compressed_crushed_end_stone'
        } else if (input == Deepslate) {
            compInput = 'exdeorum:compressed_crushed_deepslate'
        } else if (input == Blackstone) {
            compInput = 'exdeorum:compressed_crushed_blackstone'
        } else if (input == Moss) {
            compInput = 'exdeorum:compressed_moss_block'
        }
        event.custom(
            {
                type: 'exdeorum:sieve',
                ingredient: {
                    item: input
                },
                mesh: mesh,
                result: output,
                result_amount: {
                    type: 'minecraft:binomial',
                    n: amount,
                    p: chance
                }
            }
        )
        event.custom(
            {
                type: 'exdeorum:compressed_sieve',
                ingredient: {
                    item: compInput
                },
                mesh: mesh,
                result: output,
                result_amount: {
                    type: 'minecraft:binomial',
                    n: amount*9,
                    p: chance
                }
            }
        )
    }

    let addHammer = (input, output) => {
        event.custom(
            {
                type: 'exdeorum:hammer',
                ingredient: [
                    {
                        item: input
                    }
                ],
                result: output,
                result_amount: 1.0
            }
        )
    }

    let addBarrelMixing = (fluid, input, output) => {
        event.custom(
            {
                type: 'exdeorum:barrel_mixing',
                fluid: fluid,
                fluid_amount: 1000,
                ingredient: {
                    item: input
                },
                result: output
            }
        )
    }

    let addBarrelFluidMixing = (base, input, consume, output) => {
        event.custom(
            {
                type: 'exdeorum:barrel_fluid_mixing',
                additive_fluid: input,
                base_fluid: base,
                base_fluid_amount: 1000,
                consumes_additive: consume,
                result: output
            }
        )
    }
    
    let addHeatSource = (block, heat) => {
        event.custom(
            {
                type: 'exdeorum:crucible_heat_source',
                block_predicate: {
                    block: block
                },
                heat_value: heat
            }
        )
    }

    let addHeatedCrucible = (input, fluid, amount) => {
        event.custom(
            {
                type: 'exdeorum:lava_crucible',
                fluid: {
                    Amount: amount,
                    FluidName: fluid
                },
                ingredient: {
                    item: input
                }
            }
        )
    }

    // blackstone table
    addSifting(Blackstone, StringMesh, 'havenpebbles:blackstone_pebble', 2, 0.25)
    addSifting(Blackstone, StringMesh, 'havenpebbles:basalt_pebble', 2, 0.25)
    addSifting(Blackstone, StringMesh, 'minecraft:netherrack', 1, 0.15)

    addSifting(Blackstone, FlintMesh, 'havenpebbles:blackstone_pebble', 2, 0.35)
    addSifting(Blackstone, FlintMesh, 'havenpebbles:basalt_pebble', 2, 0.35)
    addSifting(Blackstone, FlintMesh, 'exdeorum:gold_ore_chunk', 1, 0.15)
    addSifting(Blackstone, FlintMesh, 'minecraft:netherrack', 2, 0.2)

    addSifting(Blackstone, IronMesh, 'havenpebbles:blackstone_pebble', 3, 0.2)
    addSifting(Blackstone, IronMesh, 'havenpebbles:basalt_pebble', 3, 0.2)
    addSifting(Blackstone, IronMesh, 'exdeorum:gold_ore_chunk', 1, 0.2)
    addSifting(Blackstone, IronMesh, 'minecraft:netherrack', 2, 0.3)

    addSifting(Blackstone, GoldMesh, 'havenpebbles:blackstone_pebble', 3, 0.3)
    addSifting(Blackstone, GoldMesh, 'havenpebbles:basalt_pebble', 3, 0.3)
    addSifting(Blackstone, GoldMesh, 'exdeorum:gold_ore_chunk', 2, 0.2)
    addSifting(Blackstone, GoldMesh, 'minecraft:blaze_powder', 1, 0.05)

    addSifting(Blackstone, DiamondMesh, 'havenpebbles:blackstone_pebble', 3, 0.2)
    addSifting(Blackstone, DiamondMesh, 'havenpebbles:basalt_pebble', 2, 0.2)
    addSifting(Blackstone, DiamondMesh, 'exdeorum:gold_ore_chunk', 2, 0.25)
    addSifting(Blackstone, DiamondMesh, 'minecraft:blaze_powder', 1, 0.08)
    addSifting(Blackstone, DiamondMesh, 'minecraft:ancient_debris', 1, 0.03)

    addSifting(Blackstone, NetheriteMesh, 'havenpebbles:blackstone_pebble', 3, 0.25)
    addSifting(Blackstone, NetheriteMesh, 'havenpebbles:basalt_pebble', 3, 0.20)
    addSifting(Blackstone, NetheriteMesh, 'exdeorum:gold_ore_chunk', 3, 0.25)
    addSifting(Blackstone, NetheriteMesh, 'minecraft:blaze_powder', 1, 0.15)
    addSifting(Blackstone, NetheriteMesh, 'minecraft:ancient_debris', 1, 0.06)
    addSifting(Blackstone, NetheriteMesh, 'thermal:sulfur', 1, 0.10)

    // deepslate table
    addSifting(Deepslate, StringMesh, 'havenpebbles:deepslate_pebble', 1, 0.2)
    addSifting(Deepslate, StringMesh, 'havenpebbles:tuff_pebble', 1, 0.2)
    addSifting(Deepslate, StringMesh, 'havenpebbles:calcite_pebble', 1, 0.2)
    addSifting(Deepslate, StringMesh, 'exdeorum:iron_ore_chunk', 1, 0.2)
    addSifting(Deepslate, StringMesh, 'exdeorum:iron_ore_chunk', 2, 0.1)

    addSifting(Deepslate, FlintMesh, 'havenpebbles:deepslate_pebble', 1, 0.25)
    addSifting(Deepslate, FlintMesh, 'havenpebbles:tuff_pebble', 1, 0.25)
    addSifting(Deepslate, FlintMesh, 'havenpebbles:calcite_pebble', 2, 0.2)
    addSifting(Deepslate, FlintMesh, 'exdeorum:iron_ore_chunk', 2, 0.25)
    addSifting(Deepslate, FlintMesh, 'exdeorum:iron_ore_chunk', 3, 0.2)

    addSifting(Deepslate, IronMesh, 'havenpebbles:deepslate_pebble', 2, 0.2)
    addSifting(Deepslate, IronMesh, 'havenpebbles:tuff_pebble', 2, 0.2)
    addSifting(Deepslate, IronMesh, 'exdeorum:iron_ore_chunk', 2, 0.3)
    addSifting(Deepslate, IronMesh, 'exdeorum:gold_ore_chunk', 1, 0.3)
    addSifting(Deepslate, IronMesh, 'exdeorum:lead_ore_chunk', 1, 0.3)

    addSifting(Deepslate, GoldMesh, 'havenpebbles:deepslate_pebble', 2, 0.3)
    addSifting(Deepslate, GoldMesh, 'havenpebbles:tuff_pebble', 2, 0.3)
    addSifting(Deepslate, GoldMesh, 'exdeorum:gold_ore_chunk', 2, 0.15)
    addSifting(Deepslate, GoldMesh, 'exdeorum:lead_ore_chunk', 3, 0.15)
    addSifting(Deepslate, GoldMesh, 'exdeorum:platinum_ore_chunk', 1, 0.15)

    addSifting(Deepslate, DiamondMesh, 'havenpebbles:deepslate_pebble', 3, 0.3)
    addSifting(Deepslate, DiamondMesh, 'havenpebbles:tuff_pebble', 2, 0.3)
    addSifting(Deepslate, DiamondMesh, 'exdeorum:gold_ore_chunk', 2, 0.2)
    addSifting(Deepslate, DiamondMesh, 'exdeorum:lead_ore_chunk', 3, 0.35)
    addSifting(Deepslate, DiamondMesh, 'exdeorum:platinum_ore_chunk', 2, 0.15)
    addSifting(Deepslate, DiamondMesh, 'exdeorum:iridium_ore_chunk', 1, 0.20)
    addSifting(Deepslate, DiamondMesh, 'exdeorum:uranium_ore_chunk', 1, 0.15)

    addSifting(Deepslate, NetheriteMesh, 'havenpebbles:deepslate_pebble', 3, 0.4)
    addSifting(Deepslate, NetheriteMesh, 'havenpebbles:tuff_pebble', 3, 0.4)
    addSifting(Deepslate, NetheriteMesh, 'exdeorum:gold_ore_chunk', 3, 0.3)
    addSifting(Deepslate, NetheriteMesh, 'exdeorum:lead_ore_chunk', 3, 0.4)
    addSifting(Deepslate, NetheriteMesh, 'exdeorum:platinum_ore_chunk', 2, 0.25)
    addSifting(Deepslate, NetheriteMesh, 'exdeorum:iridium_ore_chunk', 2, 0.25)
    addSifting(Deepslate, NetheriteMesh, 'exdeorum:uranium_ore_chunk', 2, 0.25)
    addSifting(Deepslate, NetheriteMesh, 'thermal:apatite', 1, 0.10)

    // gravel table
    addSifting(Gravel, StringMesh, 'minecraft:flint', 1, 0.4)
    addSifting(Gravel, StringMesh, 'exdeorum:copper_ore_chunk', 2, 0.2)
    addSifting(Gravel, StringMesh, 'exdeorum:iron_ore_chunk', 1, 0.2)
    addSifting(Gravel, StringMesh, 'exdeorum:zinc_ore_chunk', 1, 0.2)

    addSifting(Gravel, FlintMesh, 'minecraft:flint', 3, 0.5)
    addSifting(Gravel, FlintMesh, 'exdeorum:copper_ore_chunk', 3, 0.3)
    addSifting(Gravel, FlintMesh, 'exdeorum:iron_ore_chunk', 2, 0.2)
    addSifting(Gravel, FlintMesh, 'exdeorum:aluminum_ore_chunk', 1, 0.25)
    addSifting(Gravel, FlintMesh, 'exdeorum:tin_ore_chunk', 2, 0.25)
    addSifting(Gravel, FlintMesh, 'exdeorum:osmium_ore_chunk', 2, 0.15)
    addSifting(Gravel, FlintMesh, 'exdeorum:nickel_ore_chunk', 1, 0.25)
    addSifting(Gravel, FlintMesh, 'exdeorum:zinc_ore_chunk', 2, 0.25)

    addSifting(Gravel, IronMesh, 'minecraft:flint', 4, 0.3)
    addSifting(Gravel, IronMesh, 'exdeorum:nickel_ore_chunk', 3, 0.3)
    addSifting(Gravel, IronMesh, 'exdeorum:copper_ore_chunk', 5, 0.2)
    addSifting(Gravel, IronMesh, 'exdeorum:iron_ore_chunk', 4, 0.25)
    addSifting(Gravel, IronMesh, 'exdeorum:aluminum_ore_chunk', 2, 0.25)
    addSifting(Gravel, IronMesh, 'exdeorum:zinc_ore_chunk', 3, 0.25)
    addSifting(Gravel, IronMesh, 'exdeorum:tin_ore_chunk', 2, 0.25)
    addSifting(Gravel, IronMesh, 'exdeorum:osmium_ore_chunk', 2, 0.25)
    addSifting(Gravel, IronMesh, 'inventorypets:nugget_diamond', 1, 0.1)

    addSifting(Gravel, GoldMesh, 'exdeorum:copper_ore_chunk', 3, 0.25)
    addSifting(Gravel, GoldMesh, 'exdeorum:iron_ore_chunk', 2, 0.25)
    addSifting(Gravel, GoldMesh, 'exdeorum:aluminum_ore_chunk', 6, 0.10)
    addSifting(Gravel, GoldMesh, 'exdeorum:zinc_ore_chunk', 4, 0.05)
    addSifting(Gravel, GoldMesh, 'exdeorum:tin_ore_chunk', 4, 0.25)
    addSifting(Gravel, GoldMesh, 'exdeorum:osmium_ore_chunk', 2, 0.05)
    addSifting(Gravel, GoldMesh, 'exdeorum:nickel_ore_chunk', 2, 0.05)
    addSifting(Gravel, GoldMesh, 'inventorypets:nugget_diamond', 3, 0.15)
    addSifting(Gravel, GoldMesh, 'exdeorum:cobalt_ore_chunk', 2, 0.05)

    addSifting(Gravel, DiamondMesh, 'exdeorum:osmium_ore_chunk', 1, 0.2)
    addSifting(Gravel, DiamondMesh, 'exdeorum:copper_ore_chunk', 4, 0.2)
    addSifting(Gravel, DiamondMesh, 'exdeorum:iron_ore_chunk', 4, 0.2)
    addSifting(Gravel, DiamondMesh, 'exdeorum:aluminum_ore_chunk', 4, 0.10)
    addSifting(Gravel, DiamondMesh, 'exdeorum:zinc_ore_chunk', 4, 0.1)
    addSifting(Gravel, DiamondMesh, 'exdeorum:tin_ore_chunk', 3, 0.1)
    addSifting(Gravel, DiamondMesh, 'exdeorum:nickel_ore_chunk', 3, 0.1)
    addSifting(Gravel, DiamondMesh, 'minecraft:diamond', 1, 0.1)

    addSifting(Gravel, NetheriteMesh, 'minecraft:diamond', 2, 0.20)
    addSifting(Gravel, NetheriteMesh, 'exdeorum:osmium_ore_chunk', 3, 0.20)
    addSifting(Gravel, NetheriteMesh, 'exdeorum:copper_ore_chunk', 7, 0.30)
    addSifting(Gravel, NetheriteMesh, 'exdeorum:iron_ore_chunk', 6, 0.3)
    addSifting(Gravel, NetheriteMesh, 'exdeorum:aluminum_ore_chunk', 3, 0.20)
    addSifting(Gravel, NetheriteMesh, 'exdeorum:zinc_ore_chunk', 3, 0.15)
    addSifting(Gravel, NetheriteMesh, 'exdeorum:tin_ore_chunk', 3, 0.15)
    addSifting(Gravel, NetheriteMesh, 'exdeorum:nickel_ore_chunk', 3, 0.15)
    addSifting(Gravel, NetheriteMesh, 'thermal:niter', 1, 0.10)

    // dirt table
    addSifting(Dirt, StringMesh, 'minecraft:moss_block', 1, 0.2)
    addSifting(Dirt, StringMesh, 'minecraft:stick', 2, 0.2)
    addSifting(Dirt, StringMesh, 'minecraft:potato', 1, 0.1)
    addSifting(Dirt, StringMesh, 'minecraft:wheat_seeds', 2, 0.2)

    addSifting(Dirt, FlintMesh, 'minecraft:moss_block', 2, 0.2)
    addSifting(Dirt, FlintMesh, 'minecraft:stick', 2, 0.3)
    addSifting(Dirt, FlintMesh, 'minecraft:carrot', 1, 0.1)
    addSifting(Dirt, FlintMesh, 'thermal:amaranth_seeds', 1, 0.1)
    addSifting(Dirt, FlintMesh, 'thermal:barley_seeds', 1, 0.1)
    addSifting(Dirt, FlintMesh, 'thermal:corn_seeds', 1, 0.1)
    addSifting(Dirt, FlintMesh, 'thermal:flax_seeds', 1, 0.1)
    addSifting(Dirt, FlintMesh, 'thermal:onion_seeds', 1, 0.1)
    addSifting(Dirt, FlintMesh, 'thermal:radish_seeds', 1, 0.1)
    addSifting(Dirt, FlintMesh, 'thermal:spinach_seeds', 1, 0.1)
    addSifting(Dirt, FlintMesh, 'thermal:bell_pepper_seeds', 1, 0.1)
    addSifting(Dirt, FlintMesh, 'thermal:peanut_seeds', 1, 0.1)

    addSifting(Dirt, IronMesh, 'minecraft:moss_block', 2, 0.3)
    addSifting(Dirt, IronMesh, 'minecraft:stick', 2, 0.4)
    addSifting(Dirt, IronMesh, 'minecraft:pumpkin_seeds', 1, 0.1)
    addSifting(Dirt, IronMesh, 'minecraft:melon_seeds', 1, 0.1)
    addSifting(Dirt, IronMesh, 'thermal:green_bean_seeds', 1, 0.1)
    addSifting(Dirt, IronMesh, 'thermal:strawberry_seeds', 1, 0.1)
    addSifting(Dirt, IronMesh, 'thermal:tomato_seeds', 1, 0.1)
    addSifting(Dirt, IronMesh, 'thermal:coffee_seeds', 1, 0.1)
    addSifting(Dirt, IronMesh, 'croptopia:artichoke_seed', 1, 0.1)

    addSifting(Dirt, GoldMesh, 'minecraft:moss_block', 2, 0.4)
    addSifting(Dirt, GoldMesh, 'minecraft:stick', 3, 0.2)
    addSifting(Dirt, GoldMesh, 'minecraft:beetroot_seeds', 1, 0.1)
    addSifting(Dirt, GoldMesh, 'exdeorum:grass_seeds', 1, 0.1)
    addSifting(Dirt, GoldMesh, 'botania:podzol_seeds', 1, 0.1)
    addSifting(Dirt, GoldMesh, 'botania:mycelium_seeds', 1, 0.1)
    addSifting(Dirt, GoldMesh, 'croptopia:asparagus_seed', 1, 0.1)
    addSifting(Dirt, GoldMesh, 'croptopia:basil_seed', 1, 0.1)
    addSifting(Dirt, GoldMesh, 'croptopia:blackbean_seed', 1, 0.1)
    addSifting(Dirt, GoldMesh, 'croptopia:blackberry_seed', 1, 0.1)
    addSifting(Dirt, GoldMesh, 'croptopia:blueberry_seed', 1, 0.1)
    addSifting(Dirt, GoldMesh, 'croptopia:broccoli_seed', 1, 0.1)
    addSifting(Dirt, GoldMesh, 'croptopia:cabbage_seed', 1, 0.1)

    addSifting(Dirt, DiamondMesh, 'minecraft:moss_block', 4, 0.2)
    addSifting(Dirt, DiamondMesh, 'minecraft:stick', 3, 0.3)
    addSifting(Dirt, DiamondMesh, 'sushigocrafting:rice_seeds', 1, 0.1)
    addSifting(Dirt, DiamondMesh, 'sushigocrafting:cucumber_seeds', 1, 0.1)
    addSifting(Dirt, DiamondMesh, 'sushigocrafting:soy_seeds', 1, 0.1)
    addSifting(Dirt, DiamondMesh, 'sushigocrafting:wasabi_seeds', 1, 0.1)
    addSifting(Dirt, DiamondMesh, 'sushigocrafting:sesame_seeds', 1, 0.1)
    addSifting(Dirt, DiamondMesh, 'farmersrespite:tea_seeds', 1, 0.1)

    addSifting(Dirt, NetheriteMesh, 'minecraft:moss_block', 8, 0.3)
    addSifting(Dirt, NetheriteMesh, 'minecraft:stick', 6, 0.2)
    addSifting(Dirt, NetheriteMesh, 'minecraft:small_dripleaf', 1, 0.3)
    addSifting(Dirt, NetheriteMesh, 'minecraft:big_dripleaf', 1, 0.2)
    addSifting(Dirt, NetheriteMesh, 'mysticalagriculture:soulstone', 1, 0.1)
    addSifting(Dirt, NetheriteMesh, 'mysticalagriculture:soulium_ore', 1, 0.05)

    // moss table
    addSifting(Moss, StringMesh, 'minecraft:oak_sapling', 1, 0.15)
    addSifting(Moss, StringMesh, 'minecraft:birch_sapling', 1, 0.15)
    addSifting(Moss, StringMesh, 'minecraft:spruce_sapling', 1, 0.15)
    addSifting(Moss, StringMesh, 'minecraft:jungle_sapling', 1, 0.15)
    addSifting(Moss, StringMesh, 'minecraft:acacia_sapling', 1, 0.15)
    addSifting(Moss, StringMesh, 'minecraft:cherry_sapling', 1, 0.15)
    addSifting(Moss, StringMesh, 'minecraft:dark_oak_sapling', 1, 0.15)
    addSifting(Moss, StringMesh, 'minecraft:mangrove_propagule', 1, 0.15)
    addSifting(Moss, StringMesh, 'croptopia:fig_sapling', 1, 0.15)
    addSifting(Moss, StringMesh, 'croptopia:walnut_sapling', 1, 0.15)

    addSifting(Moss, FlintMesh, 'croptopia:mango_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'forbidden_arcanus:aurum_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'quark:blue_blossom_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'quark:lavender_blossom_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'quark:orange_blossom_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'quark:yellow_blossom_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'quark:red_blossom_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'minecraft:sugar_cane', 1, 0.15)
    addSifting(Moss, FlintMesh, 'twilightforest:darkwood_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'twilightforest:hollow_oak_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'twilightforest:rainbow_oak_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'vinery:dark_cherry_sapling', 1, 0.15)
    addSifting(Moss, FlintMesh, 'vinery:apple_tree_sapling', 1, 0.15)

    addSifting(Moss, IronMesh, 'quark:yellow_blossom_sapling', 1, 0.15)
    addSifting(Moss, IronMesh, 'quark:red_blossom_sapling', 1, 0.15)
    addSifting(Moss, IronMesh, 'sushigocrafting:avocado_sapling', 1, 0.15)
    addSifting(Moss, IronMesh, 'minecraft:jungle_sapling', 1, 0.15)
    addSifting(Moss, IronMesh, 'minecraft:acacia_sapling', 1, 0.15)
    addSifting(Moss, IronMesh, 'minecraft:bamboo', 1, 0.15)

    addSifting(Moss, GoldMesh, 'ars_nouveau:blue_archwood_sapling', 1, 0.15)
    addSifting(Moss, GoldMesh, 'ars_nouveau:red_archwood_sapling', 1, 0.15)
    addSifting(Moss, GoldMesh, 'ars_nouveau:purple_archwood_sapling', 1, 0.15)
    addSifting(Moss, GoldMesh, 'ars_nouveau:green_archwood_sapling', 1, 0.15)
    addSifting(Moss, GoldMesh, 'ars_elemental:yellow_archwood_sapling', 1, 0.15)
    addSifting(Moss, GoldMesh, 'ars_nouveau:sourceberry_bush', 1, 0.15)

    addSifting(Moss, DiamondMesh, 'aether:skyroot_sapling', 1, 0.15)
    addSifting(Moss, DiamondMesh, 'aether:golden_oak_sapling', 1, 0.15)
    addSifting(Moss, DiamondMesh, 'twilightforest:twilight_oak_sapling', 1, 0.15)
    addSifting(Moss, DiamondMesh, 'twilightforest:canopy_sapling', 1, 0.15)
    addSifting(Moss, DiamondMesh, 'twilightforest:mangrove_sapling', 1, 0.15)
    addSifting(Moss, DiamondMesh, 'croptopia:peach_sapling', 1, 0.15)
    addSifting(Moss, DiamondMesh, 'croptopia:orange_sapling', 1, 0.15)
    addSifting(Moss, DiamondMesh, 'croptopia:nutmeg_sapling', 1, 0.15)
    addSifting(Moss, DiamondMesh, 'croptopia:nectarine_sapling', 1, 0.15)
    addSifting(Moss, DiamondMesh, 'croptopia:mango_sapling', 1, 0.15)

    addSifting(Moss, NetheriteMesh, 'forcecraft:force_sapling', 1, 0.05)
    addSifting(Moss, NetheriteMesh, 'thermal:rubberwood_sapling', 1, 0.15)
    addSifting(Moss, NetheriteMesh, 'croptopia:cinnamon_sapling', 1, 0.15)
    addSifting(Moss, NetheriteMesh, 'croptopia:starfruit_sapling', 1, 0.15)
    addSifting(Moss, NetheriteMesh, 'croptopia:plum_sapling', 1, 0.15)
    addSifting(Moss, NetheriteMesh, 'croptopia:persimmon_sapling', 1, 0.15)
    addSifting(Moss, NetheriteMesh, 'croptopia:pecan_sapling', 1, 0.15)
    addSifting(Moss, NetheriteMesh, 'croptopia:pear_sapling', 1, 0.15)
    addSifting(Moss, NetheriteMesh, 'forbidden_arcanus:nipa', 1, 0.02)

    // soulsand table
    addSifting(SoulSand, IronMesh, 'minecraft:soul_soil', 1, 0.1)
    addSifting(SoulSand, IronMesh, 'minecraft:warped_nylium', 1, 0.3)
    addSifting(SoulSand, IronMesh, 'minecraft:warped_fungus', 1, 0.1)
    addSifting(SoulSand, IronMesh, 'minecraft:quartz', 1, 0.1)

    addSifting(SoulSand, GoldMesh, 'minecraft:soul_soil', 1, 0.15)
    addSifting(SoulSand, GoldMesh, 'minecraft:warped_nylium', 1, 0.35)
    addSifting(SoulSand, GoldMesh, 'minecraft:warped_fungus', 1, 0.15)
    addSifting(SoulSand, GoldMesh, 'minecraft:quartz', 1, 0.15)

    addSifting(SoulSand, DiamondMesh, 'minecraft:soul_soil', 1, 0.2)
    addSifting(SoulSand, DiamondMesh, 'minecraft:warped_nylium', 1, 0.05)
    addSifting(SoulSand, DiamondMesh, 'minecraft:warped_fungus', 2, 0.1)
    addSifting(SoulSand, DiamondMesh, 'minecraft:quartz', 2, 0.1)
    addSifting(SoulSand, DiamondMesh, 'minecraft:blaze_powder', 1, 0.05)

    addSifting(SoulSand, NetheriteMesh, 'minecraft:soul_soil', 2, 0.25)
    addSifting(SoulSand, NetheriteMesh, 'minecraft:warped_nylium', 1, 0.1)
    addSifting(SoulSand, NetheriteMesh, 'minecraft:warped_fungus', 2, 0.2)
    addSifting(SoulSand, NetheriteMesh, 'minecraft:quartz', 2, 0.2)
    addSifting(SoulSand, NetheriteMesh, 'minecraft:blaze_rod', 1, 0.05)
    addSifting(SoulSand, NetheriteMesh, 'blue_skies:turquoise_dripstone', 1, 0.05)

    // sand table
    addSifting(Sand, StringMesh, 'ae2:certus_quartz_crystal', 1, 0.05)
    addSifting(Sand, StringMesh, 'ae2:certus_quartz_dust', 2, 0.1)
    addSifting(Sand, StringMesh, 'minecraft:pointed_dripstone', 1, 0.1)
    addSifting(Sand, StringMesh, 'minecraft:glow_lichen', 4, 0.25)
    addSifting(Sand, StringMesh, 'havenpebbles:stone_pebble', 1, 0.15)
    addSifting(Sand, StringMesh, 'havenpebbles:granite_pebble', 1, 0.15)
    addSifting(Sand, StringMesh, 'havenpebbles:andesite_pebble', 1, 0.15)

    addSifting(Sand, FlintMesh, 'ae2:certus_quartz_crystal', 2, 0.1)
    addSifting(Sand, FlintMesh, 'ae2:certus_quartz_dust', 4, 0.15)
    addSifting(Sand, FlintMesh, 'minecraft:pointed_dripstone', 1, 0.2)
    addSifting(Sand, FlintMesh, 'minecraft:glow_lichen', 4, 0.25)
    addSifting(Sand, FlintMesh, 'havenpebbles:stone_pebble', 2, 0.15)
    addSifting(Sand, FlintMesh, 'havenpebbles:granite_pebble', 2, 0.15)
    addSifting(Sand, FlintMesh, 'havenpebbles:andesite_pebble', 2, 0.15)
    addSifting(Sand, FlintMesh, 'minecraft:vine', 1, 0.15)

    addSifting(Sand, IronMesh, 'ae2:certus_quartz_crystal', 3, 0.15)
    addSifting(Sand, IronMesh, 'ae2:certus_quartz_dust', 6, 0.2)
    addSifting(Sand, IronMesh, 'minecraft:pointed_dripstone', 2, 0.2)
    addSifting(Sand, IronMesh, 'minecraft:glow_lichen', 4, 0.25)
    addSifting(Sand, IronMesh, 'havenpebbles:stone_pebble', 2, 0.25)
    addSifting(Sand, IronMesh, 'havenpebbles:granite_pebble', 2, 0.25)
    addSifting(Sand, IronMesh, 'havenpebbles:andesite_pebble', 2, 0.25)

    addSifting(Sand, GoldMesh, 'minecraft:flint', 8, 0.5)
    addSifting(Sand, GoldMesh, 'minecraft:iron_nugget', 3, 0.25)
    addSifting(Sand, GoldMesh, 'minecraft:gold_nugget', 2, 0.25)
    addSifting(Sand, GoldMesh, 'minecraft:iron_nugget', 6, 0.10)
    addSifting(Sand, GoldMesh, 'minecraft:gold_nugget', 4, 0.05)
    addSifting(Sand, GoldMesh, 'minecraft:glow_lichen', 4, 0.25)
    addSifting(Sand, GoldMesh, 'havenpebbles:stone_pebble', 3, 0.05)
    addSifting(Sand, GoldMesh, 'havenpebbles:granite_pebble', 3, 0.05)
    addSifting(Sand, GoldMesh, 'havenpebbles:andesite_pebble', 3, 0.05)

    addSifting(Sand, DiamondMesh, 'minecraft:lily_pad', 1, 0.2)
    addSifting(Sand, DiamondMesh, 'minecraft:iron_nugget', 5, 0.25)
    addSifting(Sand, DiamondMesh, 'minecraft:gold_nugget', 4, 0.25)
    addSifting(Sand, DiamondMesh, 'minecraft:iron_nugget', 12, 0.10)
    addSifting(Sand, DiamondMesh, 'minecraft:gold_nugget', 8, 0.05)
    addSifting(Sand, DiamondMesh, 'havenpebbles:stone_pebble', 3, 0.15)
    addSifting(Sand, DiamondMesh, 'havenpebbles:granite_pebble', 3, 0.15)
    addSifting(Sand, DiamondMesh, 'havenpebbles:andesite_pebble', 3, 0.15)

    addSifting(Sand, NetheriteMesh, 'minecraft:clay', 2, 0.25)
    addSifting(Sand, NetheriteMesh, 'minecraft:glow_lichen', 4, 0.25)
    addSifting(Sand, NetheriteMesh, 'havenpebbles:stone_pebble', 3, 0.25)
    addSifting(Sand, NetheriteMesh, 'havenpebbles:granite_pebble', 3, 0.25)
    addSifting(Sand, NetheriteMesh, 'havenpebbles:andesite_pebble', 3, 0.25)

    // redsand table
    addSifting(RedSand, StringMesh, 'ae2:certus_quartz_crystal', 1, 0.05)
    addSifting(RedSand, StringMesh, 'ae2:certus_quartz_dust', 2, 0.1)
    addSifting(RedSand, StringMesh, 'minecraft:pointed_dripstone', 1, 0.1)
    addSifting(RedSand, StringMesh, 'minecraft:glow_lichen', 4, 0.25)
    addSifting(RedSand, StringMesh, 'havenpebbles:stone_pebble', 1, 0.15)
    addSifting(RedSand, StringMesh, 'havenpebbles:granite_pebble', 1, 0.15)
    addSifting(RedSand, StringMesh, 'havenpebbles:andesite_pebble', 1, 0.15)

    addSifting(RedSand, FlintMesh, 'ae2:certus_quartz_crystal', 2, 0.1)
    addSifting(RedSand, FlintMesh, 'ae2:certus_quartz_dust', 4, 0.15)
    addSifting(RedSand, FlintMesh, 'minecraft:pointed_dripstone', 1, 0.2)
    addSifting(RedSand, FlintMesh, 'minecraft:glow_lichen', 4, 0.25)
    addSifting(RedSand, FlintMesh, 'havenpebbles:stone_pebble', 2, 0.15)
    addSifting(RedSand, FlintMesh, 'havenpebbles:granite_pebble', 2, 0.15)
    addSifting(RedSand, FlintMesh, 'havenpebbles:andesite_pebble', 2, 0.15)
    addSifting(RedSand, FlintMesh, 'minecraft:vine', 1, 0.15)

    addSifting(RedSand, IronMesh, 'ae2:certus_quartz_crystal', 3, 0.15)
    addSifting(RedSand, IronMesh, 'ae2:certus_quartz_dust', 6, 0.2)
    addSifting(RedSand, IronMesh, 'minecraft:pointed_dripstone', 2, 0.2)
    addSifting(RedSand, IronMesh, 'minecraft:glow_lichen', 4, 0.25)
    addSifting(RedSand, IronMesh, 'havenpebbles:stone_pebble', 2, 0.25)
    addSifting(RedSand, IronMesh, 'havenpebbles:granite_pebble', 2, 0.25)
    addSifting(RedSand, IronMesh, 'havenpebbles:andesite_pebble', 2, 0.25)

    addSifting(RedSand, GoldMesh, 'minecraft:flint', 8, 0.5)
    addSifting(RedSand, GoldMesh, 'minecraft:iron_nugget', 3, 0.25)
    addSifting(RedSand, GoldMesh, 'minecraft:gold_nugget', 2, 0.25)
    addSifting(RedSand, GoldMesh, 'minecraft:iron_nugget', 6, 0.10)
    addSifting(RedSand, GoldMesh, 'minecraft:gold_nugget', 4, 0.05)
    addSifting(RedSand, GoldMesh, 'minecraft:glow_lichen', 4, 0.25)
    addSifting(RedSand, GoldMesh, 'havenpebbles:stone_pebble', 3, 0.05)
    addSifting(RedSand, GoldMesh, 'havenpebbles:granite_pebble', 3, 0.05)
    addSifting(RedSand, GoldMesh, 'havenpebbles:andesite_pebble', 3, 0.05)

    addSifting(RedSand, DiamondMesh, 'minecraft:lily_pad', 1, 0.2)
    addSifting(RedSand, DiamondMesh, 'minecraft:iron_nugget', 5, 0.25)
    addSifting(RedSand, DiamondMesh, 'minecraft:gold_nugget', 4, 0.25)
    addSifting(RedSand, DiamondMesh, 'minecraft:iron_nugget', 12, 0.10)
    addSifting(RedSand, DiamondMesh, 'minecraft:gold_nugget', 8, 0.05)
    addSifting(RedSand, DiamondMesh, 'havenpebbles:stone_pebble', 3, 0.15)
    addSifting(RedSand, DiamondMesh, 'havenpebbles:granite_pebble', 3, 0.15)
    addSifting(RedSand, DiamondMesh, 'havenpebbles:andesite_pebble', 3, 0.15)

    addSifting(RedSand, NetheriteMesh, 'minecraft:clay', 2, 0.25)
    addSifting(RedSand, NetheriteMesh, 'minecraft:glow_lichen', 4, 0.25)
    addSifting(RedSand, NetheriteMesh, 'havenpebbles:stone_pebble', 3, 0.25)
    addSifting(RedSand, NetheriteMesh, 'havenpebbles:granite_pebble', 3, 0.25)
    addSifting(RedSand, NetheriteMesh, 'havenpebbles:andesite_pebble', 3, 0.25)

    // netherrack table
    addSifting(Netherrack, StringMesh, 'havenpebbles:blackstone_pebble', 2, 0.2)
    addSifting(Netherrack, StringMesh, 'havenpebbles:basalt_pebble', 1, 0.2)
    addSifting(Netherrack, StringMesh, 'minecraft:quartz', 1, 0.2)
    addSifting(Netherrack, StringMesh, 'minecraft:gold_nugget', 1, 0.2)

    addSifting(Netherrack, FlintMesh, 'havenpebbles:blackstone_pebble', 2, 0.25)
    addSifting(Netherrack, FlintMesh, 'havenpebbles:basalt_pebble', 1, 0.25)
    addSifting(Netherrack, FlintMesh, 'minecraft:quartz', 1, 0.25)
    addSifting(Netherrack, FlintMesh, 'minecraft:gold_nugget', 1, 0.25)

    addSifting(Netherrack, IronMesh, 'havenpebbles:blackstone_pebble', 4, 0.3)
    addSifting(Netherrack, IronMesh, 'havenpebbles:basalt_pebble', 1, 0.3)
    addSifting(Netherrack, IronMesh, 'minecraft:quartz', 1, 0.3)
    addSifting(Netherrack, IronMesh, 'minecraft:gold_nugget', 1, 0.3)

    addSifting(Netherrack, GoldMesh, 'havenpebbles:blackstone_pebble', 4, 0.35)
    addSifting(Netherrack, GoldMesh, 'occultism:iesnium_ore', 1, 0.01)
    addSifting(Netherrack, GoldMesh, 'havenpebbles:basalt_pebble', 1, 0.35)
    addSifting(Netherrack, GoldMesh, 'minecraft:quartz', 1, 0.35)
    addSifting(Netherrack, GoldMesh, 'minecraft:gold_nugget', 1, 0.35)
    addSifting(Netherrack, GoldMesh, 'minecraft:blaze_powder', 1, 0.05)

    addSifting(Netherrack, DiamondMesh, 'havenpebbles:blackstone_pebble', 4, 0.2)
    addSifting(Netherrack, DiamondMesh, 'occultism:iesnium_ore', 1, 0.1)
    addSifting(Netherrack, DiamondMesh, 'havenpebbles:basalt_pebble', 2, 0.2)
    addSifting(Netherrack, DiamondMesh, 'minecraft:blaze_rod', 1, 0.05)
    addSifting(Netherrack, DiamondMesh, 'minecraft:quartz', 2, 0.2)
    addSifting(Netherrack, DiamondMesh, 'minecraft:crying_obsidian', 1, 0.15)
    addSifting(Netherrack, DiamondMesh, 'minecraft:ancient_debris', 1, 0.05)
    addSifting(Netherrack, DiamondMesh, 'minecraft:obsidian', 1, 0.15)
    addSifting(Netherrack, DiamondMesh, 'woot_revived:stygian_dust', 1, 0.15)

    addSifting(Netherrack, NetheriteMesh, 'havenpebbles:blackstone_pebble', 2, 0.25)
    addSifting(Netherrack, NetheriteMesh, 'occultism:iesnium_ore', 2, 0.1)
    addSifting(Netherrack, NetheriteMesh, 'woot_revived:stygian_dust', 2, 0.15)
    addSifting(Netherrack, NetheriteMesh, 'minecraft:blaze_rod', 1, 0.1)
    addSifting(Netherrack, NetheriteMesh, 'minecraft:quartz', 2, 0.25)
    addSifting(Netherrack, NetheriteMesh, 'minecraft:obsidian', 2, 0.2)
    addSifting(Netherrack, NetheriteMesh, 'minecraft:crying_obsidian', 2, 0.2)
    addSifting(Netherrack, NetheriteMesh, 'minecraft:ancient_debris', 1, 0.1)
    addSifting(Netherrack, NetheriteMesh, 'allthemodium:vibranium_nugget', 1, 0.05)
    addSifting(Netherrack, NetheriteMesh, 'blue_skies:lunar_dripstone', 1, 0.05)

    // endstone table
    addSifting(EndStone, StringMesh, 'minecraft:ender_pearl', 1, 0.1)
    addSifting(EndStone, StringMesh, 'minecraft:chorus_fruit', 1, 0.1)
    addSifting(EndStone, StringMesh, 'minecraft:chorus_flower', 1, 0.05)

    addSifting(EndStone, FlintMesh, 'minecraft:ender_pearl', 1, 0.15)
    addSifting(EndStone, FlintMesh, 'minecraft:ender_eye', 1, 0.02)
    addSifting(EndStone, StringMesh, 'minecraft:chorus_fruit', 1, 0.15)
    addSifting(EndStone, StringMesh, 'minecraft:chorus_flower', 1, 0.10)

    addSifting(EndStone, IronMesh, 'minecraft:ender_pearl', 1, 0.2)
    addSifting(EndStone, IronMesh, 'minecraft:ender_eye', 1, 0.05)
    addSifting(EndStone, IronMesh, 'minecraft:chorus_fruit', 2, 0.15)
    addSifting(EndStone, IronMesh, 'minecraft:chorus_flower', 1, 0.15)

    addSifting(EndStone, GoldMesh, 'minecraft:ender_pearl', 2, 0.15)
    addSifting(EndStone, GoldMesh, 'minecraft:ender_eye', 1, 0.1)
    addSifting(EndStone, GoldMesh, 'minecraft:chorus_fruit', 2, 0.25)
    addSifting(EndStone, GoldMesh, 'minecraft:chorus_flower', 1, 0.25)

    addSifting(EndStone, DiamondMesh, 'minecraft:ender_pearl', 3, 0.15)
    addSifting(EndStone, DiamondMesh, 'minecraft:ender_eye', 1, 0.2)
    addSifting(EndStone, DiamondMesh, 'minecraft:chorus_fruit', 3, 0.2)
    addSifting(EndStone, DiamondMesh, 'minecraft:chorus_flower', 2, 0.15)

    addSifting(EndStone, NetheriteMesh, 'minecraft:ender_pearl', 3, 0.2)
    addSifting(EndStone, NetheriteMesh, 'minecraft:ender_eye', 1, 0.2)
    addSifting(EndStone, NetheriteMesh, 'minecraft:chorus_fruit', 5, 0.25)
    addSifting(EndStone, NetheriteMesh, 'minecraft:chorus_flower', 2, 0.25)
    addSifting(EndStone, NetheriteMesh, 'allthemodium:unobtainium_nugget', 1, 0.05)

    // dust table
    addSifting(Dust, StringMesh, 'minecraft:redstone', 1, 0.2)
    addSifting(Dust, StringMesh, 'ae2:certus_quartz_dust', 1, 0.2)
    addSifting(Dust, StringMesh, 'mysticalagriculture:inferium_essence', 1, 0.2)

    addSifting(Dust, FlintMesh, 'minecraft:redstone', 1, 0.25)
    addSifting(Dust, FlintMesh, 'ae2:certus_quartz_dust', 1, 0.25)
    addSifting(Dust, FlintMesh, 'mysticalagriculture:inferium_essence', 1, 0.25)

    addSifting(Dust, IronMesh, 'minecraft:redstone', 2, 0.2)
    addSifting(Dust, IronMesh, 'ae2:certus_quartz_dust', 2, 0.2)
    addSifting(Dust, IronMesh, 'ae2:fluix_dust', 1, 0.15)
    addSifting(Dust, IronMesh, 'mysticalagriculture:inferium_essence', 2, 0.2)

    addSifting(Dust, GoldMesh, 'minecraft:redstone', 2, 0.3)
    addSifting(Dust, GoldMesh, 'ae2:certus_quartz_dust', 2, 0.3)
    addSifting(Dust, GoldMesh, 'ae2:fluix_dust', 1, 0.20)
    addSifting(Dust, GoldMesh, 'mysticalagriculture:inferium_essence', 2, 0.30)
    addSifting(Dust, GoldMesh, 'mysticalagriculture:prosperity_shard', 1, 0.10)

    addSifting(Dust, DiamondMesh, 'minecraft:redstone', 4, 0.2)
    addSifting(Dust, DiamondMesh, 'ae2:certus_quartz_dust', 4, 0.2)
    addSifting(Dust, DiamondMesh, 'ae2:fluix_dust', 3, 0.2)
    addSifting(Dust, DiamondMesh, 'ae2:fluix_crystal', 1, 0.2)
    addSifting(Dust, DiamondMesh, 'mysticalagriculture:inferium_essence', 4, 0.2)
    addSifting(Dust, DiamondMesh, 'mysticalagriculture:prosperity_shard', 1, 0.2)

    addSifting(Dust, NetheriteMesh, 'minecraft:redstone', 6, 0.25)
    addSifting(Dust, NetheriteMesh, 'ae2:certus_quartz_dust', 5, 0.25)
    addSifting(Dust, NetheriteMesh, 'mysticalagriculture:inferium_essence', 5, 0.25)
    addSifting(Dust, NetheriteMesh, 'ae2:fluix_dust', 4, 0.15)
    addSifting(Dust, NetheriteMesh, 'ae2:fluix_crystal', 2, 0.10)
    addSifting(Dust, NetheriteMesh, 'ae2:charged_certus_quartz_crystal', 1, 0.15)
    addSifting(Dust, NetheriteMesh, 'allthemodium:allthemodium_nugget', 1, 0.05)
    addSifting(Dust, NetheriteMesh, 'mysticalagriculture:prosperity_shard', 3, 0.15)


    //    addHammer(Deepslate, 'minecraft:stick')

    //    addBarrelMixing('minecraft:water', 'minecraft:dead_bush', 'minecraft:oak_sapling')
    addBarrelMixing('minecraft:lava', 'kubejs:clay_plate', 'tconstruct:grout')

    //    addBarrelFluidMixing('minecraft:water', 'minecraft:water', false, 'minecraft:stick')

    //    addHeatSource(Dust, 69)
    addHeatSource(Soul_Lava, 15)
    //    addHeatedCrucible('minecraft:stick', 'minecraft:milk', 50)
    addHeatedCrucible('allthemodium:vibranium_ingot', 'allthemodium:soul_lava', 200)
})