This commit is contained in:
Shiroyasha 2025-09-14 20:52:18 +03:00
commit d8d0e9d536
Signed by: shiroyashik
GPG key ID: E4953D3940D7860A
2567 changed files with 167778 additions and 0 deletions

View file

@ -0,0 +1,160 @@
/**
* Various early-game recipes
*/
ServerEvents.recipes(event => {
// Aluminum EBF recipe rebuild
event.remove({ id: "gtceu:electric_blast_furnace/blast_aluminium" })
event.remove({ id: "gtceu:electric_blast_furnace/blast_aluminium_gas" })
event.recipes.gtceu.electric_blast_furnace("aluminium_ingot")
.itemInputs("gtceu:aluminium_dust")
.itemOutputs("gtceu:aluminium_ingot")
.duration(400)
.EUt(120)
.circuit(1)
.blastFurnaceTemp(1700)
event.recipes.gtceu.electric_blast_furnace("aluminium_ingot_gas")
.itemInputs("gtceu:aluminium_dust")
.inputFluids("gtceu:nitrogen 1000")
.itemOutputs("gtceu:aluminium_ingot")
.duration(268)
.EUt(120)
.circuit(2)
.blastFurnaceTemp(1700)
// Ender Pearls
event.recipes.gtceu.alloy_smelter("pulsating_ender_pearl")
.itemInputs("#forge:gems/diamond", "#forge:dusts/pulsating")
.itemOutputs("minecraft:ender_pearl")
.duration(300)
.EUt(16)
const plantMaterial = ["#minecraft:leaves", "#minecraft:saplings", "minecraft:vine"]
plantMaterial.forEach(ballIngredient => {
event.shaped("gtceu:plant_ball", [
"AAA",
"A A",
"AAA"
], { A: ballIngredient })
});
// Bronze Machine Casing
event.recipes.gtceu.assembler("bronze_machine_casing_assembler")
.itemInputs("8x gtceu:bronze_plate")
.itemOutputs("gtceu:bronze_machine_casing")
.circuit(8)
.duration(25)
.EUt(16)
// Hand-crushing
event.shapeless("minecraft:gravel", ["#forge:cobblestone/normal", "#forge:tools/mortars"])
event.shapeless("minecraft:sand", ["minecraft:gravel", "#forge:tools/hammers"])
event.shapeless("kubejs:dust", ["minecraft:sand", "#forge:tools/hammers"])
// Dust hydration
event.shapeless("minecraft:clay", ["kubejs:dust", "minecraft:water_bucket"])
// EIO Solar
event.recipes.gtceu.alloy_smelter("photovoltaic_plate")
.itemInputs("2x enderio:photovoltaic_composite", "gtceu:electrical_steel_plate")
.itemOutputs("enderio:photovoltaic_plate")
.duration(180)
.EUt(16)
// Solar composite
event.shapeless("3x enderio:photovoltaic_composite", ["gtceu:lapis_dust", "gtceu:coal_dust", "gtceu:silicon_dust"]).id("enderio:photovoltaic_composite")
event.remove({ id: "gtceu:assembler/phenolic_board" })
event.recipes.gtceu.chemical_reactor("phenolic_board")
.itemInputs("gtceu:resin_circuit_board")
.inputFluids("gtceu:phenol 100")
.itemOutputs("gtceu:phenolic_circuit_board")
.duration(100)
.EUt(8)
// Resin Board stuff
event.recipes.gtceu.assembler("kubejs:resin_board_assembler")
.itemInputs("#minecraft:planks")
.inputFluids("gtceu:glue 100")
.itemOutputs("gtceu:resin_circuit_board")
.circuit(1)
.duration(150)
.EUt(7)
event.recipes.gtceu.assembler("gtceu:basic_circuit_board")
.itemInputs("#minecraft:planks", "4x gtceu:copper_foil")
.inputFluids("gtceu:glue 100")
.itemOutputs("gtceu:resin_printed_circuit_board")
.duration(200)
.EUt(7)
// phenol
let steam = new JSONObject()
steam.add("amount", 4000)
steam.add("value", { tag: "forge:steam" })
// JSON object and FluidIngredientJS are loaded in server script _initial.js
event.recipes.gtceu.pyrolyse_oven("phenol_coal")
.itemInputs("16x minecraft:coal")
.inputFluids(FluidIngredientJS.of(steam))
.itemOutputs("20x gtceu:coke_gem")
.outputFluids("gtceu:phenol 1000")
.circuit(14)
.duration(600)
.EUt(30)
event.recipes.gtceu.pyrolyse_oven("phenol_coal_dust")
.itemInputs("16x gtceu:coal_dust")
.inputFluids(FluidIngredientJS.of(steam))
.itemOutputs("20x gtceu:coke_dust")
.outputFluids("gtceu:phenol 1000")
.circuit(14)
.duration(600)
.EUt(30)
// Pyro Oven
event.shaped("gtceu:pyrolyse_oven", [
"PCW",
"CHC",
"PUW"
], {
P: "gtceu:lv_electric_piston",
C: "#gtceu:circuits/lv",
U: "gtceu:lv_electric_pump",
W: "gtceu:cupronickel_quadruple_wire",
H: "gtceu:ulv_machine_hull"
}).id("gtceu:shaped/pyrolyse_oven")
event.remove({ id: "gtceu:arc_furnace/arc_pyrolyse_oven" })
event.remove({ id: "gtceu:macerator/macerate_pyrolyse_oven" })
// Toolbelts
event.replaceInput({ output: "toolbelt:pouch" }, "minecraft:gold_ingot", "gtceu:steel_ingot")
// early canning (using this explicitly as it has types)
// lithium, cadmium, sodium
event.recipes.minecraft.crafting_shapeless("gtceu:lv_lithium_battery", ["gtceu:lv_battery_hull", "2x #forge:dusts/lithium"]).id("moni:lv_lithium_battery")
event.recipes.minecraft.crafting_shapeless("gtceu:lv_cadmium_battery", ["gtceu:lv_battery_hull", "2x #forge:dusts/cadmium"]).id("moni:lv_cadmium_battery")
event.recipes.minecraft.crafting_shapeless("gtceu:lv_sodium_battery", ["gtceu:lv_battery_hull", "2x #forge:dusts/sodium"]).id("moni:lv_sodium_battery")
// Battery Alloy Dust
event.shapeless("4x gtceu:battery_alloy_dust", ["4x gtceu:lead_dust", "gtceu:antimony_dust"])
// Remake of cobble to gravel recipe due to recipe conflicts with Ad Astra Forge Hammer Recipes
event.remove({ id: "gtceu:forge_hammer/cobblestone_to_gravel" })
function CobbleToGravel(id, input, output) {
event.recipes.gtceu.forge_hammer(`kubejs:${id}`)
.itemInputs(Item.of(input))
.itemOutputs(output)
.duration(10)
.EUt(16)
}
CobbleToGravel("cobbletogravel", "minecraft:cobblestone", "minecraft:gravel")
CobbleToGravel("blackstonetogravel", "minecraft:blackstone", "minecraft:gravel")
CobbleToGravel("deepslatetogravel", "minecraft:cobbled_deepslate", "minecraft:gravel")
})

View file

@ -0,0 +1,495 @@
/**
* Various end-game recipes
*/
ServerEvents.recipes(event => {
event.recipes.gtceu.assembler("neutron_emitter")
.itemInputs("4x gtceu:double_neutronium_plate", "6x gtceu:graphene_foil", "4x gtceu:polybenzimidazole_plate")
.inputFluids("gtceu:tin_alloy 4608")
.itemOutputs("kubejs:neutron_emitter")
.duration(1000)
.EUt(GTValues.VA[GTValues.UV])
event.recipes.gtceu.chemical_bath("uranic_solution_uraninite")
.inputFluids("gtceu:hypochlorous_acid 1000")
.itemInputs("2x gtceu:purified_uraninite_ore")
.outputFluids("gtceu:uranic_solution 1000")
.duration(320)
.EUt(GTValues.VHA[GTValues.EV])
event.recipes.gtceu.chemical_bath("uranic_solution_pitchblende")
.inputFluids("gtceu:hypochlorous_acid 1000")
.itemInputs("2x gtceu:purified_pitchblende_ore")
.outputFluids("gtceu:uranic_solution 1000")
.duration(320)
.EUt(GTValues.VHA[GTValues.EV])
event.recipes.gtceu.chemical_bath("uranic_solution_thorium")
.inputFluids("gtceu:hypochlorous_acid 1000")
.itemInputs("2x gtceu:purified_thorium_ore")
.outputFluids("gtceu:uranic_solution 1000")
.duration(320)
.EUt(GTValues.VHA[GTValues.EV])
event.recipes.gtceu.electrolyzer("actinium_from_uranic_solution")
.inputFluids("gtceu:uranic_solution 2000")
.chancedInput("kubejs:neutron_emitter", 50, 0)
.chancedOutput("gtceu:actinium_dust", 2000, 0)
.chancedOutput("gtceu:thorium_dust", 3333, 0)
.chancedOutput("3x gtceu:uraninite_dust", 5000, 0)
.chancedItemOutputLogic(ChanceLogic.XOR)
.outputFluids("minecraft:water 1000")
.itemOutputs("3x gtceu:lead_chloride_dust")
.duration(160)
.EUt(GTValues.VHA[GTValues.ZPM])
// Assembly Line
// Dimensional Superassembler
event.recipes.gtceu.assembly_line("dimensional_superassembler")
.itemInputs("gtceu:assembly_line", "4x #gtceu:circuits/uiv", "16x gtceu:infinity_plate", "4x kubejs:dimensional_stabilization_netherite_casing", "16x kubejs:omnic_matrix_machine_casing", "6x gtceu:uev_conveyor_module", "4x gtceu:uev_robot_arm", "4x gtceu:uev_emitter", "2x gtceu:infinity_frame", "24x gtceu:polyethyl_cyanoacrylate_plate")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:omnium 5760")
.itemOutputs("gtceu:dimensional_superassembler")
.duration(6000)
.EUt(13920000)
.stationResearch(b => b
.researchStack("gtceu:assembly_line")
.CWUt(160, 1024000)
.EUt(1200000)
)
event.recipes.gtceu.assembly_line("gtceu:mega_alloy_blast_smelter")
.itemInputs("gtceu:alloy_blast_smelter", "4x #gtceu:circuits/uhv", "4x gtceu:uv_field_generator", "4x #forge:springs/yttrium_barium_cuprate", "4x #forge:dense_plates/neutronium", "4x gtceu:ruthenium_trinium_americium_neutronate_quadruple_wire")
.inputFluids("gtceu:soldering_alloy 9216", "gtceu:omnium 5760")
.itemOutputs("gtceu:mega_alloy_blast_smelter")
.duration(4000)
.EUt(GTValues.VA[GTValues.UHV])
.stationResearch(b => b
.researchStack("gtceu:alloy_blast_smelter")
.CWUt(128, 768000)
.EUt(GTValues.VA[GTValues.UHV])
)
// Helical Fusion Reactor
event.recipes.gtceu.assembly_line("gtceu:helical_fusion_reactor")
.itemInputs("gtceu:uv_fusion_reactor", "4x #gtceu:circuits/uev", "gtceu:gravi_star", "2x gtceu:double_activated_netherite_plate", "4x gtceu:uhv_field_generator", "64x kubejs:multidimensional_cpu_chip", "64x kubejs:multidimensional_cpu_chip", "64x gtceu:ruthenium_trinium_americium_neutronate_single_wire", "24x gtceu:polyethyl_cyanoacrylate_plate")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:omnium 5760")
.itemOutputs("gtceu:helical_fusion_reactor")
.duration(6000)
.EUt(13920000)
.stationResearch(b => b
.researchStack("gtceu:uv_fusion_reactor")
.CWUt(160, 1024000)
.EUt(1200000)
)
// Blacklight
event.shaped("gtceu:blacklight", [
"BPB",
" S ",
"CPW"
], {
B: "gtceu:tungsten_carbide_screw",
C: "#gtceu:circuits/iv",
P: "gtceu:tungsten_carbide_plate",
S: "gtceu:hssg_spring",
W: "gtceu:platinum_single_cable"
}).id("gtceu:shaped/blacklight")
// Trinaquadalloy Mixer Recipe
event.recipes.gtceu.mixer("mixer_trinaquadalloy")
.itemInputs("6x gtceu:trinium_dust", "2x gtceu:naquadah_dust", "gtceu:carbon_dust")
.itemOutputs("9x gtceu:trinaquadalloy_dust")
.circuit(1)
.duration(300)
.EUt(491250)
// Fluxed Electrum Mixer Recipe
event.recipes.gtceu.mixer("mixer_electrum_flux")
.itemInputs("6x gtceu:electrum_dust", "gtceu:lumium_dust", "gtceu:signalum_dust")
.itemOutputs("8x gtceu:electrum_flux_dust")
.circuit(2)
.duration(300)
.EUt(129)
// Atomic Casings
event.shaped("2x gtceu:atomic_casing", [
"PHP",
"PFP",
"PWP"
], {
P: "gtceu:trinaquadalloy_plate",
H: "#forge:tools/hammers",
W: "#forge:tools/wrenches",
F: "gtceu:naquadah_alloy_frame",
}).id("gtceu:shaped/atomic_casing")
event.recipes.gtceu.assembler("atomic_casing")
.itemInputs("6x gtceu:trinaquadalloy_plate", "gtceu:naquadah_alloy_frame")
.itemOutputs("2x gtceu:atomic_casing")
.duration(100)
.EUt(16)
.circuit(6)
// Sterilising Filter Casing
event.shaped("4x gtceu:sterilizing_filter_casing", [
"PEP",
"FBF",
"MSR"
], {
B: "gtceu:blacklight",
E: "gtceu:luv_emitter",
F: "gtceu:item_filter",
M: "gtceu:luv_electric_motor",
P: "gtceu:polybenzimidazole_large_fluid_pipe",
R: "gtceu:iridium_rotor",
S: "gtceu:tritanium_frame"
}).id("gtceu:shaped/filter_casing_sterile")
// FLux Gem
event.remove({ id: "redstone_arsenal:materials/flux_gem" })
event.recipes.gtceu.autoclave("flux_gem")
.itemInputs("minecraft:diamond")
.inputFluids("gtceu:redstone 720")
.itemOutputs("redstone_arsenal:flux_gem")
.duration(200)
.EUt(400)
// Ultimate Material
event.recipes.gtceu.assembly_line("kubejs:the_ultimate_material")
.itemInputs("kubejs:warden_heart", "4x kubejs:guardian_scale", "8x kubejs:wither_bone", "12x kubejs:ender_dragon_scale")
.itemOutputs("kubejs:the_ultimate_material")
.duration(600)
.EUt(491520)
.stationResearch(b => b
.researchStack("kubejs:warden_heart")
.CWUt(96, 384000)
.EUt(491520)
)
// Flux Plating
event.shaped("4x redstone_arsenal:flux_plating", [
" P ",
"PGP",
" P "
], {
G: "redstone_arsenal:flux_gem",
P: "gtceu:electrum_flux_plate"
}).id("redstone_arsenal:materials/flux_plating")
event.recipes.gtceu.omnic_forge("kubejs:flux_plating_assembly")
.itemInputs("redstone_arsenal:flux_gem", "4x gtceu:electrum_flux_plate")
.itemOutputs("4x redstone_arsenal:flux_plating")
.duration(60)
.EUt(GTValues.VA[GTValues.EV])
// Vacuum Freezer
// kubejs Superconductor Wire
event.recipes.gtceu.vacuum_freezer("sculk_superconductor")
.itemInputs("gtceu:cryococcus_ingot")
.itemOutputs("gtceu:sculk_superconductor_ingot")
.inputFluids(Fluid.of("gtceu:nether_star", 144))
.duration(100)
.EUt(6000)
// Chemical Reactor
event.recipes.gtceu.chemical_reactor("cryolobus_dust")
.itemInputs("gtceu:manyullyn_dust", "minecraft:sculk_catalyst")
.itemOutputs("gtceu:cryolobus_dust")
.duration(500)
.EUt(2000)
// Kubejs Stem Cells
event.remove({ id: "gtceu:chemical_reactor/stem_cells" })
event.remove({ id: "gtceu:large_chemical_reactor/stem_cells" })
event.recipes.gtceu.chemical_reactor("kubejs_stem_cells")
.itemInputs("minecraft:dragon_egg")
.chancedInput("minecraft:sculk_catalyst", 500, 0)
.inputFluids("gtceu:sterilized_growth_medium 500", "gtceu:bacteria 500", "enderio:xp_juice 2000")
.itemOutputs("64x gtceu:stem_cells")
.itemOutputsRanged("gtceu:stem_cells", 0, 64)
.outputFluids("gtceu:bacterial_sludge 500")
.duration(6000)
.EUt(30720)
.cleanroom(CleanroomType.STERILE_CLEANROOM)
// Blast Furnace
event.recipes.gtceu.electric_blast_furnace("quantum_fluxed_eternium_heavy_plating")
.itemInputs("10x redstone_arsenal:flux_plating", "gtceu:cryococcus_plate", "16x kubejs:quantum_flux")
.inputFluids("gtceu:krypton 1000")
.itemOutputs("kubejs:quantum_fluxed_eternium_heavy_plating")
.duration(200)
.EUt(250000)
.blastFurnaceTemp(9000)
event.recipes.gtceu.electric_blast_furnace("universe_resistant_neutronium_heavy_plating")
.itemInputs("gtceu:neutronium_plate", "2x kubejs:mote_of_omnium", "16x gtceu:quantum_eye")
.inputFluids("gtceu:xenon 1000")
.itemOutputs("kubejs:universe_resistant_neutronium_heavy_plating")
.duration(200)
.EUt(250000)
.blastFurnaceTemp(10000)
event.recipes.gtceu.omnic_forge("elementally_infused_omnic_matrix_heavy_plating")
.itemInputs("4x gtceu:omnium_plate", "gtceu:dense_crystal_matrix_plate", "gtceu:gravi_star", "4x gtceu:neutron_reflector", "16x kubejs:primal_mana")
.itemOutputs("kubejs:elementally_infused_omnic_matrix_heavy_plating")
.duration(100)
.EUt(1000000)
event.recipes.gtceu.omnic_forge("dimensionally_stabilized_infinity_heavy_plating")
.itemInputs("gtceu:infinity_plate", "gtceu:dense_activated_netherite_plate", "kubejs:quasi_stable_neutron_star", "8x gtceu:neutron_reflector", "12x kubejs:the_ultimate_material")
.itemOutputs("kubejs:dimensionally_stabilized_infinity_heavy_plating")
.duration(100)
.EUt(4000000)
// Mote of omnium
event.recipes.gtceu.implosion_compressor("implosion_compressor_ominium_nugget")
.itemInputs("kubejs:mote_of_omnium", "minecraft:tnt")
.itemOutputs("gtceu:omnium_nugget")
.duration(20)
.EUt(30)
event.recipes.gtceu.implosion_compressor("implosion_compressor_ominium_nugget_itnt")
.itemInputs("4x kubejs:mote_of_omnium", "gtceu:industrial_tnt")
.itemOutputs("4x gtceu:omnium_nugget")
.duration(20)
.EUt(30)
// Crystal Matrix Materials
event.shaped("kubejs:diamond_lattice", [
"PBP",
"BGB",
"PBP"
], {
P: "minecraft:diamond",
G: "gtceu:exquisite_diamond_gem",
B: "gtceu:diamond_screw"
}).id("kubejs:diamond_lattice")
event.recipes.gtceu.assembler("kubejs:diamond_lattice")
.itemInputs("gtceu:flawless_diamond_gem", "2x gtceu:diamond_plate", "4x gtceu:diamond_screw")
.itemOutputs("kubejs:diamond_lattice")
.duration(100)
.EUt(GTValues.VA[GTValues.ZPM])
// Ultimate Gem
event.recipes.extendedcrafting.shapeless_table(
"kubejs:ultimate_gem",
[
"kubejs:destabilized_clathrate",
"gtceu:enori_empowered_gem",
"enderio:ender_crystal",
"enderio:vibrant_crystal",
"gtceu:dilithium_gem",
"enderio:enticing_crystal",
"enderio:weather_crystal",
"enderio:prescient_crystal",
"enderio:pulsating_crystal",
"minecraft:prismarine_shard",
"gtceu:cinnabar_gem",
"kubejs:energized_clathrate",
"minecraft:quartz",
"gtceu:certus_quartz_gem",
"gtceu:fluix_gem",
"gtceu:restonia_empowered_gem",
"gtceu:palis_empowered_gem",
"gtceu:diamatine_empowered_gem",
"gtceu:void_empowered_gem",
"gtceu:emeradic_empowered_gem",
"kubejs:resonating_crystal",
"minecraft:emerald",
"redstone_arsenal:flux_gem",
"minecraft:diamond",
"kubejs:resonant_clathrate"
]
)
event.recipes.extendedcrafting.shaped_table("gtceu:zero_point_module", [
" PPPPP ",
" PBCBP ",
" PCBCP ",
" PBCBP ",
" ZZZ ",
" ZFZ ",
" ZFZ ",
" ZZZ ",
" PPP "
], {
B: "kubejs:stabilized_berkelium",
C: "kubejs:stabilized_californium",
F: "gtceu:zpm_field_generator",
P: "nuclearcraft:plate_elite",
Z: "#gtceu:circuits/zpm"
})
// World Accelerators
event.remove({ id: "gtceu:shaped/lv_world_accelerator" })
event.remove({ id: "gtceu:shaped/mv_world_accelerator" })
event.remove({ id: "gtceu:shaped/hv_world_accelerator" })
event.remove({ id: "gtceu:shaped/ev_world_accelerator" })
event.remove({ id: "gtceu:shaped/iv_world_accelerator" })
event.remove({ id: "gtceu:shaped/luv_world_accelerator" })
event.remove({ id: "gtceu:shaped/zpm_world_accelerator" })
event.remove({ id: "gtceu:shaped/uv_world_accelerator" })
event.recipes.gtceu.assembly_line("hv_world_accelerator")
.itemInputs("gtceu:luv_machine_hull", "64x gtceu:luv_field_generator", "16x gtceu:luv_field_generator", "20x gtceu:luv_sensor", "20x gtceu:luv_emitter", "16x #gtceu:circuits/luv", "4x gtceu:double_iridium_plate", "2x gtceu:dense_cryolobus_plate")
.inputFluids("gtceu:enderium 1152", "gtceu:soldering_alloy 1152")
.itemOutputs("gtceu:hv_world_accelerator")
.stationResearch(b => b.researchStack("minecraft:clock").CWUt(4, 16000))
.duration(6000)
.EUt(30720)
event.recipes.gtceu.assembly_line("ev_world_accelerator")
.itemInputs("gtceu:zpm_machine_hull", "64x gtceu:zpm_field_generator", "16x gtceu:zpm_field_generator", "20x gtceu:zpm_sensor", "20x gtceu:zpm_emitter", "16x #gtceu:circuits/zpm", "4x gtceu:double_europium_plate", "2x gtceu:dense_cryolobus_plate")
.inputFluids("gtceu:enderium 1152", "gtceu:soldering_alloy 1152")
.itemOutputs("gtceu:ev_world_accelerator")
.duration(6000)
.EUt(122880)
.stationResearch(b => b
.researchStack("gtceu:hv_world_accelerator")
.CWUt(32, 128000)
.EUt(122880)
)
event.recipes.gtceu.assembly_line("iv_world_accelerator")
.itemInputs("gtceu:uv_machine_hull", "64x gtceu:uv_field_generator", "16x gtceu:uv_field_generator", "20x gtceu:uv_sensor", "20x gtceu:uv_emitter", "16x #gtceu:circuits/uv", "4x gtceu:double_europium_plate", "2x gtceu:dense_neutronium_plate")
.inputFluids("gtceu:enderium 1152", "gtceu:soldering_alloy 1152")
.itemOutputs("gtceu:iv_world_accelerator")
.duration(6000)
.EUt(491520)
.stationResearch(b => b
.researchStack("gtceu:ev_world_accelerator")
.CWUt(64, 256000)
.EUt(491520)
)
event.recipes.gtceu.assembly_line("luv_world_accelerator")
.itemInputs("gtceu:uhv_machine_hull", "64x gtceu:uhv_field_generator", "16x gtceu:uhv_field_generator", "20x gtceu:uhv_sensor", "20x gtceu:uhv_emitter", "16x #gtceu:circuits/uhv", "4x gtceu:double_activated_netherite_plate", "2x gtceu:dense_neutronium_plate")
.inputFluids("gtceu:omnium 1152", "gtceu:soldering_alloy 1152")
.itemOutputs("gtceu:luv_world_accelerator")
.duration(6000)
.EUt(1966080)
.stationResearch(b => b
.researchStack("gtceu:iv_world_accelerator")
.CWUt(128, 512000)
.EUt(1966080)
)
// Beyond this point we could probably just treat these like joke items
event.recipes.gtceu.assembly_line("zpm_world_accelerator")
.itemInputs("gtceu:uev_machine_hull", "64x gtceu:uev_field_generator", "16x gtceu:uev_field_generator", "20x gtceu:uev_sensor", "20x gtceu:uev_emitter", "16x #gtceu:circuits/uev", "4x gtceu:double_holmium_plate", "2x gtceu:dense_infinity_plate")
.inputFluids("gtceu:omnium 1152", "gtceu:soldering_alloy 1152")
.itemOutputs("gtceu:zpm_world_accelerator")
.duration(6000)
.EUt(7864320)
.stationResearch(b => b
.researchStack("gtceu:luv_world_accelerator")
.CWUt(128, 512000)
.EUt(7864320)
)
event.recipes.gtceu.assembly_line("uv_world_accelerator")
.itemInputs("gtceu:uiv_machine_hull", "64x gtceu:uiv_field_generator", "16x gtceu:uiv_field_generator", "20x gtceu:uiv_sensor", "20x gtceu:uiv_emitter", "16x #gtceu:circuits/uiv", "4x gtceu:double_monium_plate", "2x gtceu:dense_infinity_plate")
.inputFluids("gtceu:omnium 11520", "gtceu:soldering_alloy 11520")
.itemOutputs("gtceu:uv_world_accelerator")
.duration(6000)
.EUt(31457280)
.stationResearch(b => b
.researchStack("gtceu:zpm_world_accelerator")
.CWUt(256, 1024000)
.EUt(31457280)
)
// ! Creative Items !//
// Creative Jetpack
event.recipes.extendedcrafting.shaped_table(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:creative"}').weakNBT(), [
" C L ",
" CCC LLL ",
" CVCFLEL ",
" CVCILEL ",
" CVCDLEL ",
" CVC LEL ",
" SSS HHH ",
" N R ",
" NNN RRR "
], {
C: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:conductive_iron"}').weakNBT(),
D: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:dark_soularium"}').weakNBT(),
E: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:resonant"}').weakNBT(),
F: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:fluxed"}').weakNBT(),
H: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:hardened"}').weakNBT(),
I: "kubejs:infinity_catalyst",
L: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:leadstone"}').weakNBT(),
N: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:energetic"}').weakNBT(),
R: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:reinforced"}').weakNBT(),
S: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:electrical_steel"}').weakNBT(),
V: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:vibrant"}').weakNBT()
})
// Creative Solar Panel
event.recipes.extendedcrafting.shaped_table("solarflux:sp_custom_infinity", [
"SNNNNNNNS",
"NPPPNPPPN",
"NPPPNPPPN",
"NPPPNPPPN",
"NNNNINNNN",
"NPPPNPPPN",
"NPPPNPPPN",
"NPPPNPPPN",
"SNNNNNNNS"
], {
I: "kubejs:infinity_catalyst",
N: "gtceu:neutronium_plate",
P: "gtceu:infinity_plate",
S: "solarflux:sp_custom_neutronium"
})
// Creative Chest
event.recipes.extendedcrafting.shaped_table("2x gtceu:creative_chest", [
"BMMMMMMMMMB",
"MIWOPPPOYIM",
"MIFNNNNNFIM",
"MINCSSSCNIM",
"RUSSAQASSUR",
"REEMGHGMEER",
"RUTTAQATTUR",
"MINCTTTCNIM",
"MIFNNNNNFIM",
"MIXPPZPPVIM",
"BMMMMMMMMMB"
], {
A: "kubejs:furious_infinity_catalyst",
B: "gtceu:monium_block",
C: "kubejs:serene_infinity_catalyst",
E: "kubejs:creative_energy_data",
F: "gtceu:uiv_field_generator",
G: "gtceu:monium_gear",
H: "gtceu:max_machine_hull",
I: "kubejs:elementally_infused_omnic_matrix_heavy_plating",
M: "kubejs:causality_exempt_monic_heavy_plating",
N: "kubejs:dimensionally_stabilized_infinity_heavy_plating",
O: "gtceu:uiv_sensor",
P: "kubejs:monic_processor_mainframe",
Q: "kubejs:field_stabilised_omnic_pulsar_compound",
R: "gtceu:uiv_robot_arm",
S: "kubejs:creative_storage_data",
T: "kubejs:omnic_data",
U: "gtceu:subatomic_digital_assembler",
V: "kubejs:infinity_file",
W: "kubejs:infinity_screwdriver",
X: "kubejs:infinity_wrench",
Y: "kubejs:infinity_hammer",
Z: "kubejs:infinity_wire_cutter"
})
event.recipes.gtceu.canner("contained_singularity")
.itemInputs("kubejs:singularity_containment_unit", "ae2:singularity")
.itemOutputs("kubejs:contained_singularity")
.duration(20)
.EUt(GTValues.VA[GTValues.UEV])
})

View file

@ -0,0 +1,231 @@
/**
* Anything that is an extended crafting recipe comes here
! DO NOT PUT CREATIVE STUFF, PUT IT ON END_GAME.js
? For end game intermediates (ingots plates..) that uses ectendedcrafting, put it here
*/
ServerEvents.recipes(event => {
// ETERNAL CATALYST
event.recipes.extendedcrafting.shaped_table("kubejs:eternal_catalyst", [
" A ",
" A A A ",
" AAPAA ",
" ARWEA ",
"AAVXUYDAA",
" AEZRA ",
" AAIAA ",
" A A A ",
" A "
], {
A: "kubejs:mote_of_omnium",
P: "gtceu:palis_empowered_gear",
R: "gtceu:restonia_empowered_gear",
V: "gtceu:void_empowered_gear",
E: "gtceu:emeradic_empowered_gear",
I: "gtceu:enori_empowered_gear",
D: "gtceu:diamatine_empowered_gear",
W: "kubejs:ender_star",
X: "gtceu:gravi_star",
Z: "gtceu:quantum_star",
Y: "kubejs:endest_star",
U: "kubejs:the_ultimate_material"
}).id("kubejs:extended/eternal_catalyst");
// INFINITY CATALYST
event.recipes.extendedcrafting.shaped_table("kubejs:infinity_catalyst", [
"PPPPEPPPP",
"PEPPEPPEP",
"PPEEEEEPP",
"PPEECEEPP",
"EEECHCEEE",
"PPEECEEPP",
"PPEEEEEPP",
"PEPPEPPEP",
"PPPPEPPPP",
], {
P: "gtceu:tiny_neutronium_dust",
E: "kubejs:eternal_catalyst",
C: "kubejs:hadal_energy_core",
H: "kubejs:heart_of_a_universe"
}).id("kubejs:extended/infinity_catalyst");
// infinity ingot
event.recipes.extendedcrafting.shaped_table("kubejs:dormant_infinity_compound_ingot", [
" ",
" BAAA",
" BAAADCA",
"AAACDCCDA",
"ACDDCDDCA",
"ADCCDCAAA",
"ACDAAAB ",
"AAAB ",
" "
], {
A: "gtceu:neutronium_ingot",
B: "gtceu:neutronium_nugget",
C: "gtceu:activated_netherite_ingot",
D: "kubejs:eternal_catalyst"
}).id("kubejs:extended/infinity_compound")
event.recipes.gtceu.electric_blast_furnace("infinity_ingot_activation")
.itemInputs("kubejs:dormant_infinity_compound_ingot", "kubejs:infinity_catalyst")
.inputFluids(Fluid.of("gtceu:omnium", 576))
.itemOutputs("gtceu:infinity_ingot")
.duration(400)
.EUt(50000)
.blastFurnaceTemp(12500)
event.recipes.gtceu.electric_blast_furnace("infinity_ingot_activation_t2")
.itemInputs("4x kubejs:dormant_infinity_compound_ingot", "kubejs:furious_infinity_catalyst")
.inputFluids(Fluid.of("gtceu:omnium", 576))
.itemOutputs("4x gtceu:infinity_ingot", "kubejs:dormant_furious_infinity_catalyst")
.duration(300)
.EUt(250000)
.blastFurnaceTemp(12500)
event.recipes.gtceu.electric_blast_furnace("infinity_ingot_activation_t3")
.itemInputs("16x kubejs:dormant_infinity_compound_ingot", "kubejs:serene_infinity_catalyst")
.inputFluids(Fluid.of("gtceu:omnium", 576))
.itemOutputs("16x gtceu:infinity_ingot", "kubejs:inert_serene_infinity_catalyst")
.duration(200)
.EUt(1000000)
.blastFurnaceTemp(12500)
// mote of omnium
event.recipes.extendedcrafting.shapeless_table(
"kubejs:mote_of_omnium", [
"gtceu:tiny_nether_star_dust",
"kubejs:solidified_hydrogen",
"kubejs:solidified_helium",
"gtceu:lithium_dust",
"gtceu:beryllium_ingot",
"gtceu:boron_dust",
"gtceu:carbon_dust",
"kubejs:solidified_nitrogen",
"gtceu:tiny_nether_star_dust",
"kubejs:solidified_oxygen",
"kubejs:solidified_fluorine",
"kubejs:solidified_neon",
"gtceu:sodium_dust",
"gtceu:magnesium_dust",
"gtceu:aluminium_ingot",
"gtceu:silicon_dust",
"gtceu:phosphorus_dust",
"gtceu:sulfur_dust",
"kubejs:solidified_chlorine",
"kubejs:solidified_argon",
"gtceu:potassium_dust",
"gtceu:calcium_dust",
"gtceu:titanium_ingot",
"gtceu:vanadium_ingot",
"gtceu:chromium_ingot",
"gtceu:manganese_ingot",
"iron_ingot",
"gtceu:cobalt_ingot",
"gtceu:nickel_ingot",
"copper_ingot",
"gtceu:zinc_ingot",
"gtceu:gallium_ingot",
"gtceu:arsenic_dust",
"kubejs:solidified_krypton",
"gtceu:yttrium_ingot",
"gtceu:niobium_ingot",
"gtceu:molybdenum_ingot",
"gtceu:ruthenium_ingot",
"gtceu:rhodium_ingot",
"kubejs:exotic_materials_catalyst",
"gtceu:palladium_ingot",
"gtceu:silver_ingot",
"gtceu:cadmium_dust",
"gtceu:indium_ingot",
"gtceu:tin_ingot",
"gtceu:antimony_ingot",
"kubejs:solidified_xenon",
"gtceu:caesium_dust",
"gtceu:barium_dust",
"gtceu:lanthanum_dust",
"gtceu:cerium_dust",
"gtceu:neodymium_ingot",
"gtceu:samarium_ingot",
"gtceu:europium_ingot",
"gtceu:lutetium_ingot",
"gtceu:tantalum_ingot",
"gtceu:tungsten_ingot",
"gtceu:osmium_ingot",
"gtceu:iridium_ingot",
"gtceu:platinum_ingot",
"gold_ingot",
"kubejs:solidified_mercury",
"gtceu:lead_ingot",
"gtceu:bismuth_ingot",
"kubejs:solidified_radon",
"gtceu:thorium_ingot",
"kubejs:stabilized_uranium",
"kubejs:stabilized_neptunium",
"kubejs:stabilized_plutonium",
"gtceu:americium_ingot",
"kubejs:stabilized_curium",
"kubejs:stabilized_berkelium",
"gtceu:tiny_nether_star_dust",
"kubejs:stabilized_californium",
"kubejs:stabilized_einsteinium",
"gtceu:darmstadtium_ingot",
"gtceu:tritanium_ingot",
"gtceu:duranium_ingot",
"gtceu:trinium_ingot",
"gtceu:naquadah_ingot",
"gtceu:tiny_nether_star_dust",
]
).id("kubejs:extended/mote_of_omnium")
// exotic material catalyst
event.recipes.extendedcrafting.shaped_table("kubejs:exotic_materials_catalyst", [
"A B C",
" D E F ",
" GHI ",
"JKLMNOP",
" QRS ",
" T U V ",
"W X Y"
], {
A: "gtceu:nichrome_ingot",
B: "gtceu:red_steel_ingot",
C: "gtceu:kanthal_ingot",
D: "gtceu:magnalium_ingot",
E: "gtceu:mythril_ingot",
F: "gtceu:manyullyn_ingot",
G: "gtceu:enderium_ingot",
H: "gtceu:blue_steel_ingot",
I: "gtceu:microversium_ingot",
J: "gtceu:vanadium_steel_ingot",
K: "gtceu:rhodium_plated_palladium_ingot",
L: "gtceu:electrum_flux_ingot",
M: "gtceu:dark_soularium_ingot",
N: "gtceu:crystal_matrix_ingot",
O: "gtceu:end_steel_ingot",
P: "gtceu:electrical_steel_ingot",
Q: "gtceu:signalum_ingot",
R: "gtceu:vibrant_alloy_ingot",
S: "gtceu:soularium_ingot",
T: "gtceu:hsse_ingot",
U: "gtceu:dark_steel_ingot",
V: "gtceu:hssg_ingot",
W: "gtceu:ruridit_ingot",
X: "gtceu:hsss_ingot",
Y: "gtceu:energetic_alloy_ingot"
}).id("kubejs:extended/exotic_materials_catalyst")
// Angel Ring
event.recipes.extendedcrafting.shaped_table("better_angel_ring:angel_ring", [
" AAA ",
"A B A",
"AC CA",
"A B A",
" AAA "
], {
A: "gtceu:rose_gold_ingot",
B: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:energetic"}').weakNBT(),
C: Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:reinforced"}').weakNBT(),
}).id("kubejs:extended/angel_ring")
})

View file

@ -0,0 +1,142 @@
/** Infinity Toolset recipes and subrecipes */
ServerEvents.recipes(event => {
// Infinity File
event.recipes.extendedcrafting.shaped_table("kubejs:infinity_file", [
" A ",
" BCA ",
"ACBCA ",
" ACBCA ",
" ACBCE ",
" ACDE ",
" EEEE ",
" EEE",
" EE",
], {
A: "gtceu:neutronium_plate",
B: "gtceu:infinity_plate",
C: "gtceu:eltz_plate",
D: "kubejs:infinity_power_unit",
E: "gtceu:omnium_ingot"
});
// Infinity Hammer
event.recipes.extendedcrafting.shaped_table("kubejs:infinity_hammer", [
" B ",
" BCA ",
" BCBCA ",
" ACBCA ",
" EDCBCB",
" EEEACB ",
" EEE B ",
"EEE ",
"EE ",
], {
A: "gtceu:neutronium_ingot",
B: "gtceu:infinity_ingot",
C: "gtceu:eltz_ingot",
D: "kubejs:infinity_power_unit",
E: "gtceu:omnium_ingot"
});
// Infinity Screwdriver
event.recipes.extendedcrafting.shaped_table("kubejs:infinity_screwdriver", [
" BC",
" BCB",
" BCB ",
" BCB ",
" AACB ",
" ECDA ",
" ECCA ",
"EEEE ",
"EE ",
], {
A: "gtceu:neutronium_rod",
B: "gtceu:infinity_rod",
C: "gtceu:eltz_rod",
D: "kubejs:infinity_power_unit",
E: "gtceu:omnium_ingot"
});
// Infinity Wrench
event.recipes.extendedcrafting.shaped_table("kubejs:infinity_wrench", [
" A A ",
" AB BA",
" AB BA",
" ABDBCA",
" ACCCA ",
" ACAAA ",
" ACA ",
"ACA ",
"CA ",
], {
A: "gtceu:neutronium_plate",
B: "gtceu:infinity_plate",
C: "gtceu:eltz_plate",
D: "kubejs:infinity_power_unit"
});
// Infinity Wire Cutter
event.recipes.extendedcrafting.shaped_table("kubejs:infinity_wire_cutter", [
" AA AA ",
" ACB BCA ",
" ACB BCA ",
" ACB BCA ",
" ACBABCA ",
" AADAA ",
" EEEEE ",
" EEE EEE ",
" EE EE ",
], {
A: "gtceu:neutronium_plate",
B: "gtceu:infinity_plate",
C: "gtceu:eltz_plate",
D: "kubejs:infinity_power_unit",
E: "gtceu:omnium_ingot"
});
// Infinity Power Unit
event.recipes.gtceu.assembly_line("infinity_toolset/infinity_power_unit")
.itemInputs("kubejs:infinity_catalyst", "32x gtceu:polyethyl_cyanoacrylate_plate", "16x gtceu:darmstadtium_plate", "16x gtceu:enriched_naquadah_trinium_europium_duranide_plate", "16x #gtceu:circuits/uhv", "8x #gtceu:circuits/uev", "12x kubejs:hadal_energy_core", "2x gtceu:max_battery", "8x gtceu:ruthenium_trinium_americium_neutronate_quadruple_wire", "16x gtceu:uev_electric_motor")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:polybenzimidazole 1152", "gtceu:omnium 5760", "gtceu:crystal_matrix 1152")
.itemOutputs("kubejs:infinity_power_unit")
.duration(1200)
.EUt(1966080)
// Dense Obsidian Plate for Reinforced Obsidian
// TODO IN 0.13: REMOVE BENDER RECIPE
event.recipes.gtceu.implosion_compressor("infinity_toolset/dense_obsidian_plate")
.itemInputs("9x gtceu:obsidian_plate", "minecraft:tnt")
.itemOutputs("gtceu:dense_obsidian_plate")
.duration(20)
.EUt(30)
event.remove({ output: "enderio:dark_steel_bars" })
// Get greg'd idiot
event.shaped("3x enderio:dark_steel_bars", [
" H ",
"RRR",
"RRR"
], {
R: "gtceu:dark_steel_rod",
H: "#forge:tools/hammers"
})
event.recipes.gtceu.assembler("dark_steel_bars")
.itemInputs("6x gtceu:dark_steel_rod")
.itemOutputs("3x enderio:dark_steel_bars")
.duration(300)
.EUt(4)
event.shaped("enderio:reinforced_obsidian_block", [
"IBI",
"BPB",
"IBI"
], {
P: "gtceu:dense_obsidian_plate",
B: "enderio:dark_steel_bars",
I: "gtceu:double_titanium_tungsten_carbide_plate"
})
})

View file

@ -0,0 +1,41 @@
/**
* Recipe removals that don't belong in other files.
*
* If you seek to both hide an item/fluid and remove it from all recipes and tags, then look into
* KubeJS/startup_scripts/nukeLists/item.js and KubeJS/startup_scripts/nukeLists/fluid.js
*/
ServerEvents.recipes(event => {
// Snad
event.remove("snad:snadrecipe")
event.remove("snad:red_snad")
// GT
event.remove({ id: "gtceu:mixer/rhodium_plated_palladium" })
// Redstone arsenal
event.remove({ id: "redstone_arsenal:materials/flux_dust" })
event.remove({ id: "redstone_arsenal:materials/flux_ingot_fire_charge_from_dust" })
event.remove({ id: "redstone_arsenal:materials/flux_ingot_fire_charge" })
event.remove({ id: "redstone_arsenal:smelting/flux_ingot_from_dust_blasting" })
event.remove({ id: "redstone_arsenal:smelting/flux_ingot_from_dust_smelting" })
event.remove({ id: "redstone_arsenal:storage/flux_ingot_from_block" })
event.remove({ id: "redstone_arsenal:storage/flux_metal_block" })
// NuclearCraft
event.remove(/nuclearcraft:fusion.*/)
event.remove(/nuclearcraft:.*electromagnet.*/)
event.remove({ output: ["nuclearcraft:tough_alloy_ingot"] });
event.remove({ output: ["nuclearcraft:rock_crusher", "nuclearcraft:decay_hastener", "nuclearcraft:irradiator", "nuclearcraft:nuclear_furnace", "nuclearcraft:extractor", "nuclearcraft:electrolyzer", "nuclearcraft:pressurizer", "nuclearcraft:alloy_smelter", "nuclearcraft:centrifuge", "nuclearcraft:manufactory", "nuclearcraft:gas_scrubber", "nuclearcraft:fluid_enricher", "nuclearcraft:isotope_separator", "nuclearcraft:fluid_infuser", "nuclearcraft:chemical_reactor", "nuclearcraft:analyzer", "nuclearcraft:ingot_former", "nuclearcraft:pump", "nuclearcraft:fuel_reprocessor", "nuclearcraft:leacher", "nuclearcraft:crystallizer", "nuclearcraft:assembler", "nuclearcraft:steam_turbine", "nuclearcraft:melter"] })
event.remove({ output: ["nuclearcraft:nitrogen_collector", "nuclearcraft:compact_nitrogen_collector", "nuclearcraft:lava_collector", "nuclearcraft:dense_nitrogen_collector", "nuclearcraft:compact_helium_collector", "nuclearcraft:helium_collector", "nuclearcraft:dense_helium_collector"] })
event.remove({ output: ["nuclearcraft:magnesium_deepslate_ore", "nuclearcraft:thorium_deepslate_ore", "nuclearcraft:uranium_deepslate_ore", "nuclearcraft:magnesium_ore", "nuclearcraft:boron_deepslate_ore", "nuclearcraft:cobalt_ore", "nuclearcraft:platinum_deepslate_ore", "nuclearcraft:silver_deepslate_ore", "nuclearcraft:lead_ore", "nuclearcraft:lithium_ore", "nuclearcraft:thorium_ore", "nuclearcraft:tin_ore", "nuclearcraft:cobalt_deepslate_ore", "nuclearcraft:silver_ore", "nuclearcraft:uranium_ore", "nuclearcraft:zinc_ore", "nuclearcraft:boron_ore", "nuclearcraft:lithium_deepslate_ore"] })
event.remove({ output: ["nuclearcraft:foursmore", "nuclearcraft:evenmoresmore", "nuclearcraft:moresmore", "nuclearcraft:smore"] })
event.remove({ output: ["nuclearcraft:quantum_flux_regulator", "nuclearcraft:fission_reactor_irradiation_chamber", "nuclearcraft:chamber_port", "nuclearcraft:chamber_terminal", "nuclearcraft:event_horizon_stabilizer", "nuclearcraft:quantum_transformer", "nuclearcraft:black_hole", "nuclearcraft:neutronium_frame", "nuclearcraft:photon_concentrator", "nuclearcraft:redstone_dimmer"] })
event.remove({ id: "minecraft:nuclearcraft_hard_carbon_dust" })
// Water Collector
event.remove({ output: /water_collector/ });
// Remove Thermal gunpowder recipes - they use empty tags a Mixer recipe already exists
event.remove({ id: /^thermal:gunpowder/ })
})

View file

@ -0,0 +1,4 @@
/** Removes recipes that are the same in both normal and hardmode, but shouldn't exist in Expert */
ServerEvents.recipes(event => {
})

View file

@ -0,0 +1,125 @@
/** THIS FILE IS FOR RANDOM RECIPES THAT DOESNT REQUIRE THEIR OWN FILE */
ServerEvents.recipes(event => {
if (!doHNN) {
event.remove({ id: /hostilenetworks/ })
// Mixer for recipes that fit in singleblocks
const xpjuice_small = [
["enderio:pulsating_powder", 6720],
["enderio:vibrant_powder", 8960],
["kubejs:grains_of_innocence", 16000]
]
for (const [input, output] of xpjuice_small) {
event.recipes.gtceu.mixer(`kubejs:xpjuice_${output}`)
.inputFluids(Fluid.of("gtceu:mana", 250))
.itemInputs(input)
.outputFluids(Fluid.of("enderio:xp_juice", output))
.EUt(GTValues.VA[GTValues.HV])
.duration(100)
}
// LCR needed for larger recipes
const xpjuice_large = [
["enderio:ender_crystal_powder", 35840],
["enderio:prescient_powder", 44800]
]
for (const [input, output] of xpjuice_large) {
event.recipes.gtceu.large_chemical_reactor(`kubejs:xpjuice_${output}`)
.inputFluids(Fluid.of("gtceu:mana", 500))
.itemInputs(input)
.outputFluids(Fluid.of("enderio:xp_juice", output))
.EUt(GTValues.VA[GTValues.EV])
.duration(100)
}
}
if (doHarderRecipes) {
event.shaped("thermal:dynamo_numismatic", [
" A ",
"BCB",
"DED"
], {
A: "kubejs:excitationcoil",
B: "gtceu:zeron_100_plate",
C: "ironfurnaces:diamond_furnace",
D: "enderio:vibrant_gear",
E: "kubejs:redstone_transmission_coil"
})
event.remove({ id: "gtceu:large_chemical_reactor/radon_from_uranium_238" })
event.remove({ id: "gtceu:electric_blast_furnace/blast_cryolobus_gas" })
event.remove({ id: "gtceu:circuit_assembler/wetware_board" })
event.remove({ id: "enderio:stick" })
// Mob Heads
event.shaped("minecraft:skeleton_skull", [
" A ",
"ABA",
" A "
], {
A: "minecraft:bone",
B: "kubejs:solidified_experience"
})
event.shaped("minecraft:wither_skeleton_skull", [
" A ",
"ABA",
" A "
], {
A: "kubejs:wither_bone",
B: "kubejs:solidified_experience"
})
event.shaped("minecraft:zombie_head", [
" A ",
"ABA",
" A "
], {
A: "minecraft:rotten_flesh",
B: "minecraft:skeleton_skull"
})
event.shaped("minecraft:creeper_head", [
" A ",
"ABA",
" A "
], {
A: "minecraft:gunpowder",
B: "minecraft:skeleton_skull"
})
event.shaped("minecraft:dragon_head", [
" A ",
"ABA",
" A "
], {
A: "kubejs:ender_dragon_scale",
B: "kubejs:solidified_experience"
})
event.shaped("enderio:enderman_head", [
" A ",
"ABA",
" A "
], {
A: "minecraft:ender_pearl",
B: "minecraft:skeleton_skull"
})
}
if (doMeowniPlush) {
event.recipes.gtceu.omnic_forge("kubejs:meowni_plush")
.itemInputs("64x kubejs:moni_dollar", "64x kubejs:moni_dollar", "64x kubejs:moni_dollar", "16x kubejs:moni_dollar",) // Not exact atm, I don't run linux (so i cant use the awk script) and this value is gonna change regardless.
.itemOutputs("kubejs:meowni_plush")
.duration(2000)
.EUt(65520)
}
if (!doMonicoins) {
event.remove({ id: "bountiful:crafting/bountyboard" })
event.remove({ id: "bountiful:crafting/decree" })
}
})

View file

@ -0,0 +1,757 @@
/**
* Makes recipes harder in.. hard mode
*/
ServerEvents.recipes(event => {
if (doHarderProcessing) {
// Tungsten
event.remove({ id: "gtceu:electrolyzer/tungstic_acid_electrolysis" })
event.recipes.gtceu.extractor("kubejs:tungsten_trioxide_dust")
.itemInputs("7x #forge:dusts/tungstic_acid")
.itemOutputs("4x gtceu:tungsten_trioxide_dust")
.outputFluids(Fluid.of("minecraft:water", 1000))
.duration(160).EUt(16)
event.recipes.gtceu.electric_blast_furnace("kubejs:hot_tungsten_ingot")
.itemInputs("8x #forge:dusts/tungsten_trioxide", "3x #forge:dusts/carbon")
.itemOutputs("2x gtceu:hot_tungsten_ingot")
.outputFluids(Fluid.of("gtceu:carbon_dioxide", 3000))
.blastFurnaceTemp(3600)
.duration(2400).EUt(1920)
event.recipes.gtceu.chemical_reactor("kubejs:tungsten_dust")
.itemInputs("4x #forge:dusts/tungsten_trioxide")
.inputFluids(Fluid.of("gtceu:hydrogen", 6000))
.itemOutputs("gtceu:tungsten_dust")
.outputFluids(Fluid.of("water", 3000))
.duration(210).EUt(960)
// Phthalic Anhydride
event.remove({ id: "gtceu:large_chemical_reactor/phthalic_acid_from_naphthalene" })
event.remove({ id: "gtceu:large_chemical_reactor/phthalic_acid_from_naphthalene_9" })
event.recipes.gtceu.chemical_reactor("kubejs:phthalic_anhydride_dust")
.itemInputs("#forge:tiny_dusts/vanadium_pentoxide")
.inputFluids(Fluid.of("gtceu:naphthalene", 1000), Fluid.of("gtceu:oxygen", 5000))
.itemOutputs("15x gtceu:phthalic_anhydride_dust")
.outputFluids(Fluid.of("gtceu:carbon_dioxide", 1000))
.duration(125).EUt(30)
event.recipes.gtceu.large_chemical_reactor("kubejs:phthalic_anhydride_dust")
.itemInputs("#forge:dusts/vanadium_pentoxide")
.inputFluids(Fluid.of("gtceu:naphthalene", 9000), Fluid.of("gtceu:oxygen", 45000))
.itemOutputs("64x gtceu:phthalic_anhydride_dust", "64x gtceu:phthalic_anhydride_dust", "7x gtceu:phthalic_anhydride_dust")
.outputFluids(Fluid.of("gtceu:carbon_dioxide", 9000))
.duration(1125).EUt(30)
event.recipes.gtceu.chemical_reactor("kubejs:phthalic_acid")
.itemInputs("15x #forge:dusts/phthalic_anhydride")
.inputFluids(Fluid.of("water", 1000))
.outputFluids(Fluid.of("gtceu:phthalic_acid", 1000))
.duration(100).EUt(30)
event.recipes.gtceu.distillery("kubejs:phthalic_acid")
.inputFluids(Fluid.of("gtceu:phthalic_acid", 1000))
.circuit(1)
.itemOutputs("15x gtceu:phthalic_anhydride_dust")
.outputFluids(Fluid.of("water", 1000))
.duration(100).EUt(30)
event.recipes.gtceu.large_chemical_reactor("kubejs:polytetrafluoroethylene")
.inputFluids(Fluid.of("gtceu:tetrafluoroethylene", 2160), Fluid.of("gtceu:oxygen", 7500))
.itemInputs("#forge:dusts/phthalic_anhydride")
.circuit(7)
.outputFluids(Fluid.of("gtceu:polytetrafluoroethylene", 4320))
.duration(800).EUt(30)
event.recipes.gtceu.large_chemical_reactor("kubejs:polyvinyl_chloride")
.inputFluids(Fluid.of("gtceu:vinyl_chloride", 2160), Fluid.of("gtceu:oxygen", 7500))
.itemInputs("#forge:dusts/phthalic_anhydride")
.circuit(7)
.outputFluids(Fluid.of("gtceu:polyvinyl_chloride", 4320))
.duration(800).EUt(30)
event.recipes.gtceu.large_chemical_reactor("kubejs:polyethylene")
.inputFluids(Fluid.of("gtceu:ethylene", 2160), Fluid.of("gtceu:oxygen", 7500))
.itemInputs("#forge:dusts/phthalic_anhydride")
.circuit(7)
.outputFluids(Fluid.of("gtceu:polyethylene", 4320))
.duration(800).EUt(30)
event.recipes.gtceu.large_chemical_reactor("kubejs:polyvinyl_acetate")
.inputFluids(Fluid.of("gtceu:vinyl_acetate", 2160), Fluid.of("gtceu:oxygen", 7500))
.itemInputs("#forge:dusts/phthalic_anhydride")
.circuit(7)
.outputFluids(Fluid.of("gtceu:polyvinyl_acetate", 4320))
.duration(800).EUt(30)
// Kapton K Wetwares
event.remove({ id: "gtceu:circuit_assembler/wetware_board" })
event.recipes.gtceu.circuit_assembler("kubejs:circuit_assembler/wetware_hm")
.itemInputs(
"16x gtceu:kapton_k_plate",
"gtceu:petri_dish",
"gtceu:luv_electric_pump",
"gtceu:iv_sensor",
"#gtceu:circuits/iv",
"16x gtceu:niobium_titanium_foil"
)
.inputFluids(Fluid.of("gtceu:sterilized_growth_medium", 4000))
.itemOutputs("16x gtceu:wetware_circuit_board")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1200)
.EUt(30720)
// Recipe conflict
// Styrene
event.remove({ id: "gtceu:chemical_reactor/styrene_from_ethylbenzene" })
event.recipes.gtceu.chemical_reactor("styrene_from_ethylbenzene_hm")
.inputFluids("gtceu:ethylbenzene 1000")
.circuit(1)
.outputFluids("gtceu:styrene 1000", "gtceu:hydrogen 2000")
.duration(30).EUt(30)
// Hydrazine Rocket Fuel
event.recipes.gtceu.large_chemical_reactor("rocket_fuel_from_hydrazine")
.inputFluids("gtceu:hydrazine 1000", "gtceu:dimethylhydrazine 1000", "gtceu:dinitrogen_tetroxide 2000")
.outputFluids("gtceu:rocket_fuel 18000")
.duration(60).EUt(16)
// Beryllium Oxide
event.recipes.gtceu.chemical_reactor("beryllium_oxide")
.itemInputs("gtceu:beryllium_dust")
.inputFluids("gtceu:oxygen 1000")
.itemOutputs("gtceu:beryllium_oxide_ingot")
.duration(640).EUt(30)
// Graphene
event.remove({ id: "gtceu:mixer/graphene" })
event.recipes.gtceu.assembler("magnetron")
.itemInputs("64x gtceu:beryllium_oxide_ring", "64x gtceu:beryllium_oxide_ring", "6x gtceu:hsla_steel_plate", "gtceu:vacuum_tube")
.itemOutputs("kubejs:magnetron")
.duration(600).EUt(61440)
event.recipes.gtceu.chemical_reactor("graphene_magnetron")
.itemInputs("gtceu:graphite_dust")
.notConsumable("kubejs:magnetron")
.inputFluids("gtceu:nitration_mixture 2000")
.itemOutputs("gtceu:graphene_dust")
.outputFluids("gtceu:diluted_sulfuric_acid 1000", "gtceu:nitric_acid 1000")
.duration(100).EUt(480)
// Hydrogen Peroxide
event.recipes.gtceu.chemical_reactor("ethylanthraquinone")
.itemInputs("15x gtceu:phthalic_anhydride_dust")
.inputFluids("gtceu:ethylbenzene 1000")
.itemOutputs("30x gtceu:ethylanthraquinone_dust")
.outputFluids("minecraft:water 1000")
.duration(1000).EUt(1920)
event.recipes.gtceu.large_chemical_reactor("hydrogen_peroxide")
.inputFluids("gtceu:hydrogen 6000", "gtceu:oxygen 6000")
.notConsumable("gtceu:palladium_dust")
.notConsumable("gtceu:ethylanthraquinone_dust")
.outputFluids("gtceu:hydrogen_peroxide 3000")
.duration(330).EUt(180)
// Hydrazine
event.recipes.gtceu.large_chemical_reactor("acetone_azine")
.inputFluids("gtceu:hydrogen_peroxide 1000", "gtceu:ammonia 2000", "gtceu:acetone 2000")
.circuit(5)
.outputFluids("gtceu:acetone_azine 1000", "minecraft:water 4000")
.duration(40).EUt(480)
event.recipes.gtceu.large_chemical_reactor("hydrazine")
.inputFluids("gtceu:acetone_azine 1000", "minecraft:water 2000", "gtceu:sulfuric_acid 1000")
.circuit(5)
.outputFluids("gtceu:hydrazine 1000", "gtceu:acetone 2000", "gtceu:diluted_sulfuric_acid 1000")
.duration(40).EUt(480)
// Graphene from hydrazine
event.recipes.gtceu.mixer("graphene_oxide")
.itemInputs("5x gtceu:carbon_dust", "gtceu:silicon_dust")
.inputFluids("gtceu:oxygen 1000")
.itemOutputs("gtceu:graphene_oxide_dust")
.duration(100).EUt(480)
event.recipes.gtceu.chemical_reactor("graphene_from_hydrazine")
.itemInputs("gtceu:graphene_oxide_dust")
.inputFluids("gtceu:hydrazine 100", "gtceu:argon 50")
.itemOutputs("gtceu:graphene_dust")
.duration(100).EUt(480)
// Niobium/Tantalum
event.remove({ id: "gtceu:electrolyzer/decomposition_electrolyzing_pyrochlore" })
event.remove({ id: "gtceu:electrolyzer/decomposition_electrolyzing_tantalite" })
event.recipes.gtceu.chemical_bath("bathe_pyrochlore_dust")
.itemInputs("11x gtceu:pyrochlore_dust")
.inputFluids("gtceu:hydrofluoric_acid 4000")
.itemOutputs("7x gtceu:niobium_pentoxide_dust", "gtceu:tantalum_pentoxide_dust", "6x gtceu:fluorite_dust")
.outputFluids("minecraft:water 2000")
.duration(200).EUt(480)
event.recipes.gtceu.chemical_bath("bathe_tantalite_dust")
.itemInputs("9x gtceu:tantalite_dust")
.inputFluids("gtceu:hydrofluoric_acid 2000")
.itemOutputs("7x gtceu:tantalum_pentoxide_dust", "gtceu:niobium_pentoxide_dust", "3x gtceu:manganese_difluoride_dust")
.outputFluids("minecraft:water 1000")
.duration(200).EUt(480)
// Molybdenum
event.remove([{ type: "minecraft:smelting", output: "gtceu:molybdenum_ingot" }, { type: "minecraft:blasting", output: "gtceu:molybdenum_ingot" }])
event.smelting("gtceu:molybdenum_ingot", "gtceu:molybdenum_dust")
event.remove({ id: "gtceu:electrolyzer/decomposition_electrolyzing_molybdenite" })
event.remove({ id: "gtceu:electrolyzer/decomposition_electrolyzing_powellite" })
event.remove({ id: "gtceu:electrolyzer/decomposition_electrolyzing_wulfenite" })
event.recipes.gtceu.chemical_bath("bathe_powellite_dust")
.itemInputs("6x gtceu:powellite_dust")
.inputFluids("gtceu:hydrochloric_acid 2000")
.itemOutputs("4x gtceu:molybdenum_trioxide_dust", "3x gtceu:calcium_chloride_dust")
.outputFluids("minecraft:water 1000")
.duration(200).EUt(480)
event.recipes.gtceu.chemical_bath("bathe_wulfenite_dust")
.itemInputs("6x gtceu:wulfenite_dust")
.inputFluids("gtceu:hydrochloric_acid 2000")
.itemOutputs("4x gtceu:molybdenum_trioxide_dust", "3x gtceu:lead_chloride_dust")
.outputFluids("minecraft:water 1000")
.duration(200).EUt(480)
event.recipes.gtceu.arc_furnace("arc_molybdenite_dust")
.itemInputs("3x gtceu:molybdenite_dust")
.inputFluids("gtceu:oxygen 7000")
.itemOutputs("4x gtceu:molybdenum_trioxide_dust")
.outputFluids("gtceu:sulfur_dioxide 2000")
.duration(800).EUt(30)
event.recipes.gtceu.chemical_reactor("molybdenum_trioxide_to_molybdenum")
.itemInputs("4x gtceu:molybdenum_trioxide_dust")
.inputFluids("gtceu:hydrogen 6000")
.itemOutputs("gtceu:molybdenum_dust")
.outputFluids("minecraft:water 3000")
.duration(200).EUt(480)
// Pyromorphite to phosphate
event.recipes.gtceu.electrolyzer("electrolyzing_pyromorphite")
.itemInputs("9x gtceu:pyromorphite_dust")
.itemOutputs("5x gtceu:lead_dust", "3x gtceu:phosphate_dust")
.outputFluids("gtceu:chlorine 1000")
.duration(288).EUt(60)
// Vanadium
event.recipes.gtceu.chemical_reactor("ammonium_chloride")
.inputFluids("gtceu:ammonia 1000", "gtceu:hydrochloric_acid 1000")
.circuit(5)
.itemOutputs("2x gtceu:ammonium_chloride_dust")
.duration(120).EUt(7)
event.recipes.gtceu.chemical_reactor("vanadium_pentoxide")
.itemInputs("2x gtceu:vanadium_dust")
.inputFluids("gtceu:oxygen 5000")
.itemOutputs("7x gtceu:vanadium_pentoxide_dust")
.duration(600).EUt(7)
// H2SO4 require V2O5
event.remove({ id: "gtceu:chemical_reactor/sulfur_trioxide" })
event.remove({ id: "gtceu:large_chemical_reactor/sulfur_trioxide" })
event.recipes.gtceu.chemical_reactor("sulfur_trioxide_hm")
.inputFluids("gtceu:sulfur_dioxide 1000", "gtceu:oxygen 1000")
.notConsumable("gtceu:vanadium_pentoxide_dust")
.outputFluids("gtceu:sulfur_trioxide 1000")
.duration(200).EUt(7)
event.remove({ id: "gtceu:large_chemical_reactor/sulfuric_acid_from_sulfur" })
event.recipes.gtceu.large_chemical_reactor("sulfuric_acid_from_sulfur_hm")
.itemInputs("gtceu:sulfur_dust")
.notConsumable("gtceu:vanadium_pentoxide_dust")
.inputFluids("minecraft:water 4000")
.circuit(24)
.outputFluids("gtceu:sulfuric_acid 1000")
.duration(320).EUt(480)
// Fluoroantimonic Acid
event.remove({ id: "gtceu:chemical_reactor/fluoroantimonic_acid" })
event.remove({ id: "gtceu:large_chemical_reactor/fluoroantimonic_acid" })
event.recipes.gtceu.chemical_reactor("antimony_pentafluoride")
.itemInputs("4x gtceu:antimony_trifluoride_dust")
.inputFluids("gtceu:fluorine 2000")
.notConsumable("kubejs:aerotheum_dust")
.outputFluids("gtceu:antimony_pentafluoride 1000")
.duration(150).EUt(480)
event.recipes.gtceu.chemical_reactor("fluoroantimonic_acid_hm")
.inputFluids("gtceu:antimony_pentafluoride 1000", "gtceu:hydrofluoric_acid 2000")
.notConsumable("kubejs:petrotheum_dust")
.outputFluids("gtceu:fluoroantimonic_acid 1000")
.duration(150).EUt(480)
// Neocryolite
event.recipes.gtceu.chemical_reactor("naquadah_hydroxide")
.itemInputs("gtceu:naquadah_dust", "9x gtceu:sodium_hydroxide_dust")
.itemOutputs("7x gtceu:naquadah_hydroxide_dust", "3x gtceu:sodium_dust")
.duration(480).EUt(480)
event.recipes.gtceu.chemical_reactor("caesium_hydroxide")
.itemInputs("gtceu:caesium_dust")
.inputFluids("minecraft:water 3000")
.itemOutputs("3x gtceu:caesium_hydroxide_dust")
.outputFluids("gtceu:hydrogen 3000")
.duration(5).EUt(7)
event.recipes.gtceu.large_chemical_reactor("neocryolite")
.itemInputs("4x gtceu:caesium_hydroxide_dust", "3x gtceu:naquadah_hydroxide_dust")
.notConsumable("gtceu:signalum_dust")
.inputFluids("gtceu:hydrofluoric_acid 6000")
.outputFluids("gtceu:neocryolite 1000", "minecraft:water 6000")
.duration(250).EUt(7680)
// Naquadah
event.recipes.gtceu.large_chemical_reactor("naquadah_oxide_petro_solution")
.itemInputs("4x gtceu:snowchestite_dust")
.inputFluids("kubejs:molten_petrotheum 3000")
.itemOutputs("gtceu:pyromorphite_dust")
.outputFluids("gtceu:naquadah_oxide_petro_solution 3000")
.duration(100).EUt(3840)
event.recipes.gtceu.chemical_reactor("naquadah_oxide_aero_solution")
.itemInputs("4x kubejs:aerotheum_dust")
.inputFluids("gtceu:naquadah_oxide_petro_solution 1000")
.itemOutputs("4x kubejs:petrotheum_dust")
.outputFluids("gtceu:naquadah_oxide_aero_solution 1000")
.duration(300).EUt(240)
event.recipes.gtceu.distillery("distill_naquadah_oxide_aero_solution_to_naquadah_oxide")
.inputFluids("gtceu:naquadah_oxide_aero_solution 1000")
.circuit(1)
.itemOutputs("5x gtceu:naquadah_oxide_dust")
.outputFluids("kubejs:molten_aerotheum 1000")
.duration(300).EUt(240)
event.recipes.gtceu.electric_blast_furnace("hot_naquadah_oxide_neocryolite_solution")
.itemInputs("5x gtceu:naquadah_oxide_dust")
.inputFluids("gtceu:neocryolite 4000")
.outputFluids("gtceu:hot_naquadah_oxide_neocryolite_solution 4000")
.duration(400).EUt(1920)
.blastFurnaceTemp(4700)
event.recipes.gtceu.electrolyzer("electrolyze_hot_naquadah_oxide_neocryolite_solution")
.inputFluids("gtceu:hot_naquadah_oxide_neocryolite_solution 4000")
.notConsumable("2x gtceu:ruthenium_rod")
.itemOutputs("2x gtceu:naquadah_dust")
.outputFluids("gtceu:neocryolite 3750", "gtceu:oxygen 3000")
.duration(250).EUt(7680)
event.recipes.gtceu.chemical_bath("bathe_molten_aerotheum_to_aerotheum_dust")
.inputFluids("kubejs:molten_aerotheum 250")
.notConsumable("nuclearcraft:supercold_ice_block")
.itemOutputs("kubejs:aerotheum_dust")
.duration(100).EUt(7)
// Supercold ice replacement recipe
event.recipes.gtceu.vacuum_freezer("cryotheum_to_supercold_ice")
.itemInputs("minecraft:ice")
.inputFluids("kubejs:molten_cryotheum 1000")
.itemOutputs("nuclearcraft:supercold_ice_block")
.duration(600).EUt(1200)
// Platinum Group
event.remove({ id: "gtceu:centrifuge/pgs_separation" })
event.remove({ id: "gtceu:electrolyzer/raw_platinum_separation" })
event.remove({ id: "gtceu:chemical_reactor/raw_palladium_separation" })
event.remove({ id: "gtceu:large_chemical_reactor/raw_palladium_separation" })
event.remove({ id: "gtceu:chemical_reactor/inert_metal_mixture_separation" })
event.remove({ id: "gtceu:large_chemical_reactor/inert_metal_mixture_separation" })
event.remove({ id: "gtceu:chemical_reactor/ruthenium_tetroxide_separation" })
event.remove({ id: "gtceu:large_chemical_reactor/ruthenium_tetroxide_separation" })
event.remove({ id: "gtceu:electrolyzer/rhodium_sulfate_separation" })
event.remove({ id: "gtceu:large_chemical_reactor/rarest_metal_mixture_separation" })
event.remove({ id: "gtceu:centrifuge/iridium_metal_residue_separation" })
event.remove({ id: "gtceu:chemical_reactor/iridium_chloride_separation" })
event.remove({ id: "gtceu:large_chemical_reactor/iridium_chloride_separation" })
event.remove({ id: "gtceu:distillation_tower/acidic_osmium_solution_separation" })
event.remove({ id: "gtceu:distillery/acidic_osmium_solution_separation_to_hydrochloric_acid" })
event.remove({ id: "gtceu:distillery/acidic_osmium_solution_separation_to_water" })
event.remove({ id: "gtceu:chemical_reactor/osmium_tetroxide_separation" })
event.remove({ id: "gtceu:large_chemical_reactor/osmium_tetroxide_separation" })
event.remove({ id: "gtceu:centrifuge/decomposition_centrifuging__platinum_sludge_residue" })
// Formic Acid
event.recipes.gtceu.chemical_reactor("sodium_methoxide")
.itemInputs("gtceu:sodium_dust")
.inputFluids("gtceu:methanol 1000")
.itemOutputs("6x gtceu:sodium_methoxide_dust")
.outputFluids("gtceu:hydrogen 1000")
.duration(10).EUt(30)
event.recipes.gtceu.chemical_reactor("methyl_formate")
.itemInputs("gtceu:tiny_sodium_methoxide_dust")
.inputFluids("gtceu:methanol 1000", "gtceu:carbon_monoxide 1000")
.outputFluids("gtceu:methyl_formate 1000")
.duration(16).EUt(30)
event.recipes.gtceu.chemical_reactor("formic_acid")
.inputFluids("gtceu:methyl_formate 1000", "minecraft:water 1000")
.outputFluids("gtceu:formic_acid 1000", "gtceu:methanol 1000")
.duration(16).EUt(30)
// Potassium Pyrosulfate
event.recipes.gtceu.chemical_bath("rock_salt_to_potassium_bisulfate")
.itemInputs("2x gtceu:rock_salt_dust")
.inputFluids("gtceu:sulfuric_acid 1000")
.itemOutputs("7x gtceu:potassium_bisulfate_dust")
.outputFluids("gtceu:hydrochloric_acid 1000")
.duration(60).EUt(30)
event.recipes.gtceu.chemical_bath("saltpeter_to_potassium_bisulfate")
.itemInputs("5x gtceu:saltpeter_dust")
.inputFluids("gtceu:sulfuric_acid 1000")
.itemOutputs("7x gtceu:potassium_bisulfate_dust")
.outputFluids("gtceu:nitric_acid 1000")
.duration(60).EUt(30)
event.recipes.gtceu.chemical_reactor("potassium_bisulfate_to_potassium_pyrosulfate")
.itemInputs("14x gtceu:potassium_bisulfate_dust")
.itemOutputs("11x gtceu:potassium_pyrosulfate_dust")
.outputFluids("minecraft:water 1000")
.duration(30).EUt(64)
event.recipes.gtceu.chemical_reactor("potassium_sulfate_to_potassium_pyrosulfate")
.itemInputs("7x gtceu:potassium_sulfate_dust")
.inputFluids("gtceu:sulfur_trioxide 1000")
.itemOutputs("11x gtceu:potassium_pyrosulfate_dust")
.duration(30).EUt(64)
// Sodium Peroxide
event.recipes.gtceu.chemical_reactor("sodium_peroxide")
.itemInputs("6x gtceu:sodium_hydroxide_dust")
.inputFluids("gtceu:hydrogen_peroxide 7000")
.itemOutputs("4x gtceu:sodium_peroxide_dust")
.outputFluids("minecraft:water 8000", "gtceu:oxygen 6000")
.duration(100).EUt(30)
// Sodium Nitrate
event.recipes.gtceu.chemical_reactor("sodium_nitrate")
.itemInputs("3x gtceu:sodium_hydroxide_dust")
.inputFluids("gtceu:nitric_acid 1000")
.itemOutputs("5x gtceu:sodium_nitrate_dust")
.outputFluids("minecraft:water 1000")
.duration(5).EUt(60)
event.recipes.gtceu.chemical_reactor("sodium_nitrate_alternate")
.itemInputs("gtceu:sodium_dust")
.inputFluids("gtceu:nitric_acid 1000")
.itemOutputs("5x gtceu:sodium_nitrate_dust")
.outputFluids("gtceu:hydrogen 1000")
.duration(5).EUt(60)
// Platinum Group Sludge
event.recipes.gtceu.chemical_bath("bathe_platinum_group_sludge_dust")
.itemInputs("2x gtceu:platinum_group_sludge_dust")
.inputFluids("gtceu:aqua_regia 2000")
.itemOutputs("gtceu:platinum_group_residue_dust", "gtceu:platinum_sludge_residue_dust")
.outputFluids("gtceu:platinum_palladium_leachate 1000")
.duration(250).EUt(30)
event.recipes.gtceu.chemical_bath("bathe_platinum_metallic_dust")
.itemInputs("2x gtceu:platinum_metallic_dust")
.inputFluids("gtceu:aqua_regia 2000")
.itemOutputs("gtceu:platinum_group_residue_dust")
.outputFluids("gtceu:platinum_palladium_leachate 1000")
.duration(250).EUt(30)
// Platinum Sludge Residue
event.recipes.gtceu.centrifuge("centrifuge_platinum_sludge_residue_dust")
.itemInputs("5x gtceu:platinum_sludge_residue_dust")
.itemOutputs("2x gtceu:silicon_dioxide_dust", "2x gtceu:copper_dust")
.chancedOutput("gtceu:gold_dust", 1000, 1000)
.duration(938).EUt(30)
// Platinum
event.recipes.gtceu.chemical_reactor("platinum_palladium_leachate_separation")
.itemInputs("8x gtceu:ammonium_chloride_dust")
.inputFluids("gtceu:platinum_palladium_leachate 1000")
.itemOutputs("9x gtceu:ammonium_hexachloroplatinate_dust", "gtceu:crude_platinum_residue_dust")
.outputFluids("gtceu:palladium_rich_ammonia 1000")
.duration(1200).EUt(30)
event.recipes.gtceu.electrolyzer("electrolyze_ammonium_hexachloroplatinate")
.itemInputs("9x gtceu:ammonium_hexachloroplatinate_dust")
.outputFluids("gtceu:ammonia 2000", "gtceu:chloroplatinic_acid 1000")
.duration(30).EUt(30)
event.recipes.gtceu.distillery("distill_chloroplatinic_acid")
.inputFluids("gtceu:chloroplatinic_acid 1000")
.circuit(1)
.itemOutputs("3x gtceu:platinum_raw_dust")
.outputFluids("gtceu:hydrochloric_acid 4000")
.duration(120).EUt(30)
let steam = new JSONObject()
steam.add("amount", 3840)
steam.add("value", { tag: "forge:steam" })
event.recipes.gtceu.autoclave("platinum_raw_dust_to_platinum")
.itemInputs("3x gtceu:platinum_raw_dust", "gtceu:calcium_dust")
.inputFluids(FluidIngredientJS.of(steam))
.itemOutputs("gtceu:platinum_dust", "3x gtceu:calcium_chloride_dust")
.outputFluids("minecraft:water 24")
.duration(30).EUt(30)
event.recipes.gtceu.sifter("sift_crude_platinum_residue_dust")
.itemInputs("gtceu:crude_platinum_residue_dust")
.chancedOutput("gtceu:platinum_metallic_dust", 9500, 0)
.duration(600).EUt(30)
// Palladium
event.recipes.gtceu.mixer("palladium_rich_ammonia")
.itemInputs("2x gtceu:palladium_metallic_dust")
.inputFluids("gtceu:ammonia 2000", "gtceu:chlorine 2000")
.outputFluids("gtceu:palladium_rich_ammonia 1000")
.duration(250).EUt(30)
event.recipes.gtceu.fluid_solidifier("solidify_palladium_rich_ammonia")
.inputFluids("gtceu:palladium_rich_ammonia 500")
.notConsumable("gtceu:ball_casting_mold")
.itemOutputs("gtceu:crude_palladium_residue_dust")
.duration(125).EUt(30)
event.recipes.gtceu.chemical_reactor("palladium_metallic_dust_to_palladium_raw_dust")
.itemInputs("2x gtceu:palladium_metallic_dust")
.inputFluids("gtceu:palladium_rich_ammonia 1000")
.itemOutputs("3x gtceu:crude_palladium_residue_dust", "gtceu:palladium_raw_dust")
.outputFluids("gtceu:ammonia 2000")
.duration(250).EUt(30)
event.recipes.gtceu.chemical_reactor("raw_palladium_dust_to_palladium_dust")
.itemInputs("3x gtceu:palladium_raw_dust")
.inputFluids("gtceu:formic_acid 1000")
.itemOutputs("gtceu:palladium_dust")
.outputFluids("gtceu:hydrochloric_acid 4000", "gtceu:carbon_dioxide 1000")
.duration(250).EUt(30)
event.recipes.gtceu.sifter("sift_crude_palladium_residue_dust")
.itemInputs("gtceu:crude_palladium_residue_dust")
.chancedOutput("gtceu:palladium_metallic_dust", 9500, 0)
.duration(600).EUt(30)
// Rhodium
event.recipes.gtceu.electric_blast_furnace("platinum_group_residue_to_iridium_group_sludge")
.itemInputs("gtceu:platinum_group_residue_dust", "11x gtceu:potassium_pyrosulfate_dust")
.itemOutputs("gtceu:rhodium_sulfate_dust", "7x gtceu:potassium_sulfate_dust", "gtceu:iridium_group_sludge_dust")
.duration(200).EUt(120)
.blastFurnaceTemp(1048)
event.recipes.gtceu.chemical_bath("bathe_rhodium_sulfate")
.itemInputs("6x gtceu:rhodium_sulfate_dust")
.inputFluids("minecraft:water 2000")
.itemOutputs("gtceu:iridium_group_sludge_dust")
.outputFluids("gtceu:rhodium_sulfate_solution 2000")
.duration(300).EUt(30)
event.recipes.gtceu.chemical_reactor("rhodium_sulfate_solution_to_crude_rhodium_residue_dust")
.itemInputs("3x gtceu:zinc_dust")
.inputFluids("gtceu:rhodium_sulfate_solution 1000")
.itemOutputs("18x gtceu:zinc_sulfate_dust", "gtceu:crude_rhodium_residue_dust")
.duration(300).EUt(30)
event.recipes.gtceu.electric_blast_furnace("crude_rhodium_residue_to_rhodium_salt")
.itemInputs("gtceu:crude_rhodium_residue_dust", "4x gtceu:salt_dust")
.inputFluids("gtceu:chlorine 6000")
.itemOutputs("gtceu:rhodium_salt_dust")
.outputFluids("gtceu:steam 9600")
.duration(300).EUt(120)
.blastFurnaceTemp(848)
event.recipes.gtceu.chemical_reactor("rhodium_salt_to_rhodium_nitrate")
.itemInputs("30x gtceu:sodium_nitrate_dust", "gtceu:rhodium_salt_dust")
.notConsumableFluid("minecraft:water 8000")
.itemOutputs("26x gtceu:rhodium_nitrate_dust", "16x gtceu:salt_dust")
.duration(300).EUt(30)
event.recipes.gtceu.chemical_reactor("rhodium_nitrate_to_rhodium")
.itemInputs("13x gtceu:rhodium_nitrate_dust", "3x gtceu:potassium_dust")
.itemOutputs("gtceu:rhodium_dust", "15x gtceu:saltpeter_dust")
.duration(300).EUt(30)
// Ruthenium
event.recipes.gtceu.electric_blast_furnace("iridium_group_sludge_to_sodium_ruthenate")
.itemInputs("gtceu:iridium_group_sludge_dust", "2x gtceu:soda_ash_dust")
.itemOutputs("2x gtceu:sodium_ruthenate_dust", "gtceu:ash_dust", "gtceu:rarest_metal_mixture_dust")
.duration(200).EUt(120)
.blastFurnaceTemp(1023)
event.recipes.gtceu.chemical_reactor("sodium_ruthenate_to_ruthenium_tetroxide")
.itemInputs("6x gtceu:sodium_ruthenate_dust")
.inputFluids("gtceu:chlorine 2000", "minecraft:water 2000")
.itemOutputs("5x gtceu:ruthenium_tetroxide_dust")
.outputFluids("gtceu:salt_water 2000")
.duration(1575).EUt(480)
event.recipes.gtceu.chemical_reactor("ruthenium_tetroxide_to_ruthenium")
.itemInputs("5x gtceu:ruthenium_tetroxide_dust")
.inputFluids("gtceu:hydrogen 8000")
.itemOutputs("gtceu:ruthenium_dust")
.outputFluids("minecraft:water 4000")
.duration(300).EUt(30)
// Osmium
event.recipes.gtceu.chemical_bath("bathe_rarest_metal_mixture")
.itemInputs("gtceu:rarest_metal_mixture_dust")
.inputFluids("gtceu:hydrochloric_acid 1000")
.itemOutputs("gtceu:iridium_metal_residue_dust")
.outputFluids("gtceu:acidic_osmium_solution 1000")
.duration(100).EUt(30)
event.recipes.gtceu.distillation_tower("distill_acidic_osmium_solution")
.inputFluids("gtceu:acidic_osmium_solution 2000")
.itemOutputs("gtceu:osmium_tetroxide_dust")
.outputFluids("gtceu:hydrochloric_acid 2000")
.duration(150).EUt(7680)
event.recipes.gtceu.chemical_reactor("osmium_tetroxide_to_osmium")
.itemInputs("5x gtceu:osmium_tetroxide_dust")
.inputFluids("gtceu:hydrogen 8000")
.itemOutputs("gtceu:osmium_dust")
.outputFluids("minecraft:water 4000")
.duration(300).EUt(30)
// Iridium
event.recipes.gtceu.electric_blast_furnace("iridium_metal_residue_to_iridium_dioxide_residue")
.itemInputs("4x gtceu:sodium_peroxide_dust", "gtceu:iridium_metal_residue_dust")
.itemOutputs("3x gtceu:iridium_dioxide_residue_dust", "2x gtceu:sodium_dust")
.duration(200).EUt(120)
.blastFurnaceTemp(1048)
event.recipes.gtceu.mixer("acidic_iridium_dioxide_solution")
.itemInputs("3x gtceu:iridium_dioxide_residue_dust")
.inputFluids("gtceu:hydrochloric_acid 4000")
.outputFluids("gtceu:acidic_iridium_dioxide_solution 4000")
.duration(300).EUt(30)
event.recipes.gtceu.chemical_reactor("ammonium_hexachloroiridiate")
.itemInputs("gtceu:ammonium_chloride_dust")
.inputFluids("gtceu:acidic_iridium_dioxide_solution 4000")
.itemOutputs("2x gtceu:ammonium_hexachloroiridiate_dust", "gtceu:small_platinum_group_residue_dust")
.outputFluids("minecraft:water 2000")
.duration(300).EUt(30)
event.recipes.gtceu.chemical_reactor("ammonium_hexachloroiridiate_to_small_iridium")
.itemInputs("2x gtceu:ammonium_hexachloroiridiate_dust")
.inputFluids("gtceu:hydrogen 3000")
.circuit(1)
.itemOutputs("gtceu:small_iridium_dust")
.outputFluids("gtceu:hydrochloric_acid 4500", "gtceu:ammonia 500")
.duration(37.5).EUt(7680)
event.recipes.gtceu.large_chemical_reactor("ammonium_hexachloroiridiate_to_iridium")
.itemInputs("8x gtceu:ammonium_hexachloroiridiate_dust")
.inputFluids("gtceu:hydrogen 12000")
.circuit(2)
.itemOutputs("gtceu:iridium_dust")
.outputFluids("gtceu:hydrochloric_acid 18000", "gtceu:ammonia 2000")
.duration(150).EUt(7680)
// Tributyl Phosphate
event.recipes.gtceu.chemical_reactor("phosphorus_trichloride")
.itemInputs("gtceu:phosphorus_dust")
.inputFluids("gtceu:chlorine 3000")
.outputFluids("gtceu:phosphorus_trichloride 1000")
.duration(300).EUt(480)
event.recipes.gtceu.large_chemical_reactor("phosphoryl_chloride")
.itemInputs("7x gtceu:phosphorus_pentoxide_dust")
.inputFluids("gtceu:phosphorus_trichloride 3000", "gtceu:chlorine 6000")
.outputFluids("gtceu:phosphoryl_chloride 5000")
.duration(800).EUt(3840)
event.recipes.gtceu.chemical_reactor("butanol")
.inputFluids("gtceu:butyraldehyde 1000", "gtceu:hydrogen 2000")
.notConsumable("gtceu:nickel_dust")
.outputFluids("gtceu:butanol 1000")
.duration(300).EUt(480)
event.recipes.gtceu.large_chemical_reactor("tributyl_phosphate")
.inputFluids("gtceu:phosphoryl_chloride 1000", "gtceu:butanol 3000")
.outputFluids("gtceu:tributyl_phosphate 1000")
.duration(600).EUt(23040)
// Rare Earth
event.recipes.gtceu.electrolyzer("electrolyzing_rare_earth_with_tributyl_phosphate")
.itemInputs("gtceu:rare_earth_dust")
.inputFluids("gtceu:tributyl_phosphate 150")
.chancedOutput("gtceu:neodymium_dust", 1500, 0)
.chancedOutput("gtceu:samarium_dust", 1500, 0)
.chancedOutput("gtceu:yttrium_dust", 1500, 0)
.chancedOutput("gtceu:lanthanum_dust", 1500, 0)
.chancedOutput("gtceu:lutetium_dust", 600, 0)
.chancedOutput("gtceu:europium_dust", 600, 0)
.duration(50).EUt(GTValues.VA[GTValues.UV])
// Quantum Flux Recipe
event.recipes.gtceu.mixer("quantum_flux_hm")
.itemInputs("redstone_arsenal:flux_gem")
.inputFluids(Fluid.of("gtceu:mana", 250))
.itemOutputs("8x kubejs:quantum_flux")
.duration(100)
.EUt(480)
// Rocketry
event.recipes.gtceu.chemical_reactor("kubejs:chemical_reactor/durene_hm")
.inputFluids(Fluid.of("gtceu:dimethylbenzene", 1000), Fluid.of("gtceu:chloromethane", 1000))
.itemOutputs("24x gtceu:durene_dust")
.outputFluids(Fluid.of("gtceu:hydrochloric_acid", 1000))
.EUt(120)
.duration(120)
event.recipes.gtceu.chemical_reactor("dimethylformamide")
.inputFluids("gtceu:carbon_monoxide 1000", "gtceu:dimethylamine 1000")
.outputFluids("gtceu:dimethylformamide 1000")
.duration(200).EUt(480);
event.recipes.gtceu.chemical_reactor("pyrometillic_dianhydride")
.inputFluids("gtceu:durene 250", "gtceu:oxygen 1500")
.outputFluids("gtceu:pyromellitic_dianhydride 250", "minecraft:water 1500")
.duration(400).EUt(480);
event.recipes.gtceu.chemical_reactor("manganese_acetate")
.itemInputs("gtceu:manganese_dust")
.inputFluids("gtceu:acetic_acid 1000")
.outputFluids("gtceu:manganese_acetate 1000")
.duration(60).EUt(480);
event.recipes.gtceu.chemical_reactor("chloronitrobenzene")
.inputFluids("gtceu:chlorobenzene 1000", "gtceu:nitric_acid 1000")
.outputFluids("gtceu:nitrochlorobenzene 1000", "minecraft:water 1000")
.duration(400).EUt(480);
event.recipes.gtceu.chemical_reactor("oxydianiline_sludge")
.inputFluids("gtceu:aminophenol 1000", "gtceu:nitrochlorobenzene 1000", "gtceu:dimethylformamide 1000")
.itemInputs("1x gtceu:potassium_carbonate_dust")
.outputFluids("gtceu:oxydianiline_sludge 250", "minecraft:water 1500")
.duration(400).EUt(480);
event.recipes.gtceu.distillation_tower("distill_oxydianiline_sludge")
.inputFluids("gtceu:oxydianiline_sludge 1000")
.outputFluids("gtceu:dimethylformamide 1000", "gtceu:oxydianiline 144")
.duration(200).EUt(480);
event.recipes.gtceu.chemical_reactor("pyromellitic_dianhydride")
.inputFluids("gtceu:durene 250", "gtceu:oxygen 1500")
.outputFluids("gtceu:pyromellitic_dianhydride 250", "minecraft:water 1500")
.duration(400).EUt(480);
event.recipes.gtceu.chemical_reactor("kapton_k")
.inputFluids("gtceu:pyromellitic_dianhydride 1000", "gtceu:oxydianiline 1000")
.outputFluids("gtceu:kapton_k 1000")
.duration(400).EUt(480);
}
});

View file

@ -0,0 +1,112 @@
/**
* Stoneline.
* A hardmode-exclusive processing line to generate Taranium and a wealth of byproducts from Stone Dust.
* Replaces regular GregTech Stone Dust centrifuging.
*/
ServerEvents.recipes(event => {
if(doStoneline) {
// Dioxygen Difluoride
event.recipes.gtceu.large_chemical_reactor("dioxygen_difluoride")
.inputFluids("gtceu:oxygen 2000", "gtceu:fluorine 2000")
.notConsumable("gtceu:void_empowered_gem")
.outputFluids("gtceu:dioxygen_difluoride 1000")
.duration(100).EUt(GTValues.VA[GTValues.HV])
// Helium Hydride
event.recipes.gtceu.chemical_reactor("tritium_hydride")
.inputFluids("gtceu:hydrogen 1000", "gtceu:tritium 1000")
.outputFluids("gtceu:tritium_hydride 1000")
.duration(160).EUt(GTValues.VA[GTValues.EV])
event.recipes.gtceu.distillation_tower("helium_hydride")
.inputFluids("gtceu:tritium_hydride 10000")
.outputFluids("gtceu:tritium_hydride 9900", "gtceu:helium_hydride 100")
.duration(800).EUt(192)
// Stone Dust Processing
event.remove({ id: "gtceu:centrifuge/stone_dust_separation" })
event.recipes.gtceu.chemical_bath("stone_dust_to_dirty_hexafluorosilicic_acid")
.itemInputs("24x gtceu:stone_dust")
.inputFluids("gtceu:hydrofluoric_acid 5000")
.itemOutputs("6x gtceu:quartzite_dust", "6x gtceu:potassium_feldspar_dust", "5x gtceu:mirabilite_dust", "3x gtceu:redrock_dust")
.outputFluids("gtceu:dirty_hexafluorosilicic_acid 6000")
.duration(40).EUt(GTValues.VA[GTValues.MV])
// 8:3 stone dust per stone residue dust
event.recipes.gtceu.centrifuge("dirty_hexafluorosilic_acid_to_stone_residue")
.inputFluids("gtceu:dirty_hexafluorosilicic_acid 6000")
.itemOutputs("9x gtceu:stone_residue_dust")
.outputFluids("gtceu:hexafluorosilicic_acid 1000")
.duration(100).EUt(GTValues.VA[GTValues.HV])
// 24:1 stone residue dust per uncommon residue dust
event.recipes.gtceu.centrifuge("centrifuging_stone_residue")
.itemInputs("27x gtceu:stone_residue_dust", "3x gtceu:sodium_hydroxide_dust")
.inputFluids("minecraft:water 8000")
.itemOutputs("16x gtceu:marble_dust", "8x gtceu:biotite_dust", "6x gtceu:metal_mixture_dust", "4x gtceu:sodalite_dust", "3x gtceu:uncommon_residue_dust")
.duration(400).EUt(GTValues.VA[GTValues.HV])
// 24:1 stone dust per oxidised residue dust
event.recipes.gtceu.large_chemical_reactor("uncommon_residue_to_oxidised_residue")
.itemInputs("gtceu:uncommon_residue_dust")
.inputFluids("gtceu:dioxygen_difluoride 1000")
.itemOutputs("gtceu:oxidised_residue_dust", "2x gtceu:ash_dust")
.duration(80).EUt(GTValues.VA[GTValues.MV])
// 240:1 stone dust per refined residue dust
event.recipes.gtceu.centrifuge("centrifuging_oxidised_residue")
.itemInputs("10x gtceu:oxidised_residue_dust")
.inputFluids("gtceu:distilled_water 10000")
.itemOutputs("6x gtceu:garnet_sand_dust", "6x gtceu:basaltic_mineral_sand_dust", "5x gtceu:granitic_mineral_sand_dust", "4x gtceu:clay_dust", "gtceu:refined_residue_dust")
.outputFluids("gtceu:sulfuric_copper_solution 1000", "gtceu:sulfuric_nickel_solution 500", "gtceu:lead_zinc_solution 250")
.duration(500).EUt(720)
// 2400:1 stone dust per clean inert residue dust
event.recipes.gtceu.centrifuge("centrifuging_refined_residue")
.itemInputs("10x gtceu:refined_residue_dust")
.notConsumable("kubejs:bathyal_energy_core")
.notConsumableFluid("gtceu:fluoroantimonic_acid 1000")
.itemOutputs("10x gtceu:pitchblende_dust", "6x gtceu:borax_dust", "5x gtceu:rare_earth_dust", "4x gtceu:snowchestite_dust", "3x gtceu:diamond_dust", "gtceu:clean_inert_residue_dust")
.duration(2000).EUt(GTValues.VA[GTValues.LuV])
event.recipes.gtceu.mixer("ultraacidic_residue")
.itemInputs("gtceu:clean_inert_residue_dust")
.inputFluids("gtceu:helium_hydride 1000")
.outputFluids("gtceu:ultraacidic_residue 1000")
.duration(160).EUt(GTValues.VA[GTValues.EV])
// 2400:1 stone dust per bucket of dusty helium
event.recipes.gtceu.large_chemical_reactor("ultraacidic_residue_to_dusty_helium")
.inputFluids("gtceu:xenon 1000", "gtceu:oxygen 4000", "gtceu:ultraacidic_residue 2000")
.notConsumable("kubejs:abyssal_energy_core")
.itemOutputs("2x gtceu:europium_dust", "gtceu:kaemanite_dust", "gtceu:small_osmiridiumyes_dust")
.outputFluids("gtceu:xenic_acid 1000", "gtceu:dusty_helium 2000")
.duration(1000).EUt(GTValues.VA[GTValues.EV])
// Taranium
event.recipes.gtceu.centrifuge("centrifuging_dusty_helium")
.inputFluids("gtceu:dusty_helium 1000")
.outputFluids("gtceu:taranium_enriched_helium 150", "gtceu:taranium_depleted_helium 850")
.duration(400).EUt(2880)
event.recipes.gtceu.fusion_reactor("taranium_enriched_helium_and_helium_3_to_taranium_enriched_helium_plasma")
.inputFluids("gtceu:taranium_enriched_helium 1000", "gtceu:helium_3 1000")
.outputFluids("gtceu:taranium_enriched_helium_plasma 3000")
.duration(160).EUt(GTValues.VHA[GTValues.IV])
.fusionStartEU(480000000)
event.recipes.gtceu.centrifuge("centrifuging_taranium_enriched_helium_plasma")
.inputFluids("gtceu:taranium_enriched_helium_plasma 3000")
.notConsumable("kubejs:magnetron")
.notConsumable("kubejs:cryotheum_dust")
.itemOutputs("gtceu:taranium_dust", "gtceu:small_clean_inert_residue_dust")
.duration(100).EUt(GTValues.VA[GTValues.ZPM])
event.recipes.gtceu.centrifuge("centrifuging_taranium_depleted_helium")
.inputFluids("gtceu:taranium_depleted_helium 2500")
.itemOutputs("gtceu:clean_inert_residue_dust")
.outputFluids("gtceu:helium 2000")
.duration(320).EUt(GTValues.VA[GTValues.EV])
}
})

View file

@ -0,0 +1,69 @@
/**
* Universal Crystallizer multiblock
*/
ServerEvents.recipes(event => {
// //// Machine Recipe //////
event.recipes.gtceu.assembly_line("universal_crystallizer")
.itemInputs("24x gtceu:large_autoclave", "24x packagedexcrafting:combination_crafter", "24x gtceu:uv_emitter", "24x gtceu:uv_field_generator", "64x #gtceu:circuits/uhv", "8x #gtceu:circuits/uev", "64x gtceu:tritanium_coil_block", "24x kubejs:universal_warp_controller", "32x kubejs:hadal_energy_core")
.inputFluids("kubejs:molten_cryotheum 36864", "gtceu:diamatine_empowered 18432", "gtceu:naquadria 63216", (doStoneline ? "gtceu:taranium" : "gtceu:actinium") + " 4608")
.itemOutputs("gtceu:universal_crystallizer")
.stationResearch(b => b
.researchStack("gtceu:tritanium_coil_block")
.CWUt(128, 512000)
.EUt(30720)
)
.duration(45)
.EUt(1966080)
// //// Crystallization recipes /////
event.recipes.gtceu.universal_crystallizer("diamond_crystallization")
.itemInputs("64x gtceu:carbon_dust", "64x gtceu:carbon_dust", "64x gtceu:carbon_dust", "64x gtceu:carbon_dust", "64x gtceu:carbon_dust", "64x gtceu:carbon_dust", "64x gtceu:carbon_dust", "64x gtceu:carbon_dust")
.inputFluids("gtceu:enriched_naquadah 3")
.itemOutputs("32x minecraft:diamond")
.duration(60)
.EUt(1179648)
event.recipes.gtceu.universal_crystallizer("enori_crystallization")
.itemInputs("63x gtceu:iron_dust")
.inputFluids("gtceu:enriched_naquadah 3")
.itemOutputs("7x gtceu:enori_empowered_block")
.duration(7)
.EUt(1000000)
event.recipes.gtceu.universal_crystallizer("restonia_crystallization")
.itemInputs("63x minecraft:redstone")
.inputFluids("gtceu:enriched_naquadah 3")
.itemOutputs("7x gtceu:restonia_empowered_block")
.duration(7)
.EUt(1000000)
event.recipes.gtceu.universal_crystallizer("palis_crystallization")
.itemInputs("63x gtceu:lapis_dust")
.inputFluids("gtceu:enriched_naquadah 3")
.itemOutputs("7x gtceu:palis_empowered_block")
.duration(7)
.EUt(1000000)
event.recipes.gtceu.universal_crystallizer("void_crystallization")
.itemInputs("63x gtceu:coal_dust")
.inputFluids("gtceu:enriched_naquadah 3")
.itemOutputs("7x gtceu:void_empowered_block")
.duration(7)
.EUt(1000000)
event.recipes.gtceu.universal_crystallizer("diamatine_crystallization")
.itemInputs("63x gtceu:diamond_dust")
.inputFluids("gtceu:enriched_naquadah 3")
.itemOutputs("7x gtceu:diamatine_empowered_block")
.duration(7)
.EUt(1000000)
event.recipes.gtceu.universal_crystallizer("emeradic_crystallization")
.itemInputs("63x gtceu:emerald_dust")
.inputFluids("gtceu:enriched_naquadah 3")
.itemOutputs("7x gtceu:emeradic_empowered_block")
.duration(7)
.EUt(1000000)
})

View file

@ -0,0 +1,61 @@
// priority: 999
/**
! This script loads first before the other startup scripts
* put your util or patches here so that you can access them at other scripts
*/
// see quest_scripts.js
const cake_reset_time = 60; // in seconds
/**
* Capitalizes the first char of the string
* @param {string} word
* @returns
*/
const capitalize = (word) => (word[0].toUpperCase() + word.substring(1));
/**
* helper for compressing/decompress crafting
* @param {Internal.RecipesEventJS_} ev
* @param {OutputItem_} output output
* @param {InputItem_} input input
* @param {boolean} make_uncompacting make uncompacting recipie (default true)
* @returns {Internal.RecipeTypeFunction}
*/
const compacting = (ev, output, input, make_uncompacting) => {
// kubejs doesnt support nullish coalescing :(
if (make_uncompacting === undefined || make_uncompacting === null) {
make_uncompacting = true;
}
if (make_uncompacting) ev.shapeless(`9x ${input}`, [output]);
return ev.shaped(output, [
"aaa",
"aaa",
"aaa"
], { a: input });
}
// Java Classes
// used to create FluidIngredientJS objects
const JSONObject = Java.loadClass("com.google.gson.JsonObject")
// Required to use fluid tags in gregtech recipes
const FluidIngredientJS = Java.loadClass("com.gregtechceu.gtceu.integration.kjs.recipe.components.GTRecipeComponents$FluidIngredientJS")
// Required for the rock breaker
const RockBreakerCondition = Java.loadClass("com.gregtechceu.gtceu.common.recipe.condition.RockBreakerCondition")
// Tier enums for easier data handling
const TIER_ULV = 0; // ulv
const TIER_LV = 1;
const TIER_MV = 2;
const TIER_HV = 3;
const TIER_EV = 4;
const TIER_IV = 5;
const TIER_LUV = 6;
const TIER_ZPM = 7;
const TIER_UV = 8;
const TIER_UHV = 9;
const TIER_ID_MAPPING = [
"ULV", "LV", "MV", "HV", "EV", "IV", "LuV", "ZPM", "UV", "UHV"
]

View file

@ -0,0 +1,11 @@
/**
* Welcome message sent to players on join
*/
PlayerEvents.loggedIn(event => {
event.player.tell(["Welcome to ", Text.blue("Monifactory Beta"), ` on ${capitalize(`${global.packmode}`)} mode.`]); // force recast to string
event.player.tell(["Report pack issues to ", Text
.blue("the Github").underlined()
.clickOpenUrl("https://github.com/ThePansmith/Monifactory")
.hover("Click to open"), "."
]);
})

View file

@ -0,0 +1,60 @@
/**
* Server-side pack mode management.
* This file adds a set of constant booleans for convenience in determining if a feature is enabled
* and enables gamestages to toggle feature-specific FTBQuests quests if the respective content is also enabled.
*/
// The !! is to cast the types into boolean since they got transformed into Java Objects from being globals
const doAssemblyLineOrderingWarning = !!global.doAssemblyLineOrderingWarning;
const doBoilers = !!global.doBoilers;
const doCompacting = !!global.doCompacting;
const doConduits = !!global.doConduits;
const doConverters = !!global.doConverters;
const doHarderPrintedSilicon = !!global.doHarderPrintedSilicon;
const doHarderProcessing = !!global.doHarderProcessing;
const doHarderRecipes = !!global.doHarderRecipes;
const doHarderNaqFuel = !!global.doHarderNaqFuel;
const doHardGlassRecipesWarning = !!global.doHardGlassRecipesWarning;
const doHatchRevert = !!global.doHatchRevert;
const doHNN = !!global.doHNN;
const doLaserIO = !!global.doLaserIO;
const doMeowniPlush = !!global.doMeowniPlush;
const doMonicoins = !!global.doMonicoins;
const doSnad = !!global.doSnad;
const doSteamAge = !!global.doSteamAge;
const doStoneline = !!global.doStoneline;
const doFluxbore = !!global.doFluxbore;
const doHarderFluxBore = !!global.doHarderFluxBore;
const doQuantumCoolant = !!global.doQuantumCoolant;
PlayerEvents.loggedIn(event => {
const gameStages = [
"Boilers",
"Compacting",
"Converters",
"HarderProcessing",
"HarderRecipes",
"HardGlassRecipesWarning",
"HNN",
"LaserIO",
"Monicoins",
"Snad",
"SteamAge",
"HarderNaqFuel",
"Stoneline",
"HalfMMs",
"QuantumCoolant"
];
gameStages.forEach(stage => {
const flag = global[`do${stage}`];
if (flag) {
event.removeGameStage(`dont${stage}`);
event.addGameStage(`do${stage}`);
} else {
event.removeGameStage(`do${stage}`);
event.addGameStage(`dont${stage}`);
}
});
});

View file

@ -0,0 +1,205 @@
/**
* Maceration recipes for Ad Astra planetary rock dusts
* Makes planetary rock dusts drop from ores
* Centrifuge recipes for converting planetary rock dusts into valuable resources
* Maceration recipes for converting other blocks found on planets to resources
*/
ServerEvents.recipes(event => {
// Regolith dusts
let regolithDustResources = [
["moon", ["moon_sand"], "diamond"],
["mars", ["mars_sand"], "monazite"],
["venus", ["venus_sandstone", "venus_sandstone_bricks", "cracked_venus_sandstone_bricks", "venus_sand"], "olivine"],
["mercury", [], "cinnabar"],
["glacio", [], "sodalite"]
]
regolithDustResources.forEach((planetResources, fluxCount) => {
let stone_variants = [
`${planetResources[0]}_stone`,
`${planetResources[0]}_cobblestone`,
`${planetResources[0]}_stone_bricks`,
`cracked_${planetResources[0]}_stone_bricks`,
`chiseled_${planetResources[0]}_stone_bricks`,
`polished_${planetResources[0]}_stone`,
`${planetResources[0]}_pillar`,
`${planetResources[0]}_stone_brick_wall`
]
// Planetary dust maceration recipe: stone variants
stone_variants.forEach(variant => {
event.recipes.gtceu.macerator(`macerate_${variant}`)
.itemInputs(`ad_astra:${variant}`)
.itemOutputs(`kubejs:${planetResources[0]}_dust`)
.duration(200)
.EUt(GTValues.VHA[GTValues.HV])
})
// Planetary dust maceration recipe: others
planetResources[1].forEach(variant => {
event.recipes.gtceu.macerator(`macerate_${variant}`)
.itemInputs(`ad_astra:${variant}`)
.itemOutputs(`kubejs:${planetResources[0]}_dust`)
.duration(200)
.EUt(GTValues.VHA[GTValues.HV])
})
// Recipes to make quantum flux from planets' rock dusts
event.shaped(`${fluxCount + 1}x kubejs:quantum_flux`, [
" B ",
"BAB",
" B "
], {
A: `#forge:gems/${planetResources[2]}`,
B: `kubejs:${planetResources[0]}_dust`
}).id(`kubejs:quantum_flux_from_${planetResources[0]}_dust`)
event.recipes.gtceu.mixer(`quantum_flux_from_${planetResources[0]}_dust`)
.itemInputs(`4x kubejs:${planetResources[0]}_dust`, `#forge:gems/${planetResources[2]}`)
.itemOutputs(`${fluxCount + 1}x kubejs:quantum_flux`)
.duration(100)
.EUt(GTValues.VA[GTValues.HV])
})
// Rock dust centrifuging
event.recipes.gtceu.centrifuge("moon_dust_centrifuging")
.itemInputs("kubejs:moon_dust")
.chancedOutput("gtceu:stone_dust", 2500, 0)
.chancedOutput("gtceu:glass_dust", 2000, 0)
.chancedOutput("gtceu:bauxite_dust", 2300, 0)
.chancedOutput("gtceu:quicklime_dust", 1400, 0)
.chancedOutput("gtceu:magnesia_dust", 1000, 50)
.chancedOutput("gtceu:extraterrestrial_metal_mixture_dust", 700, 70)
.outputFluids(Fluid.of("gtceu:deuterium", 100))
.duration(200)
.EUt(GTValues.VA[GTValues.MV])
event.recipes.gtceu.centrifuge("mars_dust_centrifuging")
.itemInputs("kubejs:mars_dust")
.chancedOutput("gtceu:silicon_dioxide_dust", 4000, 0)
.chancedOutput("gtceu:pyrope_dust", 2300, 0)
.chancedOutput("gtceu:hematite_dust", 2000, 0)
.chancedOutput("gtceu:soapstone_dust", 900, 90)
.chancedOutput("gtceu:calcium_perchlorate_dust", 700, 0)
.chancedOutput("gtceu:extraterrestrial_metal_mixture_dust", 825, 80)
.duration(200)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.centrifuge("venus_dust_centrifuging")
.itemInputs("kubejs:venus_dust")
.chancedOutput("gtceu:quartz_sand_dust", 3000, 0)
.chancedOutput("gtceu:pyrite_dust", 2600, 260)
.chancedOutput("gtceu:calcium_carbonate_dust", 1800, 0)
.chancedOutput("gtceu:apatite_dust", 1400, 140)
.chancedOutput("gtceu:garnierite_dust", 1100, 110)
.chancedOutput("gtceu:extraterrestrial_metal_mixture_dust", 1000, 80)
.outputFluids(Fluid.of("gtceu:sulfur_dioxide", 100))
.duration(200)
.EUt(GTValues.VA[GTValues.EV])
event.recipes.gtceu.centrifuge("mercury_dust_centrifuging")
.itemInputs("kubejs:mercury_dust")
.chancedOutput("gtceu:stone_dust", 2900, 0)
.chancedOutput("gtceu:basaltic_mineral_sand_dust", 2700, 0)
.chancedOutput("gtceu:garnet_sand_dust", 2000, 0)
.chancedOutput("gtceu:fullers_earth_dust", 1650, 0)
.chancedOutput("minecraft:redstone", 1100, 130)
.chancedOutput("gtceu:extraterrestrial_metal_mixture_dust", 1000, 80)
.duration(200)
.EUt(GTValues.VA[GTValues.EV])
event.recipes.gtceu.centrifuge("glacio_dust_centrifuging")
.itemInputs("kubejs:glacio_dust")
.chancedOutput("gtceu:granitic_mineral_sand_dust", 4500, 0)
.chancedOutput("gtceu:kyanite_dust", 3750, 0)
.chancedOutput("gtceu:alunite_dust", 2500, 0)
.chancedOutput("gtceu:oilsands_dust", 1750, 175)
.chancedOutput("gtceu:bastnasite_dust", 1350, 130)
.chancedOutput("gtceu:extraterrestrial_metal_mixture_dust", 1200, 80)
.duration(200)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.centrifuge("extraterrestrial_metal_mixture_centrifuging")
.itemInputs("gtceu:extraterrestrial_metal_mixture_dust")
.chancedOutput("gtceu:ilmenite_dust", 6000, 0)
.chancedOutput("gtceu:chromite_dust", 4000, 0)
.chancedOutput("gtceu:pyrolusite_dust", 3500, 0)
.chancedOutput("gtceu:wulfenite_dust", 2200, 70)
.chancedOutput("gtceu:tungstate_dust", 1700, 110)
.duration(1000)
.EUt(GTValues.VA[GTValues.IV])
// Maceration recycling for other extraterrestrial materials
event.recipes.gtceu.macerator("macerate_conglomerate")
.itemInputs("ad_astra:conglomerate")
.chancedOutput("gtceu:mirabilite_dust", 2500, 0)
.chancedOutput("gtceu:redrock_dust", 2500, 0)
.chancedOutput("gtceu:biotite_dust", 2500, 0)
.chancedOutput("gtceu:gypsum_dust", 2500, 0)
.duration(200)
.EUt(GTValues.VHA[GTValues.MV])
event.recipes.gtceu.macerator("macerate_infernal_spire")
.itemInputs("ad_astra:infernal_spire_block")
.chancedOutput("minecraft:blaze_powder", 5000, 0)
.chancedOutput("gtceu:bauxite_dust", 2000, 200)
.chancedOutput("gtceu:scheelite_dust", 1500, 150)
.chancedOutput("gtceu:netherite_scrap_dust", 500, 100)
.duration(200)
.EUt(GTValues.VHA[GTValues.IV])
event.recipes.gtceu.macerator("macerate_permafrost")
.itemInputs("ad_astra:permafrost")
.chancedOutput("gtceu:ice_dust", 5000, 0)
.chancedOutput("minecraft:dirt", 5000, 0)
.duration(200)
.EUt(GTValues.VHA[GTValues.ULV])
// Dilithium
event.recipes.gtceu.autoclave("dilithium_helium")
.itemInputs("4x gtceu:dilithium_dust")
.inputFluids("gtceu:helium 1000")
.itemOutputs("4x gtceu:dilithium_gem")
.duration(400)
.EUt(110)
})
// Add regolith dusts to ores' loot pool
LootJS.modifiers((event) => {
const moonDust = LootEntry.of("kubejs:moon_dust").when(c => c.randomChance(0.50))
const moonDustFortune = LootEntry.of("kubejs:moon_dust")
.limitCount(0, 2)
.when(c => c.randomTableBonus("minecraft:fortune", [0, 0.60, 1.2, 2.0]))
.applyOreBonus("minecraft:fortune")
const marsDust = LootEntry.of("kubejs:mars_dust").when(c => c.randomChance(0.50))
const marsDustFortune = LootEntry.of("kubejs:mars_dust")
.limitCount(0, 2)
.when(c => c.randomTableBonus("minecraft:fortune", [0, 0.60, 1.2, 2.0]))
.applyOreBonus("minecraft:fortune")
const venusDust = LootEntry.of("kubejs:venus_dust").when(c => c.randomChance(0.50))
const venusDustFortune = LootEntry.of("kubejs:venus_dust")
.limitCount(0, 2)
.when(c => c.randomTableBonus("minecraft:fortune", [0, 0.60, 1.2, 2.0]))
.applyOreBonus("minecraft:fortune")
const mercuryDust = LootEntry.of("kubejs:mercury_dust").when(c => c.randomChance(0.50))
const mercuryDustFortune = LootEntry.of("kubejs:mercury_dust")
.limitCount(0, 2)
.when(c => c.randomTableBonus("minecraft:fortune", [0, 0.60, 1.2, 2.0]))
.applyOreBonus("minecraft:fortune")
const glacioDust = LootEntry.of("kubejs:glacio_dust").when(c => c.randomChance(0.50))
const glacioDustFortune = LootEntry.of("kubejs:glacio_dust")
.limitCount(0, 2)
.when(c => c.randomTableBonus("minecraft:fortune", [0, 0.60, 1.2, 2.0]))
.applyOreBonus("minecraft:fortune")
event.addBlockLootModifier(/.*moon_.*_ore$/).addSequenceLoot(moonDust, moonDustFortune);
event.addBlockLootModifier(/.*mars_.*_ore$/).addSequenceLoot(marsDust, marsDustFortune);
event.addBlockLootModifier(/.*venus_.*_ore$/).addSequenceLoot(venusDust, venusDustFortune);
event.addBlockLootModifier(/.*mercury_.*_ore$/).addSequenceLoot(mercuryDust, mercuryDustFortune);
event.addBlockLootModifier(/.*glacio_.*_ore$/).addSequenceLoot(glacioDust, glacioDustFortune);
});

View file

@ -0,0 +1,34 @@
/**
* This file implements some of the functionality necessary to fulfill the purpose of the deprecation pipeline
* as described in KubeJS/startup_scripts/deprecation_pipeline.js.
*
* In particular, the recipes to convert deprecated items to their replacement are defined here.
*/
Object.entries(global.deprecatedItems).forEach(([oldItemID, replacementItemID]) => {
ServerEvents.recipes(event => {
event.shapeless(replacementItemID, [oldItemID]).id(`${oldItemID}_legacy_updater`);
event.recipes.gtceu.atomic_reconstruction(`${oldItemID}_legacy_updater`)
.itemInputs(oldItemID)
.itemOutputs(replacementItemID)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
});
});
Object.entries(global.deprecatedFluids).forEach(([oldFluidID, replacementFluidID]) => {
ServerEvents.recipes(event => {
event.recipes.gtceu.chemical_reactor(`${oldFluidID}_legacy_updater`)
.inputFluids(`${oldFluidID} 1000`)
.outputFluids(`${replacementFluidID} 1000`)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.distillation_tower(`${oldFluidID}_legacy_updater`)
.inputFluids(`${oldFluidID} 1000`)
.outputFluids(`${replacementFluidID} 1000`)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
});
});

View file

@ -0,0 +1,50 @@
/**
* Extraction and solidification recipes for NC and GT
*/
ServerEvents.recipes(event => {
// Solidified to Gas
extractgas("neon", "kubejs:solidified_neon", Fluid.of("gtceu:neon", 1000));
extractgas("krypton", "kubejs:solidified_krypton", Fluid.of("gtceu:krypton", 1000));
extractgas("xenon", "kubejs:solidified_xenon", Fluid.of("gtceu:xenon", 1000));
extractgas("argon", "kubejs:solidified_argon", Fluid.of("gtceu:argon", 1000));
// Extract Nuclearcraft Isotopes
extractisotope("thorium_230", "nuclearcraft:thorium_230", Fluid.of("gtceu:thorium", 144));
extractisotope("thorium_232", "nuclearcraft:thorium_232", Fluid.of("gtceu:thorium", 144));
extractisotope("uranium_233", "nuclearcraft:uranium_233", Fluid.of("gtceu:uranium_235", 144));
extractisotope("uranium_235", "nuclearcraft:uranium_235", Fluid.of("gtceu:uranium_235", 144));
extractisotope("uranium_238", "nuclearcraft:uranium_238", Fluid.of("gtceu:uranium", 144));
extractisotope("neptunium_237", "nuclearcraft:neptunium_237", Fluid.of("gtceu:neptunium", 144));
extractisotope("neptunium_236", "nuclearcraft:neptunium_236", Fluid.of("gtceu:neptunium", 144));
extractisotope("plutonium_241", "nuclearcraft:plutonium_241", Fluid.of("gtceu:plutonium_241", 144));
extractisotope("plutonium_242", "nuclearcraft:plutonium_242", Fluid.of("gtceu:plutonium_241", 144));
extractisotope("plutonium_238", "nuclearcraft:plutonium_238", Fluid.of("gtceu:plutonium", 144));
extractisotope("plutonium_239", "nuclearcraft:plutonium_239", Fluid.of("gtceu:plutonium", 144));
extractisotope("curium_243", "nuclearcraft:curium_243", Fluid.of("gtceu:curium", 144));
extractisotope("curium_245", "nuclearcraft:curium_245", Fluid.of("gtceu:curium", 144));
extractisotope("curium_246", "nuclearcraft:curium_246", Fluid.of("gtceu:curium", 144));
extractisotope("curium_247", "nuclearcraft:curium_247", Fluid.of("gtceu:curium", 144));
extractisotope("americium_241", "nuclearcraft:americium_241", Fluid.of("gtceu:americium", 144));
extractisotope("americium_242", "nuclearcraft:americium_242", Fluid.of("gtceu:americium", 144));
extractisotope("americium_243", "nuclearcraft:americium_243", Fluid.of("gtceu:americium", 144));
extractisotope("berkelium_247", "nuclearcraft:berkelium_247", Fluid.of("gtceu:berkelium", 144));
extractisotope("berkelium_248", "nuclearcraft:berkelium_248", Fluid.of("gtceu:berkelium", 144));
extractisotope("californium_249", "nuclearcraft:californium_249", Fluid.of("gtceu:californium", 144));
extractisotope("californium_250", "nuclearcraft:californium_250", Fluid.of("gtceu:californium", 144));
extractisotope("californium_251", "nuclearcraft:californium_251", Fluid.of("gtceu:californium", 144));
extractisotope("californium_252", "nuclearcraft:californium_252", Fluid.of("gtceu:californium", 144));
function extractgas(recipename, input, output) {
event.recipes.gtceu.extractor(recipename)
.itemInputs(input)
.outputFluids(output)
.duration(200)
.EUt(30)
}
function extractisotope(recipename, input, output) {
event.recipes.gtceu.extractor(recipename)
.itemInputs(input)
.outputFluids(output)
.duration(180)
.EUt(6)
}
})

View file

@ -0,0 +1,39 @@
/** Shamelessly stolen from A&B :) */
function opposite(face) {
if (face.equals("down"))
return "up"
if (face.equals("east"))
return "west"
if (face.equals("west"))
return "east"
if (face.equals("north"))
return "south"
if (face.equals("south"))
return "north"
return "down"
}
BlockEvents.placed(event => {
let block = event.getBlock()
// gtceu blocks
if (block.getId().startsWith("gtceu:")) {
// Set energy converters to feToEu mode when placed
if (block.getId().endsWith("_energy_converter")) {
block.mergeEntityData({ energyContainer: { feToEu: true } })
}
}
// Blocks below these line only get their placements altered if they were placed by an entity
if (event.getEntity() == null) return
// Reverse placed Dynamos on Sneak
if (block.getId().startsWith("thermal:dynamo") || (block.getId().startsWith("systeams:"))) { // systeams:steam is not a block thankfully
let properties = block.getProperties()
if (event.getEntity().isCrouching()) {
properties["facing"] = opposite(properties["facing"].toString())
block.set(block.getId(), properties)
}
}
})

View file

@ -0,0 +1,13 @@
/** some mod tags the charcoal recipe incorrectly */
ServerEvents.recipes(event => {
event.replaceInput({ id: "minecraft:coal_block" }, "#minecraft:coals", "minecraft:coal")
event.replaceOutput({ id: "minecraft:charcoal" }, "#minecraft:coals", "minecraft:charcoal")
// thanks greg
event.replaceOutput({ id: "gtceu:shapeless/block_decompress_charcoal" }, "minecraft:coal", "minecraft:charcoal")
event.replaceOutput({ id: "thermal:storage/charcoal_from_block" }, "minecraft:coal", "minecraft:charcoal")
event.replaceOutput({ id: "thermal:machines/press/unpacking/press_charcoal_unpacking" }, "minecraft:coal", "minecraft:charcoal")
event.replaceOutput({ type: "gtceu:pyrolyse_oven" }, "minecraft:coal", "20x minecraft:charcoal");
event.replaceOutput({ id: "gtceu:forge_hammer/hammer_charcoal_block_to_gem" }, "minecraft:coal", "9x minecraft:charcoal")
event.replaceOutput({ id: "gtceu:coke_oven/log_to_charcoal" }, "minecraft:coal", "minecraft:charcoal")
})

View file

@ -0,0 +1,15 @@
/**
* One-time give of items to new players
*/
PlayerEvents.loggedIn(event => {
// Check if player doesn't have "starting_items" stage yet
if (!event.player.stages.has("starting_items")) {
// Add the stage
event.player.stages.add("starting_items")
// remove the TOP note
event.player.inventory.clear()
// Give qb to player
event.player.give("ftbquests:book")
}
})

View file

@ -0,0 +1,30 @@
/**
* Lowers the tiering of Active Transformers from LuV to IV - script 2 of 2.
* - Changes recipes of High Power Casings and the Active Transformer machine to make them accessible earlier
*/
ServerEvents.recipes(event => {
event.recipes.gtceu.assembler("high_power_casing")
.itemInputs(
"#forge:frames/iridium",
"6x #forge:plates/iridium",
"#gtceu:circuits/ev",
"16x #forge:fine_wires/cobalt",
"16x #forge:fine_wires/copper",
"2x gtceu:platinum_single_wire",
)
.itemOutputs("2x gtceu:high_power_casing")
.duration(100).EUt(GTValues.VA[GTValues.EV])
event.recipes.gtceu.assembler("active_transformer")
.itemInputs(
"gtceu:iv_transformer_16a",
"#gtceu:circuits/luv",
"8x gtceu:samarium_iron_arsenic_oxide_single_wire",
"2x gtceu:hpic_chip"
)
.inputFluids("gtceu:sodium_potassium 1000")
.itemOutputs("gtceu:active_transformer")
.duration(300).EUt(GTValues.VA[GTValues.IV])
// Lowers the voltage at which the laser pipes can be made to post plat-line IV
event.replaceInput({ output: "gtceu:normal_laser_pipe" }, "gtceu:osmiridium_foil", "gtceu:rhodium_foil")
})

View file

@ -0,0 +1,7 @@
/** Bounty board recipes only accept oak. The dev has stated this is intended. https://github.com/ejektaflex/Bountiful/issues/271 */
ServerEvents.recipes(event => {
if (doMonicoins) {
event.replaceInput({ id: "bountiful:crafting/bountyboard" }, "minecraft:oak_log", "#minecraft:logs")
event.replaceInput({ id: "bountiful:crafting/bountyboard" }, "minecraft:oak_planks", "#minecraft:planks")
}
})

View file

@ -0,0 +1,5 @@
/** TODO */
MoreJSEvents.filterAvailableEnchantments((event) => {
event.add("minecraft:unbreaking");
})

View file

@ -0,0 +1,36 @@
/**
* Temporary fix for EnderIO redstone conduits not connecting to various blocks
* see https://github.com/Team-EnderIO/EnderIO/issues/852#issuecomment-2395092479
*/
ServerEvents.tags("block", event => {
const list = [
// All GT tiered blocks
/^gtceu:(steam|u?lv|mv|hv|ev|iv|luv|zpm|uv|uhv|uev|uiv|max|creative)_.*$/,
// All GT Large variants (turbines & multis) + power substation
/^gtceu:.*(_large|large_|_large_|mega_).*$/,
"gtceu:power_substation",
// Thermal/Systeams dynamos & boilers
"#thermal:dynamos",
"steamdynamo:steam_dynamo",
"systeams:steam_dynamo",
/^systeams:.*_boiler$/,
// NC:Neoteric controller & io port
"nuclearcraft:fission_reactor_controller",
"nuclearcraft:fission_reactor_port",
// Snad
"snad:snad",
"snad:red_snad",
// Modded lamps
/^gtceu:.*_lamp$/,
/^quark:.*_lamp$/,
/^chipped:.*_lamp$/,
"xtonesreworked:flat_lamp",
]
event.add("enderio:redstone_connectable", list)
})

View file

@ -0,0 +1,10 @@
/**
* Makes you mine glass faster using a pickaxe
*/
ServerEvents.tags("block", event => {
event.add("minecraft:mineable/pickaxe", ["#forge:glass", "#forge:glass_panes"]);
event.add("minecraft:mineable/pickaxe", /xtonesreworked:glaxx_block_/);
event.add("minecraft:mineable/pickaxe", /enderio:clear_glass/);
event.add("minecraft:mineable/pickaxe", /enderio:fused_quartz/);
})

View file

@ -0,0 +1,32 @@
/*
Creates Forming Press recipes for all tiers of Gregtech Credits,
replacing the singular one for Cupronickel.
*/
ServerEvents.recipes(event => {
// Remove the one forming press recipe for Cupronickel
event.remove({ id: "gtceu:forming_press/credit_cupronickel" })
const metals = [
"copper",
"cupronickel",
"silver",
"gold",
"platinum",
"osmium",
"naquadah",
"neutronium"
]
for (let index = 0; index < metals.length; index++) {
// Total energy cost (default 1600 EU for Cupronickel)
let energyIn = 1600 * Math.pow(4, index);
// Create recipes for all coin types
event.recipes.gtceu.forming_press(`gtceu:forming_press/${metals[index]}_credit`)
.notConsumable("gtceu:credit_casting_mold")
.itemInputs(`gtceu:${metals[index]}_plate`)
.itemOutputs(`4x gtceu:${metals[index]}_credit`)
.EUt(energyIn / (20 * 5))
.duration(20 * 5)
}
})

View file

@ -0,0 +1,17 @@
/** Reverts the GTM 1.4.1 hatch recipe nerf for NM and HM */
ServerEvents.recipes(event => {
if (doHatchRevert) {
event.remove({ id: /item_import_bus_/ })
event.remove({ id: /item_export_bus_/ })
event.remove({ id: /fluid_hatch_/, type: "gtceu:assembler" })
event.remove({ id: /fluid_export_hatch_/, type: "gtceu:assembler" })
let hatchtier = ["ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpm", "uv", "uhv", "uev", "uiv", "max"]
hatchtier.forEach(volt => {
event.shaped(`gtceu:${volt}_input_bus`, [" S ", " T ", " "], { S: "#forge:chests/wooden", T: `gtceu:${volt}_machine_hull` })
event.shaped(`gtceu:${volt}_output_bus`, [" ", " T ", " S "], { S: "#forge:chests/wooden", T: `gtceu:${volt}_machine_hull` })
event.shaped(`gtceu:${volt}_input_hatch`, [" S ", " T ", " "], { S: "#forge:glass", T: `gtceu:${volt}_machine_hull` })
event.shaped(`gtceu:${volt}_output_hatch`, [" ", " T ", " S "], { S: "#forge:glass", T: `gtceu:${volt}_machine_hull` })
})
}
})

View file

@ -0,0 +1,14 @@
/**
* Remove the stronghold biome tag so that there are no biomes that can generate strongholds
* The same is done for Ad Astra's moon dungeons and Oil wells (contain unused materials)
*/
ServerEvents.tags("worldgen/biome", event => {
event.removeAll("minecraft:has_structure/stronghold");
event.removeAll("ad_astra:has_structure/moon_dungeon");
event.removeAll("ad_astra:has_structure/oil_well");
});
// Add the eye trim as an ender dragon drop
LootJS.modifiers((event) => {
event.addEntityLootModifier("minecraft:ender_dragon").addLoot("minecraft:eye_armor_trim_smithing_template");
});

View file

@ -0,0 +1,16 @@
/**
* Remove/hide useless or overlapping smelting, blasting recipes for ores
*/
ServerEvents.recipes(event => {
// Remove overlapping ore blocks to ingot/dust recipes
event.remove({ id: /^minecraft:nuclearcraft_\w+_ore$/ })
event.remove({ id: /^minecraft:\w+_from_smelting_[\w_]+_ore$/ })
event.remove({ id: /^minecraft:\w+_from_blasting_[\w_]+_ore$/ })
event.remove({ id: /^thermal:smelting\/\w+_ingot_from_(ore|deepslate_ore)_smelting$/ })
event.remove({ id: "thermal:smelting/sulfur_from_smelting" })
event.remove({ id: "thermal:smelting/cinnabar_from_smelting" })
event.remove({ id: "thermal:smelting/apatite_from_smelting" })
})

View file

@ -0,0 +1,28 @@
/**
* Re-tiers the PTERB to late LuV - script 1 of 2.
* - Replaces UV components with LuV components.
*/
ServerEvents.recipes(event => {
event.remove({ id: "gtceu:assembly_line/pterb" })
event.remove({ id: "gtceu:research_station/1_x_gtceu_active_transformer" })
event.recipes.gtceu.assembly_line("pterb")
.itemInputs("gtceu:active_transformer")
.itemInputs("32x gtceu:europium_plate")
.itemInputs("8x gtceu:luv_sensor")
.itemInputs("8x gtceu:luv_emitter")
.itemInputs("4x gtceu:luv_field_generator")
.itemInputs("2x #gtceu:circuits/zpm")
.itemInputs("4x gtceu:europium_large_fluid_pipe")
.itemInputs("8x gtceu:niobium_titanium_quadruple_cable")
.itemInputs("8x gtceu:normal_laser_pipe")
.inputFluids("gtceu:soldering_alloy 4608")
.EUt(GTValues.VA[GTValues.ZPM])
.duration(1200)
.itemOutputs("gtmutils:pterb_machine")
["scannerResearch(java.util.function.UnaryOperator)"](b => b
.researchStack("gtceu:active_transformer")
.duration(2400)
.EUt(7680)
)
})

View file

@ -0,0 +1,24 @@
/**
* Quest Book timer scripts
*/
FTBQuestsEvents.customReward("24FE5D5A412EA666", event => {
// auto complete when you unlock genesis (free cake custom trigger)
FTBQuests.getServerDataFromPlayer(event.getPlayer()).complete("138B92A597D63C12")
})
// timer task 'component'
FTBQuestsEvents.customTask(event => {
if (event.task.hasTag("moni_timer_60")) {
event.setMaxProgress(60 * cake_reset_time);
} else if (event.task.hasTag("moni_timer_30")) {
event.setMaxProgress(30 * cake_reset_time);
}
if (event.task.hasTag("moni_timer")) {
event.setCheckTimer(20);
event.check = (task) => {
task.addProgress(1);
}
}
})

View file

@ -0,0 +1,28 @@
/**
* A little bit of software wizardry that alters any "superconducting_coil" recipes in the Assembler
* to use 1/2 of the Trinium they normally do.
*/
ServerEvents.recipes(event => {
// Get all GTCEu Assembler recipes with an ID matching the regex
event.findRecipes({ id: /gtceu:assembler\/superconducting_coil/, type: "gtceu:assembler" }).forEach(supercon_coil_recipe => {
// Get the JSON array object representing all of the fluid ingredients
let fluidIngredients = supercon_coil_recipe.json.getAsJsonObject("inputs").getAsJsonArray("fluid")
for (let i = 0; i < fluidIngredients.size(); i++) {
// Fluid ingredient to alter if it includes "forge:trinium" as a tag
let curFluidIngredient = fluidIngredients.get(i).getAsJsonObject("content")
// Get the original Trinium fluid amount
let fluidAmount = curFluidIngredient.getAsJsonPrimitive("amount").asInt
// Confirm that we are indeed altering a fluid ingredient that contains the "forge:trinium" tag
let fluidIngredient = curFluidIngredient.getAsJsonArray("value")
for (let j = 0; j < fluidIngredient.size(); j++) {
if (fluidIngredient.get(j).getAsJsonPrimitive("tag").asString == "forge:trinium") {
// Change fluid ingredient to 1/2 the amount if it does match
curFluidIngredient.remove("amount")
curFluidIngredient["addProperty(java.lang.String,java.lang.Number)"]("amount", fluidAmount / 2)
}
}
}
})
})

View file

@ -0,0 +1,11 @@
/**
* Modify AE2 crystal certus mechanic to use GT items
*/
ServerEvents.blockLootTables(event => {
event.addSimpleBlock("ae2:quartz_cluster", "4x gtceu:certus_quartz_gem") // To drop a different item
})
LootJS.modifiers((event) => {
event.addBlockLootModifier(/ae2:.*quartz_bud/)
.replaceLoot("ae2:certus_quartz_dust", "gtceu:certus_quartz_dust")
})

View file

@ -0,0 +1,10 @@
/** Random small tags that don't fit anywhere else */
ServerEvents.tags("item", event => {
event.get("gtceu:batteries").getObjectIds().forEach(resourceLoc => {
event.add("curios:charm", resourceLoc.toString())
})
})
ServerEvents.tags("block", event => {
event.add("minecraft:mineable/pickaxe", "minecraft:glowstone")
})

View file

@ -0,0 +1,19 @@
/**
* Item tags for the Quest Book
*/
ServerEvents.tags("item", event => {
// Input Hatches
event.add("moni:input_hatch", /^gtceu:(?!steam)(?!me).{1,3}_input_hatch$/); // ($) we dont want to get output_hatch_hv
// Output Hatches
event.add("moni:output_hatch", /^gtceu:(?!steam)(?!me).{1,3}_output_hatch$/); // nor do we want hv_energy_input_hatch
// Input buses
event.add("moni:input_bus", /^gtceu:(?!steam)(?!me).{1,3}_input_bus$/)
// Output busses
event.add("moni:output_bus", /^gtceu:(?!steam)(?!me).{1,3}_output_bus$/)
// 'moni_quest:backpack'
event.add("moni_quest:backpack", ["sophisticatedbackpacks:backpack", "sophisticatedbackpacks:copper_backpack", "sophisticatedbackpacks:iron_backpack", "sophisticatedbackpacks:gold_backpack", "sophisticatedbackpacks:diamond_backpack", "sophisticatedbackpacks:netherite_backpack"])
// Monicoin, mostly cosmetic
event.add("moni:coins", ["kubejs:moni_penny", "kubejs:moni_nickel", "kubejs:moni_quarter", "kubejs:moni_dollar"])
})

View file

@ -0,0 +1,113 @@
/**
* unify chipped since they dont do that anymore
* @private
* @param {TagEvent.Item & TagEvent.Block} event
*/
const unifyChisel = (event) => {
// regex here means
// `^` = beginning, `$` = end, `.+` = anything that isnt whitespace, any length
const IRON_BLOCKLIKES = /^chipped:(?!.+_raw_).+_iron_block$/;
const GOLD_BLOCKLIKES = /^chipped:(?!.+_raw_).+_gold_block$/;
// event.add('forge:glass/colorless', /^chipped:.+_glass$/) // most of the glass here only have fancy trims, but they are all not dyed
event.add("forge:cobblestone/normal", /^chipped:.+(?!_mossy)_cobblestone(_bricks)?$/)
event.add("forge:cobblestone/mossy", /^chipped:.+_mossy_cobblestone(_bricks)?$/)
event.add("forge:cobblestone", /^chipped:.+_cobblestone(_bricks)?$/)
event.add("forge:storage_blocks/glowstone", /^chipped:.+_glowstone$/)
event.add("forge:storage_blocks/redstone", /^chipped:.+_redstone_block$/)
event.add("forge:storage_blocks/iron", IRON_BLOCKLIKES)
event.add("forge:storage_blocks/gold", GOLD_BLOCKLIKES)
event.add("forge:storage_blocks/diamond", /^chipped:.+_diamond_block$/);
event.add("forge:storage_blocks/emerald", /^chipped:.+_emerald_block$/);
event.add("forge:storage_blocks/lapis", /^chipped:.+_lapis_block$/);
event.add("minecraft:planks", /^chipped:.+_planks$/)
event.add("forge:glass", /^chipped:.+_glass(_pillar)?$/)
event.add("forge:storage_blocks", [IRON_BLOCKLIKES, GOLD_BLOCKLIKES, /^chipped:.+_diamond_block$/, /^chipped:.+_emerald_block$/, /^chipped:.+_glowstone$/, /^chipped:.+_lapis_block$/, /^chipped:.+_redstone_block$/])
event.add("minecraft:piglin_loved", GOLD_BLOCKLIKES)
}
ServerEvents.tags("item", event => {
event.add("ae2:all_fluix", "gtceu:fluix_gem")
event.add("ae2:all_certus_quartz", "gtceu:charged_certus_quartz_gem")
event.add("forge:gems/certus_quartz", "gtceu:charged_certus_quartz_gem")
event.add("forge:singularities/ultimate", "kubejs:mote_of_omnium")
event.add("forge:singularities/ultimate", "extendedcrafting:ultimate_singularity")
event.add("forge:ingots/electrum_flux", "redstone_arsenal:flux_ingot")
event.add("forge:dusts/electrum_flux", "redstone_arsenal:flux_dust")
event.add("forge:nuggets/electrum_flux", "redstone_arsenal:flux_nugget")
event.add("forge:gears/electrum_flux", "redstone_arsenal:flux_gear")
event.add("forge:dusts/quartz", "gtceu:nether_quartz_dust")
// can't replace tags in recipes so we just add the tag to the item instead
event.add("forge:ingots/redstone_alloy", "gtceu:red_alloy_ingot")
event.add("forge:ingots/copper_alloy", "gtceu:electrical_steel_ingot")
event.add("forge:storage_blocks/coal_coke", "#forge:storage_blocks/coke")
event.add("forge:coal_coke", "#forge:gems/coke")
const decorremap = [["etrium", "diamond"], ["desh", "bronze"], ["ostrum", "lead"], ["calorite", "red_alloy"]]
decorremap.forEach(([mat, remat]) => {
event.add(`ad_astra:${mat}_plates`, `gtceu:${remat}_plate`)
event.add(`ad_astra:${mat}_ingots`, `gtceu:${remat}_ingot`)
event.add(`ad_astra:${mat}_blocks`, `gtceu:${remat}_block`)
})
event.remove("forge:gears/wood", "enderio:wood_gear")
event.remove("forge:gears/stone", "enderio:stone_gear")
event.remove("forge:gears/iron", "enderio:iron_gear")
event.remove("forge:gears/dark_steel", "enderio:dark_bimetal_gear")
// NOT pulsating iron ingot
event.add("forge:dusts/pulsating", "kubejs:pulsating_dust")
// Endgame tools
event.add("forge:tools/files", "kubejs:infinity_file")
event.add("forge:tools/hammers", "kubejs:infinity_hammer")
event.add("forge:tools/screwdrivers", "kubejs:infinity_screwdriver")
event.add("forge:tools/wrenches", "kubejs:infinity_wrench")
event.add("forge:tools/wire_cutters", "kubejs:infinity_wire_cutter")
// generic unification
event.add("forge:dusts", ["kubejs:pulsating_dust"])
// enderio!!!!
event.add("forge:heads", "enderio:enderman_head")
event.add("forge:microminers", /kubejs:microminer_t/)
event.add("forge:microminers", /kubejs:stabilized_microminer_t/)
// Sawdust
event.add("forge:sawdust", "#forge:dusts/wood")
// For stonecutting Marble
event.add("moni:marble", /^(gtceu:(marble|polished_marble|marble_bricks|cracked_marble_bricks|chiseled_marble|marble_tile|marble_small_tile|marble_windmill_a|marble_windmill_b|small_marble_bricks|square_marble_bricks))$/)
// We're making these Nuclearcraft storage blocks function solely as moderators, so they should not have the tags
event.remove("forge:storage_blocks", ["nuclearcraft:beryllium_block", "nuclearcraft:graphite_block"]);
event.remove("forge:storage_blocks/beryllium", "nuclearcraft:beryllium_block");
event.remove("forge:storage_blocks/graphite", "nuclearcraft:graphite_block");
// AE2 P2P Attunements
event.add("mae2:p2p_attunements/pattern_p2p_tunnel", "expatternprovider:pattern_modifier");
event.add("mae2:p2p_attunements/pattern_p2p_tunnel", "expatternprovider:ex_pattern_provider");
event.add("mae2:p2p_attunements/pattern_p2p_tunnel", "expatternprovider:ex_pattern_provider_part");
unifyChisel(event);
})
ServerEvents.tags("block", event => {
// snad
const compacted_sand = ["kubejs:compressed_sand", "kubejs:double_compressed_sand", "kubejs:compressed_red_sand", "kubejs:double_compressed_red_sand"];
event.add("minecraft:dead_bush_may_place_on", compacted_sand);
event.add("minecraft:bamboo_plantable_on", compacted_sand);
event.add("minecraft:azalea_grows_on", compacted_sand);
event.add("framedblocks:camo_sustain_plant", compacted_sand);
// We're making these Nuclearcraft storage blocks function solely as moderators, so they should not have the tags
event.remove("forge:storage_blocks", ["nuclearcraft:beryllium_block", "nuclearcraft:graphite_block"]);
event.remove("forge:storage_blocks/beryllium", "nuclearcraft:beryllium_block");
event.remove("forge:storage_blocks/graphite", "nuclearcraft:graphite_block");
unifyChisel(event);
})

View file

@ -0,0 +1,35 @@
/**
* Processing line to reprocess Rotten Flesh into other useful products
*/
ServerEvents.recipes(event => {
event.recipes.gtceu.mixer("saline_solution")
.itemInputs("3x gtceu:salt_dust", "gtceu:iodine_dust")
.inputFluids("gtceu:distilled_water 10000")
.outputFluids("gtceu:saline_antiseptic 10000")
.duration(200)
.EUt(GTValues.VA[GTValues.MV])
.cleanroom(CleanroomType.STERILE_CLEANROOM)
event.recipes.gtceu.macerator("rotten_meat")
.itemInputs("minecraft:rotten_flesh")
.itemOutputs("gtceu:rotten_meat_dust", "gtceu:tiny_bone_dust")
.duration(102)
.EUt(2)
event.recipes.gtceu.chemical_bath("sanitize_rotten_meat")
.itemInputs("16x gtceu:rotten_meat_dust")
.inputFluids("gtceu:saline_antiseptic 8000")
.itemOutputs("6x gtceu:meat_dust", "2x gtceu:collagen_dust")
.outputFluids("gtceu:rotten_sludge 12000")
.duration(1600)
.EUt(GTValues.VA[GTValues.HV])
// This recipe violates the conservation of mass because the waste gets voided automatically, like certain other distillation recipes.
event.recipes.gtceu.distillation_tower("rotten_sludge")
.inputFluids("gtceu:rotten_sludge 10000")
.outputFluids("gtceu:fermented_biomass 500", "gtceu:bacteria 1000")
.itemOutputs("gtceu:fertilizer")
.duration(300)
.EUt(GTValues.VA[GTValues.HV])
.cleanroom(CleanroomType.STERILE_CLEANROOM)
})

View file

@ -0,0 +1,275 @@
/** alloys go brrr - ima go insane :) */
ServerEvents.recipes(event => {
/**
* util helper for alloys
* @param {InputItem_[]} inputA any possible inputs
* @param {InputItem_[]} inputB and possible secondary inputs
* @param {OutputItem_} result
* @param {number} duration in seconds
* @param {number} eut
*/
const alloySmeltingVariant = (inputA, inputB, result, duration, eut) => {
// do not const anything here, weird optimization happening with the js vm
for (let itemA of inputA) {
for (let itemB of inputB) {
// the a here is so that it gets sorted on top, jei sorts by recipe id
let id = `kubejs:a_${Item.of(result).idLocation.path}_${Item.of(itemA).idLocation.path}_${Item.of(itemB).idLocation.path}`
event.recipes.gtceu.alloy_smelter(id)
.itemInputs(itemA, itemB)
.itemOutputs(result)
.duration(duration * 20)
.EUt(eut)
}
}
}
alloySmeltingVariant(
["#forge:ingots/steel", "#forge:dusts/steel"],
["#forge:obsidian", "#forge:dusts/obsidian", "#forge:gems/void"],
"gtceu:dark_steel_ingot", 12, 16);
alloySmeltingVariant(
["#forge:ingots/iron", "#forge:dusts/iron"],
["#forge:dusts/redstone"],
"2x gtceu:conductive_alloy_ingot", 7.5, 16);
alloySmeltingVariant(
["#forge:ingots/iron", "#forge:dusts/iron"],
["kubejs:pulsating_dust"],
"gtceu:pulsating_alloy_ingot", 7.5, 16);
alloySmeltingVariant(
["#forge:ingots/steel", "#forge:dusts/steel"],
["#forge:dusts/silicon"],
"gtceu:electrical_steel_ingot", 6, 16);
alloySmeltingVariant(
["#forge:ingots/steel", "#forge:dusts/steel"],
["#forge:dusts/boron"],
"2x nuclearcraft:ferroboron_ingot", 15, 120);
alloySmeltingVariant(
["#forge:ingots/gold", "#forge:dusts/gold"],
["minecraft:soul_sand"],
"gtceu:soularium_ingot", 6, 16);
event.recipes.gtceu.alloy_smelter("kubejs:tough_alloy_ingot")
.itemInputs("#forge:ingots/ferroboron", "#forge:dusts/lithium")
.itemOutputs("2x nuclearcraft:tough_alloy_ingot")
.duration(300)
.EUt(16)
event.recipes.gtceu.alloy_smelter("kubejs:hard_carbon_ingot")
.itemInputs("#forge:gems/diamond", "3x #forge:ingots/steel") // was flipped
.itemOutputs("3x nuclearcraft:hard_carbon_ingot")
.duration(300)
.EUt(500)
event.recipes.gtceu.alloy_smelter("kubejs:fission_reactor_glass")
.itemInputs("nuclearcraft:fission_reactor_casing", "#forge:glass/colorless")
.itemOutputs("nuclearcraft:fission_reactor_glass")
.duration(50)
.EUt(16)
event.remove({ output: "minecraft:netherite_ingot" })
event.recipes.gtceu.alloy_smelter("kubejs:netherite_ingot")
.itemInputs("4x #forge:ingots/gold", "4x minecraft:netherite_scrap") // was flipped
.itemOutputs("1x minecraft:netherite_ingot")
.duration(100)
.EUt(32)
event.remove({ id: "minecraft:nuclearcraft_ferroboron_plate" }) // minecraft??
event.remove({ id: "minecraft:nuclearcraft_ferroboron_dust" })
event.remove([{ id: "nuclearcraft:blast_ferroboron_dust" }, { id: "nuclearcraft:fission_reactor_glass" }])
})
ServerEvents.recipes(event => {
// Different Steel Recipe
event.remove({ id: "gtceu:centrifuge/decomposition_centrifuging__black_steel" })
event.remove({ id: "gtceu:mixer/black_steel" })
event.recipes.gtceu.mixer("kubejs:dark_steel_dust")
.itemInputs("#forge:dusts/steel", "#forge:dusts/obsidian")
.itemOutputs("gtceu:dark_steel_dust")
.duration(80)
.EUt(15)
event.shapeless("gtceu:conductive_alloy_dust", ["#forge:dusts/iron", "#forge:dusts/redstone"]).id("kubejs:conductive_alloy_dust_handcraft")
event.recipes.gtceu.mixer("kubejs:conductive_alloy_dust")
.itemInputs("#forge:dusts/iron", "#forge:dusts/redstone")
.itemOutputs("2x gtceu:conductive_alloy_dust")
.duration(40)
.EUt(30)
event.recipes.gtceu.mixer("kubejs:black_steel_dust")
.itemInputs("3x #forge:dusts/steel", "2x #forge:dusts/black_bronze", "2x gtceu:void_gem", "2x gtceu:coke_gem")
.itemOutputs("9x gtceu:black_steel_dust")
.duration(200)
.EUt(15)
event.recipes.gtceu.mixer("kubejs:vibrant_alloy_dust")
.itemInputs("#forge:dusts/energetic_alloy", "#forge:dusts/ender_pearl")
.itemOutputs("2x gtceu:vibrant_alloy_dust")
.duration(260)
.EUt(30)
event.recipes.gtceu.mixer("kubejs:energetic_alloy_dust")
.itemInputs("2x #forge:dusts/gold", "#forge:dusts/redstone", "#forge:dusts/glowstone")
.itemOutputs("4x gtceu:energetic_alloy_dust")
.duration(140)
.EUt(30)
// Replace default GTCEu glowstone separation recipe to match mixing recipe
event.replaceOutput({ id: "gtceu:centrifuge/glowstone_separation" }, "minecraft:redstone", "gtceu:tricalcium_phosphate_dust")
event.recipes.gtceu.mixer("kubejs:glowstone_dust")
.itemInputs("gtceu:tricalcium_phosphate_dust", "#forge:dusts/gold")
.itemOutputs("2x minecraft:glowstone_dust")
.duration(80)
.EUt(15)
event.recipes.gtceu.mixer("kubejs:mana_infused_dust")
.itemInputs("#forge:dusts/titanium")
.itemOutputs("2x gtceu:mythril_dust")
.inputFluids(Fluid.of("gtceu:mana", 1000))
.duration(200)
.EUt(30)
event.recipes.gtceu.mixer("kubejs:lumium_dust")
.itemInputs("4x #forge:dusts/tin_alloy", "2x #forge:dusts/sterling_silver", "2x extendedcrafting:luminessence", "kubejs:energized_clathrate")
.itemOutputs("7x gtceu:lumium_dust")
.inputFluids(Fluid.of("gtceu:mana", 1000))
.duration(300)
.EUt(1920)
event.recipes.gtceu.mixer("kubejs:signalum_dust")
.itemInputs("4x #forge:dusts/annealed_copper", "2x #forge:dusts/ardite", "2x #forge:dusts/red_alloy", "kubejs:destabilized_clathrate")
.itemOutputs("9x gtceu:signalum_dust")
.inputFluids(Fluid.of("gtceu:mana", 1000))
.duration(300)
.EUt(1920)
// Remove old rhodium plated palladium recipe
event.remove({ id: "gtceu:mixer/rhodium_plated_palladium" })
event.recipes.gtceu.mixer("kubejs:rhodium_plated_palladium_dust")
.itemInputs("3x gtceu:palladium_dust", "gtceu:rhodium_dust", "2x gtceu:lumium_dust")
.itemOutputs("6x gtceu:rhodium_plated_palladium_dust")
.duration(400)
.EUt(7680)
.circuit(1)
event.recipes.gtceu.mixer("kubejs:enderium_dust")
.itemInputs("4x gtceu:lead_dust", "2x gtceu:platinum_dust", "gtceu:blue_steel_dust", "gtceu:osmium_dust", "gtceu:tantalum_dust", "kubejs:resonant_clathrate")
.itemOutputs("10x gtceu:enderium_dust")
.inputFluids(Fluid.of("gtceu:mana", 1000))
.duration(300)
.EUt(1920)
event.recipes.gtceu.mixer("kubejs:ardite_dust")
.itemInputs("3x gtceu:red_steel_dust", "minecraft:blaze_powder")
.itemOutputs("4x gtceu:ardite_dust")
.duration(200)
.EUt(30)
event.recipes.gtceu.mixer("kubejs:manyullyn_dust")
.itemInputs("4x gtceu:ardite_dust", "4x gtceu:cobalt_dust")
.itemOutputs("9x gtceu:manyullyn_dust")
.inputFluids(Fluid.of("gtceu:mana", 1000))
.duration(400)
.EUt(30)
})
ServerEvents.recipes(event => {
event.recipes.gtceu.alloy_blast_smelter("kubejs:conductive_alloy_abs")
.itemInputs("#forge:dusts/iron", "#forge:dusts/redstone")
.outputFluids(Fluid.of("gtceu:conductive_alloy", 288))
.duration(112)
.EUt(16)
.circuit(2)
.blastFurnaceTemp(1400)
event.recipes.gtceu.alloy_blast_smelter("kubejs:soularium_abs")
.itemInputs("#forge:dusts/gold", "soul_sand")
.circuit(2)
.outputFluids(Fluid.of("gtceu:soularium", 144))
.duration(90) // 4.5s
.EUt(16)
.blastFurnaceTemp(1200)
// Black steel recipes. Has both regular & advanced recipe, each with a noble gas version.
event.remove({ id: "gtceu:alloy_blast_smelter/black_steel" })
event.remove({ id: "gtceu:alloy_blast_smelter/black_steel_gas" })
event.recipes.gtceu.alloy_blast_smelter("kubejs:black_steel")
.itemInputs("3x #forge:dusts/steel", "2x #forge:dusts/black_bronze", "2x gtceu:void_gem", "2x gtceu:coke_gem")
.circuit(3)
.outputFluids(Fluid.of("gtceu:molten_black_steel", 1296))
.duration(112.5 * 20 * 9 * 0.75 + 12.5) // 760s
.EUt(120)
.blastFurnaceTemp(1200)
event.recipes.gtceu.alloy_blast_smelter("kubejs:black_steel_gas")
.itemInputs("3x #forge:dusts/steel", "2x #forge:dusts/black_bronze", "2x gtceu:void_gem", "2x gtceu:coke_gem")
.inputFluids(Fluid.of("gtceu:nitrogen", 9000))
.circuit(13)
.outputFluids(Fluid.of("gtceu:molten_black_steel", 1296))
.duration((112.5 * 20 * 9 * 0.75 + 12.5) * 0.67) // 509.2s
.EUt(120)
.blastFurnaceTemp(1200)
event.recipes.gtceu.alloy_blast_smelter("kubejs:black_steel_alternate")
.itemInputs("15x #forge:dusts/steel", "6x #forge:dusts/copper", "2x #forge:dusts/gold", "2x #forge:dusts/silver", "10x #forge:gems/void", "10x gtceu:coke_gem")
.circuit(4)
.outputFluids(Fluid.of("gtceu:molten_black_steel", 6480))
.duration(112.5 * 20 * 45 * 0.75 + 12.5 * 5) // 3800s
.EUt(240)
.blastFurnaceTemp(1200)
event.recipes.gtceu.alloy_blast_smelter("kubejs:black_steel_alternate_gas")
.itemInputs("15x #forge:dusts/steel", "6x #forge:dusts/copper", "2x #forge:dusts/gold", "2x #forge:dusts/silver", "10x #forge:gems/void", "10x gtceu:coke_gem")
.inputFluids(Fluid.of("gtceu:nitrogen", 9000))
.circuit(14)
.outputFluids(Fluid.of("gtceu:molten_black_steel", 6480))
.duration((112.5 * 20 * 45 * 0.75 + 12.5 * 5) * 0.67) // 2546s
.EUt(240)
.blastFurnaceTemp(1200)
// End Steel
event.recipes.gtceu.mixer("kubejs:end_steel_dust")
.itemInputs("gtceu:dark_steel_dust", "gtceu:vibrant_alloy_dust", "#forge:dusts/endstone")
.itemOutputs("3x gtceu:end_steel_dust")
.duration(260)
.EUt(120)
// Dark Soularium recipe (Requires Tritium!)
event.recipes.gtceu.electric_blast_furnace("kubejs:dark_soularium_ingot")
.itemInputs("#forge:ingots/soularium", "#forge:ingots/dark_steel")
.inputFluids(Fluid.of("gtceu:tritium", 1000))
.itemOutputs("gtceu:dark_soularium_ingot")
.duration(1200) // 60 sec
.EUt(32000)
.blastFurnaceTemp(8600)
// Thermal Expansion ABS recipe fixes
/**
* @param {RegExp | string} recipeMatcherID
* @param {import("../../dx/typings/GTJSONRecipe.mjs").GTJSONRecipeItemIngredient[]} ingredients
*/
function addInputItems(recipeMatcherID, ingredients) {
/** @type {import("../../dx/typings/GTJSONRecipe.mjs").GTJSONRecipe["inputs"]["item"]} */
let itemEntries = ingredients.map(ingredient => ({
chance: 10000,
maxChance: 10000,
tierChanceBoost: 0,
content: {
type: "gtceu:sized",
count: ingredient.count,
ingredient: ingredient
}
}))
itemEntries = JSON.parse(JSON.stringify(itemEntries))
event.forEachRecipe({ id: recipeMatcherID }, recipe => {
recipe.json.getAsJsonObject("inputs").getAsJsonArray("item").addAll(itemEntries)
})
}
addInputItems(/^gtceu:alloy_blast_smelter\/signalum/, [{item: "kubejs:destabilized_clathrate", count: 1}])
addInputItems(/^gtceu:alloy_blast_smelter\/lumium/, [{item: "extendedcrafting:luminessence", count: 2}, {item: "kubejs:energized_clathrate", count: 1}])
addInputItems(/^gtceu:alloy_blast_smelter\/enderium/, [{item: "kubejs:resonant_clathrate", count: 1}])
})

View file

@ -0,0 +1,98 @@
/**
* Crystal Matrix processing line
*/
ServerEvents.recipes(event => {
// Acetylene
event.recipes.gtceu.electric_blast_furnace("calcium_carbide")
.itemInputs("2x gtceu:quicklime_dust", "3x gtceu:carbon_dust")
.itemOutputs("3x gtceu:calcium_carbide_dust")
.outputFluids("gtceu:carbon_monoxide 1000")
.duration(100)
.EUt(GTValues.VA[GTValues.IV])
.blastFurnaceTemp(5400)
event.recipes.gtceu.autoclave("hydroxide_to_quicklime")
.itemInputs("3x gtceu:calcium_hydroxide_dust")
.itemOutputs("2x gtceu:quicklime_dust")
.outputFluids("minecraft:water 1000")
.duration(100)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.large_chemical_reactor("acetylene")
.itemInputs("3x gtceu:calcium_carbide_dust")
.itemOutputs("3x gtceu:calcium_hydroxide_dust")
.inputFluids("minecraft:water 2000")
.outputFluids("gtceu:acetylene 1000")
.duration(100)
.EUt(GTValues.VA[GTValues.IV])
// Crystal Matrix Line
const wafers = [
["gtceu:", "naquadah_wafer"],
["gtceu:", "neutronium_wafer"],
["kubejs:", "universe_wafer"]
]
wafers.forEach((wafer, index) => {
event.recipes.gtceu.assembler(`raw_substrate_${wafer[1]}`)
.itemInputs(wafer[0] + wafer[1], "4x gtceu:carbon_fibers", "4x gtceu:gold_foil", "4x gtceu:graphene_dust", "64x gtceu:diamond_dust")
.itemOutputs(Item.of("kubejs:raw_nanotube_substrate", 4 ** (index + 1)))
.inputFluids("gtceu:neon 10")
.duration(320)
.EUt((4 ** index) * GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.CLEANROOM)
})
event.recipes.gtceu.atomic_reconstruction("nanoparticle_reconstruction")
.itemInputs("gtceu:cobalt_dust")
.itemOutputs("kubejs:cobalt_nanoparticles")
.duration(40)
.EUt(GTValues.VA[GTValues.LuV])
event.recipes.gtceu.autoclave("substrate_preparation")
.itemInputs("4x kubejs:raw_nanotube_substrate", "kubejs:cobalt_nanoparticles")
.itemOutputs("4x kubejs:prepared_nanotube_substrate")
.inputFluids("gtceu:distilled_water 100")
.duration(40)
.EUt(GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.arc_furnace("nanotube_growing")
.itemInputs("kubejs:prepared_nanotube_substrate")
.itemOutputs("kubejs:grown_nanotube_substrate")
.inputFluids("gtceu:acetylene 500")
.duration(120)
.EUt(GTValues.VA[GTValues.LuV])
event.recipes.gtceu.laser_engraver("nanotube_separation")
.notConsumable("#forge:lenses/red")
.itemInputs("kubejs:grown_nanotube_substrate")
.itemOutputs("kubejs:carbon_nanotubes")
.duration(120)
.EUt(GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.chemical_bath("nanotube_bathing")
.itemInputs("kubejs:carbon_nanotubes")
.itemOutputs("kubejs:porous_matrix_mesh")
.inputFluids("gtceu:nether_star 144")
.duration(120)
.EUt(GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.CLEANROOM)
event.recipes.gtceu.compressor("mesh_compression")
.itemInputs("kubejs:porous_matrix_mesh")
.itemOutputs("kubejs:dense_matrix_mesh")
.duration(120)
.EUt(GTValues.VA[GTValues.LuV])
event.recipes.gtceu.electric_blast_furnace("matrix_blasting")
.itemInputs("kubejs:dense_matrix_mesh")
.itemOutputs("gtceu:hot_crystal_matrix_ingot")
.inputFluids("gtceu:krypton 10")
.duration(1000)
.EUt(GTValues.VA[GTValues.ZPM])
.blastFurnaceTemp(6800)
})

View file

@ -0,0 +1,126 @@
/**
* PECA processing line
*/
ServerEvents.recipes(event => {
event.recipes.gtceu.chemical_reactor("sodium_cyanide")
.inputFluids("gtceu:hydrogen_cyanide 1000")
.itemInputs("gtceu:sodium_hydroxide_dust")
.outputFluids("minecraft:water 1000")
.itemOutputs("gtceu:sodium_cyanide_dust")
.duration(50)
.EUt(GTValues.VHA[GTValues.HV])
event.recipes.gtceu.chemical_reactor("chloroacetic_mixture")
.notConsumableFluid("gtceu:acetic_anhydride 500")
.inputFluids("gtceu:acetic_acid 1000", "gtceu:chlorine 3000")
.outputFluids("gtceu:chloroacetic_mixture 1000")
.duration(20)
.EUt(GTValues.VA[GTValues.ZPM])
event.recipes.gtceu.distillation_tower("chloroacetate_distillation")
.inputFluids("gtceu:chloroacetic_mixture 2000")
.itemOutputs("gtceu:small_chloroacetate_dust")
.outputFluids("gtceu:dichloroacetate 500", "gtceu:trichloroacetate 250", "gtceu:hydrochloric_acid 1000")
.duration(200)
.EUt(GTValues.VHA[GTValues.IV])
event.recipes.gtceu.large_chemical_reactor("cyanoacetic_acid")
.itemInputs("gtceu:chloroacetate_dust", "gtceu:sodium_cyanide_dust")
.inputFluids("gtceu:hydrochloric_acid 1000", "gtceu:oxygen 500")
.itemOutputs("gtceu:cyanoacetic_acid_dust", "gtceu:sodium_hydroxide_dust")
.outputFluids("gtceu:chlorine 2000")
.duration(600)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.chemical_reactor("ethyl_cyanoacetate")
.notConsumableFluid("gtceu:fluoroantimonic_acid 2000")
.inputFluids("gtceu:ethanol 1000")
.itemInputs("gtceu:cyanoacetic_acid_dust")
.outputFluids("gtceu:ethyl_cyanoacetate 1000", "minecraft:water 1000")
.duration(360)
.EUt(GTValues.VA[GTValues.LuV])
event.recipes.gtceu.chemical_reactor("uncracked_ethyl_cyanoacrylate")
.inputFluids("gtceu:ethyl_cyanoacetate 1000", "gtceu:formaldehyde 1000")
.outputFluids("gtceu:uncracked_ethyl_cyanoacrylate 1000", "minecraft:water 1000")
.duration(800)
.EUt(GTValues.VA[GTValues.HV])
// Cracking recipes - CR
event.recipes.gtceu.chemical_reactor("ethyl_cyanoacrylate_hydro")
.inputFluids("gtceu:uncracked_ethyl_cyanoacrylate 500", "gtceu:hydrogen 3000")
.outputFluids("gtceu:ethyl_cyanoacrylate 250")
.duration(160)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.chemical_reactor("ethyl_cyanoacrylate_steam")
.inputFluids("gtceu:uncracked_ethyl_cyanoacrylate 1000", "gtceu:steam 1000")
.outputFluids("gtceu:ethyl_cyanoacrylate 500")
.duration(240)
.EUt(GTValues.VA[GTValues.LV])
// Cracking recipes - Cracker
event.recipes.gtceu.cracker("ethyl_cyanoacrylate_hydro")
.inputFluids("gtceu:uncracked_ethyl_cyanoacrylate 1000", "gtceu:hydrogen 6000")
.outputFluids("gtceu:ethyl_cyanoacrylate 1000")
.duration(160)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.cracker("ethyl_cyanoacrylate_steam")
.inputFluids("gtceu:uncracked_ethyl_cyanoacrylate 1000", "gtceu:steam 1000")
.outputFluids("gtceu:ethyl_cyanoacrylate 1000")
.duration(240)
.EUt(GTValues.VA[GTValues.HV])
// Polymerization recipe
event.recipes.gtceu.chemical_reactor("polyethyl_cyanoacrylate")
.chancedFluidInput("gtceu:dimethyl_sulfoxide 200", 200, -40)
.inputFluids("gtceu:ethyl_cyanoacrylate 144", "minecraft:water 1000")
.itemOutputs("gtceu:polyethyl_cyanoacrylate_dust")
.duration(300)
.EUt(GTValues.VA[GTValues.LuV])
// Polymerization recipe with distilled water
event.recipes.gtceu.chemical_reactor("polyethyl_cyanoacrylate_distilled")
.chancedFluidInput("gtceu:dimethyl_sulfoxide 200", 200, -40)
.inputFluids("gtceu:ethyl_cyanoacrylate 96", "gtceu:distilled_water 1000")
.itemOutputs("gtceu:polyethyl_cyanoacrylate_dust")
.duration(300)
.EUt(GTValues.VA[GTValues.LuV])
// Dimethyl sulfoxide (catalyst) chain below
event.recipes.gtceu.chemical_reactor("dimethyl_sulfoxide")
.inputFluids("gtceu:dimethyl_sulfide 1000", "gtceu:nitrogen_dioxide 1000")
.outputFluids("gtceu:dimethyl_sulfoxide 1000", "gtceu:nitric_oxide 1000")
.duration(1000)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.chemical_reactor("dimethyl_sulfide")
.notConsumable("gtceu:aluminium_dust")
.inputFluids("gtceu:hydrogen_sulfide 1000", "gtceu:methanol 2000")
.outputFluids("gtceu:dimethyl_sulfide 1000", "minecraft:water 2000")
.duration(500)
.EUt(GTValues.VHA[GTValues.LuV])
// Uses for PECA with higher efficiency than PBI
event.recipes.gtceu.bender("fluid_cell_peca")
.itemInputs("gtceu:polyethyl_cyanoacrylate_plate")
.itemOutputs("32x gtceu:fluid_cell")
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
.circuit(12)
event.recipes.gtceu.chemical_reactor("plastic_board_peca")
.itemInputs("gtceu:polyethyl_cyanoacrylate_plate", "4x gtceu:copper_foil")
.inputFluids("gtceu:sulfuric_acid 250")
.itemOutputs("16x gtceu:plastic_circuit_board")
.duration(500)
.EUt(10)
event.recipes.gtceu.assembler("duct_tape_peca")
.itemInputs("gtceu:polyethyl_cyanoacrylate_foil", "gtceu:carbon_fiber_mesh")
.inputFluids("gtceu:polyethylene 36")
.itemOutputs("32x gtceu:duct_tape")
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
})

View file

@ -0,0 +1,540 @@
/**
* Recipes for post-UV GT components
*/
ServerEvents.recipes(event => {
const converter = [
["uev", "omnium", "activated_netherite", "1966080"],
["uiv", "holmium", "holmium", "3932160"],
["max", "monium", "monium", "80000000"],
]
const transformer = [
["uhv", "europium", "omnium"],
["uev", "omnium", "holmium"],
["uiv", "holmium", "monium"],
]
converter.forEach(([tier, mat1, mat2, eut]) => {
event.remove({ output: [`gtceu:${tier}_1a_energy_converter`, `gtceu:${tier}_4a_energy_converter`, `gtceu:${tier}_8a_energy_converter`, `gtceu:${tier}_16a_energy_converter`] })
event.shaped(Item.of(`gtceu:${tier}_1a_energy_converter`), [
" BB",
"AHC",
" BB"
], {
A: "gtceu:red_alloy_single_wire",
B: `gtceu:${mat2}_single_wire`,
H: `gtceu:${tier}_machine_hull`,
C: `#gtceu:circuits/${tier}`
})
event.shaped(Item.of(`gtceu:${tier}_4a_energy_converter`), [
" BB",
"AHC",
" BB"
], {
A: "gtceu:red_alloy_quadruple_wire",
B: `gtceu:${mat2}_quadruple_wire`,
H: `gtceu:${tier}_machine_hull`,
C: `#gtceu:circuits/${tier}`
})
event.shaped(Item.of(`gtceu:${tier}_8a_energy_converter`), [
" BB",
"AHC",
" BB"
], {
A: "gtceu:red_alloy_octal_wire",
B: `gtceu:${mat2}_octal_wire`,
H: `gtceu:${tier}_machine_hull`,
C: `#gtceu:circuits/${tier}`
})
event.shaped(Item.of(`gtceu:${tier}_16a_energy_converter`), [
" BB",
"AHC",
" BB"
], {
A: "gtceu:red_alloy_hex_wire",
B: `gtceu:${mat2}_hex_wire`,
H: `gtceu:${tier}_machine_hull`,
C: `#gtceu:circuits/${tier}`
})
event.recipes.gtceu.assembly_line(`gtceu:${tier}_energy_output_hatch`)
.itemInputs(`gtceu:${tier}_machine_hull`, `4x gtceu:${mat2}_spring`, "2x kubejs:uxpic_chip", `#gtceu:circuits/${tier}`, `2x gtceu:${mat1}_double_wire`)
.itemOutputs(`gtceu:${tier}_energy_output_hatch`)
.inputFluids("gtceu:crystal_matrix 11520", "gtceu:soldering_alloy 5760")
.duration(1000)
.EUt(eut)
event.recipes.gtceu.assembly_line(`gtceu:${tier}_energy_input_hatch`)
.itemInputs(`gtceu:${tier}_machine_hull`, `4x gtceu:${mat2}_single_wire`, "16x kubejs:uxpic_chip", `#gtceu:circuits/${tier}`, `2x gtceu:${mat2}_double_wire`)
.itemOutputs(`gtceu:${tier}_energy_input_hatch`)
.inputFluids("gtceu:sodium_potassium 12000", "gtceu:omnium 1152", "gtceu:soldering_alloy 576")
.duration(100)
.EUt(eut)
})
transformer.forEach(([tier, mat1, mat2]) => {
event.shaped(Item.of(`gtceu:${tier}_transformer_1a`), [
"WBB",
"AH ",
"WBB"
], {
A: `gtceu:${mat1}_single_wire`,
B: `gtceu:${mat2}_single_wire`,
H: `gtceu:${tier}_machine_hull`,
W: "kubejs:uxpic_chip"
})
event.shaped(Item.of(`gtceu:${tier}_transformer_2a`), [
"WBB",
"AH ",
"WBB"
], {
A: `gtceu:${mat1}_double_wire`,
B: `gtceu:${mat2}_double_wire`,
H: `gtceu:${tier}_machine_hull`,
W: "kubejs:uxpic_chip"
})
event.shaped(Item.of(`gtceu:${tier}_transformer_4a`), [
"WBB",
"AH ",
"WBB"
], {
A: `gtceu:${mat1}_quadruple_wire`,
B: `gtceu:${mat2}_quadruple_wire`,
H: `gtceu:${tier}_machine_hull`,
W: "kubejs:uxpic_chip"
})
event.shaped(Item.of(`gtceu:${tier}_transformer_16a`), [
"WBB",
"AH ",
"WBB"
], {
A: `gtceu:${mat1}_hex_wire`,
B: `gtceu:${mat2}_hex_wire`,
H: `gtceu:${tier}_machine_hull`,
W: "gtceu:uhpic_chip"
})
})
// UHV hulls have missing crafting table recipe
event.shaped("gtceu:uhv_machine_hull", [
"PMP",
"WCW"
], {
P: "gtceu:polybenzimidazole_plate",
M: "gtceu:neutronium_plate",
W: "gtceu:europium_single_cable",
C: "gtceu:uhv_machine_casing"
}).id("gtceu:shaped/hull_uhv")
const hullMaterials = [
{tier: "uev", material: "omnium", wire: "omnium_single_cable", plastic: "polyethyl_cyanoacrylate"},
{tier: "uiv", material: "infinity", wire: "holmium_single_wire", plastic: "polyethyl_cyanoacrylate"},
{tier: "max", material: "monium", wire: "monium_single_wire", plastic: "polyethyl_cyanoacrylate"},
]
hullMaterials.forEach((value) => {
event.shaped(`gtceu:${value.tier}_machine_casing`, [
"PPP",
"PWP",
"PPP"
], {
P: `gtceu:${value.material}_plate`,
W: "#forge:tools/wrenches"
}).id(`shaped/casing_${value.tier}`)
event.recipes.gtceu.assembler(`casing_${value.tier}`)
.itemInputs(`8x gtceu:${value.material}_plate`)
.itemOutputs(`gtceu:${value.tier}_machine_casing`)
.circuit(8)
.duration(50)
.EUt(GTValues.VHA[GTValues.LV])
event.shaped(`gtceu:${value.tier}_machine_hull`, [
"PMP",
"WCW"
], {
P: `gtceu:${value.plastic}_plate`,
M: `gtceu:${value.material}_plate`,
W: `gtceu:${value.wire}`,
C: `gtceu:${value.tier}_machine_casing`
}).id(`shaped/hull_${value.tier}`)
event.recipes.gtceu.assembler(`hull_${value.tier}`)
.itemInputs(`gtceu:${value.tier}_machine_casing`, `2x gtceu:${value.wire}`, `2x gtceu:${value.plastic}_plate`)
.itemOutputs(`gtceu:${value.tier}_machine_hull`)
.duration(50)
.EUt(GTValues.VHA[GTValues.LV])
})
const rotorHolderMaterials = [
{tier:"uhv", large_gear:"actinium", small_gear:"neutronium"},
{tier:"uev", large_gear:"sculk_bioalloy", small_gear:"omnium"},
{tier:"uiv", large_gear:"eltz", small_gear:"infinity"}
]
rotorHolderMaterials.forEach((value) => {
event.shaped(`gtceu:${value.tier}_rotor_holder`, [
"SLS",
"LHL",
"SLS"
], {
S: `gtceu:small_${value.small_gear}_gear`,
L: `gtceu:${value.large_gear}_gear`,
H: `gtceu:${value.tier}_machine_hull`
}).id(`shaped/rotor_holder_${value.tier}`)
})
// Motors
event.recipes.gtceu.assembly_line("uhv_motor")
.itemInputs("gtceu:long_magnetic_terbium_rod", "8x gtceu:long_actinium_rod", "8x gtceu:actinium_ring", "16x gtceu:actinium_round", "64x gtceu:fine_ruthenium_trinium_americium_neutronate_wire", "64x gtceu:fine_ruthenium_trinium_americium_neutronate_wire", "32x gtceu:fine_ruthenium_trinium_americium_neutronate_wire", "2x gtceu:europium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:lubricant 2000", "gtceu:crystal_matrix 1152", "gtceu:naquadria 576")
.itemOutputs("gtceu:uhv_electric_motor")
.duration(600)
.EUt(491520)
.stationResearch(b => b
.researchStack("gtceu:uv_electric_motor")
.CWUt(96, 384000)
.EUt(368640)
)
event.recipes.gtceu.assembly_line("uev_motor")
.itemInputs("gtceu:long_magnetic_terbium_rod", "8x gtceu:long_sculk_bioalloy_rod", "8x gtceu:sculk_bioalloy_ring", "16x gtceu:sculk_bioalloy_round", "64x gtceu:fine_activated_netherite_wire", "64x gtceu:fine_activated_netherite_wire", "48x gtceu:fine_activated_netherite_wire", "2x gtceu:omnium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:lubricant 3000", "gtceu:crystal_matrix 5760", "gtceu:naquadria 1152")
.itemOutputs("gtceu:uev_electric_motor")
.duration(600)
.EUt(1966080)
.stationResearch(b => b
.researchStack("gtceu:uhv_electric_motor")
.CWUt(128, 512000)
.EUt(524288)
)
event.recipes.gtceu.assembly_line("uiv_motor")
.itemInputs("gtceu:long_magnetic_terbium_rod", "12x gtceu:long_eltz_rod", "12x gtceu:eltz_ring", "24x gtceu:eltz_round", "64x gtceu:fine_holmium_wire", "64x gtceu:fine_holmium_wire", "64x gtceu:fine_holmium_wire", "2x gtceu:holmium_single_wire")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:lubricant 4000", "gtceu:crystal_matrix 5760", "gtceu:naquadria 2304")
.itemOutputs("gtceu:uiv_electric_motor")
.duration(1200)
.EUt(3932160)
.stationResearch(b => b
.researchStack("gtceu:uev_electric_motor")
.CWUt(144, 576000)
.EUt(1048576)
)
// Pistons
event.recipes.gtceu.assembly_line("uhv_piston")
.itemInputs("gtceu:uhv_electric_motor", "4x gtceu:actinium_plate", "4x gtceu:actinium_ring", "16x gtceu:actinium_round", "4x gtceu:actinium_rod", "gtceu:actinium_gear", "2x gtceu:small_actinium_gear", "2x gtceu:europium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:lubricant 2000", "gtceu:crystal_matrix 1152", "gtceu:naquadria 576")
.itemOutputs("gtceu:uhv_electric_piston")
.duration(600)
.EUt(491520)
.stationResearch(b => b
.researchStack("gtceu:uv_electric_piston")
.CWUt(96, 384000)
.EUt(368640)
)
event.recipes.gtceu.assembly_line("uev_piston")
.itemInputs("gtceu:uev_electric_motor", "4x gtceu:sculk_bioalloy_plate", "4x gtceu:sculk_bioalloy_ring", "16x gtceu:sculk_bioalloy_round", "4x gtceu:sculk_bioalloy_rod", "gtceu:sculk_bioalloy_gear", "2x gtceu:small_sculk_bioalloy_gear", "2x gtceu:omnium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:lubricant 3000", "gtceu:crystal_matrix 5760", "gtceu:naquadria 1152")
.itemOutputs("gtceu:uev_electric_piston")
.duration(600)
.EUt(1966080)
.stationResearch(b => b
.researchStack("gtceu:uhv_electric_piston")
.CWUt(128, 512000)
.EUt(524288)
)
event.recipes.gtceu.assembly_line("uiv_piston")
.itemInputs("gtceu:uiv_electric_motor", "4x gtceu:eltz_plate", "4x gtceu:eltz_ring", "16x gtceu:eltz_round", "4x gtceu:eltz_rod", "gtceu:eltz_gear", "2x gtceu:small_eltz_gear", "2x gtceu:holmium_single_wire")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:lubricant 4000", "gtceu:crystal_matrix 5760", "gtceu:naquadria 2304")
.itemOutputs("gtceu:uiv_electric_piston")
.duration(1200)
.EUt(3932160)
.stationResearch(b => b
.researchStack("gtceu:uev_electric_piston")
.CWUt(144, 576000)
.EUt(1048576)
)
// Robot Arms
event.recipes.gtceu.assembly_line("uhv_robot_arm")
.itemInputs("4x gtceu:long_actinium_rod", "gtceu:actinium_gear", "3x gtceu:small_actinium_gear", "3x gtceu:uhv_electric_motor", "gtceu:uhv_electric_piston", "#gtceu:circuits/uhv", "2x #gtceu:circuits/uv", "4x #gtceu:circuits/zpm", "4x gtceu:europium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:lubricant 2000", "gtceu:crystal_matrix 1152", "gtceu:naquadria 576")
.itemOutputs("gtceu:uhv_robot_arm")
.duration(600)
.EUt(491520)
.stationResearch(b => b
.researchStack("gtceu:uv_robot_arm")
.CWUt(96, 384000)
.EUt(368640)
)
event.recipes.gtceu.assembly_line("uev_robot_arm")
.itemInputs("4x gtceu:long_sculk_bioalloy_rod", "gtceu:sculk_bioalloy_gear", "3x gtceu:small_sculk_bioalloy_gear", "3x gtceu:uev_electric_motor", "gtceu:uev_electric_piston", "#gtceu:circuits/uev", "2x #gtceu:circuits/uhv", "4x #gtceu:circuits/uv", "4x gtceu:omnium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:lubricant 3000", "gtceu:crystal_matrix 5760", "gtceu:naquadria 1152")
.itemOutputs("gtceu:uev_robot_arm")
.duration(600)
.EUt(1966080)
.stationResearch(b => b
.researchStack("gtceu:uhv_robot_arm")
.CWUt(128, 512000)
.EUt(524288)
)
event.recipes.gtceu.assembly_line("uiv_robot_arm")
.itemInputs("4x gtceu:long_eltz_rod", "gtceu:eltz_gear", "3x gtceu:small_eltz_gear", "3x gtceu:uiv_electric_motor", "gtceu:uiv_electric_piston", "#gtceu:circuits/uiv", "2x #gtceu:circuits/uev", "4x #gtceu:circuits/uhv", "4x gtceu:holmium_single_wire")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:lubricant 4000", "gtceu:crystal_matrix 5760", "gtceu:naquadria 2304")
.itemOutputs("gtceu:uiv_robot_arm")
.duration(1200)
.EUt(3932160)
.stationResearch(b => b
.researchStack("gtceu:uev_robot_arm")
.CWUt(144, 576000)
.EUt(1048576)
)
// Sensors
event.recipes.gtceu.assembly_line("uhv_sensor")
.itemInputs("gtceu:neutronium_frame", "gtceu:uhv_electric_motor", "4x gtceu:actinium_plate", "2x gtceu:gravi_star", "#gtceu:circuits/uhv", "64x gtceu:crystal_matrix_foil", "32x gtceu:crystal_matrix_foil", "4x gtceu:europium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:crystal_matrix 1152", "gtceu:naquadria 576")
.itemOutputs("gtceu:uhv_sensor")
.duration(600)
.EUt(491520)
.stationResearch(b => b
.researchStack("gtceu:uv_sensor")
.CWUt(96, 384000)
.EUt(368640)
)
event.recipes.gtceu.assembly_line("uev_sensor")
.itemInputs("gtceu:omnium_frame", "gtceu:uev_electric_motor", "4x gtceu:sculk_bioalloy_plate", "kubejs:quasi_stable_neutron_star", "#gtceu:circuits/uev", "64x gtceu:crystal_matrix_foil", "32x gtceu:crystal_matrix_foil", "4x gtceu:omnium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:crystal_matrix 5760", "gtceu:naquadria 1152")
.itemOutputs("gtceu:uev_sensor")
.duration(600)
.EUt(1966080)
.stationResearch(b => b
.researchStack("gtceu:uhv_sensor")
.CWUt(128, 512000)
.EUt(524288)
)
event.recipes.gtceu.assembly_line("uiv_sensor")
.itemInputs("gtceu:infinity_frame", "gtceu:uiv_electric_motor", "4x gtceu:eltz_plate", "2x kubejs:quasi_stable_neutron_star", "#gtceu:circuits/uiv", "64x gtceu:crystal_matrix_foil", "32x gtceu:crystal_matrix_foil", "4x gtceu:holmium_single_wire")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:crystal_matrix 5760", "gtceu:naquadria 2304")
.itemOutputs("gtceu:uiv_sensor")
.duration(1200)
.EUt(3932160)
.stationResearch(b => b
.researchStack("gtceu:uev_sensor")
.CWUt(144, 576000)
.EUt(1048576)
)
// Emitters
event.recipes.gtceu.assembly_line("uhv_emitter")
.itemInputs("gtceu:neutronium_frame", "gtceu:uhv_electric_motor", "4x gtceu:long_actinium_rod", "2x gtceu:gravi_star", "#gtceu:circuits/uhv", "64x gtceu:crystal_matrix_foil", "32x gtceu:crystal_matrix_foil", "4x gtceu:europium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:crystal_matrix 1152", "gtceu:naquadria 576")
.itemOutputs("gtceu:uhv_emitter")
.duration(600)
.EUt(491520)
.stationResearch(b => b
.researchStack("gtceu:uv_emitter")
.CWUt(96, 384000)
.EUt(368640)
)
event.recipes.gtceu.assembly_line("uev_emitter")
.itemInputs("gtceu:omnium_frame", "gtceu:uev_electric_motor", "4x gtceu:long_sculk_bioalloy_rod", "kubejs:quasi_stable_neutron_star", "#gtceu:circuits/uev", "64x gtceu:crystal_matrix_foil", "32x gtceu:crystal_matrix_foil", "4x gtceu:omnium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:crystal_matrix 5760", "gtceu:naquadria 1152")
.itemOutputs("gtceu:uev_emitter")
.duration(600)
.EUt(1966080)
.stationResearch(b => b
.researchStack("gtceu:uhv_emitter")
.CWUt(128, 512000)
.EUt(524288)
)
event.recipes.gtceu.assembly_line("uiv_emitter")
.itemInputs("gtceu:infinity_frame", "gtceu:uiv_electric_motor", "4x gtceu:long_eltz_rod", "2x kubejs:quasi_stable_neutron_star", "#gtceu:circuits/uiv", "64x gtceu:crystal_matrix_foil", "32x gtceu:crystal_matrix_foil", "4x gtceu:holmium_single_wire")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:crystal_matrix 5760", "gtceu:naquadria 2304")
.itemOutputs("gtceu:uiv_emitter")
.duration(1200)
.EUt(3932160)
.stationResearch(b => b
.researchStack("gtceu:uev_emitter")
.CWUt(144, 576000)
.EUt(1048576)
)
// Field Generators
event.recipes.gtceu.assembly_line("uhv_field_generator")
.itemInputs("gtceu:neutronium_frame", "6x gtceu:actinium_plate", "2x gtceu:gravi_star", "2x gtceu:uhv_emitter", "2x #gtceu:circuits/uhv", "64x gtceu:fine_ruthenium_trinium_americium_neutronate_wire", "64x gtceu:fine_ruthenium_trinium_americium_neutronate_wire", "4x gtceu:europium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:crystal_matrix 1152", "gtceu:naquadria 576")
.itemOutputs("gtceu:uhv_field_generator")
.duration(600)
.EUt(491520)
.stationResearch(b => b
.researchStack("gtceu:uv_field_generator")
.CWUt(96, 384000)
.EUt(368640)
)
event.recipes.gtceu.assembly_line("uev_field_generator")
.itemInputs("gtceu:omnium_frame", "6x gtceu:sculk_bioalloy_plate", "kubejs:quasi_stable_neutron_star", "2x gtceu:uev_emitter", "2x #gtceu:circuits/uev", "64x gtceu:fine_activated_netherite_wire", "64x gtceu:fine_activated_netherite_wire", "4x gtceu:omnium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:crystal_matrix 5760", "gtceu:naquadria 1152")
.itemOutputs("gtceu:uev_field_generator")
.duration(600)
.EUt(1966080)
.stationResearch(b => b
.researchStack("gtceu:uhv_field_generator")
.CWUt(128, 512000)
.EUt(524288)
)
event.recipes.gtceu.assembly_line("uiv_field_generator")
.itemInputs("gtceu:infinity_frame", "6x gtceu:eltz_plate", "2x kubejs:quasi_stable_neutron_star", "2x gtceu:uiv_emitter", "2x #gtceu:circuits/uiv", "64x gtceu:fine_holmium_wire", "64x gtceu:fine_holmium_wire", "4x gtceu:holmium_single_wire")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:crystal_matrix 5760", "gtceu:naquadria 2304")
.itemOutputs("gtceu:uiv_field_generator")
.duration(1200)
.EUt(3932160)
.stationResearch(b => b
.researchStack("gtceu:uev_field_generator")
.CWUt(144, 576000)
.EUt(1048576)
)
// Conveyors
event.recipes.gtceu.assembly_line("uhv_conveyor")
.itemInputs("2x gtceu:uhv_electric_motor", "2x gtceu:actinium_plate", "4x gtceu:actinium_ring", "16x gtceu:actinium_round", "4x gtceu:actinium_screw", "2x gtceu:europium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:lubricant 2000", "gtceu:styrene_butadiene_rubber 5760", "gtceu:naquadria 576")
.itemOutputs("gtceu:uhv_conveyor_module")
.duration(600)
.EUt(491520)
.stationResearch(b => b
.researchStack("gtceu:uv_conveyor_module")
.CWUt(96, 384000)
.EUt(368640)
)
event.recipes.gtceu.assembly_line("uev_conveyor")
.itemInputs("2x gtceu:uev_electric_motor", "2x gtceu:sculk_bioalloy_plate", "4x gtceu:sculk_bioalloy_ring", "16x gtceu:sculk_bioalloy_round", "4x gtceu:sculk_bioalloy_screw", "2x gtceu:omnium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:lubricant 3000", "gtceu:styrene_butadiene_rubber 5760", "gtceu:naquadria 1152")
.itemOutputs("gtceu:uev_conveyor_module")
.duration(600)
.EUt(1966080)
.stationResearch(b => b
.researchStack("gtceu:uhv_conveyor_module")
.CWUt(128, 512000)
.EUt(524288)
)
event.recipes.gtceu.assembly_line("uiv_conveyor")
.itemInputs("2x gtceu:uiv_electric_motor", "2x gtceu:infinity_plate", "4x gtceu:eltz_ring", "16x gtceu:eltz_round", "4x gtceu:eltz_screw", "2x gtceu:holmium_single_wire")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:lubricant 4000", "gtceu:styrene_butadiene_rubber 5760", "gtceu:naquadria 2304")
.itemOutputs("gtceu:uiv_conveyor_module")
.duration(1200)
.EUt(3932160)
.stationResearch(b => b
.researchStack("gtceu:uev_conveyor_module")
.CWUt(144, 576000)
.EUt(1048576)
)
// Pumps
event.recipes.gtceu.assembly_line("uhv_pump")
.itemInputs("gtceu:uhv_electric_motor", "gtceu:neutronium_large_fluid_pipe", "2x gtceu:actinium_plate", "8x gtceu:actinium_screw", "16x gtceu:silicone_rubber_ring", "12x gtceu:actinium_ring", "gtceu:neutronium_rotor", "2x gtceu:europium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:lubricant 2000", "gtceu:crystal_matrix 1152", "gtceu:naquadria 576")
.itemOutputs("gtceu:uhv_electric_pump")
.duration(600)
.EUt(491520)
.stationResearch(b => b
.researchStack("gtceu:uv_electric_pump")
.CWUt(96, 384000)
.EUt(368640)
)
event.recipes.gtceu.assembly_line("uev_pump")
.itemInputs("gtceu:uev_electric_motor", "gtceu:activated_netherite_large_fluid_pipe", "2x gtceu:sculk_bioalloy_plate", "8x gtceu:sculk_bioalloy_screw", "16x gtceu:silicone_rubber_ring", "16x gtceu:sculk_bioalloy_ring", "gtceu:activated_netherite_rotor", "2x gtceu:omnium_single_cable")
.inputFluids("gtceu:soldering_alloy 5760", "gtceu:lubricant 3000", "gtceu:crystal_matrix 5760", "gtceu:naquadria 1152")
.itemOutputs("gtceu:uev_electric_pump")
.duration(600)
.EUt(1966080)
.stationResearch(b => b
.researchStack("gtceu:uhv_electric_pump")
.CWUt(128, 512000)
.EUt(524288)
)
event.recipes.gtceu.assembly_line("uiv_pump")
.itemInputs("gtceu:uiv_electric_motor", "gtceu:holmium_large_fluid_pipe", "2x gtceu:eltz_plate", "8x gtceu:eltz_screw", "16x gtceu:silicone_rubber_ring", "24x gtceu:eltz_ring", "gtceu:holmium_rotor", "2x gtceu:holmium_single_wire")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:lubricant 4000", "gtceu:crystal_matrix 5760", "gtceu:naquadria 2304")
.itemOutputs("gtceu:uiv_electric_pump")
.duration(1200)
.EUt(3932160)
.stationResearch(b => b
.researchStack("gtceu:uev_electric_pump")
.CWUt(144, 576000)
.EUt(1048576)
)
// Fluid Regulators
event.recipes.gtceu.assembler("uhv_fluid_regulator")
.itemInputs("gtceu:uhv_electric_pump", "2x #gtceu:circuits/uhv")
.circuit(1)
.itemOutputs("gtceu:uhv_fluid_regulator")
.duration(50)
.EUt(1966080)
event.recipes.gtceu.assembler("uev_fluid_regulator")
.itemInputs("gtceu:uev_electric_pump", "2x #gtceu:circuits/uev")
.circuit(1)
.itemOutputs("gtceu:uev_fluid_regulator")
.duration(50)
.EUt(3932160)
event.recipes.gtceu.assembler("uiv_fluid_regulator")
.itemInputs("gtceu:uiv_electric_pump", "2x #gtceu:circuits/uiv")
.circuit(1)
.itemOutputs("gtceu:uiv_fluid_regulator")
.duration(50)
.EUt(15728640)
})

View file

@ -0,0 +1,559 @@
/**
* Custom GT circuit recipes
*/
// Function for replacing items in circuit assembler recipes without changing the order
function replaceCircassItem(event, idRegex, tagOrItem, toReplace, replaceWith) {
// Get all GTCEu Circuit Assembler recipes with an ID matching the regex
event.forEachRecipe({ id: idRegex, type: "gtceu:circuit_assembler" }, circuit_recipe => {
// Get the JSON array object representing all of the item ingredients
let itemIngredients = circuit_recipe.json.getAsJsonObject("inputs").getAsJsonArray("item")
for (let i = 0; i < itemIngredients.size(); i++) {
// Item ingredient to alter
let curItemIngredient = itemIngredients.get(i).getAsJsonObject("content").getAsJsonObject("ingredient")
if (curItemIngredient.getAsJsonPrimitive(tagOrItem) != null && curItemIngredient.getAsJsonPrimitive(tagOrItem).asString == toReplace) {
// Change item ingredient if it does match
curItemIngredient.remove(tagOrItem)
curItemIngredient["addProperty(java.lang.String,java.lang.String)"](tagOrItem, replaceWith)
}
}
})
}
function replaceGTRecipeAmount(event, recipeType, idRegex, tagOrItem, toAlter, multiplier) {
// Get all GTCEu Circuit Assembler recipes with an ID matching the regex
event.forEachRecipe({ id: idRegex, type: recipeType }, circuit_recipe => {
// Get the JSON array object representing all of the item ingredients
let itemIngredients = circuit_recipe.json.getAsJsonObject("inputs").getAsJsonArray("item")
for (let i = 0; i < itemIngredients.size(); i++) {
// Item ingredient to alter
let curItemContent = itemIngredients.get(i).getAsJsonObject("content")
let curItemIngredient = curItemContent.getAsJsonObject("ingredient")
if (curItemIngredient.getAsJsonPrimitive(tagOrItem) != null && curItemIngredient.getAsJsonPrimitive(tagOrItem).asString == toAlter) {
// Change item ingredient if it does match
let prevCount = curItemContent.getAsJsonPrimitive("count").asInt
curItemContent.remove("count")
curItemContent["addProperty(java.lang.String,java.lang.Number)"]("count", prevCount * multiplier)
}
}
})
}
ServerEvents.recipes(event => {
// Replace some computer components with magical metals
replaceCircassItem(event, /workstation_ev/, "tag", "forge:bolts/blue_alloy", "forge:bolts/vibrant_alloy")
replaceCircassItem(event, /nano_computer_iv/, "tag", "forge:fine_wires/electrum", "forge:fine_wires/lumium")
replaceCircassItem(event, /crystal_computer_zpm/, "tag", "forge:fine_wires/niobium_titanium", "forge:fine_wires/enderium")
// Recipe categories seem to be separate when not using builders
replaceGTRecipeAmount(event, "gtceu:chemical_reactor", /wetware_circuit_board/, "tag", "forge:foils/niobium_titanium", 0.75)
replaceGTRecipeAmount(event, "gtceu:large_chemical_reactor", /wetware_circuit_board/, "tag", "forge:foils/niobium_titanium", 0.75)
// Complex SMDs
const smds = [
["transistor", "gtceu:enriched_naquadah_foil", "8x gtceu:fine_holmium_wire", 2],
["resistor", "gtceu:crystal_matrix_dust", "4x gtceu:fine_holmium_wire", 4],
["capacitor", "gtceu:polybenzimidazole_foil", "gtceu:holmium_foil", 1],
["diode", "gtceu:indium_gallium_phosphide_dust", "8x gtceu:fine_holmium_wire", 2],
["inductor", "gtceu:tritanium_ring", "4x gtceu:fine_holmium_wire", 2]
]
for (const [item, primary, secondary, foil_amount] of smds) {
event.recipes.gtceu.assembler(`complex_smd_${item}`)
// PECA foil is used since other electronic component recipes use fluid polymers
.itemInputs(primary, secondary, Item.of("gtceu:polyethyl_cyanoacrylate_foil", foil_amount))
.itemOutputs(`64x kubejs:complex_smd_${item}`)
.duration(160)
.EUt(245760)
}
for (const javaRecipe of event.findRecipes({ mod: "gtceu" })) {
/** @type {import("../../dx/typings/GTJSONRecipe.d.mts").GTJSONRecipe} */
let recipe = JSON.parse(javaRecipe.json.toString())
// Filter out non-GT-machine recipes
if(!recipe?.type.startsWith("gtceu:"))
continue
// Filter out non-item recipes
if (!(recipe.duration && recipe.inputs?.item && recipe.outputs))
continue
// Filter out recipes without advanced smd
if(!recipe.inputs.item.some(i =>
i.content.type === "gtceu:sized" &&
"item" in i.content.ingredient &&
i.content.ingredient.item.startsWith("gtceu:advanced_smd_")
)) continue
// Filter out recipes without eu
if(!recipe.tickInputs?.eu)
continue
let eut = recipe.tickInputs.eu[0].content
if(!eut)
continue
// Extract inputs and outputs data
let [newInputItems, newOutputItems] = [recipe.inputs.item, recipe.outputs?.item].map(items =>
items && items.map(i => {
let c = i.content
if (c.type !== "gtceu:sized" || "type" in c.ingredient)
throw new Error("Cannot generate complex SMD recipes")
let ing = c.ingredient
return {
id: "tag" in ing ? "#" + ing.tag : ing.item,
amount: c.count
}
})
)
let [newInputFluids, newOutputFluids] = [recipe.inputs.fluid, recipe.outputs?.fluid].map(items =>
items && items.map(i => {
let c = i.content
let [val] = c.value
return {
id: "tag" in val ? "gtceu:" + val.tag.split(":")[1] : val.fluid,
amount: c.amount
}
})
)
let {duration, recipeConditions} = recipe
/** @param {number} by */
let multiplyRecipe = by => {
for(let matters of [newInputItems, newOutputItems, newInputFluids, newOutputFluids])
if(matters)
for(let matter of matters)
matter.amount *= by
}
/** @param {number} by */
let isRecipeDivisible = by =>
[newInputItems, newOutputItems, newInputFluids, newOutputFluids]
.filter(matters => matters)
.every(matters => matters.every(
matter => matter.amount % by === 0
))
multiplyRecipe(4)
// Replace all advanced smd by complex smd
for(let inp of newInputItems) {
let match = inp.id.match(/^gtceu:advanced(_smd_.*)$/)
if(!match) continue
inp.id = "kubejs:complex" + match[1]
inp.amount /= 4
}
// Divide recipe back as much as possible
while(isRecipeDivisible(2))
multiplyRecipe(0.5)
let [,machineName] = recipe.type.split(":")
let newRecipe = event.recipes.gtceu[machineName]("complex_smd_recipe_" + javaRecipe.hashCode())
if(newInputItems)
newRecipe = newRecipe.itemInputs.apply(newRecipe, newInputItems.map(i => `${i.amount}x ${i.id}`))
if(newInputFluids)
newRecipe = newRecipe.inputFluids.apply(newRecipe, newInputFluids.map(i => `${i.id} ${i.amount}`))
if(newOutputItems)
newRecipe = newRecipe.itemOutputs.apply(newRecipe, newOutputItems.map(i => `${i.amount}x ${i.id}`))
if(newOutputFluids)
newRecipe = newRecipe.outputFluids.apply(newRecipe, newOutputFluids.map(i => `${i.id} ${i.amount}`))
// Advanced smd recipes take twice as fast to make than simple smds,
// while the EU/t is unaffected. In total, EU is halved.
// Here we follow the convention:
newRecipe = newRecipe.EUt(eut).duration(duration / 2)
let cleanroomCondition = recipeConditions.find(cond => cond.type === "cleanroom")
if(cleanroomCondition)
newRecipe = newRecipe.cleanroom(CleanroomType[cleanroomCondition.cleanroom.toUpperCase()])
let researchCondition = recipeConditions.find(cond => cond.type === "research")
if(researchCondition) {
let research = researchCondition.research[0]
newRecipe = newRecipe.researchWithoutRecipe(research.researchId, research.dataItem.id)
}
}
// Wetware tweaks are more invasive than a 1-item swapout
// Wetware printed circuit board
event.remove({ output: "gtceu:wetware_printed_circuit_board" })
event.recipes.gtceu.large_chemical_reactor("kubejs:wetware_printed_circuit_board")
.itemInputs("gtceu:wetware_circuit_board", "24x minecraft:sculk_vein", "8x gtceu:stem_cells")
.inputFluids("gtceu:sodium_persulfate 3000", "gtceu:iron_iii_chloride 1500", "enderio:xp_juice 1000")
.itemOutputs("gtceu:wetware_printed_circuit_board")
.EUt(480)
.duration(1800)
.cleanroom(CleanroomType.CLEANROOM)
// NPU
event.remove({ output: "gtceu:neuro_processing_unit" })
event.recipes.gtceu.circuit_assembler("neuro_processing_unit")
.itemInputs("gtceu:wetware_printed_circuit_board", "4x gtceu:stem_cells", "8x gtceu:polybenzimidazole_small_fluid_pipe", "4x gtceu:enderium_plate", "16x gtceu:silicone_rubber_foil", "8x gtceu:hsse_bolt")
.inputFluids("gtceu:sterilized_growth_medium 100")
.itemOutputs("gtceu:neuro_processing_unit")
.cleanroom(CleanroomType.CLEANROOM)
.duration(600)
.EUt(80000)
// WIP: Matter Circuits
let plasticBoard;
if (doHarderRecipes) plasticBoard = "16x gtceu:kapton_k_plate"
else plasticBoard = "16x gtceu:polyethyl_cyanoacrylate_plate"
event.recipes.gtceu.circuit_assembler("matter_circuit_board")
.itemInputs(
plasticBoard,
"16x gtceu:omnium_plate",
"#gtceu:circuits/luv",
"gtceu:iv_emitter",
"2x gtceu:omnic_acid_dust",
"3x gtceu:flawless_monazite_gem"
)
.inputFluids("gtceu:distilled_water 500")
.itemOutputs("32x kubejs:matter_circuit_board")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1200)
.EUt(250000)
event.recipes.gtceu.large_chemical_reactor("matter_processing_unit")
.itemInputs("1x kubejs:matter_circuit_board", "10x gtceu:activated_netherite_foil", "6x gtceu:crystal_matrix_foil")
.inputFluids("gtceu:iron_iii_chloride 7500")
.itemOutputs("1x kubejs:matter_processing_unit")
.cleanroom(CleanroomType.CLEANROOM)
.duration(100)
.EUt(250000)
event.recipes.gtceu.circuit_assembler("matter_processor")
.itemInputs(
"kubejs:matter_processing_unit",
"2x kubejs:multidimensional_cpu_chip",
"10x gtceu:advanced_smd_resistor",
"10x gtceu:advanced_smd_capacitor",
"10x gtceu:advanced_smd_transistor",
"4x gtceu:fine_naquadria_wire"
)
.inputFluids("gtceu:soldering_alloy 144")
.itemOutputs("2x kubejs:matter_processor")
.cleanroom(CleanroomType.CLEANROOM)
.duration(10 * 20)
.EUt(250000)
event.recipes.gtceu.circuit_assembler("matter_processor_complex_smd")
.itemInputs(
"2x kubejs:matter_processing_unit",
"4x kubejs:multidimensional_cpu_chip",
"5x kubejs:complex_smd_resistor",
"5x kubejs:complex_smd_capacitor",
"5x kubejs:complex_smd_transistor",
"8x gtceu:fine_naquadria_wire"
)
.inputFluids("gtceu:soldering_alloy 288")
.itemOutputs("4x kubejs:matter_processor")
.cleanroom(CleanroomType.CLEANROOM)
.duration(10 * 20 / 2)
.EUt(250000)
event.recipes.gtceu.circuit_assembler("matter_processor_assembly")
.itemInputs("kubejs:matter_processing_unit",
"2x kubejs:matter_processor",
"8x gtceu:advanced_smd_inductor",
"8x gtceu:advanced_smd_capacitor",
"32x gtceu:ram_chip",
"16x gtceu:fine_europium_wire"
)
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs("2x kubejs:matter_processor_assembly")
.cleanroom(CleanroomType.CLEANROOM)
.duration(20 * 20)
.EUt(250000)
event.recipes.gtceu.circuit_assembler("matter_processor_assembly_complex_smd")
.itemInputs("kubejs:matter_processing_unit",
"2x kubejs:matter_processor",
"2x kubejs:complex_smd_inductor",
"2x kubejs:complex_smd_capacitor",
"32x gtceu:ram_chip",
"16x gtceu:fine_europium_wire"
)
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs("2x kubejs:matter_processor_assembly")
.cleanroom(CleanroomType.CLEANROOM)
.duration(20 * 20 / 2)
.EUt(250000)
event.recipes.gtceu.assembly_line("matter_processor_computer")
.itemInputs(
"kubejs:matter_processing_unit",
"2x kubejs:matter_processor_assembly",
"12x gtceu:advanced_smd_diode",
"24x gtceu:nor_memory_chip",
"8x kubejs:uxpic_chip",
"24x gtceu:fine_europium_wire",
"8x gtceu:polyethyl_cyanoacrylate_foil",
"4x gtceu:crystal_matrix_plate"
)
.inputFluids("gtceu:soldering_alloy 1152", "gtceu:omnium 144")
.itemOutputs("kubejs:matter_processor_computer")
.duration(20 * 20)
.EUt(250000)
event.recipes.gtceu.assembly_line("matter_processor_computer_complex_smd")
.itemInputs(
"kubejs:matter_processing_unit",
"2x kubejs:matter_processor_assembly",
"3x kubejs:complex_smd_diode",
"24x gtceu:nor_memory_chip",
"8x kubejs:uxpic_chip",
"24x gtceu:fine_europium_wire",
"8x gtceu:polyethyl_cyanoacrylate_foil",
"4x gtceu:crystal_matrix_plate"
)
.inputFluids("gtceu:soldering_alloy 1152", "gtceu:omnium 144")
.itemOutputs("kubejs:matter_processor_computer")
.duration(20 * 20 / 2)
.EUt(250000)
event.recipes.gtceu.assembly_line("matter_processor_mainframe")
.itemInputs("2x gtceu:activated_netherite_frame",
"2x kubejs:matter_processor_computer",
"32x gtceu:advanced_smd_diode",
"32x gtceu:advanced_smd_capacitor",
"32x gtceu:advanced_smd_transistor",
"32x gtceu:advanced_smd_resistor",
"32x gtceu:advanced_smd_inductor",
"32x gtceu:ram_chip",
"16x kubejs:multidimensional_cpu_chip",
"16x gtceu:ruthenium_trinium_americium_neutronate_double_wire",
"16x gtceu:polyethyl_cyanoacrylate_foil",
"8x gtceu:crystal_matrix_plate") // could replace with omnium frame
.inputFluids("gtceu:soldering_alloy 4320", "gtceu:omnium 288")
.itemOutputs("kubejs:matter_processor_mainframe")
.duration(2400)
.EUt(GTValues.VA[GTValues.UHV])
event.recipes.gtceu.assembly_line("matter_processor_mainframe_complex_smd")
.itemInputs("2x gtceu:activated_netherite_frame",
"2x kubejs:matter_processor_computer",
"8x kubejs:complex_smd_diode",
"8x kubejs:complex_smd_capacitor",
"8x kubejs:complex_smd_transistor",
"8x kubejs:complex_smd_resistor",
"8x kubejs:complex_smd_inductor",
"32x gtceu:ram_chip",
"16x kubejs:multidimensional_cpu_chip",
"16x gtceu:ruthenium_trinium_americium_neutronate_double_wire",
"16x gtceu:polyethyl_cyanoacrylate_foil",
"8x gtceu:crystal_matrix_plate") // could replace with omnium frame
.inputFluids("gtceu:soldering_alloy 4320", "gtceu:omnium 288")
.itemOutputs("kubejs:matter_processor_mainframe")
.duration(2400 / 2)
.EUt(GTValues.VA[GTValues.UHV])
// WIP: Dimensional Circuits
event.recipes.gtceu.circuit_assembler("dimensional_circuit_board")
.itemInputs(
"32x gtceu:polyethyl_cyanoacrylate_plate",
"4x gtceu:infinity_plate",
"#gtceu:circuits/zpm",
"gtceu:luv_sensor",
"3x kubejs:the_ultimate_material",
"2x gtceu:nether_star_lens"
)
.inputFluids("gtceu:omnium 288")
.itemOutputs("32x kubejs:dimensional_circuit_board")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1200)
.EUt(500000)
event.recipes.gtceu.large_chemical_reactor("dimensional_processing_unit")
.itemInputs("1x kubejs:dimensional_circuit_board", "12x gtceu:holmium_foil", "6x gtceu:activated_netherite_foil")
.inputFluids("gtceu:iron_iii_chloride 10000")
.itemOutputs("1x kubejs:dimensional_processing_unit")
.cleanroom(CleanroomType.CLEANROOM)
.duration(100)
.EUt(1966080)
event.recipes.gtceu.circuit_assembler("dimensional_processor")
.itemInputs(
"kubejs:dimensional_processing_unit",
"3x kubejs:multidimensional_cpu_chip",
"4x kubejs:complex_smd_resistor",
"4x kubejs:complex_smd_capacitor",
"4x kubejs:complex_smd_transistor",
"2x gtceu:fine_holmium_wire"
)
.inputFluids("gtceu:soldering_alloy 144")
.itemOutputs("2x kubejs:dimensional_processor")
.cleanroom(CleanroomType.CLEANROOM)
.duration(10 * 20)
.EUt(1966080)
event.recipes.gtceu.circuit_assembler("dimensional_processor_assembly")
.itemInputs(
"kubejs:dimensional_processing_unit",
"2x kubejs:dimensional_processor",
"4x kubejs:complex_smd_inductor",
"4x kubejs:complex_smd_capacitor",
"4x kubejs:hyperdynamic_ram_chip",
"16x gtceu:fine_activated_netherite_wire"
)
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs("2x kubejs:dimensional_processor_assembly")
.cleanroom(CleanroomType.CLEANROOM)
.duration(20 * 20)
.EUt(1966080)
event.recipes.gtceu.assembly_line("dimensional_processor_computer")
.itemInputs(
"kubejs:dimensional_processing_unit",
"2x kubejs:dimensional_processor_assembly",
"8x kubejs:complex_smd_diode",
"32x gtceu:nor_memory_chip",
"12x kubejs:multidimensional_cpu_chip",
"16x kubejs:hyperdynamic_ram_chip",
"16x kubejs:uxpic_chip",
"24x gtceu:fine_activated_netherite_wire",
"16x gtceu:polyethyl_cyanoacrylate_foil",
"4x gtceu:holmium_plate"
)
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs("kubejs:dimensional_processor_computer")
.duration(20 * 20)
.EUt(1966080)
event.recipes.gtceu.assembly_line("dimensional_processor_mainframe")
.itemInputs(
"2x gtceu:infinity_frame",
"2x kubejs:dimensional_processor_computer",
"32x kubejs:complex_smd_diode",
"32x kubejs:complex_smd_capacitor",
"32x kubejs:complex_smd_transistor",
"32x kubejs:complex_smd_resistor",
"32x kubejs:complex_smd_inductor",
"32x gtceu:nand_memory_chip",
"24x kubejs:multidimensional_cpu_chip",
"32x kubejs:hyperdynamic_ram_chip",
"16x gtceu:activated_netherite_double_wire",
"16x gtceu:polyethyl_cyanoacrylate_foil",
"8x gtceu:holmium_plate"
)
.inputFluids("gtceu:soldering_alloy 4320", "gtceu:omnium 576")
.itemOutputs("kubejs:dimensional_processor_mainframe")
.duration(2400)
.EUt(GTValues.VA[GTValues.UEV])
// Monic Circuits
event.recipes.gtceu.circuit_assembler("monic_circuit_board")
.itemInputs("32x kubejs:dimensional_circuit_board",
"2x gtceu:monium_plate",
"#gtceu:circuits/uv",
"gtceu:zpm_field_generator",
"1x kubejs:quasi_stable_neutron_star",
"2x kubejs:ultimate_gem"
)
.inputFluids("gtceu:omnium 576")
.itemOutputs("32x kubejs:monic_circuit_board")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1200)
.EUt(2000000)
event.recipes.gtceu.large_chemical_reactor("monic_processing_unit")
.itemInputs("1x kubejs:monic_circuit_board", "6x gtceu:monium_single_wire", "8x gtceu:holmium_foil")
.inputFluids("gtceu:iron_iii_chloride 12000")
.itemOutputs("1x kubejs:monic_processing_unit")
.cleanroom(CleanroomType.CLEANROOM)
.duration(100)
.EUt(3932160)
event.recipes.gtceu.circuit_assembler("monic_processor")
.itemInputs(
"kubejs:monic_processing_unit",
"kubejs:contained_singularity",
"8x kubejs:complex_smd_resistor",
"8x kubejs:complex_smd_capacitor",
"8x kubejs:complex_smd_transistor",
"16x gtceu:fine_holmium_wire"
)
.inputFluids("gtceu:soldering_alloy 288")
.itemOutputs("2x kubejs:monic_processor")
.cleanroom(CleanroomType.CLEANROOM)
.duration(10 * 20)
.EUt(3932160)
event.recipes.gtceu.circuit_assembler("monic_processor_assembly")
.itemInputs(
"kubejs:monic_processing_unit",
"2x kubejs:monic_processor",
"8x kubejs:complex_smd_inductor",
"8x kubejs:complex_smd_capacitor",
"8x kubejs:hyperdynamic_ram_chip",
"16x gtceu:fine_holmium_wire"
)
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs("2x kubejs:monic_processor_assembly")
.cleanroom(CleanroomType.CLEANROOM)
.duration(20 * 20)
.EUt(3932160)
event.recipes.gtceu.assembly_line("monic_processor_computer")
.itemInputs(
"kubejs:monic_processing_unit",
"2x kubejs:monic_processor_assembly",
"4x kubejs:contained_singularity",
"16x kubejs:complex_smd_diode",
"48x gtceu:nor_memory_chip",
"16x kubejs:multidimensional_cpu_chip",
"24x kubejs:hyperdynamic_ram_chip",
"16x kubejs:quantum_soc_chip",
"24x kubejs:uxpic_chip",
"24x gtceu:fine_holmium_wire",
"32x gtceu:polyethyl_cyanoacrylate_foil",
"4x gtceu:infinity_plate"
)
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs("1x kubejs:monic_processor_computer")
.duration(20 * 20)
.EUt(3932160)
event.recipes.gtceu.assembly_line("monic_processor_mainframe")
.itemInputs(
"4x gtceu:monium_frame",
"2x kubejs:monic_processor_computer",
"64x kubejs:complex_smd_diode",
"64x kubejs:complex_smd_capacitor",
"64x kubejs:complex_smd_transistor",
"64x kubejs:complex_smd_resistor",
"64x kubejs:complex_smd_inductor",
"64x kubejs:contained_singularity",
"64x gtceu:nor_memory_chip",
"64x gtceu:nand_memory_chip",
"64x kubejs:multidimensional_cpu_chip",
"64x kubejs:hyperdynamic_ram_chip",
"64x kubejs:quantum_soc_chip",
"16x gtceu:holmium_double_wire",
"16x gtceu:polyethyl_cyanoacrylate_foil",
"8x gtceu:infinity_plate"
)
.inputFluids("gtceu:soldering_alloy 4320", "gtceu:omnium 1152")
.itemOutputs("kubejs:monic_processor_mainframe")
.duration(3200)
.EUt(GTValues.VA[GTValues.UIV])
// SoC recipe for cheaper matter processor
event.recipes.gtceu.circuit_assembler("matter_processor_soc")
.itemInputs(
"kubejs:matter_processing_unit",
"kubejs:quantum_soc_chip",
"8x gtceu:fine_ruthenium_trinium_americium_neutronate_wire",
"8x gtceu:activated_netherite_bolt"
)
.itemOutputs("4x kubejs:matter_processor")
.cleanroom(CleanroomType.CLEANROOM)
.duration(5 * 20)
.EUt(3932160)
})

View file

@ -0,0 +1,40 @@
/**
* A tale of Dense ores and how you undensify them
*/
const ores = [
["redstone", 4],
["diamond", 4],
["emerald", 4],
["gold", 4],
["lapis", 4],
["iron", 4],
["coal", 4],
["nether_quartz", 2],
["copper", 4]
]
ServerEvents.recipes(event => {
ores.forEach(([name, amount]) => {
event.recipes.gtceu.chemical_reactor(`kubejs:undensify_${name}`)
.itemInputs(`${amount}x kubejs:dense_${name}_ore`)
.itemOutputs(ChemicalHelper.get("raw", name, 64))
.inputFluids(Fluid.of("gtceu:nitric_acid", 1000))
.duration(200)
.EUt(500)
})
event.recipes.gtceu.chemical_reactor("kubejs:undensify_oilsands")
.itemInputs("4x kubejs:dense_oilsands_ore")
.itemOutputs("64x gtceu:endstone_oilsands_ore")
.inputFluids(Fluid.of("gtceu:nitric_acid", 1000))
.duration(200)
.EUt(500)
event.recipes.gtceu.chemical_reactor("kubejs:undensify_magma")
.itemInputs("4x kubejs:dense_magma_block")
.itemOutputs("64x minecraft:magma_block")
.inputFluids(Fluid.of("gtceu:nitric_acid", 1000))
.duration(200)
.EUt(500)
})

View file

@ -0,0 +1,58 @@
/**
* Draconic Evolution Fusion recipes
*/
ServerEvents.recipes(event => {
event.shaped("gtceu:discharger", [
"PLP",
"CFC",
"PHP"
], {
P: "gtceu:cryolobus_plate",
F: "kubejs:dischargement_core",
C: "gtceu:niobium_titanium_single_cable",
L: "gtceu:iv_field_generator",
H: "gtceu:hsse_frame"
}).id("kubejs:shaped/discharger")
event.recipes.gtceu.assembly_line("gtceu:sculk_biocharger")
.itemInputs("gtceu:discharger", "4x #gtceu:circuits/uev", "4x extendedcrafting:auto_flux_crafter", "16x kubejs:dischargement_core", "24x gtceu:polyethyl_cyanoacrylate_plate")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:omnium 5760")
.itemOutputs("gtceu:sculk_biocharger")
.duration(3000)
.EUt(1966000)
.stationResearch(b => b
.researchStack("gtceu:discharger")
.CWUt(160, 1024000)
.EUt(1200000)
)
event.recipes.gtceu.assembler("kubejs:cryolobus_casing")
.itemInputs("6x gtceu:cryolobus_plate", "gtceu:cryolobus_frame")
.itemOutputs("2x kubejs:cryolobus_casing")
.duration(50)
.circuit(6)
.EUt(16)
function Discharge(id, output, input, refund) {
event.recipes.gtceu.discharger(`kubejs:${id}`)
.itemInputs(input)
.itemOutputs(output)
.duration(10) // wip
// .EUt(-(refund / 4)) Enable once that gets fixed.
}
Discharge("hadal_solar", "2x solarflux:sp_custom_hadal", ["kubejs:hadal_energy_core", "2x solarflux:sp_custom_abyssal", "2x kubejs:abyssal_energy_core"], 1000000)
Discharge("nt_solar", "solarflux:sp_custom_neutronium", ["solarflux:sp_custom_hadal", "4x kubejs:hadal_energy_core", "4x gtceu:sculk_superconductor_single_wire", "2x gtceu:omnium_block"], 100000000)
Discharge("abyssal_solar", "2x solarflux:sp_custom_abyssal", ["kubejs:abyssal_energy_core", "2x solarflux:sp_custom_bathyal", "4x laserio:energy_overclocker_card_tier_9", "2x kubejs:bathyal_energy_core"], 20000000)
Discharge("bathyal_solar", "2x solarflux:sp_custom_bathyal", ["kubejs:bathyal_energy_core", "2x solarflux:sp_8", "4x laserio:energy_overclocker_card_tier_8", "2x gtceu:cryolobus_block"], 20000000)
Discharge("cryococcus_block", "5x gtceu:cryococcus_block", ["5x gtceu:cryolobus_block", "4x kubejs:bathyal_energy_core", "2x kubejs:warden_heart"], 40000000)
Discharge("hadal_warp_engine", "kubejs:hadal_warp_engine", ["gtceu:cryococcus_frame", "kubejs:warp_engine", "gtceu:cryococcus_plate", "2x gtceu:cryolobus_plate", "kubejs:hadal_energy_core", "gtceu:zpm_field_generator", "kubejs:abyssal_energy_core", "kubejs:hadal_shard"], 40000000)
Discharge("sculk_bioalloy", "gtceu:sculk_bioalloy_block", ["9x kubejs:animated_bioalloy_pulp", "18x gtceu:electrotine_dust", "1x kubejs:warden_heart", "2x kubejs:abyssal_energy_core"], 10000000)
event.recipes.gtceu.charger("kubejs:sculk_core_charge")
.itemInputs(["4x gtceu:cryolobus_ingot", "4x gtceu:tungsten_carbide_ingot", "minecraft:sculk_catalyst"])
.itemOutputs("kubejs:sculk_core")
.EUt(500000 / 16)
.duration(100 * 4)
})

View file

@ -0,0 +1,83 @@
/**
* Eltz processing line
*/
ServerEvents.recipes(event => {
event.recipes.gtceu.mixer("reactive_dust_mixture_mixer")
.itemInputs("12x extendedcrafting:luminessence", "7x gtceu:enriched_sunnarium_dust", "8x kubejs:primal_mana", "13x gtceu:cadmium_dust", "3x gtceu:nether_star_dust", "21x gtceu:ender_eye_dust")
.itemOutputs("64x kubejs:reactive_dust_mixture")
.duration(4800)
.EUt(GTValues.VHA[GTValues.UHV])
event.recipes.gtceu.large_chemical_reactor("literal_alchemy")
.itemInputs("3x kubejs:reactive_dust_mixture")
.notConsumable("extendedcrafting:ultimate_catalyst")
.inputFluids("gtceu:chlorine_triflouride 200", "gtceu:mana 150", "gtceu:dragon_breath 100")
.itemOutputs("2x kubejs:inert_dust_mixture")
.outputFluids("gtceu:waste_gas_mixture 1000")
.duration(15)
.EUt(GTValues.VA[GTValues.UIV])
event.recipes.gtceu.sifter("inert_dust_mixture_sifting")
.itemInputs("4x kubejs:inert_dust_mixture")
.itemOutputs("1x kubejs:dusty_inert_powder", "2x kubejs:inert_clumps")
.chancedOutput("gtceu:monazite_gem", 7000, 2000)
.chancedOutput("gtceu:impure_netherite_scrap_dust", 1500, 600)
.chancedOutput("extendedcrafting:crystaltine_nugget", 900, 900)
.duration(640)
.EUt(GTValues.VA[GTValues.IV])
// Shiny metal powder half
event.recipes.gtceu.large_chemical_reactor("inert_powder_reacting")
.itemInputs("1x kubejs:dusty_inert_powder", "gtceu:omnic_acid_dust")
.inputFluids("minecraft:water 1000", "gtceu:enriched_naquadah 144")
.itemOutputs("kubejs:shiny_powder_mixture")
.chancedOutput("kubejs:cryotheum_dust", 1000, 100)
.chancedOutput("kubejs:pyrotheum_dust", 1000, 100)
.outputFluids("gtceu:depleted_uranium_hexafluoride 200")
.duration(100)
.EUt(GTValues.VHA[GTValues.ZPM])
event.recipes.gtceu.centrifuge("shiny_powder_mixture_centrifuging")
.itemInputs("4x kubejs:shiny_powder_mixture")
.itemOutputs("kubejs:shiny_metal_powder", "gtceu:crystal_matrix_dust")
.chancedOutput("kubejs:aerotheum_dust", 4000, 400)
.chancedOutput("kubejs:petrotheum_dust", 4000, 400)
.chancedOutput("kubejs:inert_dust_mixture", 500, 150)
.duration(500)
.EUt(GTValues.VHA[GTValues.EV])
// Eltic actinate clump half
event.recipes.gtceu.chemical_bath("inert_clump_bath")
.itemInputs("4x kubejs:inert_clumps")
.inputFluids("gtceu:distilled_water 125")
.itemOutputs("kubejs:clean_inert_cluster")
.outputFluids("gtceu:saturated_water 125")
.duration(5000)
.EUt(GTValues.VHA[GTValues.HV])
event.recipes.gtceu.electromagnetic_separator("clean_cluster_separating")
.itemInputs("kubejs:clean_inert_cluster")
.chancedOutput("kubejs:eltic_crystal_seed", 2500, 0)
.chancedOutput("kubejs:inert_dust_mixture", 500, 150)
.duration(2500)
.EUt(GTValues.VA[GTValues.LuV])
// Converge here
event.recipes.gtceu.autoclave("eltic_actinide_crystal_growing")
.itemInputs("kubejs:eltic_crystal_seed", "2x kubejs:shiny_metal_powder")
.inputFluids("gtceu:saturated_water 500")
.itemOutputs("gtceu:eltic_actinate_gem")
.duration(1200)
.EUt(GTValues.VA[GTValues.UV])
event.recipes.gtceu.electric_blast_furnace("eltz_ingot_blasting")
.itemInputs("gtceu:flawless_eltic_actinate_gem", "#forge:dusts/pulsating_alloy")
.itemOutputs("1x gtceu:eltz_ingot", "2x gtceu:actinium_iron_oxide_dust")
.duration(1540)
.blastFurnaceTemp(11600)
.EUt(GTValues.VA[GTValues.UEV])
})

View file

@ -0,0 +1,77 @@
/** Pre Release */
ServerEvents.recipes(event => {
event.recipes.gtceu.assembly_line("kubejs_fusion_crafting_core")
.itemInputs("gtceu:hsse_frame", "6x gtceu:tungsten_carbide_plate", "4x kubejs:mesol_energy_core", "4x minecraft:nether_star", "2x gtceu:iv_sensor", "#gtceu:circuits/iv", "8x #forge:storage_blocks/diamatine_empowered")
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs("kubejs:dischargement_core")
["scannerResearch(java.util.function.UnaryOperator)"](b => b.researchStack("kubejs:mesol_energy_core").EUt(480).duration(1200))
.duration(1200)
.EUt(30720)
event.recipes.extendedcrafting.shaped_table("extendedcrafting:auto_flux_crafter", [
"RPEPR",
"PXCXP",
"PCACP",
"PXCXP",
"RPEPR"
], {
P: "gtceu:double_cryolobus_plate",
R: "gtceu:luv_lapotronic_battery",
X: "kubejs:cryolobus_casing",
A: "gtceu:luv_charger_4x",
E: "gtceu:luv_sensor",
C: "#gtceu:circuits/luv"
})
event.recipes.extendedcrafting.shaped_table("extendedcrafting:flux_alternator", [
" PEP ",
" PCP ",
" PCP ",
"PPCPP",
"XRRRX"
], {
P: "gtceu:double_cryolobus_plate",
R: "gtceu:luv_lapotronic_battery",
X: "kubejs:cryolobus_casing",
E: "gtceu:luv_emitter",
C: "#gtceu:circuits/luv"
})
event.recipes.extendedcrafting.shaped_flux_crafter("kubejs:sculk_core", [
"ABA",
"BCB",
"ABA"
], {
A: "gtceu:cryolobus_ingot",
B: "gtceu:tungsten_carbide_ingot",
C: "minecraft:sculk_catalyst"
}, 200000000).powerRate(200000000);
event.recipes.gtceu.assembler("kubejs:mesol_energy_core")
.itemInputs("kubejs:sculk_core", "4x gtceu:enori_empowered_gem", "gtceu:palis_empowered_block")
.inputFluids("enderio:xp_juice 100")
.itemOutputs("kubejs:mesol_energy_core")
.duration(100)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.assembler("kubejs:bathyal_energy_core")
.itemInputs("3x kubejs:mesol_energy_core", "4x minecraft:nether_star", "gtceu:emeradic_empowered_block", "6x gtceu:diamatine_empowered_gem")
.inputFluids("enderio:xp_juice 1000")
.itemOutputs("2x kubejs:bathyal_energy_core")
.duration(100)
.EUt(GTValues.VA[GTValues.LuV])
event.recipes.gtceu.assembler("kubejs:abyssal_energy_core")
.itemInputs("2x kubejs:bathyal_energy_core", "4x gtceu:restonia_empowered_gem", "gtceu:cryococcus_block", "kubejs:stabilized_einsteinium")
.inputFluids("enderio:xp_juice 1000")
.itemOutputs("1x kubejs:abyssal_energy_core")
.duration(100)
.EUt(GTValues.VA[GTValues.ZPM])
event.recipes.gtceu.assembler("kubejs:hadal_energy_core")
.itemInputs("3x kubejs:abyssal_energy_core", "kubejs:hadal_shard", "gtceu:void_empowered_block", "2x gtceu:neutronium_plate", "16x gtceu:omnium_bolt")
.inputFluids("enderio:xp_juice 1000")
.itemOutputs("kubejs:hadal_energy_core")
.duration(100)
.EUt(GTValues.VA[GTValues.UV])
})

View file

@ -0,0 +1,39 @@
/**
* Additional forming press recipes.
*/
ServerEvents.recipes(event => {
const materials = [
"aluminium",
"iron",
"titanium",
"neutronium",
"duranium",
"bronze",
"diamond",
"invar",
"sterling_silver",
"rose_gold",
"stainless_steel",
"steel",
"ultimet",
"wrought_iron",
"tungsten_carbide",
"damascus_steel",
"tungsten_steel",
"cobalt_brass",
"vanadium_steel",
"naquadah_alloy",
"red_steel",
"blue_steel",
"hsse"
]
materials.forEach((materialName) => {
event.recipes.gtceu.forming_press(`${materialName}_drill_head`)
.itemInputs("2x gtceu:double_steel_plate", `4x gtceu:${materialName}_plate`)
.itemOutputs(`gtceu:${materialName}_drill_head`)
.duration(500)
.EUt(GTValues.VA[GTValues.MV])
})
})

View file

@ -0,0 +1,199 @@
/**
* Greenhouse multiblock
*/
ServerEvents.recipes(event => {
/* Machine Recipe */
event.shaped("gtceu:greenhouse", [
"LWL",
"ASA",
"WRW"
], {
L: "minecraft:redstone_lamp",
A: "#gtceu:circuits/mv",
W: "gtceu:copper_single_cable",
S: "gtceu:solid_machine_casing",
R: "gtceu:lv_fluid_regulator"
}).id("kubejs:shaped/greenhouse")
/* Greenhouse Recipes */
function boost(input, factor) {
let boosted = [];
input.forEach(element => {
let item = Item.of(element);
let curCount = item.getCount() * factor;
let type = item.getId();
while (curCount > item.maxStackSize) {
boosted.push(Item.of(type, item.maxStackSize));
curCount -= item.maxStackSize;
}
if (curCount > 0) boosted.push(Item.of(type, curCount));
})
return boosted;
}
/**
* @param {string} mod Input item mod name
* @param {string} input Input item identifier
* @param {number} duration Recipe duration
* @param {string[]} output Base recipe output
* @param {number} inputFeedbackAmount How many input items to add to output
*/
function Greenhouse(mod, input, duration, output, inputFeedbackAmount) {
// Create new boosted output item array
let boostedOutputs = boost(output, 2)
// Push sapling/seed inputs (unboosted) onto output arrays
if (inputFeedbackAmount > 0) {
output.push(Item.of(`${mod}:${input}`, inputFeedbackAmount));
boostedOutputs.push(Item.of(`${mod}:${input}`, inputFeedbackAmount));
}
event.recipes.gtceu.greenhouse(`kubejs:${input}`)
.circuit(1)
.notConsumable(InputItem.of(Item.of(`${mod}:${input}`)))
.inputFluids(Fluid.of("minecraft:water", 24000))
.itemOutputs(output)
.duration(duration)
.EUt(80)
event.recipes.gtceu.greenhouse(`kubejs:${input}_boosted`)
.circuit(2)
.notConsumable(InputItem.of(Item.of(`${mod}:${input}`)))
.itemInputs("1x gtceu:fertilizer")
.inputFluids(Fluid.of("minecraft:water", 16000))
.itemOutputs(boostedOutputs)
.duration(duration / 2)
.EUt(80)
}
// //// Trees //////
Greenhouse("gtceu", "rubber_sapling", 1280, ["32x gtceu:rubber_log", "8x gtceu:sticky_resin"], 4)
Greenhouse("minecraft", "oak_sapling", 1280, ["64x minecraft:oak_log"], 4)
Greenhouse("minecraft", "dark_oak_sapling", 1280, ["64x minecraft:dark_oak_log"], 4)
Greenhouse("minecraft", "spruce_sapling", 1280, ["64x minecraft:spruce_log"], 4)
Greenhouse("minecraft", "birch_sapling", 1280, ["64x minecraft:birch_log"], 4)
Greenhouse("minecraft", "acacia_sapling", 1280, ["64x minecraft:acacia_log"], 4)
Greenhouse("minecraft", "jungle_sapling", 1280, ["64x minecraft:jungle_log"], 4)
Greenhouse("minecraft", "azalea", 1280, ["64x minecraft:oak_log"], 4)
Greenhouse("minecraft", "flowering_azalea", 1280, ["64x minecraft:oak_log"], 4)
Greenhouse("minecraft", "cherry_sapling", 1280, ["64x minecraft:cherry_log"], 4)
Greenhouse("minecraft", "mangrove_propagule", 1280, ["64x minecraft:mangrove_log"], 4)
Greenhouse("minecraft", "chorus_flower", 1280, ["32x minecraft:chorus_fruit"], 4)
Greenhouse("minecraft", "warped_fungus", 1280, ["64x minecraft:warped_stem", "32x minecraft:warped_wart_block", "16x minecraft:shroomlight"], 4)
Greenhouse("minecraft", "crimson_fungus", 1280, ["64x minecraft:crimson_stem", "32x minecraft:nether_wart_block", "16x minecraft:shroomlight"], 4)
Greenhouse("thermal", "rubberwood_sapling", 1280, ["64x thermal:rubberwood_log"], 4)
// //// Crops //////
Greenhouse("minecraft", "sugar_cane", 640, ["32x minecraft:sugar_cane"], 0)
// TODO: Increase water requirement for Kelp
Greenhouse("minecraft", "kelp", 640, ["32x minecraft:kelp"], 0)
Greenhouse("minecraft", "bamboo", 640, ["48x minecraft:bamboo"], 0)
Greenhouse("minecraft", "cactus", 640, ["32x minecraft:cactus"], 0)
Greenhouse("minecraft", "wheat_seeds", 640, ["32x minecraft:wheat"], 0)
Greenhouse("minecraft", "carrot", 640, ["32x minecraft:carrot"], 0)
Greenhouse("minecraft", "potato", 640, ["32x minecraft:potato"], 0)
Greenhouse("minecraft", "beetroot_seeds", 640, ["32x minecraft:beetroot"], 0)
Greenhouse("minecraft", "sweet_berries", 640, ["32x minecraft:sweet_berries"], 0)
Greenhouse("minecraft", "glow_berries", 640, ["32x minecraft:glow_berries"], 0)
Greenhouse("minecraft", "cocoa_beans", 640, ["32x minecraft:cocoa_beans"], 0)
Greenhouse("minecraft", "sea_pickle", 640, ["32x minecraft:sea_pickle"], 0)
Greenhouse("minecraft", "melon_seeds", 640, ["16x minecraft:melon"], 0)
Greenhouse("minecraft", "pumpkin_seeds", 640, ["16x minecraft:pumpkin"], 0)
Greenhouse("minecraft", "nether_wart", 640, ["16x minecraft:nether_wart"], 0)
Greenhouse("minecraft", "red_mushroom", 640, ["16x minecraft:red_mushroom"], 0)
Greenhouse("minecraft", "brown_mushroom", 640, ["16x minecraft:brown_mushroom"], 0)
// //// Flowers & Cosmetic Blocks //////
let flowers = [
"wither_rose",
"cornflower",
"sunflower",
"peony",
"red_tulip",
"poppy",
"rose_bush",
"blue_orchid",
"orange_tulip",
"dandelion",
"pink_tulip",
"pink_petals",
"allium",
"lilac",
"lily_of_the_valley",
"oxeye_daisy",
"azure_bluet",
"white_tulip",
"pitcher_plant",
"lily_pad",
"weeping_vines",
"twisting_vines",
"vine",
"moss_block",
"glow_lichen",
"tube_coral_fan",
"brain_coral_fan",
"bubble_coral_fan",
"fire_coral_fan",
"horn_coral_fan"
]
flowers.forEach(flower => {
Greenhouse("minecraft", flower, 640, [Item.of(flower, 48)], 0);
})
// Torchflowers are grown from seeds
Greenhouse("minecraft", "torchflower_seeds", 640, [Item.of("torchflower", 48)], 0);
// A way to get grass blocks
event.recipes.gtceu.greenhouse("kubejs:grass_block")
.circuit(1)
.notConsumable(InputItem.of(Item.of("minecraft:grass_block")))
.itemInputs("64x dirt")
.inputFluids(Fluid.of("minecraft:water", 24000))
.itemOutputs("64x grass_block")
.duration(640)
.EUt(80)
})
ServerEvents.recipes(event => {
event.custom({
type: "thermal:insolator",
"ingredient": {
"item": "gtceu:rubber_sapling"
},
"result": [
{
"item": "gtceu:rubber_log",
"chance": 6.0
},
{
"item": "gtceu:sticky_resin",
"chance": 1.25
},
{
"item": "gtceu:rubber_sapling",
"chance": 1.1
}
],
"energy_mod": 3.0,
"water_mod": 3.0
}).id("kubejs:thermal/insolator/rubber_sapling")
event.custom({
type: "thermal:insolator",
"ingredient": {
"item": "minecraft:pink_petals",
},
"result": [
{
"item": "minecraft:pink_petals",
"chance": 2.0
}
],
"energy_mod": 1.0,
"water_mod": 1.0
}).id("kubejs:thermal/insolator/pink_petals")
})

View file

@ -0,0 +1,23 @@
/** GTMUtils recipes */
ServerEvents.recipes(event => {
if (doQuantumCoolant) {
event.recipes.gtceu.large_chemical_reactor("quantum_coolant")
.notConsumable("gtceu:luv_emitter")
.itemInputs("8x kubejs:quantum_flux", "8x kubejs:cryotheum_dust")
.inputFluids("gtceu:liquid_helium 1000", "gtceu:pcb_coolant 500")
.outputFluids("gtmutils:quantum_coolant 2000")
.duration(80)
.EUt(GTValues.VA[GTValues.LuV]);
}
event.recipes.gtceu.assembly_line("sterile_cleaning_maintenance_hatch")
.itemInputs("gtceu:cleaning_maintenance_hatch", "32x gtceu:double_eltz_plate", "64x gtceu:fine_holmium_wire", "64x gtceu:fine_holmium_wire", "16x gtceu:long_neutronium_rod", "12x gtceu:blacklight", "4x gtceu:uiv_fluid_regulator", "4x gtceu:uev_field_generator", "4x #gtceu:circuits/uiv")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:lubricant 4000", "gtceu:crystal_matrix 5760", "gtceu:naquadria 2304")
.itemOutputs("gtmutils:sterile_cleaning_maintenance_hatch")
.EUt(GTValues.VA[GTValues.UXV])
.duration(400)
.stationResearch(b => b
.researchStack("gtceu:cleaning_maintenance_hatch")
.CWUt(128, 512000)
.EUt(524288))
})

View file

@ -0,0 +1,318 @@
/**
* Naquadah fuel processing line
*/
ServerEvents.recipes(event => {
if (doHarderNaqFuel) {
// Liquid Fuel recipes
// Piranha Solution
event.recipes.gtceu.mixer("piranha_solution")
.inputFluids("gtceu:hydrogen_peroxide 1000", "gtceu:sulfuric_acid 3000")
.outputFluids("gtceu:piranha_solution 4000")
.duration(80)
.EUt(480)
event.recipes.gtceu.fluid_heater("hot_piranha_solution")
.inputFluids("gtceu:piranha_solution 100")
.outputFluids("gtceu:hot_piranha_solution 100")
.duration(40)
.EUt(30)
// Tritium Radon Difluoride
event.recipes.gtceu.large_chemical_reactor("tritium_radon_difluoride")
.notConsumable("gtceu:blacklight")
.inputFluids("gtceu:tritium 1000", "gtceu:radon 1000", "gtceu:fluorine 2000")
.outputFluids("gtceu:tritium_radon_difluoride 1000")
.duration(160)
.EUt(1920)
// Naquadah Fuel Feedstock
event.recipes.gtceu.electric_blast_furnace("raw_naquadah_solution")
.itemInputs("10x gtceu:naquadah_dust")
.itemOutputs("kubejs:naquadah_waste")
.inputFluids("gtceu:helium_hydride 500")
.outputFluids("gtceu:raw_naquadah_solution 1000")
.duration(400)
.EUt(30720)
.blastFurnaceTemp(10800)
event.recipes.gtceu.large_chemical_reactor("inert_naquadah_blend")
.itemInputs("4x gtceu:thorium_dust", "gtceu:naquadria_dust")
.inputFluids("gtceu:raw_naquadah_solution 1000", "gtceu:hot_piranha_solution 1000")
.outputFluids("gtceu:inert_naquadah_blend 1000")
.duration(300)
.EUt(30720)
// Naquadah Activation
event.recipes.gtceu.fusion_reactor("naquadah_activation")
.inputFluids("gtceu:inert_naquadah_blend 20", "gtceu:tritium_radon_difluoride 20")
.outputFluids("gtceu:active_naquadah_blend 20")
.duration(40).EUt(30720)
.fusionStartEU(400000000)
// Naquadah Distillation
event.recipes.gtceu.distillation_tower("naquadah_isotope_distillation")
.inputFluids("gtceu:active_naquadah_blend 1000")
.chancedOutput("kubejs:naquadah_waste", 1000, 0)
.outputFluids("gtceu:naquadah_isotope_sludge 100", "gtceu:heavy_naquadah_isotope_fraction 300", "gtceu:medium_naquadah_isotope_fraction 400", "gtceu:light_naquadah_isotope_fraction 200")
.duration(200)
.EUt(15360)
// Refinery Recipes
event.recipes.gtceu.naquadah_refinery("t1_naquadah_fuel")
.itemInputs("4x kubejs:naquadah_fuel_dust", "4x gtceu:plutonium_dust", "4x gtceu:uranium_235_dust", "6x gtceu:enriched_sunnarium_dust")
.inputFluids("gtceu:medium_naquadah_isotope_fraction 400", "gtceu:light_naquadah_isotope_fraction 200", "gtceu:jean_gasoline 10000", "gtceu:neptunium 1000")
.outputFluids("gtceu:naq_fuel_t1 12000")
.duration(800)
.EUt(491520)
event.recipes.gtceu.naquadah_refinery("t2_naquadah_fuel")
.itemInputs("4x gtceu:actinium_dust", "32x gtceu:enriched_naquadah_dust", "8x gtceu:omnic_acid_dust")
.inputFluids("gtceu:naq_fuel_t1 11000", "gtceu:oganesson 800", "gtceu:exotic_particle_solution 300", "gtceu:einsteinium 1000")
.outputFluids("gtceu:naq_fuel_t2 12000")
.duration(800)
.EUt(1966080)
event.recipes.gtceu.naquadah_refinery("naquadah_superfuel")
.itemInputs("1x gtceu:infinity_dust", "16x kubejs:naquadah_fuel_dust", "64x gtceu:naquadria_dust", "64x gtceu:neutronium_dust")
.inputFluids("gtceu:hyperdegenerate_matter 200", "gtceu:naq_fuel_t2 11000", "gtceu:taranium 576", "gtceu:quadium 600")
.outputFluids("gtceu:naquadah_superfuel 12000")
.duration(800)
.EUt(8388608)
// Cracker Recipes
event.recipes.gtceu.cracker("light_isotope_cracking")
.inputFluids("gtceu:light_naquadah_isotope_fraction 1000", "gtceu:neutronium 100")
.outputFluids("gtceu:cracked_light_naquadah_isotope_fraction 1000")
.duration(80)
.EUt(122880)
event.recipes.gtceu.cracker("medium_isotope_cracking")
.inputFluids("gtceu:medium_naquadah_isotope_fraction 1000", "gtceu:neutronium 100")
.outputFluids("gtceu:cracked_medium_naquadah_isotope_fraction 1000")
.duration(80)
.EUt(122880)
event.recipes.gtceu.cracker("heavy_isotope_cracking")
.inputFluids("gtceu:heavy_naquadah_isotope_fraction 1000", "gtceu:neutronium 100")
.outputFluids("gtceu:cracked_heavy_naquadah_isotope_fraction 1000")
.duration(80)
.EUt(122880)
event.recipes.gtceu.cracker("sludge_cracking")
.inputFluids("gtceu:naquadah_isotope_sludge 1000", "gtceu:neutronium 100")
.outputFluids("gtceu:cracked_naquadah_isotope_sludge 1000")
.duration(80)
.EUt(122880)
event.recipes.gtceu.distillation_tower("light_isotope_distillation")
.inputFluids("gtceu:cracked_light_naquadah_isotope_fraction 1000")
.chancedOutput("gtceu:europium_dust", 1000, 0)
.outputFluids("gtceu:medium_naquadah_isotope_fraction 250", "gtceu:radon 200", "gtceu:quadium 300", "gtceu:helium 150", "gtceu:tritium 150")
.duration(200)
.EUt(15360)
event.recipes.gtceu.distillation_tower("medium_isotope_distillation")
.inputFluids("gtceu:cracked_medium_naquadah_isotope_fraction")
.chancedOutput("gtceu:lead_dust", 2500, 0)
.outputFluids("gtceu:heavy_naquadah_isotope_fraction 200", "gtceu:light_naquadah_isotope_fraction 250", "gtceu:oganesson 400", "gtceu:plutonium 150")
.duration(200)
.EUt(15360)
event.recipes.gtceu.distillation_tower("heavy_isotope_distillation")
.inputFluids("gtceu:cracked_heavy_naquadah_isotope_fraction")
.outputFluids("gtceu:naquadah_isotope_sludge 200", "gtceu:medium_naquadah_isotope_fraction 200", "gtceu:heavy_atomic_residue 300", "gtceu:einsteinium 150", "gtceu:tritanium 100")
.duration(200)
.EUt(15360)
event.recipes.gtceu.distillation_tower("sludge_distillation")
.inputFluids("gtceu:cracked_naquadah_isotope_sludge 1000")
.itemOutputs("kubejs:naquadah_waste")
.outputFluids("gtceu:superheavy_atomic_residue 600", "gtceu:heavy_naquadah_isotope_fraction 200", "gtceu:neutronium 200")
.duration(200)
.EUt(15360)
// Superheavy Chemical Processing
event.recipes.gtceu.large_chemical_reactor("heavy_residue_purification")
.notConsumable("kubejs:magnetron")
.inputFluids("gtceu:heavy_atomic_residue 200")
.itemInputs("8x gtceu:activated_carbon_dust", "4x gtceu:omnic_acid_dust")
.inputFluids("gtceu:distilled_water 4000")
.outputFluids("gtceu:purified_heavy_residue 200")
.duration(40)
.EUt(8388608)
event.recipes.gtceu.large_chemical_reactor("superheavy_residue_purification")
.notConsumable("kubejs:magnetron")
.inputFluids("gtceu:superheavy_atomic_residue 200")
.itemInputs("8x gtceu:activated_carbon_dust", "4x gtceu:omnic_acid_dust")
.inputFluids("gtceu:distilled_water 4000")
.outputFluids("gtceu:purified_superheavy_residue 200")
.duration(40)
.EUt(8388608)
event.recipes.gtceu.fusion_reactor("exotic_particle_activation")
.inputFluids("gtceu:purified_heavy_residue 50", "gtceu:oganesson 150")
.outputFluids("gtceu:exotic_particle_solution 50")
.duration(10).EUt(2097152)
.fusionStartEU(640000000)
event.recipes.gtceu.fusion_reactor("hyperdegenerate_activation")
.inputFluids("gtceu:purified_superheavy_residue 50", "gtceu:americium_plasma 144")
.outputFluids("gtceu:hyperdegenerate_matter 25")
.duration(10).EUt(8388608)
.fusionStartEU(640000000)
// Liquid Waste Processing
event.recipes.gtceu.centrifuge("t1_waste_processing")
.inputFluids("gtceu:naq_fuel_t1_depleted 12000")
.outputFluids("gtceu:neptunium 200",)
.itemOutputs("4x gtceu:lead_dust", "gtceu:sunnarium_dust",)
.chancedOutput("3x gtceu:thorium_dust", 5000, 0)
.chancedOutput("3x kubejs:naquadah_waste", 6600, 0)
.chancedFluidOutput("gtceu:americium 100", 3300, 0)
.duration(1200)
.EUt(122800)
event.recipes.gtceu.centrifuge("t2_waste_processing")
.inputFluids("gtceu:naq_fuel_t2_depleted 12000")
.outputFluids("gtceu:einsteinium 200")
.itemOutputs("6x gtceu:lead_dust", "gtceu:actinium_dust")
.chancedOutput("4x gtceu:enriched_naquadah_dust", 5000, 0)
.chancedOutput("3x kubejs:naquadah_waste", 6600, 0)
.chancedFluidOutput("gtceu:exotic_particle_solution 100", 3300, 0)
.duration(1200)
.EUt(491520)
event.recipes.gtceu.centrifuge("superfuel_waste_processing")
.inputFluids("gtceu:naquadah_superfuel_depleted 12000")
.itemOutputs("6x gtceu:lead_dust", "8x gtceu:neutronium_dust")
.chancedOutput("1x gtceu:infinity_dust", 3300, 0)
.chancedOutput("3x kubejs:naquadah_waste", 6600, 0)
.chancedOutput("16x gtceu:naquadria_dust", 5000, 0)
.chancedFluidOutput("gtceu:taranium 288", 5000, 0)
.chancedFluidOutput("gtceu:hyperdegenerate_matter 100", 3300, 0)
.duration(1200)
.EUt(1966080)
}
// Solid Fuel Recipes
event.recipes.gtceu.assembler("fuel_rod")
.itemInputs("gtceu:fluid_cell", "2x gtceu:rhodium_plated_palladium_ring", "2x gtceu:neutron_reflector", "2x gtceu:rhodium_plated_palladium_plate")
.inputFluids("gtceu:lead 288")
.itemOutputs("kubejs:empty_fuel_rod")
.duration(200)
.EUt(122880)
event.recipes.gtceu.canner("naquadah_fuel_rod")
.itemInputs("kubejs:empty_fuel_rod", "16x kubejs:naquadah_fuel_pellet")
.itemOutputs("kubejs:naquadah_fuel_rod")
.duration(200)
.EUt(30720)
event.recipes.gtceu.canner("depleted_naquadah_fuel_rod")
.itemInputs("kubejs:depleted_naquadah_fuel_rod")
.itemOutputs("kubejs:empty_fuel_rod", "16x kubejs:depleted_naquadah_fuel_pellet")
.duration(200)
.EUt(30720)
event.recipes.gtceu.vacuum_freezer("fuel_rod_cooling")
.itemInputs("kubejs:hot_depleted_naquadah_fuel_rod")
.itemOutputs("kubejs:depleted_naquadah_fuel_rod")
.inputFluids("kubejs:molten_cryotheum 1000")
.duration(100)
.EUt(30720)
event.recipes.gtceu.arc_furnace("pellet_sintering")
.itemInputs("kubejs:unsintered_naquadah_fuel_pellet")
.itemOutputs("kubejs:naquadah_fuel_pellet")
.inputFluids("gtceu:xenon 100")
.duration(20)
.EUt(30720)
event.recipes.gtceu.forming_press("pellet_pressing")
.notConsumable("gtceu:pill_casting_mold")
.itemInputs("kubejs:naquadah_fuel_dust")
.itemOutputs("4x kubejs:unsintered_naquadah_fuel_pellet")
.duration(100)
.EUt(122880)
event.recipes.gtceu.autoclave("naquadah_fuel_enrichment")
.itemInputs("4x kubejs:naquadah_fuel_mixture_dust", "kubejs:naquadah_fuel_primer_dust")
.inputFluids("gtceu:radon 1000")
.itemOutputs("4x kubejs:inactivated_naquadah_fuel_dust")
.duration(300)
.EUt(61440)
event.recipes.gtceu.atomic_reconstruction("naquadah_fuel_activation")
.itemInputs("kubejs:inactivated_naquadah_fuel_dust")
.itemOutputs("kubejs:naquadah_fuel_dust")
.duration(100)
.EUt(122880)
event.recipes.gtceu.macerator("depleted_fuel_maceration")
.itemInputs("4x kubejs:depleted_naquadah_fuel_pellet")
.itemOutputs("kubejs:depleted_naquadah_fuel_dust")
.duration(80)
.EUt(30720)
event.recipes.gtceu.mixer("crude_naquadah_blend")
.itemInputs("6x gtceu:naquadah_dust", "2x gtceu:naquadria_dust", "2x gtceu:plutonium_dust", "4x gtceu:uranium_235_dust", "2x kubejs:primal_mana", "2x gtceu:neutronium_dust")
.inputFluids("gtceu:jean_gasoline 4000")
.itemOutputs("4x kubejs:crude_naquadah_fuel_blend")
.duration(300)
.EUt(491520)
event.recipes.gtceu.electric_blast_furnace("naquadah_fuel_crystal")
.itemInputs("gtceu:dilithium_dust", "kubejs:crude_naquadah_fuel_blend")
.inputFluids("kubejs:molten_pyrotheum 1000")
.itemOutputs("kubejs:hot_naquadah_fuel_crystal", "gtceu:lead_dust")
.outputFluids("gtceu:carbon_dioxide 500")
.duration(150)
.EUt(200000)
.blastFurnaceTemp(10800)
event.recipes.gtceu.vacuum_freezer("naquadah_fuel_chilling")
.itemInputs("kubejs:hot_naquadah_fuel_crystal")
.inputFluids("kubejs:molten_cryotheum 1000")
.itemOutputs("kubejs:naquadah_fuel_crystal")
.duration(100)
.EUt(30720)
event.recipes.gtceu.macerator("naquadah_crystal_maceration")
.itemInputs("kubejs:naquadah_fuel_crystal")
.itemOutputs("kubejs:naquadah_fuel_mixture_dust")
.duration(80)
.EUt(30720)
event.recipes.gtceu.electric_blast_furnace("naquadah_fuel_primer_synthesis")
.itemInputs("12x gtceu:enriched_naquadah_dust", "4x gtceu:cerium_dust", "3x gtceu:omnium_dust")
.inputFluids("gtceu:helium_3 1000")
.itemOutputs("4x kubejs:naquadah_fuel_primer_dust", "gtceu:dark_ash_dust")
.duration(800)
.EUt(200000)
.blastFurnaceTemp(10800)
// Solid Waste Processing
event.recipes.gtceu.centrifuge("naquadah_waste_centrifuging")
.itemInputs("4x kubejs:naquadah_waste")
.inputFluids("gtceu:hydrofluoric_acid 2000")
.itemOutputs("4x gtceu:lead_dust")
.itemOutputs("2x gtceu:naquadah_dust")
.chancedOutput("gtceu:naquadria_dust", 5000, 0)
.chancedOutput("gtceu:tritanium_dust", 3300, 0)
.chancedOutput("gtceu:small_neutronium_dust", 5000, 0)
.duration(200)
.EUt(30720)
event.recipes.gtceu.sifter("depleted_fuel_sifting")
.itemInputs("kubejs:depleted_naquadah_fuel_dust")
.chancedOutput("kubejs:naquadah_waste", 3300, 0)
.chancedOutput("kubejs:naquadah_waste", 3300, 0)
.chancedOutput("kubejs:naquadah_waste", 3300, 0)
.chancedOutput("kubejs:naquadah_waste", 3300, 0)
.duration(80)
.EUt(30720)
})

View file

@ -0,0 +1,85 @@
/**
* Naquadah Reactor multiblock
*/
ServerEvents.recipes(event => {
// Reactor Crafting
event.recipes.gtceu.assembly_line("kubejs:naquadah_reactor")
.itemInputs("gtceu:computer_monitor_cover", "3x ae2:spatial_pylon", "#gtceu:circuits/zpm", "gtceu:superconducting_coil",)
.inputFluids("gtceu:soldering_alloy 1152", "gtceu:duranium 288")
.itemOutputs("gtceu:naquadah_reactor")
.duration(1500)
.EUt(122880)
.stationResearch(b => b.researchStack(Item.of("gtceu:naquadah_bolt")).EUt(30720).CWUt(16, 64000))
event.recipes.gtceu.assembly_line("kubejs:large_naquadah_reactor")
.itemInputs("gtceu:computer_monitor_cover", "4x ae2:spatial_pylon", "2x #gtceu:circuits/uhv", "gtceu:fusion_coil", "2x gtceu:neutron_reflector", "gtceu:naquadah_alloy_frame", "gtceu:uv_sensor", "2x gtceu:uv_field_generator", "gtceu:uv_emitter", "64x gtceu:fine_ruthenium_trinium_americium_neutronate_wire")
.inputFluids("gtceu:soldering_alloy 1152", "gtceu:omnium 576")
.itemOutputs("gtceu:large_naquadah_reactor")
.duration(1500)
.EUt(491520)
.stationResearch(b => b.researchStack(Item.of("gtceu:naquadah_reactor")).EUt(524288).CWUt(128, 512000))
if (doHarderNaqFuel) {
// Refinery Recipe
event.recipes.gtceu.assembly_line("kubejs:naquadah_refinery")
.itemInputs("gtceu:large_mixer", "4x #gtceu:circuits/uhv", "8x nuclearcraft:plate_elite", "4x gtceu:uhv_field_generator", "4x gtceu:uhv_hermetic_casing", "2x kubejs:empty_fuel_rod", "2x gtceu:uhv_electric_pump", "2x gtceu:neutronium_huge_fluid_pipe", "4x kubejs:cryotheum_coolant_unit", "16x gtceu:double_tritanium_plate")
.inputFluids("gtceu:omnium 1152", "gtceu:soldering_alloy 1152", "gtceu:polybenzimidazole 2304")
.itemOutputs("gtceu:naquadah_refinery")
.duration(1500)
.EUt(491520)
.stationResearch(b => b.researchStack(Item.of("gtceu:large_mixer")).EUt(524288).CWUt(128, 512000))
}
// Reactor usage
// TODO: Make recipes not overclockable. I looked through the GregTech KJS integration but am too stupid to figure it out -Ciggy
// @ Ciggy from 3x1t_5tyl3; In startup you just don't add a "GTRecipeModifier" for overclockables. See other multiblocks. As long as ya don't add it it's fine uwu
event.recipes.gtceu.naquadah_reactor("kubejs:process_naquadah")
.itemInputs("gtceu:enriched_naquadah_bolt")
.itemOutputs("gtceu:lead_bolt")
.duration(938)
.EUt(-3 * GTValues.V[GTValues.ZPM])
event.recipes.gtceu.naquadah_reactor("kubejs:process_naquadria")
.itemInputs("gtceu:naquadria_bolt")
.itemOutputs("gtceu:lead_bolt")
.duration(3750)
.EUt(-3 * GTValues.V[GTValues.ZPM])
// Large Naquadah Reactor Fluid Recipes
if (doHarderNaqFuel) {
event.recipes.gtceu.large_naquadah_reactor("kubejs:process_t1_fuel")
.inputFluids("gtceu:naq_fuel_t1 10")
.outputFluids("gtceu:naq_fuel_t1_depleted 10")
.duration(20)
.EUt(-GTValues.V[GTValues.UIV])
event.recipes.gtceu.large_naquadah_reactor("kubejs:process_t2_fuel")
.inputFluids("gtceu:naq_fuel_t2 10")
.outputFluids("gtceu:naq_fuel_t2_depleted 10")
.duration(20)
.EUt(-GTValues.V[GTValues.OpV])
event.recipes.gtceu.large_naquadah_reactor("kubejs:process_superfuel")
.inputFluids("gtceu:naquadah_superfuel 10")
.outputFluids("gtceu:naquadah_superfuel_depleted 10")
.duration(20)
.EUt(-4 * GTValues.V[GTValues.MAX])
}
// Solid Large Reactor Recipes
if (!doHarderNaqFuel) {
event.recipes.gtceu.large_naquadah_reactor("kubejs:process_solid_fuel")
.itemInputs("4x kubejs:naquadah_fuel_rod")
.itemOutputs("4x kubejs:hot_depleted_naquadah_fuel_rod")
.duration(24000)
.EUt(-GTValues.V[GTValues.UIV])
}
else {
event.recipes.gtceu.large_naquadah_reactor("kubejs:process_solid_fuel")
.itemInputs("4x kubejs:naquadah_fuel_rod")
.itemOutputs("4x kubejs:hot_depleted_naquadah_fuel_rod")
.duration(24000)
.EUt(-GTValues.V[GTValues.UEV])
}
})

View file

@ -0,0 +1,76 @@
/**
* Netherite processing line
*/
ServerEvents.recipes(event => {
// We only use GT ores for the oreproc page and autogenned intermediates, not for the in-stone ore
event.remove({ not: [{ input: "minecraft:ancient_debris" }, { input: "#forge:ores/netherite_scrap" }], output: "gtceu:crushed_netherite_scrap_ore" })
event.remove([{ type: "minecraft:smelting", output: "minecraft:netherite_scrap", id: /gtceu:smelting\/.*netherite_scrap_ore.*/ }, { type: "minecraft:blasting", output: "minecraft:netherite_scrap", id: /gtceu:blasting\/.*netherite_scrap_ore.*/ }])
event.remove({ id: "gtceu:alloy_smelt_netherite_scrap_to_nugget" })
// Omnic Acid
event.recipes.gtceu.large_chemical_reactor("omnic_acid")
.itemInputs("5x gtceu:carbon_dust", "4x kubejs:mote_of_omnium")
.inputFluids(Fluid.of("water", 3000))
.itemOutputs("gtceu:omnic_acid_dust")
.outputFluids(Fluid.of("gtceu:hydrogen", 2000))
.duration(200)
.EUt(GTValues.VA[GTValues.ZPM])
// Ancient Debris crushing
event.recipes.gtceu.macerator("macerate_ancient_debris_to_crushed_ore")
.itemInputs("minecraft:ancient_debris")
.itemOutputs("2x gtceu:crushed_netherite_scrap_ore")
.chancedOutput("gtceu:obsidian_dust", 1400, 850)
.chancedOutput("gtceu:netherrack_dust", 1200, 800)
.duration(400)
.EUt(2)
.category("gtceu:ore_crushing")
// Omnic Acid Purifying
event.recipes.gtceu.chemical_reactor("ancient_debris_purifying")
.itemInputs("gtceu:netherite_scrap_dust", "gtceu:omnic_acid_dust")
.inputFluids(Fluid.of("water", 2000))
.itemOutputs("kubejs:purified_ancient_debris_dust")
.chancedOutput("gtceu:platinum_dust", 3300, 0)
.duration(300)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.arc_furnace("ancient_debris_arc_smelting")
.itemInputs("kubejs:purified_ancient_debris_dust")
.inputFluids(Fluid.of("gtceu:oxygen", 1200))
.chancedOutput("gtceu:palladium_dust", 1400, 850)
.itemOutputs("kubejs:processed_ancient_debris_dust")
.duration(300)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.electric_blast_furnace("netherite_scrap_blasting")
.itemInputs("kubejs:processed_ancient_debris_dust", "8x kubejs:quantum_flux")
.inputFluids(Fluid.of("gtceu:blaze", 1000))
.itemOutputs("kubejs:inert_netherite_scrap")
.duration(100)
.EUt(GTValues.VA[GTValues.ZPM])
.blastFurnaceTemp(12000)
// Activated Nethline
event.recipes.gtceu.forming_press("inert_nether_compound_ingot")
.itemInputs("gtceu:hot_europium_ingot", "4x kubejs:wither_bone", "3x gtceu:dark_soularium_dust", "4x kubejs:primal_mana")
.itemOutputs("kubejs:inert_nether_compound_ingot")
.duration(300)
.EUt(GTValues.VA[GTValues.UV])
event.recipes.gtceu.omnic_forge("netherite_ingot_final")
.itemInputs("kubejs:inert_nether_compound_ingot", "2x kubejs:diamond_lattice", "4x kubejs:inert_netherite_scrap", "4x minecraft:gold_ingot")
.itemOutputs("gtceu:activated_netherite_ingot")
.duration(200)
.EUt(GTValues.VA[GTValues.UHV])
})
ServerEvents.tags("item", event => {
const oresToRemove = event.get("forge:ores/netherite_scrap").getObjectIds();
if(!oresToRemove.add("gtceu:raw_netherite_scrap")) console.error("Could not add Raw Netherite Scrap from list of Netherite Scrap ores to nuke")
event.removeAllTagsFrom(oresToRemove.filter((value) => {
return ResourceLocation.of("minecraft:ancient_debris", ":").compareTo(value) != 0
}))
})

View file

@ -0,0 +1,119 @@
/**
* Omnic Forge multiblock
*/
ServerEvents.recipes(event => {
event.recipes.extendedcrafting.shaped_table("gtceu:omnic_forge", [
"ASESA",
"SCRCS",
"EVTVE",
"SCRCS",
"ASESA"
], {
A: "#gtceu:circuits/uhv",
S: "gtceu:double_neutronium_plate",
E: "gtceu:uv_field_generator",
C: "kubejs:omnic_matrix_machine_casing",
R: "gtceu:uv_robot_arm",
V: "gtceu:uv_conveyor_module",
T: "gtceu:uv_machine_hull"
})
event.recipes.gtceu.assembler("kubejs:omnic_matrix_machine_casing")
.itemInputs("12x gtceu:omnium_plate", "2x gtceu:crystal_matrix_frame", "1x gtceu:zpm_field_generator", "2x #gtceu:circuits/uv")
.itemOutputs("2x kubejs:omnic_matrix_machine_casing")
.duration(200)
.EUt(65520)
event.recipes.gtceu.omnic_forge("kubejs:omnic_matrix_machine_casing_forge")
.itemInputs("6x gtceu:omnium_plate", "gtceu:crystal_matrix_frame", "gtceu:zpm_field_generator", "#gtceu:circuits/uv")
.itemOutputs("2x kubejs:omnic_matrix_machine_casing")
.duration(100)
.EUt(65520)
event.recipes.gtceu.omnic_forge("kubejs:omnic_matrix_coil")
.itemInputs("8x gtceu:omnium_double_wire", "8x gtceu:crystal_matrix_foil")
.itemOutputs("kubejs:omnic_matrix_coil_block")
.duration(1000)
.EUt(GTValues.VA[GTValues.UHV])
event.recipes.gtceu.omnic_forge("kubejs:netherite_casing")
.itemInputs("8x gtceu:neutronium_plate", "8x gtceu:large_scale_assembler_casing", "2x gtceu:dense_activated_netherite_plate", "6x gtceu:tungsten_steel_rod")
.itemOutputs("4x kubejs:dimensional_stabilization_netherite_casing")
.duration(100)
.EUt(65520)
event.recipes.gtceu.omnic_forge("kubejs:bioalloy_casing")
.itemInputs("4x gtceu:sculk_bioalloy_plate", "2x gtceu:cryolobus_frame", "4x kubejs:warden_horn", "6x gtceu:actinium_rod")
.itemOutputs("2x kubejs:bioalloy_casing")
.duration(100)
.EUt(GTValues.VA[GTValues.UV])
event.recipes.gtceu.omnic_forge("kubejs:bioalloy_fusion_casing")
.itemInputs("gtceu:uhv_machine_hull", "2x kubejs:bioalloy_casing", "12x gtceu:cryococcus_plate", "4x gtceu:fusion_casing_mk3", "gtceu:uhv_field_generator")
.itemOutputs("4x kubejs:bioalloy_fusion_casing")
.duration(200)
.EUt(GTValues.VA[GTValues.UHV])
event.recipes.gtceu.omnic_forge("kubejs:timeless_monic_heavy_plating")
.itemInputs("10x gtceu:monium_plate", "8x kubejs:quantum_fluxed_eternium_heavy_plating", "4x kubejs:universe_resistant_neutronium_heavy_plating", "4x kubejs:elementally_infused_omnic_matrix_heavy_plating", "2x kubejs:dimensionally_stabilized_infinity_heavy_plating", "16x kubejs:contained_singularity")
.itemOutputs("kubejs:timeless_monic_heavy_plating")
.duration(800)
.EUt(134217728)
// Buffed Catalyst Recycling
event.recipes.gtceu.omnic_forge("kubejs:furious_infinity_catalyst_recycling")
.itemInputs("kubejs:dormant_furious_infinity_catalyst", "kubejs:heart_of_a_universe")
.itemOutputs("kubejs:furious_infinity_catalyst")
.duration(2000)
.EUt(65520)
event.recipes.gtceu.omnic_forge("kubejs:serene_infinity_catalyst_recycling")
.itemInputs("kubejs:inert_serene_infinity_catalyst", "kubejs:heart_of_a_universe")
.itemOutputs("kubejs:serene_infinity_catalyst")
.duration(2000)
.EUt(65520)
// Enhanced Infinity Catalyst Crafting
event.recipes.gtceu.omnic_forge("kubejs:furious_infinity_catalyst_crafting")
.itemInputs("kubejs:infinity_catalyst", "kubejs:heart_of_a_universe", "gtceu:infinity_frame", "2x gtceu:uev_emitter", "64x gtceu:holmium_foil")
.itemOutputs("kubejs:furious_infinity_catalyst")
.duration(1000)
.EUt(1966080)
event.recipes.gtceu.omnic_forge("kubejs:serene_infinity_catalyst_crafting")
.itemInputs("kubejs:infinity_catalyst", "kubejs:heart_of_a_universe", "gtceu:monium_frame", "16x kubejs:contained_singularity")
.itemOutputs("kubejs:serene_infinity_catalyst")
.duration(1000)
.EUt(1966080)
// Simplified Crafting
event.recipes.gtceu.omnic_forge("kubejs:omnic_forge_dark_soularium_thruster")
.itemInputs("4x gtceu:dark_soularium_plate", "6x gtceu:vibrant_alloy_plate", "2x enderio:ender_crystal", "2x enderio:prescient_crystal", "laserio:energy_overclocker_card_tier_8", "kubejs:flight_control_unit")
.itemOutputs("kubejs:dark_soularium_thruster")
.duration(100)
.EUt(7680)
event.recipes.gtceu.omnic_forge("kubejs:omnic_forge_flux_thruster")
.itemInputs("3x redstone_arsenal:flux_plating", "4x gtceu:enderium_plate", "2x gtceu:signalum_plate", "thermal:dynamo_numismatic", "kubejs:glowstone_elevation_unit", "kubejs:cryotheum_coolant_unit")
.itemOutputs("kubejs:fluxed_thruster")
.duration(50)
.EUt(7680)
event.recipes.gtceu.omnic_forge("kubejs:omnic_forge_quantum_flux")
.itemInputs("redstone_arsenal:flux_gem", "4x kubejs:primal_mana", "2x minecraft:dragon_breath", "gtceu:nether_star_dust")
.itemOutputs("64x kubejs:quantum_flux")
.duration(50)
.EUt(1920)
event.recipes.gtceu.omnic_forge("fieldstabilizedcompound")
.itemInputs("4x gtceu:uiv_field_generator", "3x gtceu:uev_field_generator", "2x gtceu:uhv_field_generator", "12x gtceu:omnic_acid_dust", "10x kubejs:quasi_stable_neutron_star")
.itemOutputs("kubejs:field_stabilised_omnic_pulsar_compound")
.duration(255)
.EUt(16380)
event.recipes.gtceu.omnic_forge("singularity_containment_unit")
.itemInputs("4x gtceu:monium_plate", "4x gtceu:neutron_reflector", "1x gtceu:uev_sensor", "2x gtceu:uhv_sensor", "gtceu:uev_field_generator")
.itemOutputs("64x kubejs:singularity_containment_unit")
.duration(300)
.EUt(16380)
})

View file

@ -0,0 +1,216 @@
/**
* Processing lines for post-tank Wafers
*/
ServerEvents.recipes(event => {
// Post-tank PIC
event.recipes.gtceu.laser_engraver("uxpic_wafer_neutronium")
.itemInputs("gtceu:neutronium_wafer")
.notConsumable("#forge:lenses/lime")
.itemOutputs("kubejs:uxpic_wafer")
.cleanroom(CleanroomType.CLEANROOM)
.duration(25 * 20)
.EUt(GTValues.VA[GTValues.ZPM])
event.recipes.gtceu.laser_engraver("uxpic_wafer_universe")
.itemInputs("kubejs:universe_wafer")
.notConsumable("#forge:lenses/lime")
.itemOutputs("2x kubejs:uxpic_wafer")
.cleanroom(CleanroomType.CLEANROOM)
.duration(25 * 20)
.EUt(GTValues.VA[GTValues.UV])
event.recipes.gtceu.cutter("uxpic_chip")
.itemInputs("kubejs:uxpic_wafer")
.itemOutputs("1x kubejs:uxpic_chip")
.cleanroom(CleanroomType.CLEANROOM)
.duration(45 * 20)
.EUt(GTValues.VHA[GTValues.ZPM])
// WIP: Post Tank Boule
event.recipes.gtceu.electric_blast_furnace("universe_doped_boule")
.itemInputs("kubejs:heart_of_a_universe", "64x gtceu:silicon_block", "16x kubejs:stabilized_oganesson")
.inputFluids("kubejs:molten_pyrotheum 16000")
.itemOutputs("kubejs:universe_boule")
.duration(18000)
.EUt(250000)
.blastFurnaceTemp(11000)
event.recipes.gtceu.cutter("universe_wafer")
.itemInputs("kubejs:universe_boule")
.inputFluids(Fluid.of("minecraft:water", 1000))
.itemOutputs("64x kubejs:universe_wafer", "64x kubejs:universe_wafer")
.cleanroom(CleanroomType.CLEANROOM)
.duration(7200)
.EUt(128000)
event.recipes.gtceu.cutter("universe_wafer_distilled")
.itemInputs("kubejs:universe_boule")
.inputFluids(Fluid.of("gtceu:distilled_water", 750))
.itemOutputs("64x kubejs:universe_wafer", "64x kubejs:universe_wafer")
.cleanroom(CleanroomType.CLEANROOM)
.duration(4800)
.EUt(128000)
event.recipes.gtceu.cutter("universe_wafer_lubricant")
.itemInputs("kubejs:universe_boule")
.inputFluids(Fluid.of("gtceu:lubricant", 250))
.itemOutputs("64x kubejs:universe_wafer", "64x kubejs:universe_wafer")
.cleanroom(CleanroomType.CLEANROOM)
.duration(3600)
.EUt(128000)
function UniverseEngrave(name, lens, wafer, time) {
event.recipes.gtceu.laser_engraver(name)
.itemInputs("kubejs:universe_wafer")
.notConsumable(lens)
.itemOutputs(wafer)
.duration(time)
.cleanroom(CleanroomType.CLEANROOM)
.EUt(16000)
}
UniverseEngrave("ilc_wafer", "#forge:lenses/red", "32x gtceu:ilc_wafer", 20);
UniverseEngrave("ram_wafer", "#forge:lenses/green", "32x gtceu:ram_wafer", 20);
UniverseEngrave("cpu_wafer", "#forge:lenses/light_blue", "32x gtceu:cpu_wafer", 20);
UniverseEngrave("lpic_wafer", "gtceu:orange_glass_lens", "32x gtceu:lpic_wafer", 20);
UniverseEngrave("mpic_wafer", "gtceu:brown_glass_lens", "32x gtceu:mpic_wafer", 100);
UniverseEngrave("simple_soc_wafer", "gtceu:cyan_glass_lens", "32x gtceu:simple_soc_wafer", 20);
UniverseEngrave("hasoc_wafer", "gtceu:black_glass_lens", "4x gtceu:highly_advanced_soc_wafer", 500);
UniverseEngrave("ulpic_wafer", "#forge:lenses/blue", "32x gtceu:ulpic_wafer", 20);
UniverseEngrave("soc_wafer", "gtceu:yellow_glass_lens", "16x gtceu:soc_wafer", 100);
UniverseEngrave("asoc_wafer", "#forge:lenses/purple", "8x gtceu:advanced_soc_wafer", 200);
UniverseEngrave("nand_wafer", "gtceu:gray_glass_lens", "16x gtceu:nand_memory_wafer", 100);
UniverseEngrave("nor_wafer", "gtceu:pink_glass_lens", "16x gtceu:nor_memory_wafer", 100);
// Multidimensional CPU
event.recipes.gtceu.laser_engraver("unactivated_dimensional_cpu_wafer")
.itemInputs("kubejs:universe_wafer")
.notConsumable("gtceu:light_gray_glass_lens")
.itemOutputs("kubejs:unactivated_multidimensional_cpu_wafer")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1200)
.EUt(GTValues.VA[GTValues.LuV])
event.recipes.gtceu.large_chemical_reactor("multidimensional_cpu_wafer")
.itemInputs("16x kubejs:unactivated_multidimensional_cpu_wafer", "64x kubejs:quantum_flux", "kubejs:quasi_stable_neutron_star")
.inputFluids(Fluid.of("gtceu:xenon", 1000))
.itemOutputs("16x kubejs:multidimensional_cpu_wafer")
.cleanroom(CleanroomType.CLEANROOM)
.duration(900)
.EUt(GTValues.VA[GTValues.ZPM])
event.recipes.gtceu.cutter("multidimensional_cpu_chip")
.itemInputs("kubejs:multidimensional_cpu_wafer")
.inputFluids(Fluid.of("minecraft:water", 1000))
.itemOutputs("16x kubejs:multidimensional_cpu_chip")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1800)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.cutter("multidimensional_cpu_chip_distilled")
.itemInputs("kubejs:multidimensional_cpu_wafer")
.inputFluids(Fluid.of("gtceu:distilled_water", 750))
.itemOutputs("16x kubejs:multidimensional_cpu_chip")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1200)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.cutter("multidimensional_cpu_chip_lubricant")
.itemInputs("kubejs:multidimensional_cpu_wafer")
.inputFluids(Fluid.of("gtceu:lubricant", 250))
.itemOutputs("16x kubejs:multidimensional_cpu_chip")
.cleanroom(CleanroomType.CLEANROOM)
.duration(900)
.EUt(GTValues.VA[GTValues.IV])
// Hyperdynamic RAM
event.recipes.gtceu.laser_engraver("hyperdynamic_ram_wafer")
.itemInputs("kubejs:universe_wafer")
.notConsumable("gtceu:magenta_glass_lens")
.itemOutputs("kubejs:hyperdynamic_ram_wafer")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1200)
.EUt(GTValues.VA[GTValues.ZPM])
event.recipes.gtceu.cutter("hyperdynamic_ram_chip")
.itemInputs("kubejs:hyperdynamic_ram_wafer")
.inputFluids(Fluid.of("minecraft:water", 1000))
.itemOutputs("12x kubejs:hyperdynamic_ram_chip_base")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1800)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.cutter("hyperdynamic_ram_chip_distilled")
.itemInputs("kubejs:hyperdynamic_ram_wafer")
.inputFluids(Fluid.of("gtceu:distilled_water", 750))
.itemOutputs("12x kubejs:hyperdynamic_ram_chip_base")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1200)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.cutter("hyperdynamic_ram_chip_lubricant")
.itemInputs("kubejs:hyperdynamic_ram_wafer")
.inputFluids(Fluid.of("gtceu:lubricant", 250))
.itemOutputs("12x kubejs:hyperdynamic_ram_chip_base")
.cleanroom(CleanroomType.CLEANROOM)
.duration(900)
.EUt(GTValues.VA[GTValues.IV])
event.recipes.gtceu.circuit_assembler("activated_hyperdynamic_ram_chip")
.itemInputs("4x kubejs:hyperdynamic_ram_chip_base", "2x kubejs:matter_processing_unit", "4x gtceu:advanced_smd_transistor", "12x gtceu:fine_holmium_wire")
.inputFluids("gtceu:soldering_alloy 144")
.itemOutputs("4x kubejs:hyperdynamic_ram_chip")
.cleanroom(CleanroomType.CLEANROOM)
.duration(300)
.EUt(GTValues.VA[GTValues.UV])
event.recipes.gtceu.circuit_assembler("activated_hyperdynamic_ram_chip_complex")
.itemInputs("4x kubejs:hyperdynamic_ram_chip_base", "2x kubejs:matter_processing_unit", "1x kubejs:complex_smd_transistor", "12x gtceu:fine_holmium_wire")
.inputFluids("gtceu:soldering_alloy 144")
.itemOutputs("4x kubejs:hyperdynamic_ram_chip")
.cleanroom(CleanroomType.CLEANROOM)
.duration(150)
.EUt(GTValues.VA[GTValues.UV])
// Quantum SoC
event.recipes.gtceu.laser_engraver("quantum_soc_wafer")
.itemInputs("kubejs:universe_wafer")
.notConsumable("gtceu:nether_star_lens")
.itemOutputs("kubejs:quantum_soc_wafer")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1200)
.EUt(GTValues.VA[GTValues.UV])
event.recipes.gtceu.cutter("quantum_soc_chip")
.itemInputs("kubejs:quantum_soc_wafer")
.inputFluids(Fluid.of("minecraft:water", 1000))
.itemOutputs("6x kubejs:quantum_soc_chip_base")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1800)
.EUt(GTValues.VA[GTValues.LuV])
event.recipes.gtceu.cutter("quantum_soc_chip_distilled")
.itemInputs("kubejs:quantum_soc_wafer")
.inputFluids(Fluid.of("gtceu:distilled_water", 750))
.itemOutputs("6x kubejs:quantum_soc_chip_base")
.cleanroom(CleanroomType.CLEANROOM)
.duration(1200)
.EUt(GTValues.VA[GTValues.LuV])
event.recipes.gtceu.cutter("quantum_soc_chip_lubricant")
.itemInputs("kubejs:quantum_soc_wafer")
.inputFluids(Fluid.of("gtceu:lubricant", 250))
.itemOutputs("6x kubejs:quantum_soc_chip_base")
.cleanroom(CleanroomType.CLEANROOM)
.duration(900)
.EUt(GTValues.VA[GTValues.LuV])
event.recipes.gtceu.circuit_assembler("activated_quantum_soc_chip")
.itemInputs("8x kubejs:quantum_soc_chip_base", "4x kubejs:complex_smd_transistor", "4x kubejs:complex_smd_resistor", "4x kubejs:complex_smd_capacitor", "4x kubejs:complex_smd_diode", "4x kubejs:complex_smd_inductor")
.inputFluids("gtceu:soldering_alloy 144")
.itemOutputs("8x kubejs:quantum_soc_chip")
.cleanroom(CleanroomType.CLEANROOM)
.duration(300)
.EUt(GTValues.VA[GTValues.UIV])
})

View file

@ -0,0 +1,47 @@
/**
* Soul Binder multiblock
*/
ServerEvents.recipes(event => {
event.recipes.extendedcrafting.shaped_table("gtceu:quintessence_infuser", [
"SCFCS",
"CALAC",
"GLBLG",
"CALAC",
"SCFCS",
], {
S: "gtceu:zpm_sensor",
C: "gtceu:double_dark_soularium_plate",
F: "gtceu:luv_field_generator",
A: "kubejs:dark_soularium_casing",
L: "#gtceu:circuits/zpm",
G: "gtceu:zpm_field_generator",
B: "enderio:soul_binder"
}).id("kubejs:shaped/quintessence_infuser")
// Warding Dark Soularium Casing Recipe
event.recipes.gtceu.assembler("kubejs:dark_soularium_casing")
.itemInputs("6x gtceu:dark_soularium_plate", "1x gtceu:tungsten_frame")
.itemOutputs("2x kubejs:dark_soularium_casing")
.duration(50)
.EUt(16)
function Soulbinding(id, mob, input2, EUt, fluid, output) {
event.recipes.gtceu.quintessence_infuser(`${id}_${mob}`)
.itemInputs(Item.of("enderio:filled_soul_vial", `{BlockEntityTag:{EntityStorage:{Entity:{id:"minecraft:${mob}"}}}}`).weakNBT())
.itemInputs(Item.of(input2))
.inputFluids(Fluid.of("enderio:xp_juice", fluid))
.itemOutputs(output)
.duration(150)
.EUt(EUt)
}
Soulbinding("enderio:prescient_crystal", "shulker", "enderio:vibrant_crystal", 170, 2240, ["enderio:prescient_crystal", "enderio:empty_soul_vial"])
Soulbinding("enderio:ender_crystal", "enderman", "enderio:vibrant_crystal", 128, 1440, ["enderio:ender_crystal", "enderio:empty_soul_vial"])
Soulbinding("enderio:enticing_crystal", "villager", "minecraft:emerald", 100, 800, ["enderio:enticing_crystal", "enderio:empty_soul_vial"])
Soulbinding("enderio:frank_n_zombie", "zombie", "enderio:z_logic_controller", 128, 800, ["enderio:frank_n_zombie", "enderio:empty_soul_vial"])
Soulbinding("enderio:sentient_ender", "witch", "enderio:ender_resonator", 128, 800, ["enderio:sentient_ender", "enderio:empty_soul_vial"])
})

View file

@ -0,0 +1,183 @@
/**
* Atomic Reconstructor singleblock
*/
ServerEvents.recipes(event => {
const reconstructedItems = [
["minecraft:redstone", "gtceu:restonia_gem", GTValues.VA[GTValues.MV], "restonia"],
["minecraft:iron_ingot", "gtceu:enori_gem", GTValues.VA[GTValues.MV], "enori"],
["minecraft:coal", "gtceu:void_gem", GTValues.VA[GTValues.MV], "void"],
["minecraft:lapis_lazuli", "gtceu:palis_gem", GTValues.VA[GTValues.MV], "palis"],
["minecraft:diamond", "gtceu:diamatine_gem", GTValues.VA[GTValues.MV], "diamatine"],
["minecraft:emerald", "gtceu:emeradic_gem", GTValues.VA[GTValues.MV], "emeradic"],
["minecraft:coal_block", "gtceu:void_block", GTValues.VA[GTValues.MV], "void_block"],
["#forge:storage_blocks/redstone", "gtceu:restonia_block", GTValues.VA[GTValues.MV], "restonia_block"],
["#forge:storage_blocks/lapis", "gtceu:palis_block", GTValues.VA[GTValues.MV], "palis_block"],
["#forge:storage_blocks/diamond", "gtceu:diamatine_block", GTValues.VA[GTValues.MV], "diamatine_block"],
["#forge:storage_blocks/emerald", "gtceu:emeradic_block", GTValues.VA[GTValues.MV], "emeradic_block"],
["#forge:storage_blocks/iron", "gtceu:enori_block", GTValues.VA[GTValues.MV], "enori_block"],
["minecraft:sand", "minecraft:soul_sand", GTValues.VA[GTValues.MV], "soul_sand"],
["minecraft:quartz", "minecraft:prismarine_shard", GTValues.VA[GTValues.MV], "prismarine_shard"],
["minecraft:rotten_flesh", "minecraft:leather", GTValues.VA[GTValues.LV], "leather"],
["gtceu:topaz_gem", "minecraft:prismarine_crystals", GTValues.VA[GTValues.MV], "prismarine_crystals"],
["gtceu:steel_ingot", "gtceu:damascus_steel_ingot", GTValues.VA[GTValues.MV], "damascus_steel"],
["gtceu:diamatine_block", "kubejs:starry_diamond_block", GTValues.VA[GTValues.MV], "starry_diamond"],
["gtceu:obsidian_dust", "enderio:grains_of_infinity", GTValues.VA[GTValues.LV], "temp_grains"],
["minecraft:dried_kelp", "minecraft:wither_rose", GTValues.VA[GTValues.LV], "wither_rose"],
["gtceu:plant_ball", "minecraft:kelp", GTValues.VA[GTValues.LV], "kelp"],
["minecraft:obsidian", "minecraft:crying_obsidian", GTValues.VA[GTValues.LV], "crying_obsidian"],
["#forge:dyes/black", "minecraft:ink_sac", GTValues.VA[GTValues.LV], "ink_sac"],
["minecraft:ink_sac", "minecraft:glow_ink_sac", GTValues.VA[GTValues.LV], "glow_ink_sac"],
["thermal:rubberwood_sapling", "gtceu:rubber_sapling", GTValues.VA[GTValues.LV], "rubberwood_to_rubber"],
["gtceu:rubber_sapling", "thermal:rubberwood_sapling", GTValues.VA[GTValues.LV], "rubber_to_rubberwood"],
]
const crystals = ["enori", "void", "palis", "diamatine", "restonia", "emeradic"]
crystals.forEach(crystal => {
event.remove({ id: `gtceu:shaped/gear_${crystal}` })
event.remove({ id: `gtceu:shaped/gear_${crystal}_empowered` })
})
// Black Quartz
event.recipes.gtceu.electrolyzer("kubejs:black_quartz_dust")
.itemInputs("4x gtceu:quartzite_dust")
.itemOutputs("gtceu:black_quartz_dust")
.duration(400)
.EUt(90)
event.recipes.gtceu.autoclave("kubejs:black_quartz_gem__water")
.itemInputs("gtceu:black_quartz_dust")
.inputFluids(Fluid.of("minecraft:water", 250))
.itemOutputs("gtceu:black_quartz_gem")
.duration(1200)
.EUt(24)
event.recipes.gtceu.autoclave("kubejs:black_quartz_gem__distilled")
.itemInputs("gtceu:black_quartz_dust")
.inputFluids(Fluid.of("gtceu:distilled_water", 50))
.itemOutputs("gtceu:black_quartz_gem")
.duration(600)
.EUt(24)
// Black quartz, tag-based recipes for Tinted Glass
event.replaceInput({ output: "minecraft:tinted_glass" }, "minecraft:glass", "#forge:glass")
event.replaceInput({ output: "minecraft:tinted_glass" }, "minecraft:amethyst_shard", "#forge:gems/amethyst")
event.shaped("2x minecraft:tinted_glass", [
" Q ",
"QGQ",
" Q "
], {
Q: "#forge:gems/black_quartz",
G: "#forge:glass"
}).id("kubejs:tinted_glass_black_quartz")
event.recipes.gtceu.assembler("tinted_glass_black_quartz")
.itemInputs("2x #forge:gems/black_quartz", "#forge:glass")
.itemOutputs("minecraft:tinted_glass")
.duration(100)
.EUt(GTValues.VA[GTValues.LV])
// Reconstruction
reconstructedItems.forEach(([input, output, eut, id]) => {
event.recipes.gtceu.atomic_reconstruction(`kubejs:${id}`)
.itemInputs(input)
.itemOutputs(output)
.duration(20)
.EUt(eut)
})
// Universal Circuits
const tiers = ["ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpm", "uv", "uhv", "uev", "uiv"]
tiers.forEach((level) => {
event.recipes.gtceu.atomic_reconstruction(`kubejs:${level}_universal_circuit`)
.itemInputs(`#gtceu:circuits/${level}`)
.itemOutputs(`kubejs:${level}_universal_circuit`)
.EUt(32)
.duration(5)
})
const reconstructorrecipe = [
["lv", "lead"],
["mv", "rose_gold"],
["hv", "beryllium"],
["ev", "platinum"],
["iv", "rhodium"],
["luv", "osmiridium"],
["zpm", "naquadah"],
["uv", "duranium"],
["uhv", "tritanium"],
["uev", "omnium"],
["uiv", "holmium"]
]
reconstructorrecipe.forEach(([tier, plate]) => {
event.shaped(`gtceu:${tier}_atomic_reconstructor`, [
"CPC",
"EHE",
"PPM"
], {
P: `gtceu:${plate}_plate`,
E: `gtceu:${tier}_emitter`,
H: `gtceu:${tier}_machine_hull`,
C: `#gtceu:circuits/${tier}`,
M: `gtceu:${tier}_electric_motor`
}).id(`kubejs:shaped/${tier}_atomic_reconstructor`)
})
// Crystal Gears
crystals.forEach(crystal => {
event.recipes.gtceu.extruder(`kubejs:${crystal}_gear`)
.itemInputs(`4x gtceu:${crystal}_gem`)
.itemOutputs(`gtceu:${crystal}_gear`)
.notConsumable("gtceu:gear_extruder_mold")
.duration(80)
.EUt(56)
})
// Flower conversion convenience recipes
const flowerCycle = [
"dandelion",
"poppy",
"blue_orchid",
"allium",
"azure_bluet",
"red_tulip",
"orange_tulip",
"white_tulip",
"pink_tulip",
"oxeye_daisy",
"cornflower",
"lily_of_the_valley",
// 'sunflower', //Flowers that give 2x as much dye are excluded. Sorry!
// 'lilac',
// 'rose_bush',
// 'peony',
"spore_blossom",
"wither_rose",
"dead_bush"
]
reconstructCycle(flowerCycle);
// Fungus conversion convenience recipes
const fungusCycle = [
"red_mushroom",
"brown_mushroom",
"nether_wart"
]
reconstructCycle(fungusCycle);
/**
* Creates a "cycle" of Atomic Reconstructor recipes that allow players to transmute
* any one item in the cycle into any other, through repeated applications of Atomic Reconstruction.
* Best applied to plants or fungi, where getting one enables you to get many more easily.
*
* @param {Ingredient[]} cycle The array of ingredients for the AR to cycle through
*/
function reconstructCycle(cycle) {
cycle.forEach((flower, index) => {
let curItem = cycle[index];
let nextItem = cycle[(index + 1) % cycle.length];
event.recipes.gtceu.atomic_reconstruction(`gtceu:${curItem}_to_${nextItem}`)
.itemInputs(`minecraft:${curItem}`)
.itemOutputs(`minecraft:${nextItem}`)
.EUt(GTValues.VA[GTValues.LV])
.duration(30)
})
}
})

View file

@ -0,0 +1,78 @@
/**
* Rock Cycle Simulator multiblock
*/
ServerEvents.recipes(event => {
// Recipe
event.shaped("gtceu:rock_cycle_simulator", [
"PMP",
"CHC",
"UWU"
], {
P: "gtceu:iv_electric_piston",
C: "#gtceu:circuits/iv",
U: "gtceu:iv_electric_pump",
M: "gtceu:iv_electric_motor",
W: "gtceu:platinum_single_cable",
H: "gtceu:iv_rock_crusher"
}).id("kubejs:shaped/rock_cycle_simulator")
// Recipe Function
function RockCycle(id, input, output, EUt) {
event.recipes.gtceu.rock_cycle_simulator(`kubejs:${id}`)
.notConsumable(Item.of(input))
.itemOutputs(output)
.duration(16)
.EUt(EUt)
}
RockCycle("stone", "minecraft:stone", "minecraft:stone", 7)
RockCycle("cobble", "minecraft:cobblestone", "minecraft:cobblestone", 7)
RockCycle("diorite", "minecraft:diorite", "minecraft:diorite", 60)
RockCycle("andesite", "minecraft:andesite", "minecraft:andesite", 60)
RockCycle("granite", "minecraft:granite", "minecraft:granite", 60)
RockCycle("basalt", "minecraft:basalt", "minecraft:basalt", 240)
RockCycle("blackstone", "minecraft:blackstone", "minecraft:blackstone", 240)
RockCycle("obsidian", "minecraft:redstone", "minecraft:obsidian", 240)
RockCycle("marble", "gtceu:marble", "gtceu:marble", 240)
RockCycle("red_granite", "gtceu:red_granite", "gtceu:red_granite", 960)
RockCycle("deepslate", "minecraft:deepslate", "minecraft:deepslate", 960)
RockCycle("calcite", "minecraft:calcite", "minecraft:calcite", 60)
RockCycle("tuff", "minecraft:tuff", "minecraft:tuff", 60)
RockCycle("jasper", "quark:jasper", "quark:jasper", 60)
RockCycle("limestone", "quark:limestone", "quark:limestone", 60)
RockCycle("permafrost", "quark:permafrost", "quark:permafrost", 60)
RockCycle("shale", "quark:shale", "quark:shale", 60)
RockCycle("myalite", "quark:myalite", "quark:myalite", 60)
function DimensionalRockCrushing(namespace, output, EUt, dimension, waterReplacement) {
if(waterReplacement == undefined) waterReplacement = "minecraft:water"
event.recipes.gtceu.rock_breaker(`${output}`)
.notConsumable(`${namespace}:${output}`)
.itemOutputs(`${namespace}:${output}`)
.duration(16)
.EUt(EUt)
.addData("fluidA", "minecraft:lava")
.addData("fluidB", waterReplacement)
.dimension(dimension)
event.recipes.gtceu.rock_cycle_simulator(`${output}`)
.notConsumable(`${namespace}:${output}`)
.itemOutputs(`${namespace}:${output}`)
.duration(16)
.EUt(EUt)
.dimension(dimension)
}
DimensionalRockCrushing("minecraft", "end_stone", GTValues.VA[GTValues.IV], "minecraft:the_end")
DimensionalRockCrushing("minecraft", "netherrack", GTValues.VA[GTValues.EV], "minecraft:the_nether", "kubejs:molten_cryotheum")
DimensionalRockCrushing("ad_astra", "moon_stone", GTValues.VHA[GTValues.HV], "ad_astra:moon")
DimensionalRockCrushing("ad_astra", "moon_deepslate", GTValues.VHA[GTValues.HV], "ad_astra:moon")
DimensionalRockCrushing("ad_astra", "mars_stone", GTValues.VHA[GTValues.HV], "ad_astra:mars")
DimensionalRockCrushing("ad_astra", "conglomerate", GTValues.VHA[GTValues.HV], "ad_astra:mars")
DimensionalRockCrushing("ad_astra", "venus_stone", GTValues.VHA[GTValues.EV], "ad_astra:venus")
DimensionalRockCrushing("ad_astra", "infernal_spire_block", GTValues.VHA[GTValues.EV], "ad_astra:venus")
DimensionalRockCrushing("ad_astra", "mercury_stone", GTValues.VHA[GTValues.EV], "ad_astra:mercury")
DimensionalRockCrushing("ad_astra", "glacio_stone", GTValues.VHA[GTValues.IV], "ad_astra:glacio")
DimensionalRockCrushing("ad_astra", "permafrost", GTValues.VHA[GTValues.IV], "ad_astra:glacio")
})

View file

@ -0,0 +1,102 @@
/**
* Alien scrap processing line
*/
ServerEvents.recipes(event => {
// Scrap
event.recipes.gtceu.sifter("scrap_sifting")
.itemInputs("kubejs:alien_scrap")
.itemOutputs("kubejs:ruined_machine_parts")
.chancedOutput("kubejs:ruined_machine_parts", 3300, 200)
.itemOutputs("kubejs:ruined_hull")
.chancedOutput("kubejs:ruined_hull", 5000, 200)
.chancedOutput("kubejs:ruined_hull", 3300, 200)
.chancedOutput("gtceu:ruthenium_trinium_americium_neutronate_dust", 3300, 0)
.duration(400)
.EUt(16380)
// Ruined Machine Parts
event.recipes.gtceu.sifter("ruined_machine_sifting")
.itemInputs("kubejs:ruined_machine_parts")
.itemOutputs("gtceu:neutronium_dust")
.chancedOutput("gtceu:graphene_dust", 5000, 0)
.chancedOutput("gtceu:yttrium_barium_cuprate_dust", 5000, 0)
.chancedOutput("kubejs:ruined_capacitor", 5000, 0)
.chancedOutput("kubejs:ruined_sensor", 5000, 0)
.chancedOutput("kubejs:ruined_emitter", 5000, 0)
.duration(400)
.EUt(16380)
// Ruined Hull
event.recipes.gtceu.centrifuge("ruined_hull_maceration")
.itemInputs("kubejs:ruined_hull")
.itemOutputs("5x gtceu:neutronium_dust")
.itemOutputs("3x gtceu:tritanium_dust")
.itemOutputs("4x gtceu:crystal_matrix_dust")
.chancedOutput("kubejs:crushed_sensor", 3300, 0)
.chancedOutput("kubejs:magnetic_capacitor_dust", 3300, 0)
.chancedOutput("kubejs:holmium_oxide_glass_dust", 3300, 0)
.duration(400)
.EUt(16380)
// Supercap
// A simple "crush the thing and get the good stuff"
event.recipes.gtceu.macerator("alien_scrap_supercap_crushing")
.itemInputs("kubejs:ruined_capacitor")
.chancedOutput("kubejs:crushed_capacitor", 9500, 0)
.chancedOutput("gtceu:enriched_naquadah_trinium_europium_duranide_dust", 3300, 0)
.duration(100)
.EUt(16380)
event.recipes.gtceu.electromagnetic_separator("alien_scrap_supercap_electro")
.itemInputs("kubejs:crushed_capacitor")
.chancedOutput("kubejs:magnetic_capacitor_dust", 9500, 0)
.chancedOutput("gtceu:carbon_dust", 3300, 850) // Finally, an easy way to get carbon!
.duration(100)
.EUt(16380)
event.recipes.gtceu.centrifuge("alien_scrap_supercap_dust_centrifuge")
.itemInputs("5x kubejs:magnetic_capacitor_dust")
.itemOutputs("gtceu:holmium_dust")
.chancedOutput("gtceu:iron_dust", 3300, 850)
.duration(100)
.EUt(16380)
// Sensor
// Ion exchange
event.recipes.gtceu.macerator("alien_scrap_sensor_crushing")
.itemInputs("kubejs:ruined_sensor")
.chancedOutput("kubejs:crushed_sensor", 9500, 0)
.chancedOutput("gtceu:neutronium_dust", 3300, 850)
.duration(600)
.EUt(16380)
event.recipes.gtceu.thermal_centrifuge("alien_scrap_sensor_centrifuge")
.itemInputs("kubejs:crushed_sensor")
.chancedOutput("kubejs:holmium_compound", 9500, 0)
.chancedOutput("gtceu:silver_dust", 3300, 850)
.duration(600)
.EUt(16380)
event.recipes.gtceu.autoclave("holmium_compound_autoclave")
.itemInputs("3x kubejs:holmium_compound")
.inputFluids("gtceu:polytetrafluoroethylene 100") // Maybe Polystyrene instead?
.itemOutputs("gtceu:holmium_dust")
.duration(600)
.EUt(16380)
// Emitter
// Has Glass containing holmium oxide
event.recipes.gtceu.macerator("alien_scrap_emitter_crushing")
.itemInputs("kubejs:ruined_emitter")
.chancedOutput("kubejs:holmium_oxide_glass_dust", 9500, 0)
.chancedOutput("gtceu:trinium_dust", 3300, 850)
.duration(400)
.EUt(16380)
event.recipes.gtceu.centrifuge("holmium_oxide_glass_centro")
.itemInputs("kubejs:holmium_oxide_glass_dust")
.itemOutputs("gtceu:holmium_oxide_dust", "gtceu:glass_dust")
.duration(400)
.EUt(16380)
})

View file

@ -0,0 +1,34 @@
/**
* Sculk Bioalloy processing line
*/
ServerEvents.recipes(event => {
event.recipes.gtceu.omnic_forge("sculk-compatible_trellis_microstructure_forging")
.itemInputs("2x extendedcrafting:crystaltine_ingot", "kubejs:the_ultimate_material", "6x gtceu:lanthanum_dust", "9x gtceu:potassium_cyanide_dust")
.itemOutputs("18x kubejs:sculk-compatible_trellis_microstructure")
.duration(140)
.EUt(GTValues.VA[GTValues.UV])
event.recipes.gtceu.large_chemical_reactor("fibrinogenic_sculk_goo")
.itemInputs("12x minecraft:sculk_vein", "4x kubejs:warden_horn", "8x gtceu:collagen_dust")
.inputFluids("gtceu:raw_growth_medium 60", "gtceu:mutagen 90")
.itemOutputs("7x kubejs:fibrinogenic_sculk_goo")
.duration(540)
.EUt(GTValues.VHA[GTValues.IV])
.cleanroom(CleanroomType.STERILE_CLEANROOM)
event.recipes.gtceu.forming_press("sculk-saturated_microstructure_pulp_press")
.itemInputs("2x kubejs:sculk-compatible_trellis_microstructure", "1x kubejs:fibrinogenic_sculk_goo")
.itemOutputs("2x kubejs:sculk-saturated_microstructure_pulp")
.duration(150)
.EUt(GTValues.VHA[GTValues.LuV])
.cleanroom(CleanroomType.STERILE_CLEANROOM)
event.recipes.gtceu.large_chemical_reactor("kubejs:animated_bioalloy_pulp_reacting")
.itemInputs("1x kubejs:sculk-saturated_microstructure_pulp", "1x gtceu:small_prussian_blue_dust", "1x minecraft:sculk_catalyst")
.inputFluids("enderio:xp_juice 5000")
.itemOutputs("kubejs:animated_bioalloy_pulp")
.duration(60)
.EUt(GTValues.VA[GTValues.LuV])
.cleanroom(CleanroomType.STERILE_CLEANROOM)
})

View file

@ -0,0 +1,68 @@
/**
* Subatomic Digital Assembler multiblock
*/
ServerEvents.recipes(event => {
function sda_print(input, circuit, output, cwut) {
event.recipes.gtceu.subatomic_digital_assembly(`kubejs:${input}_${circuit}`)
.notConsumable(`kubejs:${input}`)
.circuit(circuit)
.itemOutputs(output)
.CWUt(cwut)
.totalCWU(cwut * 500) // cwu/t multiplied by duration
.EUt(100000) // same for all recipes
}
event.recipes.extendedcrafting.shaped_table("gtceu:subatomic_digital_assembler", [
"ECFCE",
"CALAC",
"GLRLG",
"CALAC",
"ECUCE"
], {
E: "gtceu:zpm_emitter",
C: "ae2:controller",
F: "gtceu:luv_field_generator",
A: "gtceu:atomic_casing",
L: "#gtceu:circuits/luv",
G: "gtceu:zpm_field_generator",
R: "gtceu:research_station",
U: "gtceu:uv_field_generator"
}).id("kubejs:shaped/subatomic_digital_assembler")
sda_print("creative_storage_data", 1, "functionalstorage:max_storage_upgrade", 128)
sda_print("creative_storage_data", 2, "megacells:bulk_item_cell", 128)
sda_print("creative_storage_data", 3, "gtceu:uev_quantum_chest", 32)
sda_print("creative_storage_data", 4, "gtceu:uev_quantum_tank", 32)
sda_print("creative_computation_data", 1, "gtceu:creative_data_access_hatch", 256)
sda_print("creative_computation_data", 2, "gtceu:creative_computation_provider", 256)
sda_print("creative_energy_data", 1, "enderio:creative_power", 256)
sda_print("creative_energy_data", 2, "ae2:creative_energy_cell", 256)
sda_print("creative_energy_data", 3, "gtceu:creative_energy", 256)
event.recipes.gtceu.subatomic_digital_assembly("kubejs:corrupted_data")
.itemInputs("kubejs:universe_creation_data")
.itemOutputs("kubejs:shattered_universe_data")
.EUt(16000)
.circuit(1)
.totalCWU(6400)
.CWUt(32)
event.recipes.gtceu.subatomic_digital_assembly("shatteredstardata")
.itemInputs("kubejs:stellar_creation_data")
.itemOutputs("kubejs:shattered_star_data")
.EUt(16000)
.circuit(1)
.totalCWU(800)
.CWUt(16)
event.recipes.gtceu.subatomic_digital_assembly("omnicdata")
.notConsumable("kubejs:omnic_data")
.itemOutputs("gtceu:omnium_ingot")
.EUt(16000)
.circuit(1)
.totalCWU(160)
.CWUt(16)
})

View file

@ -0,0 +1,48 @@
/**
* Simulation Supercomputer multiblock
*/
ServerEvents.recipes(event => {
function supercomp(model, prediction, EUt) {
event.recipes.gtceu.simulation_supercomputer(`kubejs:${model}`)
.notConsumable(Item.of("hostilenetworks:data_model", `{data_model:{id:"hostilenetworks:${model}"}}`).weakNBT())
.itemInputs("hostilenetworks:prediction_matrix")
.itemOutputs(`hostilenetworks:${prediction}_prediction`)
.chancedOutput(Item.of("hostilenetworks:prediction", `{data_model:{id:"hostilenetworks:${model}"}}`), 3000, 500)
.duration(15.05 * 20) // same for all recipes
.EUt(EUt)
}
if (doHNN) {
// //// Machine Recipe //////
event.recipes.gtceu.assembly_line("simulation_supercomputer")
.itemInputs("gtceu:atomic_casing", "6x gtceu:trinaquadalloy_plate", "4x hostilenetworks:sim_chamber", "kubejs:heart_of_a_universe", "4x #gtceu:circuits/uhv", "2x gtceu:uv_robot_arm", "2x gtceu:uv_field_generator", "kubejs:abyssal_energy_core")
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs("gtceu:simulation_supercomputer")
.stationResearch(b => b
.researchStack("hostilenetworks:sim_chamber")
.EUt(1966080)
.CWUt(128, 512000)
)
.duration(1200)
.EUt(1966080)
// //// Computer Recipes //////
supercomp("thermal/thermal_elemental", "overworld", 256)
supercomp("shulker", "end", 128)
supercomp("wither_skeleton", "nether", 256)
supercomp("ender_dragon", "end", 1666)
supercomp("slime", "overworld", 16)
supercomp("skeleton", "overworld", 16)
supercomp("blaze", "nether", 256)
supercomp("zombie", "overworld", 16)
supercomp("witch", "overworld", 128)
supercomp("guardian", "overworld", 256)
supercomp("spider", "overworld", 16)
supercomp("ghast", "nether", 256)
supercomp("wither", "nether", 1666)
supercomp("creeper", "overworld", 16)
supercomp("enderman", "end", 512)
supercomp("warden", "overworld", 1666)
}
})

View file

@ -0,0 +1,86 @@
/**
* Loot Superfabricator multiblock
*/
ServerEvents.recipes(event => {
function fabricator(prediction, circuit, output) {
event.recipes.gtceu.loot_superfabricator(`kubejs:${prediction}_${circuit}`)
.itemInputs(Item.of("hostilenetworks:prediction", `{data_model:{id:"hostilenetworks:${prediction}"}}`).weakNBT())
.circuit(circuit)
.itemOutputs(output)
.duration(60) // same for all recipes
.EUt(64) // same for all recipes
}
if (doHNN) {
// //// Machine Recipe //////
event.recipes.gtceu.assembly_line("loot_superfabricator")
.itemInputs("gtceu:atomic_casing", "6x gtceu:trinaquadalloy_plate", "4x hostilenetworks:loot_fabricator", "kubejs:heart_of_a_universe", "4x #gtceu:circuits/uhv", "2x gtceu:uv_robot_arm", "2x gtceu:uv_emitter", "kubejs:abyssal_energy_core")
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs("gtceu:loot_superfabricator")
.stationResearch(b => b
.researchStack("hostilenetworks:loot_fabricator")
.EUt(1966080)
.CWUt(128, 512000)
)
.duration(1200)
.EUt(1966080)
// //// Fabricator Recipes //////
fabricator("blaze", 1, "10x minecraft:blaze_rod")
fabricator("blaze", 2, "32x gtceu:sulfur_dust")
fabricator("blaze", 3, "32x minecraft:magma_block")
fabricator("creeper", 1, "32x minecraft:gunpowder")
fabricator("creeper", 2, "6x minecraft:creeper_head")
fabricator("creeper", 3, "32x minecraft:coal")
fabricator("ender_dragon", 1, "2x minecraft:dragon_breath")
fabricator("ender_dragon", 2, "kubejs:dragon_lair_data")
fabricator("ender_dragon", 3, "4x kubejs:ender_dragon_scale")
fabricator("enderman", 1, "6x minecraft:ender_pearl")
fabricator("enderman", 2, "6x minecraft:emerald")
fabricator("enderman", 3, "2x enderio:enderman_head")
fabricator("enderman", 4, "kubejs:impossible_realm_data")
fabricator("ghast", 1, "2x minecraft:ghast_tear")
fabricator("ghast", 2, "12x gtceu:silver_ingot")
fabricator("guardian", 1, "32x minecraft:prismarine_shard")
fabricator("guardian", 2, "32x minecraft:prismarine_crystals")
fabricator("guardian", 3, "64x minecraft:cod")
fabricator("guardian", 4, "8x minecraft:gold_ingot")
fabricator("guardian", 5, "12x gtceu:aluminium_dust")
fabricator("guardian", 6, "4x kubejs:guardian_scale")
fabricator("guardian", 7, "2x minecraft:wet_sponge")
fabricator("shulker", 1, "6x minecraft:shulker_shell")
fabricator("shulker", 2, "6x minecraft:diamond")
fabricator("skeleton", 1, "64x minecraft:arrow")
fabricator("skeleton", 2, "64x minecraft:bone")
fabricator("skeleton", 3, "4x minecraft:skeleton_skull")
fabricator("skeleton", 4, "8x gtceu:tin_ingot")
fabricator("slime", 1, "32x minecraft:slime_ball")
fabricator("slime", 2, "4x gtceu:nickel_ingot")
fabricator("slime", 3, "3x gtceu:platinum_nugget")
fabricator("spider", 1, "32x minecraft:string")
fabricator("spider", 2, "16x minecraft:spider_eye")
fabricator("spider", 3, "12x minecraft:copper_ingot")
fabricator("thermal/thermal_elemental", 1, "16x gtceu:saltpeter_dust")
fabricator("thermal/thermal_elemental", 2, "16x gtceu:obsidian_dust")
fabricator("thermal/thermal_elemental", 3, "64x minecraft:snowball")
fabricator("thermal/thermal_elemental", 4, "8x thermal:blitz_rod")
fabricator("thermal/thermal_elemental", 5, "8x thermal:basalz_rod")
fabricator("thermal/thermal_elemental", 6, "8x thermal:blizz_rod")
fabricator("warden", 1, "minecraft:sculk_catalyst")
fabricator("warden", 2, "kubejs:deep_dark_data")
fabricator("warden", 3, "kubejs:warden_horn")
fabricator("witch", 1, "16x minecraft:redstone")
fabricator("witch", 2, "16x minecraft:glowstone_dust")
fabricator("witch", 3, "16x minecraft:sugar")
fabricator("wither", 1, "kubejs:wither_realm_data")
fabricator("wither", 2, "16x kubejs:wither_bone")
fabricator("wither_skeleton", 1, "4x minecraft:wither_skeleton_skull")
fabricator("wither_skeleton", 2, "12x gtceu:lead_ingot")
fabricator("zombie", 1, "40x minecraft:rotten_flesh")
fabricator("zombie", 2, "12x minecraft:iron_ingot")
fabricator("zombie", 3, "32x minecraft:carrot")
fabricator("zombie", 4, "32x minecraft:potato")
fabricator("zombie", 5, "6x minecraft:zombie_head")
}
})

View file

@ -0,0 +1,61 @@
/**
* Terbium processing line
*/
ServerEvents.recipes(event => {
// Terbium
event.recipes.gtceu.electrolyzer("rare_earth_sulfate_electrolyze")
.itemInputs("gtceu:rare_earth_dust")
.inputFluids(Fluid.of("gtceu:sulfuric_acid", 100))
.itemOutputs("kubejs:rare_earth_sulfate", "gtceu:thorium_hydroxide_dust")
.duration(600)
.EUt(37020)
event.recipes.gtceu.electric_blast_furnace("rare_earth_sulfate_blast")
.itemInputs("kubejs:rare_earth_sulfate", "gtceu:ammonium_oxalate_dust")
.itemOutputs("kubejs:rare_earth_oxide")
.duration(600)
.blastFurnaceTemp(7200)
.EUt(122880)
event.recipes.gtceu.autoclave("rare_earth_oxide_autoclave")
.itemInputs("kubejs:rare_earth_oxide")
.inputFluids(Fluid.of("gtceu:nitric_acid", 100))
.itemOutputs("kubejs:rare_earth_salt", "gtceu:cerium_dust")
.duration(300)
.EUt(480)
event.recipes.gtceu.electrolyzer("rare_earth_salt_electrolyzer")
.itemInputs("kubejs:rare_earth_salt", "gtceu:ammonium_nitrate_dust")
.itemOutputs("gtceu:terbium_salt_dust")
.duration(300)
.EUt(1200)
event.recipes.gtceu.autoclave("terbium_salt_autoclave")
.itemInputs("2x gtceu:terbium_salt_dust", "3x gtceu:calcium_dust")
.inputFluids(Fluid.of("gtceu:steam", 3840))
.itemOutputs("2x gtceu:terbium_dust", "3x gtceu:calcium_chloride_dust")
.outputFluids(Fluid.of("water", 24))
.duration(300)
.EUt(480)
// Misc
event.recipes.gtceu.chemical_reactor("ammonium_oxalate")
.itemInputs("2x gtceu:carbon_dust")
.inputFluids("gtceu:ammonia 2000", "gtceu:oxygen 4000")
.circuit(5)
.itemOutputs("gtceu:ammonium_oxalate_dust")
.duration(120).EUt(7)
event.recipes.gtceu.chemical_reactor("ammonium_nitrate")
.inputFluids("gtceu:ammonia 1000", "gtceu:nitric_acid 1000")
.circuit(5)
.itemOutputs("gtceu:ammonium_nitrate_dust")
.duration(120).EUt(7)
event.recipes.gtceu.polarizer("terbium_polarize")
.itemInputs("gtceu:long_terbium_rod")
.itemOutputs("gtceu:long_magnetic_terbium_rod")
.duration(200)
.EUt(122880)
})

View file

@ -0,0 +1,72 @@
/**
* Custom recipes for stuff that generates infinite amount of something
*/
ServerEvents.recipes(event => {
event.remove({ id: "watercollector:watercollector" })
event.remove({ id: "thermal:device_water_gen" })
event.remove({ id: "thermal:device_rock_gen" })
if (!doHarderRecipes) {
event.shaped("watercollector:watercollector", [
"AAA",
"B B",
"AAA"
], {
A: "gtceu:wrought_iron_plate",
B: "minecraft:water_bucket"
})
event.shaped("thermal:device_water_gen", [
" B ",
"CWC",
"GSG"
], {
G: "gtceu:iron_gear",
B: "minecraft:bucket",
W: "watercollector:watercollector",
S: "enderio:fused_quartz",
C: "#forge:ingots/copper"
}).id("kubejs:device_water_gen");
event.shaped("thermal:device_rock_gen", [
" P ",
"PNP",
"GHG"
], {
G: "gtceu:iron_gear",
P: "#forge:plates/steel",
N: "#forge:pistons",
H: "minecraft:hopper"
}).id("kubejs:device_rock_gen");
} else {
event.shaped("thermal:device_water_gen", [
" B ",
"CWC",
"GSG"
], {
G: "gtceu:iron_gear",
B: "minecraft:bucket",
W: "#enderio:fused_quartz",
S: "thermal:redstone_servo",
C: "#forge:ingots/copper"
}).id("kubejs:device_water_gen");
event.shaped("thermal:device_rock_gen", [
" P ",
"INI",
"GSG"
], {
G: "gtceu:iron_gear",
S: "thermal:redstone_servo",
P: "#forge:plates/steel",
I: "#forge:plates/invar",
N: "#forge:pistons"
}).id("kubejs:device_rock_gen");
}
// Infinite Cobble/Water cells
event.replaceInput({ id: "expatternprovider:water_cell" }, "minecraft:water_bucket", "gtceu:infinite_water_cover")
event.replaceInput({ id: "expatternprovider:cobblestone_cell" }, "minecraft:water_bucket", "gtceu:infinite_water_cover")
event.replaceInput({ id: "expatternprovider:water_cell" }, "minecraft:diamond", "gtceu:mythril_plate")
event.replaceInput({ id: "expatternprovider:cobblestone_cell" }, "minecraft:diamond", "gtceu:mythril_plate")
})

View file

@ -0,0 +1,171 @@
/**
* Recipe definitions for advanced microverse projector II missions.
*/
ServerEvents.recipes(event => {
// T5MM mission
microverse_mission(event, 5, 3).forEach(builder => {
builder
.itemInputs(
"16x kubejs:quantum_flux",
"16x kubejs:stabilized_americium",
"kubejs:microversal_alchemy_kit",
"4x gtceu:uhv_electric_pump",
"8x kubejs:shattered_star_data"
)
.itemOutputs("32x kubejs:stabilized_oganesson")
})
// T6MM mission (Previously HM-exclusive, no problem with making it available in NM)
microverse_mission(event, 6, 3).forEach(builder => {
builder
.itemInputs(
"16x kubejs:quantum_flux",
"16x kubejs:stabilized_curium",
"kubejs:microversal_alchemy_kit",
"8x gtceu:manyullyn_ingot",
"4x gtceu:void_empowered_block",
)
.itemOutputs(
"minecraft:sculk_catalyst"
)
})
// T7MM missions
microverse_mission(event, 7, 3, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"64x gtceu:dilithium_gem",
"3x kubejs:gem_sensor",
"64x kubejs:deep_dark_data",
"64x kubejs:deep_dark_data",
"64x kubejs:deep_dark_data"
)
.itemOutputs("kubejs:lair_of_the_warden_data")
})
microverse_mission(event, 7, 3, 240, undefined, 100).forEach(builder => {
builder
.itemInputs(
"16x kubejs:quantum_flux",
"64x gtceu:dilithium_gem",
"kubejs:blasting_kit",
"8x kubejs:deep_dark_data"
)
.itemOutputs(
"32x minecraft:sculk_catalyst",
"32x minecraft:gold_block",
"32x gtceu:silver_block",
"32x minecraft:diamond_block",
"16x gtceu:platinum_block",
"4x gtceu:ruthenium_block"
)
})
microverse_mission(event, 7, 3, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"16x kubejs:quantum_flux",
"64x gtceu:dilithium_gem",
"4x minecraft:sculk_catalyst",
"12x kubejs:deep_dark_data"
)
.itemOutputs(
"8x kubejs:warden_heart",
"24x minecraft:sculk_catalyst",
"64x kubejs:warden_horn",
"32x kubejs:warden_horn",
)
})
// T8MM missions
microverse_mission(event, 8, 3, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"32x kubejs:quantum_flux",
"64x gtceu:dilithium_gem",
"8x minecraft:sculk_catalyst",
"kubejs:lair_of_the_warden_data"
)
.itemOutputs(
"4x kubejs:hadal_shard",
"64x minecraft:sculk_catalyst",
"32x minecraft:sculk_catalyst",
"64x kubejs:warden_horn",
"64x kubejs:warden_horn",
"64x kubejs:warden_horn",
"64x kubejs:warden_horn"
)
})
microverse_mission(event, 8, 3, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"32x kubejs:quantum_flux",
"64x gtceu:dilithium_gem",
"16x kubejs:dragon_lair_data"
)
.itemOutputs(
"64x minecraft:dragon_egg",
"32x minecraft:dragon_egg",
"64x kubejs:ender_dragon_scale",
"32x kubejs:ender_dragon_scale",
"64x minecraft:dragon_breath"
)
})
microverse_mission(event, 8, 3, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"32x kubejs:quantum_flux",
"64x gtceu:dilithium_gem",
"32x kubejs:wither_realm_data"
)
.itemOutputs(
"32x gtceu:quantum_star",
"16x gtceu:quantum_eye",
"4x gtceu:gravi_star",
"4x gtceu:neutronium_ingot"
)
})
// T9MM missions
microverse_mission(event, 9, 3).forEach(builder => {
builder
.inputFluids("gtceu:nitrogen_plasma 5000")
.itemInputs("gtceu:data_module", "gtceu:uv_sensor")
.itemInputs(
"64x kubejs:stellar_creation_data",
"64x kubejs:stellar_creation_data",
"64x kubejs:stellar_creation_data",
"64x kubejs:stellar_creation_data"
)
.itemOutputs("kubejs:universe_creation_data")
})
microverse_mission(event, 9, 3).forEach(builder => {
builder
.inputFluids("gtceu:argon_plasma 5000")
.itemInputs("kubejs:gravitational_amplifier", "kubejs:stellar_creation_data", "6x gtceu:neutron_reflector")
.itemOutputs("32x gtceu:neutronium_ingot")
})
microverse_mission(event, 9, 3).forEach(builder => {
builder
.inputFluids("gtceu:oxygen_plasma 10000")
.itemInputs("kubejs:gravitational_amplifier", "16x kubejs:shattered_star_data", "64x gtceu:gravi_star")
.itemOutputs("16x kubejs:quasi_stable_neutron_star")
})
// T10MM missions
microverse_mission(event, 10, 3).forEach(builder => {
builder
.itemInputs("kubejs:universal_collapse_device", "kubejs:universe_creation_data")
.itemOutputs("kubejs:heart_of_a_universe")
})
microverse_mission(event, 10, 3).forEach(builder => {
builder
.itemInputs("16x #forge:storage_blocks/activated_netherite", "64x kubejs:stellar_creation_data")
.itemOutputs("kubejs:creative_storage_data")
})
})

View file

@ -0,0 +1,264 @@
/**
* Recipe definitions for advanced microverse projector missions.
*/
ServerEvents.recipes(event => {
// T4MM missions
microverse_mission(event, 4, 2).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.itemInputs("16x kubejs:petrotheum_dust")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:cobalt_brass_drill_head")
.itemInputs("4x kubejs:wither_realm_data")
.itemOutputs(
"64x gtceu:raw_cooperite",
"32x gtceu:raw_bornite",
"64x gtceu:raw_pentlandite",
"64x gtceu:raw_chalcocite",
)
})
microverse_mission(event, 4, 2).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.itemInputs("16x kubejs:petrotheum_dust")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:steel_drill_head")
.itemOutputs(
"64x minecraft:raw_iron",
"64x minecraft:raw_iron",
"64x minecraft:raw_iron",
"64x minecraft:raw_copper",
"64x minecraft:raw_copper",
"64x minecraft:raw_copper",
"64x minecraft:raw_gold",
"32x minecraft:raw_gold",
)
})
microverse_mission(event, 4, 2).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.itemInputs("16x kubejs:petrotheum_dust")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:diamond_drill_head")
.itemOutputs(
"64x gtceu:raw_lapis",
"64x gtceu:raw_lapis",
"32x gtceu:raw_lapis",
"64x gtceu:raw_coal",
"64x gtceu:raw_coal",
"32x gtceu:raw_coal",
"64x gtceu:raw_redstone",
)
})
microverse_mission(event, 4, 2).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.itemInputs("16x kubejs:petrotheum_dust")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:damascus_steel_drill_head")
.itemOutputs(
"64x gtceu:raw_oilsands",
"64x gtceu:raw_oilsands",
"64x gtceu:raw_oilsands",
"64x gtceu:raw_oilsands",
"64x gtceu:raw_oilsands",
"64x gtceu:raw_oilsands",
"64x enderio:grains_of_infinity",
"64x enderio:grains_of_infinity",
)
})
microverse_mission(event, 4, 2).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.itemInputs("16x kubejs:petrotheum_dust")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:wrought_iron_drill_head")
.itemOutputs(
"64x gtceu:raw_thorium",
"48x gtceu:raw_thorium",
"32x gtceu:raw_pitchblende",
)
})
microverse_mission(event, 4, 2).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.itemInputs("16x kubejs:petrotheum_dust")
.itemInputs("gtceu:data_stick")
.itemInputs("2x kubejs:ultra_dense_hydrogen")
.itemOutputs(
"5x kubejs:stellar_creation_data",
)
})
// T5MM missions
microverse_mission(event, 5, 2).forEach(builder => {
if(!doHarderRecipes) {
builder
.itemInputs("8x kubejs:quantum_flux")
.itemInputs("16x kubejs:stabilized_plutonium")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:hsse_drill_head")
.itemOutputs(
"64x gtceu:raw_cooperite",
"32x gtceu:raw_cooperite",
"64x gtceu:raw_naquadah",
"64x gtceu:raw_naquadah",
"24x gtceu:raw_kaemanite",
)
} else {
builder
.itemInputs("8x kubejs:quantum_flux")
.itemInputs("16x kubejs:stabilized_plutonium")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:hsse_drill_head")
.itemOutputs(
"36x gtceu:raw_pollucite",
"32x gtceu:raw_cooperite",
"64x gtceu:raw_snowchestite",
"64x gtceu:raw_snowchestite",
"24x gtceu:raw_kaemanite",
)
}
})
microverse_mission(event, 5, 2).forEach(builder => {
builder
.itemInputs("8x kubejs:quantum_flux")
.itemInputs("16x kubejs:stabilized_uranium")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:red_steel_drill_head")
.itemOutputs(
"32x gtceu:raw_palladium",
"32x gtceu:raw_monazite",
"32x gtceu:raw_molybdenite",
"16x gtceu:raw_powellite",
"8x gtceu:rarest_metal_mixture_dust",
)
})
microverse_mission(event, 5, 2).forEach(builder => {
builder
.itemInputs("8x kubejs:quantum_flux")
.itemInputs("16x kubejs:stabilized_uranium")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:blue_steel_drill_head")
.itemOutputs(
"32x gtceu:raw_realgar",
"64x gtceu:raw_sphalerite",
"16x gtceu:raw_fluorite",
)
})
microverse_mission(event, 5, 2).forEach(builder => {
builder
.itemInputs("8x kubejs:quantum_flux")
.itemInputs("16x kubejs:stabilized_uranium")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:damascus_steel_drill_head")
.itemOutputs(
"32x gtceu:raw_bastnasite",
"16x minecraft:ender_pearl",
"16x minecraft:ender_pearl",
"16x minecraft:ender_pearl",
"64x gtceu:raw_beryllium",
)
})
microverse_mission(event, 5, 2).forEach(builder => {
builder
.itemInputs("8x kubejs:quantum_flux")
.itemInputs("16x kubejs:stabilized_uranium")
.itemInputs("gtceu:data_orb")
.itemInputs("9x kubejs:ultra_dense_hydrogen")
.itemInputs("3x kubejs:ultra_dense_helium")
.itemOutputs(
"20x kubejs:stellar_creation_data",
)
})
// T6MM missions
microverse_mission(event, 6, 2).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("32x kubejs:stabilized_uranium")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:naquadah_alloy_drill_head")
.itemInputs("16x kubejs:wither_realm_data")
.itemOutputs(
"64x gtceu:raw_uraninite",
"32x gtceu:raw_uraninite",
"32x gtceu:raw_plutonium",
"32x gtceu:rarest_metal_mixture_dust",
)
})
microverse_mission(event, 6, 2).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("32x kubejs:stabilized_plutonium")
.itemInputs("kubejs:microversal_alchemy_kit")
.itemInputs("32x kubejs:wither_realm_data")
.itemOutputs(
"16x kubejs:stabilized_einsteinium",
)
})
microverse_mission(event, 6, 2).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("32x kubejs:stabilized_curium")
.itemInputs("kubejs:blasting_kit")
.itemInputs("64x kubejs:wither_realm_data")
.itemOutputs(
"64x gtceu:raw_nether_quartz",
"64x gtceu:raw_nether_quartz",
"64x minecraft:ancient_debris",
"64x minecraft:ancient_debris",
"64x minecraft:ancient_debris",
)
})
microverse_mission(event, 6, 2, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("32x kubejs:stabilized_plutonium")
.itemInputs("8x kubejs:dragon_lair_data")
.itemOutputs(
"32x minecraft:dragon_egg",
"64x kubejs:ender_dragon_scale",
"32x minecraft:dragon_breath",
)
})
microverse_mission(event, 6, 2).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("32x kubejs:stabilized_neptunium")
.itemInputs("kubejs:advanced_drilling_kit")
.itemInputs("gtceu:tungsten_carbide_drill_head")
.itemOutputs(
"32x gtceu:raw_monazite",
"64x gtceu:raw_neodymium",
"64x gtceu:raw_neodymium",
"32x gtceu:raw_bastnasite",
"16x gtceu:raw_redstone"
)
})
microverse_mission(event, 6, 2).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("32x kubejs:stabilized_plutonium")
.itemInputs("gtceu:data_module")
.itemInputs("64x kubejs:ultra_dense_hydrogen", "64x kubejs:ultra_dense_hydrogen")
.itemOutputs(
"64x kubejs:stellar_creation_data",
"64x kubejs:stellar_creation_data"
)
})
})

View file

@ -0,0 +1,389 @@
/**
* Recipe definitions for basic microverse projector missions.
* Builder method calls for inputs typically follow a certain order:
* - Quantum Flux
* - Fuel
* - Drill head (if any)
* - Gemstone Sensor/Power Thruster (if any)
* - Anything else, in a multiline method call (if any)
* - Data of any kind
*/
ServerEvents.recipes(event => {
// T1MM missions
microverse_mission(event, 1, 1).forEach(builder => {
builder
.itemInputs("kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 2000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:diamond_drill_head")
.itemInputs("kubejs:gem_sensor")
.itemOutputs(
"48x gtceu:raw_diamond",
"32x gtceu:raw_apatite",
"48x gtceu:raw_tricalcium_phosphate",
"32x gtceu:raw_nether_quartz",
)
})
microverse_mission(event, 1, 1).forEach(builder => {
builder
.itemInputs("kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 2000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:invar_drill_head")
.itemOutputs(
"64x minecraft:raw_iron",
"48x minecraft:raw_iron",
"64x gtceu:raw_yellow_limonite",
"32x gtceu:raw_garnierite",
"32x gtceu:raw_nickel",
)
})
microverse_mission(event, 1, 1).forEach(builder => {
builder
.itemInputs("kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 2000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:bronze_drill_head")
.itemOutputs(
"32x gtceu:raw_cassiterite",
"64x gtceu:raw_chalcopyrite",
"48x gtceu:raw_chalcopyrite",
"16x gtceu:raw_realgar",
)
})
microverse_mission(event, 1, 1).forEach(builder => {
builder
.itemInputs("kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 2000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:sterling_silver_drill_head")
.itemOutputs(
"48x gtceu:raw_silver",
"56x gtceu:raw_galena",
"32x gtceu:raw_lead",
)
})
microverse_mission(event, 1, 1).forEach(builder => {
builder
.itemInputs("kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 2000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:rose_gold_drill_head")
.itemInputs("kubejs:gem_sensor")
.itemOutputs(
"64x gtceu:raw_redstone",
"48x gtceu:raw_redstone",
"64x gtceu:raw_ruby",
"32x gtceu:raw_ruby",
"32x gtceu:raw_cinnabar",
)
})
microverse_mission(event, 1, 1).forEach(builder => {
builder
.itemInputs("kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 2000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:wrought_iron_drill_head")
.itemOutputs(
"64x gtceu:raw_uraninite",
"48x gtceu:raw_pitchblende",
)
})
microverse_mission(event, 1, 1).forEach(builder => {
builder
.itemInputs("kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 2000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:iron_drill_head")
.itemOutputs(
"48x gtceu:raw_salt",
"48x gtceu:raw_rock_salt",
"48x gtceu:raw_saltpeter",
)
})
microverse_mission(event, 1, 1).forEach(builder => {
builder
.itemInputs("2x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 2000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:steel_drill_head")
.itemInputs("gtceu:power_thruster")
.itemOutputs(
"32x gtceu:raw_molybdenite",
"32x ad_astra:moon_sand",
"32x gtceu:raw_dilithium",
"32x gtceu:raw_fluorite",
)
})
microverse_mission(event, 1, 1).forEach(builder => {
builder
.itemInputs("3x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 2000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:aluminium_drill_head")
.itemInputs("gtceu:advanced_power_thruster")
.itemOutputs(
"64x gtceu:raw_ilmenite",
"64x gtceu:raw_bauxite",
"16x gtceu:raw_aluminium",
)
})
// T2MM missions
microverse_mission(event, 2, 1).forEach(builder => {
builder
.itemInputs("3x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 3000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:titanium_drill_head")
.itemInputs("gtceu:advanced_power_thruster")
.itemOutputs(
"64x gtceu:raw_scheelite",
"64x gtceu:raw_scheelite",
"64x gtceu:raw_tungstate",
"64x gtceu:raw_tungstate",
)
})
microverse_mission(event, 2, 1).forEach(builder => {
builder
.itemInputs("2x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 3000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:bronze_drill_head")
.itemOutputs(
"64x gtceu:raw_pyrochlore",
"64x minecraft:raw_copper",
"32x gtceu:raw_tin",
"32x kubejs:radium_salt",
)
})
microverse_mission(event, 2, 1).forEach(builder => {
builder
.itemInputs("2x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 3000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:stainless_steel_drill_head")
.itemOutputs(
"64x gtceu:raw_pyrolusite",
"64x gtceu:raw_tantalite",
"64x gtceu:raw_tantalite",
)
})
microverse_mission(event, 2, 1).forEach(builder => {
builder
.itemInputs("kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 3000")
.itemInputs("kubejs:microversal_alchemy_kit")
.itemInputs("16x kubejs:cryotheum_dust")
.itemOutputs(
"16x kubejs:solidified_neon",
"16x kubejs:solidified_krypton",
"16x kubejs:solidified_xenon",
"16x kubejs:solidified_argon",
)
})
microverse_mission(event, 2, 1).forEach(builder => {
builder
.itemInputs("3x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 3000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:diamond_drill_head")
.itemInputs("kubejs:gem_sensor", "gtceu:power_thruster")
.itemOutputs(
"64x gtceu:raw_dilithium",
"64x gtceu:raw_certus_quartz",
"32x gtceu:raw_quartzite",
)
})
microverse_mission(event, 2, 1).forEach(builder => {
builder
.itemInputs("2x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 3000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:red_steel_drill_head")
.itemOutputs(
"64x gtceu:raw_goethite",
"32x gtceu:raw_goethite",
"64x gtceu:raw_hematite",
"48x gtceu:raw_malachite",
)
})
microverse_mission(event, 2, 1).forEach(builder => {
builder
.itemInputs("2x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 3000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:blue_steel_drill_head")
.itemInputs("kubejs:gem_sensor")
.itemOutputs(
"64x gtceu:raw_lapis",
"24x gtceu:raw_sodalite",
"32x gtceu:raw_lazurite",
"24x gtceu:raw_calcite",
)
})
// T3MM missions
microverse_mission(event, 3, 1).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 5000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:vanadium_steel_drill_head")
.itemOutputs(
"64x gtceu:raw_magnetite",
"64x gtceu:raw_vanadium_magnetite",
"64x gtceu:raw_chromite",
"32x minecraft:raw_gold",
)
})
microverse_mission(event, 3, 1).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 5000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:cobalt_brass_drill_head")
.itemOutputs(
"48x gtceu:raw_tetrahedrite",
"32x gtceu:raw_cobaltite",
"8x gtceu:raw_magnesite",
"16x gtceu:raw_sphalerite",
"20x gtceu:raw_stibnite",
)
})
microverse_mission(event, 3, 1).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 5000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:diamond_drill_head")
.itemInputs("2x kubejs:gem_sensor")
.itemOutputs(
"64x gtceu:raw_diamond",
"64x gtceu:raw_diamond",
"64x gtceu:raw_diamond",
"64x gtceu:raw_emerald",
"64x gtceu:raw_emerald",
)
})
microverse_mission(event, 3, 1).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 5000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:steel_drill_head")
.itemInputs("kubejs:gem_sensor")
.itemOutputs(
"64x gtceu:raw_sapphire",
"32x gtceu:raw_sapphire",
"64x gtceu:raw_almandine",
"32x gtceu:raw_almandine",
"64x gtceu:raw_topaz",
"32x gtceu:raw_topaz",
)
})
microverse_mission(event, 3, 1).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 5000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:aluminium_drill_head")
.itemOutputs(
"64x minecraft:glowstone",
"64x minecraft:glowstone",
"16x gtceu:raw_redstone",
"32x gtceu:raw_coal",
)
})
microverse_mission(event, 3, 1).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 5000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:stainless_steel_drill_head")
.itemInputs("gtceu:power_thruster")
.itemOutputs(
"48x gtceu:raw_apatite",
"24x gtceu:raw_neodymium",
"32x gtceu:raw_monazite",
)
})
microverse_mission(event, 3, 1).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 5000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:ultimet_drill_head")
.itemInputs("gtceu:advanced_power_thruster")
.itemOutputs(
"8x gtceu:raw_barite",
"12x gtceu:raw_laurite",
"6x gtceu:raw_cuprorhodsite",
)
})
microverse_mission(event, 3, 1).forEach(builder => {
builder
.itemInputs("3x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 5000")
.itemInputs("kubejs:blasting_kit")
.itemOutputs(
"64x minecraft:magma_block",
"64x minecraft:magma_block",
"64x minecraft:magma_block",
"64x minecraft:magma_block",
"64x minecraft:magma_block",
"64x minecraft:magma_block",
)
})
microverse_mission(event, 3, 1).forEach(builder => {
builder
.itemInputs("8x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 5000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:tungsten_steel_drill_head")
.itemInputs("16x kubejs:wither_realm_data")
.itemOutputs(
"4x minecraft:ancient_debris",
"64x minecraft:quartz",
"32x minecraft:quartz",
"24x minecraft:gilded_blackstone",
"4x minecraft:gold_block",
)
})
microverse_mission(event, 3, 1).forEach(builder => {
builder
.itemInputs("4x kubejs:quantum_flux")
.inputFluids("gtceu:rocket_fuel 5000")
.itemInputs("kubejs:basic_drilling_kit")
.itemInputs("gtceu:iron_drill_head")
.itemOutputs(
"64x gtceu:raw_salt",
"32x gtceu:raw_rock_salt",
"64x gtceu:raw_lepidolite",
"24x gtceu:raw_spodumene",
)
})
})

View file

@ -0,0 +1,345 @@
/**
* Microminer components and kits.
* Each of these are a custom KubeJS item or block used in the creation of Micro Miners.
*/
ServerEvents.recipes(event => {
// Basic Guidance
event.shaped("kubejs:basic_micro_miner_guidance_system", [
"GPG",
"PCP",
"CCC"
], {
G: "gtceu:lv_sensor",
P: "gtceu:double_steel_plate",
C: "#gtceu:circuits/mv"
})
// Basic laser
event.shaped("kubejs:basic_mining_laser", [
" R ",
"QGQ",
"QGQ"
], {
R: "minecraft:redstone_block",
Q: "minecraft:quartz",
G: "minecraft:glass"
})
// Reinforced Laser
event.recipes.extendedcrafting.shaped_table("kubejs:reinforced_mining_laser", [
" R R ",
"GAGAG",
"GAGAG",
"GBGBG",
"QCECQ"
], {
R: "minecraft:redstone_block",
G: "minecraft:glass",
A: "kubejs:solidified_argon",
B: "minecraft:quartz_block",
Q: "minecraft:quartz",
C: "#gtceu:circuits/hv",
E: "enderio:octadic_capacitor"
})
// Advanced Guidance
event.shaped("kubejs:advanced_micro_miner_guidance_system", [
"AWA",
"WCW",
"CCC"
], {
A: "gtceu:ev_sensor",
W: "gtceu:double_tungsten_carbide_plate",
C: "#gtceu:circuits/ev"
})
// Warp Core
event.shaped("kubejs:warp_core", [
"LTL",
"TNT",
"LTL"
], {
L: "gtceu:lumium_block",
N: "gtceu:nether_star_block",
T: "gtceu:titanium_block"
})
// Warp Controller
event.shaped("kubejs:warp_controller", [
"SMS",
"CHC",
"SCS"
], {
C: "#gtceu:circuits/ev",
H: "gtceu:ev_machine_hull",
M: "gtceu:computer_monitor_cover",
S: "gtceu:ev_sensor"
})
// Warp Core
event.shaped("kubejs:universal_warp_core", [
"LTL",
"TNT",
"LTL"
], {
L: "gtceu:void_empowered_block",
N: "kubejs:warp_core",
T: "kubejs:bathyal_energy_core"
})
// Warp Controller
event.shaped("kubejs:universal_warp_controller", [
"SMS",
"CHC",
"SFS"
], {
C: "#gtceu:circuits/luv",
H: "kubejs:warp_controller",
M: "kubejs:abyssal_energy_core",
F: "extendedcrafting:the_ultimate_catalyst",
S: "gtceu:void_empowered_block"
})
// Warp engine
event.recipes.gtceu.assembly_line("warp_engine")
.itemInputs("gtceu:microversium_frame",
"6x gtceu:enderium_plate",
"8x ae2:quantum_ring",
"ae2:quantum_link",
"2x #forge:plates/crystal_matrix",
"2x gtceu:iv_field_generator",
"kubejs:fluxed_thruster",
"kubejs:dark_soularium_thruster")
["scannerResearch(java.util.function.UnaryOperator)"](b => b.researchStack("ae2:quantum_ring").EUt(480).duration(1200))
.itemOutputs("kubejs:warp_engine")
.inputFluids("gtceu:soldering_alloy 1152")
.duration(1800)
.EUt(30720)
// Supercharged laser array
event.recipes.gtceu.chemical_reactor("supercharged_laser_array")
.itemInputs("kubejs:reinforced_mining_laser")
.inputFluids("gtceu:radon 1000")
.itemOutputs("kubejs:supercharged_laser_array")
.duration(200)
.EUt(2000)
// Universal Navigator
event.recipes.gtceu.assembly_line("universal_navigator")
.itemInputs("gtceu:microversium_frame",
"24x gtceu:microversium_plate",
"gtceu:gravi_star",
"2x gtceu:uv_sensor",
"2x gtceu:uv_robot_arm",
"#gtceu:circuits/uhv",
"2x gtceu:dense_naquadah_alloy_plate",
"4x gtceu:enriched_naquadah_trinium_europium_duranide_quadruple_wire",
"64x gtceu:fine_tritanium_wire")
.inputFluids("gtceu:soldering_alloy 1152", "gtceu:naquadria 576")
.itemOutputs("kubejs:universal_navigator")
.stationResearch(b => b.researchStack("kubejs:stellar_creation_data").CWUt(96, 384000).EUt(491520))
.duration(6000)
.EUt(491520)
// Extradimensional Navigator
event.recipes.gtceu.assembly_line("extradimensional_navigator")
.itemInputs("gtceu:infinity_frame",
"4x kubejs:universal_navigator",
"4x gtceu:uev_field_generator",
"24x gtceu:holmium_plate",
"4x #gtceu:circuits/uiv",
"2x gtceu:uiv_sensor",
"2x gtceu:uiv_emitter",
"4x gtceu:dense_naquadah_alloy_plate",
"8x gtceu:activated_netherite_quadruple_wire",
"32x gtceu:fine_ruthenium_trinium_americium_neutronate_wire")
.inputFluids("gtceu:soldering_alloy 11520", "gtceu:crystal_matrix 5760", "gtceu:naquadria 2304")
.itemOutputs("kubejs:extradimensional_navigator")
.stationResearch(b => b.researchStack("kubejs:universal_navigator").CWUt(160, 640000).EUt(3932160))
.duration(6000)
.EUt(3932160)
// Electrum Engine Frame
event.shaped("kubejs:electrum_micro_miner_frame", [
"PRP",
"R R",
"PRP"
], {
P: "gtceu:electrum_plate",
R: "gtceu:electrum_rod",
})
// Signalum Engine Frame
event.shaped("kubejs:signalum_micro_miner_frame", [
"PRP",
"R R",
"PRP"
], {
P: "gtceu:signalum_plate",
R: "gtceu:signalum_rod",
})
// Enderium Engine Frame
event.shaped("kubejs:enderium_micro_miner_frame", [
"PRP",
"R R",
"PRP"
], {
P: "gtceu:enderium_plate",
R: "gtceu:enderium_rod",
})
// Electrum Engine Core
event.recipes.gtceu.canner("electrum_micro_miner_core")
.itemInputs("kubejs:electrum_micro_miner_frame", "2x minecraft:redstone_block")
.itemOutputs("kubejs:electrum_micro_miner_core")
.duration(500)
.EUt(480)
// Signalum Engine Core
event.recipes.gtceu.canner("signalum_micro_miner_core")
.itemInputs("kubejs:signalum_micro_miner_frame", "4x minecraft:redstone_block")
.itemOutputs("kubejs:signalum_micro_miner_core")
.duration(1000)
.EUt(2000)
// Enderium Engine Core
event.recipes.gtceu.canner("enderium_micro_miner_core")
.itemInputs("kubejs:enderium_micro_miner_frame", "8x minecraft:redstone_block")
.itemOutputs("kubejs:enderium_micro_miner_core")
.duration(2000)
.EUt(8000)
// Gemstone Sensor - Optical Sensor has been replaced with a Lens, which is slightly cheaper.
event.shaped("kubejs:gem_sensor", [
" A ",
"WCW",
" W "
], {
A: "#forge:lenses",
W: "gtceu:stainless_steel_plate",
C: "gtceu:hv_sensor"
})
event.recipes.gtceu.assembler("gem_sensor_hv")
.itemOutputs("kubejs:gem_sensor")
.itemInputs("#forge:lenses", "3x gtceu:stainless_steel_plate", "gtceu:hv_sensor")
.EUt(GTValues.VA[GTValues.HV])
.duration(20)
event.shaped("4x kubejs:gem_sensor", [
" A ",
"WCW",
" W "
], {
A: "#forge:lenses",
W: "gtceu:tungsten_carbide_plate",
C: "gtceu:iv_sensor"
})
event.recipes.gtceu.assembler("gem_sensor_iv")
.itemOutputs("4x kubejs:gem_sensor")
.itemInputs("#forge:lenses", "3x gtceu:tungsten_carbide_plate", "gtceu:iv_sensor")
.EUt(GTValues.VA[GTValues.IV])
.duration(20)
// Microminer kits are consumed in place of the miner.
event.recipes.gtceu.assembler("basic_drilling_kit")
.itemOutputs("kubejs:basic_drilling_kit")
.itemInputs("3x gtceu:double_steel_plate", "gtceu:mv_electric_motor", "2x #gtceu:circuits/lv", "2x minecraft:glass")
.inputFluids("gtceu:glue 288")
.EUt(GTValues.VA[GTValues.HV])
.duration(300)
event.recipes.gtceu.assembler("advanced_drilling_kit")
.itemOutputs("kubejs:advanced_drilling_kit")
.itemInputs("3x gtceu:double_vanadium_steel_plate", "gtceu:hv_electric_motor", "2x #gtceu:circuits/mv", "2x #forge:plastic_plates", "2x gtceu:tempered_glass")
.inputFluids("gtceu:lubricant 100")
.EUt(GTValues.VA[GTValues.IV])
.duration(400)
event.recipes.gtceu.assembler("elite_drilling_kit")
.itemOutputs("kubejs:elite_drilling_kit")
.itemInputs("3x gtceu:double_naquadah_alloy_plate", "gtceu:iv_electric_motor", "2x #gtceu:circuits/hv", "2x gtceu:carbon_fiber_plate", "2x gtceu:laminated_glass")
.inputFluids("gtceu:lubricant 500")
.EUt(GTValues.VA[GTValues.LuV])
.duration(600)
const explosives = [
[16, "gtceu", "powderbarrel"],
[8, "minecraft", "tnt"],
[4, "gtceu", "dynamite"],
[2, "gtceu", "industrial_tnt"]
]
explosives.forEach(explosive => {
event.recipes.gtceu.assembler(`blasting_kit_${explosive[2]}`)
.itemOutputs("kubejs:blasting_kit")
.itemInputs("3x gtceu:double_black_steel_plate", `${explosive[0]}x ${explosive[1]}:${explosive[2]}`, "3x #gtceu:circuits/lv", "2x #enderio:fused_quartz")
.inputFluids("gtceu:reinforced_epoxy_resin 576")
.EUt(GTValues.VA[GTValues.EV])
.duration(400)
})
event.recipes.gtceu.assembler("microversal_alchemy_kit")
.itemOutputs("kubejs:microversal_alchemy_kit")
.itemInputs("gtceu:mv_hermetic_casing", "1x gtceu:mv_fluid_regulator", "2x minecraft:brewing_stand", "6x minecraft:glass_bottle")
.inputFluids(Fluid.of("gtceu:potion", 750, { Potion: "minecraft:awkward" }))
.EUt(GTValues.VA[GTValues.EV])
.duration(500)
// Believe it or not, this is not how a nuke is made.
event.recipes.gtceu.assembler("nuke_tnt_itnt")
.itemOutputs("thermal:nuke_tnt")
.itemInputs("gtceu:small_plutonium_241_dust", "2x gtceu:neutron_reflector", "gtceu:plutonium_ingot", "gtceu:uranium_block", "4x gtceu:aluminium_plate", "3x gtceu:industrial_tnt", "3x gtceu:dense_steel_plate")
.inputFluids("gtceu:deuterium 500")
.EUt(GTValues.VA[GTValues.LuV])
.duration(500)
event.recipes.gtceu.assembler("nuke_tnt_regular_tnt")
.itemOutputs("thermal:nuke_tnt")
.itemInputs("gtceu:small_plutonium_241_dust", "2x gtceu:neutron_reflector", "gtceu:plutonium_ingot", "gtceu:uranium_block", "4x gtceu:aluminium_plate", "12x minecraft:tnt", "3x gtceu:dense_steel_plate")
.inputFluids("gtceu:deuterium 500")
.EUt(GTValues.VA[GTValues.LuV])
.duration(500)
// Potential ingredient additions: Bolts, Screws, Plates, Wires, circuits, frame boxes
event.recipes.gtceu.assembly_line("gravitational_amplifier")
.itemOutputs("kubejs:gravitational_amplifier")
.itemInputs(
"8x ae2:singularity",
"4x gtceu:gravi_star",
"kubejs:hadal_energy_core",
"gtceu:zpm_field_generator",
"12x redstone_arsenal:flux_plating",
"16x gtceu:enderium_foil",
"16x gtceu:darmstadtium_bolt",
"5x gtceu:fusion_glass")
.inputFluids("gtceu:soldering_alloy 1728", "gtceu:naquadria 576", "gtceu:polybenzimidazole 288")
.duration(1000)
.EUt(GTValues.VA[GTValues.UV])
.stationResearch(builder => builder
.researchStack("ae2:singularity")
.CWUt(64, 256000)
.EUt(GTValues.VA[GTValues.UV])
)
event.recipes.gtceu.assembly_line("universal_collapse_device")
.itemOutputs("kubejs:universal_collapse_device")
.itemInputs(
"2x kubejs:gravitational_amplifier",
"16x thermal:nuke_tnt",
"16x kubejs:quantum_flux",
"gtceu:uv_field_generator",
"kubejs:universal_warp_core",
"kubejs:universal_warp_controller",
"4x kubejs:universe_resistant_neutronium_heavy_plating",
"12x gtceu:styrene_butadiene_rubber_foil"
)
.inputFluids("gtceu:soldering_alloy 2304", "gtceu:crystal_matrix 576", "gtceu:microversium 1152")
.duration(4000)
.EUt(GTValues.VA[GTValues.UHV])
.stationResearch(builder => builder
.researchStack("kubejs:gravitational_amplifier")
.CWUt(108, 512000)
.EUt(GTValues.VA[GTValues.UHV])
)
})

View file

@ -0,0 +1,216 @@
/**
* Recipe definitions for Hard Mode and Expert Mode-exclusive microverse projector missions.
*/
ServerEvents.recipes(event => {
microverse_mission(event, "2half", 1, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"8x kubejs:quantum_flux",
"minecraft:mossy_cobblestone",
)
.inputFluids("minecraft:lava 4000")
.itemOutputs(
"64x minecraft:bone",
"64x minecraft:rotten_flesh",
"32x minecraft:rotten_flesh",
"32x minecraft:gunpowder",
"16x minecraft:string",
)
})
microverse_mission(event, "2half", 1, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"8x kubejs:quantum_flux",
"minecraft:mud",
)
.inputFluids("minecraft:lava 4000")
.itemOutputs(
"48x minecraft:slime_ball",
"24x kubejs:guardian_scale",
)
})
microverse_mission(event, "2half", 1, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"8x kubejs:quantum_flux",
"minecraft:redstone_block",
)
.inputFluids("minecraft:lava 8000")
.itemOutputs(
"16x minecraft:blaze_rod",
"16x thermal:blizz_rod",
"16x thermal:blitz_rod",
"16x thermal:basalz_rod",
)
})
microverse_mission(event, "2half", 1, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"8x kubejs:quantum_flux",
"minecraft:netherrack",
)
.inputFluids("minecraft:lava 8000")
.itemOutputs(
"24x minecraft:ghast_tear",
"48x kubejs:wither_bone", // drops of evil aren"t in the pack
"32x minecraft:magma_cream",
)
})
microverse_mission(event, "2half", 1, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"8x kubejs:quantum_flux",
"minecraft:end_stone",
)
.inputFluids("minecraft:lava 12000")
.itemOutputs(
"16x enderio:enderman_head",
"16x minecraft:ender_pearl",
"16x minecraft:ender_pearl",
"16x minecraft:shulker_shell", // shulker pearls aren"t in the pack
)
})
microverse_mission(event, "4half", 2, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"8x kubejs:quantum_flux",
"32x kubejs:aerotheum_dust",
"16x minecraft:ender_eye",
)
.itemOutputs(
"64x kubejs:dragon_lair_data",
"64x kubejs:dragon_lair_data",
"32x minecraft:dragon_breath",
"32x kubejs:ender_dragon_scale",
)
})
microverse_mission(event, "4half", 2, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"8x kubejs:quantum_flux",
"32x kubejs:aerotheum_dust",
"4x kubejs:dragon_lair_data",
)
.itemOutputs(
"64x kubejs:ender_dragon_scale",
"32x kubejs:ender_dragon_scale",
"64x minecraft:dragon_breath",
)
})
microverse_mission(event, "4half", 2, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"8x kubejs:quantum_flux",
"32x kubejs:aerotheum_dust",
"64x kubejs:wither_bone",
)
.itemOutputs(
"64x kubejs:wither_realm_data",
"16x minecraft:nether_star",
"16x minecraft:nether_star",
"16x minecraft:nether_star",
)
})
microverse_mission(event, "4half", 2, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"8x kubejs:quantum_flux",
"64x kubejs:aerotheum_dust",
"16x minecraft:sculk_catalyst",
)
.itemOutputs(
"64x kubejs:deep_dark_data",
"16x kubejs:warden_horn",
)
})
microverse_mission(event, "8half", 3).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("64x gtceu:dilithium_gem")
.itemInputs("kubejs:elite_drilling_kit")
.itemInputs("gtceu:duranium_drill_head")
.itemInputs("4x gtceu:neutron_reflector",)
.itemInputs(
"6x gtceu:ruridit_block",
"4x kubejs:warden_horn",
)
.itemOutputs(
"64x gtceu:raw_darmstadtite",
"64x gtceu:raw_darmstadtite",
"64x gtceu:raw_darmstadtite",
"64x gtceu:raw_darmstadtite",
"64x gtceu:raw_darmstadtite",
"64x gtceu:raw_darmstadtite",
"64x gtceu:raw_darmstadtite"
)
})
microverse_mission(event, "8half", 3).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("64x gtceu:dilithium_gem")
.itemInputs("kubejs:elite_drilling_kit")
.itemInputs("gtceu:duranium_drill_head")
.itemInputs("4x kubejs:gem_sensor")
.itemInputs(
"6x gtceu:naquadah_block",
"4x kubejs:warden_horn",
)
.itemOutputs(
"64x gtceu:raw_dulysite",
"64x gtceu:raw_dulysite",
"64x gtceu:raw_dulysite",
"64x gtceu:raw_dulysite"
)
})
microverse_mission(event, "8half", 3).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("64x gtceu:dilithium_gem")
.itemInputs("kubejs:elite_drilling_kit")
.itemInputs("gtceu:duranium_drill_head")
.itemInputs("4x nuclearcraft:plate_du")
.itemInputs(
"6x gtceu:uranium_block",
"4x kubejs:warden_horn",
)
.itemOutputs(
"64x gtceu:raw_plutonium",
"64x gtceu:raw_plutonium",
)
})
microverse_mission(event, "8half", 3).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("64x gtceu:dilithium_gem")
.itemInputs("kubejs:elite_drilling_kit")
.itemInputs("gtceu:duranium_drill_head")
.itemInputs("gtceu:osmium_dust")
.itemOutputs(
"32x gtceu:raw_osmiridiumyes",
)
})
microverse_mission(event, "8half", 3).forEach(builder => {
builder
.itemInputs("16x kubejs:quantum_flux")
.itemInputs("64x gtceu:dilithium_gem")
.itemInputs("kubejs:elite_drilling_kit")
.itemInputs("gtceu:duranium_drill_head")
.itemInputs("gtceu:iridium_dust")
.itemOutputs(
"32x gtceu:raw_iridosmineyes",
)
})
})

View file

@ -0,0 +1,110 @@
/**
* Recipe definitions for hyperbolic microverse projector missions.
*/
ServerEvents.recipes(event => {
// T8MM mission
microverse_mission(event, 8, 4, undefined, undefined, 100).forEach(builder => {
builder
.itemInputs(
"64x kubejs:quantum_flux",
"64x gtceu:dilithium_gem",
"64x gtceu:dilithium_gem",
"1x kubejs:hadal_energy_core",
"kubejs:corrupted_universe_data",
"kubejs:lair_of_the_warden_data"
)
.itemOutputs(
"48x kubejs:hadal_shard",
"64x kubejs:warden_heart",
"64x kubejs:warden_heart",
"32x kubejs:warden_heart",
"64x kubejs:warden_horn",
"48x kubejs:warden_horn"
)
})
// T9MM mission
microverse_mission(event, 9, 4).forEach(builder => {
builder
.inputFluids("gtceu:nitrogen_plasma 15000")
.itemInputs("gtceu:data_module", "gtceu:uev_sensor")
.itemInputs("kubejs:shattered_universe_data", "64x kubejs:shattered_star_data")
.itemOutputs("kubejs:corrupted_universe_data")
})
// T10MM missions
microverse_mission(event, 10, 4).forEach(builder => {
builder
.itemInputs("kubejs:universal_collapse_device", "kubejs:corrupted_universe_data", "8x kubejs:infinity_catalyst")
.itemOutputs("16x kubejs:heart_of_a_universe")
})
// T11MM missions
microverse_mission(event, 11, 4).forEach(builder => {
builder
.itemInputs("kubejs:universal_navigator", "kubejs:shattered_universe_data", "gtceu:neutronium_drill_head", "kubejs:infinity_catalyst")
.itemOutputs(
"64x kubejs:alien_scrap",
"64x kubejs:alien_scrap",
"64x kubejs:alien_scrap",
"64x kubejs:alien_scrap",
"64x kubejs:alien_scrap"
)
})
microverse_mission(event, 11, 4).forEach(builder => {
builder
.itemInputs(
"kubejs:universal_collapse_device",
"kubejs:corrupted_universe_data",
"64x gtceu:gravi_star",
"64x gtceu:gravi_star"
)
.itemOutputs(
"64x kubejs:quasi_stable_neutron_star",
"64x kubejs:quasi_stable_neutron_star",
"64x kubejs:quasi_stable_neutron_star",
"64x kubejs:quasi_stable_neutron_star"
)
})
microverse_mission(event, 11, 4).forEach(builder => {
builder
.itemInputs(
"16x gtceu:holmium_block",
"8x gtceu:network_switch",
"8x gtceu:data_bank",
"16x gtceu:advanced_data_access_hatch",
"16x gtceu:computation_receiver_hatch",
"64x kubejs:stellar_creation_data"
)
.itemOutputs("kubejs:creative_computation_data")
})
microverse_mission(event, 12, 4).forEach(builder => {
builder
.itemInputs("kubejs:field_stabilised_omnic_pulsar_compound", "4x kubejs:universe_creation_data", "64x gtceu:infinity_ingot")
.itemOutputs("64x gtceu:monium_ingot")
})
microverse_mission(event, 12, 4).forEach(builder => {
builder
.itemInputs(
"16x gtceu:eltz_block",
"4x gtceu:max_battery",
"2x solarflux:sp_custom_infinity",
"gtceu:uiv_4096a_laser_source_hatch",
"4x kubejs:universe_creation_data",
"64x kubejs:stellar_creation_data",
"64x kubejs:stellar_creation_data",
"64x kubejs:stellar_creation_data"
)
.itemOutputs("kubejs:creative_energy_data")
})
microverse_mission(event, 12, 4, undefined, GTValues.VA[GTValues.UXV]).forEach(builder => {
builder
.itemInputs("8x kubejs:timeless_monic_heavy_plating", "4x kubejs:universe_creation_data", "2x kubejs:shattered_universe_data", "2x kubejs:corrupted_universe_data")
.itemOutputs("4x kubejs:causality_exempt_monic_heavy_plating")
})
})

View file

@ -0,0 +1,334 @@
/**
* 3x3 and Extended Crafting Recipes for Micro Miners
* Not to be confused with other files that that define what these miners mine.
*/
ServerEvents.recipes(event => {
// T1 Microminer
event.shaped("kubejs:microminer_t1", [
" G ",
"LAL",
"TMT"
], {
G: "kubejs:basic_micro_miner_guidance_system",
L: "kubejs:basic_mining_laser",
A: "gtceu:lv_field_generator",
T: "kubejs:conductive_iron_thruster",
M: "gtceu:lv_combustion"
})
// T2 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t2", [
" G ",
" PAP ",
"LBFBL",
"PPCPP",
" TTT "
], {
G: "kubejs:basic_micro_miner_guidance_system",
P: "gtceu:double_titanium_plate",
A: "gtceu:stainless_steel_crate",
L: "kubejs:basic_mining_laser",
B: "gtceu:lv_field_generator",
F: "kubejs:electrum_micro_miner_core",
C: "gtceu:mv_combustion",
T: "kubejs:electrical_steel_thruster"
})
// T3 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t3", [
" G G ",
" PPP ",
" ABA ",
"LPPBPPL",
"PPFBFPP",
"P PCP P",
" TTT "
], {
G: "kubejs:basic_micro_miner_guidance_system",
P: "gtceu:double_tungsten_carbide_plate",
A: "gtceu:mv_field_generator",
B: "gtceu:titanium_crate",
L: "kubejs:reinforced_mining_laser",
F: "kubejs:electrum_micro_miner_core",
C: "gtceu:hv_combustion",
T: "kubejs:reinforced_thruster"
})
// T4 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t4", [
" G ",
" LWL ",
" SAWAS ",
" SBWBS ",
" SFWFS ",
" TDWDT ",
" T T "
], {
G: "kubejs:basic_micro_miner_guidance_system",
L: "kubejs:reinforced_mining_laser",
W: "gtceu:double_tungsten_carbide_plate",
S: "gtceu:double_signalum_plate",
A: "gtceu:tungsten_steel_crate",
B: "gtceu:hv_field_generator",
F: "kubejs:signalum_micro_miner_core",
T: "kubejs:energetic_thruster",
D: "thermal:dynamo_compression"
})
// T5 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t5", [
" G G ",
" I I ",
" SILIS ",
"SSABASS",
" IFCFI ",
"IIIPIII",
" TTT "
], {
G: "kubejs:advanced_micro_miner_guidance_system",
I: "gtceu:double_iridium_plate",
S: "gtceu:double_signalum_plate",
L: "kubejs:supercharged_laser_array",
A: "gtceu:ev_field_generator",
B: "gtceu:mv_super_chest",
F: "kubejs:signalum_micro_miner_core",
C: "nuclearcraft:fission_reactor_controller",
P: "nuclearcraft:fission_reactor_port",
T: "kubejs:vibrant_thruster",
})
// T6 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t6", [
" LG GL ",
"LEE EEL",
"EEAEAEE",
" EFEFE ",
"EBECEBE",
"EEPPPEE",
" TTT "
], {
L: "kubejs:supercharged_laser_array",
G: "kubejs:advanced_micro_miner_guidance_system",
E: "gtceu:double_enderium_plate",
A: "gtceu:mv_super_chest",
F: "kubejs:enderium_micro_miner_core",
B: "gtceu:iv_field_generator",
C: "nuclearcraft:fission_reactor_controller",
P: "nuclearcraft:fission_reactor_port",
T: "kubejs:resonant_thruster"
})
// T7 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t7", [
" L G G L ",
" D DDD D ",
"LDNDDDNDL",
"NDDFPFDDN",
"DNDAEADND",
"DNDNPNDND",
"DNNDFDNND",
"D NDDDN D",
"D WW WW D"
], {
L: "kubejs:supercharged_laser_array",
D: "gtceu:double_cryolobus_plate",
N: "gtceu:double_naquadah_plate",
G: "kubejs:advanced_micro_miner_guidance_system",
P: "kubejs:bathyal_energy_core",
A: "gtceu:luv_field_generator",
E: "kubejs:dischargement_core",
F: "kubejs:enderium_micro_miner_core",
W: "kubejs:warp_engine"
})
// T8 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t8", [
" G C C G ",
" WCCLCCW ",
" WCIIICW ",
"LCIIIIICL",
"WCAABAACW",
"WCWWIWWCW",
"WMCCICCMW",
"WDWWIWWDW",
" E E "
], {
G: "kubejs:advanced_micro_miner_guidance_system",
C: "gtceu:double_crystal_matrix_plate",
W: "gtceu:double_rhodium_plated_palladium_plate",
L: "kubejs:supercharged_laser_array",
I: "gtceu:double_duranium_plate",
A: "gtceu:hv_super_chest",
B: "gtceu:zpm_field_generator",
D: "kubejs:warp_core",
M: "kubejs:warp_controller",
E: "kubejs:warp_engine"
})
// T9 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t9", [
" Q ",
" Q ",
" QUQ ",
" QAQ ",
" QPQPQ ",
" QQTCTQQ ",
"QQBHRHBQQ",
" QQQQQQQ ",
"QQ W W QQ"
], {
Q: "kubejs:quantum_fluxed_eternium_heavy_plating",
U: "kubejs:universal_navigator",
A: "gtceu:uv_field_generator",
B: "gtceu:ev_super_chest",
P: "gtceu:plasma_large_turbine",
R: "kubejs:universal_warp_core",
T: "gtceu:tungstensteel_gearbox",
C: "kubejs:universal_warp_controller",
H: "gtceu:uv_rotor_holder",
W: "kubejs:hadal_warp_engine"
})
// T10 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t10", [
" N N ",
" NN NN ",
" NN NN ",
" NN NN ",
" NUNNNUN ",
"PNCNENCNP",
"NNRNANRNN",
" NNNNNNN ",
"NW W W WN"
], {
N: "kubejs:universe_resistant_neutronium_heavy_plating",
U: "kubejs:universal_navigator",
R: "kubejs:universal_warp_core",
C: "kubejs:universal_warp_controller",
P: "solarflux:sp_custom_neutronium",
E: "gtceu:energy_cluster",
A: "gtceu:iv_quantum_chest",
W: "kubejs:hadal_warp_engine"
})
// T11 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t11", [
" A M A ",
" O M O ",
" OO M OO ",
" POOMMMOOP ",
" OONMMMNOO ",
"POOMMCMMOOP",
"OODMMIMMDOO",
"OOBMOOOMBOO",
"OOOOW WOOOO",
" OOW WOO ",
" W W "
], {
O: "kubejs:elementally_infused_omnic_matrix_heavy_plating",
M: "gtceu:double_crystal_matrix_plate",
P: "solarflux:sp_custom_neutronium",
W: "kubejs:hadal_warp_engine",
A: "gtceu:uev_robot_arm",
C: "gtceu:uhv_quantum_chest",
N: "kubejs:universal_navigator",
I: "kubejs:infinity_power_unit",
B: "kubejs:universal_warp_core",
D: "kubejs:universal_warp_controller"
})
// T12 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t12", [
" I ",
" IEI ",
" III ",
" IISII ",
" PISQSIP ",
" IIJSJII ",
" IIIJCJIII ",
"PIIDJJJDIIP",
"IIIJJ JJIII",
"IIWW WWII",
"IW WI"
], {
I: "kubejs:dimensionally_stabilized_infinity_heavy_plating",
J: "kubejs:universe_resistant_neutronium_heavy_plating",
E: "kubejs:extradimensional_navigator",
P: "solarflux:sp_custom_infinity",
C: "gtceu:uhv_quantum_chest",
W: "kubejs:hadal_warp_engine",
D: "kubejs:infinity_power_unit",
S: "kubejs:dimensional_stabilization_netherite_casing",
Q: "kubejs:field_stabilised_omnic_pulsar_compound"
})
//
// Half Tier Microminers
//
// T2.5 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t2half", [
" G ",
" CQC ",
"PPAPP",
"PMBMP",
" T T ",
], {
G: "kubejs:basic_micro_miner_guidance_system",
P: "gtceu:double_dark_steel_plate",
A: "gtceu:mv_field_generator",
C: "minecraft:crossbow",
Q: "thermal:potion_quiver",
B: "gtceu:bronze_crate",
T: "kubejs:hardened_thruster",
M: "thermal:dynamo_magmatic"
})
// T4.5 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t4half", [
" LGL ",
"F ltl F",
"AllcllA",
" llfll ",
"ltctctl",
"ldlfldl",
" TTT "
], {
L: "kubejs:reinforced_mining_laser",
G: "kubejs:basic_micro_miner_guidance_system",
F: "redstone_arsenal:flux_sword",
l: "gtceu:double_lumium_plate",
t: "gtceu:double_hsse_plate",
A: "gtceu:hv_robot_arm",
c: "kubejs:signalum_micro_miner_core",
f: "gtceu:hv_field_generator",
d: "thermal:dynamo_compression",
T: "kubejs:energetic_thruster"
}).id("kubejs:microminer/t4half")
// T8.5 Microminer
event.recipes.extendedcrafting.shaped_table("kubejs:microminer_t8half", [
" AAA ",
" ANNNA ",
" GNTTTNG ",
" NNTFTNN ",
" NTECETN ",
"NNTSFSTNN",
"NTTQWQTTN",
"NTTYWYTTN",
" XXX XXX "
], {
A: "kubejs:supercharged_laser_array",
N: "gtceu:double_naquadah_alloy_plate",
G: "kubejs:advanced_micro_miner_guidance_system",
T: "gtceu:double_trinium_plate",
F: "gtceu:zpm_field_generator",
E: "gtceu:zpm_emitter",
C: "kubejs:abyssal_energy_core",
S: "gtceu:naquadah_alloy_frame",
Q: "gtceu:luv_quantum_chest",
W: "kubejs:warp_core",
Y: "kubejs:warp_controller",
X: "kubejs:warp_engine"
}).id("kubejs:microminer/t8half")
})

View file

@ -0,0 +1,130 @@
// priority: 1
/**
* Utility functions for registering microminer missions,
* and lower-tier projector missions more succinctly.
*/
/**
* Array to keep track of how many missions are available for each microminer tier.
* Used to generate circuit numbers for each mission.
*/
global.mission_counts = {
"1": 0,
"2": 0,
"2half": 0,
"3": 0,
"4": 0,
"4half": 0,
"5": 0,
"6": 0,
"7": 0,
"8": 0,
"8half": 0,
"9": 0,
"10": 0,
"11": 0,
"12": 0
}
/**
* Default durations for missions of a given microminer tier.
* Compare with repairDurations of repair.js.
*/
const missionDurations = {
"1": 100,
"2": 120,
"2half": 60,
"3": 150,
"4": 180,
"4half": 180,
"5": 200,
"6": 220,
"7": 240,
"8": 280,
"8half": 240,
"9": 300,
"10": 300,
"11": 360,
"12": 420
}
/**
* Default EU/t costs for missions of a given microminer tier.
*/
const missionEUt = {
"1": GTValues.VA[GTValues.HV],
"2": GTValues.VHA[GTValues.EV],
"2half": GTValues.VA[GTValues.EV],
"3": GTValues.VA[GTValues.EV],
"4": GTValues.VHA[GTValues.IV],
"4half": GTValues.VA[GTValues.IV],
"5": GTValues.VA[GTValues.IV],
"6": GTValues.VHA[GTValues.LuV],
"7": GTValues.VA[GTValues.LuV],
"8": GTValues.VA[GTValues.ZPM],
"8half": GTValues.VA[GTValues.ZPM],
"9": GTValues.VA[GTValues.UV],
"10": GTValues.VA[GTValues.UHV],
"11": GTValues.VA[GTValues.UEV],
"12": GTValues.VA[GTValues.UIV]
}
/**
* Registers a basic microverse mission and equivalent stabilized mission recipe
* @param {Internal.RecipesEventJS} event Parameter used in consumer for ServerEvents.recipes().
* @param {number|string} minerTier Miner tier index. Typically 1 through 12.
* @param {number} duration Recipe duration in seconds. Defaults based on the miner tier if left undefined.
* @param {number} EUt The EU per tick consumed by the recipe. Defaults based on the miner tier if left undefined.
* @param {number} minerReturnChance Chance a damaged miner is returned, in percent. [Integer 0-100]
* @returns {Internal.GTRecipeSchema$GTRecipeJS[]} Microverse recipe builders. Use this to add item and fluid I/O.
*/
function microverse_mission(event, minerTier, projectorTier, duration, EUt, minerReturnChance) {
// Increase global mission counter
global.mission_counts[minerTier]++;
// Convert miner return chance from percentage to GTM"s hundredth-of-a-percent format
minerReturnChance = Math.floor(minerReturnChance * 100)
// Use defaults if duration or EU/t not defined
if(duration == undefined) duration = missionDurations[minerTier]
if(EUt == undefined) EUt = missionEUt[minerTier]
// We return an array of GT recipe builders for the caller to act upon with a .forEach
// rather than a long parameter list, multiple overloads, or varargs
const builders = [];
// Register basic microverse mission
builders[0] = event.recipes.gtceu.microverse(`kubejs:mission_t${minerTier}_${global.mission_counts[minerTier]}`)
.addData("projector_tier", projectorTier)
.itemInputs(`kubejs:microminer_t${minerTier}`)
.duration(Math.round(duration * 20))
.EUt(EUt)
if(isNaN(minerReturnChance) || minerReturnChance == undefined) {
// By default, return the microminer that was passed into the input.
builders[0].itemOutputs(`kubejs:microminer_t${minerTier}`)
} else if(minerReturnChance > 0) {
// Only return the damaged miner if the chance to return it is positive and real
builders[0].chancedOutput(`kubejs:microminer_t${minerTier}_damaged`, minerReturnChance, minerReturnChance == 10000 ? 0 : 500)
}
const stabilized_miners = [
"2half",
"4half",
"6",
"7",
"8"
]
// Register actualization chamber counterparts in Hard Mode and Expert Mode except for T9+
if(stabilized_miners.indexOf(minerTier.toString()) != -1) {
builders[1] = event.recipes.gtceu.microverse(`kubejs:mission_t${minerTier}_${global.mission_counts[minerTier]}_stabilized`)
.addData("projector_tier", projectorTier)
.itemInputs(`kubejs:stabilized_microminer_t${minerTier}`)
.itemOutputs(`kubejs:stabilized_microminer_t${minerTier}`)
.duration(Math.round(duration * 20))
.EUt(EUt)
}
return builders;
}

View file

@ -0,0 +1,64 @@
/**
* Recipes for crafting Microverse Projectors, Microversium, and Microversium casing.
*/
ServerEvents.recipes(event => {
// Microversium Dust
event.recipes.gtceu.mixer("microversium")
.itemInputs("2x gtceu:steel_dust", "glowstone_dust", "redstone")
.inputFluids("gtceu:deuterium 1000")
.itemOutputs("5x gtceu:microversium_dust")
.duration(300)
.EUt(GTValues.VA[GTValues.MV])
// Microverse Casing
event.shaped("2x kubejs:microverse_casing", [
"PPP",
"PWP",
"PPP"
], {
P: "gtceu:microversium_plate",
W: "#forge:tools/wrenches"
}).id("kubejs:shapeless/microverse_casing")
event.recipes.gtceu.assembler("kubejs:microverse_casing")
.itemInputs("4x gtceu:microversium_plate")
.itemOutputs("kubejs:microverse_casing")
.duration(50)
.circuit(6)
.EUt(16)
// Single-recipe microverse projectors
let projector = [
["basic_microverse_projector", "#gtceu:circuits/hv"],
["advanced_microverse_projector", "#gtceu:circuits/ev"],
["advanced_microverse_projector_ii", "#gtceu:circuits/iv"]
]
projector.forEach(projector => {
event.shaped(`gtceu:${projector[0]}`, [
"CMC",
"MAM",
"CMC"
], {
C: projector[1],
M: "kubejs:microverse_casing",
A: "gtceu:computer_monitor_cover"
}).id(`kubejs:${projector[0]}`)
})
// Hyperbolic Microverse Projector
event.recipes.extendedcrafting.shaped_table("gtceu:hyperbolic_microverse_projector", [
"EPFPE",
"PALAP",
"FLRLF",
"PALAP",
"EPFPE"
], {
E: "gtceu:uv_field_generator",
P: "gtceu:double_microversium_plate",
F: "gtceu:uhv_emitter",
L: "kubejs:microverse_casing",
A: "#gtceu:circuits/uev",
R: "gtceu:computer_monitor_cover"
}).id("kubejs:shaped/hyperbolic_microverse_projector")
})

View file

@ -0,0 +1,83 @@
/**
* Recipe definitions for repairing microminers.
*/
/**
* Durations for repairs of a given microminer tier.
* Compare with missionDurations of mission_utils.js.
*/
const repairDurations = {
"2half": 80,
"4half": 120,
"6": 160,
"7": 180,
"8": 200
}
ServerEvents.recipes(event => {
/**
* Starts a recipe builder for a given microminer tier. Must be completed with more chanced input items.
* The miner tier determines the duration of the recipe.
* @param {number|string} minerTier Miner tier index. Typically 1 through 12.
* @param {string[]} doublePlateList List of the names of the double plate materials used to repair the hull.
* @param {string[]} heavyPlatingList List of the names of the heavy plating materials used to repair the hull.
*/
function repairing(minerTier, doublePlateList) {
let minerTierNumber;
if(minerTier == "2half") minerTierNumber = 2.5;
else if(minerTier == "4half") minerTierNumber = 4.5;
else minerTierNumber = minerTier;
const builder = event.recipes.gtceu.assembler(`kubejs:repair_t${minerTier}`)
.itemInputs(`kubejs:microminer_t${minerTier}_damaged`)
.itemOutputs(`kubejs:microminer_t${minerTier}`)
.inputFluids(Fluid.of("gtceu:soldering_alloy", 36 * minerTierNumber))
.duration(20 * repairDurations[minerTier])
if(doublePlateList != undefined) {
doublePlateList.forEach((name, index) => {
builder.chancedInput(`2x gtceu:double_${name}_plate`, 9000 - 1000 * index, -1000 + 200 * index)
})
}
return builder;
}
repairing(6, ["enderium"])
.EUt(GTValues.VHA[GTValues.LuV])
.chancedInput("kubejs:supercharged_laser_array", 2800, -700)
.chancedInput("kubejs:resonant_thruster", 3000, -1500)
.chancedInput("kubejs:advanced_micro_miner_guidance_system", 3000, -1500)
.chancedInput("kubejs:enderium_micro_miner_core", 1800, -600)
repairing(7, ["cryolobus", "naquadah"])
.EUt(GTValues.VA[GTValues.LuV])
.chancedInput("kubejs:supercharged_laser_array", 4000, -1000)
.chancedInput("kubejs:warp_engine", 2100, -700)
.chancedInput("kubejs:advanced_micro_miner_guidance_system", 3600, -1800)
.chancedInput("kubejs:enderium_micro_miner_core", 1800, -600)
.chancedInput("kubejs:bathyal_energy_core", 1200, -400)
repairing(8, ["crystal_matrix", "rhodium_plated_palladium", "duranium"])
.EUt(GTValues.VA[GTValues.ZPM])
.chancedInput("kubejs:supercharged_laser_array", 4500, -900)
.chancedInput("kubejs:warp_engine", 5100, -1700)
.chancedInput("kubejs:advanced_micro_miner_guidance_system", 4000, -2000)
.chancedInput("kubejs:warp_core", 2400, -600)
.chancedInput("kubejs:warp_controller", 2400, -600)
// Combat miners always need repairs for engaging in combat
repairing("2half", ["dark_steel"])
.EUt(GTValues.VHA[GTValues.EV])
.chancedInput("minecraft:crossbow", 1600, -400)
.chancedInput("kubejs:hardened_thruster", 2000, -1000)
.chancedInput("kubejs:basic_micro_miner_guidance_system", 1500, -1500)
repairing("4half", ["lumium", "hsse"])
.EUt(GTValues.VHA[GTValues.IV])
.chancedInput("redstone_arsenal:flux_sword", 2400, -600)
.chancedInput("kubejs:energetic_thruster", 2000, -1000)
.chancedInput("kubejs:basic_micro_miner_guidance_system", 3000, -3000)
.chancedInput("kubejs:signalum_micro_miner_core", 1800, -600)
})

View file

@ -0,0 +1,29 @@
/**
* Script for generating recipes for stabilized microminers.
*/
ServerEvents.recipes(event => {
const stabilized_miners = [
"2half",
"4half",
"6",
"7",
"8"
]
/**
* Function for making a stabilized miner assembly line recipe.
* @param {string} minerTier The tier of miner to generate a stabilized matter recipe for. Typically a string representation of a number.
*/
function stabilized_miner_recipe(minerTier) {
event.recipes.gtceu.assembly_line(`stable_t_${minerTier}`)
.itemInputs(`kubejs:microminer_t${minerTier}`, "kubejs:heart_of_a_universe", "2x kubejs:hadal_shard", "8x gtceu:uv_field_generator", "7x gtceu:dense_iridium_plate", "7x gtceu:dense_iridium_plate")
.inputFluids("gtceu:rocket_fuel 40800", "gtceu:omnium 576", "gtceu:neutronium 576")
.itemOutputs(`kubejs:stabilized_microminer_t${minerTier}`)
.duration(120)
.EUt(GTValues.VA[GTValues.UHV])
}
stabilized_miners.forEach((minerTier) => {
stabilized_miner_recipe(minerTier);
});
})

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,508 @@
/**
* Custom recipes for Ad Astra
*/
ServerEvents.recipes(event => {
// Replace all Steel plates & rods
event.replaceInput({ id: /^ad_astra:.*/ }, "ad_astra:steel_rod", "gtceu:steel_rod")
event.replaceInput({ id: /^ad_astra:.*/ }, "ad_astra:steel_plate", "gtceu:steel_plate")
// Space Suit
event.shaped("4x kubejs:thermal_cloth", [
"SSS",
"SSS",
"SSS"
], {
S: "minecraft:string"
})
event.shaped("kubejs:unprepared_space_helmet", [
"TTT",
"T T",
" "
], {
T: "kubejs:thermal_cloth"
})
event.shaped("kubejs:unprepared_space_suit", [
"T T",
"TTT",
"TTT"
], {
T: "kubejs:thermal_cloth"
})
event.shaped("kubejs:unprepared_space_pants", [
"TTT",
"T T",
"T T"
], {
T: "kubejs:thermal_cloth"
})
event.shaped("kubejs:unprepared_space_boots", [
" ",
"T T",
"T T"
], {
T: "kubejs:thermal_cloth"
})
event.shaped("kubejs:pressure_layer", [
"CPC",
"CPC",
"CPC"
], {
C: "kubejs:thermal_cloth",
P: "gtceu:black_steel_plate"
})
event.shaped("kubejs:radiation_layer", [
"CPC",
"CPC",
"CPC"
], {
C: "kubejs:thermal_cloth",
P: "gtceu:lead_plate"
})
const spacesuit = ["pants", "boots"]
// Space Suit
event.remove({ id: "ad_astra:space_helmet" })
event.recipes.gtceu.assembler("space_helmet")
.itemInputs("kubejs:unprepared_space_helmet", "#forge:double_plates/steel", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "#gtceu:circuits/lv", "#forge:glass")
.itemOutputs("ad_astra:space_helmet")
.duration(300)
.EUt(GTValues.VA[GTValues.LV])
event.remove({ id: "ad_astra:space_suit" })
event.recipes.gtceu.assembler("space_suit")
.itemInputs("kubejs:unprepared_space_suit", "#forge:double_plates/steel", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "ad_astra:oxygen_gear", "2x ad_astra:gas_tank")
.itemOutputs("ad_astra:space_suit")
.duration(300)
.EUt(GTValues.VA[GTValues.LV])
spacesuit.forEach(part => {
event.remove({ id: `ad_astra:space_${part}` })
event.recipes.gtceu.assembler(`space_${part}`)
.itemInputs(`kubejs:unprepared_space_${part}`, "#forge:double_plates/steel", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer")
.itemOutputs(`ad_astra:space_${part}`)
.duration(300)
.EUt(GTValues.VA[GTValues.LV])
})
// Netherite space suit
event.remove({ id: "ad_astra:netherite_space_helmet" })
event.recipes.gtceu.assembler("netherite_space_helmet")
.itemInputs("kubejs:unprepared_space_helmet", "minecraft:netherite_ingot", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "#gtceu:circuits/hv", "#forge:glass/tinted", "#forge:foils/gold")
.itemOutputs("ad_astra:netherite_space_helmet")
.duration(400)
.EUt(GTValues.VA[GTValues.MV])
event.remove({ id: "ad_astra:netherite_space_suit" })
event.recipes.gtceu.assembler("netherite_space_suit")
.itemInputs("kubejs:unprepared_space_suit", "minecraft:netherite_ingot", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "ad_astra:oxygen_gear", "2x ad_astra:large_gas_tank")
.itemOutputs("ad_astra:netherite_space_suit")
.duration(400)
.EUt(GTValues.VA[GTValues.MV])
spacesuit.forEach(part => {
event.remove({ id: `ad_astra:netherite_space_${part}` })
event.recipes.gtceu.assembler(`netherite_space_${part}`)
.itemInputs(`kubejs:unprepared_space_${part}`, "minecraft:netherite_ingot", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer")
.itemOutputs(`ad_astra:netherite_space_${part}`)
.duration(400)
.EUt(GTValues.VA[GTValues.MV])
})
// Jet Suit
event.remove({ id: "ad_astra:jet_suit_helmet" })
event.recipes.gtceu.assembler("jet_suit_helmet")
.itemInputs("ad_astra:netherite_space_helmet", "4x gtceu:titanium_carbide_plate", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "#gtceu:circuits/iv")
.itemOutputs("ad_astra:jet_suit_helmet")
.duration(400)
.EUt(GTValues.VA[GTValues.EV])
event.remove({ id: "ad_astra:jet_suit" })
event.recipes.gtceu.assembler("jet_suit")
.itemInputs("ad_astra:netherite_space_suit", "4x gtceu:titanium_carbide_plate", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer", "ad_astra:oxygen_gear", "2x ad_astra:large_gas_tank", "2x kubejs:vibrant_thruster")
.itemOutputs("ad_astra:jet_suit")
.duration(400)
.EUt(GTValues.VA[GTValues.EV])
spacesuit.forEach(part => {
event.remove({ id: `ad_astra:jet_suit_${part}` })
event.recipes.gtceu.assembler(`jet_suit_${part}`)
.itemInputs(`ad_astra:netherite_space_${part}`, "4x gtceu:titanium_carbide_plate", "2x kubejs:pressure_layer", "2x kubejs:radiation_layer")
.itemOutputs(`ad_astra:jet_suit_${part}`)
.duration(400)
.EUt(GTValues.VA[GTValues.EV])
})
// Nasa Work Bench
event.recipes.extendedcrafting.shaped_table("ad_astra:nasa_workbench", [
"RPEPR",
"PXCXP",
"PCACP",
"PXCXP",
"RPEPR"
], {
P: "gtceu:double_steel_plate",
R: "gtceu:hv_robot_arm",
X: "gtceu:hv_machine_casing",
A: "gtceu:mv_assembler",
E: "gtceu:hv_emitter",
C: "#gtceu:circuits/hv"
}).id("ad_astra:nasa_workbench")
// Oxygen Gear
event.remove({ output: "ad_astra:oxygen_gear" })
event.shaped("ad_astra:oxygen_gear", [
" R ",
"PCP",
"F F"
], {
R: "kubejs:resonating_crystal",
P: "gtceu:lv_electric_pump",
C: "#gtceu:circuits/lv",
F: "gtceu:steel_fluid_cell"
})
// Engines and Tanks
event.remove({ output: /ad_astra:.*_engine/ })
event.remove({ output: /ad_astra:.*_tank/ })
event.shaped("ad_astra:steel_engine", [
" P ",
"PPP",
"TTT"
], {
P: "gtceu:double_black_steel_plate",
T: "kubejs:electrical_steel_thruster"
})
event.shaped("ad_astra:steel_tank", [
"PTP",
"PTP",
"PTP"
], {
P: "gtceu:double_black_steel_plate",
T: "enderio:fluid_tank"
})
event.shaped("ad_astra:desh_engine", [
" P ",
"PPP",
"TTT"
], {
P: "gtceu:double_signalum_plate",
T: "kubejs:energetic_thruster"
})
event.shaped("ad_astra:desh_tank", [
"PTP",
"PTP",
"PTP"
], {
P: "gtceu:double_signalum_plate",
T: "enderio:fluid_tank"
})
event.shaped("ad_astra:ostrum_engine", [
" P ",
"PPP",
"TTT"
], {
P: "gtceu:double_hsss_plate",
T: "kubejs:vibrant_thruster"
})
event.shaped("ad_astra:ostrum_tank", [
"PTP",
"PTP",
"PTP"
], {
P: "gtceu:double_hsss_plate",
T: "enderio:fluid_tank"
})
event.shaped("ad_astra:calorite_engine", [
" P ",
"PPP",
"TTT"
], {
P: "gtceu:double_cryolobus_plate",
T: "kubejs:dark_soularium_thruster"
})
event.shaped("ad_astra:calorite_tank", [
"PTP",
"PTP",
"PTP"
], {
P: "gtceu:double_cryolobus_plate",
T: "enderio:fluid_tank"
})
event.recipes.gtceu.assembler("ad_astra/gas_tank")
.itemInputs("gtceu:fluid_cell", "4x gtceu:iron_plate")
.itemOutputs("ad_astra:gas_tank")
.duration(100)
.EUt(32)
event.recipes.gtceu.assembler("ad_astra/large_gas_tank")
.itemInputs("3x gtceu:fluid_cell", "12x gtceu:steel_plate")
.itemOutputs("ad_astra:large_gas_tank")
.duration(100)
.EUt(32)
// Launch Pad
event.remove({ id: "ad_astra:launch_pad" })
event.recipes.gtceu.assembler("ad_astra:launch_pad")
.itemInputs("9x gtceu:dense_steel_plate", "27x gtceu:concrete_dust")
.itemOutputs("ad_astra:launch_pad")
.duration(300)
.EUt(30)
// Oxygen Loading
event.custom('{"type": "ad_astra:oxygen_loading","cookingtime": 1,"energy": 30,"input": {"ingredient": {"tag": "forge:oxygen"},"millibuckets": 25},"result": {"fluid": "gtceu:oxygen","millibuckets": 25}}');
event.remove({ id: /oxygen_from_oxygen_loading/ })
event.remove({ id: "ad_astra:oxygen_distributor" })
event.shaped("ad_astra:oxygen_distributor", [
"BRB",
"PHP",
"BCB"
], {
R: "gtceu:steel_rotor",
H: "gtceu:hv_machine_hull",
P: "gtceu:hv_electric_pump",
B: "minecraft:iron_bars",
C: "#gtceu:circuits/hv"
})
event.remove({ id: "ad_astra:oxygen_loader" })
event.shaped("ad_astra:oxygen_loader", [
"BCB",
"PHP",
"BRB"
], {
R: "gtceu:steel_rotor",
H: "gtceu:lv_machine_hull",
P: "gtceu:lv_electric_pump",
B: "minecraft:iron_bars",
C: "#gtceu:circuits/lv"
})
event.remove({ id: "ad_astra:gravity_normalizer" })
event.shaped("ad_astra:gravity_normalizer", [
"BEB",
"CHC",
"BBB"
], {
E: "gtceu:ev_emitter",
H: "gtceu:ev_machine_hull",
B: "gtceu:titanium_plate",
C: "#gtceu:circuits/ev"
})
event.remove({ id: "ad_astra:oxygen_sensor" })
event.shaped("ad_astra:oxygen_sensor", [
"RRR",
"TOT",
"RRR"
], {
R: "gtceu:red_alloy_plate",
T: "gtceu:lv_sensor",
O: "ad_astra:oxygen_loader"
})
Item.of("ad_astra:tier_1_rover", '{BotariumData:{StoredFluids:[{Amount:0L,Fluid:"minecraft:empty"}]}}')
event.remove({ id: "ad_astra:tier_1_rover" })
event.recipes.gtceu.assembler("ad_astra:tier_1_rover")
.itemInputs(["8x gtceu:steel_plate", "4x ad_astra:wheel", "2x gtceu:lv_electric_motor", "ad_astra:radio", "gtceu:lv_sensor"])
.itemOutputs("ad_astra:tier_1_rover")
.duration(600)
.EUt(32)
const decormaterials = ["iron", "etrium", "steel", "desh", "ostrum", "calorite"]
decormaterials.forEach(material => {
event.stonecutting(`ad_astra:${material}_plateblock`, `ad_astra:${material}_panel`)
event.stonecutting(`ad_astra:encased_${material}_block`, `ad_astra:${material}_panel`)
event.stonecutting(`ad_astra:${material}_factory_block`, `ad_astra:${material}_panel`)
if (material != "iron") event.stonecutting(`ad_astra:${material}_block`, `ad_astra:${material}_panel`)
})
event.shaped("64x ad_astra:etrium_panel", [
"PDP",
"DDD",
"PDP"
], {
D: "minecraft:diamond",
P: "gtceu:diamond_plate"
})
// Rockets
event.remove({ id: /nasa_workbench/ })
const rocket = [ // Plate mats currently just based on color of rocket for testing
["tier_1_rocket", "steel", "black_steel"],
["tier_2_rocket", "desh", "signalum"],
["tier_3_rocket", "ostrum", "hsss"],
["tier_4_rocket", "calorite", "cryolobus"],
]
rocket.forEach(([rocket, tier, platematerial]) => {
event.custom({
"type": "ad_astra:nasa_workbench",
"ingredients": [
{
"item": "ad_astra:rocket_nose_cone"
},
{
"item": `gtceu:double_${platematerial}_plate`
},
{
"item": `gtceu:double_${platematerial}_plate`
},
{
"item": `gtceu:double_${platematerial}_plate`
},
{
"item": `gtceu:double_${platematerial}_plate`
},
{
"item": `gtceu:double_${platematerial}_plate`
},
{
"item": `gtceu:double_${platematerial}_plate`
},
{
"item": "ad_astra:rocket_fin"
},
{
"item": `ad_astra:${tier}_tank`
},
{
"item": `ad_astra:${tier}_tank`
},
{
"item": "ad_astra:rocket_fin"
},
{
"item": "ad_astra:rocket_fin"
},
{
"item": `ad_astra:${tier}_engine`
},
{
"item": "ad_astra:rocket_fin"
}
],
"result": {
"count": 1,
"id": `ad_astra:${rocket}`
}
})
})
// Space Stations
event.remove({ id: /space_station/ })
const spacestations = ["earth", "moon", "mars", "venus", "glacio", "mercury"]
spacestations.forEach(dim => {
event.custom({
"type": "ad_astra:space_station_recipe",
"dimension": `ad_astra:${dim}_orbit`,
"ingredients": [
{
"count": 16,
"ingredient": {
"item": "gtceu:double_titanium_plate"
}
},
{
"count": 8,
"ingredient": {
"tag": "gtceu:circuits/ev"
}
},
{
"count": 4,
"ingredient": {
"item": "gtceu:ev_robot_arm"
}
},
{
"count": 2,
"ingredient": {
"item": "gtceu:ev_emitter"
}
}
],
"structure": "ad_astra:space_station"
})
})
})
ServerEvents.tags("fluid", event => {
// Fuel
event.add("ad_astra:fuel", "gtceu:rocket_fuel")
event.add("ad_astra:fuel", "gtceu:jean_gasoline")
event.add("ad_astra:efficient_fuel", "gtceu:jean_gasoline")
})
ServerEvents.tags("item", event => {
const quarkTechArmor = [
"gtceu:quarktech_helmet",
"gtceu:quarktech_chestplate",
"gtceu:advanced_quarktech_chestplate",
"gtceu:quarktech_leggings",
"gtceu:quarktech_boots"
]
event.add("ad_astra:space_resistant_armor", quarkTechArmor)
event.add("ad_astra:freeze_resistant_armor", quarkTechArmor)
event.add("ad_astra:heat_resistant_armor", quarkTechArmor)
})
ServerEvents.recipes(event => {
// Ad Astra Rock Breaker
function AdAstraRockBreaker(id, input, output, EUt, dimension) {
event.recipes.gtceu.rock_breaker(`kubejs:${id}`)
.notConsumable(Item.of(input))
.itemOutputs(output)
.duration(16)
.EUt(EUt)
.dimension(dimension)
.addDataString("fluidA", "minecraft:lava")
.addDataString("fluidB", "minecraft:water")
}
AdAstraRockBreaker("moonstone", "ad_astra:moon_stone", "ad_astra:moon_stone", 240, "ad_astra:moon")
AdAstraRockBreaker("moondeepslate", "ad_astra:moon_deepslate", "ad_astra:moon_deepslate", 240, "ad_astra:moon")
AdAstraRockBreaker("marsstone", "ad_astra:mars_stone", "ad_astra:mars_stone", 240, "ad_astra:mars")
AdAstraRockBreaker("conglomerate", "ad_astra:conglomerate", "ad_astra:conglomerate", 240, "ad_astra:mars")
AdAstraRockBreaker("venusstone", "ad_astra:venus_stone", "ad_astra:venus_stone", 960, "ad_astra:venus")
AdAstraRockBreaker("infernalspireblock", "ad_astra:infernal_spire_block", "ad_astra:infernal_spire_block", 960, "ad_astra:venus")
AdAstraRockBreaker("mercurystone", "ad_astra:mercury_stone", "ad_astra:mercury_stone", 960, "ad_astra:mercury")
AdAstraRockBreaker("glaciostone", "ad_astra:glacio_stone", "ad_astra:glacio_stone", 2160, "ad_astra:glacio")
AdAstraRockBreaker("permafrost", "ad_astra:permafrost", "ad_astra:permafrost", 2160, "ad_astra:glacio")
// Ad Astra Rock Forge Hammers
function AdAstraForgeHammer(id, input, output, duration, EUt) {
event.recipes.gtceu.forge_hammer(`kubejs:${id}`)
.itemInputs(Item.of(input))
.itemOutputs(output)
.duration(duration)
.EUt(EUt)
}
AdAstraForgeHammer("mooncobble", "ad_astra:moon_stone", "ad_astra:moon_cobblestone", 12, 4)
AdAstraForgeHammer("moonsand", "ad_astra:moon_cobblestone", "ad_astra:moon_sand", 10, 16)
AdAstraForgeHammer("marscobble", "ad_astra:mars_stone", "ad_astra:mars_cobblestone", 12, 4)
AdAstraForgeHammer("marssand", "ad_astra:mars_cobblestone", "ad_astra:mars_sand", 10, 16)
AdAstraForgeHammer("venuscobble", "ad_astra:venus_stone", "ad_astra:venus_cobblestone", 12, 4)
AdAstraForgeHammer("venussand", "ad_astra:venus_cobblestone", "ad_astra:venus_sand", 10, 16)
AdAstraForgeHammer("mercurycobble", "ad_astra:mercury_stone", "ad_astra:mercury_cobblestone", 12, 4)
AdAstraForgeHammer("glaciocobble", "ad_astra:glacio_stone", "ad_astra:glacio_cobblestone", 12, 4)
})

View file

@ -0,0 +1,799 @@
/**
* Custom recipes for EnderIO
*/
ServerEvents.recipes(event => {
// Item and Fluid Conduits //
// Make lowest tier fluid conduit pressurized
event.remove({ id: "enderio:fluid_conduit" })
if (doConduits) {
if(doHarderRecipes) {
// Manual item conduit
event.shaped("4x enderio:item_conduit", [
"BPB",
"WWW",
"BPB"
], {
B: "enderio:conduit_binder",
W: "gtceu:pulsating_alloy_single_wire",
P: "gtceu:polyvinyl_chloride_foil"
}).id("kubejs:item_conduit")
event.shaped("4x enderio:pressurized_fluid_conduit", [
"BBB",
"GGG",
"BBB"
], {
B: "enderio:conduit_binder",
G: "#forge:glass/colorless"
}).id("kubejs:pressurized_fluid_conduit")
// Manual ender fluid conduit
event.shaped("4x enderio:ender_fluid_conduit", [
"BCB",
"WPW",
"BCB"
], {
B: "enderio:conduit_binder",
W: "gtceu:vibrant_alloy_single_wire",
P: "enderio:pressurized_fluid_conduit",
C: "gtceu:polyvinyl_chloride_foil"
}).id("kubejs:ender_fluid_conduit_upgrade")
event.remove({ id: "enderio:ender_fluid_conduit_upgrade" })
// Assembler item conduit
event.recipes.gtceu.assembler("kubejs:efficent_item_conduit")
.itemInputs("3x gtceu:pulsating_alloy_single_wire", "6x enderio:conduit_binder", "2x gtceu:polyvinyl_chloride_foil")
.itemOutputs("8x enderio:item_conduit")
.duration(80)
.EUt(16)
// Assembler ender fluid conduit
event.recipes.gtceu.assembler("kubejs:efficent_ender_conduit")
.itemInputs("2x gtceu:vibrant_alloy_single_wire", "enderio:pressurized_fluid_conduit", "6x enderio:conduit_binder", "2x gtceu:polyvinyl_chloride_foil")
.itemOutputs("8x enderio:ender_fluid_conduit")
.duration(80)
.EUt(16)
} else {
// Manual item conduit
event.shaped("4x enderio:item_conduit", [
"BBB",
"WWW",
"BBB"
], {
B: "enderio:conduit_binder",
W: "gtceu:pulsating_alloy_single_wire"
}).id("kubejs:item_conduit")
event.shaped("4x enderio:pressurized_fluid_conduit", [
"BBB",
"GGG",
"BBB"
], {
B: "enderio:conduit_binder",
G: "#forge:glass/colorless"
}).id("kubejs:pressurized_fluid_conduit")
// Manual ender fluid conduit
event.shaped("4x enderio:ender_fluid_conduit", [
"BBB",
"WPW",
"BBB"
], {
B: "enderio:conduit_binder",
W: "gtceu:vibrant_alloy_single_wire",
P: "enderio:pressurized_fluid_conduit"
}).id("kubejs:ender_fluid_conduit_upgrade")
event.remove({ id: "enderio:ender_fluid_conduit_upgrade" })
// Assembler item conduit
event.recipes.gtceu.assembler("kubejs:efficent_item_conduit")
.itemInputs("3x gtceu:pulsating_alloy_single_wire", "6x enderio:conduit_binder")
.itemOutputs("8x enderio:item_conduit")
.duration(80)
.EUt(16)
// Assembler ender fluid conduit
event.recipes.gtceu.assembler("kubejs:efficent_ender_conduit")
.itemInputs("2x gtceu:vibrant_alloy_single_wire", "enderio:pressurized_fluid_conduit", "6x enderio:conduit_binder")
.itemOutputs("8x enderio:ender_fluid_conduit")
.duration(80)
.EUt(16)
}
// Energy Conduits //
// Conductive Iron
event.shaped("3x enderio:conductive_conduit", [
"AAA",
"BBB",
"AAA"
], {
A: "enderio:conduit_binder",
B: "gtceu:conductive_alloy_single_wire"
}).id("kubejs:conductive_conduit")
event.recipes.gtceu.assembler("kubejs:conductive_conduit")
.itemInputs("3x gtceu:conductive_alloy_single_wire", "6x enderio:conduit_binder")
.itemOutputs("4x enderio:conductive_conduit")
.duration(80)
.EUt(16)
// Energetic Alloy
event.shaped("3x enderio:energetic_conduit", [
"AAA",
"BCB",
"AAA"
], {
A: "enderio:conduit_binder",
B: "gtceu:energetic_alloy_single_wire",
C: "enderio:conductive_conduit"
}).id("kubejs:energetic_conduit")
event.recipes.gtceu.assembler("kubejs:energetic_conduit")
.itemInputs("2x gtceu:energetic_alloy_single_wire", "enderio:conductive_conduit", "6x enderio:conduit_binder")
.itemOutputs("4x enderio:energetic_conduit")
.duration(80)
.EUt(16)
// Vibrant Alloy
event.shaped("3x enderio:vibrant_conduit", [
"AAA",
"BCB",
"AAA"
], {
A: "enderio:conduit_binder",
B: "gtceu:vibrant_alloy_single_wire",
C: "enderio:energetic_conduit"
}).id("kubejs:vibrant_conduit")
event.recipes.gtceu.assembler("kubejs:vibrant_conduit")
.itemInputs("2x gtceu:vibrant_alloy_single_wire", "enderio:energetic_conduit", "6x enderio:conduit_binder")
.itemOutputs("4x enderio:vibrant_conduit")
.duration(80)
.EUt(16)
// Endsteel
event.recipes.gtceu.assembler("kubejs:endsteel_conduit")
.itemInputs("2x gtceu:end_steel_single_wire", "enderio:vibrant_conduit", "6x enderio:conduit_binder")
.itemOutputs("4x enderio:endsteel_conduit")
.duration(80)
.EUt(16)
// Lumium
event.recipes.gtceu.assembler("kubejs:lumium_conduit")
.itemInputs("2x gtceu:lumium_single_wire", "enderio:endsteel_conduit", "6x enderio:conduit_binder")
.itemOutputs("4x enderio:lumium_conduit")
.duration(80)
.EUt(16)
// Signalum
event.recipes.gtceu.assembler("kubejs:signalum_conduit")
.itemInputs("2x gtceu:signalum_single_wire", "enderio:lumium_conduit", "6x enderio:conduit_binder")
.itemOutputs("4x enderio:signalum_conduit")
.duration(80)
.EUt(16)
// Enderium
event.recipes.gtceu.assembler("kubejs:enderium_conduit")
.itemInputs("2x gtceu:enderium_single_wire", "enderio:signalum_conduit", "6x enderio:conduit_binder")
.itemOutputs("4x enderio:enderium_conduit")
.duration(80)
.EUt(16)
// Cryolobus
event.recipes.gtceu.assembler("kubejs:cryolobus_conduit")
.itemInputs("2x gtceu:cryolobus_single_wire", "enderio:enderium_conduit", "6x enderio:conduit_binder")
.itemOutputs("4x enderio:cryolobus_conduit")
.duration(80)
.EUt(16)
// Sculk Superconductor
event.recipes.gtceu.assembler("kubejs:sculk_superconductor_conduit")
.itemInputs("2x gtceu:sculk_superconductor_single_wire", "enderio:cryolobus_conduit", "6x enderio:conduit_binder")
.itemOutputs("4x enderio:sculk_superconductor_conduit")
.duration(80)
.EUt(16)
} else {
event.remove({ id: "enderio:ender_fluid_conduit_upgrade" })
event.remove({ output: "enderio:pressurized_fluid_conduit" })
}
event.remove({ output: ["enderio:iron_gear", "enderio:energized_gear", "enderio:vibrant_gear", "enderio:dark_bimetal_gear"] })
// Infinity Bimetal Gear
event.recipes.gtceu.alloy_smelter("kubejs:infinity_gear")
.itemInputs("gtceu:iron_gear", "2x enderio:grains_of_infinity")
.itemOutputs("enderio:iron_gear")
.duration(100)
.EUt(16)
// Energized Bimetal Gear
event.recipes.gtceu.alloy_smelter("kubejs:energetic_gear")
.itemInputs("enderio:iron_gear", "4x gtceu:energetic_alloy_ingot")
.itemOutputs("enderio:energized_gear")
.duration(150)
.EUt(16)
// Vibrant Bimetal Gear
event.recipes.gtceu.alloy_smelter("kubejs:vibrant_gear")
.itemInputs("enderio:energized_gear", "4x gtceu:vibrant_alloy_ingot")
.itemOutputs("enderio:vibrant_gear")
.duration(200)
.EUt(16)
// Dark Bimetal Gear
event.recipes.gtceu.alloy_smelter("kubejs:dark_bimetal_gear")
.itemInputs("enderio:iron_gear", "4x gtceu:dark_steel_ingot")
.itemOutputs("enderio:dark_bimetal_gear")
.duration(200)
.EUt(16)
event.remove({ output: ["enderio:pulsating_crystal", "enderio:vibrant_crystal"] })
event.recipes.gtceu.autoclave("kubejs:vibrant_crystal")
.itemInputs("minecraft:emerald")
.inputFluids(Fluid.of("gtceu:vibrant_alloy", 144))
.itemOutputs("enderio:vibrant_crystal")
.duration(200)
.EUt(30)
event.recipes.gtceu.autoclave("kubejs:pulsating_crystal")
.itemInputs("minecraft:diamond")
.inputFluids(Fluid.of("gtceu:pulsating_alloy", 144))
.itemOutputs("enderio:pulsating_crystal")
.duration(100)
.EUt(30)
// Disable EnderIO machinery
event.remove({ id: "enderio:primitive_alloy_smelter" })
event.remove({ id: "enderio:alloy_smelter" })
event.remove({ id: "enderio:sag_mill" })
event.remove({ id: "enderio:stirling_generator" })
// Capacitors
event.remove({ output: "enderio:basic_capacitor" })
const capacitorCores = [
["#gtceu:circuits/ulv", 1],
["gtceu:capacitor", 2],
["gtceu:smd_capacitor", 3],
["gtceu:advanced_smd_capacitor", 3 * 4],
["kubejs:complex_smd_capacitor", 3 * 4 * 4],
]
capacitorCores.forEach(core => {
event.shaped(`${core[1]}x enderio:basic_capacitor`, [
" N ",
"NCN",
"W W"
], {
N: "#forge:ingots/electrical_steel",
C: core[0],
W: "gtceu:tin_single_wire"
}).id(`kubejs:basic_capacitor_${Item.of(core[0]).idLocation.path}`)
})
// Compressed caps
event.shaped("kubejs:compressed_octadic_capacitor", [
"CCC",
"CCC",
"CCC"
], {
C: "enderio:octadic_capacitor"
}).id("kubejs:compressed_octadic_capacitor")
event.shaped("kubejs:double_compressed_octadic_capacitor", [
"CCC",
"CCC",
"CCC"
], {
C: "kubejs:compressed_octadic_capacitor"
}).id("kubejs:double_compressed_octadic_capacitor")
// make it use tags
event.replaceInput({ id: "enderio:octadic_capacitor" }, "minecraft:glowstone", "#forge:storage_blocks/glowstone")
// capacitor banks
event.remove({ id: "enderio:advanced_capacitor_bank" })
event.remove({ id: "enderio:vibrant_capacitor_bank_upgrade" })
event.replaceInput({ id: "enderio:basic_capacitor_bank" }, "#forge:ingots/iron", "#forge:plates/iron")
event.replaceInput({ id: "enderio:advanced_capacitor_bank_upgrade" }, "#forge:ingots/energetic_alloy", "#forge:plates/electrical_steel")
event.replaceInput({ id: "enderio:vibrant_capacitor_bank" }, ["#forge:ingots/vibrant_alloy", "enderio:octadic_capacitor"], "#forge:plates/vibrant_alloy")
// Fused Quartz
event.recipes.gtceu.alloy_smelter("kubejs:fused_quartz")
.itemInputs("3x minecraft:quartz")
.notConsumable("gtceu:block_casting_mold")
.itemOutputs("enderio:fused_quartz")
.duration(80)
.EUt(16)
// Clear Glass
event.recipes.gtceu.alloy_smelter("kubejs:clear_glass_soda_ash")
.itemInputs("minecraft:glass", "gtceu:tiny_soda_ash_dust")
.itemOutputs("enderio:clear_glass")
.duration(80)
.EUt(16)
event.recipes.gtceu.alloy_smelter("kubejs:clear_glass_quicklime")
.itemInputs("minecraft:glass", "gtceu:tiny_quicklime_dust")
.itemOutputs("enderio:clear_glass")
.duration(80)
.EUt(16)
// Enlightened fused quartz
event.recipes.gtceu.alloy_smelter("kubejs:enlightened_fused_quartz")
.itemInputs("#enderio:fused_quartz", "minecraft:glowstone")
.itemOutputs("enderio:fused_quartz_e")
.duration(160)
.EUt(16)
// dark fused quartz
event.recipes.gtceu.alloy_smelter("kubejs:dark_fused_quartz")
.itemInputs("#enderio:fused_quartz", "gtceu:black_quartz_gem")
.itemOutputs("enderio:fused_quartz_d")
.duration(200)
.EUt(32)
// Enlightened clear glass
event.recipes.gtceu.alloy_smelter("kubejs:enlightened_clear_glass")
.itemInputs("#enderio:clear_glass", "minecraft:glowstone")
.itemOutputs("enderio:clear_glass_e")
.duration(160)
.EUt(16)
// dark clear glass
event.recipes.gtceu.alloy_smelter("kubejs:dark_clear_glass")
.itemInputs("#enderio:clear_glass", "gtceu:black_quartz_gem")
.itemOutputs("enderio:clear_glass_d")
.duration(200)
.EUt(32)
// Remove useless/op conduit recipes from enderio
event.remove({ input: "#enderio:fused_quartz", output: "enderio:pressurized_fluid_conduit" })
event.remove({ input: "gtceu:vibrant_alloy_ingot", output: "enderio:ender_fluid_conduit" })
event.remove({ input: "gtceu:pulsating_alloy_nugget", output: "enderio:item_conduit" })
// chasis. "industrial machine chassis"
event.recipes.gtceu.alloy_smelter("kubejs:void_chassis")
.itemInputs("gtceu:lv_machine_hull", "#forge:dusts/grains_of_infinity")
.itemOutputs("enderio:void_chassis")
.duration(200)
.EUt(30)
event.recipes.gtceu.alloy_smelter("kubejs:ensouled_chassis")
.itemInputs("enderio:void_chassis", "#forge:dusts/soularium")
.itemOutputs("enderio:ensouled_chassis")
.duration(200)
.EUt(30)
event.recipes.gtceu.alloy_smelter("kubejs:infinity_rod")
.itemInputs("gtceu:dark_steel_rod", "enderio:grains_of_infinity")
.itemOutputs("enderio:infinity_rod")
.duration(200)
.EUt(30)
// Conduit Binder Composite Mixer Recipe
event.recipes.gtceu.mixer("kubejs:conduit_binder_composite")
.itemInputs("2x minecraft:clay_ball", "3x minecraft:gravel", "2x #minecraft:smelts_to_glass")
.itemOutputs("8x enderio:conduit_binder_composite")
.duration(64)
.EUt(7)
// Enchanter
event.remove({ output: ["enderio:enchanter"] })
event.shaped("enderio:enchanter", [
"DCD",
"BBB",
" A "
], {
A: "gtceu:void_block",
B: "gtceu:dark_steel_ingot",
C: "minecraft:book",
D: "minecraft:diamond"
}).id("kubejs:enchanter")
// Custom enchanter books
event.custom(
{
"type": "enderio:enchanting",
"cost_multiplier": 1,
"enchantment": "ensorcellation:air_affinity",
"input": {
"count": 1,
"ingredient": {
"item": "quark:bottled_cloud"
}
}
})
event.custom(
{
"type": "enderio:enchanting",
"cost_multiplier": 1,
"enchantment": "ensorcellation:reach",
"input": {
"count": 1,
"ingredient": {
"item": "ulvcovm:ulv_robot_arm"
}
}
})
// Yeta Wrench
event.remove({ output: ["enderio:yeta_wrench"] })
event.shaped("enderio:yeta_wrench", [
"I I",
" G ",
" I "
], {
I: "#forge:ingots/iron",
G: "gtceu:iron_gear"
}).id("kubejs:yeta_wrench")
event.remove({ output: "enderio:void_chassis" })
// Redstone Conduit
event.replaceInput({ id: "enderio:redstone_conduit" }, "gtceu:red_alloy_ingot", "gtceu:red_alloy_single_wire")
// Soul Vials
// Villager Soul Vial
event.shaped(Item.of("enderio:filled_soul_vial", '{BlockEntityTag: {EntityStorage: {Entity: {id: "minecraft:villager"}}}}').strongNBT(), [
" E ",
"EVE",
" E "
], {
E: "minecraft:emerald",
V: "enderio:empty_soul_vial"
}).id("kubejs:villager_soul_vial")
// Enderman Soul Vial
event.shaped(Item.of("enderio:filled_soul_vial", '{BlockEntityTag: {EntityStorage: {Entity: {id: "minecraft:enderman"}}}}').strongNBT(), [
" E ",
"EVE",
" E "
], {
E: "enderio:enderman_head",
V: "enderio:empty_soul_vial"
}).id("kubejs:enderman_soul_vial")
// Shulker Soul Vial
event.shaped(Item.of("enderio:filled_soul_vial", '{BlockEntityTag: {EntityStorage: {Entity: {id: "minecraft:shulker"}}}}').strongNBT(), [
" E ",
"EVE",
" E "
], {
E: "minecraft:shulker_shell",
V: "enderio:empty_soul_vial"
}).id("kubejs:shulker_soul_vial")
// Zombie Soul Vial
event.shaped(Item.of("enderio:filled_soul_vial", '{BlockEntityTag: {EntityStorage: {Entity: {id: "minecraft:zombie"}}}}').strongNBT(), [
" E ",
"EVE",
" E "
], {
E: "minecraft:zombie_head",
V: "enderio:empty_soul_vial"
}).id("kubejs:zombie_soul_vial")
// Ghast Soul Vial
event.shaped(Item.of("enderio:filled_soul_vial", '{BlockEntityTag: {EntityStorage: {Entity: {id: "minecraft:ghast"}}}}').strongNBT(), [
" E ",
"EVE",
" E "
], {
E: "minecraft:ghast_tear",
V: "enderio:empty_soul_vial"
}).id("kubejs:ghast_soul_vial")
// Witch Soul Vial
event.shaped(Item.of("enderio:filled_soul_vial", '{BlockEntityTag: {EntityStorage: {Entity: {id: "minecraft:witch"}}}}').strongNBT(), [
"GEG",
"EVE",
"GEG"
], {
E: "minecraft:redstone",
G: "minecraft:glowstone_dust",
V: "enderio:empty_soul_vial"
}).id("kubejs:witch_soul_vial")
// Grains
event.recipes.gtceu.macerator("kubejs:grains_of_prescience")
.itemInputs("enderio:prescient_crystal")
.itemOutputs("enderio:prescient_powder")
.duration(400)
.EUt(16)
event.recipes.gtceu.macerator("kubejs:grains_of_vibrancy")
.itemInputs("enderio:vibrant_crystal")
.itemOutputs("enderio:vibrant_powder")
.duration(300)
.EUt(16)
event.recipes.gtceu.macerator("kubejs:grains_of_piezallity")
.itemInputs("enderio:pulsating_crystal")
.itemOutputs("enderio:pulsating_powder")
.duration(200)
.EUt(16)
event.recipes.gtceu.macerator("kubejs:grains_of_the_end")
.itemInputs("enderio:ender_crystal")
.itemOutputs("enderio:ender_crystal_powder")
.duration(500)
.EUt(16)
event.recipes.gtceu.macerator("kubejs:grains_of_innocence")
.itemInputs("enderio:enticing_crystal")
.itemOutputs("kubejs:grains_of_innocence")
.duration(200)
.EUt(16)
// Fluid of the Void (TODO: actually use EnderIO machines when they are totally definitely for sure ported to 1.20.1)
event.recipes.gtceu.chemical_reactor("kubejs:dew_of_the_void")
.itemInputs("enderio:pulsating_powder", "enderio:vibrant_powder")
.inputFluids("thermal:ender 4000")
.outputFluids("enderio:dew_of_the_void 2000")
.duration(84)
.EUt(15)
event.recipes.gtceu.chemical_reactor("kubejs:ender_star")
.itemInputs("minecraft:nether_star")
.inputFluids("enderio:dew_of_the_void 8000")
.itemOutputs("kubejs:ender_star")
.duration(2000)
.EUt(400)
// Painting Machine
event.remove({ id: "enderio:painting_machine" })
event.shaped("enderio:painting_machine", [
"QDQ",
"GHG",
"RRR"
], {
D: "minecraft:diamond",
G: "enderio:iron_gear", // DO NOT CONVERT TO GT, THIS EXPLICITLY USES ENDERIO
H: "gtceu:lv_machine_hull",
Q: "minecraft:quartz",
R: "#forge:ingots/electrical_steel"
}).id("kubejs:painting_machine")
// Crafter
event.remove({ id: "enderio:crafter" })
if (doConduits) {
event.shaped("enderio:crafter", [
"RCR",
"GFG",
"SSS"
], {
C: "minecraft:crafting_table",
F: "gtceu:lv_machine_hull",
G: "enderio:iron_gear",
R: "kubejs:resonating_crystal",
S: "enderio:item_conduit"
}).id("enderio:crafter")
} else {
event.shaped("enderio:crafter", [
"RCR",
"GFG",
"SSS"
], {
C: "minecraft:crafting_table",
F: "gtceu:lv_machine_hull",
G: "enderio:iron_gear",
R: "kubejs:resonating_crystal",
S: "gtceu:pulsating_alloy_single_wire"
}).id("enderio:crafter")
}
// Z-Logic Controller
event.shaped("enderio:z_logic_controller", [
"SHS",
"SCS",
"WBW"
], {
B: "gtceu:red_alloy_block",
C: "#gtceu:circuits/mv",
H: "minecraft:zombie_head",
S: "#forge:ingots/soularium",
W: "gtceu:silicon_wafer"
}).id("kubejs:z_logic_controller")
event.shaped("2x enderio:z_logic_controller", [
"SHS",
"SCS",
"WBW"
], {
B: "gtceu:red_alloy_block",
C: "#gtceu:circuits/mv",
H: "minecraft:zombie_head",
S: "#forge:ingots/soularium",
W: "gtceu:phosphorus_wafer"
}).id("kubejs:z_logic_controller_2x")
event.shaped("4x enderio:z_logic_controller", [
"SHS",
"SCS",
"WBW"
], {
B: "gtceu:red_alloy_block",
C: "#gtceu:circuits/mv",
H: "minecraft:zombie_head",
S: "#forge:ingots/soularium",
W: "gtceu:naquadah_wafer"
}).id("kubejs:z_logic_controller_4x")
event.shaped("8x enderio:z_logic_controller", [
"SHS",
"SCS",
"WBW"
], {
B: "gtceu:red_alloy_block",
C: "#gtceu:circuits/mv",
H: "minecraft:zombie_head",
S: "#forge:ingots/soularium",
W: "gtceu:neutronium_wafer"
}).id("kubejs:z_logic_controller_8x")
// glider wing
event.replaceInput({ id: "enderio:glider_wing" }, "#forge:ingots/dark_steel", "#forge:nuggets/dark_steel")
// staff of traveling
event.replaceInput({ id: "enderio:staff_of_travelling" }, "#forge:ingots/dark_steel", "#forge:rods/dark_steel")
event.replaceInput({ id: "enderio:staff_of_travelling" }, "enderio:ender_crystal", "enderio:pulsating_crystal")
// travel anchor
event.replaceInput({ id: "enderio:travel_anchor" }, "enderio:conduit_binder", "#forge:plates/vibrant_alloy")
event.replaceInput({ id: "enderio:travel_anchor" }, "iron_ingot", "#forge:plates/dark_steel")
// coordinate selector
event.remove({ id: "enderio:coordinate_selector" })
event.shaped("enderio:coordinate_selector", [
"ABC",
" DC",
" C"
], {
A: "gtceu:mv_emitter",
B: "#forge:storage_blocks/emerald",
C: "#forge:plates/electrical_steel",
D: "enderio:vibrant_gear"
}).id("kubejs:coordinate_selector")
// soul binder
event.remove({ id: "enderio:soul_binder" })
event.recipes.extendedcrafting.shaped_table("enderio:soul_binder", [
"AAAAA",
"ABCBA",
"ADGEA",
"ABFBA",
"AAAAA",
], {
A: "#forge:plates/soularium",
B: "#forge:plates/tungsten_steel",
C: "enderio:enderman_head",
D: "minecraft:creeper_head",
E: "minecraft:zombie_head",
F: "minecraft:skeleton_skull",
G: "enderio:ensouled_chassis"
}).id("kubejs:soul_binder")
// powered spawner
event.remove({ id: "enderio:powered_spawner" })
event.shaped("enderio:powered_spawner", [
"ABA",
"ACA",
"DED"
], {
A: "#forge:ingots/electrical_steel",
B: "enderio:broken_spawner",
C: "enderio:ensouled_chassis",
D: "#forge:gems/vibrant_crystal",
E: "enderio:z_logic_controller"
}).modifyResult((grid, result) => {
let input = grid.find("enderio:broken_spawner")
return result.withNBT(input.nbt)
}).id("kubejs:powered_spawner")
// slicensplice
event.replaceInput({ id: "enderio:slice_and_splice" }, "#forge:ingots/soularium", "#forge:plates/tungsten_steel")
event.replaceInput({ id: "enderio:slice_and_splice" }, "iron_bars", "enderio:dark_steel_bars")
// impulse hopper
event.replaceInput({ id: "enderio:impulse_hopper" }, "#forge:gears/iron", "enderio:energized_gear")
// wired charger
event.remove({ id: "enderio:wired_charger" })
event.shaped("enderio:wired_charger", [
"ABA",
"CDC",
"ECE"
], {
A: "#forge:plates/dark_steel",
B: "ae2:charger",
C: "enderio:conductive_conduit",
D: "enderio:void_chassis",
E: "#forge:plates/electrical_steel"
}).id("kubejs:wired_charger")
// Experience Rod
event.shaped("enderio:experience_rod", [
" V",
" S ",
"V ",
], {
S: "#forge:ingots/soularium",
V: "#forge:ingots/vibrant_alloy"
})
// xp obelisk
event.remove({ id: "enderio:xp_obelisk" })
event.shaped("enderio:xp_obelisk", [
" A ",
"BCB",
"DED"
], {
A: "enderio:experience_rod",
B: "#forge:ingots/energetic_alloy",
C: "enderio:fluid_tank",
D: "#forge:ingots/soularium",
E: "enderio:ensouled_chassis"
})
// Whatever
event.replaceInput({ input: "#forge:ingots/copper_alloy" }, "enderio:copper_alloy_ingot", "gtceu:pulsating_iron_ingot")
// Clear tanks
event.shapeless("enderio:fluid_tank", ["enderio:fluid_tank"])
event.shapeless("enderio:pressurized_fluid_tank", ["enderio:pressurized_fluid_tank"])
// Cheaper me conduit recipes
if (doConduits) {
event.recipes.gtceu.assembler("kubejs:dense_me_conduit")
.itemInputs("4x enderio:me_conduit", "5x enderio:conduit_binder")
.itemOutputs("2x enderio:dense_me_conduit")
.duration(80)
.EUt(16)
event.recipes.gtceu.assembler("kubejs:me_conduit")
.itemInputs("3x ae2:fluix_covered_cable", "6x enderio:conduit_binder")
.itemOutputs("8x enderio:me_conduit")
.duration(100)
.EUt(16)
} else {
event.remove({ output: "enderio:me_conduit" })
event.remove({ output: "enderio:dense_me_conduit" })
}
event.replaceInput({ output: "enderio:extraction_speed_upgrade_3" }, "gtceu:soularium_ingot", "gtceu:aluminium_ingot")
// Conduit Probe recipe
event.replaceInput({ id: "enderio:conduit_probe" }, "enderio:conductive_alloy_ingot", "gtceu:conductive_alloy_ingot")
if (doConduits) {
event.replaceInput({ id: "enderio:conduit_probe" }, "enderio:energy_conduit", "enderio:conductive_conduit")
} else {
event.replaceInput({ id: "enderio:conduit_probe" }, "enderio:energy_conduit", "gtceu:conductive_alloy_single_wire")
}
// Make End Steel Craftable in HV
event.recipes.gtceu.chemical_bath("end_steel_ingot_cooling")
.inputFluids("minecraft:water 100")
.itemInputs("gtceu:hot_end_steel_ingot")
.itemOutputs("gtceu:end_steel_ingot")
.duration(200)
.EUt(GTValues.VHA[GTValues.HV])
event.recipes.gtceu.chemical_bath("end_steel_ingot_distilled_cooling")
.inputFluids("gtceu:distilled_water 100")
.itemInputs("gtceu:hot_end_steel_ingot")
.itemOutputs("gtceu:end_steel_ingot")
.duration(125)
.EUt(GTValues.VHA[GTValues.HV])
})

View file

@ -0,0 +1,244 @@
/**
* ALL HNN-related stuff
*/
ServerEvents.recipes(event => {
if (doHNN) {
// remove dml iems
event.remove({ output: ["hostilenetworks:blank_data_model", "hostilenetworks:deep_learner", "hostilenetworks:loot_fabricator", "hostilenetworks:sim_chamber"] })
// Issue #84
event.recipes.gtceu.assembler("bones_to_skull")
.itemInputs("4x minecraft:bone")
.itemOutputs("minecraft:skeleton_skull")
.circuit(13)
.duration(20)
.EUt(16)
event.shaped("minecraft:wither_skeleton_skull", [
"AA ",
"AB ",
" "
], {
A: "minecraft:skeleton_skull",
B: "hostilenetworks:nether_prediction"
}).noMirror().noShrink()
event.shapeless("minecraft:feather", ["hostilenetworks:overworld_prediction", "minecraft:string"])
event.recipes.gtceu.compressor("calcium_to_bonemeal")
.itemInputs("2x gtceu:calcium_dust")
.itemOutputs("minecraft:bone_meal")
.duration(20)
.EUt(4)
event.shaped("hostilenetworks:blank_data_model", [
"BBA",
"DCA",
"BBA"
], {
A: "gtceu:fine_gold_wire",
B: "gtceu:electrical_steel_plate",
C: "#gtceu:circuits/lv",
D: "kubejs:pulsating_mesh"
})
event.shaped("kubejs:dark_steel_machine_hull", [
"AAA",
"ABA",
"AAA"
], {
A: "gtceu:dark_steel_plate",
B: "gtceu:lv_machine_hull"
})
event.recipes.gtceu.assembler("dark_steel_machine_hull")
.itemInputs("gtceu:lv_machine_hull", "8x #forge:plates/dark_steel")
.itemOutputs("kubejs:dark_steel_machine_hull")
.duration(50)
.EUt(16)
.circuit(6)
event.shaped("hostilenetworks:sim_chamber", [
"ACA",
"BDB",
"ABA"
], {
A: "kubejs:pulsating_mesh",
B: "#gtceu:circuits/lv",
C: "minecraft:glass_pane",
D: "kubejs:dark_steel_machine_hull"
})
event.shaped("hostilenetworks:loot_fabricator", [
"ACA",
"BDB",
"AHA"
], {
A: "gtceu:energetic_alloy_plate",
B: "#gtceu:circuits/mv",
C: "minecraft:glass_pane",
D: "kubejs:dark_steel_machine_hull",
H: "minecraft:hopper"
})
event.replaceInput({ id: "hostilenetworks:living_matter/nether_to_ender" }, "minecraft:end_stone", "minecraft:ender_pearl")
// PPC
event.remove({ output: "hostilenetworks:prediction_matrix" })
event.recipes.gtceu.alloy_smelter("pulsating_polymer_clay")
.itemInputs(["kubejs:pulsating_dust", "minecraft:clay"])
.itemOutputs("4x hostilenetworks:prediction_matrix")
.duration(240)
.EUt(7)
event.recipes.gtceu.electrolyzer("gt_quartz")
.itemInputs("4x minecraft:glass")
.itemOutputs("minecraft:quartz")
.duration(100)
.EUt(20)
event.recipes.gtceu.alloy_smelter("carbon_fiber_mesh_coal")
.itemInputs(["4x minecraft:string", "gtceu:coal_dust"])
.itemOutputs("gtceu:carbon_fiber_mesh")
.duration(100)
.EUt(16)
event.recipes.gtceu.alloy_smelter("carbon_fiber_mesh_carbon")
.itemInputs(["4x minecraft:string", "gtceu:carbon_dust"])
.itemOutputs("gtceu:carbon_fiber_mesh")
.duration(100)
.EUt(16)
event.recipes.gtceu.alloy_smelter("pulsating_mesh")
.itemInputs(["gtceu:carbon_fiber_mesh", "4x kubejs:pulsating_dust"])
.itemOutputs("kubejs:pulsating_mesh")
.duration(200)
.EUt(16)
// PPM (Autoclave)
event.recipes.gtceu.autoclave("pulsating_prediction_matrix_autoclave")
.itemInputs("8x kubejs:pulsating_dust")
.inputFluids(Fluid.of("gtceu:polybenzimidazole", 144))
.itemOutputs("64x hostilenetworks:prediction_matrix")
.duration(200)
.EUt(GTValues.VA[GTValues.IV])
// IMPOSSIBLE REALM DATA
let predictions = [
["overworld", 1],
["nether", 2],
["end", 4]
]
predictions.forEach(item => {
event.shaped(Item.of("kubejs:impossible_realm_data", item[1]), [
"ABA",
"BAB",
"ABA"
], {
A: `hostilenetworks:${item[0]}_prediction`,
B: "kubejs:solidified_experience"
})
})
event.recipes.gtceu.extractor("extract_quantum_flux")
.itemInputs("kubejs:impossible_realm_data")
.itemOutputs("kubejs:quantum_flux")
.duration(100)
.EUt(3000)
// LAIR DATA
let lairs = [
["deep_dark", "overworld", "deepslate"],
["wither_realm", "nether", "netherrack"],
["dragon_lair", "end", "endstone"]
]
lairs.forEach(item => {
event.shaped(`kubejs:${item[0]}_data`, [
"ABB",
"BBB",
"BBB"
], {
A: "kubejs:impossible_realm_data",
B: `hostilenetworks:${item[1]}_prediction`
})
event.recipes.gtceu.canner(`canning_${item[0]}_data`)
.itemInputs("1x kubejs:impossible_realm_data", `6x hostilenetworks:${item[1]}_prediction`)
.inputFluids(Fluid.of("enderio:xp_juice", 140))
.itemOutputs(`1x kubejs:${item[0]}_data`)
.duration(20)
.EUt(60)
event.recipes.gtceu.canner(`advanced_canning_${item[0]}_data`)
.itemInputs([`3x gtceu:small_${item[2]}_dust`, `8x hostilenetworks:${item[1]}_prediction`])
.inputFluids(Fluid.of("enderio:xp_juice", 500))
.itemOutputs(`2x kubejs:${item[0]}_data`)
.duration(20)
.EUt(960)
})
}
})
ItemEvents.rightClicked(event => {
if (event.item.id === "hostilenetworks:overworld_prediction") {
event.player.addXP(10)
event.item.count--
}
if (event.item.id === "hostilenetworks:nether_prediction") {
event.player.addXP(20)
event.item.count--
}
if (event.item.id === "hostilenetworks:end_prediction") {
event.player.addXP(25)
event.item.count--
}
})
// Crafting recipes for the models
ServerEvents.recipes(event => {
if (doHNN) {
let dataModelData = [
["blaze", "minecraft:blaze_powder", "nether", true],
["creeper", "minecraft:gunpowder", "overworld", true],
["ender_dragon", "kubejs:dragon_lair_data", "end", true],
["enderman", "minecraft:ender_pearl", "end", true],
["ghast", "minecraft:ghast_tear", "nether", true],
["guardian", "minecraft:prismarine_shard", "overworld", true],
["shulker", "minecraft:diamond", "end", true],
["skeleton", "minecraft:bone", "overworld", false],
["slime", "minecraft:slime_ball", "overworld", false],
["spider", "minecraft:spider_eye", "overworld", true],
["warden", "kubejs:deep_dark_data", "overworld", true],
["witch", "minecraft:glass_bottle", "overworld", true],
["wither", "minecraft:nether_star", "nether", false],
["wither_skeleton", "minecraft:wither_skeleton_skull", "nether", true],
["zombie", "minecraft:rotten_flesh", "overworld", false],
["thermal/thermal_elemental", ["kubejs:aerotheum_dust", "kubejs:cryotheum_dust", "kubejs:petrotheum_dust", "kubejs:pyrotheum_dust"], "overworld", true]
]
dataModelData.forEach(modeldata => {
// Is this hacky? Yes. Do i care? No.
let recipeIngredients = [
"hostilenetworks:blank_data_model",
modeldata[1]
]
if (modeldata[3]) {
recipeIngredients.push(`7x hostilenetworks:${modeldata[2]}_prediction`)
}
event.shapeless(
Item.of("hostilenetworks:data_model", JSON.stringify({
data_model: {
data: 6,
id: "hostilenetworks:" + modeldata[0],
}
})),
recipeIngredients
)
})
}
})

View file

@ -0,0 +1,134 @@
/**
* Custom recipes for the Iron Furnaces mod
*/
ServerEvents.recipes(event => {
event.remove({ output: ["ironfurnaces:rainbow_plating", "ironfurnaces:rainbow_core", "ironfurnaces:million_furnace", "ironfurnaces:augment_factory", "ironfurnaces:iron_furnace", "ironfurnaces:silver_furnace", "ironfurnaces:copper_furnace", "ironfurnaces:gold_furnace", "ironfurnaces:diamond_furnace", "ironfurnaces:obsidian_furnace", "ironfurnaces:netherite_furnace"] })
const furnaces = [
["iron_furnace", "minecraft:iron_ingot", "minecraft:furnace"],
["copper_furnace", "minecraft:copper_ingot", "ironfurnaces:iron_furnace"],
["silver_furnace", "gtceu:silver_ingot", "ironfurnaces:copper_furnace"],
["gold_furnace", "minecraft:gold_ingot", "ironfurnaces:silver_furnace"],
["diamond_furnace", "minecraft:diamond", "ironfurnaces:gold_furnace"],
];
furnaces.forEach(([furnace, mat, base]) => {
event.shaped(Item.of(`ironfurnaces:${furnace}`), [
"AAA",
"ABA",
"AAA"
], {
A: mat,
B: base,
});
});
event.shaped("ironfurnaces:obsidian_furnace", [
"AAA",
"BAB",
"AAA"
], {
A: "minecraft:obsidian",
B: "ironfurnaces:diamond_furnace"
})
event.shaped("ironfurnaces:netherite_furnace", [
"ABA",
"BBB",
"ABA"
], {
A: "minecraft:netherite_ingot",
B: "ironfurnaces:obsidian_furnace"
})
event.shaped("ironfurnaces:augment_factory", [
"ACA",
"BDB",
"ACA"
], {
A: "gtceu:green_sapphire_plate",
B: "ironfurnaces:obsidian_furnace",
C: "#gtceu:circuits/mv",
D: "gtceu:steel_gear"
})
event.shaped("ironfurnaces:item_copy", [
" I ",
"SRS",
"SSS"
], {
S: "#forge:cobblestone/normal",
R: "minecraft:redstone",
I: "minecraft:iron_ingot"
})
// Sequential assembler recipes for Iron Furnaces
event.recipes.gtceu.assembler("kubejs:stone_to_iron_furnace")
.itemInputs("minecraft:furnace", "4x gtceu:iron_plate")
.itemOutputs("ironfurnaces:iron_furnace")
.duration(200)
.EUt(30)
.circuit(5)
let furnaceupgrade = [
["copper", "iron"],
["silver", "copper"],
["gold", "silver"],
["diamond", "gold"],
]
furnaceupgrade.forEach(([tier, mat1]) => {
event.recipes.gtceu.assembler(`kubejs:${mat1}_to_${tier}_furnace`)
.itemInputs(`ironfurnaces:${mat1}_furnace`, `4x gtceu:${tier}_plate`)
.itemOutputs(`ironfurnaces:${tier}_furnace`)
.duration(300)
.EUt(30)
.circuit(5)
})
event.recipes.gtceu.assembler("kubejs:diamond_to_obsidian_furnace")
.itemInputs("2x ironfurnaces:diamond_furnace", "4x gtceu:obsidian_plate")
.itemOutputs("ironfurnaces:obsidian_furnace")
.duration(200)
.EUt(30)
.circuit(5)
event.recipes.gtceu.assembler("kubejs:obsidian_to_netherite_furnace")
.itemInputs("5x ironfurnaces:obsidian_furnace", "4x minecraft:netherite_ingot")
.itemOutputs("ironfurnaces:netherite_furnace")
.duration(200)
.EUt(30)
.circuit(5)
// Direct assembler recipes for Iron Furnaces
const stonefurnaceupgrade = ["iron", "copper", "silver", "gold", "diamond"]
// Start from silver furnace
for (let index = 2; index < stonefurnaceupgrade.length; index++) {
let mat1 = stonefurnaceupgrade[index];
let mat2 = stonefurnaceupgrade[index - 1];
let mat3 = stonefurnaceupgrade[index - 2];
event.recipes.gtceu.assembler(`kubejs:stone_to_${mat1}_furnace`)
.itemInputs("minecraft:furnace", `4x gtceu:${mat1}_plate`, `4x gtceu:${mat2}_plate`, `2x gtceu:${mat3}_plate`)
.itemOutputs(`ironfurnaces:${mat1}_furnace`)
.duration(300)
.EUt(GTValues.VA[index - 1])
.circuit(8)
}
event.recipes.gtceu.assembler("kubejs:stone_to_obsidian_furnace")
.itemInputs("2x minecraft:furnace", "4x gtceu:gold_plate", "8x gtceu:diamond_plate", "4x gtceu:obsidian_plate")
.itemOutputs("ironfurnaces:obsidian_furnace")
.duration(400)
.EUt(GTValues.VA[GTValues.EV])
.circuit(8)
event.recipes.gtceu.assembler("kubejs:stone_to_netherite_furnace")
.itemInputs("5x minecraft:furnace", "20x gtceu:diamond_plate", "20x gtceu:obsidian_plate", "4x minecraft:netherite_ingot")
.itemOutputs("ironfurnaces:netherite_furnace")
.duration(500)
.EUt(GTValues.VA[GTValues.IV])
.circuit(8)
})

View file

@ -0,0 +1,490 @@
// priority: 0
/**
* NuclearCraft configuration
*/
ServerEvents.recipes(event => {
// HUGE REWORK NUCLEARCRAFT
event.remove({ output: ["nuclearcraft:supercooler", "nuclearcraft:rock_crusher", "nuclearcraft:decay_hastener", "nuclearcraft:irradiator", "nuclearcraft:nuclear_furnace", "nuclearcraft:extractor", "nuclearcraft:electrolyzer", "nuclearcraft:pressurizer", "nuclearcraft:alloy_smelter", "nuclearcraft:centrifuge", "nuclearcraft:manufactory", "nuclearcraft:gas_scrubber", "nuclearcraft:fluid_enricher", "nuclearcraft:isotope_separator", "nuclearcraft:fluid_infuser", "nuclearcraft:chemical_reactor", "nuclearcraft:analyzer", "nuclearcraft:ingot_former", "nuclearcraft:pump", "nuclearcraft:fuel_reprocessor", "nuclearcraft:leacher", "nuclearcraft:crystallizer", "nuclearcraft:assembler", "nuclearcraft:steam_turbine", "nuclearcraft:melter"] })
event.remove({ output: ["nuclearcraft:nitrogen_collector", "nuclearcraft:compact_nitrogen_collector", "nuclearcraft:lava_collector", "nuclearcraft:dense_nitrogen_collector", "nuclearcraft:compact_helium_collector", "nuclearcraft:helium_collector", "nuclearcraft:dense_helium_collector"] })
event.remove({ output: ["nuclearcraft:foursmore", "nuclearcraft:evenmoresmore", "nuclearcraft:moresmore", "nuclearcraft:smore"] })
})
// Live Fuel decomp
// Could also use this to change how these fuels are created?
ServerEvents.recipes(event => {
function decomp(name, fuel, ing1, ing2) {
event.recipes.gtceu.thermal_centrifuge(`kubejs:${name}_decomp`)
.itemInputs(fuel)
.itemOutputs(ing1, ing2)
.duration(3200)
.EUt(48)
}
function decomp_single(name, fuel, ing) {
event.recipes.gtceu.thermal_centrifuge(`kubejs:${name}_decomp`)
.itemInputs(fuel)
.itemOutputs(ing)
.duration(3200)
.EUt(48)
}
decomp_single("thorium_tbu_232", "nuclearcraft:fuel_thorium_tbu", "9x nuclearcraft:thorium_232");
decomp("uranium_leu_233", "nuclearcraft:fuel_uranium_leu_233", "8x gtceu:uranium_dust", "nuclearcraft:uranium_233");
decomp("uranium_heu_233", "nuclearcraft:fuel_uranium_heu_233", "5x gtceu:uranium_dust", "4x nuclearcraft:uranium_233");
decomp("uranium_leu_235", "nuclearcraft:fuel_uranium_leu_235", "8x gtceu:uranium_dust", "gtceu:uranium_235_dust");
decomp("uranium_heu_235", "nuclearcraft:fuel_uranium_heu_235", "5x gtceu:uranium_dust", "4x gtceu:uranium_235_dust");
decomp("neptunium_len_236", "nuclearcraft:fuel_neptunium_len_236", "8x nuclearcraft:neptunium_237", "nuclearcraft:neptunium_236");
decomp("neptunium_hen_236", "nuclearcraft:fuel_neptunium_hen_236", "5x nuclearcraft:neptunium_237", "4x nuclearcraft:neptunium_236");
decomp("plutonium_lep_239", "nuclearcraft:fuel_plutonium_lep_239", "8x nuclearcraft:plutonium_242", "gtceu:plutonium_dust");
decomp("plutonium_hep_239", "nuclearcraft:fuel_plutonium_hep_239", "5x nuclearcraft:plutonium_242", "4x gtceu:plutonium_dust");
decomp("plutonium_lep_241", "nuclearcraft:fuel_plutonium_lep_241", "8x nuclearcraft:plutonium_242", "gtceu:plutonium_241_dust");
decomp("plutonium_hep_241", "nuclearcraft:fuel_plutonium_hep_241", "5x nuclearcraft:plutonium_242", "4x gtceu:plutonium_241_dust");
decomp("americium_lea_242", "nuclearcraft:fuel_americium_lea_242", "8x nuclearcraft:americium_243", "nuclearcraft:americium_242");
decomp("americium_hea_242", "nuclearcraft:fuel_americium_hea_242", "5x nuclearcraft:americium_243", "4x nuclearcraft:americium_242");
decomp("curium_lecm_243", "nuclearcraft:fuel_curium_lecm_243", "8x nuclearcraft:curium_246", "nuclearcraft:curium_243");
decomp("curium_hecm_243", "nuclearcraft:fuel_curium_hecm_243", "5x nuclearcraft:curium_246", "4x nuclearcraft:curium_243");
decomp("curium_lecm_245", "nuclearcraft:fuel_curium_lecm_245", "8x nuclearcraft:curium_246", "nuclearcraft:curium_245");
decomp("curium_hecm_245", "nuclearcraft:fuel_curium_hecm_245", "5x nuclearcraft:curium_246", "4x nuclearcraft:curium_245");
decomp("curium_lecm_247", "nuclearcraft:fuel_curium_lecm_247", "8x nuclearcraft:curium_246", "nuclearcraft:curium_247");
decomp("curium_hecm_247", "nuclearcraft:fuel_curium_hecm_247", "5x nuclearcraft:curium_246", "4x nuclearcraft:curium_247");
decomp("berkelium_leb_248", "nuclearcraft:fuel_berkelium_leb_248", "8x nuclearcraft:berkelium_247", "nuclearcraft:berkelium_248");
decomp("berkelium_heb_248", "nuclearcraft:fuel_berkelium_heb_248", "5x nuclearcraft:berkelium_247", "4x nuclearcraft:berkelium_248");
decomp("californium_lecf_249", "nuclearcraft:fuel_californium_lecf_249", "8x nuclearcraft:californium_252", "nuclearcraft:californium_249");
decomp("californium_hecf_249", "nuclearcraft:fuel_californium_hecf_249", "5x nuclearcraft:californium_252", "4x nuclearcraft:californium_249");
decomp("californium_lecf_251", "nuclearcraft:fuel_californium_lecf_251", "8x nuclearcraft:californium_252", "nuclearcraft:californium_251");
decomp("californium_hecf_251", "nuclearcraft:fuel_californium_hecf_251", "5x nuclearcraft:californium_252", "4x nuclearcraft:californium_251");
function decompdepleted(fuelType, out, out2, out3, out4, voltageTier) {
event.recipes.gtceu.centrifuge(`${fuelType}decompdepleted`)
.itemInputs(`nuclearcraft:depleted_fuel_${fuelType}`)
.itemOutputs(out, out2, out3, out4)
.duration(400)
.EUt(GTValues.VHA[voltageTier])
}
decompdepleted("thorium_tbu", "2x nuclearcraft:uranium_233", "8x gtceu:uranium_235_nugget", "nuclearcraft:neptunium_236", "4x nuclearcraft:neptunium_237", GTValues.IV)
decompdepleted("uranium_leu_233", "4x nuclearcraft:plutonium_242", "4x gtceu:plutonium_nugget", "4x gtceu:plutonium_241_nugget", "3x nuclearcraft:americium_243", GTValues.IV)
decompdepleted("uranium_heu_233", "4x nuclearcraft:neptunium_236", "nuclearcraft:neptunium_237", "2x nuclearcraft:plutonium_242", "nuclearcraft:americium_243", GTValues.IV)
decompdepleted("uranium_leu_235", "nuclearcraft:neptunium_237", "40x gtceu:uranium_nugget", "8x gtceu:plutonium_nugget", "8x gtceu:plutonium_241_nugget", GTValues.IV)
decompdepleted("uranium_heu_235", "2x nuclearcraft:neptunium_237", "20x gtceu:uranium_nugget", "4x gtceu:plutonium_nugget", "3x nuclearcraft:plutonium_242", GTValues.IV)
decompdepleted("neptunium_len_236", "nuclearcraft:neptunium_237", "4x nuclearcraft:plutonium_242", "nuclearcraft:americium_242", "3x nuclearcraft:americium_243", GTValues.LuV)
decompdepleted("neptunium_hen_236", "nuclearcraft:plutonium_238", "16x gtceu:uranium_nugget", "8x gtceu:plutonium_nugget", "4x nuclearcraft:plutonium_242", GTValues.LuV)
decompdepleted("plutonium_lep_239", "3x nuclearcraft:plutonium_242", "nuclearcraft:curium_243", "8x gtceu:plutonium_nugget", "3x nuclearcraft:curium_246", GTValues.LuV)
decompdepleted("plutonium_hep_239", "nuclearcraft:americium_241", "3x nuclearcraft:americium_242", "nuclearcraft:curium_245", "3x nuclearcraft:curium_246", GTValues.LuV)
decompdepleted("plutonium_lep_241", "nuclearcraft:plutonium_242", "nuclearcraft:plutonium_242", "nuclearcraft:americium_243", "6x nuclearcraft:curium_246", GTValues.LuV)
decompdepleted("plutonium_hep_241", "nuclearcraft:americium_241", "nuclearcraft:curium_245", "3x nuclearcraft:curium_246", "3x nuclearcraft:curium_247", GTValues.LuV)
decompdepleted("americium_lea_242", "nuclearcraft:curium_243", "nuclearcraft:curium_245", "5x nuclearcraft:curium_246", "nuclearcraft:curium_247", GTValues.LuV)
decompdepleted("americium_hea_242", "2x nuclearcraft:curium_245", "4x nuclearcraft:curium_246", "nuclearcraft:curium_247", "nuclearcraft:berkelium_247", GTValues.LuV)
decompdepleted("curium_lecm_243", "4x nuclearcraft:curium_246", "2x nuclearcraft:berkelium_247", "nuclearcraft:berkelium_248", "nuclearcraft:californium_249", GTValues.ZPM)
decompdepleted("curium_hecm_243", "3x nuclearcraft:curium_246", "3x nuclearcraft:berkelium_247", "nuclearcraft:berkelium_248", "nuclearcraft:californium_249", GTValues.ZPM)
decompdepleted("curium_lecm_245", "5x nuclearcraft:berkelium_247", "nuclearcraft:berkelium_248", "nuclearcraft:californium_249", "2x nuclearcraft:californium_252", GTValues.ZPM)
decompdepleted("curium_hecm_245", "6x nuclearcraft:berkelium_247", "nuclearcraft:berkelium_248", "nuclearcraft:californium_249", "nuclearcraft:californium_251", GTValues.ZPM)
decompdepleted("curium_lecm_247", "3x nuclearcraft:berkelium_247", "nuclearcraft:berkelium_248", "nuclearcraft:californium_251", "4x nuclearcraft:californium_252", GTValues.ZPM)
decompdepleted("curium_hecm_247", "nuclearcraft:berkelium_248", "nuclearcraft:californium_249", "3x nuclearcraft:californium_251", "3x nuclearcraft:californium_252", GTValues.ZPM)
decompdepleted("berkelium_leb_248", "nuclearcraft:californium_249", "nuclearcraft:californium_251", "3x nuclearcraft:californium_252", "3x nuclearcraft:californium_252", GTValues.ZPM)
decompdepleted("berkelium_heb_248", "nuclearcraft:californium_250", "nuclearcraft:californium_251", "3x nuclearcraft:californium_252", "3x nuclearcraft:californium_252", GTValues.ZPM)
decompdepleted("californium_lecf_249", "2x nuclearcraft:californium_250", "nuclearcraft:californium_251", "2x nuclearcraft:californium_252", "8x gtceu:actinium_nugget", GTValues.ZPM)
decompdepleted("californium_hecf_249", "4x nuclearcraft:californium_250", "2x nuclearcraft:californium_251", "nuclearcraft:californium_252", "12x gtceu:actinium_nugget", GTValues.ZPM)
decompdepleted("californium_lecf_251", "nuclearcraft:californium_251", "2x nuclearcraft:californium_252", "2x nuclearcraft:californium_252", "8x gtceu:actinium_nugget", GTValues.ZPM)
decompdepleted("californium_hecf_251", "2x nuclearcraft:californium_251", "2x nuclearcraft:californium_252", "2x nuclearcraft:californium_252", "16x gtceu:actinium_nugget", GTValues.ZPM)
function cansolid(name, input) {
event.remove({ output: `nuclearcraft:${name}_heat_sink` })
event.recipes.gtceu.canner(name)
.itemInputs("nuclearcraft:empty_heat_sink", `16x ${input}`)
.itemOutputs(`nuclearcraft:${name}_heat_sink`)
.duration(400)
.EUt(2)
}
function canfluid(name, input) {
event.remove({ output: `nuclearcraft:${name}_heat_sink` })
event.recipes.gtceu.canner(`${name}_heat_sink`)
.itemInputs("nuclearcraft:empty_heat_sink")
.inputFluids(Fluid.of(input, 1000))
.itemOutputs(`nuclearcraft:${name}_heat_sink`)
.duration(400)
.EUt(2)
}
function canmod(name, input) {
event.remove({ output: `nuclearcraft:${name}_block` })
event.recipes.gtceu.canner(`${name}_heat_sink`)
.itemInputs("nuclearcraft:empty_heat_sink", `9x ${input}`)
.itemOutputs(`nuclearcraft:${name}_block`)
.duration(400)
.EUt(2)
}
canfluid("water", "minecraft:water")
cansolid("redstone", "minecraft:redstone")
cansolid("quartz", "gtceu:nether_quartz_dust")
cansolid("gold", "gtceu:gold_dust")
cansolid("glowstone", "minecraft:glowstone_dust")
cansolid("lapis", "gtceu:lapis_dust")
cansolid("diamond", "gtceu:diamond_dust")
canfluid("liquid_helium", "gtceu:helium")
cansolid("enderium", "gtceu:enderium_dust")
canfluid("cryotheum", "kubejs:molten_cryotheum")
cansolid("iron", "gtceu:iron_dust")
cansolid("emerald", "gtceu:emerald_dust")
cansolid("copper", "gtceu:copper_dust")
cansolid("magnesium", "gtceu:magnesium_dust")
cansolid("slime", "minecraft:slime_ball")
cansolid("netherite", "minecraft:netherite_scrap")
cansolid("end_stone", "gtceu:endstone_dust")
cansolid("prismarine", "minecraft:prismarine_crystals")
cansolid("obsidian", "gtceu:obsidian_dust")
cansolid("purpur", "minecraft:popped_chorus_fruit")
cansolid("nether_brick", "minecraft:nether_brick")
cansolid("lithium", "gtceu:lithium_dust")
cansolid("arsenic", "gtceu:arsenic_dust")
cansolid("lead", "gtceu:lead_dust")
cansolid("boron", "gtceu:boron_dust")
cansolid("silver", "gtceu:silver_dust")
canfluid("liquid_nitrogen", "gtceu:nitrogen")
cansolid("fluorite", "gtceu:fluorite_dust")
cansolid("tin", "gtceu:tin_dust")
cansolid("aluminum", "gtceu:aluminium_dust")
cansolid("manganese", "gtceu:manganese_dust")
canmod("graphite", "gtceu:graphite_dust")
canmod("beryllium", "gtceu:beryllium_dust")
event.remove({ id: "nuclearcraft:empty_heat_sink" })
event.shaped("nuclearcraft:empty_heat_sink", [
"TST",
"S S",
"TST"
], {
T: "nuclearcraft:tough_alloy_ingot",
S: "gtceu:steel_ingot"
})
function cansolidactive(name, input) {
event.remove({ output: `nuclearcraft:active_${name}_heat_sink` })
event.recipes.gtceu.canner(`active_${name}_heat_sink`)
.itemInputs("nuclearcraft:empty_active_heat_sink", `16x ${input}`)
.itemOutputs(`nuclearcraft:active_${name}_heat_sink`)
.duration(400)
.EUt(2)
}
function canfluidactive(name, input) {
event.remove({ output: `nuclearcraft:active_${name}_heat_sink` })
event.recipes.gtceu.canner(`active_${name}heat_sink`)
.itemInputs("nuclearcraft:empty_active_heat_sink")
.inputFluids(Fluid.of(input, 1000))
.itemOutputs(`nuclearcraft:active_${name}_heat_sink`)
.duration(400)
.EUt(2)
}
canfluidactive("water", "minecraft:water")
cansolidactive("redstone", "minecraft:redstone")
canfluidactive("liquid_helium", "gtceu:helium")
canfluidactive("liquid_nitrogen", "gtceu:nitrogen")
cansolidactive("enderium", "gtceu:enderium_dust")
canfluidactive("cryotheum", "kubejs:molten_cryotheum")
event.remove({ id: "nuclearcraft:empty_active_heat_sink" })
event.shaped("nuclearcraft:empty_active_heat_sink", [
"TST",
"S S",
"TST"
], {
T: "nuclearcraft:tough_alloy_ingot",
S: "gtceu:dark_steel_ingot"
})
event.remove({ output: "nuclearcraft:plate_basic" })
event.shaped("2x nuclearcraft:plate_basic", [
"TST",
"SDS",
"TST"
], {
T: "nuclearcraft:tough_alloy_ingot",
S: "gtceu:tungsten_plate",
D: "gtceu:double_steel_plate"
})
event.remove({ id: "nuclearcraft:plate_advanced" })
event.shaped("2x nuclearcraft:plate_advanced", [
"TST",
"SDS",
"TST"
], {
T: "nuclearcraft:hard_carbon_ingot",
S: "gtceu:yttrium_barium_cuprate_plate",
D: "nuclearcraft:plate_basic"
})
event.remove({ id: "nuclearcraft:plate_du" })
event.recipes.gtceu.alloy_smelter("du_plating")
.itemInputs("nuclearcraft:plate_advanced", "kubejs:stabilized_uranium")
.itemOutputs("2x nuclearcraft:plate_du")
.duration(400)
.EUt(2000)
event.remove({ id: "nuclearcraft:plate_elite" })
event.shaped("2x nuclearcraft:plate_elite", [
"TST",
"SDS",
"TST"
], {
T: "nuclearcraft:rhodochrosite_dust",
S: "gtceu:enderium_plate",
D: "nuclearcraft:plate_du"
})
event.remove({ id: "nuclearcraft:fission_reactor_casing" })
event.shaped("8x nuclearcraft:fission_reactor_casing", [
"DDD",
"DFD",
"DDD"
], {
F: "gtceu:robust_machine_casing",
D: "nuclearcraft:plate_basic"
})
event.remove({ id: "nuclearcraft:fission_reactor_solid_fuel_cell" })
event.shaped("nuclearcraft:fission_reactor_solid_fuel_cell", [
"TST",
"S S",
"TST"
], {
T: "nuclearcraft:tough_alloy_ingot",
S: "gtceu:tempered_glass"
})
event.remove({ id: "nuclearcraft:fission_reactor_controller" })
event.shaped("nuclearcraft:fission_reactor_controller", [
"DED",
"EFE",
"DED"
], {
F: "gtceu:robust_machine_casing",
E: "#gtceu:circuits/ev",
D: "nuclearcraft:plate_advanced"
})
event.remove({ id: "nuclearcraft:fission_reactor_port" })
event.shapeless("nuclearcraft:fission_reactor_port", ["nuclearcraft:fission_reactor_casing", "minecraft:hopper"])
event.recipes.gtceu.chemical_reactor("rhodochrosite_dust")
.itemInputs("12x gtceu:raw_redstone")
.inputFluids("gtceu:sulfuric_acid 6000")
.itemOutputs("nuclearcraft:rhodochrosite_dust")
.outputFluids("gtceu:redstone 15840")
.EUt(2000)
.duration(200)
event.recipes.gtceu.thermal_centrifuge("thoriumdecomp")
.itemInputs("gtceu:thorium_dust")
.itemOutputs("nuclearcraft:thorium_232")
.duration(1100)
.EUt(48)
event.remove({
output: [
"nuclearcraft:fuel_thorium_tbu",
"nuclearcraft:fuel_uranium_leu_233",
"nuclearcraft:fuel_uranium_heu_233",
"nuclearcraft:fuel_uranium_leu_235",
"nuclearcraft:fuel_uranium_heu_235",
"nuclearcraft:fuel_neptunium_len_236",
"nuclearcraft:fuel_americium_hea_242",
"nuclearcraft:fuel_americium_lea_242",
"nuclearcraft:fuel_plutonium_hep_241",
"nuclearcraft:fuel_plutonium_lep_241",
"nuclearcraft:fuel_plutonium_hep_239",
"nuclearcraft:fuel_plutonium_lep_239",
"nuclearcraft:fuel_neptunium_hen_236",
"nuclearcraft:fuel_curium_lecm_243",
"nuclearcraft:fuel_curium_hecm_243",
"nuclearcraft:fuel_curium_lecm_245",
"nuclearcraft:fuel_curium_hecm_245",
"nuclearcraft:fuel_curium_lecm_247",
"nuclearcraft:fuel_curium_hecm_247",
"nuclearcraft:fuel_berkelium_leb_248",
"nuclearcraft:fuel_californium_hecf_251",
"nuclearcraft:fuel_californium_lecf_251",
"nuclearcraft:fuel_californium_hecf_249",
"nuclearcraft:fuel_californium_lecf_249",
"nuclearcraft:fuel_berkelium_heb_248"
]
})
event.remove({
output: [
"nuclearcraft:depleted_fuel_thorium_tbu",
"nuclearcraft:depleted_fuel_uranium_leu_233",
"nuclearcraft:depleted_fuel_uranium_heu_233",
"nuclearcraft:depleted_fuel_uranium_leu_235",
"nuclearcraft:depleted_fuel_uranium_heu_235",
"nuclearcraft:depleted_fuel_neptunium_len_236",
"nuclearcraft:depleted_fuel_americium_hea_242",
"nuclearcraft:depleted_fuel_americium_lea_242",
"nuclearcraft:depleted_fuel_plutonium_hep_241",
"nuclearcraft:depleted_fuel_plutonium_lep_241",
"nuclearcraft:depleted_fuel_plutonium_hep_239",
"nuclearcraft:depleted_fuel_plutonium_lep_239",
"nuclearcraft:depleted_fuel_neptunium_hen_236",
"nuclearcraft:depleted_fuel_curium_lecm_243",
"nuclearcraft:depleted_fuel_curium_hecm_243",
"nuclearcraft:depleted_fuel_curium_lecm_245",
"nuclearcraft:depleted_fuel_curium_lecm_247",
"nuclearcraft:depleted_fuel_curium_hecm_247",
"nuclearcraft:depleted_fuel_curium_hecm_245",
"nuclearcraft:depleted_fuel_berkelium_leb_248",
"nuclearcraft:depleted_fuel_californium_hecf_251",
"nuclearcraft:depleted_fuel_californium_lecf_251",
"nuclearcraft:depleted_fuel_californium_hecf_249",
"nuclearcraft:depleted_fuel_californium_lecf_249",
"nuclearcraft:depleted_fuel_berkelium_heb_248"
],
type: "minecraft:smelting"
})
event.remove({ output: ["nuclearcraft:californium_251", "nuclearcraft:plutonium_241", "nuclearcraft:americium_243", "nuclearcraft:plutonium_238", "nuclearcraft:boron_10", "nuclearcraft:boron_11", "nuclearcraft:plutonium_239", "nuclearcraft:neptunium_236", "nuclearcraft:neptunium_237", "nuclearcraft:curium_246", "nuclearcraft:curium_247", "nuclearcraft:curium_245", "nuclearcraft:curium_243", "nuclearcraft:berkelium_247", "nuclearcraft:berkelium_248", "nuclearcraft:uranium_235", "nuclearcraft:uranium_238", "nuclearcraft:uranium_233", "nuclearcraft:lithium_6", "nuclearcraft:lithium_7", "nuclearcraft:americium_241", "nuclearcraft:americium_242", "nuclearcraft:plutonium_242", "nuclearcraft:californium_250", "nuclearcraft:californium_249", "nuclearcraft:thorium_230", "nuclearcraft:thorium_232", "nuclearcraft:californium_252"], type: "minecraft:smelting" })
event.shaped("nuclearcraft:fuel_thorium_tbu", ["AAA", "AAA", "AAA"], { A: "nuclearcraft:thorium_232" })
event.shaped("nuclearcraft:fuel_uranium_leu_233", ["ABB", "BBB", "BBB"], { A: "nuclearcraft:uranium_233", B: "gtceu:uranium_ingot" })
event.shaped("nuclearcraft:fuel_uranium_heu_233", ["AAA", "ABB", "BBB"], { A: "nuclearcraft:uranium_233", B: "gtceu:uranium_ingot" })
event.shaped("nuclearcraft:fuel_uranium_leu_235", ["ABB", "BBB", "BBB"], { A: "gtceu:uranium_235_ingot", B: "gtceu:uranium_ingot" })
event.shaped("nuclearcraft:fuel_uranium_heu_235", ["AAA", "ABB", "BBB"], { A: "gtceu:uranium_235_ingot", B: "gtceu:uranium_ingot" })
event.shaped("nuclearcraft:fuel_neptunium_len_236", ["ABB", "BBB", "BBB"], { A: "nuclearcraft:neptunium_236", B: "nuclearcraft:neptunium_237" })
event.shaped("nuclearcraft:fuel_neptunium_hen_236", ["AAA", "ABB", "BBB"], { A: "nuclearcraft:neptunium_236", B: "nuclearcraft:neptunium_237" })
event.shaped("nuclearcraft:fuel_plutonium_lep_239", ["ABB", "BBB", "BBB"], { A: "gtceu:plutonium_ingot", B: "nuclearcraft:plutonium_242" })
event.shaped("nuclearcraft:fuel_plutonium_hep_239", ["AAA", "ABB", "BBB"], { A: "gtceu:plutonium_ingot", B: "nuclearcraft:plutonium_242" })
event.shaped("nuclearcraft:fuel_plutonium_lep_241", ["ABB", "BBB", "BBB"], { A: "gtceu:plutonium_241_ingot", B: "nuclearcraft:plutonium_242" })
event.shaped("nuclearcraft:fuel_plutonium_hep_241", ["AAA", "ABB", "BBB"], { A: "gtceu:plutonium_241_ingot", B: "nuclearcraft:plutonium_242" })
event.shaped("nuclearcraft:fuel_americium_lea_242", ["ABB", "BBB", "BBB"], { A: "nuclearcraft:americium_242", B: "nuclearcraft:americium_243" })
event.shaped("nuclearcraft:fuel_americium_hea_242", ["AAA", "ABB", "BBB"], { A: "nuclearcraft:americium_242", B: "nuclearcraft:americium_243" })
event.shaped("nuclearcraft:fuel_curium_lecm_243", ["ABB", "BBB", "BBB"], { A: "nuclearcraft:curium_243", B: "nuclearcraft:curium_246" })
event.shaped("nuclearcraft:fuel_curium_hecm_243", ["AAA", "ABB", "BBB"], { A: "nuclearcraft:curium_243", B: "nuclearcraft:curium_246" })
event.shaped("nuclearcraft:fuel_curium_lecm_245", ["ABB", "BBB", "BBB"], { A: "nuclearcraft:curium_245", B: "nuclearcraft:curium_246" })
event.shaped("nuclearcraft:fuel_curium_hecm_245", ["AAA", "ABB", "BBB"], { A: "nuclearcraft:curium_245", B: "nuclearcraft:curium_246" })
event.shaped("nuclearcraft:fuel_curium_lecm_247", ["ABB", "BBB", "BBB"], { A: "nuclearcraft:curium_247", B: "nuclearcraft:curium_246" })
event.shaped("nuclearcraft:fuel_curium_hecm_247", ["AAA", "ABB", "BBB"], { A: "nuclearcraft:curium_247", B: "nuclearcraft:curium_246" })
event.shaped("nuclearcraft:fuel_berkelium_leb_248", ["ABB", "BBB", "BBB"], { A: "nuclearcraft:berkelium_248", B: "nuclearcraft:berkelium_247" })
event.shaped("nuclearcraft:fuel_berkelium_heb_248", ["AAA", "ABB", "BBB"], { A: "nuclearcraft:berkelium_248", B: "nuclearcraft:berkelium_247" })
event.shaped("nuclearcraft:fuel_californium_lecf_249", ["ABB", "BBB", "BBB"], { A: "nuclearcraft:californium_249", B: "nuclearcraft:californium_252" })
event.shaped("nuclearcraft:fuel_californium_hecf_249", ["AAA", "ABB", "BBB"], { A: "nuclearcraft:californium_249", B: "nuclearcraft:californium_252" })
event.shaped("nuclearcraft:fuel_californium_lecf_251", ["ABB", "BBB", "BBB"], { A: "nuclearcraft:californium_251", B: "nuclearcraft:californium_252" })
event.shaped("nuclearcraft:fuel_californium_hecf_251", ["AAA", "ABB", "BBB"], { A: "nuclearcraft:californium_251", B: "nuclearcraft:californium_252" })
event.recipes.gtceu.distillery("distill_tech_water")
.inputFluids("gtceu:distilled_water 20")
.circuit(5)
.outputFluids("nuclearcraft:technical_water 20")
.duration(20).EUt(120)
function rtg(name, input) {
event.remove({ output: `nuclearcraft:${name}_rtg` })
event.recipes.gtceu.assembler(name)
.itemInputs("4x gtceu:graphite_plate", "4x nuclearcraft:plate_advanced", `4x ${input}`)
.itemOutputs(`nuclearcraft:${name}_rtg`)
.duration(200)
.EUt(1920)
}
rtg("americium", "nuclearcraft:americium_241")
rtg("plutonium", "nuclearcraft:plutonium_238")
rtg("uranium", "gtceu:uranium_ingot")
rtg("californium", "nuclearcraft:californium_250")
function coils(name) {
event.remove({ output: `nuclearcraft:coil_${name}` })
event.recipes.gtceu.assembler(name)
.itemInputs("1x gtceu:magnetic_steel_rod", `16x gtceu:fine_${name}_wire`)
.itemOutputs(`nuclearcraft:coil_${name}`)
.circuit(1)
.duration(200)
.EUt(480)
}
coils("copper")
coils("magnesium_diboride")
event.replaceInput({ input: "nuclearcraft:bioplastic" }, "nuclearcraft:bioplastic", "#forge:plastic_plates")
event.replaceInput({ input: "nuclearcraft:basic_electronic_circuit" }, "nuclearcraft:basic_electric_circuit", "#gtceu:circuits/hv")
event.replaceInput({ input: "nuclearcraft:gelatin" }, "nuclearcraft:gelatin", "#forge:rubber_plates")
event.replaceInput({ input: "nuclearcraft:lithium_ion_cell" }, "nuclearcraft:lithium_ion_cell", "#gtceu:batteries/hv")
event.replaceInput({ output: /nuclearcraft:hev/ }, "nuclearcraft:plate_extreme", "nuclearcraft:plate_advanced")
event.remove({ id: "nuclearcraft:heavy_shielding" })
event.shaped("nuclearcraft:heavy", [
"BBB",
"MPM",
"DDD"
], {
B: "#forge:plates/beryllium",
M: "nuclearcraft:medium",
P: "#forge:plastic_plates",
D: "nuclearcraft:plate_du"
})
event.remove({
output: [
"nuclearcraft:motor",
"nuclearcraft:plate_extreme",
"nuclearcraft:actuator",
"nuclearcraft:tough_helmet",
"nuclearcraft:tough_chest",
"nuclearcraft:tough_pants",
"nuclearcraft:tough_boots",
"nuclearcraft:solar_panel_basic",
"nuclearcraft:solar_panel_advanced",
"nuclearcraft:solar_panel_du",
"nuclearcraft:solar_panel_elite",
"nuclearcraft:basic_voltaic_pile",
"nuclearcraft:elite_voltaic_pile",
"nuclearcraft:advanced_voltaic_pile",
"nuclearcraft:du_voltaic_pile",
"nuclearcraft:basic_storage_container",
"nuclearcraft:elite_storage_container",
"nuclearcraft:advanced_storage_container",
"nuclearcraft:du_storage_container",
"nuclearcraft:empty_frame",
"nuclearcraft:dps",
"nuclearcraft:rad_x",
"nuclearcraft:servo",
"nuclearcraft:bscco_electromagnet",
"nuclearcraft:bscco_rf_amplifier",
"nuclearcraft:niobium_tin_electromagnet",
"nuclearcraft:niobium_tin_rf_amplifier",
"nuclearcraft:lithium_ion_cell",
"nuclearcraft:basic_lithium_ion_battery",
"nuclearcraft:advanced_lithium_ion_battery",
"nuclearcraft:du_lithium_ion_battery",
"nuclearcraft:elite_lithium_ion_battery",
"nuclearcraft:basic_barrel",
"nuclearcraft:elite_barrel",
"nuclearcraft:advanced_barrel",
"nuclearcraft:du_barrel"
]
})
});
ServerEvents.tags("item", event => {
event.add("forge:plastic_plates", "gtceu:polyvinyl_chloride_plate")
event.add("forge:plastic_plates", "gtceu:polybenzimidazole_plate")
event.add("forge:plastic_plates", "gtceu:polyethylene_plate")
event.add("forge:plastic_plates", "gtceu:polytetrafluoroethylene_plate")
event.add("forge:plastic_plates", "gtceu:polyethyl_cyanoacrylate_plate")
event.add("forge:rubber_plates", "gtceu:silicone_rubber_plate")
event.add("forge:rubber_plates", "gtceu:styrene_butadiene_rubber_plate")
event.add("forge:rubber_plates", "gtceu:rubber_plate")
});

View file

@ -0,0 +1,151 @@
/**
* Custom recipes for Package Auto
*/
ServerEvents.recipes(event => {
event.replaceInput({ id: /packaged/ }, "extendedcrafting:black_iron_ingot", "gtceu:black_steel_plate")
event.replaceInput({ id: /packaged/ }, "extendedcrafting:frame", "gtceu:tungsten_carbide_block")
event.remove({ output: "packagedauto:package_component" })
event.shaped("packagedauto:package_component", [
"VTV",
"TET",
"VTV"
], {
V: "gtceu:vibrant_alloy_plate",
T: "gtceu:titanium_plate",
E: "minecraft:ender_eye"
})
event.remove({ output: "packagedauto:recipe_holder" })
event.shaped("3x packagedauto:recipe_holder", [
"QPQ",
"PRP",
"TCT"
], {
Q: "ae2:quartz_glass",
P: "ae2:blank_pattern",
R: "extendedcrafting:crystaltine_block",
T: "gtceu:titanium_plate",
C: "packagedauto:me_package_component"
})
event.remove({ output: "packagedauto:packager" })
event.shaped("packagedauto:packager", [
"TCT",
"EWE",
"TIT"
], {
T: "gtceu:titanium_plate",
C: "packagedauto:me_package_component",
E: "#gtceu:circuits/ev",
W: "minecraft:crafting_table",
I: "ae2:import_bus"
})
event.remove({ output: "packagedauto:unpackager" })
event.shaped("packagedauto:unpackager", [
"TCT",
"EWE",
"TIT"
], {
T: "gtceu:titanium_plate",
C: "packagedauto:me_package_component",
E: "#gtceu:circuits/ev",
W: "minecraft:crafting_table",
I: "ae2:export_bus"
})
event.remove({ output: "packagedauto:encoder" })
event.shaped("packagedauto:encoder", [
"TCT",
"EWE",
"TIT"
], {
T: "gtceu:titanium_plate",
C: "packagedauto:me_package_component",
E: "packagedauto:recipe_holder",
W: "minecraft:crafting_table",
I: "#gtceu:circuits/ev"
})
event.remove({ output: "packagedauto:packager_extension" })
event.shaped("packagedauto:packager_extension", [
"TCT",
"EWE",
"TIT"
], {
T: "gtceu:iron_plate",
C: "packagedauto:me_package_component",
E: "minecraft:glowstone_dust",
W: "minecraft:crafting_table",
I: "minecraft:piston"
})
event.remove({ output: "packagedauto:crafter" })
event.shaped("packagedauto:crafter", [
"TCT",
"EWE",
"TIT"
], {
T: "gtceu:iron_plate",
C: "packagedauto:me_package_component",
E: "minecraft:redstone",
W: "minecraft:crafting_table",
I: "minecraft:piston"
})
event.remove({ output: "packagedauto:fluid_package_filler" })
event.shaped("packagedauto:fluid_package_filler", [
"TCT",
"EWE",
"TIT"
], {
T: "gtceu:titanium_plate",
C: "packagedauto:me_package_component",
E: "gtceu:fluid_cell",
W: "minecraft:crafting_table",
I: "#gtceu:circuits/ev"
})
// Packaged Ex Crafters
let tiers = ["advanced", "elite", "ultimate"]
tiers.forEach((tier) => {
event.remove({ output: `packagedexcrafting:${tier}_crafter` })
event.shaped(`packagedexcrafting:${tier}_crafter`, [
"ACA",
"BEB",
"ACA"
], {
A: `extendedcrafting:${tier}_component`,
B: "gtceu:black_steel_plate",
C: "packagedauto:me_package_component",
E: `extendedcrafting:${tier}_auto_table`
})
})
event.remove({ output: "packagedexexcrafting:epic_crafter" })
event.shaped("packagedexexcrafting:epic_crafter", [
"ACA",
"BEB",
"ACA"
], {
A: "extendedcrafting:epic_component",
B: "gtceu:black_steel_plate",
C: "packagedauto:me_package_component",
E: "extendedcrafting:epic_auto_table"
})
event.remove({ output: "packagedexcrafting:combination_crafter" })
event.shaped("packagedexcrafting:combination_crafter", [
"ACA",
"BEB",
"DCD"
], {
A: "extendedcrafting:crystaltine_component",
B: "kubejs:endest_star",
C: "packagedauto:me_package_component",
D: "extendedcrafting:crystaltine_catalyst",
E: "extendedcrafting:crafting_core"
})
})

View file

@ -0,0 +1,52 @@
/** @private */
const ___TIER_QUEST_MAPPING = [
// all of these are on the progression page
"DEFAULT",
"61CC4AD6FAE15248", // lv
"6C028CD89745098E", // mv
"48CAEBEE83D7C791", // hv
"30AAFB97813DEB6C", // ev
"6E27637A9C94A0AA", // iv
"646B8CD10787D899", // luv
"11B25506F679ACBD", // zpm
"4B497D256FB3983F", // uv
"0A34290F579BB4E2", // uhv
"63812416270292A4", // uev
"60D863C48FBFF5A3", // uiv
"1A6F087E10DC036E", // max
"63280C5F37A22345" // creative chest (end)
]
FTBQuestsEvents.completed(event => {
const id = ___TIER_QUEST_MAPPING.findIndex(v => (v === event.object.codeString))
if (id === -1) return;
___updateTierRPC(id, event.player);
})
PlayerEvents.loggedIn(event => {
const quests = FTBQuests.getServerDataFromPlayer(event.player);
let highestLevel = 0;
for (const key in ___TIER_QUEST_MAPPING) {
let value = ___TIER_QUEST_MAPPING[key];
if (value === "DEFAULT") continue;
if (quests.isCompleted(value))
highestLevel = key;
}
___updateTierRPC(highestLevel, event.player)
})
/**
* @private
* @param {number} tier
* @param {Internal.Player} player
*/
const ___updateTierRPC = (tier, player) => {
if (!player) {
console.log("!! READ THIS SERVER.LOG DUMMY !!")
console.log("!! DONT RIGHT CLICK -> 'COMPLETE INSTANTLY', IT WONT SEND THE PLAYER !!")
return;
}
player.sendData("moni:rpc", { tier: tier });
// console.log("SDRP Sent Update to client");
}

View file

@ -0,0 +1,16 @@
/**
* Custom recipe for the Shrinking Device
*/
ServerEvents.recipes(event => {
event.shaped("shrink:shrinking_device", [
"PFP",
"ETS",
"PPP"
], {
P: "gtceu:steel_plate",
S: "gtceu:lv_sensor",
E: "gtceu:lv_emitter",
F: "gtceu:lv_field_generator",
T: "gtceu:terminal"
}).id("shrink:shrinking_device")
})

View file

@ -0,0 +1,248 @@
/**
* Solar Flux mod script.
*
* Adds recipes for:
* Solar Flux Solars
* Photovoltaic Cells
* Sunnarium
* GT <-> Solarflux conversion recipes
* Does not add recipes for:
* Sculk Solars
* Neutronium & Infinity Solars
*/
ServerEvents.recipes(event => {
// T1 (No photovoltaic cell)
event.shaped("2x solarflux:sp_1", [
"MMM",
"WWW",
"SCS"
], {
M: "solarflux:mirror",
W: "gtceu:fine_copper_wire",
S: "minecraft:stone_slab",
C: "laserio:energy_overclocker_card_tier_1"
})
event.recipes.gtceu.assembler("sp_1")
.itemInputs([
Item.of("solarflux:mirror", 3),
Item.of("gtceu:fine_copper_wire", 3),
Item.of("minecraft:stone_slab", 2),
Item.of("laserio:energy_overclocker_card_tier_1", 1)
])
.itemOutputs("2x solarflux:sp_1")
.duration(2400)
.EUt(2)
// All the other panels follow a pattern until 7
let solarCrafting = [
["gtceu:tin_single_cable", "minecraft:redstone_block", "gtceu:cupronickel_plate", "laserio:energy_overclocker_card_tier_2"],
["gtceu:electrical_steel_plate", "gtceu:conductive_alloy_block", "gtceu:electrical_steel_gear", "laserio:energy_overclocker_card_tier_3"],
["gtceu:microversium_ingot", "gtceu:end_steel_block", "gtceu:microversium_ingot", "laserio:energy_overclocker_card_tier_4"],
["gtceu:lumium_plate", "gtceu:sunnarium_dust", "gtceu:lumium_plate", "laserio:energy_overclocker_card_tier_5"],
["gtceu:signalum_plate", "gtceu:enriched_sunnarium_dust", "gtceu:signalum_plate", "laserio:energy_overclocker_card_tier_6"]
]
solarCrafting.forEach((ingredients, index) => {
// Account for the first recipe, which doesn't use a photovoltaic cell
let photovoltaic = index == 0 ?
"gtceu:tempered_glass"
: `solarflux:photovoltaic_cell_${index}`
event.shaped(`2x solarflux:sp_${index + 2}`, [
"SCS",
"WBW",
"PEP"
], {
S: `solarflux:sp_${index + 1}`,
C: photovoltaic,
W: ingredients[0],
B: ingredients[1],
P: ingredients[2],
E: ingredients[3]
})
// Account for when the same ingredients are used twice
let assemblerInputs;
if (ingredients[0] == ingredients[2]) {
assemblerInputs = [
`2x solarflux:sp_${index + 1}`,
Item.of(photovoltaic, 1),
Item.of(ingredients[0], 4),
Item.of(ingredients[1], 1),
Item.of(ingredients[3], 1)
]
} else {
assemblerInputs = [
`2x solarflux:sp_${index + 1}`,
Item.of(photovoltaic, 1),
Item.of(ingredients[0], 2),
Item.of(ingredients[1], 1),
Item.of(ingredients[2], 2),
Item.of(ingredients[3], 1)
]
}
event.recipes.gtceu.assembler(`sp_${index + 2}`)
.itemInputs(assemblerInputs)
.itemOutputs(`2x solarflux:sp_${index + 2}`)
.duration(2400)
.EUt(GTValues.VA[index])
})
// High tier solars
// T7
event.recipes.gtceu.assembler("sp_7")
.itemInputs("2x solarflux:sp_6", "3x solarflux:photovoltaic_cell_5", "2x gtceu:osmium_plate", "laserio:energy_overclocker_card_tier_7")
.inputFluids("gtceu:signalum 1296")
.itemOutputs("2x solarflux:sp_7")
.duration(2400)
.EUt(GTValues.VA[GTValues.IV])
// T8
event.recipes.gtceu.assembly_line("sp_8")
.itemInputs("2x solarflux:sp_7", "3x solarflux:photovoltaic_cell_6", "2x gtceu:osmiridium_plate", "laserio:energy_overclocker_card_tier_8")
.inputFluids("gtceu:enderium 1296")
.itemOutputs("2x solarflux:sp_8")
["scannerResearch(java.util.function.UnaryOperator)"](b => b.researchStack("solarflux:sp_7").EUt(480).duration(1200))
.duration(4800)
.EUt(30720)
//
// Photovoltaic Cell Recipes
//
// Similar thing with the photovoltaic cells, cells 2-6 follow a pattern (1 uses mirror)
// Mirror
event.shaped("solarflux:mirror", [
"GGG",
"SSS",
" "
], {
G: "minecraft:glass_pane",
S: "gtceu:silver_plate"
})
// Photovoltaic Cell T1
event.shaped("6x solarflux:photovoltaic_cell_1", [
"LLL",
"MMM",
"FFF"
], {
L: "gtceu:lapis_plate",
M: "solarflux:mirror",
F: "gtceu:fluix_plate"
})
// Photovoltaic Cells T2-6
let cellCrafting = [
[2, "enderio:photovoltaic_plate", "gtceu:battery_alloy_plate"],
[3, "minecraft:ender_pearl", "gtceu:annealed_copper_plate"],
[4, "gtceu:light_blue_glass_lens", "gtceu:vibrant_alloy_plate"],
[5, "gtceu:sunnarium_plate", "gtceu:sunnarium_plate"],
[6, "gtceu:enriched_sunnarium_plate", "gtceu:enriched_sunnarium_plate"]
]
cellCrafting.forEach(cell => {
event.shaped(`6x solarflux:photovoltaic_cell_${cell[0]}`, [
"TTT",
"PPP",
"BBB"
], {
T: cell[1],
P: `solarflux:photovoltaic_cell_${cell[0] - 1}`,
B: cell[2]
})
})
// Sunnarium
event.shaped("3x gtceu:sunnarium_dust", [
"ABA",
"BCB",
"ABA"
], {
A: "kubejs:stabilized_plutonium",
B: "kubejs:stabilized_americium",
C: "minecraft:glowstone"
})
event.recipes.gtceu.mixer("kubejs:sunnarium_dust_mixer")
.inputFluids("gtceu:plutonium 144", "gtceu:americium 72")
.itemInputs("minecraft:glowstone_dust")
.itemOutputs("2x gtceu:sunnarium_dust")
.duration(1800)
.EUt(GTValues.VHA[GTValues.IV]);
event.recipes.gtceu.mixer("kubejs:sunnarium_dust_mixer_alt")
.inputFluids("gtceu:plutonium_241 144", "gtceu:americium 72")
.itemInputs("minecraft:glowstone_dust")
.itemOutputs("2x gtceu:sunnarium_dust")
.duration(1800)
.EUt(GTValues.VHA[GTValues.IV]);
event.remove({ id: "gtceu:macerator/macerate_sunnarium_plate" })
// Enriched Sunnarium
event.shaped("4x gtceu:enriched_sunnarium_dust", [
"ABA",
"BCB",
"ABA"
], {
A: "kubejs:stabilized_neptunium",
B: "kubejs:stabilized_curium",
C: "gtceu:sunnarium_dust"
})
event.recipes.gtceu.mixer("kubejs:enriched_sunnarium_dust_mixer")
.inputFluids("gtceu:neptunium 288", "gtceu:curium 144")
.itemInputs("gtceu:sunnarium_dust")
.itemOutputs("6x gtceu:enriched_sunnarium_dust")
.duration(2400)
.EUt(GTValues.VHA[GTValues.LuV]);
event.remove({ id: "gtceu:macerator/macerate_enriched_sunnarium_plate" })
event.remove({ id: "gtceu:macerator/macerate_dense_enriched_sunnarium_plate" })
})
/* Gregtech Solar conversion/reversion */
ServerEvents.recipes(event => {
event.remove({ id: /gtceu:shaped\/solar_panel_/ })
// Basic conversion & reversion
event.shapeless("2x gtceu:solar_panel", "solarflux:sp_3").id("gtceu:solar_panel_basic_conversion")
event.shapeless("solarflux:sp_3", "2x gtceu:solar_panel").id("gtceu:solar_panel_basic_reversion")
// Generic conversion & reversion (Note the switch for Sculk solars)
for (let index = 0; index <= 8; index++) {
let tiername = TIER_ID_MAPPING[index].toLowerCase();
let solarFluxPanel;
if (index <= 4) {
solarFluxPanel = `solarflux:sp_${index + 4}`;
} else {
switch (index) {
case 5:
solarFluxPanel = "solarflux:sp_custom_bathyal"
break;
case 6:
solarFluxPanel = "solarflux:sp_custom_abyssal"
break;
case 7:
solarFluxPanel = "solarflux:sp_custom_hadal"
break;
case 8:
solarFluxPanel = "solarflux:sp_custom_neutronium"
break;
default:
break;
}
}
event.recipes.gtceu.atomic_reconstruction(`gtceu:solar_panel_${tiername}_conversion`)
.itemInputs(solarFluxPanel)
.itemOutputs(`gtceu:${tiername}_solar_panel`)
.duration(5)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction(`gtceu:solar_panel_${tiername}_reversion`)
.itemInputs(`gtceu:${tiername}_solar_panel`)
.itemOutputs(solarFluxPanel)
.duration(5)
.EUt(32)
}
})

View file

@ -0,0 +1,281 @@
/**
* Configuration of Sophisticated Storage
*/
ServerEvents.recipes(event => {
const modids = ["sophisticatedstorage", "sophisticatedbackpacks"]
// Remove default backpack recipe (Loot it!)
event.remove({ output: "sophisticatedbackpacks:backpack" })
// Remove XP pump upgrades
event.remove({ id: "sophisticatedstorage:xp_pump_upgrade" })
event.remove({ id: "sophisticatedbackpacks:xp_pump_upgrade" })
// Remove Limited barrels
event.remove({ id: /^sophisticatedstorage:.*limited.+barrel.+$/ })
event.remove({ output: /^sophisticatedstorage:limited_barrel.+$/ })
// Remove Copper tier storage (not used)
event.remove({ output: "sophisticatedstorage:copper_barrel" })
event.remove({ output: "sophisticatedstorage:copper_chest" })
event.remove({ output: "sophisticatedstorage:copper_shulker_box" })
// Remove Copper tier upgrades
event.remove({ output: /^sophisticatedstorage:.*copper.*tier_upgrade$/ })
event.remove({ input: /^sophisticatedstorage:.*copper.*tier_upgrade$/ })
// Remove iron (bronze) tier storage in NM
if (!doSteamAge) {
event.remove({ output: "sophisticatedstorage:iron_barrel" })
event.remove({ output: "sophisticatedstorage:iron_chest" })
event.remove({ output: "sophisticatedstorage:iron_shulker_box" })
event.remove({ output: /^sophisticatedstorage:.*iron.*tier_upgrade$/ })
event.remove({ input: /^sophisticatedstorage:.*iron.*tier_upgrade$/ })
}
// Standard backpack recipe if you don't want to loot it
event.shaped("sophisticatedbackpacks:backpack", [
" N ",
"ICI",
"N N"
], {
"N": "#forge:leather",
"I": "minecraft:iron_ingot",
"C": "#forge:chests/wooden"
})
// Backpack upgrading
const sophBackpacksMaterials = [
["", null, null],
["copper_", "bronze", "lead"],
["iron_", "steel", "invar"],
["gold_", "aluminium", "electrum"],
["diamond_", "stainless_steel", "signalum"],
["netherite_", "tungsten_steel", "enderium"]
]
sophBackpacksMaterials.forEach((material, index) => {
if (index == 0) return;
// Works for upgrades as the recipe type implies, but doesn't work for making new backpacks from scratch
let outputBackpack = `sophisticatedbackpacks:${material[0]}backpack`
let inputBackpack = `sophisticatedbackpacks:${sophBackpacksMaterials[index - 1][0]}backpack`
event.remove({ mod: "sophisticatedbackpacks", output: outputBackpack })
event.custom({
"type": "sophisticatedbackpacks:backpack_upgrade",
"conditions": [
{
"type": "sophisticatedcore:item_enabled",
"itemRegistryName": outputBackpack
}
],
"pattern": [
" N ",
"ICI",
"N N"
],
"key": {
"N": {
"tag": (`forge:nuggets/${material[1]}`)
},
"I": {
"tag": (`forge:ingots/${material[2]}`),
},
"C": {
"item": inputBackpack
}
},
"result": {
"item": outputBackpack
}
});
})
// Barrel, Chest, Shulker Box upgrading
const sophStorageMaterials = [
["", null, null],
["iron_", "bronze", "lead"],
["gold_", "steel", "tin"],
["diamond_", "aluminium", "copper"],
["netherite_", "stainless_steel", "gold"],
]
const sophStorageTypes = [
["", "barrel"],
["", "chest"],
["", "shulker_box"]
]
// Skip bronze tier storage in NM
if (!doSteamAge) {
sophStorageMaterials.splice(1, 1);
}
sophStorageMaterials.forEach((material, toIndex) => {
if (toIndex == 0) return;
// Tier upgrade items
for (let fromIndex = 0; fromIndex < toIndex; fromIndex++) {
let fromTierName = (fromIndex == 0 ? "basic_" : sophStorageMaterials[fromIndex][0]);
let prevTierName = (toIndex - 1 == 0 ? "basic_" : sophStorageMaterials[toIndex - 1][0]);
let toTierName = material[0];
event.shaped(`sophisticatedstorage:${fromTierName}to_${toTierName}tier_upgrade`, [
"IPI",
"ICI",
"IPI"
], {
I: `#forge:ingots/${material[1]}`,
P: `#forge:plates/${material[2]}`,
C: (fromTierName == prevTierName ? "minecraft:redstone_torch" : `sophisticatedstorage:${fromTierName}to_${prevTierName}tier_upgrade`)
}).id(`sophisticatedstorage:${fromTierName}to_${toTierName}tier_upgrade`)
}
// Barrel-in-table upgrades
sophStorageTypes.forEach(storageType => {
// Works for upgrades as the recipe type implies, but doesn't work for making new barrels/chests/boxes from scratch
let outputStorage = `sophisticatedstorage:${storageType[0]}${material[0]}${storageType[1]}`
let inputStorage = `sophisticatedstorage:${storageType[0]}${sophStorageMaterials[toIndex - 1][0]}${storageType[1]}`
event.remove({ mod: "sophisticatedstorage", output: outputStorage })
event.custom({
"type": "sophisticatedstorage:storage_tier_upgrade",
"conditions": [
{
"type": "sophisticatedcore:item_enabled",
"itemRegistryName": outputStorage
}
],
"pattern": [
"IPI",
"ICI",
"IPI"
],
"key": {
"I": {
"tag": (`forge:ingots/${material[1]}`)
},
"P": {
"tag": (`forge:plates/${material[2]}`)
},
"C": {
"item": inputStorage
}
},
"result": {
"item": outputStorage
}
});
})
})
event.remove({ output: "sophisticatedstorage:controller" })
event.replaceInput([
{ id: "sophisticatedstorage:storage_io" },
{ id: "sophisticatedstorage:storage_input" },
{ id: "sophisticatedstorage:storage_output" }],
"#forge:stone", "#forge:plates/steel")
event.replaceInput([
{ id: "sophisticatedstorage:storage_io" },
{ id: "sophisticatedstorage:storage_input" },
{ id: "sophisticatedstorage:storage_output" }],
"minecraft:repeater", "#gtceu:circuits/lv")
event.shaped("sophisticatedstorage:controller", [
"III",
"CDC",
"IEI"
], {
I: "#forge:plates/steel",
C: "#gtceu:circuits/lv",
D: "#sophisticatedstorage:base_tier_wooden_storage",
E: "#forge:storage_blocks/diamond"
})
event.shaped("sophisticatedstorage:controller", [
"III",
"CDC",
"IEI"
], {
I: "#forge:plates/steel",
C: "#gtceu:circuits/lv",
D: "#sophisticatedstorage:base_tier_wooden_storage",
E: "#forge:storage_blocks/emerald"
})
// Stack upgrades
let stackupgrade = [
["stack_upgrade_tier_1", "gtceu:energetic_alloy", "upgrade_base"],
["stack_upgrade_tier_2", "gtceu:stainless_steel", "stack_upgrade_tier_1"],
["stack_upgrade_tier_3", "gtceu:tungsten_steel", "stack_upgrade_tier_2"],
["stack_upgrade_tier_4", "gtceu:osmiridium", "stack_upgrade_tier_3"]
]
event.remove({ output: "sophisticatedbackpacks:stack_upgrade_starter_tier" })
event.remove({ output: "sophisticatedstorage:stack_upgrade_tier_1_plus" })
stackupgrade.forEach(material => {
modids.forEach(mod => {
event.remove({ output: `${mod}:${material[0]}` })
event.shaped(`${mod}:${material[0]}`, [
"III",
"IUI",
"BIB"
], {
I: `${material[1]}_plate`,
B: `${material[1]}_gear`,
U: `${mod}:${material[2]}`
})
})
})
event.remove({ output: "sophisticatedstorage:stack_upgrade_tier_5" })
event.shaped("sophisticatedstorage:stack_upgrade_tier_5", [
"III",
"IUI",
"BIB"
], {
I: "gtceu:naquadah_alloy_plate",
B: "gtceu:naquadah_alloy_gear",
U: "sophisticatedstorage:stack_upgrade_tier_4"
}),
// Upgrades
event.remove({ output: "sophisticatedstorage:hopper_upgrade" })
event.shaped("4x sophisticatedstorage:hopper_upgrade", [
" H ",
"IUI",
"RRR"
], {
U: "sophisticatedstorage:upgrade_base",
I: "minecraft:iron_ingot",
H: "minecraft:hopper",
R: "gtceu:red_alloy_plate"
})
event.remove({ output: "sophisticatedstorage:advanced_hopper_upgrade" })
event.shaped("sophisticatedstorage:advanced_hopper_upgrade", [
" R ",
"IUI",
"RRR"
], {
U: "sophisticatedstorage:upgrade_base",
I: "gtceu:lv_conveyor_module",
R: "gtceu:steel_plate"
})
// Compression upgrades are removed in EM like Compacting Drawers
if (!doCompacting) {
event.remove({ output: /^sophisticated.*(compacting|compression)_upgrade$/ })
}
// Magnet upgrades
modids.forEach(mod => {
event.remove({ output: `${mod}:magnet_upgrade` })
event.shaped(`${mod}:magnet_upgrade`, [
"IAI",
"IUI",
"I I"
], {
U: `${mod}:pickup_upgrade`,
I: "minecraft:iron_ingot",
A: "enderio:vacuum_chest",
})
})
})

View file

@ -0,0 +1,98 @@
/**
* Custom teleportation cakes recipes
*/
ServerEvents.recipes(event => {
event.remove({ output: ["telepastries:nether_cake", "telepastries:overworld_cake", "telepastries:lost_city_cake", "telepastries:end_cake"] })
// Cake Base
event.shaped("enderio:cake_base", [
"SMS",
"WWW"
], {
W: "gtceu:wheat_dust",
S: "minecraft:sugar",
M: "minecraft:milk_bucket"
})
// Overworld Cake
event.shaped("telepastries:overworld_cake", [
"NKN",
"OBO",
"SAS"
], {
N: "minecraft:redstone",
O: "#minecraft:saplings",
B: "enderio:cake_base",
S: "gtceu:plant_ball",
A: "minecraft:diamond",
K: "gtceu:gold_dust"
})
event.shaped("telepastries:lost_city_cake", [
"NNN",
"SBS",
"SSS"
], {
N: "minecraft:redstone",
B: "enderio:cake_base",
S: "minecraft:diamond",
})
// Void Cake
event.shaped("telepastries:custom_cake", [
"ABC",
"DED",
"FFF"
], {
A: "gtceu:restonia_gem",
B: "gtceu:palis_gem",
C: "gtceu:emeradic_gem",
D: "kubejs:pulsating_dust",
E: "enderio:cake_base",
F: "gtceu:aluminium_plate"
})
if (doHNN) {
event.shaped("telepastries:nether_cake", [
"NNN",
"OBO",
"SSS"
], {
N: "hostilenetworks:nether_prediction",
O: "minecraft:obsidian",
B: "enderio:cake_base",
S: "minecraft:soul_sand"
})
event.shaped("telepastries:end_cake", [
"NNN",
"OBO",
"SSS"
], {
N: "hostilenetworks:end_prediction",
O: "minecraft:ender_eye",
B: "enderio:cake_base",
S: "gtceu:black_steel_plate"
})
} else {
event.shaped("telepastries:nether_cake", [
"NNN",
"OBO",
"SSS"
], {
N: "gtceu:steel_dust",
O: "minecraft:obsidian",
B: "enderio:cake_base",
S: "minecraft:gold_block"
})
event.shaped("telepastries:end_cake", [
"NNN",
"OBO",
"SSS"
], {
N: "gtceu:uraninite_dust",
O: "minecraft:ender_eye",
B: "enderio:cake_base",
S: "gtceu:black_steel_plate"
})
}
})

View file

@ -0,0 +1,842 @@
/**
* Custom recipes for the Thermal Series
*/
ServerEvents.recipes(event => {
event.remove({ output: ["systeams:steam_dynamo", "steamdynamo:steam_dynamo", "thermal:dynamo_compression", "thermal:dynamo_magmatic", "thermal:dynamo_numismatic", "thermal:dynamo_gourmand", "systeams:boiler_pipe", "thermal:rf_coil"] })
event.remove({ output: ["thermal:dynamo_throttle_augment", "thermal:upgrade_augment_1", "thermal:upgrade_augment_2", "thermal:upgrade_augment_3"] })
event.remove({ output: ["thermal:machine_frame", "thermal:energy_cell_frame"] })
event.remove({ output: ["thermal:machine_furnace", "thermal:machine_sawmill", "thermal:machine_pulverizer", "thermal:machine_smelter", "thermal:machine_centrifuge", "thermal:machine_crucible", "thermal:machine_chiller", "thermal:machine_refinery", "thermal:machine_pyrolyzer", "thermal:machine_bottler", "thermal:machine_brewer", "thermal:machine_crystallizer"] })
event.remove({ id: /thermal:[A-Za-z]+_dust_/ }) // I don't even know what recipes this line of code is supposed to target
event.remove({ id: /thermal:.*_cast/ })
event.remove({ id: "thermal:fire_charge/obsidian_glass_2" })
event.remove({ id: "thermal:fire_charge/signalum_glass_2" })
event.remove({ id: "thermal:fire_charge/lumium_glass_2" })
event.remove({ id: "thermal:fire_charge/enderium_glass_2" })
// Unify Thermal with GT rubber
event.smelting("gtceu:sticky_resin", "thermal:tar")
event.replaceInput({ id: /thermal:*/ }, ["thermal:cured_rubber"], ["#forge:rubber_plates"])
// Unify Thermal dies
event.shaped("thermal:press_packing_2x2_die", [
" A ",
"BCB",
" A "
], {
A: "gtceu:invar_plate",
B: "gtceu:cupronickel_plate",
C: "#minecraft:planks"
}).id("thermal:press_packing_2x2_die")
event.shaped("thermal:press_packing_3x3_die", [
" B ",
"ACA",
" B "
], {
A: "gtceu:invar_plate",
B: "gtceu:cupronickel_plate",
C: "#minecraft:planks"
}).id("thermal:press_packing_3x3_die")
event.shaped("thermal:press_unpacking_die", [
"B A",
" C ",
"A B"
], {
A: "gtceu:invar_plate",
B: "gtceu:cupronickel_plate",
C: "#minecraft:planks"
}).id("thermal:press_unpacking_die")
// Hardened Glass recipes
event.recipes.gtceu.alloy_smelter("kubejs:hardened_glass")
.itemInputs("1x #forge:dusts/lead", "4x #forge:dusts/obsidian")
.itemOutputs("2x thermal:obsidian_glass")
.duration(40)
.EUt(GTValues.VA[GTValues.LV])
event.recipes.gtceu.alloy_smelter("kubejs:signalum_glass")
.itemInputs("1x #forge:dusts/signalum", "2x thermal:obsidian_glass")
.itemOutputs("2x thermal:signalum_glass")
.duration(40)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.alloy_smelter("kubejs:lumium_glass")
.itemInputs("1x #forge:dusts/lumium", "2x thermal:obsidian_glass")
.itemOutputs("2x thermal:lumium_glass")
.duration(40)
.EUt(GTValues.VA[GTValues.HV])
event.recipes.gtceu.alloy_smelter("kubejs:enderium_glass")
.itemInputs("1x #forge:dusts/enderium", "2x thermal:obsidian_glass")
.itemOutputs("2x thermal:enderium_glass")
.duration(40)
.EUt(GTValues.VA[GTValues.HV])
// Centrifuging Recipes for Arboreal Extractor products
event.recipes.gtceu.centrifuge("kubejs:latex_centrifuging")
.inputFluids(Fluid.of("thermal:latex", 500))
.itemOutputs("2x gtceu:raw_rubber_dust")
.outputFluids(Fluid.of("minecraft:water", 400))
.duration(60).EUt(6)
event.recipes.gtceu.centrifuge("kubejs:resin_centrifuging")
.inputFluids(Fluid.of("thermal:resin", 400))
.itemOutputs("gtceu:sticky_resin")
.chancedOutput("thermal:rosin", 5000, 500)
.outputFluids(Fluid.of("minecraft:water", 150), Fluid.of("thermal:tree_oil", 100))
.duration(200).EUt(20)
event.recipes.gtceu.centrifuge("kubejs:sap_centrifuging")
.inputFluids(Fluid.of("thermal:sap", 200))
.chancedOutput("minecraft:sugar", 200, 50)
.outputFluids(Fluid.of("minecraft:water", 190), Fluid.of("thermal:syrup", 10))
.duration(2000).EUt(2)
event.remove({ id: "thermal:redstone_servo" });
event.shaped("thermal:redstone_servo", [
"ABA",
" B ",
"ABA"
], {
A: "kubejs:resonating_crystal",
B: "#forge:plates/electrical_steel"
}).id("kubejs:redstone_servo");
// Coil Ingredients
event.shaped("thermal:rf_coil", [
" BA",
"BAB",
"AB "
], {
A: "gtceu:gold_rod",
B: "minecraft:redstone"
})
event.recipes.gtceu.assembler("thermal:rf_coil_assembly")
.itemInputs("#forge:rods/gold", "2x #forge:rings/gold", "3x #forge:dusts/redstone")
.itemOutputs("thermal:rf_coil")
.duration(200)
.EUt(30)
event.shaped("kubejs:redstone_transmission_coil", [
" BA",
"BAB",
"AB "
], {
A: "gtceu:silver_rod",
B: "minecraft:redstone"
})
event.recipes.gtceu.assembler("kubejs:rf_transmission_coil_assembly")
.itemInputs("#forge:rods/silver", "2x #forge:rings/silver", "3x #forge:dusts/redstone")
.itemOutputs("kubejs:redstone_transmission_coil")
.duration(200)
.EUt(30)
/* === AUGMENTS/UPGRADES ===*/
event.shaped(Item.of("thermal:upgrade_augment_1", '{AugmentData:{BaseMod:1.5f,Type:"Upgrade"}}'), [
"ABA",
"RGR",
"ABA"
], {
A: "gtceu:invar_screw",
B: "gtceu:double_invar_plate",
G: "gtceu:electrical_steel_gear",
R: "gtceu:fine_red_alloy_wire"
})
event.shaped(Item.of("thermal:upgrade_augment_2", '{AugmentData:{BaseMod:2.5f,Type:"Upgrade"}}'), [
"PGP",
"BCB",
"PGP"
], {
B: "gtceu:cobalt_brass_gear",
P: "gtceu:double_electrum_plate",
G: "thermal:obsidian_glass",
C: "thermal:upgrade_augment_1"
})
event.shaped(Item.of("thermal:upgrade_augment_4", '{AugmentData:{BaseMod:5.0f,Type:"Upgrade"}}'), [
"RSR",
"SCS",
"RSR"
], {
R: "gtceu:restonia_gear",
S: "gtceu:signalum_plate",
C: "thermal:upgrade_augment_2"
})
event.shaped(Item.of("thermal:upgrade_augment_3", '{AugmentData:{BaseMod:10.0f,Type:"Upgrade"}}'), [
"ABG",
"BCB",
"GBA"
], {
A: "gtceu:double_cryolobus_plate",
B: "gtceu:enderium_plate",
C: "thermal:upgrade_augment_4",
G: "gtceu:small_tungsten_carbide_gear"
})
// Advanced Thermal Storage augments
event.shaped(Item.of("thermal:rf_coil_augment_advanced", '{AugmentData:{RFMax:8.0f,RFXfer:8.0f,Type:"RF"}}'), [
" G ",
"SCS",
" G "
], {
S: "gtceu:sterling_silver_plate",
C: "thermal:rf_coil",
G: "gtceu:rose_gold_plate"
})
event.shaped(Item.of("thermal:rf_coil_storage_augment_advanced", '{AugmentData:{RFMax:10.0f,RFXfer:4.0f,Type:"RF"}}'), [
" S ",
"GCG",
" G "
], {
S: "gtceu:sterling_silver_plate",
C: "thermal:rf_coil",
G: "gtceu:rose_gold_plate"
})
event.shaped(Item.of("thermal:rf_coil_xfer_augment_advanced", '{AugmentData:{RFMax:4.0f,RFXfer:10.0f,Type:"RF"}}'), [
" S ",
"SCS",
" G "
], {
S: "gtceu:sterling_silver_plate",
C: "thermal:rf_coil",
G: "gtceu:rose_gold_plate"
})
event.shaped(Item.of("thermal:fluid_tank_augment_advanced", '{AugmentData:{FluidMax:10.0f,Type:"Fluid"}}'), [
" P ",
"RSR",
" G "
], {
P: "#forge:plastic_plates",
R: "gtceu:silicone_rubber_ring",
G: "#thermal:glass/hardened",
S: "gtceu:stainless_steel_normal_fluid_pipe"
})
// Machine and Dynamo augments
event.shaped("thermal:dynamo_fuel_augment", [
"PIP",
"GCG",
"PIP"
], {
I: "#forge:ingots/wrought_iron",
P: "gtceu:wrought_iron_plate",
C: "thermal:rf_coil",
G: "gtceu:small_copper_gear"
}).id("thermal:augments/dynamo_fuel_augment")
event.shaped("thermal:dynamo_output_augment", [
"SEI",
"ECE",
"IES"
], {
S: "#forge:ingots/sterling_silver",
E: "#forge:ingots/energetic_alloy",
I: "#forge:storage_blocks/conductive_alloy",
C: "kubejs:redstone_transmission_coil"
}).id("thermal:augments/dynamo_output_augment");
event.shaped("thermal:machine_speed_augment", [
"NGN",
"PCP",
"NGN"
], {
N: "#forge:nuggets/mythril",
G: "#forge:gears/black_steel",
P: "#forge:plates/electrum",
C: "thermal:rf_coil"
}).id("thermal:augments/machine_speed_augment");
event.shaped("thermal:machine_efficiency_augment", [
"NGN",
"PCP",
"NGN"
], {
N: "#forge:nuggets/mythril",
G: "#forge:gears/nickel",
P: "#forge:plates/lumium",
C: "thermal:rf_coil"
}).id("thermal:augments/machine_efficiency_augment");
event.shaped("thermal:machine_output_augment", [
"MGM",
"PCP",
"MGM"
], {
M: "#forge:ingots/mythril",
G: "#forge:gears/bronze",
P: "#forge:plates/invar",
C: "thermal:redstone_servo"
}).id("thermal:augments/machine_output_augment");
event.shaped("thermal:machine_null_augment", [
"ONO",
"NCN",
"ONO"
], {
O: "#forge:plates/obsidian",
N: "#forge:nuggets/mythril",
C: "minecraft:cactus" // since we use cactus to delete items now
}).id("thermal:augments/machine_null_augment");
event.shaped("thermal:dynamo_throttle_augment", [
"SES",
"NCN",
"SES"
], {
S: "#forge:plates/stainless_steel",
E: "#forge:ingots/electrum",
N: "#forge:springs/lead",
C: "kubejs:excitationcoil"
}).id("thermal:augments/dynamo_throttle_augment");
event.shaped("thermal:machine_catalyst_augment", [
" A ",
"BCB",
" A "
], {
A: "gtceu:cupronickel_spring",
B: "gtceu:lead_plate",
C: "thermal:redstone_servo"
}).id("thermal:augments/machine_catalyst_augment")
event.shaped("thermal:machine_cycle_augment", [
"DAD",
"BCB",
"DAD"
], {
A: "gtceu:signalum_gear",
B: "gtceu:bronze_plate",
C: "thermal:redstone_servo",
D: "gtceu:silver_plate"
}).id("thermal:augments/machine_cycle_augment")
event.replaceInput({ id: "thermal:augments/item_filter_augment" }, "#forge:ingots/signalum", "gtceu:item_filter")
event.replaceInput({ id: "thermal:augments/fluid_filter_augment" }, "#forge:ingots/signalum", "gtceu:fluid_filter")
// Dynamos
event.shaped("kubejs:excitationcoil", [
" B ",
"BAB",
"BAB"
], {
A: "thermal:rf_coil",
B: "gtceu:red_alloy_plate"
})
event.recipes.gtceu.assembler("kubejs:excitationcoil_assembly")
.itemInputs("thermal:rf_coil", "2x gtceu:red_alloy_plate")
.itemOutputs("kubejs:excitationcoil")
.duration(180)
.EUt(30)
event.shaped("steamdynamo:steam_dynamo", [
" A ",
"BCB",
"DED"
], {
A: "kubejs:excitationcoil",
B: "gtceu:copper_plate",
C: "ironfurnaces:iron_furnace",
D: "gtceu:wrought_iron_gear",
E: "kubejs:redstone_transmission_coil"
})
if (doBoilers) {
event.shaped("systeams:steam_dynamo", [
" A ",
"BCB",
"DED"
], {
A: "kubejs:excitationcoil",
B: "gtceu:copper_plate",
C: "ironfurnaces:iron_furnace",
D: "gtceu:wrought_iron_gear",
E: "systeams:boiler_pipe"
})
event.shapeless("systeams:stirling_boiler", ["steamdynamo:steam_dynamo", "systeams:boiler_pipe"])
event.shaped("systeams:boiler_pipe", [
" C ",
"ABA",
" D "
], {
A: "gtceu:copper_plate",
B: "minecraft:bucket",
C: "gtceu:iron_gear",
D: "#enderio:fused_quartz"
})
}
event.shaped("thermal:dynamo_magmatic", [
" A ",
"BCB",
"DED"
], {
A: "kubejs:excitationcoil",
B: "gtceu:dark_steel_plate",
C: "ironfurnaces:copper_furnace",
D: "enderio:dark_bimetal_gear",
E: "kubejs:redstone_transmission_coil"
})
event.shaped("thermal:dynamo_compression", [
" A ",
"BCB",
"DED"
], {
A: "kubejs:excitationcoil",
B: "gtceu:energetic_alloy_plate",
C: "ironfurnaces:gold_furnace",
D: "enderio:energized_gear",
E: "kubejs:redstone_transmission_coil"
})
event.shaped("thermal:dynamo_gourmand", [
" A ",
"BCB",
"DED"
], {
A: "kubejs:excitationcoil",
B: "gtceu:blue_alloy_plate",
C: "ironfurnaces:silver_furnace",
D: "enderio:iron_gear",
E: "kubejs:redstone_transmission_coil"
})
// Machines
event.shaped("thermal:machine_frame", [
"SSS",
"SMS",
"III"
], {
M: "#forge:gears/mythril",
S: "#forge:plates/stainless_steel",
I: "#forge:ingots/invar"
})
event.remove({ id: "thermal:machine_press" })
event.shaped("thermal:machine_press", [
" A ",
"BCB",
"DED"
], {
A: "minecraft:piston",
B: "#forge:ingots/bronze",
C: "thermal:machine_frame",
D: "#forge:gears/copper",
E: "thermal:rf_coil"
}).id("kubejs:machine_press");
// energetic infuser
event.remove({ id: "thermal:charge_bench" });
event.shaped("thermal:charge_bench", [
" A ",
"BCB",
"DED"
], {
A: "#forge:gears/lead",
B: "kubejs:redstone_transmission_coil",
C: "thermal:machine_frame",
D: "#forge:gears/copper",
E: "thermal:rf_coil"
}).id("kubejs:charge_bench")
// Phytogenic Insolator
event.remove({ id: "thermal:machine_insolator" })
event.shaped("thermal:machine_insolator", [
" A ",
"SBS",
"CRC"
], {
A: "gtceu:double_steel_plate",
B: "minecraft:bucket",
S: "#minecraft:saplings",
R: "thermal:rf_coil",
C: "#forge:gears/copper"
}).id("thermal:machine_insolator")
event.shaped("thermal:device_potion_diffuser", [
" A ",
"BCB",
"DED"
], {
A: "enderio:fused_quartz",
B: "gtceu:silver_ingot",
C: "thermal:machine_frame",
D: "gtceu:iron_gear",
E: "thermal:redstone_servo"
}).id("thermal:device_potion_diffuser")
// energy cell
event.shaped("thermal:energy_cell_frame", [
"ABA",
"BCB",
"ABA"
], {
A: "#forge:plates/lead",
B: "#forge:rods/electrum",
C: "enderio:advanced_capacitor_bank"
}).id("kubejs:energy_cell_frame")
event.remove("thermal:energy_cell");
event.recipes.gtceu.canner("kubejs:energy_cell")
.itemInputs("thermal:energy_cell_frame", "#forge:storage_blocks/redstone")
.itemOutputs("thermal:energy_cell")
.duration(500)
.EUt(30);
// Diamond as Fuel
event.recipes.thermal.numismatic_fuel("minecraft:diamond").energy(1200000)
event.recipes.thermal.numismatic_fuel("gtceu:topaz_gem").energy(200000)
event.recipes.thermal.numismatic_fuel("gtceu:malachite_gem").energy(200000)
event.recipes.thermal.numismatic_fuel("minecraft:emerald").energy(200000)
event.recipes.thermal.numismatic_fuel("minecraft:prismarine_shard").energy(150000)
event.recipes.thermal.numismatic_fuel("minecraft:quartz").energy(40000)
event.recipes.thermal.numismatic_fuel("gtceu:sapphire_gem").energy(200000)
event.recipes.thermal.numismatic_fuel("gtceu:ruby_gem").energy(200000)
event.recipes.thermal.numismatic_fuel("gtceu:apatite_gem").energy(40000)
event.recipes.thermal.numismatic_fuel("redstone_arsenal:flux_gem").energy(1500000)
event.recipes.thermal.numismatic_fuel("minecraft:lapis_lazuli").energy(80000)
// Thermal Essences
event.recipes.gtceu.chemical_reactor("elemental_reduction_fluid")
.itemInputs("kubejs:pulsating_dust")
.inputFluids(Fluid.of("gtceu:hydrofluoric_acid", 1000))
.outputFluids("gtceu:elemental_reduction_fluid 1000")
.duration(80)
.EUt(90)
// transformation
event.recipes.gtceu.chemical_reactor("elemental_reduction_bazalz")
.itemInputs("gtceu:coal_dust")
.inputFluids(Fluid.of("gtceu:elemental_reduction_fluid", 100))
.itemOutputs("thermal:basalz_powder")
.duration(80)
.EUt(90)
event.recipes.gtceu.chemical_reactor("elemental_reduction_blaze")
.itemInputs("gtceu:netherrack_dust")
.inputFluids(Fluid.of("gtceu:elemental_reduction_fluid", 100))
.itemOutputs("minecraft:blaze_powder")
.duration(80)
.EUt(90)
event.recipes.gtceu.chemical_reactor("elemental_reduction_blitz")
.itemInputs("gtceu:endstone_dust")
.inputFluids(Fluid.of("gtceu:elemental_reduction_fluid", 100))
.itemOutputs("thermal:blitz_powder")
.duration(80)
.EUt(90)
event.recipes.gtceu.chemical_reactor("elemental_reduction_blizz")
.itemInputs("gtceu:ice_dust")
.inputFluids(Fluid.of("gtceu:elemental_reduction_fluid", 100))
.itemOutputs("thermal:blizz_powder")
.duration(80)
.EUt(90)
event.shaped("4x kubejs:primal_mana", [
"AAB",
"DEB",
"DCC"
], {
A: "kubejs:aerotheum_dust",
B: "kubejs:pyrotheum_dust",
C: "kubejs:petrotheum_dust",
D: "kubejs:cryotheum_dust",
E: "gtceu:diamond_dust"
})
event.recipes.gtceu.mixer("mixer_primal_mana")
.itemInputs("2x kubejs:petrotheum_dust", "2x kubejs:pyrotheum_dust", "2x kubejs:aerotheum_dust", "2x kubejs:cryotheum_dust", "1x gtceu:diamond_dust")
.itemOutputs("4x kubejs:primal_mana")
.duration(100)
.EUt(100)
event.shaped("2x kubejs:petrotheum_dust", [
"AA ",
"BC ",
" "
], {
A: "thermal:basalz_powder",
B: "minecraft:redstone",
C: "gtceu:obsidian_dust"
}).noMirror().noShrink()
event.recipes.gtceu.mixer("mixer_petrotheum")
.itemInputs("2x thermal:basalz_powder", "minecraft:redstone", "gtceu:obsidian_dust")
.itemOutputs("2x kubejs:petrotheum_dust")
.duration(40)
.EUt(20)
event.shaped("2x kubejs:pyrotheum_dust", [
"AA ",
"BC ",
" "
], {
A: "minecraft:blaze_powder",
B: "minecraft:redstone",
C: "gtceu:sulfur_dust"
}).noMirror().noShrink()
event.recipes.gtceu.mixer("mixer_pyrotheum")
.itemInputs("2x minecraft:blaze_powder", "minecraft:redstone", "gtceu:sulfur_dust")
.itemOutputs("2x kubejs:pyrotheum_dust")
.duration(40)
.EUt(20)
event.shaped("2x kubejs:aerotheum_dust", [
"AA ",
"BC ",
" "
], {
A: "thermal:blitz_powder",
B: "minecraft:redstone",
C: "gtceu:saltpeter_dust"
}).noMirror().noShrink()
event.recipes.gtceu.mixer("mixer_aerotheum")
.itemInputs("2x thermal:blitz_powder", "minecraft:redstone", "gtceu:saltpeter_dust")
.itemOutputs("2x kubejs:aerotheum_dust")
.duration(40)
.EUt(20)
event.shaped("2x kubejs:cryotheum_dust", [
"AA ",
"BC ",
" "
], {
A: "thermal:blizz_powder",
B: "minecraft:redstone",
C: "minecraft:snowball"
}).noMirror().noShrink()
event.recipes.gtceu.mixer("mixer_cryotheum")
.itemInputs("2x thermal:blizz_powder", "minecraft:redstone", "minecraft:snowball")
.itemOutputs("2x kubejs:cryotheum_dust")
.duration(40)
.EUt(20)
event.recipes.gtceu.chemical_reactor("energized_clathrate")
.itemInputs("minecraft:quartz")
.inputFluids(Fluid.of("gtceu:glowstone", 250))
.itemOutputs("kubejs:energized_clathrate")
.duration(120)
.EUt(75)
event.recipes.gtceu.chemical_reactor("destabilized_clathrate")
.itemInputs("minecraft:quartz")
.inputFluids(Fluid.of("gtceu:redstone", 250))
.itemOutputs("kubejs:destabilized_clathrate")
.duration(120)
.EUt(75)
// Thermal Dusts
event.recipes.gtceu.macerator("dust_blitz")
.itemInputs("thermal:blitz_rod")
.itemOutputs("4x thermal:blitz_powder")
.duration(200)
.EUt(16)
event.recipes.gtceu.macerator("dust_blizz")
.itemInputs("thermal:blizz_rod")
.itemOutputs("4x thermal:blizz_powder")
.duration(200)
.EUt(16)
event.recipes.gtceu.macerator("dust_bazalz")
.itemInputs("thermal:basalz_rod")
.itemOutputs("4x thermal:basalz_powder")
.duration(200)
.EUt(16);
// Thermal Mobdrops (for HM nether star recipe mostly)
event.recipes.gtceu.compressor("blitz_rod")
.itemInputs("4x thermal:blitz_powder")
.itemOutputs("thermal:blitz_rod")
.duration(200)
.EUt(2)
event.recipes.gtceu.compressor("blizz_rod")
.itemInputs("4x thermal:blizz_powder")
.itemOutputs("thermal:blizz_rod")
.duration(200)
.EUt(2)
event.recipes.gtceu.compressor("basalz_rod")
.itemInputs("4x thermal:basalz_powder")
.itemOutputs("thermal:basalz_rod")
.duration(200)
.EUt(2)
// Devices
event.remove({ type: "thermal:rock_gen", not: { output: "minecraft:cobblestone" } })
event.remove({ id: "thermal:device_nullifier" });
event.shaped("thermal:device_nullifier", [
" A ",
"BCB",
"DED"
], {
A: "minecraft:lava_bucket",
B: "#chipped:bricks",
C: "thermal:machine_frame", // casing
D: "gtceu:iron_gear",
E: "thermal:redstone_servo"
}).id("kubejs:device_nullifier");
event.remove({ id: "thermal:device_collector" });
event.shaped("thermal:device_collector", [
" A ",
"BCB",
"DED"
], {
A: "minecraft:hopper",
B: "#forge:ingots/tin",
C: "enderio:vacuum_chest", // casing
D: "gtceu:iron_gear",
E: "thermal:redstone_servo"
}).id("kubejs:device_collector");
event.remove({ id: "thermal:device_fisher" });
event.shaped("thermal:device_fisher", [
"DAD",
"BCB",
"DED"
], {
A: "minecraft:fishing_rod",
B: "#forge:glass",
C: "thermal:machine_frame", // casing
D: "#minecraft:planks",
E: "thermal:redstone_servo"
}).id("thermal:device_fisher");
event.remove({ output: ["thermal:item_filter_augment"] })
event.shaped("thermal:item_filter_augment", [
" I ",
"IVI",
" I "
], {
I: "gtceu:invar_nugget",
V: "gtceu:item_filter",
})
/* === THERMAL TOOLS ===*/
event.remove({ id: "thermal:tools/wrench" })
event.shaped("thermal:wrench", [
"A A",
" B ",
" A "
], {
A: "#forge:ingots/iron",
B: "#forge:ingots/tin"
}).id("kubejs:tools/wrench");
// detonator, locked to mv
event.replaceInput({ id: "thermal:tools/detonator" }, ["#forge:gears/signalum"], ["#gtceu:circuits/mv"])
// Fluxbore
event.remove([{ id: "thermal:drill_head" }, { id: "thermal:flux_drill" }])
if (doFluxbore) {
if (doHarderFluxBore) {
event.shaped("thermal:flux_drill", [
" A ",
"BCB",
"DED"
], {
A: "gtceu:stainless_steel_drill_head",
B: "#forge:ingots/silver",
C: "gtceu:mv_power_unit",
D: "#forge:ingots/tin",
E: "gtceu:iron_gear"
}).id("kubejs:flux_drill");
} else {
event.shaped("thermal:flux_drill", [
" A ",
"BCB",
"DED"
], {
A: "gtceu:vanadium_steel_drill_head",
B: "#forge:ingots/silver",
C: "gtceu:lv_power_unit",
D: "#forge:ingots/tin",
E: "gtceu:iron_gear"
}).id("kubejs:flux_drill");
}
}
event.remove([{ id: "thermal:saw_blade" }, { id: "thermal:flux_saw" }])
event.shaped("thermal:flux_saw", [
" A ",
"BCB",
"DED"
], {
A: "gtceu:vanadium_steel_buzz_saw_blade",
B: "#forge:ingots/silver",
C: "gtceu:lv_power_unit",
D: "#forge:ingots/tin",
E: "gtceu:iron_gear"
}).id("kubejs:flux_saw");
event.remove({ id: "thermal:flux_capacitor" });
event.shaped("thermal:flux_capacitor", [
" A ",
"BCB",
"ADA"
], {
A: "#forge:dusts/redstone",
B: "#forge:ingots/lead",
C: "#forge:ingots/copper",
D: "#forge:dusts/sulfur"
}).id("kubejs:flux_capacitor");
// revert this change so it only requires redstone
event.replaceInput({ id: "thermal:flux_magnet" }, ["thermal:rf_coil"], ["#forge:dusts/redstone"]);
// lock
event.remove({ id: "thermal:tools/lock" });
event.shaped("thermal:lock", [
" A ",
"ABA",
"AAA"
], {
A: "#forge:nuggets/signalum",
B: "#forge:ingots/signalum"
}).id("kubejs:lock");
// Workbench
event.replaceInput({ id: "thermal:tinker_bench" }, "minecraft:crafting_table", "gtceu:lv_machine_hull")
/* === misc thermals ===*/
event.remove({ output: "thermal:phytogro" });
event.shapeless("16x thermal:phytogro", [
"2x #forge:dusts/wood",
"#forge:dusts/charcoal",
"#forge:dusts/saltpeter",
"2x #forge:gems/apatite" // ok idk HOW thermal manages to make tag recipe requirement AND regular item
]).id("kubejs:phytogro_charcoal_gems_apatite");
event.shapeless("16x thermal:phytogro", [
"2x #forge:dusts/wood",
"#forge:dusts/charcoal",
"#forge:dusts/saltpeter",
"2x #forge:dusts/apatite"
]).id("kubejs:phytogro_charcoal_dusts_apatite");
event.shapeless("16x thermal:phytogro", [
"2x #forge:dusts/wood",
"#forge:dusts/coal",
"#forge:dusts/saltpeter",
"2x #forge:gems/apatite"
]).id("kubejs:phytogro_coal_gems_apatite");
event.shapeless("16x thermal:phytogro", [
"2x #forge:dusts/wood",
"#forge:dusts/coal",
"#forge:dusts/saltpeter",
"2x #forge:dusts/apatite"
]).id("kubejs:phytogro_coal_dusts_apatite");
});

View file

@ -0,0 +1,79 @@
/**
* Widget recipes for the Bountry Board
*/
ServerEvents.recipes(event => {
event.shaped("kubejs:wooden_widget_left", [
"SPP",
"APP",
"SPP"
], {
P: "#minecraft:planks",
S: "#minecraft:wooden_slabs",
A: "#forge:tools/saws"
}).noMirror().id("kubejs:bountiful/wooden_widget_left")
event.shaped("kubejs:wooden_widget_right", [
"PPS",
"PPA",
"PPS"
], {
P: "#minecraft:planks",
S: "#minecraft:wooden_slabs",
A: "#forge:tools/saws",
}).noMirror().id("kubejs:bountiful/wooden_widget_right")
event.shaped("kubejs:wooden_widget", [
"LGR"
], {
L: "kubejs:wooden_widget_left",
G: "enderio:wood_gear",
R: "kubejs:wooden_widget_right"
}).noMirror().id("kubejs:bountiful/wooden_widget")
event.shaped("kubejs:stone_widget_up", [
"SAS",
"PPP",
"PPP"
], {
P: "minecraft:stone",
S: "minecraft:stone_slab",
A: "#forge:tools/hammers"
}).id("kubejs:bountiful/stone_widget_up")
event.shaped("kubejs:stone_widget_down", [
"PPP",
"PPP",
"SAS"
], {
P: "minecraft:stone",
S: "minecraft:stone_slab",
A: "#forge:tools/hammers",
}).id("kubejs:bountiful/stone_widget_down")
event.shaped("kubejs:stone_widget", [
"U",
"G",
"D"
], {
U: "kubejs:stone_widget_up",
G: "enderio:stone_gear",
D: "kubejs:stone_widget_down"
}).id("kubejs:bountiful/stone_widget")
event.shaped("kubejs:alloy_widget", [
"WPW",
"PGP",
"WPW"
], {
P: "gtceu:cupronickel_plate",
W: "gtceu:copper_single_cable",
G: "gtceu:invar_gear"
}).id("kubejs:bountiful/alloy_widget")
event.shaped("kubejs:ender_widget", [
"APB",
"PGP",
"CPD"
], {
P: "gtceu:vibrant_alloy_plate",
G: "gtceu:electrical_steel_gear",
A: "laserio:item_card",
B: "laserio:fluid_card",
C: "laserio:energy_card",
D: "laserio:redstone_card"
}).id("kubejs:bountiful/ender_widget")
})

View file

@ -0,0 +1,93 @@
/**
* Custom recipes for the Building Gadgets mod
*/
ServerEvents.recipes(event => {
if (doHarderRecipes) {
event.remove({ id: /buildinggadgets2/ })
// Template Manager
event.shaped("buildinggadgets2:template_manager", [
"PMP",
"CGC",
"PLP"
], {
M: "minecraft:paper",
P: "gtceu:iron_plate",
G: "gtceu:restonia_gear",
C: "#gtceu:circuits/mv",
L: "#forge:plates/lapis"
})
// Gadgets
event.shaped("buildinggadgets2:gadget_building", [
"PE",
"CM",
"PB"
], {
M: "#forge:plates/glass",
P: "gtceu:iron_plate",
E: "gtceu:lv_emitter",
C: "#gtceu:circuits/lv",
B: "#gtceu:batteries/lv"
})
event.shaped("buildinggadgets2:gadget_exchanging", [
"PE",
"CM",
"PB"
], {
M: "#forge:plates/glass",
P: "gtceu:iron_plate",
E: "gtceu:mv_emitter",
C: "#gtceu:circuits/mv",
B: "#gtceu:batteries/lv"
})
event.shaped("buildinggadgets2:gadget_copy_paste", [
"SE",
"CM",
"PB"
], {
M: "#forge:plates/glass",
P: "gtceu:iron_plate",
E: "gtceu:lv_emitter",
S: "gtceu:lv_sensor",
C: "#gtceu:circuits/mv",
B: "#gtceu:batteries/mv"
})
event.shaped("buildinggadgets2:gadget_cut_paste", [
"SE",
"CM",
"PB"
], {
M: "#forge:plates/glass",
P: "gtceu:steel_plate",
E: "gtceu:lv_emitter",
S: "gtceu:lv_sensor",
C: "#gtceu:circuits/lv",
B: "#gtceu:batteries/hv"
})
event.shaped("buildinggadgets2:gadget_destruction", [
"PE",
"CM",
"PB"
], {
M: "#forge:plates/glass",
P: "gtceu:steel_plate",
E: "gtceu:lv_emitter",
C: "#gtceu:circuits/lv",
B: "#gtceu:batteries/mv"
})
} else {
// Slight nerf in NM because its stupid good for mining lol
event.remove({ id: "buildinggadgets2:gadget_exchanging" })
event.shaped("buildinggadgets2:gadget_exchanging", [
"PE",
"CM",
"PB"
], {
M: "#forge:plates/glass",
P: "gtceu:iron_plate",
E: "gtceu:lv_emitter",
C: "#gtceu:circuits/mv",
B: "#gtceu:batteries/lv"
})
}
})

View file

@ -0,0 +1,292 @@
/**
* Custom extended crafting recipes
*/
ServerEvents.recipes(event => {
// All of the event.remove() here should REALLY be moved to Remove_Recipes.js for consistency
// Components
event.remove({ output: "extendedcrafting:basic_component" })
event.shaped("extendedcrafting:basic_component", [
"SL ",
"AB ",
" "
], {
S: "gtceu:black_steel_plate",
L: "extendedcrafting:luminessence",
A: "gtceu:nether_quartz_plate",
B: "gtceu:iron_plate"
})
event.remove({ output: "extendedcrafting:advanced_component" })
event.shaped("extendedcrafting:advanced_component", [
"SL ",
"AB ",
" "
], {
S: "gtceu:black_steel_plate",
L: "extendedcrafting:luminessence",
A: "gtceu:electrum_plate",
B: "gtceu:glowstone_plate"
})
event.remove({ output: "extendedcrafting:elite_component" })
event.shaped("extendedcrafting:elite_component", [
"SL ",
"AB ",
" "
], {
S: "gtceu:black_steel_plate",
L: "extendedcrafting:luminessence",
A: "gtceu:aluminium_plate",
B: "gtceu:ender_pearl_plate"
})
event.remove({ output: "extendedcrafting:ultimate_component" })
event.shaped("extendedcrafting:ultimate_component", [
"SL ",
"AB ",
" "
], {
S: "gtceu:black_steel_plate",
L: "extendedcrafting:luminessence",
A: "gtceu:uranium_plate",
B: "gtceu:emerald_plate"
})
event.remove({ output: "extendedcrafting:epic_component" })
event.shaped("extendedcrafting:epic_component", [
"SL ",
"AB ",
" "
], {
S: "gtceu:black_steel_plate",
L: "extendedcrafting:luminessence",
A: "gtceu:activated_netherite_plate",
B: "gtceu:red_steel_plate"
})
event.remove({ output: "extendedcrafting:the_ultimate_component" })
event.shaped("extendedcrafting:the_ultimate_component", [
" B ",
"ACE",
" U "
], {
A: "extendedcrafting:advanced_component",
B: "extendedcrafting:basic_component",
C: "extendedcrafting:crystaltine_component",
E: "extendedcrafting:elite_component",
U: "extendedcrafting:ultimate_component",
})
event.remove({ output: "extendedcrafting:crystaltine_component" })
event.shaped("extendedcrafting:crystaltine_component", [
"SL ",
"AB ",
" "
], {
S: "gtceu:black_steel_plate",
L: "extendedcrafting:luminessence",
A: "gtceu:hssg_plate",
B: "extendedcrafting:crystaltine_ingot"
})
event.remove({ output: "extendedcrafting:redstone_component" })
event.shaped("extendedcrafting:redstone_component", [
"SL ",
"AB ",
" "
], {
S: "gtceu:black_steel_plate",
L: "extendedcrafting:luminessence",
A: "gtceu:copper_plate",
B: "gtceu:redstone_plate"
})
event.replaceInput({ id: /extendedcrafting/ }, "extendedcrafting:black_iron_ingot", "gtceu:black_steel_plate")
// Catalysts
event.remove({ output: "extendedcrafting:the_ultimate_catalyst" })
event.shaped("extendedcrafting:the_ultimate_catalyst", [
" B ",
"ACE",
" U "
], {
A: "extendedcrafting:advanced_catalyst",
B: "extendedcrafting:basic_catalyst",
C: "extendedcrafting:crystaltine_catalyst",
E: "extendedcrafting:elite_catalyst",
U: "extendedcrafting:ultimate_catalyst",
})
// Tables
event.remove({ output: "extendedcrafting:basic_table" })
event.shaped("extendedcrafting:basic_table", [
" B ",
"BCB",
" B "
], {
B: "extendedcrafting:basic_component",
C: "craftingstation:crafting_station",
})
event.remove({ output: "extendedcrafting:advanced_table" })
event.shaped("extendedcrafting:advanced_table", [
"EAE",
"ABA",
"EAE"
], {
A: "extendedcrafting:advanced_component",
B: "extendedcrafting:basic_table",
E: "gtceu:electrum_ingot"
})
event.remove({ output: "extendedcrafting:elite_table" })
event.recipes.extendedcrafting.shaped_table("extendedcrafting:elite_table", [
"ASESA",
"SCCCS",
"ECTCE",
"SCCCS",
"ASESA"
], {
A: "gtceu:aluminium_block",
S: "gtceu:black_steel_plate",
E: "extendedcrafting:elite_catalyst",
C: "extendedcrafting:elite_component",
T: "extendedcrafting:advanced_table"
})
event.remove({ output: "extendedcrafting:ultimate_table" })
event.recipes.extendedcrafting.shaped_table("extendedcrafting:ultimate_table", [
"ESSCSSE",
"SUUUUUS",
"SUSRSUS",
"CURTRUC",
"SUSRSUS",
"SUUUUUS",
"ESSCSSE"
], {
E: "minecraft:emerald_block",
S: "gtceu:black_steel_plate",
C: "extendedcrafting:the_ultimate_catalyst",
U: "extendedcrafting:ultimate_component",
R: "extendedcrafting:crystaltine_component",
T: "extendedcrafting:elite_table"
})
event.remove({ output: "extendedcrafting:epic_table" })
event.recipes.extendedcrafting.shaped_table("extendedcrafting:epic_table", [
"ESSSCSSSE",
"SUUUUUUUS",
"SUSSRSSUS",
"SUSSRSSUS",
"CURRTRRUC",
"SUSSRSSUS",
"SUSSRSSUS",
"SUUUUUUUS",
"ESSSCSSSE"
], {
E: "#forge:storage_blocks/activated_netherite",
S: "gtceu:double_black_steel_plate",
C: "extendedcrafting:the_ultimate_catalyst",
U: "extendedcrafting:epic_component",
R: "extendedcrafting:crystaltine_component",
T: "extendedcrafting:ultimate_table"
})
// Table duping. Only for more nested, higher-tier tables
let dupable_tables = [
["elite", "aluminium"],
["ultimate", "emerald"],
["epic", "activated_netherite"]
]
dupable_tables.forEach((value) => {
event.shaped(`2x extendedcrafting:${value[0]}_table`, [
"ABA",
"BCB",
"ABA"
], {
A: `#forge:storage_blocks/${value[1]}`,
B: `extendedcrafting:${value[0]}_catalyst`,
C: `extendedcrafting:${value[0]}_table`
}).id(`${value[0]}_table_dupe`)
})
event.remove({ output: "extendedcrafting:crafting_core" })
event.shaped("extendedcrafting:crafting_core", [
"ABA",
"CDC",
"ABA"
], {
A: "gtceu:black_steel_plate",
B: "extendedcrafting:elite_catalyst",
C: "extendedcrafting:elite_component",
D: "gtceu:tungsten_carbide_block"
})
event.shaped("extendedcrafting:pedestal", [
" P ",
" P ",
"PBP"
], {
P: "gtceu:black_steel_plate",
B: "gtceu:black_steel_block"
})
// Combination Crafts
event.recipes.extendedcrafting.combination(
"gtceu:restonia_empowered_block",
"gtceu:restonia_block", ["gtceu:red_alloy_ingot", "gtceu:almandine_gem", Item.of("gtceu:glass_vial", '{Fluid:{Amount:1000,FluidName:"gtceu:sulfuric_acid"}}').weakNBT(), "extendedcrafting:the_ultimate_component"],
4000000, 400000
)
event.recipes.extendedcrafting.combination(
"gtceu:diamatine_empowered_block",
"gtceu:diamatine_block", ["kubejs:endest_star", "extendedcrafting:crystaltine_ingot", Item.of("gtceu:fluid_cell", '{Fluid:{Amount:1000,FluidName:"gtceu:nitrogen_dioxide"}}').weakNBT(), "extendedcrafting:crystaltine_component"],
4000000, 400000
)
event.recipes.extendedcrafting.combination(
"gtceu:emeradic_empowered_block",
"gtceu:emeradic_block", ["kubejs:stabilized_uranium", "gtceu:vibrant_alloy_ingot", Item.of("gtceu:fluid_cell", '{Fluid:{Amount:1000,FluidName:"gtceu:argon"}}').strongNBT(), "extendedcrafting:ultimate_component"],
4000000, 400000
)
event.recipes.extendedcrafting.combination(
"gtceu:enori_empowered_block",
"gtceu:enori_block", ["gtceu:apatite_gem", "gtceu:end_steel_ingot", Item.of("gtceu:fluid_cell", '{Fluid:{Amount:1000,FluidName:"gtceu:helium"}}').strongNBT(), "extendedcrafting:basic_component"],
4000000, 400000
)
event.recipes.extendedcrafting.combination(
"gtceu:palis_empowered_block",
"gtceu:palis_block", ["gtceu:sapphire_gem", "gtceu:mythril_ingot", Item.of("gtceu:fluid_cell", '{Fluid:{Amount:1000,FluidName:"minecraft:water"}}').strongNBT(), "extendedcrafting:elite_component"],
4000000, 400000
)
event.recipes.extendedcrafting.combination(
"gtceu:void_empowered_block",
"gtceu:void_block", ["gtceu:black_quartz_gem", "gtceu:dark_steel_ingot", Item.of("gtceu:fluid_cell", '{Fluid:{Amount:1000,FluidName:"gtceu:oil"}}').strongNBT(), "extendedcrafting:advanced_component"],
4000000, 400000
)
// Luminessence
event.remove({ id: "extendedcrafting:luminessence" })
event.remove({ id: /phosphoric_acid_from_apatite/ })
event.recipes.gtceu.chemical_reactor("phosphoric_acid_apatite")
.itemInputs("9x gtceu:apatite_dust")
.inputFluids("water 10000", "gtceu:sulfuric_acid 5000")
.itemOutputs("40x gtceu:gypsum_dust")
.outputFluids("gtceu:hydrochloric_acid 1000", "gtceu:phosphoric_acid 3000")
.duration(320)
.EUt(30)
event.recipes.gtceu.mixer("luminessence")
.itemInputs("minecraft:redstone", "minecraft:glowstone_dust", "2x gtceu:aluminium_dust")
.inputFluids("gtceu:phosphoric_acid 4000")
.itemOutputs("8x extendedcrafting:luminessence")
.duration(20)
.EUt(30)
})

View file

@ -0,0 +1,182 @@
/**
* Custom recipes for the Functional Storage mod
*/
ServerEvents.recipes(event => {
// Remove bugged Oak Drawer recipes
event.remove({ id: /functionalstorage:oak_drawer_alternate/ })
// Fluid Drawers
event.replaceInput({ output: /fluid/, mod: "functionalstorage" }, "#minecraft:planks", "#forge:plates/iron")
event.replaceInput({ output: /fluid/, mod: "functionalstorage" }, "minecraft:bucket", "gtceu:lv_hermetic_casing")
if(doCompacting) {
// Compacting drawers
event.shaped("functionalstorage:compacting_drawer", [
"III",
"PDP",
"III"
], {
I: "gtceu:iron_plate",
P: "gtceu:lv_electric_piston",
D: "#functionalstorage:drawer"
}).id("functionalstorage:compacting_drawer")
/*
event.shaped("functionalstorage:simple_compacting_drawer", [
"III",
"IDP",
"III"
], {
I: "gtceu:iron_plate",
P: "gtceu:lv_electric_piston",
D: "#functionalstorage:drawer"
}).id("functionalstorage:simple_compacting_drawer")
*/
event.remove("functionalstorage:simple_compacting_drawer")
// Framed Compacting Drawers
event.shaped("functionalstorage:compacting_framed_drawer", [
"III",
"IBI",
"III"
], {
I: "minecraft:iron_nugget",
B: "functionalstorage:compacting_drawer"
}).id("functionalstorage:compacting_framed_drawer")
/*
event.shaped("functionalstorage:framed_simple_compacting_drawer", [
"III",
"IBI",
"III"
], {
I: "minecraft:iron_nugget",
B: "functionalstorage:simple_compacting_drawer"
}).id("functionalstorage:framed_simple_compacting_drawer")
*/
event.remove("functionalstorage:framed_simple_compacting_drawer")
// Custom coin compacting recipes
event.custom({
type: "functionalstorage:custom_compacting",
higher_input: {
count: 1,
item: "kubejs:moni_dollar"
},
lower_input: {
count: 4,
item: "kubejs:moni_quarter"
}
})
event.custom({
type: "functionalstorage:custom_compacting",
higher_input: {
count: 1,
item: "kubejs:moni_quarter"
},
lower_input: {
count: 5,
item: "kubejs:moni_nickel"
}
})
if (doMonicoins) {
event.custom({
type: "functionalstorage:custom_compacting",
higher_input: {
count: 1,
item: "kubejs:moni_nickel"
},
lower_input: {
count: 5,
item: "kubejs:moni_penny"
}
})
}
} else {
event.remove({ id: /^functionalstorage:.*compacting.*_drawer$/})
}
// Specialized Drawers
event.shaped("functionalstorage:controller_extension", [
"III",
"CDC",
"IGI"
], {
I: "gtceu:iron_plate",
C: "#gtceu:circuits/lv",
D: "#functionalstorage:drawer",
G: "#forge:storage_blocks/gold"
}).id("functionalstorage:controller_extension")
event.shaped("functionalstorage:armory_cabinet", [
"ICI",
"PDP",
"III"
], {
I: "gtceu:iron_plate",
C: "#gtceu:circuits/hv",
D: "#functionalstorage:drawer",
P: "gtceu:hv_electric_piston"
}).id("functionalstorage:armory_cabinet")
event.shaped("functionalstorage:ender_drawer", [
"ICI",
"PEP",
"III"
], {
I: "gtceu:iron_plate",
C: "#gtceu:circuits/mv",
E: "enderchests:ender_chest",
P: "gtceu:mv_electric_piston"
}).id("functionalstorage:ender_drawer")
// Storage Controller
event.remove({ id: "functionalstorage:storage_controller" })
const controllerCore = ["#forge:storage_blocks/diamond", "#forge:storage_blocks/emerald"]
controllerCore.forEach(coreBlock => {
event.shaped("functionalstorage:storage_controller", [
"III",
"CDC",
"IEI"
], {
I: "gtceu:iron_plate",
C: "#gtceu:circuits/lv",
D: "#functionalstorage:drawer",
E: coreBlock
})
})
// Framed Drawers
const miscframing = ["storage_controller", "controller_extension"]
miscframing.forEach(Block => {
event.shaped(`functionalstorage:framed_${Block}`, [
"III",
"IBI",
"III"
], {
I: "minecraft:iron_nugget",
B: `functionalstorage:${Block}`
}).id(`functionalstorage:framed_${Block}`)
})
// Storage Upgrades
let upgradeTiers = [
["copper", "lead", "bronze"],
["gold", "tin", "steel"],
["diamond", "copper", "aluminium"],
["netherite", "gold", "stainless_steel"]
]
upgradeTiers.forEach((tier, tierIndex) => {
event.remove({ id: `functionalstorage:${tier[0]}_upgrade` })
event.shaped(`2x functionalstorage:${tier[0]}_upgrade`, [
"PUP",
"PGP",
"PUP"
], {
P: `#forge:plates/${tier[2]}`,
G: `#forge:double_plates/${tier[1]}`,
U: tierIndex == 0 ? "#functionalstorage:drawer" : (`functionalstorage:${upgradeTiers[tierIndex - 1][0]}_upgrade`),
}).id(`functionalstorage:${tier[2]}_upgrade`)
})
})

View file

@ -0,0 +1,127 @@
/**
* Custom recipes for GT
*/
ServerEvents.recipes(event => {
event.shapeless("gtceu:red_alloy_dust", ["gtceu:copper_dust", "4x minecraft:redstone"]).id("kubejs:shapeless/red_alloy_dust")
event.shapeless("gtceu:conductive_alloy_dust", ["minecraft:redstone", "gtceu:iron_dust"]).id("kubejs:shapeless/conductive_alloy_dust")
event.recipes.gtceu.extractor("one_experience_fluid")
.itemInputs("kubejs:solidified_experience")
.outputFluids(Fluid.of("enderio:xp_juice", 140))
.duration(80)
.EUt(32)
// Sunnarium plates
event.remove({ id: "gtceu:compressor/compress_plate_dust_sunnarium" })
event.shaped("4x gtceu:sunnarium_plate", [
"PPP",
"PSP",
"PPP"
], {
P: "gtceu:hastelloy_c_276_plate",
S: "gtceu:sunnarium_dust"
})
event.remove({ id: "gtceu:compressor/compress_plate_dust_enriched_sunnarium" })
event.shaped("gtceu:enriched_sunnarium_plate", [
" A ",
"ABA",
" A "
], {
A: "gtceu:enriched_sunnarium_dust",
B: "gtceu:sunnarium_plate"
})
// HNN MATTERS
if (doHNN) {
event.recipes.gtceu.extractor("overworld_fluid")
.itemInputs("hostilenetworks:overworld_prediction")
.outputFluids(Fluid.of("enderio:xp_juice", 200))
.duration(40)
.EUt(32)
event.recipes.gtceu.extractor("nether_experience_fluid")
.itemInputs("hostilenetworks:nether_prediction")
.outputFluids(Fluid.of("enderio:xp_juice", 400))
.duration(80)
.EUt(32)
event.recipes.gtceu.extractor("ender_experience_fluid")
.itemInputs("hostilenetworks:end_prediction")
.outputFluids(Fluid.of("enderio:xp_juice", 500))
.duration(100)
.EUt(32)
}
event.recipes.gtceu.fluid_solidifier("one_experience_solid")
.itemOutputs("kubejs:solidified_experience")
.inputFluids(Fluid.of("enderio:xp_juice", 140))
.notConsumable("gtceu:ball_casting_mold")
.duration(500)
.EUt(16)
// NETHER STAR RECIPES
event.remove({ id: "hostilenetworks:living_matter/extraterrestrial/nether_star" })
event.remove({ id: "gtceu:implosion_compressor/implodedust_nether_star_tnt" })
event.recipes.gtceu.forge_hammer("nether_star_block_to_star")
.itemInputs("gtceu:nether_star_block")
.itemOutputs("9x minecraft:nether_star")
.duration(100)
.EUt(24)
event.recipes.gtceu.implosion_compressor("implosion_star_tnt")
.itemInputs("4x gtceu:nether_star_dust", "2x minecraft:tnt", "gtceu:dark_ash_small_dust")
.itemOutputs("3x minecraft:nether_star")
.duration(20)
.EUt(30)
if (doHNN) {
event.shaped("kubejs:quantum_flux", [
" B ",
"BAB",
" B "
], {
A: "enderio:pulsating_crystal",
B: "hostilenetworks:end_prediction"
})
}
// Remove Hot MV ingots (And molten fluid counterpart)
event.remove([
{ id: /^gtceu:vacuum_freezer\/.*kanthal/ },
{ id: /^gtceu:vacuum_freezer\/.*silicon/ },
{ id: /^gtceu:chemical_bath\/.*kanthal.*cool/ },
{ id: /^gtceu:chemical_bath\/.*silicon.*cool/ }
])
event.replaceOutput({}, "gtceu:hot_silicon_ingot", "gtceu:silicon_ingot")
event.replaceOutput({}, "gtceu:hot_kanthal_ingot", "gtceu:kanthal_ingot")
// When replacing fluids, the quantity of the replacing fluid needs to be specified. Else it defaults to 1 bucket.
event.replaceOutput({id: /^gtceu:alloy_blast_smelter\/kanthal.*/}, Fluid.of("gtceu:molten_kanthal"), Fluid.of("gtceu:kanthal", 432))
// Steel Machine Casing
event.remove({ input: "gtceu:steel_machine_casing" })
event.remove({ output: "gtceu:steel_machine_casing" })
// Ender Pearl dust Electrolysis
// event.remove({ id: 'gtceu:electrolyzer/decomposition_electrolyzing_ender_pearl' })
// rock breaker
const generateRockBreakerStoneRecipe = (stoneItem) => {
event.recipes.gtceu.rock_breaker(`kubejs:rock_breaker_${stoneItem.replace(":", "_")}`)
.notConsumable(stoneItem)
.itemOutputs(stoneItem)
.duration(16)
.EUt(60)
.addData("fluidA", "minecraft:lava")
.addData("fluidB", "minecraft:water")
}
generateRockBreakerStoneRecipe("minecraft:calcite")
generateRockBreakerStoneRecipe("minecraft:tuff")
generateRockBreakerStoneRecipe("quark:jasper")
generateRockBreakerStoneRecipe("quark:limestone")
generateRockBreakerStoneRecipe("quark:permafrost")
generateRockBreakerStoneRecipe("quark:shale")
generateRockBreakerStoneRecipe("quark:myalite")
})

View file

@ -0,0 +1,253 @@
/**
* Custom recipes for the Iron Jetpacks mod
*/
ServerEvents.recipes(event => {
// Thermal
// Generate thermal thruster recipes
const thermalThrusters = [
["leadstone", "lead", "lead", "steamdynamo:steam_dynamo"],
["hardened", "invar", "invar", "thermal:dynamo_magmatic"],
["reinforced", "aluminium", "electrum", "thermal:dynamo_compression"],
["resonant", "enderium", "enderium", "thermal:dynamo_numismatic"]
]
thermalThrusters.forEach(([newTier, plate1, plate2, dynamo]) => {
event.shaped(Item.of(`kubejs:${newTier}_thruster`), [
"PCP",
"MDM",
"BBB"
], {
P: `#forge:plates/${plate1}`,
M: `#forge:plates/${plate2}`,
C: "thermal:rf_coil",
D: dynamo,
B: "#forge:plates/red_alloy"
}).id(`kubejs:ironjetpacks/thrusters/${newTier}`);
})
// Generate EnderIO thruster recipes
const eioThrusters = [
["conductive_iron", "conductive_alloy", "1", "kubejs:resonating_crystal", "gtceu:red_alloy_plate"],
["electrical_steel", "electrical_steel", "1", "enderio:pulsating_crystal", Item.of("kubejs:conductive_iron_thruster").weakNBT()],
["energetic", "energetic_alloy", "2", "enderio:vibrant_crystal", Item.of("kubejs:electrical_steel_thruster").weakNBT()],
["vibrant", "vibrant_alloy", "3", "enderio:prescient_crystal", Item.of("kubejs:energetic_thruster").weakNBT()]
]
eioThrusters.forEach(([newTier, plate, card, crystal, lastTier]) => {
event.shaped(Item.of(`kubejs:${newTier}_thruster`), [
"PCP",
"PRP",
"BTB"
], {
P: `#forge:plates/${plate}`,
C: `laserio:energy_overclocker_card_tier_${card}`,
R: crystal,
T: lastTier,
B: "gtceu:red_alloy_plate"
}).id(`kubejs:ironjetpacks/thrusters/${newTier}`);
})
// Special thrusters
// Dark Soularium
event.shaped(Item.of("kubejs:dark_soularium_thruster"), [
"ICI",
"IFI",
"TTT"
], {
I: "gtceu:dark_soularium_ingot",
C: "laserio:energy_overclocker_card_tier_8",
F: "kubejs:flight_control_unit",
T: Item.of("kubejs:vibrant_thruster").weakNBT()
}).id("kubejs:ironjetpacks/thrusters/dark_soularium");
// Fluxed
event.shaped(Item.of("kubejs:fluxed_thruster"), [
" P ",
"PGP",
"STS"
], {
P: "redstone_arsenal:flux_plating",
G: "kubejs:glowstone_elevation_unit",
S: "gtceu:signalum_plate",
T: Item.of("kubejs:resonant_thruster").weakNBT()
}).id("kubejs:ironjetpacks/thrusters/fluxed");
//
// Jetpacks
//
/**
* Copies old jetpack nbt to the new jetpack
* @param {Internal.ModifyRecipeCraftingGrid} grid
* @param {Internal.ItemStack} result
* @returns {Internal.ItemStack}
*/
const copyOldJetpackData = (grid, result) => {
let item = grid.find("ironjetpacks:jetpack")
if (!item.nbt) {
return result;
}
let nbt = {};
if (item.nbt.Energy) {
nbt.Energy = item.nbt.Energy
}
if (item.nbt.Engine) {
nbt.Engine = item.nbt.Engine
}
if (item.nbt.Hover) {
nbt.Hover = item.nbt.Hover
}
if (item.nbt.Throttle) {
nbt.Throttle = item.nbt.Throttle
}
return result.withNBT(nbt);
}
/**
* @type {Internal.Ingredient[][]}
*/
const jetpackBase = [
["leadstone", "ironjetpacks:strap", "lead", "thermal:flux_capacitor"],
["conductive_iron", "ironjetpacks:strap", "conductive_alloy", "enderio:basic_capacitor"]
]
/**
* @type {Internal.Ingredient[][]}
*/
const jetpackUpgrade = [
["hardened", "leadstone", "invar", Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:hardened"}').weakNBT()],
["reinforced", "hardened", "electrum", Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:reinforced"}').weakNBT()],
["resonant", "reinforced", "enderium", Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:resonant"}').weakNBT()],
["electrical_steel", "conductive_iron", "electrical_steel", "enderio:double_layer_capacitor"],
["energetic", "electrical_steel", "energetic_alloy", "enderio:octadic_capacitor"],
["vibrant", "energetic", "vibrant_alloy", "kubejs:compressed_octadic_capacitor"]
]
jetpackBase.forEach(([newTier, middlePart, plate, energyCapacitor]) => {
event.shaped(Item.of("ironjetpacks:jetpack", `{Id:"ironjetpacks:${newTier}"}`).strongNBT(), [
"PEP",
"PSP",
"T T"
], {
P: `#forge:plates/${plate}`,
E: energyCapacitor,
S: middlePart,
T: Item.of(`kubejs:${newTier}_thruster`).weakNBT()
}).id(`kubejs:ironjetpacks/base/${newTier}`);
})
jetpackUpgrade.forEach(([newTier, previousTier, plate, energyCapacitor]) => {
event.shaped(Item.of("ironjetpacks:jetpack", `{Id:"ironjetpacks:${newTier}"}`).strongNBT(), [
"PEP",
"PSP",
"T T"
], {
P: `#forge:plates/${plate}`,
E: energyCapacitor,
S: Item.of("ironjetpacks:jetpack", `{Id:"ironjetpacks:${previousTier}"}`).weakNBT(),
T: Item.of(`kubejs:${newTier}_thruster`).weakNBT()
}).modifyResult(copyOldJetpackData).id(`kubejs:ironjetpacks/upgrade/${newTier}`);
})
event.recipes.gtceu.assembly_line("kubejs:ironjetpacks/upgrade/dark_soularium")
.itemInputs(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:vibrant"}').weakNBT(), "gtceu:dark_soularium_block", "better_angel_ring:angel_ring", "2x enderio:ender_crystal", "kubejs:double_compressed_octadic_capacitor", "4x #gtceu:circuits/luv", Item.of("kubejs:dark_soularium_thruster", 2))
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:dark_soularium"}').strongNBT())
.duration(3000)
.EUt(30720)
.stationResearch(b => b.researchStack(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:vibrant"}')).EUt(3686).CWUt(64))
.modifyResult(copyOldJetpackData)
event.recipes.gtceu.assembly_line("kubejs:ironjetpacks/upgrade/fluxed")
.itemInputs(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:resonant"}').weakNBT(), "redstone_arsenal:flux_chestplate", "kubejs:cryotheum_coolant_unit", "better_angel_ring:angel_ring", "2x kubejs:compressed_octadic_capacitor", "3x #gtceu:circuits/luv", Item.of("kubejs:fluxed_thruster", 2))
.inputFluids("gtceu:soldering_alloy 1152")
.itemOutputs(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:fluxed"}').strongNBT())
.duration(3000)
.EUt(30720)
.stationResearch(b => b
.researchStack(Item.of("ironjetpacks:jetpack", '{Id:"ironjetpacks:resonant"}'))
.EUt(3686)
.CWUt(64))
.modifyResult(copyOldJetpackData)
//
// Misc
//
event.shaped("kubejs:empty_fluxed_jetpack_unit", [
"ABA",
"BCB",
"ABA"
], {
A: "gtceu:electrum_flux_ingot",
B: "gtceu:signalum_ingot",
C: "enderio:fused_quartz"
}).id("kubejs:ironjetpacks/misc/empty_fluxed_jetpack_unit");
event.shaped("kubejs:empty_soularium_jetpack_unit", [
"ABA",
"BCB",
"ABA"
], {
A: "gtceu:dark_soularium_ingot",
B: "gtceu:electrical_steel_ingot",
C: "enderio:fused_quartz"
}).id("kubejs:ironjetpacks/misc/empty_soularium_jetpack_unit");
event.recipes.gtceu.canner("kubejs:ironjetpacks/misc/flight_control_unit")
.itemInputs("kubejs:empty_soularium_jetpack_unit", "4x minecraft:ghast_tear")
.itemOutputs("kubejs:flight_control_unit")
.duration(100)
.EUt(2000)
event.recipes.gtceu.canner("kubejs:ironjetpacks/misc/glowstone_elevation_unit")
.itemInputs("kubejs:empty_fluxed_jetpack_unit")
.inputFluids("gtceu:glowstone 4032")
.itemOutputs("kubejs:glowstone_elevation_unit")
.duration(100)
.EUt(2000)
event.recipes.gtceu.canner("kubejs:ironjetpacks/misc/cyrotheum_coolant_unit")
.itemInputs("kubejs:empty_fluxed_jetpack_unit")
.inputFluids("kubejs:molten_cryotheum 6000")
.itemOutputs("kubejs:cryotheum_coolant_unit")
.duration(100)
.EUt(2000)
// Cells, thermal exp.
event.shaped(Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:hardened"}').strongNBT(), [
" A ",
"BCB",
"ADA"
], {
A: "minecraft:redstone",
B: "gtceu:invar_ingot",
C: "thermal:flux_capacitor",
D: "gtceu:tin_ingot"
}).id("kubejs:ironjetpacks/cells/hardened");
event.shaped(Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:reinforced"}').strongNBT(), [
" A ",
"BCB",
"ADA"
], {
A: "minecraft:redstone",
B: "gtceu:electrum_ingot",
C: Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:hardened"}').weakNBT(),
D: "#enderio:fused_quartz"
}).id("kubejs:ironjetpacks/cells/reinforced");
event.shaped(Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:resonant"}').strongNBT(), [
" A ",
"BCB",
"ADA"
], {
A: "minecraft:redstone",
B: "gtceu:enderium_ingot",
C: Item.of("ironjetpacks:cell", '{Id:"ironjetpacks:reinforced"}').weakNBT(),
D: "kubejs:pyrotheum_dust"
}).id("kubejs:ironjetpacks/cells/resonant");
})

View file

@ -0,0 +1,78 @@
/**
* Custom recipes for Monifactory
*/
ServerEvents.recipes(event => {
// Stablized
event.recipes.gtceu.fusion_reactor("einsteinium_fusion")
.inputFluids(Fluid.of("gtceu:berkelium", 16), Fluid.of("gtceu:californium", 16))
.outputFluids(Fluid.of("gtceu:einsteinium", 16))
.duration(100)
.EUt(15360)
.fusionStartEU(400000000)
solidify("stabilized_einsteinium", Fluid.of("gtceu:einsteinium", 144), "16x kubejs:stabilized_einsteinium");
solidify("stabilized_berkelium", Fluid.of("gtceu:berkelium", 144), "8x kubejs:stabilized_berkelium");
solidify("stabilized_neptunium", Fluid.of("gtceu:neptunium", 144), "2x kubejs:stabilized_neptunium");
solidify("stabilized_plutonium", Fluid.of("gtceu:plutonium", 144), "2x kubejs:stabilized_plutonium");
solidify("stabilized_plutonium_1", Fluid.of("gtceu:plutonium_241", 144), "2x kubejs:stabilized_plutonium");
solidify("stabilized_uranium", Fluid.of("gtceu:uranium", 144), "kubejs:stabilized_uranium");
solidify("stabilized_uranium_1", Fluid.of("gtceu:uranium_235", 144), "kubejs:stabilized_uranium");
solidify("stabilized_curium", Fluid.of("gtceu:curium", 144), "4x kubejs:stabilized_curium");
solidify("stabilized_californium", Fluid.of("gtceu:californium", 144), "8x kubejs:stabilized_californium");
solidify("stabilized_americium", Fluid.of("gtceu:americium", 144), "4x kubejs:stabilized_americium");
solidify("solidified_argon", Fluid.of("gtceu:argon"), "kubejs:solidified_argon");
solidify("solidified_chlorine", Fluid.of("gtceu:chlorine"), "kubejs:solidified_chlorine");
solidify("solidified_fluorine", Fluid.of("gtceu:fluorine"), "kubejs:solidified_fluorine");
solidify("solidified_helium", Fluid.of("gtceu:helium"), "kubejs:solidified_helium");
solidify("solidified_hydrogen", Fluid.of("gtceu:hydrogen"), "kubejs:solidified_hydrogen");
solidify("solidified_krypton", Fluid.of("gtceu:krypton"), "kubejs:solidified_krypton");
solidify("solidified_mercury", Fluid.of("gtceu:mercury"), "kubejs:solidified_mercury");
solidify("solidified_neon", Fluid.of("gtceu:neon"), "kubejs:solidified_neon");
solidify("solidified_nitrogen", Fluid.of("gtceu:nitrogen"), "kubejs:solidified_nitrogen");
solidify("solidified_oxygen", Fluid.of("gtceu:oxygen"), "kubejs:solidified_oxygen");
solidify("solidified_radon", Fluid.of("gtceu:radon"), "kubejs:solidified_radon");
solidify("solidified_xenon", Fluid.of("gtceu:xenon"), "kubejs:solidified_xenon");
solidify("stabilized_oganesson", Fluid.of("gtceu:oganesson", 144), "kubejs:stabilized_oganesson");
function solidify(recipename, input, output) {
event.recipes.gtceu.fluid_solidifier(recipename)
.inputFluids(input)
.itemOutputs(output)
.notConsumable("gtceu:ball_casting_mold")
.duration(500)
.EUt(16)
}
event.recipes.gtceu.fluid_solidifier("mote_of_omnium")
.inputFluids(Fluid.of("gtceu:omnium", 16))
.itemOutputs("kubejs:mote_of_omnium")
.notConsumable("gtceu:ball_casting_mold")
.duration(20)
.EUt(7)
// Thermal Fluids
thermalextract("primal_mana", "kubejs:primal_mana", Fluid.of("gtceu:mana", 250));
thermalextract("cryotheum", "kubejs:cryotheum_dust", Fluid.of("kubejs:molten_cryotheum", 250));
thermalextract("pyrotheum", "kubejs:pyrotheum_dust", Fluid.of("kubejs:molten_pyrotheum", 250));
thermalextract("aerotheum", "kubejs:aerotheum_dust", Fluid.of("kubejs:molten_aerotheum", 250));
thermalextract("petrotheum", "kubejs:petrotheum_dust", Fluid.of("kubejs:molten_petrotheum", 250));
function thermalextract(recipename, input, output) {
event.recipes.gtceu.extractor(recipename)
.itemInputs(input)
.outputFluids(output)
.duration(40)
.EUt(30)
}
// Endest Star
event.shaped("kubejs:endest_star", [
" E ",
"ESE",
" E "
], {
E: "minecraft:ender_eye",
S: "minecraft:nether_star"
})
})

View file

@ -0,0 +1,188 @@
/**
* Custom recipes for the LaserIO mod
*/
ServerEvents.recipes(event => {
// Disable LIO transportation in Expert (Cards are used in recipes)
if (!doLaserIO) {
event.remove({ id: /laserio:laser_/ })
event.remove({ id: /laserio:card_/ })
}
// Harder recipes in Hard Mode
const cardChip = doHarderRecipes ? "#gtceu:circuits/lv" : "#gtceu:circuits/ulv"
// Replace Logic chips with circuits.
event.remove({ output: ["laserio:logic_chip_raw", "laserio:logic_chip"] })
event.replaceInput({ mod: "laserio", not: [{ id: "laserio:card_item" }, { id: "laserio:card_fluid" }, { id: "laserio:card_energy" }, { id: "laserio:card_redstone" }] }, "laserio:logic_chip", cardChip)
const Cards = [
["item", "gtceu:pulsating_alloy_plate"],
["fluid", "gtceu:iron_plate"],
["energy", "gtceu:gold_plate"],
["redstone", "gtceu:red_alloy_plate"]
]
if (doLaserIO) {
// Cards
Cards.forEach(card => {
event.shaped(`laserio:card_${card[0]}`, [
"TNT",
"TCT",
"GGG"
], {
N: card[1],
C: cardChip,
G: "minecraft:gold_nugget",
T: "gtceu:tin_plate"
}).id(`laserio:card_${card[0]}`)
})
// Overclockers
event.remove({ output: ["laserio:overclocker_card", "laserio:overclocker_node"] })
event.shaped("laserio:overclocker_card", [
"E",
"P",
"A"
], {
E: "#forge:double_plates/electrical_steel",
P: "#forge:plates/electrum",
A: "ae2:basic_card"
})
event.shaped("laserio:overclocker_node", [
"E",
"P",
"A"
], {
E: "#forge:double_plates/electrical_steel",
P: "enderio:pulsating_crystal",
A: "ae2:advanced_card"
})
// Laser Connectors
event.shaped("4x laserio:laser_connector", [
" E ",
"RRR",
"SSS"
], {
S: "gtceu:steel_plate",
E: "gtceu:glass_tube",
R: "gtceu:red_alloy_plate"
}).id("laserio:laser_connector")
event.shaped("laserio:laser_node", [
"PGP",
"GRG",
"PGP"
], {
P: "gtceu:steel_plate",
G: "#forge:glass_panes/colorless",
R: "laserio:laser_connector"
}).id("laserio:laser_node")
event.shaped("2x laserio:laser_connector_advanced", [
" E ",
"RCR",
"FFF"
], {
F: "gtceu:electrum_flux_plate",
E: "gtceu:ev_emitter",
C: "#gtceu:circuits/iv",
R: "gtceu:red_alloy_plate"
}).id("laserio:laser_connector_advanced")
}
// Energy Overclockers //
// Conductive Iron
event.shaped("3x laserio:energy_overclocker_card_tier_1", [
"AAA",
"BBB",
"AAA"
], {
A: "gtceu:iron_plate",
B: "gtceu:conductive_alloy_single_wire"
}).id("kubejs:conductive_card")
event.recipes.gtceu.assembler("kubejs:conductive_card")
.itemInputs("3x gtceu:conductive_alloy_single_wire", "6x gtceu:iron_plate")
.itemOutputs("4x laserio:energy_overclocker_card_tier_1")
.duration(80)
.EUt(16)
// Energetic Alloy
event.shaped("3x laserio:energy_overclocker_card_tier_2", [
"AAA",
"BCB",
"AAA"
], {
A: "gtceu:iron_plate",
B: "gtceu:energetic_alloy_single_wire",
C: "laserio:energy_overclocker_card_tier_1"
}).id("kubejs:energetic_card")
event.recipes.gtceu.assembler("kubejs:energetic_card")
.itemInputs("2x gtceu:energetic_alloy_single_wire", "laserio:energy_overclocker_card_tier_1", "6x gtceu:iron_plate")
.itemOutputs("4x laserio:energy_overclocker_card_tier_2")
.duration(80)
.EUt(16)
// Vibrant Alloy
event.shaped("3x laserio:energy_overclocker_card_tier_3", [
"AAA",
"BCB",
"AAA"
], {
A: "gtceu:iron_plate",
B: "gtceu:vibrant_alloy_single_wire",
C: "laserio:energy_overclocker_card_tier_2"
}).id("kubejs:vibrant_card")
event.recipes.gtceu.assembler("kubejs:vibrant_card")
.itemInputs("2x gtceu:vibrant_alloy_single_wire", "laserio:energy_overclocker_card_tier_2", "6x gtceu:iron_plate")
.itemOutputs("4x laserio:energy_overclocker_card_tier_3")
.duration(80)
.EUt(16)
// Endsteel
event.recipes.gtceu.assembler("kubejs:endsteel_card")
.itemInputs("2x gtceu:end_steel_single_wire", "laserio:energy_overclocker_card_tier_3", "6x gtceu:iron_plate")
.itemOutputs("4x laserio:energy_overclocker_card_tier_4")
.duration(80)
.EUt(16)
// Lumium
event.recipes.gtceu.assembler("kubejs:lumium_card")
.itemInputs("2x gtceu:lumium_single_wire", "laserio:energy_overclocker_card_tier_4", "6x gtceu:iron_plate")
.itemOutputs("4x laserio:energy_overclocker_card_tier_5")
.duration(80)
.EUt(16)
// Signalum
event.recipes.gtceu.assembler("kubejs:signalum_card")
.itemInputs("2x gtceu:signalum_single_wire", "laserio:energy_overclocker_card_tier_5", "6x gtceu:iron_plate")
.itemOutputs("4x laserio:energy_overclocker_card_tier_6")
.duration(80)
.EUt(16)
// Enderium
event.recipes.gtceu.assembler("kubejs:enderium_card")
.itemInputs("2x gtceu:enderium_single_wire", "laserio:energy_overclocker_card_tier_6", "6x gtceu:iron_plate")
.itemOutputs("4x laserio:energy_overclocker_card_tier_7")
.duration(80)
.EUt(16)
// Cryolobus
event.recipes.gtceu.assembler("kubejs:cryolobus_card")
.itemInputs("2x gtceu:cryolobus_single_wire", "laserio:energy_overclocker_card_tier_7", "6x gtceu:iron_plate")
.itemOutputs("4x laserio:energy_overclocker_card_tier_8")
.duration(80)
.EUt(16)
// Sculk Superconductor
event.recipes.gtceu.assembler("kubejs:sculk_superconductor_card")
.itemInputs("2x gtceu:sculk_superconductor_single_wire", "laserio:energy_overclocker_card_tier_8", "6x gtceu:iron_plate")
.itemOutputs("4x laserio:energy_overclocker_card_tier_9")
.duration(80)
.EUt(16)
})

View file

@ -0,0 +1,141 @@
/**
* Compat for the computercraft addon Advanced Peripherals
*/
const modid = "advancedperipherals"
if (Platform.isLoaded(modid) && Platform.isLoaded("computercraft")) {
console.log("Advanced peripherals found, loading compat scripts...")
ServerEvents.recipes(event => {
const replaceRecipe = (output, shape, dictionary) => {
const id = `${modid}:${output}`
event.remove({ id: id })
event.shaped(id, shape, dictionary)
}
replaceRecipe("peripheral_casing", [
"CMC",
"SLS",
"CMC"
], {
C: "computercraft:cable",
M: "computercraft:wired_modem",
S: "#gtceu:circuits/mv",
L: "gtceu:mv_machine_hull"
})
replaceRecipe("chat_box", [
"BEB",
"PCP",
"ASA"
], {
B: "minecraft:book",
E: "gtceu:mv_emitter",
P: "minecraft:ender_pearl",
C: `${modid}:peripheral_casing`,
A: "minecraft:paper",
S: "gtceu:mv_sensor"
})
replaceRecipe("energy_detector", [
"C C",
"TPT",
"C C"
], {
C: "gtceu:copper_single_cable",
T: "gtceu:mv_transformer_1a",
P: `${modid}:peripheral_casing`
})
event.remove({ id: `${modid}:environment_detector` })
const envDetectorRecipe = (plate) => {
event.shaped(`${modid}:environment_detector`, [
"PSP",
"SCS",
"DSD"
], {
P: plate,
S: "gtceu:lv_sensor",
C: `${modid}:peripheral_casing`,
D: "minecraft:dirt"
})
}
envDetectorRecipe("gtceu:nether_quartz_plate")
envDetectorRecipe("gtceu:certus_quartz_plate")
envDetectorRecipe("gtceu:quartzite_plate")
replaceRecipe("player_detector", [
"OSO",
"PCP",
"MSM"
], {
O: "minecraft:observer",
S: "gtceu:mv_sensor",
P: "minecraft:ender_pearl",
C: `${modid}:peripheral_casing`,
M: "minecraft:smooth_stone"
})
replaceRecipe("inventory_manager", [
"WEW",
"RPR",
"FCF"
], {
W: "ae2:wireless_receiver",
E: "minecraft:ender_pearl",
R: "gtceu:hv_robot_arm",
P: `${modid}:peripheral_casing`,
F: "gtceu:hv_field_generator",
C: "minecraft:chest"
})
replaceRecipe("block_reader", [
"PSP",
"ECM",
"PSP"
], {
P: "gtceu:steel_plate",
S: "gtceu:steel_screw",
E: "gtceu:mv_emitter",
C: `${modid}:peripheral_casing`,
M: "gtceu:mv_sensor"
})
replaceRecipe("nbt_storage", [
"PMP",
"SRS",
"PCP"
], {
P: "gtceu:steel_plate",
M: "computercraft:wired_modem",
S: "#gtceu:circuits/mv",
R: `${modid}:peripheral_casing`,
C: "minecraft:chest"
})
replaceRecipe("geo_scanner", [
"SPS",
"CRC",
"SDS"
], {
S: "gtceu:steel_screw",
P: "gtceu:prospector.lv",
C: "#gtceu:circuits/mv",
R: `${modid}:peripheral_casing`,
D: "minecraft:diamond"
})
replaceRecipe("me_bridge", [
"GIG",
"SCS",
"GTG"
], {
G: "ae2:fluix_glass_cable",
I: "ae2:interface",
S: "#gtceu:circuits/mv",
C: `${modid}:peripheral_casing`,
T: "ae2:pattern_provider"
})
})
console.log("Advacned peripherals compat scripts successfully loaded!")
} else { console.log("Advanced peripherals not found, skipping compat scripts. ") }

View file

@ -0,0 +1,416 @@
/**
*
* Compatibility Script for Architect's Palette
* Mainly removes Warping, but also adds various other recipes to GT machines.
*
*/
if (Platform.isLoaded("architects_palette")) {
console.log("Architect's Palette found, loading compat script...")
LootJS.modifiers((event) => {
event.addEntityLootModifier("minecraft:wither_skeleton").replaceLoot("architects_palette:withered_bone", "minecraft:bone", true);
});
ServerEvents.recipes(event => {
// Recipe Removal
event.remove([
{ id: "architects_palette:algal_blend" },
{ id: "architects_palette:algal_blend" },
{ id: "architects_palette:plating_block" },
{ id: "architects_palette:tread_plating" },
{ id: "architects_palette:nether_brass_blend" },
{ id: "architects_palette:oracle_jelly" },
{ id: "architects_palette:wardstone_blend" },
{ id: "architects_palette:cerebral_plate" },
{ id: "architects_palette:sunmetal_blend" },
{ id: "architects_palette:hazard_sign" },
{ id: "architects_palette:entwine_rod" },
{ id: "architects_palette:withered_bone" },
])
// For some reason the smelting recipe wouldn't go away so I went with the more direct approach.
event.remove({ output: "architects_palette:wardstone_brick" })
event.remove({ type: "architects_palette:warping" })
event.replaceInput(
{ input: "architects_palette:withered_bone" },
"architects_palette:withered_bone",
"kubejs:wither_bone"
)
// Mixer Recipes
event.recipes.gtceu.mixer("algal_blend")
.itemInputs("minecraft:clay_ball","minecraft:kelp")
.itemOutputs("4x architects_palette:algal_blend")
.duration(40)
.EUt(7)
event.recipes.gtceu.mixer("4x_algal_blend")
.itemInputs("minecraft:clay","2x minecraft:kelp")
.itemOutputs("16x architects_palette:algal_blend")
.duration(40)
.EUt(7)
event.recipes.gtceu.mixer("myonite")
.itemInputs("4x minecraft:stone","#forge:mushrooms")
.itemOutputs("8x architects_palette:myonite")
.duration(40)
.EUt(7)
event.recipes.gtceu.mixer("olivestone_bricks")
.itemInputs("8x minecraft:stone_bricks")
.inputFluids("gtceu:green_dye 72")
.itemOutputs("8x architects_palette:olivestone_bricks")
.duration(40)
.EUt(7)
event.recipes.gtceu.mixer("sunmetal_blend")
.itemInputs("minecraft:soul_sand", "gtceu:tiny_gold_dust")
.itemOutputs("4x architects_palette:sunmetal_blend")
.duration(20)
.EUt(8)
event.recipes.gtceu.mixer("sunmetal_blend_9x")
.itemInputs("9x minecraft:soul_sand", "gtceu:gold_dust")
.itemOutputs("36x architects_palette:sunmetal_blend")
.duration(100)
.EUt(8)
event.recipes.gtceu.mixer("nether_brass_blend")
.itemInputs("minecraft:soul_sand", "gtceu:copper_dust", "gtceu:tiny_iron_dust")
.itemOutputs("4x architects_palette:nether_brass_blend")
.duration(20)
.EUt(32)
event.recipes.gtceu.mixer("nether_brass_blend_9x")
.itemInputs("9x minecraft:soul_sand", "9x gtceu:copper_dust", "gtceu:iron_dust")
.itemOutputs("36x architects_palette:nether_brass_blend")
.duration(100)
.EUt(32)
event.recipes.gtceu.mixer("oracle_jelly")
.itemInputs("minecraft:chorus_fruit", "minecraft:sugar")
.itemOutputs("4x architects_palette:oracle_jelly")
.duration(20)
.EUt(8)
event.recipes.gtceu.mixer("oracle_bricks")
.itemInputs("8x architects_palette:oracle_bricks")
.inputFluids("gtceu:black_dye 72")
.itemOutputs("8x architects_palette:dark_oracle_bricks")
.duration(40)
.EUt(7)
// Alloy Smelter Recipes
event.recipes.gtceu.alloy_smelter("wardstone_brick")
.itemInputs("minecraft:soul_sand", "minecraft:gold_nugget")
.itemOutputs("4x architects_palette:sunmetal_brick")
.duration(20)
.EUt(8)
event.recipes.gtceu.alloy_smelter("sunmetal_brick")
.itemInputs("minecraft:lapis_lazuli", "minecraft:nether_wart")
.itemOutputs("4x architects_palette:wardstone_brick")
.duration(20)
.EUt(8)
event.recipes.gtceu.alloy_smelter("cerebral_plate")
.itemInputs("minecraft:tuff", "#minecraft:coals")
.itemOutputs("4x architects_palette:cerebral_plate")
.duration(20)
.EUt(8)
// Compressor Recipes
event.recipes.gtceu.compressor("agal_bricks")
.itemInputs("4x architects_palette:algal_brick")
.itemOutputs("architects_palette:algal_bricks")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("cerebral_block")
.itemInputs("4x architects_palette:cerebral_plate")
.itemOutputs("8x architects_palette:cerebral_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("oracle_block")
.itemInputs("4x architects_palette:oracle_jelly")
.itemOutputs("8x architects_palette:oracle_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("rotten_flesh_block")
.itemInputs("9x minecraft:rotten_flesh")
.itemOutputs("architects_palette:rotten_flesh_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("unobtanium_block")
.itemInputs("4x architects_palette:unobtanium")
.itemOutputs("architects_palette:unobtanium_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("sunmetal_block")
.itemInputs("4x architects_palette:sunmetal_brick")
.itemOutputs("4x architects_palette:sunmetal_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("nether_brass_block")
.itemInputs("4x architects_palette:nether_brass_ingot")
.itemOutputs("4x architects_palette:nether_brass_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("withered_bone_block")
.itemInputs("3x kubejs:wither_bone")
.itemOutputs("architects_palette:withered_bone_block")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("cod_log")
.itemInputs("4x minecraft:cod")
.itemOutputs("6x architects_palette:cod_log")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("salmon_log")
.itemInputs("4x minecraft:salmon")
.itemOutputs("6x architects_palette:salmon_log")
.duration(100)
.EUt(2)
event.recipes.gtceu.compressor("scute_block")
.itemInputs("4x minecraft:scute")
.itemOutputs("12x architects_palette:scute_block")
.duration(100)
.EUt(2)
// The One Lathe Recipe
event.recipes.gtceu.lathe("entwine_rod")
.itemInputs("minecraft:ender_pearl")
.itemOutputs("4x architects_palette:entwine_rod")
.duration(112)
.EUt(16)
// Forge Hammer Recipes
event.recipes.gtceu.forge_hammer("unobtanium")
.itemInputs("architects_palette:unobtanium_block")
.itemOutputs("5x architects_palette:unobtanium")
.duration(60)
.EUt(7)
event.recipes.gtceu.forge_hammer("withered_bone")
.itemInputs("architects_palette:withered_bone_block")
.itemOutputs("3x kubejs:wither_bone")
.duration(60)
.EUt(7)
// Assembler Recipes
event.recipes.gtceu.assembler("abyssaline")
.itemInputs("2x minecraft:obsidian", "2x minecraft:prismarine_shard")
.itemOutputs("12x architects_palette:abyssaline")
.duration(100)
.EUt(32)
event.recipes.gtceu.assembler("plating_block")
.circuit(24)
.itemInputs("4x minecraft:iron_nugget", "gtceu:iron_plate")
.itemOutputs("8x architects_palette:plating_block")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("tread_plate")
.circuit(23)
.itemInputs("4x minecraft:iron_nugget", "architects_palette:plating_block")
.itemOutputs("8x architects_palette:tread_plate")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("bread_block")
.circuit(1)
.itemInputs("minecraft:hay_block")
.itemOutputs("3x architects_palette:bread_block")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("spool")
.circuit(2)
.itemInputs("minecraft:stick", "minecraft:white_wool")
.itemOutputs("2x architects_palette:spool")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("coarse_snow")
.itemInputs("minecraft:gravel", "minecraft:snow_block")
.itemOutputs("4x architects_palette:coarse_snow")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("molten_nether_bricks")
.itemInputs("minecraft:nether_bricks", "minecraft:magma_block")
.itemOutputs("4x architects_palette:molten_nether_bricks")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("sunstone")
.itemInputs("minecraft:basalt", "architects_palette:sunmetal_blend")
.itemOutputs("4x architects_palette:sunstone")
.duration(40)
.EUt(32)
event.recipes.gtceu.assembler("hazard_sign")
.circuit(23)
.itemInputs("minecraft:iron_nugget", "gtceu:iron_plate")
.itemOutputs("4x architects_palette:hazard_sign")
.duration(40)
.EUt(32)
// Atomic Reconstructor Recipes
event.recipes.gtceu.atomic_reconstruction("unobtanium")
.itemInputs("minecraft:netherite_ingot")
.itemOutputs("architects_palette:unobtanium")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("twisted_sapling")
.itemInputs("#minecraft:saplings")
.itemOutputs("architects_palette:twisted_sapling")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("warpstone")
.itemInputs("minecraft:clay")
.itemOutputs("architects_palette:warpstone")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("hadaline")
.itemInputs("architects_palette:abyssaline")
.itemOutputs("architects_palette:hadaline")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("moonstone")
.itemInputs("architects_palette:sunstone")
.itemOutputs("architects_palette:moonstone")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("sunstone")
.itemInputs("architects_palette:moonstone")
.itemOutputs("architects_palette:sunstone")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("onyx")
.itemInputs("minecraft:granite")
.itemOutputs("architects_palette:onyx")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("nebulite")
.itemInputs("minecraft:diorite")
.itemOutputs("architects_palette:nebulite")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("craterstone")
.itemInputs("minecraft:cobblestone")
.itemOutputs("architects_palette:craterstone")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("esoterrack")
.itemInputs("minecraft:andesite")
.itemOutputs("architects_palette:esoterrack")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("moonshale")
.itemInputs("minecraft:stone")
.itemOutputs("architects_palette:moonshale")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("hadaline_lamp")
.itemInputs("architects_palette:abyssaline_lamp")
.itemOutputs("architects_palette:hadaline_lamp")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("entrails")
.itemInputs("architects_palette:rotten_flesh_block")
.itemOutputs("architects_palette:entrails")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("initial_monazite_rod")
.itemInputs("gtceu:monazite_gem")
.itemOutputs("architects_palette:monazite_rod")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("monazite_rod")
.itemInputs("architects_palette:heliodor_rod")
.itemOutputs("architects_palette:monazite_rod")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("ekanite_rod")
.itemInputs("architects_palette:monazite_rod")
.itemOutputs("architects_palette:ekanite_rod")
.duration(20)
.EUt(32)
event.recipes.gtceu.atomic_reconstruction("heliodor_rod")
.itemInputs("architects_palette:ekanite_rod")
.itemOutputs("architects_palette:heliodor_rod")
.duration(20)
.EUt(32)
// Twisted Wood Recipes
event.recipes.gtceu.greenhouse("twisted_sapling")
.circuit(1)
.notConsumable(InputItem.of(Item.of("architects_palette:twisted_sapling")))
.inputFluids("minecraft:water 24000")
.itemOutputs("64x architects_palette:twisted_log", "4x architects_palette:twisted_sapling")
.duration(1280)
.EUt(80)
event.recipes.gtceu.greenhouse("twisted_sapling_boosted")
.circuit(2)
.notConsumable(InputItem.of(Item.of("architects_palette:twisted_sapling")))
.itemInputs("1x gtceu:fertilizer")
.inputFluids("minecraft:water 16000")
.itemOutputs("64x architects_palette:twisted_log", "64x architects_palette:twisted_log", "4x architects_palette:twisted_sapling")
.duration(640)
.EUt(80)
event.recipes.gtceu.cutter("water_twisted_planks")
.itemInputs("#architects_palette:twisted_logs")
.inputFluids("minecraft:water 4")
.itemOutputs("6x architects_palette:twisted_planks", "2x gtceu:wood_dust")
.duration(400)
.EUt(7)
event.recipes.gtceu.cutter("water_distilled_twisted_planks")
.itemInputs("#architects_palette:twisted_logs")
.inputFluids("gtceu:distilled_water 3")
.itemOutputs("6x architects_palette:twisted_planks", "2x gtceu:wood_dust")
.duration(300)
.EUt(7)
event.recipes.gtceu.cutter("lubricant_twisted_planks")
.itemInputs("#architects_palette:twisted_logs")
.inputFluids("gtceu:lubricant 1")
.itemOutputs("6x architects_palette:twisted_planks", "2x gtceu:wood_dust")
.duration(200)
.EUt(7)
})
console.log("Architect's Palette Loaded!")
}

View file

@ -0,0 +1,67 @@
/**
* Optional compat script for Compact Machines
*
* Modeled after Nomifactory CEu's script for the same.
* Gated to HV, with more unlocked at IV.
*
* Replaces or modifies the recipe for every item in the mod.
*/
if (Platform.isLoaded("compactmachines")) {
console.log("Compact Machines found, loading compat scripts...")
ServerEvents.recipes(event => {
// Recipe modification for Personal Shrinking Device
event.replaceInput({ id: "compactmachines:personal_shrinking_device" }, "#forge:glass_panes", "gtceu:computer_monitor_cover")
// Compact Machine Wall recipes. HV recipe + more efficient EV recipe
event.remove({ output: "compactmachines:wall" })
event.recipes.gtceu.assembler("compactmachines:wall")
.itemInputs("9x gtceu:blue_steel_plate", "1x gtceu:ultimet_frame", "1x gtceu:mv_sensor")
.itemOutputs("4x compactmachines:wall")
.duration(40)
.EUt(GTValues.VHA[GTValues.HV])
event.recipes.gtceu.assembler("compactmachines:wall_alt")
.itemInputs("9x gtceu:maraging_steel_300_plate", "2x gtceu:ultimet_frame", "1x gtceu:hv_sensor")
.itemOutputs("16x compactmachines:wall")
.duration(40)
.EUt(GTValues.VHA[GTValues.IV])
// Recipes for all tiers of Compact Machine
const machineSizes = [
{ size: "tiny", material: "#forge:storage_blocks/copper" },
{ size: "small", material: "#forge:storage_blocks/iron" },
{ size: "normal", material: "#forge:storage_blocks/gold" },
{ size: "large", material: "minecraft:obsidian" },
{ size: "giant", material: "#forge:storage_blocks/diamond" },
{ size: "maximum", material: "#forge:storage_blocks/netherite" },
]
machineSizes.forEach((value, index) => {
event.recipes.gtceu.assembler(`compactmachines:machine_${value.size}`)
.itemInputs(Item.of("compactmachines:wall", 4 * (index + 1)), (index > 2 ? "gtceu:tungsten_frame" : "gtceu:dark_steel_frame"), value.material, `2x gtceu:${GTValues.VN[index + 1].toLowerCase()}_field_generator`, (index > 2 ? Item.of("gtceu:quantum_eye", 2 ** (index - 2)) : Item.of("minecraft:ender_eye", 2 ** index)))
.inputFluids(`gtceu:styrene_butadiene_rubber ${144 * (index + 1)}`)
.itemOutputs(`compactmachines:machine_${value.size}`)
.duration(200)
.EUt(GTValues.VA[index + 1])
})
// Recipes for tunnels
const tunnelTypes = [
{ type: "item", hatch: "gtceu:hv_item_passthrough_hatch", nbt: '{definition:{id:"compactmachines:item"}}' },
{ type: "fluid", hatch: "gtceu:hv_fluid_passthrough_hatch", nbt: '{definition:{id:"compactmachines:fluid"}}' },
{ type: "energy", hatch: "gtceu:hv_diode", nbt: '{definition:{id:"compactmachines:energy"}}' },
// {type: "redstone", hatch: "enderio:redstone_conduit", nbt: '{definition:{id:"compactmachines:redstone"}}'} // Redstone tunnel NYI :(
]
tunnelTypes.forEach(value => {
event.remove({ id: `compactmachines:tunnels/${value.type}` })
event.recipes.gtceu.assembler(`compactmachines:tunnel_${value.type}`)
.itemInputs("2x compactmachines:wall", value.hatch, "gtceu:quantum_eye")
.itemOutputs(Item.of("compactmachines:tunnel", 2, value.nbt))
.duration(100)
.EUt(GTValues.VHA[GTValues.HV])
})
})
console.log("Compact Machines compat scripts successfully loaded!")
} else { console.log("Compact Machines not found, skipping its compat scripts.") }

View file

@ -0,0 +1,201 @@
/**
* Compat for the computercraft mod
*/
if (Platform.isLoaded("computercraft")) {
console.log("Computercraft Tweaked found, loading compat scripts...")
ServerEvents.recipes(event => {
// Nomral Computer
event.remove({ id: "computercraft:computer_normal" })
event.shaped("computercraft:computer_normal", [
"SSS",
"SNS",
"SCS"
], {
S: "gtceu:steel_plate",
C: "gtceu:computer_monitor_cover",
N: "#gtceu:circuits/hv",
})
// Advanced Computer
event.remove({ id: "computercraft:computer_advanced" })
event.remove({ id: "computercraft:computer_advanced_upgrade" })
event.shaped("computercraft:computer_advanced", [
"SSS",
"SNS",
"SCS"
], {
S: "gtceu:electrum_plate",
C: "computercraft:computer_normal",
N: "#gtceu:circuits/ev",
})
// Turtle
event.remove({ id: "computercraft:turtle_normal" })
event.shaped("computercraft:turtle_normal", [
" ",
"RCA",
" E "
], {
R: "gtceu:stainless_steel_crate",
A: "gtceu:hv_robot_arm",
C: "computercraft:computer_normal",
E: "gtceu:hv_conveyor_module",
})
// Advanced Turtle
event.remove({ id: "computercraft:turtle_advanced" })
event.remove({ id: "computercraft:turtle_advanced_upgrade" })
event.shaped("computercraft:turtle_advanced", [
" ",
"RCA",
" E "
], {
R: "gtceu:titanium_crate",
A: "gtceu:ev_robot_arm",
C: "computercraft:computer_advanced",
E: "gtceu:ev_conveyor_module",
})
// Ender Modem
event.remove({ id: "computercraft:wireless_modem_advanced" })
event.shaped("computercraft:wireless_modem_advanced", [
" E ",
"BSB",
"PPP"
], {
B: "gtceu:electrum_bolt",
P: "gtceu:electrum_plate",
S: "gtceu:hv_sensor",
E: "gtceu:hv_emitter",
})
// Wireless Modem
event.remove({ id: "computercraft:wireless_modem_normal" })
event.shaped("computercraft:wireless_modem_normal", [
" E ",
"BSB",
"PPP"
], {
B: "gtceu:steel_bolt",
P: "gtceu:steel_plate",
S: "gtceu:mv_sensor",
E: "gtceu:mv_emitter",
})
// Speaker
event.remove({ id: "computercraft:speaker" })
event.shaped("computercraft:speaker", [
"PWP",
"PNP",
"PCP"
], {
W: "gtceu:copper_single_wire",
N: "minecraft:note_block",
P: "gtceu:steel_plate",
C: "gtceu:carbon_fiber_mesh",
})
// Monitor
event.remove({ id: "computercraft:monitor_normal" })
event.shaped("computercraft:monitor_normal", [
"PHP",
"PCP",
"PPP"
], {
P: "gtceu:steel_plate",
C: "gtceu:computer_monitor_cover",
H: "gtceu:mv_machine_hull",
})
// Advanced Monitor
event.remove({ id: "computercraft:monitor_advanced" })
event.shaped("computercraft:monitor_advanced", [
"PHP",
"PCP",
"PPP"
], {
P: "gtceu:electrum_plate",
C: "gtceu:computer_monitor_cover",
H: "gtceu:hv_machine_hull",
})
// Pocket Computer
event.remove({ id: "computercraft:pocket_computer_normal" })
event.shaped("computercraft:pocket_computer_normal", [
" ",
" C ",
" T "
], {
T: "gtceu:terminal",
C: "computercraft:computer_normal",
})
// Advanced Pocket Computer
event.remove({ id: "computercraft:pocket_computer_advanced" })
event.remove({ id: "computercraft:pocket_computer_advanced_upgrade" })
event.shaped("computercraft:pocket_computer_advanced", [
" ",
" C ",
" T "
], {
T: "gtceu:terminal",
C: "computercraft:computer_advanced",
})
// Printer
event.remove({ id: "computercraft:printer" })
event.shaped("computercraft:printer", [
"PHP",
"PIM",
"PCC"
], {
P: "gtceu:steel_plate",
H: "gtceu:mv_machine_hull",
I: "gtceu:mv_electric_piston",
C: "gtceu:mv_conveyor_module",
M: "gtceu:mv_electric_motor",
})
// Wired Modem
event.remove({ id: "computercraft:wired_modem" })
event.shaped("computercraft:wired_modem", [
"PPP",
"ECC",
"PPP"
], {
P: "gtceu:steel_plate",
E: "gtceu:mv_emitter",
C: "computercraft:cable",
})
// Netowrking Cable
event.remove({ id: "computercraft:cable" })
event.recipes.gtceu.assembler("computercraft_cable")
.itemInputs("3x gtceu:steel_foil", "6x gtceu:fine_copper_wire")
.inputFluids("gtceu:polyethylene 144")
.itemOutputs("6x computercraft:cable")
.duration(100)
.EUt(7)
// Disk Drive
event.remove({ id: "computercraft:disk_drive" })
event.shaped("computercraft:disk_drive", [
"PHP",
"PBP",
"PBP"
], {
P: "gtceu:steel_plate",
H: "gtceu:mv_machine_hull",
B: "gtceu:lv_input_bus",
})
})
console.log("Computercraft Tweaked compat scripts successfully loaded!")
} else { console.log("Computercraft Tweaked not found, skipping its compat scripts.") }

View file

@ -0,0 +1,290 @@
/**
* Compat for the create mod
*/
if (Platform.isLoaded("create")) {
console.log("Create found, loading compat scripts...")
ServerEvents.recipes(event => {
// Removes any machines related to processing, the point of this compat is fun not functionality,
/* Removes recipes for machines that were not removed, deployers and mechanical crafters are fun!
Most recipe categories that are removed machines are hidden in
kubejs/assets/emi/recipe/filters/hidecategories.json as opposed to removing the actual recipes */
event.remove({ type: "create:deploying" })
event.remove({ type: "create:milling" })
event.remove({ type: "create:crushing" })
event.remove({ id: "create:crafting/kinetics/millstone" })
// event.remove({id: 'create:mechanical_crafting/crushing_wheel'}) //mechanical roller uses this for now
event.remove({ id: "create:crafting/kinetics/mechanical_mixer" })
event.remove({ id: "create:crafting/kinetics/mechanical_press" })
// Remove the hand crank since it's easy to abuse contraptions using it
event.remove({ id: "create:crafting/kinetics/hand_crank" })
// w h a t ?
event.remove({ id: "gtceu:shaped/lv_kinetic_mixer" })
event.remove({ id: "gtceu:shaped/mv_kinetic_mixer" })
event.remove({ id: "gtceu:shaped/hv_kinetic_mixer" })
event.remove({ id: "gtceu:shaped/ev_kinetic_mixer" })
// belts made with rubber
let kelpRecipes = [
"create:crafting/kinetics/belt_connector",
"create:crafting/logistics/andesite_funnel",
"create:crafting/logistics/brass_funnel",
"create:crafting/logistics/andesite_tunnel",
"create:crafting/logistics/brass_tunnel"
]
kelpRecipes.forEach(id => { event.replaceInput({ id: id }, "minecraft:dried_kelp", "gtceu:rubber_plate") })
event.replaceInput({ id: "create:crafting/kinetics/spout" }, "minecraft:dried_kelp", "gtceu:rubber_ring")
// Adds some create recipes to gt machines
event.recipes.gtceu.mixer("kubejs:andesite_alloy_from_iron")
.itemInputs("#forge:nuggets/iron", "minecraft:andesite")
.itemOutputs("create:andesite_alloy")
.duration(100)
.EUt(7)
event.recipes.gtceu.mixer("kubejs:andesite_alloy_from_zinc")
.itemInputs("#forge:nuggets/zinc", "minecraft:andesite")
.itemOutputs("create:andesite_alloy")
.duration(100)
.EUt(7)
// Pressing and compacting recipes
event.recipes.gtceu.forge_hammer("kubejs:dirt_path")
.itemInputs(["minecraft:dirt", "minecraft:grass"])
.itemOutputs("minecraft:dirt_path")
.duration(10)
.EUt(2)
event.recipes.gtceu.fluid_solidifier("kubejs:bar_of_chocolate")
.inputFluids(Fluid.of("create:chocolate", 250))
.notConsumable("gtceu:ingot_casting_mold")
.itemOutputs("create:bar_of_chocolate")
.duration(20)
.EUt(7)
let honeyFluid = new JSONObject()
honeyFluid.add("amount", 1000)
honeyFluid.add("value", { tag: "forge:honey" })
event.recipes.gtceu.fluid_solidifier("kubejs:honey_block")
.inputFluids(FluidIngredientJS.of(honeyFluid))
.notConsumable("gtceu:block_casting_mold")
.itemOutputs("minecraft:honey_block")
.duration(5)
.EUt(7)
event.recipes.gtceu.mixer("kubejs:blaze_cake_base")
.itemInputs("minecraft:egg", "minecraft:sugar", "create:cinder_flour")
.itemOutputs("create:blaze_cake_base")
.duration(200)
.EUt(7)
let milkFluid = new JSONObject()
milkFluid.add("amount", 250)
milkFluid.add("value", { tag: "forge:milk" })
event.recipes.gtceu.mixer("kubejs:liquid_chocolate")
.itemInputs("minecraft:sugar", "minecraft:cocoa_beans")
.inputFluids(FluidIngredientJS.of(milkFluid))
.outputFluids(Fluid.of("create:chocolate", 250))
.duration(200)
.EUt(7)
event.recipes.gtceu.mixer("kubejs:tea")
.itemInputs("#minecraft:leaves")
.inputFluids(Fluid.of("minecraft:water", 250), FluidIngredientJS.of(milkFluid))
.outputFluids(Fluid.of("create:tea", 500))
.duration(200)
.EUt(7)
event.recipes.gtceu.extractor("kubejs:extract_bar_of_chocolate")
.itemInputs("create:bar_of_chocolate")
.outputFluids(Fluid.of("create:chocolate", 250))
.duration(10)
.EUt(4)
event.recipes.gtceu.extractor("kubejs:extract_honey_block")
.itemInputs("minecraft:honey_block")
.outputFluids(Fluid.of("create:honey", 1000))
.duration(10)
.EUt(4)
// Sequenced assembly but awesome
event.recipes.gtceu.assembler("kubejs:precision_mechanism")
.itemInputs("#forge:plates/gold", "5x create:cogwheel", "5x create:large_cogwheel", "5x minecraft:iron_nugget")
.itemOutputs("create:precision_mechanism")
.duration(300)
.EUt(30)
.circuit(5)
// That was actually awesome
// adding mechanical crafter stuff
event.recipes.gtceu.assembler("kubejs:extendo_grip")
.itemInputs("create:precision_mechanism", "create:brass_hand", "6x minecraft:stick", "#forge:ingots/brass")
.itemOutputs("create:extendo_grip")
.duration(600)
.EUt(120)
event.recipes.gtceu.assembler("kubejs:potato_cannon")
.itemInputs("create:precision_mechanism", "create:andesite_alloy", "3x create:fluid_pipe", "2x #forge:ingots/copper")
.itemOutputs("create:potato_cannon")
.duration(600)
.EUt(120)
event.recipes.gtceu.assembler("kubejs:wand_of_symmetry")
.itemInputs("create:precision_mechanism", "minecraft:obsidian", "3x minecraft:glass", "#forge:ingots/brass", "minecraft:ender_pearl")
.itemOutputs("create:wand_of_symmetry")
.duration(600)
.EUt(120)
event.recipes.gtceu.autoclave("kubejs:rose_quartz")
.itemInputs("minecraft:quartz")
.itemOutputs("create:rose_quartz")
.inputFluids("gtceu:redstone 1152")
.duration(200)
.EUt(16)
.circuit(6)
event.recipes.gtceu.sifter("kubejs:polished_rose_quartz")
.itemInputs("create:rose_quartz")
.itemOutputs("create:polished_rose_quartz")
.duration(200)
.EUt(16)
// deploying recipes
let assembleCasing = function (input, casingName, logInput, casingModId) {
logInput = (logInput) ? logInput : "#minecraft:logs"
casingModId = (casingModId) ? casingModId : "create"
// recipes can use unstripped logs since gt has no way to strip wood
return event.recipes.gtceu.assembler(`kubejs:${casingName}`)
.itemInputs(input, logInput)
.itemOutputs(`${casingModId}:${casingName}`)
.duration(100)
.EUt(16)
}
assembleCasing("create:andesite_alloy", "andesite_casing")
assembleCasing("#forge:ingots/brass", "brass_casing")
assembleCasing("minecraft:copper_ingot", "copper_casing")
assembleCasing("#forge:plates/obsidian", "railway_casing", "create:brass_casing")
// Tracks
if (!Platform.isLoaded("railways")) {
// Only do this block if Steam and Rails is not loaded. Else, let the Steam and Rails KJS file handle the track recipes.
event.remove({ output: "create:track" })
event.shaped("create:track", [
" ",
"IHI",
"SSS"
], {
H: "#forge:tools/hammers",
I: "minecraft:iron_nugget",
S: "#create:sleepers"
})
event.recipes.gtceu.assembler("kubejs:createtracks")
.itemInputs("3x #create:sleepers", "2x minecraft:iron_nugget")
.itemOutputs("2x create:track")
.duration(5)
.EUt(16)
} else { console.log("Steam and Rails is present, letting its compat script handle the track recipes.") }
// stone variant rock crusher recipes
let rockCrushing = function (modName, itemName, EUt) {
return event.recipes.gtceu.rock_breaker(`kubejs:${itemName}`)
.notConsumable(`${modName}:${itemName}`)
.itemOutputs(`${modName}:${itemName}`)
.addDataString("fluidA", "minecraft:lava")
.addDataString("fluidB", "minecraft:water")
.duration(16)
.EUt(EUt)
.addCondition(RockBreakerCondition.INSTANCE)
}
rockCrushing("minecraft", "dripstone_block", 60)
rockCrushing("minecraft", "tuff", 60)
rockCrushing("minecraft", "calcite", 60)
rockCrushing("create", "asurine", 60)
rockCrushing("create", "crimsite", 60)
rockCrushing("create", "limestone", 60)
rockCrushing("create", "ochrum", 60)
rockCrushing("create", "scoria", 480)
rockCrushing("create", "scorchia", 480)
rockCrushing("create", "veridium", 60)
// stone variant reconstruction recipes
let owStone = [["minecraft", "stone"], ["create", "asurine"], ["create", "crimsite"], ["create", "limestone"], ["create", "ochrum"], ["create", "veridium"], ["minecraft", "stone"]]
let neStone = [["minecraft", "blackstone"], ["create", "scoria"], ["create", "scorchia"], ["minecraft", "blackstone"]]
for (let i = 0; i < owStone.length - 1; ++i) {
event.recipes.gtceu.atomic_reconstruction(`kubejs:stone_reconstruction/${owStone[i][1]}`)
.itemInputs(`${owStone[i][0]}:${owStone[i][1]}`)
.itemOutputs(`${owStone[i + 1][0]}:${owStone[i + 1][1]}`)
.duration(20)
.EUt(32)
}
for (let i = 0; i < neStone.length - 1; ++i) {
event.recipes.gtceu.atomic_reconstruction(`kubejs:stone_reconstruction/${neStone[i][1]}`)
.itemInputs(`${neStone[i][0]}:${neStone[i][1]}`)
.itemOutputs(`${neStone[i + 1][0]}:${neStone[i + 1][1]}`)
.duration(20)
.EUt(32)
}
// remove unused recipe types
event.remove({ type: "create:pressing" })
event.remove({ type: "create:compacting" })
event.remove({ type: "create:milling" })
event.remove({ type: "create:crushing" })
event.remove({ type: "create:mixing" })
// Deploying recipes are fine
// Remove sawing recipes. Mechanical saws can still be used for stonecutting and in world tree cutting
event.remove({ type: "create:cutting" })
// Packager and Logistics
event.shaped("create:packager", [
"S S",
"SCS",
"SLS"
], {
L: "#gtceu:circuits/lv",
C: "create:cardboard_block",
S: "gtceu:steel_plate"
}).id("create:crafting/logistics/packager")
event.shaped("create:stock_ticker", [
" G ",
" C ",
" L "
], {
L: "#gtceu:circuits/mv",
C: "create:stock_link",
G: "#forge:glass"
}).id("create:crafting/logistics/stock_ticker")
event.shapeless("2x create:factory_gauge ", ["create:stock_link", "create:precision_mechanism", "#gtceu:circuits/hv"]).id("create:crafting/logistics/factory_gauge")
// Pulp
event.shaped("2x create:pulp", [
" ",
"RRR",
" H "
], {
H: "#forge:tools/mortars",
R: "gtceu:plant_ball"
})
event.recipes.gtceu.mixer("kubejs:pulp_wood")
.itemInputs("gtceu:wood_dust")
.inputFluids("minecraft:water 100")
.itemOutputs("create:pulp")
.duration(100)
.EUt(16)
.circuit(1)
event.recipes.gtceu.compressor("kubejs:pulp_plant")
.itemInputs("gtceu:plant_ball")
.itemOutputs("create:pulp")
.duration(20)
.EUt(2)
event.smelting("create:cardboard", "create:pulp")
})
console.log("Create compat scripts successfully loaded!")
} else { console.log("Create was not found, skipping its compat scripts.") }

Some files were not shown because too many files have changed in this diff Show more