Uploaded image for project: 'Minecraft (Bedrock codebase)'
  1. Minecraft (Bedrock codebase)
  2. MCPE-156669

Sculk catalysts and decorative veins are limited on which blocks they can be placed during world generation

XMLWordPrintable

    • Confirmed
    • Multiple
    • 820511

      Bedrock's sculk patch and decorative vein feature files contain the "can_place_sculk_patch_on" and "can_place_on" objects which tell those generators which blocks they can be attached to when starting a new patch during world generation.

      Currently, this object only contains entries for stone (which covers all types of stone due to the object only accepting legacy id's) grass, dirt, and deepslate. However, as seen in the attached screenshots, Java Edition allows catalysts and veins to be placed on many other block types, including most of the other solid deepslate variants, planks, and even gray wool. (I could not verify if catalysts can be placed on polished deepslate - I could not find an example in Java Edition.)

      Note that this is separate from whether any of these blocks get converted to sculk when a sculk patch spreads out below the catalyst - that logic appears to be working properly. This only tells the patch generator whether to generate a patch or skip a particular iteration.

      The observed result in Bedrock is structures which lack the extra sculk growth control block (e.g, city centers and tall ruins to name a few) never have any sculk catalysts placed on them which in turn inhibits most sculk growth on those structures, unlike Java Edition.

      The two feature files:

      • features\sculk_patch_feature.json and
      • features\sculk_vein_feature.json

      should have their "can_place_sculk_patch_on" ("can_place_on" for the veins feature file) object modified to look something like this:

      "can_place_sculk_patch_on": [
        "minecraft:stone",
        "minecraft:deepslate",
        "minecraft:cobbled_deepslate",
        "minecraft:deepslate_tiles",
        "minecraft:cracked_deepslate_tiles",
        "minecraft:deepslate_bricks",
        "minecraft:cracked_deepslate_bricks",
        "minecraft:tuff",
        "minecraft:planks"
      ],

      Even though it was mentioned earlier, wool wasn't included because that would place catalysts on the camp site structures and while the wool will not get converted to sculk, it is not a behavior I observed on Java Edition. Unfortunately, as explained earlier, the placement object appears to only accept legacy ids so an id like "minecraft:gray_wool" doesn't work.

      Grass and dirt were removed because dirt never appears in the Deep Dark and placing catalysts on the grass inside the city center secret room seems undesirable.

      The "features\sculk_patch_feature_ancient_city.json" file was left alone because I believe those sculk patches always grow out from the special control blocks embedded in the structure. I'm not sure of the purpose of having a filter to limit placement of the sculk catalyst in those instances.

      Finally, there is a case to be made to add "minecraft:sculk" to the list in "features\sculk_patch_feature.json" to help generate bigger sculk patches and more shriekers. (See MCPE-154229 and MCPE-153525.) Currently, when a catalyst cannot be placed on existing sculk the iteration fails and is wasted. Instead, it could be used to help grow the existing sculk patch.

        1. java_city_center.jpg
          java_city_center.jpg
          42 kB
        2. java_on_brick.jpg
          java_on_brick.jpg
          36 kB
        3. java_on_cobbleDS.jpg
          java_on_cobbleDS.jpg
          32 kB
        4. java_on_planks.jpg
          java_on_planks.jpg
          43 kB
        5. java_on_tile.jpg
          java_on_tile.jpg
          37 kB
        6. java_on_wool.jpg
          java_on_wool.jpg
          37 kB

            MCExplorer44 MCExplorer44
            Votes:
            3 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: