let structure = [["                                 ","             aaaaaaa             ","          aaabbbbbbbaaa          ","        aabbbaaaaaaabbbaa        ","       abbaaa       aaabba       ","      abaa             aaba      ","     aba                 aba     ","    aba                   aba    ","   aba                     aba   ","   aba                     aba   ","  aba                       aba  ","  aba                       aba  ","  aba                       aba  "," aba                         aba "," aba                         aba "," aba                         aba "," aba                         aba "," aba                         aba "," aba                         aba "," aba                         aba ","  aba                       aba  ","  aba                       aba  ","  aba                       aba  ","   aba                     aba   ","   aba                     aba   ","    aba                   aba    ","     aba                 aba     ","      abaa             aaba      ","       abbaaa       aaabba       ","        aabbbaaaaaaabbbaa        ","          aaabbbbbbbaaa          ","             aaaaaaa             ","                                 "],["             bbbmbbb             ","          bbbcccccccbbb          ","        bbcccdddddddcccbb        ","       bccdddcccccccdddccb       ","      bcddcccbbbbbbbcccddcb      ","     bcdccbbb       bbbccdcb     ","    bcdcbb             bbcdcb    ","   bcdcb                 bcdcb   ","  bcdcb                   bcdcb  ","  bcdcb                   bcdcb  "," bcdcb                     bcdcb "," bcdcb                     bcdcb "," bcdcb                     bcdcb ","bcdcb                       bcdcb","bcdcb                       bcdcb","bcdcb                       bcdcb","bcdcb                       bcdcb","bcdcb                       bcdcb","bcdcb                       bcdcb","bcdcb                       bcdcb"," bcdcb                     bcdcb "," bcdcb                     bcdcb "," bcdcb                     bcdcb ","  bcdcb                   bcdcb  ","  bcdcb                   bcdcb  ","   bcdcb                 bcdcb   ","    bcdcbb             bbcdcb    ","     bcdccbbb       bbbccdcb     ","      bcddcccbbbbbbbcccddcb      ","       bccdddcccccccdddccb       ","        bbcccdddddddcccbb        ","          bbbcccccccbbb          ","             bbbbbbb             "],["                                 ","             aaaaaaa             ","          aaabbbbbbbaaa          ","        aabbbaaaaaaabbbaa        ","       abbaaa       aaabba       ","      abaa             aaba      ","     aba                 aba     ","    aba                   aba    ","   aba                     aba   ","   aba                     aba   ","  aba                       aba  ","  aba                       aba  ","  aba                       aba  "," aba                         aba "," aba                         aba "," aba                         aba "," aba                         aba "," aba                         aba "," aba                         aba "," aba                         aba ","  aba                       aba  ","  aba                       aba  ","  aba                       aba  ","   aba                     aba   ","   aba                     aba   ","    aba                   aba    ","     aba                 aba     ","      abaa             aaba      ","       abbaaa       aaabba       ","        aabbbaaaaaaabbbaa        ","          aaabbbbbbbaaa          ","             aaaaaaa             ","                                 "]]





//MK1

//Outer Multiversal Casing
onEvent('recipes', event => {
    event.recipes.custommachinery.custom_machine("modpack:multiversal_manipulator", 500)
    .requireEnergyPerTick(10000000)
    .produceItem(Item.of("kubejs:casingmultiversal_manipulator_outer", 32))
    .produceItem(Item.of("kubejs:spacetimeingot", 16))
    .produceFluid(Fluid.of("kubejs:depleted_multiversal_fluid", 100))
    .requireItem(Item.of("kubejs:casingmega_fusion_reactor", 32))
    .requireItem(Item.of("kubejs:casingfusion", 64))
    .requireItem(Item.of("kubejs:quantum_essence", 64))
    .requireItem(Item.of("kubejs:vibrant_starmetal_ingot", 64))
    .requireItem(Item.of("extendedcrafting:ender_star", 32))
    .requireItem(Item.of("kubejs:white_matter_particles", 4))
    .requireItem(Item.of("kubejs:dark_matter_particles", 4))
    .requireItem(Item.of("kubejs:red_matter_particles", 4))
    .requireItem(Item.of("kubejs:blue_matter_particles", 4))
    .requireFluid(Fluid.of("kubejs:molten_spacetime", 4000))
    .requireFluid(Fluid.of("kubejs:excited_simple_multiversal_fluid", 500))
    .requireItem(Item.of('custommachinery:custom_machine_item', '{machine:"modpack:antimatter_relay_mk4"}'))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_1", Item.of('custommachinery:custom_machine_item', '{machine:"modpack:antimatter_relay_mk4"}'), false);
        return Result.success();
    })
    .requireItem(Item.of("projecte:condenser_mk2", 1))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_2", Item.of("projecte:condenser_mk2", 1), false);
        return Result.success();
    })
    .requireStructure(structure, {"a":"kubejs:casingmultiversal_manipulator_inner","b":"kubejs:casingmultiversal_manipulator_outer","c":"kubejs:multiversal_coil_block","d":"kubejs:petite_particle_generator"})
})

