Missing recipes and drops in latest version 1.18.2
Staegrin opened this issue ยท 7 comments
What were you doing when the issue happened?
Current version of Blue Power has several missing recipes
Red Alloy ingot
Blue Alloy Ingot
Zinc Plate
Paint Can name gets displayed as item.bluepower.paint_can
Paint Brush
Brass Ingot only has a recipe via Immersive Engineering
Raw Silver does not drop from Silver Ore
Raw tungsten does not drop from Tungsten Ore
Raw Zinc does not drop from Zinc Ore
Flax Seeds do not drop from grass
Fully grown flax plant have a low chance of dropping seeds 64 plants only produce 33-34 seeds along with a stack and a half of string
Forge and Minecraft version
Forge: 40.1.47
Minecraft: 1.18.2
Bluepower version and build number
bluepower-1.18.2-0.6.281-alpha-universal
I can make the alloy recipes in a test world with only Blue Power. Now I'll go through the other mods and check which one is removing the recipes from the alloy furnace and JEI
It turns out it was the KubeJS UNIFY script that was created before Blue Power was in the modpack and does not mention brass, the alloy ingots or the Alloy furnace. Maybe it interrupts certain events from firing.
onEvent("recipes", (event) => {
const { smelting, blasting } = event.recipes.minecraft;
let isIELoaded = Platform.mods.immersiveengineering;
let isFTBICLoaded = Platform.mods.ftbic;
let isMekanismLoaded = Platform.mods.mekanism;
let isOreBerriesLoaded = Platform.mods.oreberriesreplanted;
let isThermalLoaded = Platform.mods.thermal;
let isCreateLoaded = Platform.mods.create;
let isCreateAddLoaded = Platform.mods.createaddition;
let isTinkersLoaded = Platform.mods.tconstruct;
let replaceIO = (tag, item) => {
event.replaceInput(tag, tag);
event.replaceOutput(tag, item);
};
let unify = [
{
name: "iron",
hasOre: true,
rawItem: "minecraft:raw_iron",
rawBlock: "minecraft:raw_iron_block",
nuggetItem: "minecraft:iron_nugget",
ingotItem: "minecraft:iron_ingot",
blockItem: "minecraft:iron_block",
dustItem: "ftbic:iron_dust",
plateItem: "ftbic:iron_plate",
rodsItem: "ftbic:iron_rod",
gearItem: "ftbic:iron_gear",
crushedItem: "create:crushed_iron_ore",
},
{
name: "gold",
hasOre: true,
rawItem: "minecraft:raw_gold",
rawBlock: "minecraft:raw_gold_block",
nuggetItem: "minecraft:gold_nugget",
ingotItem: "minecraft:gold_ingot",
blockItem: "minecraft:gold_block",
dustItem: "ftbic:gold_dust",
plateItem: "ftbic:gold_plate",
rodsItem: "ftbic:gold_rod",
gearItem: "ftbic:gold_gear",
crushedItem: "create:crushed_gold_ore",
},
{
name: "aluminum",
hasOre: true,
rawItem: "ftbic:aluminum_chunk",
rawBlock: "",
nuggetItem: "ftbic:aluminum_nugget",
ingotItem: "ftbic:aluminum_ingot",
blockItem: "ftbic:aluminum_block",
dustItem: "ftbic:aluminum_dust",
plateItem: "ftbic:aluminum_plate",
rodsItem: "ftbic:aluminum_rod",
gearItem: "ftbic:aluminum_gear",
crushedItem: "create:crushed_aluminum_ore",
},
{
name: "copper",
hasOre: true,
rawItem: "minecraft:raw_copper",
rawBlock: "minecraft:raw_copper_block",
nuggetItem: "ftbic:copper_nugget",
ingotItem: "minecraft:copper_ingot",
blockItem: "minecraft:copper_block",
dustItem: "ftbic:copper_dust",
plateItem: "ftbic:copper_plate",
rodsItem: "ftbic:copper_rod",
gearItem: "ftbic:copper_gear",
crushedItem: "create:crushed_copper_ore",
},
{
name: "tin",
hasOre: true,
rawItem: "ftbic:tin_chunk",
rawBlock: "thermal:raw_tin_block",
nuggetItem: "ftbic:tin_nugget",
ingotItem: "ftbic:tin_ingot",
blockItem: "ftbic:tin_block",
dustItem: "ftbic:tin_dust",
plateItem: "ftbic:tin_plate",
rodsItem: "ftbic:tin_rod",
gearItem: "ftbic:tin_gear",
crushedItem: "create:crushed_tin_ore",
},
{
name: "lead",
hasOre: true,
rawItem: "ftbic:lead_chunk",
rawBlock: "thermal:raw_lead_block",
nuggetItem: "ftbic:lead_nugget",
ingotItem: "ftbic:lead_ingot",
blockItem: "ftbic:lead_block",
dustItem: "ftbic:lead_dust",
plateItem: "ftbic:lead_plate",
rodsItem: "ftbic:lead_rod",
gearItem: "ftbic:lead_gear",
crushedItem: "create:crushed_lead_ore",
},
{
name: "zinc",
hasOre: true,
rawItem: "create:raw_zinc",
rawBlock: "create:raw_zinc_block",
nuggetItem: "create:zinc_nugget",
ingotItem: "create:zinc_ingot",
blockItem: "create:zinc_block",
dustItem: "",
plateItem: "createaddition:zinc_sheet",
rodsItem: "",
gearItem: "",
crushedItem: "create:crushed_zinc_ore",
},
{
name: "silver",
hasOre: true,
rawItem: "immersiveengineering:raw_silver",
rawBlock: "immersiveengineering:raw_block_silver",
nuggetItem: "immersiveengineering:nugget_silver",
ingotItem: "immersiveengineering:ingot_silver",
blockItem: "immersiveengineering:storage_silver",
dustItem: "immersiveengineering:dust_silver",
plateItem: "immersiveengineering:plate_silver",
rodsItem: "",
gearItem: "thermal:silver_gear",
crushedItem: "create:crushed_silver_ore",
},
{
name: "nickel",
hasOre: true,
rawItem: "immersiveengineering:raw_nickel",
rawBlock: "immersiveengineering:raw_block_nickel",
nuggetItem: "immersiveengineering:nugget_nickel",
ingotItem: "immersiveengineering:ingot_nickel",
blockItem: "immersiveengineering:storage_nickel",
dustItem: "immersiveengineering:dust_nickel",
plateItem: "immersiveengineering:plate_nickel",
rodsItem: "",
gearItem: "thermal:nickel_gear",
crushedItem: "create:crushed_nickel_ore",
},
{
name: "uranium",
hasOre: true,
rawItem: "ftbic:uranium_chunk",
rawBlock: "immersiveengineering:raw_block_uranium",
nuggetItem: "ftbic:uranium_nugget",
ingotItem: "ftbic:uranium_ingot",
blockItem: "ftbic:uranium_block",
dustItem: "ftbic:uranium_dust",
plateItem: "ftbic:uranium_plate",
rodsItem: "ftbic:uranium_rod",
gearItem: "ftbic:uranium_gear",
crushedItem: "create:crushed_uranium_ore",
},
{
name: "iridium",
hasOre: true,
rawItem: "ftbic:iridium_chunk",
rawBlock: "",
nuggetItem: "ftbic:iridium_nugget",
ingotItem: "ftbic:iridium_ingot",
blockItem: "ftbic:iridium_block",
dustItem: "ftbic:iridium_dust",
plateItem: "ftbic:iridium_plate",
rodsItem: "ftbic:iridium_rod",
gearItem: "ftbic:iridium_gear",
crushedItem: "",
},
{
name: "osmium",
hasOre: true,
rawItem: "mekanism:raw_osmium",
rawBlock: "mekanism:block_raw_osmium",
nuggetItem: "mekanism:nugget_osmium",
ingotItem: "mekanism:ingot_osmium",
blockItem: "mekanism:block_osmium",
dustItem: "mekanism:dust_osmium",
plateItem: "",
rodsItem: "",
gearItem: "",
crushedItem: "",
},
{
name: "cobalt",
hasOre: true,
rawItem: "tconstruct:raw_cobalt",
rawBlock: "tconstruct:raw_cobalt_block",
nuggetItem: "tconstruct:cobalt_nugget",
ingotItem: "tconstruct:cobalt_ingot",
blockItem: "tconstruct:cobalt_block",
dustItem: "",
plateItem: "",
rodsItem: "",
gearItem: "",
crushedItem: "",
},
{
name: "electrum",
hasOre: false,
rawItem: "",
rawBlock: "",
nuggetItem: "immersiveengineering:nugget_electrum",
ingotItem: "immersiveengineering:ingot_electrum",
blockItem: "immersiveengineering:storage_electrum",
dustItem: "immersiveengineering:dust_electrum",
plateItem: "immersiveengineering:plate_electrum",
rodsItem: "",
gearItem: "thermal:electrum_gear",
crushedItem: "",
},
{
name: "constantan",
hasOre: false,
rawItem: "",
rawBlock: "",
nuggetItem: "immersiveengineering:nugget_constantan",
ingotItem: "immersiveengineering:ingot_constantan",
blockItem: "immersiveengineering:storage_constantan",
dustItem: "immersiveengineering:dust_constantan",
plateItem: "immersiveengineering:plate_constantan",
rodsItem: "",
gearItem: "thermal:constantan_gear",
crushedItem: "",
},
{
name: "bronze",
hasOre: false,
rawItem: "",
rawBlock: "",
nuggetItem: "ftbic:bronze_nugget",
ingotItem: "ftbic:bronze_ingot",
blockItem: "ftbic:bronze_block",
dustItem: "ftbic:bronze_dust",
plateItem: "ftbic:bronze_plate",
rodsItem: "ftbic:bronze_rod",
gearItem: "ftbic:bronze_gear",
crushedItem: "",
},
{
name: "steel",
hasOre: false,
rawItem: "",
rawBlock: "",
nuggetItem: "immersiveengineering:nugget_steel",
ingotItem: "immersiveengineering:ingot_steel",
blockItem: "immersiveengineering:storage_steel",
dustItem: "immersiveengineering:dust_steel",
plateItem: "immersiveengineering:plate_steel",
rodsItem: "immersiveengineering:stick_steel",
gearItem: "thermal:steel_gear",
crushedItem: "",
},
{
name: "netherite",
hasOre: false,
rawItem: "",
rawBlock: "",
nuggetItem: "thermal:netherite_nugget",
ingotItem: "minecraft:netherite_ingot",
blockItem: "minecraft:netherite_block",
dustItem: "thermal:netherite_dust",
plateItem: "thermal:netherite_plate",
rodsItem: "",
gearItem: "thermal:netherite_gear",
crushedItem: "",
},
{
name: "invar",
hasOre: false,
rawItem: "",
rawBlock: "",
nuggetItem: "thermal:invar_nugget",
ingotItem: "thermal:invar_ingot",
blockItem: "thermal:invar_block",
dustItem: "thermal:invar_dust",
plateItem: "thermal:invar_plate",
rodsItem: "",
gearItem: "thermal:invar_gear",
crushedItem: "",
},
{
name: "signalum",
hasOre: false,
rawItem: "",
rawBlock: "",
nuggetItem: "thermal:signalum_nugget",
ingotItem: "thermal:signalum_ingot",
blockItem: "thermal:signalum_block",
dustItem: "thermal:signalum_dust",
plateItem: "thermal:signalum_plate",
rodsItem: "",
gearItem: "thermal:signalum_gear",
crushedItem: "",
},
{
name: "lumium",
hasOre: false,
rawItem: "",
rawBlock: "",
nuggetItem: "thermal:lumium_nugget",
ingotItem: "thermal:lumium_ingot",
blockItem: "thermal:lumium_block",
dustItem: "thermal:lumium_dust",
plateItem: "thermal:lumium_plate",
rodsItem: "",
gearItem: "thermal:lumium_gear",
crushedItem: "",
},
{
name: "enderium",
hasOre: false,
rawItem: "",
rawBlock: "",
nuggetItem: "ftbic:enderium_nugget",
ingotItem: "ftbic:enderium_ingot",
blockItem: "ftbic:enderium_block",
dustItem: "ftbic:enderium_dust",
plateItem: "ftbic:enderium_plate",
rodsItem: "ftbic:enderium_rod",
gearItem: "ftbic:enderium_gear",
crushedItem: "",
},
];
unify.forEach((metal) => {
if (metal.rawItem !== "") {
replaceIO(#forge:raw_materials/${metal.name}
, metal.rawItem);
if (isThermalLoaded) {
event.remove({
type: "thermal:press",
output: `#forge:raw_materials/${metal.name}`,
});
event.recipes.thermalPress(`9x ${metal.rawItem}`, [
`#forge:storage_blocks/raw_${metal.name}`,
"thermal:press_unpacking_die",
]);
}
}
if (metal.rawBlock !== "") {
replaceIO(`#forge:storage_blocks/raw_${metal.name}`, metal.rawBlock);
if (isThermalLoaded) {
event.remove({
type: "thermal:press",
output: `#forge:storage_blocks/raw_${metal.name}`,
});
event.recipes.thermalPress(metal.rawBlock, [
`9x #forge:raw_materials/${metal.name}`,
"thermal:press_packing_3x3_die",
]);
}
}
if (metal.ingotItem !== "")
replaceIO(`#forge:ingots/${metal.name}`, metal.ingotItem);
if (metal.dustItem !== "") {
replaceIO(`#forge:dusts/${metal.name}`, metal.dustItem);
if (isIELoaded) {
if (metal.hasOre) {
event.remove({
id: `immersiveengineering:crafting/hammercrushing_${metal.name}`,
});
event.remove({
id: `immersiveengineering:crafting/raw_hammercrushing_${metal.name}`,
});
event.shapeless(metal.dustItem, [
[`#forge:ores/${metal.name}`, `#forge:raw_materials/${metal.name}`],
Item.of("immersiveengineering:hammer").ignoreNBT(),
]);
event.remove({
type: "immersiveengineering:crusher",
output: `#forge:dusts/${metal.name}`,
});
event.recipes.immersiveengineeringCrusher(
`2x ${metal.dustItem}`,
`#forge:ores/${metal.name}`
);
event.recipes.immersiveengineeringCrusher(
`${metal.dustItem}`,
`#forge:ingots/${metal.name}`
);
if (
!Ingredient.of(`#forge:storage_blocks/raw_${metal.name}`).isEmpty()
) {
event.recipes.immersiveengineeringCrusher(
`12x ${metal.dustItem}`,
`#forge:storage_blocks/raw_${metal.name}`
);
}
event.recipes.immersiveengineeringCrusher(
`${metal.dustItem}`,
`#forge:raw_materials/${metal.name}`,
[Item.of(metal.dustItem).withChance(0.3333)]
);
}
}
if (isFTBICLoaded) {
event.remove({
type: "ftbic:macerating",
output: `#forge:dusts/${metal.name}`,
});
event.recipes.ftbic.macerating(
`2x ${metal.dustItem}`,
`#forge:ores/${metal.name}`
);
event.recipes.ftbic.macerating(
`${metal.dustItem}`,
`#forge:ingots/${metal.name}`
);
if (
!Ingredient.of(`#forge:storage_blocks/raw_${metal.name}`).isEmpty()
) {
event.recipes.ftbic.macerating(
`12x ${metal.dustItem}`,
`#forge:storage_blocks/raw_${metal.name}`
);
}
event.recipes.ftbic.macerating(
[`${metal.dustItem}`, Item.of(metal.dustItem).withChance(0.3333)],
`#forge:raw_materials/${metal.name}`
);
}
if (isMekanismLoaded) {
event.remove({
type: "mekanism:crushing",
output: `#forge:dusts/${metal.name}`,
});
event.recipes.mekanismCrushing(
`${metal.dustItem}`,
`#forge:ingots/${metal.name}`
);
event.remove({
type: "mekanism:enriching",
output: `#forge:dusts/${metal.name}`,
});
event.recipes.mekanismEnriching(
`2x ${metal.dustItem}`,
`#forge:ores/${metal.name}`
);
event.recipes.mekanismEnriching(
`12x ${metal.dustItem}`,
`#forge:storage_blocks/raw_${metal.name}`
);
event.recipes.mekanismEnriching(
`${metal.dustItem}`,
`#mekanism:dirty_dusts/${metal.name}`
);
event.recipes.mekanismEnriching(
`4x ${metal.dustItem}`,
`3x #forge:raw_materials/${metal.name}`
);
}
if (isThermalLoaded) {
event.remove({
type: "thermal:pulverizer",
output: `#forge:dusts/${metal.name}`,
});
event.recipes.thermal.pulverizer(
[`2x ${metal.dustItem}`, Item.of("minecraft:gravel").withChance(0.2)],
`#forge:ores/${metal.name}`
);
event.recipes.thermal.pulverizer(
`${metal.dustItem}`,
`#forge:ingots/${metal.name}`
);
if (
!Ingredient.of(`#forge:storage_blocks/raw_${metal.name}`).isEmpty()
) {
event.recipes.thermal.pulverizer(
`12x ${metal.dustItem}`,
`#forge:storage_blocks/raw_${metal.name}`
);
}
event.recipes.thermal.pulverizer(
[`${metal.dustItem}`, Item.of(metal.dustItem).withChance(0.3333)],
`#forge:raw_materials/${metal.name}`
);
}
}
if (metal.nuggetItem !== "") {
replaceIO(`#forge:nuggets/${metal.name}`, metal.nuggetItem);
if (metal.ingotItem !== "") {
event.remove({
type: "minecraft:crafting_shapeless",
output: `#forge:nuggets/${metal.name}`,
input: `#forge:ingots/${metal.name}`,
});
event.remove({
type: "minecraft:crafting_shaped",
output: `#forge:nuggets/${metal.name}`,
input: `#forge:ingots/${metal.name}`,
});
event.shapeless(
`9x ${metal.nuggetItem}`,
`#forge:ingots/${metal.name}`
);
}
if (isOreBerriesLoaded) {
event.remove({
type: "oreberriesreplanted:vat",
output: `#forge:nuggets/${metal.name}`,
});
if (Item.exists(`oreberriesreplanted:${metal.name}_oreberry`)) {
event.recipes.oreberriesreplanted.vat({
ingredient: {
item: `oreberriesreplanted:${metal.name}_oreberry`,
},
fluid: `oreberriesreplanted:${metal.name}_oreberry_juice`,
result: {
item: metal.nuggetItem,
},
evaporationtime: 100,
});
}
}
}
if (metal.blockItem !== "")
replaceIO(`#forge:storage_blocks/${metal.name}`, metal.blockItem);
if (metal.plateItem !== "") {
event.remove({
not: { id: "create:sequenced_assembly/precision_mechanism" },
output: `#forge:plates/${metal.name}`,
});
if (isIELoaded) {
event.remove({
id: `immersiveengineering:crafting/plate_${metal.name}_hammering`,
});
event.shapeless(metal.plateItem, [
`#forge:ingots/${metal.name}`,
Item.of("immersiveengineering:hammer").ignoreNBT(),
]);
event.recipes.immersiveengineeringMetalPress(
metal.plateItem,
`#forge:ingots/${metal.name}`,
"immersiveengineering:mold_plate"
);
}
if (isThermalLoaded) {
event.recipes.thermalPress(metal.plateItem, [
`#forge:ingots/${metal.name}`,
]);
}
if (isFTBICLoaded) {
event.recipes.ftbic.rolling(`${metal.plateItem}`, [
`#forge:ingots/${metal.name}`,
]);
}
if (isCreateLoaded) {
event.recipes.createPressing(metal.plateItem, [
`#forge:ingots/${metal.name}`,
]);
}
if (isTinkersLoaded) {
if (Fluid.exists(`tconstruct:molten_${metal.name}`)) {
event.recipes
.tconstructCastingTable(
metal.plateItem,
`tconstruct:molten_${metal.name}`,
90
)
.singleUseCast("plate")
.coolingTime(60);
event.recipes
.tconstructCastingTable(
metal.plateItem,
`tconstruct:molten_${metal.name}`,
90
)
.multiUseCast("plate")
.coolingTime(60);
}
}
event.replaceInput(
`#forge:plates/${metal.name}`,
`#forge:plates/${metal.name}`
);
}
if (metal.rodsItem !== "") {
event.remove({ output: `#forge:rods/${metal.name}` });
event.shaped(Item.of(metal.rodsItem, 2), ["I", "I"], {
I: `#forge:ingots/${metal.name}`,
});
if (isIELoaded) {
event.recipes.immersiveengineeringMetalPress(
Item.of(metal.rodsItem, 2),
`#forge:ingots/${metal.name}`,
"immersiveengineering:mold_rod"
);
}
if (isCreateAddLoaded) {
event.recipes.createaddition.rolling({
input: Ingredient.of(`#forge:ingots/${metal.name}`).toJson(),
result: Item.of(`2x ${metal.rodsItem}`).toResultJson(),
});
}
if (isFTBICLoaded) {
event.recipes.ftbic.extruding(`2x ${metal.rodsItem}`, [
`#forge:ingots/${metal.name}`,
]);
}
event.replaceInput(
`#forge:rods/${metal.name}`,
`#forge:rods/${metal.name}`
);
}
if (metal.gearItem !== "") {
event.remove({ output: `#forge:gears/${metal.name}` });
event.shaped(metal.gearItem, [" I ", "INI", " I "], {
I: `#forge:ingots/${metal.name}`,
N: "minecraft:iron_nugget",
});
if (isIELoaded) {
event.recipes.immersiveengineering.metal_press(
metal.gearItem,
`4x #forge:ingots/${metal.name}`,
"immersiveengineering:mold_gear"
);
}
if (isFTBICLoaded) {
event.recipes.ftbic.extruding(metal.gearItem, [
`4x #forge:plates/${metal.name}`,
]);
}
if (isThermalLoaded) {
event.recipes.thermalPress(metal.gearItem, [
`4x #forge:ingots/${metal.name}`,
"thermal:press_gear_die",
]);
}
if (isTinkersLoaded) {
if (Fluid.exists(`tconstruct:molten_${metal.name}`)) {
event.recipes
.tconstructCastingTable(
metal.gearItem,
`tconstruct:molten_${metal.name}`,
360
)
.singleUseCast("gear")
.coolingTime(60);
event.recipes
.tconstructCastingTable(
metal.gearItem,
`tconstruct:molten_${metal.name}`,
360
)
.multiUseCast("gear")
.coolingTime(60);
}
}
event.replaceInput(
`#forge:gears/${metal.name}`,
`#forge:gears/${metal.name}`
);
}
event.remove({
output: `#forge:ingots/${metal.name}`,
type: "minecraft:smelting",
});
event.remove({
output: `#forge:ingots/${metal.name}`,
type: "minecraft:blasting",
});
if (metal.ingotItem !== "") {
if (metal.nuggetItem !== "") {
event.remove({
type: "minecraft:crafting_shapeless",
output: `#forge:ingots/${metal.name}`,
input: `#forge:nuggets/${metal.name}`,
});
event.remove({
type: "minecraft:crafting_shaped",
output: `#forge:ingots/${metal.name}`,
input: `#forge:nuggets/${metal.name}`,
});
event.shaped(`${metal.ingotItem}`, ["nnn", "nnn", "nnn"], {
n: `#forge:nuggets/${metal.name}`,
});
}
let smeltInput = [];
if (metal.dustItem !== "") {
smeltInput.push(`#forge:dusts/${metal.name}`);
}
if (metal.hasOre) {
smeltInput.push(`#forge:ores/${metal.name}`);
smeltInput.push(`#forge:raw_materials/${metal.name}`);
}
if (metal.crushedItem !== "") {
smeltInput.push(metal.crushedItem);
}
if (smeltInput.length > 0) {
smelting(metal.ingotItem, smeltInput).xp(0.7);
blasting(metal.ingotItem, smeltInput).xp(0.7);
}
}
});
The error boils down to
[23:44:23] [WARN ] Error parsing recipe bluepower:alloy_furnace/zincplate[bluepower:alloy_smelting]: {"type":"bluepower:alloy_smelting","ingredients":[{"tag":"forge:dusts/zinc"},{"ingredient":{"tag":"forge:ingots/iron"},"count":2}],"result":{"item":"bluepower:zincplate","count":4}}: com.google.gson.JsonParseException: An ingredient entry needs either a tag or an item
[23:44:23] [WARN ] Error parsing recipe bluepower:alloy_furnace/red_alloy_ingot[bluepower:alloy_smelting]: {"type":"bluepower:alloy_smelting","ingredients":[{"ingredient":{"item":"minecraft:redstone"},"count":4},{"tag":"forge:ingots/iron"}],"result":{"item":"bluepower:red_alloy_ingot"}}: com.google.gson.JsonParseException: An ingredient entry needs either a tag or an item
[23:44:23] [WARN ] Error parsing recipe bluepower:alloy_furnace/red_alloy_ingot_copper[bluepower:alloy_smelting]: {"type":"bluepower:alloy_smelting","ingredients":[{"ingredient":{"item":"minecraft:redstone"},"count":4},{"tag":"forge:ingots/copper"}],"result":{"item":"bluepower:red_alloy_ingot"}}: com.google.gson.JsonParseException: An ingredient entry needs either a tag or an item
[23:44:23] [WARN ] Error parsing recipe bluepower:alloy_furnace/brass_ingot[bluepower:alloy_smelting]: {"type":"bluepower:alloy_smelting","ingredients":[{"ingredient":{"tag":"forge:ingots/copper"},"count":3},{"tag":"forge:ingots/zinc"}],"result":{"item":"bluepower:brass_ingot","count":4}}: com.google.gson.JsonParseException: An ingredient entry needs either a tag or an item
[23:44:23] [WARN ] Error parsing recipe bluepower:alloy_furnace/blue_alloy_ingot[bluepower:alloy_smelting]: {"type":"bluepower:alloy_smelting","ingredients":[{"ingredient":{"tag":"forge:dusts/teslatite"},"count":4},{"tag":"forge:ingots/silver"}],"result":{"item":"bluepower:blue_alloy_ingot"}}: com.google.gson.JsonParseException: An ingredient entry needs either a tag or an item
[23:44:23] [WARN ] Error parsing recipe bluepower:alloy_furnace/purple_alloy_ingot_2[bluepower:alloy_smelting]: {"type":"bluepower:alloy_smelting","ingredients":[{"tag":"forge:ingots/gold"},{"ingredient":{"tag":"forge:dusts/teslatite"},"count":8}],"result":{"item":"bluepower:purple_alloy_ingot"}}: com.google.gson.JsonParseException: An ingredient entry needs either a tag or an item
Not sure exactly how KubeJS works but if your removing the forge tags will need to replace them in the blue power recipes as well, I've tested on a few other mod packs without issues.
Thanks for going through all that, I'll fix those up soon, flax seeds only drop from long grass so that might still be working but I'll check it anyhow.