// priority: 2 function ifiniDeploying(event, output, input, tool) { return { "type": "create:deploying", "ingredients": [ Ingredient.of(input).toJson(), Ingredient.of(tool).toJson() ], "results": [ Item.of(output) ], "keepHeldItem": true } } ServerEvents.recipes(event => { /** * Used to store the name of an item when making sequenced assembly recipes * @type {string} */ let transitional // - - - - - Chapter 1 - - - - - // Wood slab cutting let plankCutting = (wood) => { // Some mods name their wood slabs 'planks_slab' for some reason // Mods that do this don't get given auto-generated slab cutting recipes by Create if (!Item.exists(wood + "_slab")) { let planks = wood + "_planks" let slab = wood + "_planks_slab" event.recipes.create.cutting(Item.of(slab, 2), planks).processingTime(150).id(`kubejs:cutting/${wood.split(":")[1]}_slab`) } } wood_types.forEach(plankCutting) // Remove andesite recipe (and granite and diorite) event.remove({ id: "minecraft:diorite" }) event.remove({ id: "minecraft:andesite" }) event.remove({ id: "minecraft:granite" }) // algal blend event.remove({ id: "architects_palette:algal_blend" }) event.shaped(Item.of("architects_palette:algal_blend", 4), [ "SS", "AA" ], { A: "minecraft:clay_ball", S: ["minecraft:kelp", "minecraft:seagrass"] }) event.shaped(Item.of("architects_palette:algal_blend", 4), [ "AA", "SS" ], { A: "minecraft:clay_ball", S: ["minecraft:kelp", "minecraft:seagrass"] }) event.recipes.create.mixing(Item.of("architects_palette:algal_blend", 2), ["minecraft:clay_ball", ["minecraft:kelp", "minecraft:seagrass"]]) // algal brick event.remove({ output: "architects_palette:algal_brick" }) event.smelting("architects_palette:algal_brick", "architects_palette:algal_blend").xp(0).cookingTime(120) // Andesite alloy event.remove({ id: "tconstruct:compat/create/andesite_alloy_iron" }) event.remove({ id: "create:crafting/materials/andesite_alloy" }) event.remove({ id: "create:crafting/materials/andesite_alloy_from_zinc" }) event.remove({ id: "create:mixing/andesite_alloy" }) event.remove({ id: "create:mixing/andesite_alloy_from_zinc" }) event.remove({ id: "thermal:compat/create/smelter_create_alloy_andesite_alloy" }) event.remove({ id: "thermal:compat/create/smelter_create_alloy_andesite_alloy" }) event.remove({ id: "tconstruct:compat/create/andesite_alloy_zinc" }) event.remove({ id: "tconstruct:compat/create/andesite_alloy_iron" }) event.shaped(Item.of("create:andesite_alloy", 2), [ "SS", "AA" ], { A: "minecraft:andesite", S: "architects_palette:algal_brick" }) event.shaped(Item.of("create:andesite_alloy", 2), [ "AA", "SS" ], { A: "minecraft:andesite", S: "architects_palette:algal_brick" }) event.recipes.create.mixing(Item.of("create:andesite_alloy", 2), ["architects_palette:algal_brick", "minecraft:andesite"]) // kinetic assembly transitional = "kubejs:incomplete_kinetic_mechanism" event.recipes.create.sequenced_assembly([ "kubejs:kinetic_mechanism", ], "#minecraft:wooden_slabs", [ event.recipes.create.deploying(transitional, [transitional, "create:andesite_alloy"]), event.recipes.create.deploying(transitional, [transitional, "create:andesite_alloy"]), event.recipes.create.deploying(transitional, [transitional, "#kubejs:saws"]) ]).transitionalItem(transitional) .loops(1) .id("kubejs:kinetic_mechanism") // Handcrafting recipe event.shapeless("kubejs:kinetic_mechanism", ["#kubejs:saws", "create:cogwheel", "create:andesite_alloy", "#minecraft:logs"]).id("kubejs:kinetic_mechanism_manual_only") // Andesite machines donutCraft(event, "kubejs:andesite_machine", "create:andesite_casing", "kubejs:kinetic_mechanism") // secondary materials event.replaceInput({ id: "create:crafting/kinetics/brass_hand" }, "#forge:plates/brass", "create:golden_sheet") event.remove({ output: "thermal:drill_head" }) event.shaped("thermal:drill_head", [ "NN ", "NLP", " PL" ], { N: "minecraft:iron_nugget", P: "create:iron_sheet", L: "thermal:lead_ingot" }) event.remove({ output: "thermal:saw_blade" }) event.shaped("thermal:saw_blade", [ "NPN", "PLP", "NPN" ], { N: "minecraft:iron_nugget", P: "create:iron_sheet", L: "thermal:lead_ingot" }) // Machine Crafting andesiteMachine(event, Item.of("create:portable_storage_interface", 2)) andesiteMachine(event, Item.of("create:encased_fan", 1), "create:propeller") andesiteMachine(event, Item.of("create:mechanical_press", 1), "minecraft:iron_block") andesiteMachine(event, Item.of("mbd2:strainer", 1), "minecraft:iron_bars") andesiteMachine(event, Item.of("create:mechanical_mixer", 1), "create:whisk") andesiteMachine(event, Item.of("create:mechanical_drill", 1), "thermal:drill_head") andesiteMachine(event, Item.of("create:mechanical_saw", 1), "thermal:saw_blade") if (Platform.isLoaded("createdeco")) { andesiteMachine(event, Item.of("create:mechanical_roller", 1), "createdeco:andesite_hull") } else { andesiteMachine(event, Item.of("create:mechanical_roller", 1), "create:andesite_alloy_block") } if (Platform.isLoaded("rechiseledcreate")) { andesiteMachine(event, Item.of("rechiseledcreate:mechanical_chisel", 1), "rechiseled:chisel") } andesiteMachine(event, Item.of("create:deployer", 1), "create:brass_hand") andesiteMachine(event, Item.of("create:mechanical_harvester", 2)) andesiteMachine(event, Item.of("create:mechanical_plough", 2)) andesiteMachine(event, Item.of("create:contraption_controls", 1)) andesiteMachine(event, Item.of("thermal:device_tree_extractor", 1), "minecraft:bucket") andesiteMachine(event, Item.of("ae2:meteorite_compass", 1), "minecraft:compass") andesiteMachine(event, Item.of("ae2:charger", 1), "ae2:certus_quartz_crystal") andesiteMachine(event, Item.of("thermal:dynamo_stirling", 1), "thermal:rf_coil") andesiteMachine(event, Item.of("create:andesite_funnel", 4)) andesiteMachine(event, Item.of("create:andesite_tunnel", 4)) andesiteMachine(event, Item.of("kubejs:pipe_module_utility", 4)) // Gourmand Upgrade createMachine("thermal:dynamo_stirling", event, "thermal:dynamo_gourmand", "minecraft:golden_carrot") createMachine("thermal:dynamo_stirling", event, "thermal:dynamo_gourmand", "minecraft:golden_apple") // - - - - - Chapter 1A - - - - - event.remove({ type: "thermal:tree_extractor" }) wood_types.forEach(wood => { if (Item.exists(wood + "_log") && Item.exists(wood + "_leaves") && Item.exists(wood + "_sapling")) { addTreeOutput(event, wood + "_log", wood + "_leaves").id("kubejs:devices/tree_extractor/tree_extractor_" + wood.split(":")[1]) } }) // addTreeOutput( "tconstruct:greenheart_log", "tconstruct:earth_slime_leaves", {fluid: "tconstruct:earth_slime", amount: 10}) // addTreeOutput( "tconstruct:skyroot_log", "tconstruct:sky_slime_leaves", {fluid: "tconstruct:sky_slime", amount: 10}) // Rubber event.remove({ id: "thermal:rubber_3" }) event.remove({ id: "thermal:rubber_from_dandelion" }) event.remove({ id: "thermal:rubber_from_vine" }) event.custom({ "type": "create:mixing", "ingredients": [ { "item": "minecraft:vine", "count": 4 }, { "fluid": "minecraft:water", "amount": 250 } ], "results": [ { "item": "thermal:rubber" } ] }) event.custom({ "type": "create:mixing", "ingredients": [ { "tag": "minecraft:flowers", "count": 4 }, { "fluid": "minecraft:water", "amount": 250 } ], "results": [ { "item": "thermal:rubber" } ] }) event.custom({ "type": "create:compacting", "ingredients": [ { "fluid": "thermal:resin", "amount": 250 } ], "results": [ { "item": "thermal:rubber" } ] }) // Belts event.remove({ id: "create:crafting/kinetics/belt_connector" }) event.shaped(Item.of("create:belt_connector", 3), [ "SSS", "SSS" ], { S: "thermal:cured_rubber" }) // Sealed mechanism assembly transitional = "kubejs:incomplete_sealed_mechanism" event.recipes.create.sequenced_assembly([ "kubejs:sealed_mechanism", ], "kubejs:kinetic_mechanism", [ event.recipes.create.deploying(transitional, [transitional, "thermal:cured_rubber"]), event.recipes.create.deploying(transitional, [transitional, "thermal:cured_rubber"]), event.recipes.create.pressing(transitional, [transitional]) ]).transitionalItem(transitional) .loops(1) .id("kubejs:sealed_mechanism") // manual crafting event.shaped("kubejs:sealed_mechanism", [ "SCS" ], { C: "kubejs:kinetic_mechanism", S: "thermal:cured_rubber" }).id("kubejs:sealed_mechanism_manual_only") // Copper Machines donutCraft(event, "kubejs:copper_machine", "create:copper_casing", "kubejs:sealed_mechanism") // Machine Crafting copperMachine(event, Item.of("create:copper_backtank", 1), "minecraft:copper_block") copperMachine(event, Item.of("create:portable_fluid_interface", 2)) copperMachine(event, Item.of("create:spout", 1), "minecraft:hopper") copperMachine(event, Item.of("thermal:upgrade_augment_1", 1), "minecraft:redstone") copperMachine(event, Item.of("create:hose_pulley", 1)) copperMachine(event, Item.of("create:item_drain", 1), "minecraft:iron_bars") copperMachine(event, Item.of("thermal:dynamo_magmatic", 1), "thermal:rf_coil") copperMachine(event, Item.of("thermal:device_water_gen", 1), "minecraft:bucket") copperMachine(event, Item.of("create:smart_fluid_pipe", 2)) copperMachine(event, Item.of("kubejs:attachment_base", 1), "create:mechanical_pump") // smeltery controller recipe event.remove({ id: "tconstruct:smeltery/casting/seared/smeltery_controller" }) event.remove({ id: "tconstruct:smeltery/melting/metal/copper/smeltery_controller" }) donutCraft(event, "tconstruct:smeltery_controller", "#tconstruct:seared_blocks", "kubejs:sealed_mechanism").modifyResult((grid, result) => { let item = grid.find("#tconstruct:seared_blocks") return result.withNBT({ texture: item.id }) }) // - - - - - Chapter 1B - - - - - // Sturdy sheets are not used. It is replaced by reinforced mechanisms event.remove({ id: "create:sequenced_assembly/sturdy_sheet" }) // Magma blocks event.blasting("minecraft:magma_block", "minecraft:deepslate") // Magma to obsidian is a vanilla create recipe // reinforced mechanism assembly transitional = "kubejs:incomplete_reinforced_mechanism" event.recipes.create.sequenced_assembly([ "kubejs:reinforced_mechanism", ], "kubejs:kinetic_mechanism", [ event.recipes.create.deploying(transitional, [transitional, "minecraft:obsidian"]), event.recipes.create.deploying(transitional, [transitional, "minecraft:obsidian"]), event.recipes.create.pressing(transitional, [transitional]) ]).transitionalItem(transitional) .loops(1) .id("kubejs:reinforced_mechanism") // manual crafting event.shaped("kubejs:reinforced_mechanism", [ "OCO" ], { C: "kubejs:kinetic_mechanism", O: "minecraft:obsidian" }).id("kubejs:reinforced_mechanism_manual_only") // Gold machine donutCraft(event, "kubejs:gold_machine", "create:railway_casing", "kubejs:reinforced_mechanism") // Machine Crafting goldMachine(event, Item.of("create:controls", 1), "minecraft:lever") goldMachine(event, Item.of("create:track_station", 2)) goldMachine(event, Item.of("create:track_signal", 4)) goldMachine(event, Item.of("create:schedule", 4)) goldMachine(event, Item.of("create:track_observer", 2)) if (Platform.isLoaded("railways")) { goldMachine(event, Item.of("railways:semaphore", 4)) goldMachine(event, Item.of("railways:conductor_whistle", 4)) goldMachine(event, Item.of("railways:track_coupler", 2)) goldMachine(event, Item.of("railways:track_switch_andesite", 1), "create:andesite_alloy") goldMachine(event, Item.of("railways:track_switch_brass", 1), "create:brass_ingot") } // - - - - - Chapter 2 - - - - - event.remove({ id: "create:milling/compat/ae2/sky_stone_block" }) event.remove({ id: "create:milling/compat/ae2/nether_quartz" }) event.remove({ id: "create:milling/compat/ae2/certus_quartz" }) event.remove({ id: "create:crafting/materials/electron_tube" }) event.remove({ id: "create:crafting/materials/rose_quartz" }) event.remove({ id: "create:sandpaper_polishing/rose_quartz" }) event.remove({ id: "create:sandpaper_polishing/rose_quartz" }) { // This is a part of the chapter 2 script for some reason let redstoneTransmute = (input, output) => { event.custom({ "type": "tconstruct:casting_basin", "cast": { "item": input }, "cast_consumed": true, "fluid": { "name": "thermal:redstone", "amount": 50 }, "result": output, "cooling_time": 30 }) } redstoneTransmute("minecraft:cobblestone", "minecraft:netherrack") redstoneTransmute("minecraft:sand", "minecraft:red_sand") } // Infinite Sky Stone event.recipes.create.milling(["ae2:sky_dust", "ae2:sky_stone_block"], "ae2:sky_stone_block").processingTime(1000) // Infinite Certus Quartz event.shapeless("2x kubejs:certus_crystal_seed", ["ae2:certus_quartz_dust", "#minecraft:sand"]) event.remove({ id: "ae2:transform/certus_quartz_crystals" }) event.recipes.create.milling(["ae2:certus_quartz_dust"], "#ae2:all_certus_quartz").processingTime(200) event.recipes.create.milling(["thermal:quartz_dust"], "minecraft:quartz").processingTime(200) event.recipes.create.mechanical_crafting(Item.of("kubejs:certus_crystal_seed", 2), ["A"], { A: "ae2:certus_quartz_crystal" }) event.recipes.create.mechanical_crafting(Item.of("kubejs:fluix_crystal_seed", 2), ["A"], { A: "ae2:fluix_crystal" }) let grow = (from, via, to) => { event.custom({ "type": "create:sequenced_assembly", "ingredient": { "item": from }, "loops": 4, "results": [{ "item": to }], "sequence": [ { "type": "create:filling", "ingredients": [ { "item": via }, { "fluid": "minecraft:water", "amount": 500 } ], "results": [{ "item": via }] } ], "transitionalItem": { "item": via } }).id("kubejs:grow_" + to.split(":")[1]) } grow("kubejs:certus_crystal_seed", "kubejs:growing_certus_seed", "kubejs:tiny_certus_crystal") grow("kubejs:fluix_crystal_seed", "kubejs:growing_fluix_seed", "kubejs:tiny_fluix_crystal") grow("kubejs:tiny_certus_crystal", "kubejs:growing_tiny_certus_crystal", "kubejs:small_certus_crystal") grow("kubejs:tiny_fluix_crystal", "kubejs:growing_tiny_fluix_crystal", "kubejs:small_fluix_crystal") grow("kubejs:small_certus_crystal", "kubejs:growing_small_certus_crystal", "ae2:certus_quartz_crystal") grow("kubejs:small_fluix_crystal", "kubejs:growing_small_fluix_crystal", "ae2:fluix_crystal") // Volatile Sky Solution event.custom({ "type": "create:mixing", "ingredients": [ { "item": "ae2:sky_dust", "count": 4 }, { "fluid": "minecraft:water", "amount": 500 } ], "results": [ { "fluid": "kubejs:volatile_sky_solution", "amount": 500 } ] }) // Destabilized Redstone event.custom({ "type": "create:mixing", "ingredients": [ { "item": "ae2:charged_certus_quartz_crystal" }, { "fluid": "kubejs:volatile_sky_solution", "amount": 250 } ], "results": [ { "item": "ae2:certus_quartz_crystal" }, { "fluid": "thermal:redstone", "amount": 250 } ] }) // Rose Quartz event.shapeless("create:rose_quartz", [["minecraft:quartz", "ae2:certus_quartz_crystal", "ae2:charged_certus_quartz_crystal"], "minecraft:redstone", "minecraft:redstone", "minecraft:redstone", "minecraft:redstone"]) // Polished Rose Quartz event.custom({ "type": "create:mixing", "ingredients": [ { "item": "ae2:certus_quartz_crystal" }, { "fluid": "thermal:redstone", "amount": 250 } ], "results": [ { "item": "create:polished_rose_quartz" } ] }) // Electron tubes event.custom({ "type": "create:filling", "ingredients": [ { "item": "create:polished_rose_quartz" }, { "fluid": "tconstruct:molten_iron", "amount": 10 } ], "results": [ { "item": "create:electron_tube" } ] }) // Precision mechanisms event.remove({ id: "create:sequenced_assembly/precision_mechanism" }) transitional = "create:incomplete_precision_mechanism" event.recipes.create.sequenced_assembly([ "create:precision_mechanism", ], "kubejs:kinetic_mechanism", [ event.recipes.create.deploying(transitional, [transitional, "create:electron_tube"]), event.recipes.create.deploying(transitional, [transitional, "create:electron_tube"]), event.recipes.create.deploying(transitional, [transitional, "#kubejs:screwdrivers"]) ]).transitionalItem(transitional) .loops(1) .id("kubejs:precision_mechanism") // Brass Machines donutCraft(event, "kubejs:brass_machine", "create:brass_casing", "create:precision_mechanism") // Machine Crafting brassMachine(event, Item.of("create:mechanical_crafter", 3), "minecraft:crafting_table") brassMachine(event, Item.of("create:sequenced_gearshift", 2)) brassMachine(event, Item.of("create:steam_engine", 1)) brassMachine(event, Item.of("create:rotation_speed_controller", 1)) brassMachine(event, Item.of("create:mechanical_arm", 1)) brassMachine(event, Item.of("create:stockpile_switch", 2)) brassMachine(event, Item.of("create:content_observer", 2)) brassMachine(event, Item.of("thermal:machine_press", 1), "minecraft:dropper") brassMachine(event, Item.of("torchmaster:feral_flare_lantern", 1), "minecraft:glowstone_dust") brassMachine(event, Item.of("thermal:dynamo_numismatic", 1), "thermal:rf_coil") brassMachine(event, Item.of("create:brass_funnel", 4)) brassMachine(event, Item.of("create:brass_tunnel", 4)) brassMachine(event, Item.of("create:elevator_pulley", 1)) brassMachine(event, Item.of("kubejs:pipe_module_tier_1", 4)) // Lapidary Upgrade createMachine("thermal:dynamo_numismatic", event, Item.of("thermal:dynamo_lapidary", 1), "thermal:lapis_gear") // - - - - - Chapter 2A - - - - - // Vine Transmutation donutCraft(event, "minecraft:weeping_vines", "occultism:spirit_attuned_gem", "minecraft:twisting_vines") donutCraft(event, "minecraft:twisting_vines", "occultism:spirit_attuned_gem", "minecraft:weeping_vines") // Liquid soul sand event.remove({ id: "tconstruct:smeltery/melting/soul/sand" }) event.recipes.create.mixing(Fluid.of("tconstruct:liquid_soul", 500), ["minecraft:twisting_vines", "minecraft:weeping_vines"]).heated() // Infernal Mechanisms event.custom({ "type": "create:sequenced_assembly", "ingredient": { "item": "create:precision_mechanism" }, "loops": 1, "results": [ { "item": "kubejs:infernal_mechanism" } ], "sequence": [ { "type": "create:filling", "ingredients": [ { "item": "kubejs:incomplete_infernal_mechanism" }, { "fluid": "tconstruct:liquid_soul", "amount": 500 } ], "results": [ { "item": "kubejs:incomplete_infernal_mechanism" } ] }, { "type": "create:filling", "ingredients": [ { "item": "kubejs:incomplete_infernal_mechanism" }, { "fluid": "minecraft:lava", "amount": 1000 } ], "results": [ { "item": "kubejs:incomplete_infernal_mechanism" } ] }, { "type": "create:filling", "ingredients": [ { "item": "kubejs:incomplete_infernal_mechanism" }, { "fluid": "minecraft:lava", "amount": 1000 } ], "results": [ { "item": "kubejs:incomplete_infernal_mechanism" } ] }, { "type": "create:filling", "ingredients": [ { "item": "kubejs:incomplete_infernal_mechanism" }, { "fluid": "minecraft:lava", "amount": 1000 } ], "results": [ { "item": "kubejs:incomplete_infernal_mechanism" } ] } ], "transitionalItem": { "item": "kubejs:incomplete_infernal_mechanism" } }).id("kubejs:infernal_mechanism") // Zinc Machines donutCraft(event, "kubejs:zinc_machine", "kubejs:zinc_casing", "kubejs:infernal_mechanism") // Machine Crafting zincMachine(event, Item.of("thermal:device_rock_gen", 1), "minecraft:piston") zincMachine(event, Item.of("thermal:device_collector", 1), "minecraft:ender_pearl") zincMachine(event, Item.of("thermal:device_nullifier", 1), "minecraft:lava_bucket") zincMachine(event, Item.of("thermal:device_potion_diffuser", 1), "minecraft:glass_bottle") zincMachine(event, Item.of("torchmaster:megatorch", 1), "minecraft:torch") zincMachine(event, Item.of("thermal:upgrade_augment_2", 1), "minecraft:redstone") // Foundry Controller Recipe event.remove({ id: "tconstruct:smeltery/casting/scorched/foundry_controller" }) event.remove({ id: "tconstruct:smeltery/melting/obsidian/foundry_controller" }) donutCraft(event, "tconstruct:foundry_controller", "#tconstruct:scorched_blocks", "kubejs:infernal_mechanism").modifyResult((grid, result) => { let item = grid.find("#tconstruct:scorched_blocks") return result.withNBT({ texture: item.id }) }) // - - - - - Chapter 2b - - - - - // Logistic Mechanisms // TODO: make the line for this, uses above as a placeholder // Liquid Pulp event.custom({ "type": "create:mixing", "heatRequirement": "heated", "ingredients": [ { "item": "create:pulp", "count": 2 }, { "fluid": "minecraft:water", "amount": 500 } ], "results": [ { "fluid": "kubejs:liquid_pulp", "amount": 500 } ] }) event.custom({ "type": "create:sequenced_assembly", "ingredient": { "item": "create:precision_mechanism" }, "loops": 4, "results": [ { "item": "kubejs:logistic_mechanism" } ], "sequence": [ { "type": "create:filling", "ingredients": [ { "item": "kubejs:incomplete_logistic_mechanism" }, { "fluid": "create:potion", "nbt": { "Bottle": "REGULAR", "Potion": "kubejs:haste" }, "amount": 250 } ], "results": [ { "item": "kubejs:incomplete_logistic_mechanism" } ] }, { "type": "create:filling", "ingredients": [ { "item": "kubejs:incomplete_logistic_mechanism" }, { "fluid": "kubejs:liquid_pulp", "amount": 200 } ], "results": [ { "item": "kubejs:incomplete_logistic_mechanism" } ] }, { "type": "create:filling", "ingredients": [ { "item": "kubejs:incomplete_logistic_mechanism" }, { "fluid": "kubejs:liquid_pulp", "amount": 200 } ], "results": [ { "item": "kubejs:incomplete_logistic_mechanism" } ] }, { "type": "create:filling", "ingredients": [ { "item": "kubejs:incomplete_logistic_mechanism" }, { "fluid": "kubejs:liquid_pulp", "amount": 200 } ], "results": [ { "item": "kubejs:incomplete_logistic_mechanism" } ] } ], "transitionalItem": { "item": "kubejs:incomplete_logistic_mechanism" } }).id("kubejs:logistic_mechanism") donutCraft(event, "kubejs:lead_machine", "kubejs:lead_casing", "kubejs:logistic_mechanism") leadMachine(event, Item.of("create:package_frogport", 1), "#forge:slimeballs") leadMachine(event, Item.of("create:packager", 1), "create:cardboard_block") leadMachine(event, Item.of("create:repackager", 1), "create:bound_cardboard_block") leadMachine(event, Item.of("create:redstone_requester", 1), "create:stock_link") leadMachine(event, Item.of("create:factory_gauge", 2)) // Stock Link Recipe event.replaceInput({ id: "create:crafting/logistics/stock_link" }, "create:item_vault", "kubejs:lead_casing") // - - - - - Chapter 3 - - - - - // Fern Transmutation let fern1 = "kubejs:ender_slimy_fern_leaf" let fern2 = "kubejs:sky_slimy_fern_leaf" let fern3 = "kubejs:earth_slimy_fern_leaf" event.shapeless(fern1, ["occultism:spirit_attuned_gem", fern2, fern2, fern2, fern2, fern3, fern3, fern3, fern3]) event.shapeless(fern2, ["occultism:spirit_attuned_gem", fern3, fern3, fern3, fern3, fern1, fern1, fern1, fern1]) event.shapeless(fern3, ["occultism:spirit_attuned_gem", fern2, fern2, fern2, fern2, fern1, fern1, fern1, fern1]) // Fern Cutting let chop = (type, output) => { let fern = `tconstruct:${type}_slime_fern` let leaf = `kubejs:${type}_slimy_fern_leaf` let paste = `kubejs:${type}_slime_fern_paste` event.custom({ "type": "farmersdelight:cutting", "ingredients": [{ "item": fern }], "tool": { "tag": "forge:tools/knives" }, "result": [Item.of(leaf, 2)] }).id(`kubejs:cutting/${type}_slime_fern_leaf`) event.custom(ifiniDeploying(event, Item.of(leaf, 2), fern, "#forge:tools/knives")).id(`kubejs:deploying/${type}_slime_fern_leaf_using_deployer`) event.custom({ "type": "occultism:spirit_fire", "ingredient": { "item": leaf }, "result": { "item": fern } }) event.recipes.create.milling([paste], leaf) event.campfireCooking(output, paste).cookingTime(300) } chop("earth", "minecraft:gunpowder") chop("sky", "minecraft:bone_meal") chop("ender", "ae2:ender_dust") // Crushing Wheel Recipe... Does this belong with chapter 2? event.remove({ id: "create:mechanical_crafting/crushing_wheel" }) event.recipes.create.mechanical_crafting(Item.of("create:crushing_wheel", 2), [ " AAA ", "AABAA", "ABBBA", "AABAA", " AAA " ], { A: "#forge:cobblestone", B: "minecraft:stick" }) // Singularties event.recipes.create.crushing([Item.of("ae2:singularity").withChance(1)], "create:crushing_wheel").processingTime(250) // Quantum Entangled Singularties are from ae2 // Dye Entangled Singularties let dyes = ["minecraft:orange_dye", "minecraft:magenta_dye", "minecraft:light_blue_dye", "minecraft:yellow_dye", "minecraft:lime_dye", "minecraft:pink_dye", "minecraft:cyan_dye", "minecraft:purple_dye", "minecraft:blue_dye", "minecraft:brown_dye", "minecraft:green_dye", "minecraft:red_dye"] event.recipes.create.compacting("1x " + "kubejs:dye_entangled_singularity", [dyes, Item.of("ae2:quantum_entangled_singularity", 1)]) // The mysterious conversion jei entry for entangled singularities has been moved moved to client scripts // Paint Balls event.remove({ id: /ae2:tools\/paintballs.*/ }) event.recipes.create.crushing([ Item.of("ae2:red_paint_ball", 1).withChance(.90), Item.of("ae2:yellow_paint_ball", 1).withChance(.80), Item.of("ae2:green_paint_ball", 1).withChance(.70), Item.of("ae2:blue_paint_ball", 1).withChance(.60), Item.of("ae2:magenta_paint_ball", 1).withChance(.50)], "kubejs:dye_entangled_singularity").processingTime(50) // Paint Ball Depleting let colors = ["red", "yellow", "green", "blue", "magenta", "black"] for (let index = 0; index < colors.length; index++) { let element = colors[index]; if (index == colors.length - 1) continue; event.recipes.create.emptying([`ae2:${colors[index + 1]}_paint_ball`, Fluid.of("kubejs:chromatic_waste", 250)], `ae2:${element}_paint_ball`) } // Chromatic Compound event.recipes.create.mechanical_crafting("create:chromatic_compound", [ "AA", "AA" ], { A: "ae2:magenta_paint_ball" }) // Easy Torch Recipe for those who can't afford beacons event.campfireCooking("minecraft:torch", "minecraft:stick").cookingTime(20) // Radiant Coils event.recipes.create.pressing("kubejs:radiant_sheet", "create:refined_radiance") event.recipes.create.mechanical_crafting("kubejs:radiant_coil", ["A"], { A: "kubejs:radiant_sheet" }) // Chromatic Resonator event.shaped("kubejs:chromatic_resonator", [ " R ", "R S", "LS " ], { R: "thermal:ruby", L: "thermal:lead_ingot", S: "thermal:sapphire" }) // Inductive Mechanisms transitional = "kubejs:incomplete_inductive_mechanism" event.recipes.create.sequenced_assembly([ "kubejs:inductive_mechanism", ], "create:precision_mechanism", [ event.recipes.create.deploying(transitional, [transitional, "kubejs:radiant_coil"]), event.recipes.create.deploying(transitional, [transitional, "kubejs:radiant_coil"]), event.recipes.create.deploying(transitional, [transitional, "#kubejs:chromatic_resonators"]) ]).transitionalItem(transitional) .loops(1) .id("kubejs:inductive_mechanism") // Invar line is included in metallury.js // Invar Machines event.remove({ output: "thermal:machine_frame" }) donutCraft(event, "thermal:machine_frame", "kubejs:invar_casing", "kubejs:inductive_mechanism") // Machine Crafting invarMachine(event, Item.of("thermal:dynamo_compression", 1), "thermal:rf_coil") invarMachine(event, Item.of("kubejs:pipe_module_tier_2", 4)) // Disenchantment Upgrade createMachine("thermal:dynamo_compression", event, Item.of("thermal:dynamo_disenchantment", 1), "occultism:spirit_attuned_gem") // Default thermal machine recipes are kept in. // Check older versions of the script to see commented out code for thermal machine crafting recipes // - - - - - Chapter 3A - - - - - // Chorus Fruit comes from the default thermal insolator recipe // Gold and Silver melting, might belong with market recipes event.custom({ "type": "tconstruct:melting", "ingredient": { "tag": "forge:coins/silver" }, "result": { "fluid": "tconstruct:molten_silver", "amount": 10 }, "temperature": 790, "time": 40 }) event.custom({ // worth it! "type": "tconstruct:melting", "ingredient": { "tag": "forge:coins/gold" }, "result": { "fluid": "tconstruct:molten_gold", "amount": 10 }, "temperature": 790, "time": 40 }) // Enderium Ingots event.recipes.thermal.smelter("thermal:enderium_ingot", ["#forge:ingots/silver", "minecraft:chorus_fruit", "minecraft:ender_pearl"], 0, 10000) event.recipes.thermal.smelter("thermal:enderium_ingot", ["#forge:ingots/silver", "minecraft:chorus_fruit", Item.of("ae2:ender_dust", 4)], 0, 10000) // Abstruse Mechanisms event.recipes.thermal.smelter("kubejs:abstruse_mechanism", ["kubejs:inductive_mechanism", "thermal:enderium_ingot"], 0, 2000) // Ender Slime Ball? event.recipes.create.mixing(["tconstruct:ender_slime_ball"], ["minecraft:chorus_fruit", "#forge:slimeballs"]) // Enderium Machines donutCraft(event, "kubejs:enderium_machine", "kubejs:enderium_casing", "kubejs:abstruse_mechanism") // Machine Crafting enderiumMachine(event, Item.of("enderstorage:ender_chest", 1), "minecraft:chest") enderiumMachine(event, Item.of("enderstorage:ender_tank", 1), "create:fluid_tank") enderiumMachine(event, Item.of("thermal:upgrade_augment_3", 1), "minecraft:redstone") enderiumMachine(event, Item.of("ae2:quantum_ring", 1), "ae2:energy_cell") enderiumMachine(event, Item.of("ae2:quantum_link", 1), "ae2:fluix_pearl") enderiumMachine(event, Item.of("thermal:fluid_duct", 16), "create:fluid_pipe") enderiumMachine(event, Item.of("kubejs:pipe_module_tier_3", 4)) // Fluid Cells moved to enderium due to being able to transport fluids more efficiently than pipes event.replaceInput({ id: "thermal:fluid_cell_frame" }, "#forge:glass", ["thermal:fluid_duct", "thermal:fluid_duct_windowed"]) // Windowed fluiducts event.remove({ output: "thermal:fluid_duct_windowed" }) event.shapeless("thermal:fluid_duct_windowed", ["thermal:fluid_duct"]) event.shapeless("thermal:fluid_duct", ["thermal:fluid_duct_windowed"]) // - - - - - Chapter 4 - - - - - // Circuit Scraps event.stonecutting("ae2:silicon_press", "kubejs:circuit_scrap") event.stonecutting("ae2:engineering_processor_press", "kubejs:circuit_scrap") event.stonecutting("ae2:calculation_processor_press", "kubejs:circuit_scrap") event.stonecutting("ae2:logic_processor_press", "kubejs:circuit_scrap") event.shaped(Item.of("kubejs:circuit_scrap", 2), [" A ", "ABA", " A "], { A: "thermal:invar_ingot", B: "#kubejs:circuit_press" }) // Pyrolyzer charcoal event.remove({ id: "thermal:machines/pyrolyzer/pyrolyzer_logs" }) event.recipes.thermal.pyrolyzer([Item.of("minecraft:charcoal", 2), Fluid.of("thermal:creosote", 50)], "#minecraft:logs", 0.15, 1000) // Coal Coke event.recipes.thermal.pyrolyzer(["thermal:coal_coke", Fluid.of("thermal:creosote", 50)], "minecraft:charcoal", 0.15, 2000) // Coke Chunk event.custom({ "type": "create:sequenced_assembly", "ingredient": { "item": "thermal:coal_coke" }, "loops": 2, "results": [{ "item": "kubejs:coke_chunk" }], "sequence": [ { "type": "create:filling", "ingredients": [ { "item": "kubejs:incomplete_coke_chunk" }, { "fluid": "minecraft:water", "amount": 250 } ], "results": [{ "item": "kubejs:incomplete_coke_chunk" }] }, { "type": "create:cutting", "ingredients": [{ "item": "kubejs:incomplete_coke_chunk" }], "results": [{ "item": "kubejs:incomplete_coke_chunk" }], "processingTime": 100 } ], "transitionalItem": { "item": "kubejs:incomplete_coke_chunk" } }).id("kubejs:coke_cutting") // Sand Ball event.recipes.create.splashing([ Item.of("kubejs:sand_ball").withChance(0.125) ], "minecraft:sandstone") event.recipes.thermal.bottler("kubejs:sand_ball", [Fluid.of("minecraft:water", 50), "#forge:sand/colorless"], 0, 1000) // Sand Chunks event.recipes.create.emptying(["kubejs:rough_sand", Fluid.of("kubejs:fine_sand", 500)], "kubejs:sand_ball") // Entropy manipulator (for blizz cubes) event.remove({ id: "ae2:tools/misctools_entropy_manipulator" }) event.shaped("ae2:entropy_manipulator", [ "S ", " M ", " M" ], { M: "thermal:lead_plate", S: "ae2:fluix_crystal" }) let blizz = "thermal:blizz_powder"; let basalz = "thermal:basalz_powder" // remove handcrafting recipes for blizz and basalz powder event.remove({ id:blizz }) event.remove({ id:basalz }) event.remove({ id:"thermal:machines/pulverizer/pulverizer_blizz_rod" }) event.remove({ id:"thermal:machines/pulverizer/pulverizer_basalz_rod" }) event.recipes.thermal.pulverizer([Item.of(blizz).withChance(2.5), Item.of("minecraft:snowball").withChance(0.25)], "thermal:blizz_rod", 0, 800).id("kubejs:machines/pulverizer/blizz_powder") event.recipes.thermal.pulverizer([Item.of(basalz).withChance(2.5), Item.of("thermal:slag").withChance(0.25)], "thermal:basalz_rod", 0, 800).id("kubejs:machines/pulverizer/basalz_powder") // Crushing powder recipes event.recipes.create.crushing([Item.of(blizz, 1), Item.of(blizz, 1).withChance(.5)], "thermal:blizz_rod") event.recipes.create.crushing([Item.of(basalz, 1), Item.of(basalz, 1).withChance(.5)], "thermal:basalz_rod") // Ice and Earth Charges event.remove({ id: "thermal:ice_charge_3" }) event.remove({ id: "thermal:earth_charge_3" }) event.recipes.create.compacting("thermal:ice_charge", [blizz, blizz, blizz, blizz, blizz, blizz, blizz, blizz]) event.recipes.create.compacting("thermal:earth_charge", [basalz, basalz, basalz, basalz, basalz, basalz, basalz, basalz]) // Purified Sand event.recipes.thermal.smelter( ["kubejs:purified_sand"], ["kubejs:rough_sand", "thermal:earth_charge"], 0, 5000) // Silicon Compound event.custom({ "type": "create:compacting", "ingredients": [ { "fluid": "kubejs:fine_sand", "amount": 500 }, { "item": "kubejs:purified_sand" }, { "item": "kubejs:coke_chunk" } ], "results": [ { "item": "kubejs:silicon_compound" } ] }) // Silicon event.recipes.thermal.smelter( ["ae2:silicon"], ["kubejs:silicon_compound", "thermal:ice_charge"], 0, 5000) event.remove({ output: "ae2:silicon" }) // Goodbye Inscriber event.remove({ id: "ae2:network/blocks/inscribers" }) event.remove({ type: "ae2:inscriber" }) // all gem melting recipes are automatically ported to megma crucible recipe in thermal.js // Printed Processors event.custom({ "type": "tconstruct:casting_table", "cast": { "item": "ae2:calculation_processor_press" }, "cast_consumed": false, "fluid": { "tag": "tconstruct:molten_copper", "amount": 90 }, "result": { "item": "ae2:printed_calculation_processor" }, "cooling_time": 150 }) event.custom({ "type": "tconstruct:casting_table", "cast": { "item": "ae2:logic_processor_press" }, "cast_consumed": false, "fluid": { "tag": "tconstruct:molten_gold", "amount": 90 }, "result": { "item": "ae2:printed_logic_processor" }, "cooling_time": 150 }) event.custom({ "type": "tconstruct:casting_table", "cast": { "item": "ae2:engineering_processor_press" }, "cast_consumed": false, "fluid": { "tag": "tconstruct:molten_diamond", "amount": 100 }, "result": { "item": "ae2:printed_engineering_processor" }, "cooling_time": 150 }) // Chiller recipes for printed processors event.recipes.thermal.chiller("ae2:printed_calculation_processor", [Fluid.of("tconstruct:molten_copper", 90), "ae2:calculation_processor_press"], 0, 5000) event.recipes.thermal.chiller("ae2:printed_logic_processor", [Fluid.of("tconstruct:molten_gold", 90), "ae2:logic_processor_press"], 0, 5000) event.recipes.thermal.chiller("ae2:printed_engineering_processor", [Fluid.of("tconstruct:molten_diamond", 100), "ae2:engineering_processor_press"], 0, 5000) // Printed Silicon event.custom(ifiniDeploying(event, "ae2:printed_silicon", "ae2:silicon", "ae2:silicon_press")) // Processors let processorTypes = ["calculation", "logic", "engineering"] processorTypes.forEach(e => { let transitional = `kubejs:incomplete_${e}_processor` event.custom({ "type": "create:sequenced_assembly", "ingredient": { "item": "ae2:printed_silicon" }, "loops": 1, "results": [ { "item": `ae2:${e}_processor` } ], "sequence": [ { "type": "create:deploying", "ingredients": [ { "item": transitional }, { "item": `ae2:printed_${e}_processor` } ], "results": [ { "item": transitional } ] }, { "type": "create:filling", "ingredients": [ { "item": transitional }, { "fluid": "thermal:redstone", "amount": 250 } ], "results": [ { "item": transitional } ] }, { "type": "create:pressing", "ingredients": [ { "item": transitional } ], "results": [ { "item": transitional } ] } ], "transitionalItem": { "item": transitional } }).id("kubejs:" + e + "_processor") }) // Flash Drive event.shaped("kubejs:flash_drive", [ "SCA" ], { A: "tconstruct:cobalt_ingot", C: "ae2:logic_processor", S: "minecraft:iron_ingot" }) // Calculation Mechanisms transitional = "kubejs:incomplete_calculation_mechanism" event.recipes.create.sequenced_assembly([ "kubejs:calculation_mechanism", ], "kubejs:inductive_mechanism", [ event.recipes.create.deploying(transitional, [transitional, "ae2:printed_silicon"]), event.recipes.create.deploying(transitional, [transitional, "ae2:printed_silicon"]), event.recipes.create.deploying(transitional, [transitional, "#kubejs:flash_drives"]) ]).transitionalItem(transitional) .loops(1) .id("kubejs:calculation_mechanism") // Quartz Glass event.remove({ output: "ae2:quartz_glass" }) event.recipes.thermal.smelter("ae2:quartz_glass", [["ae2:certus_quartz_dust", "thermal:quartz_dust"]]) // Fluix Crystals event.recipes.thermal.smelter(Item.of("ae2:fluix_crystal", 2), ["minecraft:quartz", "ae2:charged_certus_quartz_crystal", "minecraft:redstone"]) // ME Controller event.remove({ output: "ae2:controller" }) donutCraft(event, "ae2:controller", "kubejs:fluix_casing", "kubejs:calculation_mechanism") // Machine Crafting fluixMachine(event, Item.of("ae2:condenser", 1), "ae2:fluix_pearl") fluixMachine(event, Item.of("ae2:drive", 1), "ae2:engineering_processor") fluixMachine(event, Item.of("ae2:formation_core", 4), "ae2:logic_processor") fluixMachine(event, Item.of("ae2:annihilation_core", 4), "ae2:calculation_processor") fluixMachine(event, Item.of("ae2:chest", 1), "minecraft:chest") // Recipe Tweaks event.replaceInput({ type: "minecraft:crafting_shaped", id: /ae2:.*/ }, "#forge:ingots/iron", "thermal:lead_plate") event.replaceInput({ id: "ae2:network/cells/item_storage_components_cell_1k_part" }, "minecraft:redstone", "kubejs:calculation_mechanism") event.replaceInput({ id: "ae2:network/cells/item_storage_components_cell_1k_part" }, "ae2:logic_processor", "#forge:dusts/redstone") event.replaceInput({ id: "ae2:network/cells/spatial_components" }, "minecraft:glowstone_dust", "kubejs:calculation_mechanism") event.replaceInput({ id: "ae2:network/cells/spatial_components" }, "ae2:engineering_processor", "#forge:dusts/glowstone") event.replaceInput({ id: "ae2:network/crafting/patterns_blank" }, "minecraft:glowstone_dust", "kubejs:calculation_mechanism") // - - - - - Finale (Chapter 5) - - - - - // Chiller Casts event.remove({ id: "thermal:chiller_ball_cast" }) event.remove({ id: "thermal:chiller_rod_cast" }) event.remove({ id: "thermal:chiller_ingot_cast" }) event.stonecutting("thermal:chiller_ball_cast", "thermal:nickel_plate") event.stonecutting("thermal:chiller_rod_cast", "thermal:nickel_plate") event.stonecutting("thermal:chiller_ingot_cast", "thermal:nickel_plate") // Printable Integers and Operators let castTypes = ["three", "eight", "plus", "minus", "multiply", "divide"] castTypes.forEach(e => { let cast = `kubejs:${e}_cast` let result = `kubejs:${e}` event.stonecutting(cast, "thermal:nickel_plate") event.custom({ "type": "tconstruct:casting_table", "cast": { "item": cast }, "fluid": { "name": "kubejs:raw_logic", "amount": 1 }, "result": Item.of(result), "cooling_time": 10 }) event.custom({ "type": "thermal:chiller", "ingredients": [ Fluid.of("kubejs:raw_logic", 1).toJson(), Item.of(cast).toJson() ], "result": [ Item.of(result) ], "energy": 100, }) }) // Math Operations let nums = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] let ops = [(a, b) => a + b, (a, b) => a - b, (a, b) => a * b, (a, b) => b == 0 ? "error" : a / b] let opNames = ["plus", "minus", "multiply", "divide"] for (let a = 0; a < 10; a++) { for (let b = 0; b < 10; b++) { for (let op = 0; op < ops.length; op++) { let result = ops[op](a, b) let output; if (result == "error") output = "kubejs:missingno" else if (result < 0) continue else if (result > 9) continue else if (result % 1 != 0) continue else output = "kubejs:" + nums[result] event.custom({ "type": "create:mechanical_crafting", "pattern": [ "AOB" ], "key": { "A": { "item": "kubejs:" + nums[a] }, "O": { "item": "kubejs:" + opNames[op] }, "B": { "item": "kubejs:" + nums[b] } }, "result": { "item": output }, "acceptMirrored": false }).id(`kubejs:calculation/${nums[a]}_${opNames[op]}_${nums[b]}_equals_${nums[result]}`) event.custom({ "type": "create:mechanical_crafting", "pattern": [ "A", "O", "B" ], "key": { "A": { "item": "kubejs:" + nums[a] }, "O": { "item": "kubejs:" + opNames[op] }, "B": { "item": "kubejs:" + nums[b] } }, "result": { "item": output }, "acceptMirrored": false }).id(`kubejs:calculation/${nums[a]}_${opNames[op]}_${nums[b]}_equals_${nums[result]}_vertical`) } } } // Digit Melting let meltOrCrucible = (id, out, outAmount) => { event.recipes.thermal.crucible(Fluid.of(out, outAmount), [id], 0, 100) event.custom({ "type": "tconstruct:melting", "ingredient": { "item": id }, "result": { "fluid": out, "amount": outAmount }, "temperature": 200, "time": 20 }) } meltOrCrucible("kubejs:calculation_mechanism", "kubejs:raw_logic", 30) meltOrCrucible("kubejs:zero", "kubejs:number_0", 1) meltOrCrucible("kubejs:one", "kubejs:number_1", 1) meltOrCrucible("kubejs:two", "kubejs:number_2", 1) meltOrCrucible("kubejs:three", "kubejs:number_3", 1) meltOrCrucible("kubejs:four", "kubejs:number_4", 1) meltOrCrucible("kubejs:five", "kubejs:number_5", 1) meltOrCrucible("kubejs:six", "kubejs:number_6", 1) meltOrCrucible("kubejs:seven", "kubejs:number_7", 1) meltOrCrucible("kubejs:eight", "kubejs:number_8", 1) meltOrCrucible("kubejs:nine", "kubejs:number_9", 1) // Liquid Matrix let alloyAmount = 10 let outAmount = 50 event.custom({ "type": "tconstruct:alloy", "inputs": [ { "name": "kubejs:number_0", "amount": alloyAmount }, { "name": "kubejs:number_1", "amount": alloyAmount }, { "name": "kubejs:number_2", "amount": alloyAmount }, { "name": "kubejs:number_3", "amount": alloyAmount }, { "name": "kubejs:number_4", "amount": alloyAmount }, { "name": "kubejs:number_5", "amount": alloyAmount }, { "name": "kubejs:number_6", "amount": alloyAmount }, { "name": "kubejs:number_7", "amount": alloyAmount }, { "name": "kubejs:number_8", "amount": alloyAmount }, { "name": "kubejs:number_9", "amount": alloyAmount } ], "result": { "fluid": "kubejs:matrix", "amount": outAmount }, "temperature": 200 }) // Computation Matrix event.custom({ "type": "tconstruct:casting_basin", "fluid": { "name": "kubejs:matrix", "amount": 1000 }, "result": Item.of("kubejs:computation_matrix"), "cooling_time": 20 }) // Ad Astra Recipe Removals are found in ad_astra.js // Matter Plastics event.recipes.create.compacting("kubejs:matter_plastics", ["ae2:matter_ball", "ae2:matter_ball", "ae2:matter_ball", "ae2:matter_ball", "ae2:matter_ball", "ae2:matter_ball", "ae2:matter_ball", "ae2:matter_ball", "ae2:matter_ball"]).superheated() // Saves a lot of code to reuse an object with the materials here let materials = { A: "kubejs:matter_plastics", M: "ae2:controller", G: "thermal:diamond_gear", S: "kubejs:computation_matrix" } // Navigation Computer event.recipes.create.mechanical_crafting("kubejs:navigation_computer", [ "AAAAA", "ASSSA", "GS SG", "ASSSA", "AAMAA" ], materials) // Oxygen Loader materials.S = "minecraft:bucket" event.recipes.create.mechanical_crafting("ad_astra:oxygen_loader", [ "AAA", "GSG", "AMA" ], materials) // Oxygen Bubble Distributor materials.S = "create:propeller" event.recipes.create.mechanical_crafting("ad_astra:oxygen_distributor", [ "AAA", "GSG", "AMA" ], materials) // Oxygen Sensor event.recipes.create.mechanical_crafting("ad_astra:oxygen_sensor", [ "AAA", "GSG", "AMA" ], Object.assign(materials, {M:"minecraft:redstone_block"})) // Lander Deployer materials.S = "create:empty_schematic" event.recipes.create.mechanical_crafting("kubejs:lander_deployer", [ "AAA", "GSG", "AMA" ], materials) // Space Suit. let pattern = [ " A ", "GSG", " A " ]; materials = { A: "kubejs:matter_plastics", G: "#forge:plates/gold", S: "minecraft:iron_chestplate" } // chestplate event.recipes.create.mechanical_crafting("ad_astra:space_suit", pattern, materials) // helmet materials.S = "minecraft:iron_helmet" event.recipes.create.mechanical_crafting("ad_astra:space_helmet", pattern, materials) // leggings materials.S = "minecraft:iron_leggings" event.recipes.create.mechanical_crafting("ad_astra:space_pants", pattern, materials) // boots materials.S = "minecraft:iron_boots" event.recipes.create.mechanical_crafting("ad_astra:space_boots", pattern, materials) // Gas Tanks materials = { A: "kubejs:matter_plastics", G: "#forge:plates/gold" } event.recipes.create.mechanical_crafting("ad_astra:gas_tank", [ "G", "A", "A" ], materials) materials.A = "#forge:ingots/invar" materials.T = "ad_astra:gas_tank" event.recipes.create.mechanical_crafting("ad_astra:large_gas_tank", [ " G ", "ATA", "ATA" ], materials) // Zip Gun materials.T = "ad_astra:large_gas_tank" event.recipes.create.mechanical_crafting("ad_astra:zip_gun", [ "AAG", "T " ], materials) // Rocket Launch Pad event.recipes.create.deploying(Item.of("ad_astra:launch_pad"), ["architects_palette:heavy_stone_bricks", "kubejs:matter_plastics"]) // oil refining event.custom({ "type": "thermal:refinery", "ingredient": { "fluid": "kubejs:crude_oil", "amount": 100 }, "result": [ { "fluid": "thermal:heavy_oil", "amount": 40 }, { "fluid": "thermal:light_oil", "amount": 60 }, { "item": "thermal:bitumen", "chance": 0.10 } ], "energy": 6000 }) event.custom({ "type": "thermal:refinery", "ingredient": { "fluid": "ad_astra:oil", "amount": 100 }, "result": [ { "fluid": "thermal:heavy_oil", "amount": 40 }, { "fluid": "thermal:light_oil", "amount": 60 }, { "item": "thermal:bitumen", "chance": 0.10 } ], "energy": 6000 }) // Rocket Fuel event.custom({ "type": "create:mixing", "heatRequirement": "heated", "ingredients": [ { "fluid": "thermal:refined_fuel", "amount": 30 }, { "fluid": "thermal:heavy_oil", "amount": 20 } ], "results": [ { "fluid": "ad_astra:fuel", "amount": 2 } ] }) // The Rocket event.recipes.create.mechanical_crafting("ad_astra:tier_1_rocket", [ " I ", " IPI ", " IGI ", " IGI ", " IPNPI ", " IPLPI ", " IPPPPPI ", " IIIII ", " C C C " ], { I: "minecraft:iron_block", P: "create:iron_sheet", G: "#forge:glass_panes/colorless", N: "kubejs:navigation_computer", L: "kubejs:lander_deployer", C: "thermal:dynamo_compression" }) // Solar Panel event.recipes.create.mechanical_crafting("ad_astra:solar_panel", [ "CCC", "DMD", "DDD" ], { C: "ad_astra:photovoltaic_etrium_cell", M: "ae2:controller", D: "#forge:plates/desh" }) // Gravity Normalizer transitional = "kubejs:incomplete_gravity_normalizer" event.recipes.create.sequenced_assembly([ "ad_astra:gravity_normalizer", ], "kubejs:computation_matrix", [ event.recipes.create.deploying(transitional, [transitional, "kubejs:enderium_machine"]), event.recipes.create.deploying(transitional, [transitional, "thermal:flux_capacitor"]), event.recipes.create.deploying(transitional, [transitional, "#forge:plates/desh"]), event.recipes.create.deploying(transitional, [transitional, "#forge:plates/desh"]), event.recipes.create.deploying(transitional, [transitional, "#forge:plates/desh"]) ]).transitionalItem(transitional) .loops(1) .id("kubejs:gravity_normalizer") })