//Inner Multiversal Casing
onEvent('recipes', event => {
    event.recipes.custommachinery.custom_machine("modpack:multiversal_manipulator", 500)
    .requireEnergyPerTick(10000000)
    .produceItem(Item.of("kubejs:casingmultiversal_manipulator_inner", 32))
    .produceItem(Item.of("kubejs:spacetimeingot", 16))
    .produceFluid(Fluid.of("kubejs:depleted_multiversal_fluid", 100))
    .requireItem(Item.of("kubejs:spacetime", 32))
    .requireItem(Item.of("kubejs:bottled_spacetime", 16))
    .requireItem(Item.of("kubejs:spacetime_particles", 4))
    .requireItem(Item.of("pipez:infinity_upgrade", 16))
    .requireItem(Item.of("kubejs:lunar_dust", 64))
    .requireItem(Item.of("kubejs:white_matter_particles", 4))
    .requireItem(Item.of("kubejs:dark_matter_particles", 4))
    .requireItem(Item.of("kubejs:red_matter_particles", 4))
    .requireItem(Item.of("kubejs:blue_matter_particles", 4))
    .requireFluid(Fluid.of("kubejs:molten_spacetime", 4000))
    .requireFluid(Fluid.of("kubejs:excited_simple_multiversal_fluid", 500))
    .requireItem(Item.of('projecte:repair_talisman'))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_1", Item.of('projecte:repair_talisman'), false);
        return Result.success();
    })
    .requireItem(Item.of("projecte:philosophers_stone", 1))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_2", Item.of("projecte:philosophers_stone", 1), false);
        return Result.success();
    })
    .requireStructure(structure, {"a":"kubejs:casingmultiversal_manipulator_inner","b":"kubejs:casingmultiversal_manipulator_outer","c":"kubejs:multiversal_coil_block","d":"kubejs:petite_particle_generator"})
})

//Multiversal Coil Block
onEvent('recipes', event => {
    event.recipes.custommachinery.custom_machine("modpack:multiversal_manipulator", 500)
    .requireEnergyPerTick(10000000)
    .produceItem(Item.of("kubejs:multiversal_coil_block", 32))
    .produceItem(Item.of("kubejs:spacetimeingot", 16))
    .produceFluid(Fluid.of("kubejs:depleted_multiversal_fluid", 100))
    .requireItem(Item.of("kubejs:vibrant_starmetal_block", 32))
    .requireItem(Item.of("kubejs:dimensionally_transcendent_spacetime", 16))
    .requireItem(Item.of("kubejs:dimensionally_transcendent_spacetime_ingot", 32))
    .requireItem(Item.of("kubejs:celestial_crystal_dust", 16))
    .requireItem(Item.of("kubejs:netheritestarmetaldust", 16))
    .requireItem(Item.of("kubejs:spacetime_singularity", 32))
    .requireItem(Item.of("kubejs:briliantgem", 16))
    .requireItem(Item.of("astralsorcery:resonating_gem", 32))
    .requireItem(Item.of("kubejs:shininggem", 64))
    .requireFluid(Fluid.of("kubejs:molten_spacetime", 4000))
    .requireFluid(Fluid.of("kubejs:excited_simple_multiversal_fluid", 500))
    .requireItem(Item.of('kubejs:vibrant_starmetal_star'))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_1", Item.of('kubejs:vibrant_starmetal_star'), false);
        return Result.success();
    })
    .requireItem(Item.of('extendedcrafting:singularity', '{Id:"extendedcrafting:blue_matter"}'))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_2", Item.of('extendedcrafting:singularity', '{Id:"extendedcrafting:blue_matter"}'), false);
        return Result.success();
    })
    .requireStructure(structure, {"a":"kubejs:casingmultiversal_manipulator_inner","b":"kubejs:casingmultiversal_manipulator_outer","c":"kubejs:multiversal_coil_block","d":"kubejs:petite_particle_generator"})
})

//Diminutive Particle Generator
onEvent('recipes', event => {
    event.recipes.custommachinery.custom_machine("modpack:multiversal_manipulator", 500)
    .requireEnergyPerTick(10000000)
    .produceItem(Item.of("kubejs:diminutive_particle_generator", 1))
    .produceItem(Item.of("kubejs:spacetimeingot", 16))
    .produceFluid(Fluid.of("kubejs:depleted_multiversal_fluid", 100))
    .requireItem(Item.of("kubejs:casingmultiversal_manipulator_inner", 1))
    .requireItem(Item.of("kubejs:stabilised_wormhole_generator", 1))
    .requireItem(Item.of("kubejs:maximum_covalence_dust", 64))
    .requireItem(Item.of("extendedcrafting:ender_star", 4))
    .requireItem(Item.of("kubejs:star", 4))
    .requireItem(Item.of("projecte:klein_star_ein", 1))
    .requireItem(Item.of("kubejs:time_dilation_containment_unit", 1))
    .requireItem(Item.of("kubejs:bottled_spacetime", 1))
    .requireItem(Item.of("kubejs:primordial_matter", 8))
    .requireFluid(Fluid.of("kubejs:molten_spacetime", 4000))
    .requireFluid(Fluid.of("kubejs:excited_simple_multiversal_fluid", 500))
    .requireItem(Item.of("kubejs:time_destabiliser_components", 1))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_1", Item.of("kubejs:time_destabiliser_components", 1), false);
        return Result.success();
    })
    .requireItem(Item.of("kubejs:excitation_field_maintainer", 1))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_2", Item.of("kubejs:excitation_field_maintainer", 1), false);
        return Result.success();
    })
    .requireStructure(structure, {"a":"kubejs:casingmultiversal_manipulator_inner","b":"kubejs:casingmultiversal_manipulator_outer","c":"kubejs:multiversal_coil_block","d":"kubejs:petite_particle_generator"})
})

//Petite Particle Generator
onEvent('recipes', event => {
    event.recipes.custommachinery.custom_machine("modpack:multiversal_manipulator", 1000)
    .requireEnergyPerTick(10000000)
    .produceItem(Item.of("kubejs:petite_particle_generator", 1))
    .produceItem(Item.of("kubejs:dimensionally_transcendent_spacetime_ingot", 16))
    .produceFluid(Fluid.of("kubejs:depleted_multiversal_fluid", 200))
    .requireItem(Item.of("kubejs:diminutive_particle_generator", 1))
    .requireItem(Item.of("kubejs:stabilised_wormhole_generator", 2))
    .requireItem(Item.of("kubejs:stellar_covalence_dust_mk1", 64))
    .requireItem(Item.of("kubejs:endest_star", 4))
    .requireItem(Item.of("kubejs:star", 4))
    .requireItem(Item.of("projecte:klein_star_zwei", 1))
    .requireItem(Item.of("kubejs:time_dilation_containment_unit", 2))
    .requireItem(Item.of("kubejs:bottled_spacetime", 2))
    .requireItem(Item.of("kubejs:white_matter_particles", 4))
    .requireFluid(Fluid.of("kubejs:molten_dimensionally_transcendent_spacetime", 4000))
    .requireFluid(Fluid.of("kubejs:excited_simple_multiversal_fluid", 1000))
    .requireItem(Item.of("kubejs:time_destabiliser_components", 1))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_1", Item.of("kubejs:time_destabiliser_components", 1), false);
        return Result.success();
    })
    .requireItem(Item.of("kubejs:excitation_field_maintainer", 1))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_2", Item.of("kubejs:excitation_field_maintainer", 1), false);
        return Result.success();
    })
    .requireStructure(structure, {"a":"kubejs:casingmultiversal_manipulator_inner","b":"kubejs:casingmultiversal_manipulator_outer","c":"kubejs:multiversal_coil_block","d":"kubejs:petite_particle_generator"})
})





//MK2

//Inordinate Particle Generator
onEvent('recipes', event => {
    event.recipes.custommachinery.custom_machine("modpack:multiversal_manipulator", 2000)
    .requireEnergyPerTick(10000000)
    .produceItem(Item.of("kubejs:inordinate_particle_generator", 1))
    .produceItem(Item.of("kubejs:massively_charged_hyper_dense_dimensionality_ingot", 16))
    .produceFluid(Fluid.of("kubejs:depleted_multiversal_fluid", 300))
    .requireItem(Item.of("kubejs:petite_particle_generator", 1))
    .requireItem(Item.of("kubejs:stabilised_wormhole_generator", 4))
    .requireItem(Item.of("kubejs:stellar_covalence_dust_mk2", 64))
    .requireItem(Item.of("kubejs:white_matter_star", 4))
    .requireItem(Item.of("kubejs:star", 4))
    .requireItem(Item.of("projecte:klein_star_drei", 1))
    .requireItem(Item.of('kubejs:contained_schwarzschild_singularity', 2))
    .requireItem(Item.of("kubejs:bottled_dimensionality", 4))
    .requireItem(Item.of("kubejs:dark_matter_particles", 4))
    .requireFluid(Fluid.of("kubejs:molten_massively_charged_hyper_dense_dimensionality", 4000))
    .requireFluid(Fluid.of("kubejs:excited_simple_multiversal_fluid", 1500))
    .requireItem(Item.of("kubejs:time_destabiliser_components", 1))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_1", Item.of("kubejs:time_destabiliser_components", 1), false);
        return Result.success();
    })
    .requireItem(Item.of("kubejs:excitation_field_maintainer", 1))
    .requireFunctionOnStart(ctx => {
        ctx.machine.addItemToSlot("catalyst_2", Item.of("kubejs:excitation_field_maintainer", 1), false);
        return Result.success();
    })
    .requireStructure(structure, {"a":"kubejs:casingmultiversal_manipulator_inner","b":"kubejs:casingmultiversal_manipulator_outer","c":"kubejs:multiversal_coil_block","d":"kubejs:petite_particle_generator"})
})