Biomes o' Plenty

Remove Log to Plank Vanilla Crafting Recipes by Discord member Woomyn

recipes.removeShapeless(<biomesoplenty:planks_0:15> * 4, [ <biomesoplenty:log_3:7>]);
recipes.removeShapeless(<biomesoplenty:planks_0:14> * 4, [ <biomesoplenty:log_3:6>]);
recipes.removeShapeless(<biomesoplenty:planks_0:13> * 4, [ <biomesoplenty:log_3:5>]);
recipes.removeShapeless(<biomesoplenty:planks_0:12> * 4, [ <biomesoplenty:log_3:4>]);
recipes.removeShapeless(<biomesoplenty:planks_0:11> * 4, [ <biomesoplenty:log_2:7>]);
recipes.removeShapeless(<biomesoplenty:planks_0:10> * 4, [ <biomesoplenty:log_2:6>]);
recipes.removeShapeless(<biomesoplenty:planks_0:9> * 4, [ <biomesoplenty:log_2:5>]);
recipes.removeShapeless(<biomesoplenty:planks_0:8> * 4, [ <biomesoplenty:log_2:4>]);
recipes.removeShapeless(<biomesoplenty:planks_0:7> * 4, [ <biomesoplenty:log_1:7>]);
recipes.removeShapeless(<biomesoplenty:planks_0:6> * 4, [ <biomesoplenty:log_1:6>]);
recipes.removeShapeless(<biomesoplenty:planks_0:5> * 4, [ <biomesoplenty:log_1:5>]);
recipes.removeShapeless(<biomesoplenty:planks_0:4> * 4, [ <biomesoplenty:log_1:4>]);
recipes.removeShapeless(<biomesoplenty:planks_0:3> * 4, [ <biomesoplenty:log_0:7>]);
recipes.removeShapeless(<biomesoplenty:planks_0:2> * 4, [ <biomesoplenty:log_0:6>]);
recipes.removeShapeless(<biomesoplenty:planks_0:1> * 4, [ <biomesoplenty:log_0:5>]);
recipes.removeShapeless(<biomesoplenty:planks_0> * 4, [ <biomesoplenty:log_0:4>]);

Chopping Block

Cap Plank to Slab Output at 2 by Discord member nihiltres

By default, Pyrotech's Chopping Block can output more than two wooden slabs from one plank when using a higher quality axe. Quark provides recipes to combine two wooden slabs back into a plank and creates a dupe condition.

The following ZenScript was written to circumvent this issue.

You can read more about the issue here: #325

//Fix Chopping Block slab recipes to max out at 2 slabs per plank
    //Generate your own lines automagically from the wood compat file with some regex:
    //"([^:"]+):([^:"]+):([^:"]+)": "([^:"]+):([^:"]+slab[^:"]*):([^:"]+)",?
    //setSafeSlabChopping\("$4_$5_$6", <$4:$5:$6>, <$1:$2:$3>\);
    function setSafeSlabChopping(name as string, output as IItemStack, input as IIngredient) {
        Chopping.removeRecipes(output);
        Chopping.addRecipe(name, output, input, [6, 4, 2, 2], [1, 2, 2, 2], true);
    }
    //Minecraft
    setSafeSlabChopping(     "slab_oak", <minecraft:wooden_slab:0>, <minecraft:planks:0>);
    setSafeSlabChopping(  "slab_spruce", <minecraft:wooden_slab:1>, <minecraft:planks:1>);
    setSafeSlabChopping(   "slab_birch", <minecraft:wooden_slab:2>, <minecraft:planks:2>);
    setSafeSlabChopping(  "slab_jungle", <minecraft:wooden_slab:3>, <minecraft:planks:3>);
    setSafeSlabChopping(  "slab_acacia", <minecraft:wooden_slab:4>, <minecraft:planks:4>);
    setSafeSlabChopping("slab_dark_oak", <minecraft:wooden_slab:5>, <minecraft:planks:5>);
    //The Betweenlands
    setSafeSlabChopping( "slab_giant_root",  <thebetweenlands:giant_root_plank_slab:0>,  <thebetweenlands:giant_root_planks:0>);
    setSafeSlabChopping("slab_hearthgrove", <thebetweenlands:hearthgrove_plank_slab:0>, <thebetweenlands:hearthgrove_planks:0>);
    setSafeSlabChopping( "slab_nibbletwig",  <thebetweenlands:nibbletwig_plank_slab:0>,  <thebetweenlands:nibbletwig_planks:0>);
    setSafeSlabChopping("slab_rubber_tree", <thebetweenlands:rubber_tree_plank_slab:0>, <thebetweenlands:rubber_tree_planks:0>);
    setSafeSlabChopping(   "slab_weedwood",    <thebetweenlands:weedwood_plank_slab:0>,    <thebetweenlands:weedwood_planks:0>);
    //BOP
    setSafeSlabChopping("slab_sacred_oak", <biomesoplenty:wood_slab_0:0>, <biomesoplenty:planks_0:0>);
    setSafeSlabChopping(    "slab_cherry", <biomesoplenty:wood_slab_0:1>, <biomesoplenty:planks_0:1>);
    setSafeSlabChopping(    "slab_umbran", <biomesoplenty:wood_slab_0:2>, <biomesoplenty:planks_0:2>);
    setSafeSlabChopping(       "slab_fir", <biomesoplenty:wood_slab_0:3>, <biomesoplenty:planks_0:3>);
    setSafeSlabChopping(  "slab_ethereal", <biomesoplenty:wood_slab_0:4>, <biomesoplenty:planks_0:4>);
    setSafeSlabChopping(     "slab_magic", <biomesoplenty:wood_slab_0:5>, <biomesoplenty:planks_0:5>);
    setSafeSlabChopping(  "slab_mangrove", <biomesoplenty:wood_slab_0:6>, <biomesoplenty:planks_0:6>);
    setSafeSlabChopping(      "slab_palm", <biomesoplenty:wood_slab_0:7>, <biomesoplenty:planks_0:7>);
    setSafeSlabChopping(   "slab_redwood", <biomesoplenty:wood_slab_1:0>, <biomesoplenty:planks_0:8>);
    setSafeSlabChopping(    "slab_willow", <biomesoplenty:wood_slab_1:1>, <biomesoplenty:planks_0:9>);
    setSafeSlabChopping(      "slab_pine", <biomesoplenty:wood_slab_1:2>, <biomesoplenty:planks_0:10>);
    setSafeSlabChopping(  "slab_hellbark", <biomesoplenty:wood_slab_1:3>, <biomesoplenty:planks_0:11>);
    setSafeSlabChopping( "slab_jacaranda", <biomesoplenty:wood_slab_1:4>, <biomesoplenty:planks_0:12>);
    setSafeSlabChopping(  "slab_mahogany", <biomesoplenty:wood_slab_1:5>, <biomesoplenty:planks_0:13>);
    setSafeSlabChopping(     "slab_ebony", <biomesoplenty:wood_slab_1:6>, <biomesoplenty:planks_0:14>);
    setSafeSlabChopping("slab_eucalyptus", <biomesoplenty:wood_slab_1:7>, <biomesoplenty:planks_0:15>);
    //Mystical World
    setSafeSlabChopping("slab_charred", <mysticalworld:charred_slab:0>, <mysticalworld:charred_planks:0>);
    //Rustic
    setSafeSlabChopping(   "slab_olive",    <rustic:olive_slab_item:0>, <rustic:planks:0>);
    setSafeSlabChopping("slab_ironwood", <rustic:ironwood_slab_item:0>, <rustic:planks:1>);
//----