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

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.") }

View file

@ -0,0 +1,270 @@
/**
* Recipe compat for the funni railways mod
*/
if (Platform.isLoaded("railways")) {
console.log("Create: Steam and Rails found, loading compat script...")
ServerEvents.tags("item", event => {
// normal rails
event.add("kubejs:create_tracks", "create:track");
event.add("kubejs:create_tracks", "railways:track_oak");
event.add("kubejs:create_tracks", "railways:track_birch");
event.add("kubejs:create_tracks", "railways:track_acacia");
event.add("kubejs:create_tracks", "railways:track_dark_oak");
event.add("kubejs:create_tracks", "railways:track_jungle");
event.add("kubejs:create_tracks", "railways:track_spruce");
event.add("kubejs:create_tracks", "railways:track_mangrove");
event.add("kubejs:create_tracks", "railways:track_warped");
event.add("kubejs:create_tracks", "railways:track_crimson");
event.add("kubejs:create_tracks", "railways:track_blackstone");
event.add("kubejs:create_tracks", "railways:track_ender");
event.add("kubejs:create_tracks", "railways:track_tieless");
event.add("kubejs:create_tracks", "railways:track_phantom");
event.add("kubejs:create_tracks", "railways:track_cherry");
event.add("kubejs:create_tracks", "railways:track_bamboo");
event.add("kubejs:create_tracks", "railways:track_stripped_bamboo");
event.add("kubejs:create_tracks", "railways:track_monorail");
// wide rails
event.add("kubejs:create_tracks", "railways:track_create_andesite_wide");
event.add("kubejs:create_tracks", "railways:track_acacia_wide");
event.add("kubejs:create_tracks", "railways:track_birch_wide");
event.add("kubejs:create_tracks", "railways:track_dark_oak_wide");
event.add("kubejs:create_tracks", "railways:track_jungle_wide");
event.add("kubejs:create_tracks", "railways:track_oak_wide");
event.add("kubejs:create_tracks", "railways:track_spruce_wide");
event.add("kubejs:create_tracks", "railways:track_mangrove_wide");
event.add("kubejs:create_tracks", "railways:track_warped_wide");
event.add("kubejs:create_tracks", "railways:track_crimson_wide");
event.add("kubejs:create_tracks", "railways:track_blackstone_wide");
event.add("kubejs:create_tracks", "railways:track_ender_wide");
event.add("kubejs:create_tracks", "railways:track_tieless_wide");
event.add("kubejs:create_tracks", "railways:track_cherry_wide");
event.add("kubejs:create_tracks", "railways:track_bamboo_wide");
event.add("kubejs:create_tracks", "railways:track_stripped_bamboo_wide");
// narrow rails
event.add("kubejs:create_tracks", "railways:track_create_andesite_narrow");
event.add("kubejs:create_tracks", "railways:track_acacia_narrow");
event.add("kubejs:create_tracks", "railways:track_birch_narrow");
event.add("kubejs:create_tracks", "railways:track_dark_oak_narrow");
event.add("kubejs:create_tracks", "railways:track_jungle_narrow");
event.add("kubejs:create_tracks", "railways:track_oak_narrow");
event.add("kubejs:create_tracks", "railways:track_spruce_narrow");
event.add("kubejs:create_tracks", "railways:track_mangrove_narrow");
event.add("kubejs:create_tracks", "railways:track_warped_narrow");
event.add("kubejs:create_tracks", "railways:track_crimson_narrow");
event.add("kubejs:create_tracks", "railways:track_blackstone_narrow");
event.add("kubejs:create_tracks", "railways:track_ender_narrow");
event.add("kubejs:create_tracks", "railways:track_tieless_narrow");
event.add("kubejs:create_tracks", "railways:track_cherry_narrow");
event.add("kubejs:create_tracks", "railways:track_bamboo_narrow");
event.add("kubejs:create_tracks", "railways:track_stripped_bamboo_narrow");
if (Platform.isLoaded("biomesoplenty")) { // fuck it, we BoP
// normal rails
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_dead");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_fir");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_hellbark");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_jacaranda");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_magic");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_mahogany");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_palm");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_redwood");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_umbran");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_willow");
// wide rails
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_dead_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_fir_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_hellbark_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_jacaranda_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_magic_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_mahogany_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_palm_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_redwood_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_umbran_wide");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_willow_wide");
// narrow rails
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_dead_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_fir_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_hellbark_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_jacaranda_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_magic_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_mahogany_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_palm_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_redwood_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_umbran_narrow");
event.add("kubejs:create_tracks", "railways:track_biomesoplenty_willow_narrow");
}
})
ServerEvents.recipes(event => {
event.remove({ output: "#kubejs:create_tracks" }) // KILL 'EM ALL! - demoman tf2
/**
* Creates a shaped crafting recipe and a Gregtech Assembler recipe, both to make normal-gauge tracks.
* @param {string} sleeperItem A ResourceLocation of the item representing the sleeper/tie of the track. Will typically be a slab.
* @param {string} outputItem A ResourceLocation of the normal-gauge track item to be output by the recipes.
* @param {string} railItem A ResourceLocation of the item used as the rails themselves. Typically an iron or gold nugget, to stay in line with base Create.
* @param {int} outputCount How many normal-gauge track items that will be outputted by the recipes. Is multiplied by two for the assembler recipe, to incentivise automation.
*/
let normalTrackRecipes = function (sleeperItem, outputItem, railItem, outputCount) {
event.shaped(`${outputCount}x ${outputItem}`, [
" ",
"IHI",
"SSS"
], {
H: "#forge:tools/hammers",
I: `${railItem}`,
S: `${sleeperItem}`
});
event.recipes.gtceu.assembler(`kubejs:${outputItem.replace(/^.*:/, "")}`)
.itemInputs(
`3x ${sleeperItem}`,
`2x ${railItem}`
)
.itemOutputs(`${outputCount * 2}x ${outputItem}`)
.duration(5)
.EUt(16); // Low Voltage
};
/**
* Creates a shaped crafting recipe and a Gregtech Assembler recipe, both to make wide-gauge tracks.
* @param {string} inputTrackItem A ResourceLocation of the track item used in the recipe, to be 'widened'.
* @param {string} sleeperItem A ResourceLocation of the item representing the sleeper/tie of the track. Will typically be a slab.
* @param {string} outputItem A ResourceLocation of the wide-gauge track item to be output by the recipes.
* @param {int} outputCount How many wide-gauge track items that will be outputted by the recipes. Is multiplied by two for the assembler recipe, to incentivise automation.
*/
let wideTrackRecipes = function (inputTrackItem, sleeperItem, outputItem, outputCount) {
event.shaped(`${outputCount}x ${outputItem}`, [
" ",
" H ",
"STS"
], {
H: "#forge:tools/hammers",
S: `${sleeperItem}`,
T: `${inputTrackItem}`
});
event.recipes.gtceu.assembler(`kubejs:${outputItem.replace(/^.*:/, "")}`)
.itemInputs(
`2x ${sleeperItem}`,
`1x ${inputTrackItem}`
)
.itemOutputs(`${outputCount * 2}x ${outputItem}`)
.duration(5)
.EUt(16); // Low Voltage
};
/**
* Creates a shaped crafting recipe and a Gregtech Cutter recipe, both to make narrow-gauge tracks.
* @param {string} inputTrackItem A ResourceLocation of the track item used in the recipe, to be narrowed.
* @param {string} outputItem A ResourceLocation of the narrow-gauge track item to be output by the recipes.
* @param {string} sleeperOutputItem A ResourceLocation of the item representing the sleeper/tie of the track, to be (sometimes) recovered from the Gregtech Cutter recipe. Will typically be a slab.
* @param {int} outputCount How many narrow-gauge track items that will be outputted by the recipes. Is multiplied by two for the assembler recipe, to incentivise automation.
*/
let narrowTrackRecipes = function (inputTrackItem, outputItem, sleeperOutputItem, outputCount) {
event.shaped(`${outputCount}x ${outputItem}`, [
" ",
" H ",
" T "
], {
H: "#forge:tools/saws",
T: `${inputTrackItem}`,
});
event.recipes.gtceu.cutter(`kubejs:${outputItem.replace(/^.*:/, "")}`)
.itemInputs(`${inputTrackItem}`)
.itemOutputs(`${outputCount}x ${outputItem}`)
.chancedOutput(`${sleeperOutputItem}`, 3000, 500) // 30% chance initially, increases by 5% for each voltage tier
.duration(5)
.EUt(16); // Low Voltage
};
// Normal-gauge tracks
normalTrackRecipes("#create:sleepers", "create:track", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:acacia_slab", "railways:track_acacia", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:birch_slab", "railways:track_birch", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:dark_oak_slab", "railways:track_dark_oak", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:jungle_slab", "railways:track_jungle", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:oak_slab", "railways:track_oak", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:spruce_slab", "railways:track_spruce", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:mangrove_slab", "railways:track_mangrove", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:warped_slab", "railways:track_warped", "minecraft:gold_nugget", 1);
normalTrackRecipes("minecraft:crimson_slab", "railways:track_crimson", "minecraft:gold_nugget", 1);
normalTrackRecipes("minecraft:blackstone_slab", "railways:track_blackstone", "minecraft:gold_nugget", 1);
normalTrackRecipes("minecraft:end_stone_brick_slab", "railways:track_ender", "gtceu:enderium_nugget" /* just for shits and giggles */, 1);
normalTrackRecipes("minecraft:glass_pane", "railways:track_tieless", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:phantom_membrane", "railways:track_phantom", "minecraft:iron_ingot", 16);
normalTrackRecipes("minecraft:cherry_slab", "railways:track_cherry", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:bamboo", "railways:track_bamboo", "minecraft:iron_nugget", 1);
normalTrackRecipes("minecraft:bamboo_slab", "railways:track_stripped_bamboo", "minecraft:iron_nugget", 1);
normalTrackRecipes("create:metal_bracket", "railways:track_monorail", "#forge:plates/iron", 6)
// Wide-gauge tracks
wideTrackRecipes("create:track", "#create:sleepers", "railways:track_create_andesite_wide", 1);
wideTrackRecipes("railways:track_acacia", "minecraft:acacia_slab", "railways:track_acacia_wide", 1);
wideTrackRecipes("railways:track_birch", "minecraft:birch_slab", "railways:track_birch_wide", 1);
wideTrackRecipes("railways:track_dark_oak", "minecraft:dark_oak_slab", "railways:track_dark_oak_wide", 1);
wideTrackRecipes("railways:track_jungle", "minecraft:jungle_slab", "railways:track_jungle_wide", 1);
wideTrackRecipes("railways:track_oak", "minecraft:oak_slab", "railways:track_oak_wide", 1);
wideTrackRecipes("railways:track_spruce", "minecraft:spruce_slab", "railways:track_spruce_wide", 1);
wideTrackRecipes("railways:track_mangrove", "minecraft:mangrove_slab", "railways:track_mangrove_wide", 1);
wideTrackRecipes("railways:track_warped", "minecraft:warped_slab", "railways:track_warped_wide", 1);
wideTrackRecipes("railways:track_crimson", "minecraft:crimson_slab", "railways:track_crimson_wide", 1);
wideTrackRecipes("railways:track_blackstone", "minecraft:blackstone_slab", "railways:track_blackstone_wide", 1);
wideTrackRecipes("railways:track_ender", "minecraft:end_stone_brick_slab", "railways:track_ender_wide", 1);
wideTrackRecipes("railways:track_tieless", "minecraft:glass_pane", "railways:track_tieless_wide", 1);
wideTrackRecipes("railways:track_cherry", "minecraft:cherry_slab", "railways:track_cherry_wide", 1);
wideTrackRecipes("railways:track_bamboo", "minecraft:bamboo", "railways:track_bamboo_wide", 1);
wideTrackRecipes("railways:track_stripped_bamboo", "minecraft:bamboo_slab", "railways:track_stripped_bamboo_wide", 1);
// Narrow-gauge tracks
narrowTrackRecipes("create:track", "railways:track_create_andesite_narrow", "minecraft:stone_slab", 1);
narrowTrackRecipes("railways:track_acacia", "railways:track_acacia_narrow", "minecraft:acacia_slab", 1);
narrowTrackRecipes("railways:track_birch", "railways:track_birch_narrow", "minecraft:birch_slab", 1);
narrowTrackRecipes("railways:track_dark_oak", "railways:track_dark_oak_narrow", "minecraft:dark_oak_slab", 1);
narrowTrackRecipes("railways:track_jungle", "railways:track_jungle_narrow", "minecraft:jungle_slab", 1);
narrowTrackRecipes("railways:track_oak", "railways:track_oak_narrow", "minecraft:oak_slab", 1);
narrowTrackRecipes("railways:track_spruce", "railways:track_spruce_narrow", "minecraft:spruce_slab", 1);
narrowTrackRecipes("railways:track_mangrove", "railways:track_mangrove_narrow", "minecraft:mangrove_slab", 1);
narrowTrackRecipes("railways:track_warped", "railways:track_warped_narrow", "minecraft:warped_slab", 1);
narrowTrackRecipes("railways:track_crimson", "railways:track_crimson_narrow", "minecraft:crimson_slab", 1);
narrowTrackRecipes("railways:track_blackstone", "railways:track_blackstone_narrow", "minecraft:blackstone_slab", 1);
narrowTrackRecipes("railways:track_ender", "railways:track_ender_narrow", "minecraft:end_stone_brick_slab", 1);
narrowTrackRecipes("railways:track_tieless", "railways:track_tieless_narrow", "minecraft:glass_pane", 1);
narrowTrackRecipes("railways:track_cherry", "railways:track_cherry_narrow", "minecraft:cherry_slab", 1);
narrowTrackRecipes("railways:track_bamboo", "railways:track_bamboo_narrow", "minecraft:bamboo", 1);
narrowTrackRecipes("railways:track_stripped_bamboo", "railways:track_stripped_bamboo_narrow", "minecraft:bamboo_slab", 1);
if (Platform.isLoaded("biomesoplenty")) { // fuck it, we BoP again
// Normal-gauge tracks
normalTrackRecipes("biomesoplenty:dead_slab", "railways:track_biomesoplenty_dead", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:fir_slab", "railways:track_biomesoplenty_fir", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:hellbark_slab", "railways:track_biomesoplenty_hellbark", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:jacaranda_slab", "railways:track_biomesoplenty_jacaranda", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:magic_slab", "railways:track_biomesoplenty_magic", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:mahogany_slab", "railways:track_biomesoplenty_mahogany", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:palm_slab", "railways:track_biomesoplenty_palm", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:redwood_slab", "railways:track_biomesoplenty_redwood", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:umbran_slab", "railways:track_biomesoplenty_umbran", "minecraft:iron_nugget", 1);
normalTrackRecipes("biomesoplenty:willow_slab", "railways:track_biomesoplenty_willow", "minecraft:iron_nugget", 1);
// Wide-gauge tracks
wideTrackRecipes("railways:track_biomesoplenty_dead", "biomesoplenty:dead_slab", "railways:track_biomesoplenty_dead_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_fir", "biomesoplenty:fir_slab", "railways:track_biomesoplenty_fir_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_hellbark", "biomesoplenty:hellbark_slab", "railways:track_biomesoplenty_hellbark_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_jacaranda", "biomesoplenty:jacaranda_slab", "railways:track_biomesoplenty_jacaranda_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_magic", "biomesoplenty:magic_slab", "railways:track_biomesoplenty_magic_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_mahogany", "biomesoplenty:mahogany_slab", "railways:track_biomesoplenty_mahogany_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_palm", "biomesoplenty:palm_slab", "railways:track_biomesoplenty_palm_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_redwood", "biomesoplenty:redwood_slab", "railways:track_biomesoplenty_redwood_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_umbran", "biomesoplenty:umbran_slab", "railways:track_biomesoplenty_umbran_wide", 1);
wideTrackRecipes("railways:track_biomesoplenty_willow", "biomesoplenty:willow_slab", "railways:track_biomesoplenty_willow_wide", 1);
// Narrow-gauge tracks
narrowTrackRecipes("railways:track_biomesoplenty_dead", "railways:track_biomesoplenty_dead_narrow", "biomesoplenty:dead_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_fir", "railways:track_biomesoplenty_fir_narrow", "biomesoplenty:fir_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_hellbark", "railways:track_biomesoplenty_hellbark_narrow", "biomesoplenty:hellbark_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_jacaranda", "railways:track_biomesoplenty_jacaranda_narrow", "biomesoplenty:jacaranda_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_magic", "railways:track_biomesoplenty_magic_narrow", "biomesoplenty:magic_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_mahogany", "railways:track_biomesoplenty_mahogany_narrow", "biomesoplenty:mahogany_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_palm", "railways:track_biomesoplenty_palm_narrow", "biomesoplenty:palm_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_redwood", "railways:track_biomesoplenty_redwood_narrow", "biomesoplenty:redwood_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_umbran", "railways:track_biomesoplenty_umbran_narrow", "biomesoplenty:umbran_slab", 1);
narrowTrackRecipes("railways:track_biomesoplenty_willow", "railways:track_biomesoplenty_willow_narrow", "biomesoplenty:willow_slab", 1);
}
});
console.log("Create: Steam and Rails compat script successfully loaded!")
} else { console.log("Create: Steam and Rails was not found, skipping its compat scripts.") }

View file

@ -0,0 +1,368 @@
/**
* Compat for the createdeco mod
*/
if (Platform.isLoaded("createdeco")) {
console.log("createdeco found and scripts loaded")
ServerEvents.recipes(event => {
function sheets(output, sheetsInput) {
event.shaped(`createdeco:${output}`, [
"H",
"I",
"I"
], {
H: "#forge:tools/hammers",
I: sheetsInput
})
event.recipes.gtceu.forge_hammer(`${output}_sheet`)
.itemInputs(`3x ${sheetsInput}`)
.itemOutputs(`2x createdeco:${output}`)
.duration(56)
.EUt(16)
event.recipes.gtceu.bender(`${output}_sheet`)
.itemInputs(sheetsInput)
.itemOutputs(`createdeco:${output}`)
.circuit(1)
.duration(56)
.EUt(24)
event.recipes.gtceu.extruder(`${output}_sheet`)
.itemInputs(sheetsInput)
.notConsumable("gtceu:plate_extruder_mold")
.itemOutputs(`createdeco:${output}`)
.duration(56)
.EUt(56)
}
sheets("industrial_iron_sheet", "createdeco:industrial_iron_ingot")
sheets("andesite_sheet", "create:andesite_alloy")
event.recipes.gtceu.cutter("industrial_iron_sheet")
.itemInputs("create:industrial_iron_block")
.itemOutputs("9x createdeco:industrial_iron_sheet")
.duration(448)
.EUt(30)
event.recipes.gtceu.cutter("andesite_sheet")
.itemInputs("create:andesite_alloy_block")
.itemOutputs("9x createdeco:andesite_sheet")
.duration(448)
.EUt(30)
function decor(sheet, ingot, bars, decorOutput, block) {
// Windows
event.remove({ output: `createdeco:${decorOutput}_window` })
event.shaped(`2x createdeco:${decorOutput}_window`, [
" I ",
"IGI"
], {
I: ingot,
G: "minecraft:glass"
})
// Overlay
event.remove({ output: `createdeco:${decorOutput}_bars_overlay` })
event.shaped(`8x createdeco:${decorOutput}_bars_overlay`, [
" H ",
"SSS",
"SSS"
], {
S: sheet,
H: "#forge:tools/hammers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_bars_overlay`)
.itemInputs(`3x ${sheet}`)
.itemOutputs(`4x createdeco:${decorOutput}_bars_overlay`)
.circuit(3)
.duration(300)
.EUt(4)
// Mesh
event.remove({ output: `createdeco:${decorOutput}_mesh_fence` })
event.shaped(`8x createdeco:${decorOutput}_mesh_fence`, [
" H ",
"SsS",
"SsS"
], {
S: sheet,
s: "#forge:string",
H: "#forge:tools/hammers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_mesh_fence`)
.itemInputs(`2x ${sheet}`)
.itemInputs("#forge:string")
.itemOutputs(`4x createdeco:${decorOutput}_mesh_fence`)
.circuit(32)
.duration(300)
.EUt(4)
// Catwalk
event.remove({ output: `createdeco:${decorOutput}_catwalk` })
event.shaped(`4x createdeco:${decorOutput}_catwalk`, [
"sSH",
"SBS",
"DSs"
], {
B: bars,
S: sheet,
s: "#forge:screws/iron",
H: "#forge:tools/hammers",
D: "#forge:tools/screwdrivers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_catwalk`)
.itemInputs(`4x ${sheet}`)
.itemInputs(bars)
.itemOutputs(`4x createdeco:${decorOutput}_catwalk`)
.circuit(31)
.duration(300)
.EUt(4)
// Catwalk Stairs
event.remove({ output: `createdeco:${decorOutput}_catwalk_stairs` })
event.shaped(`2x createdeco:${decorOutput}_catwalk_stairs`, [
" H",
"DCs",
"sBC"
], {
B: bars,
C: `createdeco:${decorOutput}_catwalk`,
s: "#forge:screws/iron",
H: "#forge:tools/hammers",
D: "#forge:tools/screwdrivers"
})
event.recipes.gtceu.bender(`createdeco:${decorOutput}_catwalk_stairs`)
.itemInputs(`createdeco:${decorOutput}_catwalk`)
.itemOutputs(`createdeco:${decorOutput}_catwalk_stairs`)
.circuit(1)
.duration(240)
.EUt(24)
// Catwalk Railing
event.remove({ output: `createdeco:${decorOutput}_catwalk_railing` })
event.shaped(`4x createdeco:${decorOutput}_catwalk_railing`, [
"sDs",
"SSS",
"BHB"
], {
B: bars,
S: sheet,
s: "#forge:screws/iron",
H: "#forge:tools/hammers",
D: "#forge:tools/screwdrivers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_catwalk_railing`)
.itemInputs(`2x ${bars}`)
.itemInputs(`2x ${sheet}`)
.itemOutputs(`4x createdeco:${decorOutput}_catwalk_railing`)
.circuit(30)
.duration(300)
.EUt(4)
// Support Wedges
event.remove({ output: `createdeco:${decorOutput}_support_wedge` })
event.shaped(`3x createdeco:${decorOutput}_support_wedge`, [
"SS",
"HS"
], {
S: sheet,
H: "#forge:tools/hammers"
})
event.recipes.gtceu.bender(`createdeco:${decorOutput}_support_wedge`)
.itemInputs(sheet)
.itemOutputs(`createdeco:${decorOutput}_support_wedge`)
.circuit(32)
.duration(240)
.EUt(24)
// Train Hull
event.remove({ output: `createdeco:${decorOutput}_hull` })
event.shaped(`createdeco:${decorOutput}_hull`, [
"HS ",
"SbS",
" SF"
], {
b: block,
S: sheet,
H: "#forge:tools/hammers",
F: "#forge:tools/files"
})
// Support
event.remove({ output: `createdeco:${decorOutput}_support` })
event.shaped(`4x createdeco:${decorOutput}_support`, [
"IBI",
"BHB",
"IBI"
], {
I: ingot,
B: bars,
H: "#forge:tools/hammers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_support`)
.itemInputs(bars)
.itemInputs(ingot)
.itemOutputs(`2x createdeco:${decorOutput}_support`)
.circuit(32)
.duration(300)
.EUt(4)
// Lamps
event.remove({ output: `createdeco:yellow_${decorOutput}_lamp` })
event.remove({ output: `createdeco:red_${decorOutput}_lamp` })
event.remove({ output: `createdeco:green_${decorOutput}_lamp` })
event.remove({ output: `createdeco:blue_${decorOutput}_lamp` })
event.shaped(`createdeco:yellow_${decorOutput}_lamp`, [
" I ",
"WLD",
"sSs"
], {
I: ingot,
S: sheet,
s: "#forge:screws/iron",
W: "#forge:tools/wrenches",
D: "#forge:tools/screwdrivers",
L: "minecraft:torch"
})
event.recipes.gtceu.assembler(`createdeco:yellow_${decorOutput}_lamp`)
.itemInputs(`2x ${ingot}`)
.itemInputs("minecraft:torch")
.itemOutputs(`createdeco:yellow_${decorOutput}_lamp`)
.duration(300)
.EUt(7)
event.shaped(`createdeco:red_${decorOutput}_lamp`, [
" I ",
"WLD",
"sSs"
], {
I: ingot,
S: sheet,
s: "#forge:screws/iron",
W: "#forge:tools/wrenches",
D: "#forge:tools/screwdrivers",
L: "minecraft:redstone_torch"
})
event.recipes.gtceu.assembler(`createdeco:red_${decorOutput}_lamp`)
.itemInputs(`2x ${ingot}`)
.itemInputs("minecraft:redstone_torch")
.itemOutputs(`createdeco:red_${decorOutput}_lamp`)
.duration(300)
.EUt(7)
event.shaped(`createdeco:green_${decorOutput}_lamp`, [
" I ",
"WLD",
"sSs"
], {
I: ingot,
S: sheet,
s: "#forge:screws/iron",
W: "#forge:tools/wrenches",
D: "#forge:tools/screwdrivers",
L: "minecraft:glow_berries"
})
event.recipes.gtceu.assembler(`createdeco:green_${decorOutput}_lamp`)
.itemInputs(`2x ${ingot}`)
.itemInputs("minecraft:glow_berries")
.itemOutputs(`createdeco:green_${decorOutput}_lamp`)
.duration(300)
.EUt(7)
event.shaped(`createdeco:blue_${decorOutput}_lamp`, [
" I ",
"WLD",
"sSs"
], {
I: ingot,
S: sheet,
s: "#forge:screws/iron",
W: "#forge:tools/wrenches",
D: "#forge:tools/screwdrivers",
L: "minecraft:soul_torch"
})
event.recipes.gtceu.assembler(`createdeco:blue_${decorOutput}_lamp`)
.itemInputs(`2x ${ingot}`)
.itemInputs("minecraft:soul_torch")
.itemOutputs(`createdeco:blue_${decorOutput}_lamp`)
.duration(300)
.EUt(7)
// Sheetmetal
event.remove({ output: `createdeco:${decorOutput}_sheet_metal` })
event.shaped(`4x createdeco:${decorOutput}_sheet_metal`, [
" S ",
"SHS",
" S "
], {
S: sheet,
H: "#forge:tools/hammers",
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_sheet_metal`)
.itemInputs(sheet)
.itemOutputs(`createdeco:${decorOutput}_sheet_metal`)
.circuit(1)
.duration(100)
.EUt(4)
}
decor("createdeco:andesite_sheet", "create:andesite_alloy", "createdeco:andesite_bars", "andesite", "#forge:storage_blocks/andesite_alloy")
decor("#forge:plates/copper", "#forge:ingots/copper", "createdeco:copper_bars", "copper", "#forge:storage_blocks/copper")
decor("#forge:plates/iron", "#forge:ingots/iron", "minecraft:iron_bars", "iron", "#forge:storage_blocks/iron")
decor("createdeco:industrial_iron_sheet", "createdeco:industrial_iron_ingot", "createdeco:industrial_iron_bars", "industrial_iron", "create:industrial_iron_block")
decor("#forge:plates/brass", "#forge:ingots/brass", "createdeco:brass_bars", "brass", "#forge:storage_blocks/brass")
decor("#forge:plates/zinc", "#forge:ingots/zinc", "createdeco:zinc_bars", "zinc", "#forge:storage_blocks/zinc")
function ironlessDecor(sheet, ingot, decorOutput) {
// Bars
event.remove({ output: `createdeco:${decorOutput}_bars` })
event.shaped(`8x createdeco:${decorOutput}_bars`, [
" H ",
"SSS",
"SSS"
], {
S: ingot,
H: "#forge:tools/hammers"
})
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_bars`)
.itemInputs(`3x ${ingot}`)
.itemOutputs(`4x createdeco:${decorOutput}_bars`)
.circuit(3)
.duration(300)
.EUt(4)
// Trap Doors
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_trapdoor`)
.itemInputs(`4x ${sheet}`)
.itemOutputs(`createdeco:${decorOutput}_trapdoor`)
.circuit(4)
.duration(100)
.EUt(16)
// Doors
event.recipes.gtceu.assembler(`createdeco:${decorOutput}_door`)
.itemInputs(`6x ${sheet}`)
.itemOutputs(`createdeco:${decorOutput}_door`)
.circuit(4)
.duration(100)
.EUt(16)
}
ironlessDecor("createdeco:andesite_sheet", "create:andesite_alloy", "andesite")
ironlessDecor("#forge:plates/copper", "#forge:ingots/copper", "copper")
ironlessDecor("createdeco:industrial_iron_sheet", "createdeco:industrial_iron_ingot", "industrial_iron")
ironlessDecor("#forge:plates/brass", "#forge:ingots/brass", "brass")
ironlessDecor("#forge:plates/zinc", "#forge:ingots/zinc", "zinc")
function bricks(forEach) {
event.recipes.gtceu.assembler(`createdeco:mossy_${forEach}_bricks`)
.itemInputs(`createdeco:${forEach}_bricks`)
.itemInputs("minecraft:vine")
.itemOutputs(`createdeco:mossy_${forEach}_bricks`)
.duration(40)
.EUt(1)
}
// Vanilla Mossy Bricks
event.recipes.gtceu.assembler("createdeco:mossy_red_bricks")
.itemInputs("minecraft:bricks")
.itemInputs("minecraft:vine")
.itemOutputs("createdeco:mossy_red_bricks")
.duration(40)
.EUt(1)
bricks("pearl")
bricks("dean")
bricks("blue")
bricks("dusk")
bricks("umber")
bricks("scarlet")
bricks("verdant")
})
}

View file

@ -0,0 +1,85 @@
/**
* Compat for the fluxnetworks mod
*/
if (Platform.isLoaded("fluxnetworks")) {
console.log("Flux Networks found, loading compat scripts...");
ServerEvents.recipes(event => {
event.replaceInput({ id: "fluxnetworks:fluxconfigurator" }, "minecraft:obsidian", "enderio:infinity_rod");
// Flux Dust
event.recipes.gtceu.chemical_bath("fluxnetworks:flux_dust")
.itemInputs("1x gtceu:obsidian_dust")
.inputFluids("gtceu:redstone 144")
.itemOutputs("fluxnetworks:flux_dust")
.duration(40)
.EUt(16)
// Flux Block
event.shaped("fluxnetworks:flux_block", [
"FFF",
"FFF",
"FFF"
], {
F: "fluxnetworks:flux_dust"
}).id("fluxnetworks:fluxblock")
event.shapeless("9x fluxnetworks:flux_dust", ["fluxnetworks:flux_block"]).id("fluxnetworks:fluxdust")
// Flux Core
event.remove({ id: "fluxnetworks:fluxcore" })
event.recipes.gtceu.assembler("fluxnetworks:fluxcore")
.itemOutputs("2x fluxnetworks:flux_core")
.itemInputs("1x minecraft:ender_eye", "4x enderio:reinforced_obsidian_block", "4x fluxnetworks:flux_dust", "1x gtceu:luv_sensor", "1x gtceu:luv_emitter", "4x laserio:energy_overclocker_card_tier_8")
.EUt(GTValues.VA[GTValues.LuV])
.duration(200)
// Flux Controller
event.shaped("fluxnetworks:flux_controller", [
"PCP",
"RWR",
"PBP"
], {
P: "gtceu:enriched_naquadah_plate",
C: "fluxnetworks:flux_core",
R: "gtceu:enriched_naquadah_rod",
W: "wirelesschargers:advanced_wireless_player_charger",
B: "fluxnetworks:flux_block"
}).id("fluxnetworks:fluxcontroller")
// Flux Plug & Point
event.shapeless("fluxnetworks:flux_plug", ["fluxnetworks:flux_core", "fluxnetworks:flux_block"]).id("fluxnetworks:fluxplug");
event.shapeless("fluxnetworks:flux_point", ["fluxnetworks:flux_core", "minecraft:redstone_block"]).id("fluxnetworks:fluxpoint");
// Flux Storages
event.shaped("fluxnetworks:basic_flux_storage", [
"RBR",
"GCG",
"RBR"
], {
R: "gtceu:enriched_naquadah_rod",
G: "#forge:glass_panes",
C: "enderio:advanced_capacitor_bank",
B: "fluxnetworks:flux_block"
}).id("fluxnetworks:basicfluxstorage")
event.shaped("fluxnetworks:herculean_flux_storage", [
"SSS",
"GCG",
"SSS"
], {
S: "fluxnetworks:basic_flux_storage",
G: "#forge:glass_panes",
C: "gtceu:zero_point_module",
}).id("fluxnetworks:herculeanfluxstorage")
event.shaped("fluxnetworks:gargantuan_flux_storage", [
"SSS",
"GCG",
"SSS"
], {
S: "fluxnetworks:herculean_flux_storage",
G: "#forge:glass_panes",
C: "gtceu:max_battery",
}).id("fluxnetworks:gargantuanfluxstorage")
})
}

View file

@ -0,0 +1,59 @@
/**
* Optional compat script for Modular Routers
*
* Midly gated behind LV circuits & alloys. Upgrades gated behind LV cutter.
* Energy tx gated behind LV Autoclave & MV alloy wires.
*/
if (Platform.isLoaded("modularrouters")) {
console.log("Modular Routers found, loading server compat scripts...")
ServerEvents.recipes(event => {
let replaceMultiple = function (which, arrRepl) {
arrRepl.forEach(
([from, to]) => event.replaceInput(which, from, to)
)
}
event.remove({ output: "modularrouters:modular_router" })
event.shaped("4x modularrouters:modular_router", [
"PBP",
"BCB",
"PBP"
], {
P: "gtceu:dark_steel_plate",
C: "#gtceu:circuits/lv",
B: "enderio:dark_steel_bars"
})
event.replaceInput(/modularrouters:(sender|puller)_module_2(_x4)?/, "minecraft:ender_pearl", "enderio:pulsating_crystal")
replaceMultiple("modularrouters:energy_output_module", [
["minecraft:gold_ingot", "gtceu:vibrant_alloy_single_wire"],
["#forge:storage_blocks/redstone", "kubejs:resonating_crystal"]
])
replaceMultiple("modularrouters:energy_upgrade", [
["minecraft:gold_ingot", "gtceu:conductive_alloy_double_wire"],
["#forge:storage_blocks/redstone", "kubejs:resonating_crystal"]
])
replaceMultiple("modularrouters:speed_upgrade", [
["minecraft:gold_ingot", "thermal:redstone_servo"],
["minecraft:gold_nugget", "gtceu:electrum_plate"]
])
replaceMultiple("modularrouters:blank_module", [
["minecraft:redstone", "#gtceu:circuits/ulv"],
["minecraft:gold_nugget", "gtceu:electrum_nugget"]
])
replaceMultiple("modularrouters:blank_upgrade", [
["minecraft:lapis_lazuli", "gtceu:lapis_plate"],
["minecraft:gold_nugget", "gtceu:electrum_nugget"]
])
replaceMultiple(/modularrouters:range_(up|down)_augment/, [
["#forge:rods/wooden", "gtceu:electrum_rod"],
["minecraft:quartz", "minecraft:ender_pearl"]
])
})
}

View file

@ -0,0 +1,171 @@
/**
* Optional compat script for Project Red: Transmission.
* Requires both the core and addon to be loaded to take effect.
*/
if (Platform.isLoaded("projectred_transmission")) {
console.log("Project Red: Transmission found, loading server compat scripts...")
ServerEvents.recipes(event => {
/* Remove uncessary recipes */
event.remove([
{ id: "projectred_core:red_iron_comp" },
{ id: "projectred_core:red_ingot" },
{ id: "projectred_core:electrotine_iron_comp" },
{ id: "projectred_core:electrotine_ingot" },
{ id: "projectred_core:sand_coal_comp" },
{ id: "projectred_core:boule" },
{ id: "projectred_core:silicon" },
{ id: "projectred_core:draw_plate" },
{ id: "projectred_core:screwdriver" },
{ id: "projectred_core:copper_coil" },
{ id: "projectred_core:iron_coil" },
{ id: "projectred_core:gold_coil" },
{ id: "projectred_core:motor" },
{ id: "projectred_core:woven_cloth" },
{ id: "projectred_core:sail" },
{ id: "projectred_core:electrotine_silicon_comp" },
{ id: "projectred_core:electrotine_silicon" },
{ id: "projectred_core:electrotine_generator" }
])
/* Remove Transmission power cable recipes */
event.remove({ id: "projectred_transmission:low_load_power_wire" })
event.remove({ id: "projectred_transmission:low_load_framed_power_wire" })
/* Circuit plates using GT cutter and saw */
event.remove({ id: "projectred_core:plate" })
event.shaped("2x projectred_core:plate", [
" S ",
" B ",
" "
], {
S: "#forge:tools/saws",
B: "minecraft:smooth_stone"
})
event.recipes.gtceu.cutter("projectred_circuit")
.itemInputs("minecraft:smooth_stone_slab")
.inputFluids(Fluid.of("minecraft:water", 40))
.itemOutputs("4x projectred_core:plate")
.duration(100)
.EUt(32)
event.recipes.gtceu.cutter("projectred_circuit_distilled")
.itemInputs("minecraft:smooth_stone_slab")
.inputFluids(Fluid.of("gtceu:distilled_water", 30))
.itemOutputs("4x projectred_core:plate")
.duration(100)
.EUt(32)
event.recipes.gtceu.cutter("projectred_circuit_lubricant")
.itemInputs("minecraft:smooth_stone_slab")
.inputFluids(Fluid.of("gtceu:lubricant", 10))
.itemOutputs("4x projectred_core:plate")
.duration(100)
.EUt(32)
/* Red Alloy Wire */
event.remove({ id: "projectred_transmission:red_alloy_wire" })
event.shaped("12x projectred_transmission:red_alloy_wire", [
" R ",
" R ",
" R "
], {
R: "gtceu:red_alloy_single_wire"
})
/* Insulated Red Alloy Wire */
const dyeColors = [
"white", "black", "purple", "red", "orange", "green", "lime",
"blue", "light_blue", "pink", "cyan", "magenta", "yellow", "gray", "light_gray", "brown"
];
dyeColors.forEach(color => {
event.remove({ id: `projectred_transmission:${color}_insulated_wire` });
});
event.shaped("projectred_transmission:black_insulated_wire", [
"WR ",
" "
], {
W: "projectred_transmission:red_alloy_wire",
R: "#forge:rubber_plates"
})
/* Bundled Wire using moar rubba' mate as a second unsulation mimicking multi-core cable instead of String */
event.remove({ id: "projectred_transmission:neutral_bundled_wire" })
event.shaped("projectred_transmission:neutral_bundled_wire", [
"SWS",
"WWW",
"SWS"
], {
W: "#projectred_transmission:insulated_wire",
S: "#forge:rubber_plates"
})
/* Insulated Wire & Bundled Wire using Assembly Machine */
event.recipes.gtceu.assembler("projectred_black_insulated_wire_rubber")
.itemInputs("1x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:rubber", 144))
.itemOutputs("1x projectred_transmission:black_insulated_wire")
.duration(50)
.EUt(7)
event.recipes.gtceu.assembler("projectred_black_insulated_wire_styrene_rubber")
.itemInputs("1x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:styrene_butadiene_rubber", 36))
.itemOutputs("1x projectred_transmission:black_insulated_wire")
.duration(50)
.EUt(7)
event.recipes.gtceu.assembler("projectred_black_insulated_wire_silicone_rubber")
.itemInputs("1x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:silicone_rubber", 72))
.itemOutputs("1x projectred_transmission:black_insulated_wire")
.duration(50)
.EUt(7)
event.recipes.gtceu.assembler("projectred_bundled_wire_rubber")
.itemInputs("5x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:rubber", 432))
.itemOutputs("1x projectred_transmission:neutral_bundled_wire")
.duration(50)
.EUt(7)
.circuit(9)
event.recipes.gtceu.assembler("projectred_bundled_wire_styrene_rubber")
.itemInputs("5x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:styrene_butadiene_rubber", 144))
.itemOutputs("1x projectred_transmission:neutral_bundled_wire")
.duration(50)
.EUt(7)
.circuit(9)
event.recipes.gtceu.assembler("projectred_bundled_wire_silicone_rubber")
.itemInputs("5x projectred_transmission:red_alloy_wire")
.inputFluids(Fluid.of("gtceu:silicone_rubber", 288))
.itemOutputs("1x projectred_transmission:neutral_bundled_wire")
.duration(50)
.EUt(7)
.circuit(9)
/* Silicon compounds using GT silicon wafers */
event.remove({ id: "projectred_core:red_silicon_comp" })
event.shaped("projectred_core:red_silicon_comp", [
"SSS",
"SCS",
"SSS"
], {
C: "gtceu:silicon_wafer",
S: "minecraft:redstone"
})
event.remove({ id: "projectred_core:glow_silicon_comp" })
event.shaped("projectred_core:glow_silicon_comp", [
"SSS",
"SCS",
"SSS"
], {
C: "gtceu:silicon_wafer",
S: "minecraft:glowstone_dust"
})
})
}

View file

@ -0,0 +1,35 @@
/**
* Compat for the tempad mod
*/
if (Platform.isLoaded("tempad")) {
console.log("Tempad found, loading compat scripts...")
LootJS.modifiers((event) => {
event.addLootTableModifier("minecraft:chests/simple_dungeon")
.randomChance(0.02)
.addLoot("tempad:tempad");
})
ServerEvents.tags("item", event => {
event.add("tempad:tempad_fuel", "kubejs:moni_penny")
})
ServerEvents.recipes(event => {
event.shaped("tempad:tempad", [
"PFP",
"CNC",
"PSP"
], {
P: "gtceu:electrum_plate",
C: "#gtceu:circuits/mv",
F: "gtceu:mv_field_generator",
S: "gtceu:mv_sensor",
N: "waystones:warp_stone"
}).id("tempad:tempad")
event.recipes.gtceu.assembler("tempad:he_who_remains_tempad")
.itemInputs("tempad:tempad", "gtceu:lapotron_crystal", "4x #gtceu:circuits/ev", "16x kubejs:quantum_flux", "8x gtceu:tungsten_carbide_plate", "2x gtceu:signalum_plate")
.inputFluids(Fluid.of("gtceu:mana", 1000))
.itemOutputs("tempad:he_who_remains_tempad")
.duration(100)
.EUt(512)
})
console.log("Tempad compat scripts successfully loaded!")
} else { console.log("Tempad was not found, skipping its compat scripts.") }

View file

@ -0,0 +1,150 @@
/*
Gating synopsis:
Regular XNet stuff: Late LV
Advanced connectors: MV
Routing: HV
Wireless Routing: EV
Antenna Dish: IV
*/
if (Platform.isLoaded("xnet")) {
console.log("XNet found, loading compat scripts...")
ServerEvents.recipes(event => {
// Remove all recipes from RFToolsBase and XNet
event.remove({ mod: "rftoolsbase" })
event.remove({ mod: "xnet" })
// Add back in RFTools' information screen for the funsies
event.shapeless("rftoolsbase:information_screen", ["gtceu:computer_monitor_cover"]);
event.shapeless("gtceu:computer_monitor_cover", ["rftoolsbase:information_screen"]);
// Add back in RFTools' Filter Module because of its functionality with XNet
event.shaped("rftoolsbase:filter_module", [
" P ",
"RHR",
" I "
], {
P: "#forge:paper",
R: "#forge:dusts/redstone",
H: "minecraft:hopper",
I: "#forge:plates/steel"
})
// Basic Cables
let colors = ["red", "green", "blue", "yellow"];
colors.forEach((color) => {
event.recipes.gtceu.assembler(`xnet:netcable_${color}`)
.itemOutputs(`16x xnet:netcable_${color}`)
.itemInputs(["2x gtceu:fine_red_alloy_wire", "gtceu:fine_gold_wire", "gtceu:pulsating_alloy_single_wire", `#forge:dyes/${color}`, "2x gtceu:carbon_fiber_mesh"])
.EUt(GTValues.VHA[GTValues.LV])
.duration(100)
event.recipes.gtceu.assembler(`xnet:connector_${color}`)
.itemOutputs(`2x xnet:connector_${color}`)
.itemInputs([`xnet:netcable_${color}`, "ae2:formation_core", "ae2:annihilation_core", "2x #forge:plates/steel"])
.inputFluids(Fluid.of("gtceu:soldering_alloy", 72))
.EUt(GTValues.VHA[GTValues.LV])
.duration(120)
event.shapeless(`xnet:netcable_${color}`, [`#forge:dyes/${color}`, "8x #xnet:cables"])
})
// Advanced connectors
let advanced_connector_types = ["red", "green", "blue", "yellow", "routing"];
advanced_connector_types.forEach((type) => {
event.recipes.gtceu.assembler(`xnet:advanced_connector_${type}`)
.itemOutputs(`xnet:advanced_connector_${type}`)
.itemInputs([`xnet:connector_${type}`, "gtceu:diamond_plate", "gtceu:enori_gear"])
.inputFluids(Fluid.of("thermal:ender", 250))
.EUt(GTValues.VA[GTValues.MV])
.duration(120)
})
event.recipes.gtceu.assembler("xnet:connector_upgrade")
.itemOutputs("xnet:connector_upgrade")
.itemInputs(["#forge:paper", "gtceu:diamond_plate", "gtceu:enori_gear"])
.inputFluids(Fluid.of("thermal:ender", 250))
.EUt(GTValues.VA[GTValues.MV])
.duration(140)
// Routing
event.recipes.gtceu.assembler("xnet:netcable_routing")
.itemOutputs("16x xnet:netcable_routing")
.itemInputs(["2x gtceu:fine_red_alloy_wire", "gtceu:fine_gold_wire", "gtceu:fine_borosilicate_glass_wire", "gtceu:pulsating_alloy_single_wire", "2x gtceu:carbon_fiber_mesh"])
.EUt(GTValues.VHA[GTValues.HV])
.duration(100)
event.recipes.gtceu.assembler("xnet:connector_routing")
.itemOutputs("2x xnet:connector_routing")
.itemInputs(["xnet:netcable_routing", "ae2:formation_core", "ae2:annihilation_core", "2x #forge:plates/stainless_steel"])
.inputFluids(Fluid.of("gtceu:soldering_alloy", 72))
.EUt(GTValues.VHA[GTValues.HV])
.duration(120)
event.shaped("xnet:controller", [
"LML",
"CHC",
"PSP"
], {
L: "#gtceu:circuits/ulv",
M: "#gtceu:circuits/lv",
C: "#xnet:cables",
H: "gtceu:lv_machine_hull",
P: "#forge:plates/steel",
S: "gtceu:tin_single_cable"
})
event.shaped("16x xnet:facade", [
"PSP",
"SGS",
"PSP"
], {
P: "#forge:paper",
S: "#forge:plates/steel",
G: "#forge:glass"
})
event.shaped("xnet:router", [
"LML",
"CHC",
"PSP"
], {
L: "#gtceu:circuits/mv",
M: "#gtceu:circuits/hv",
C: "xnet:netcable_routing",
H: "gtceu:hv_machine_hull",
P: "#forge:plates/ender_pearl",
S: "gtceu:gold_single_cable"
})
event.shaped("xnet:wireless_router", [
"LML",
"CHC",
"PSP"
], {
L: "#gtceu:circuits/hv",
M: "#gtceu:circuits/ev",
C: "xnet:netcable_routing",
H: "gtceu:hv_machine_hull",
P: "#forge:plates/ender_pearl",
S: "gtceu:platinum_single_cable"
})
// Wireless Routing Antennas
event.recipes.gtceu.assembler("xnet:antenna")
.itemOutputs("xnet:antenna")
.itemInputs(["3x #forge:rods/iron", "2x minecraft:iron_bars", "gtceu:ev_emitter", "3x gtceu:fine_annealed_copper_wire"])
.EUt(GTValues.VA[GTValues.EV])
.duration(140)
event.recipes.gtceu.assembler("xnet:antenna_base")
.itemOutputs("xnet:antenna_base")
.itemInputs(["1x #forge:rods/iron", "2x #forge:plates/iron", "gtceu:ev_emitter", "2x gtceu:fine_annealed_copper_wire"])
.EUt(GTValues.VHA[GTValues.EV])
.duration(100)
event.recipes.gtceu.assembler("xnet:antenna_dish")
.itemOutputs("xnet:antenna_dish")
.itemInputs(["1x #forge:rods/iron", "gtceu:iv_sensor", "gtceu:iv_emitter", "2x #forge:plates/tungsten_steel", "2x gtceu:fine_annealed_copper_wire"])
.EUt(GTValues.VA[GTValues.IV])
.duration(240)
// Redstone Proxies
event.shapeless("2x xnet:redstone_proxy", ["gtceu:lv_machine_hull", "kubejs:resonating_crystal", "2x #forge:dusts/redstone", "#xnet:cables"])
event.shapeless("xnet:redstone_proxy_upd", ["xnet:redstone_proxy"])
event.shapeless("xnet:redstone_proxy", ["xnet:redstone_proxy_upd"])
})
}

View file

@ -0,0 +1,6 @@
/**
* Custom recipes for the redstoneclock mod
*/
ServerEvents.recipes(event => {
event.replaceInput({ id: "redstoneclock:redstone_clock" }, "minecraft:bell", "#forge:storage_blocks/redstone")
})

View file

@ -0,0 +1,14 @@
/**
* Custom recipes for the waystones mod
*/
ServerEvents.recipes(event => {
event.remove({ output: "waystones:warp_stone" })
event.recipes.gtceu.autoclave("warp_stone")
.itemInputs(["minecraft:chorus_flower"])
.inputFluids("gtceu:vibrant_alloy 288")
.itemOutputs("waystones:warp_stone")
.duration(320)
.EUt(32)
event.replaceInput({ output: "waystones:warp_plate" }, "minecraft:gravel", "waystones:warp_stone")
})

View file

@ -0,0 +1,32 @@
/**
* Custom recipes for the wirelesschargers mod
*/
ServerEvents.recipes(event => {
event.remove({ id: "wirelesschargers:basic_wireless_block_charger" })
event.remove({ id: "wirelesschargers:advanced_wireless_block_charger" })
event.remove({ id: "wirelesschargers:basic_wireless_player_charger" })
event.shaped(Item.of("wirelesschargers:basic_wireless_player_charger"), [
"SES",
"CHC",
"SSS"
], {
S: "gtceu:steel_plate",
E: "gtceu:lv_emitter",
H: "gtceu:lv_machine_hull",
C: "gtceu:tin_quadruple_wire",
})
event.remove({ id: "wirelesschargers:advanced_wireless_player_charger" })
event.shaped(Item.of("wirelesschargers:advanced_wireless_player_charger"), [
"SES",
"CHC",
"SSS"
], {
S: "gtceu:stainless_steel_plate",
E: "gtceu:hv_emitter",
H: "gtceu:hv_machine_hull",
C: "gtceu:gold_quadruple_wire",
})
})