-
Notifications
You must be signed in to change notification settings - Fork 9
Custom Decorations
BiomeTweaker 3.0 introduced the ability for you to create your own decoration for your biomes. This is done in a similar manner to tweaking biomes. To get started, you'll want to decide when you want your decoration to generate. This is done with the setPlacementStage command. A typical value would be "POST_ORES", and you must set this yourself, it is not the default. Your decorations will not generate on the default stage "BIOME_BLOCKS" See the setPlacementStage command documentation for more information. You can also set the world that decoration will generate in. See the setWorld command for more information.
https://github.com/superckl/BiomeTweaker/wiki/Basic-Script-Commands#setplacementstage https://github.com/superckl/BiomeTweaker/wiki/Basic-Script-Commands#setworld
Example:
Tweaker.setPlacementStage("POST_ORES")
#Ore script here
Now you'll want to create a new decoration.
There are current three types of custom decorations available in BiomeTweaker. Since there are nearly completely customizable, they cover all of possible use cases. You create new decorations in the same way you specify biome objects. All commands to create new decorations take no arguments.
As you may imagine, this creates a new ore decoration. It will generate in a similar manner to coal and iron.
Example:
oreDec = newOreDecoration()
This creates a new tree decoration. It will generate in a similar manner to oak trees.
Example:
oreDec = newTreeDecoration()
This one is a little less straightforward. It will generate in a similar manner to flowers, melon, and pumpkin.
Example:
oreDec = newClusterDecoration()
This decoration mimics your usual clay placement. It generate flat splotches of the desired block.
Example:
splotchDec = newSplotchDecoration();
You can customize your decoration in the same way tweak biomes. All decorations share a few customization options, but each decoration has their own unique set of options. You can set most of them through the standard set command.
Example:
decoration.set("count", 10)
All decoration admit the count and mainBlock options.
-
count - Sets how many of this decoration to generate in a chunk. It defaults to 10, but typical values differ for each decoration.
-
mainBlock - Sets a decoration's main block. For ores and clusters, it's simply the block that generates. For trees, it will be the trunk. It defaults to stone for ores, but typical values differ for each decoration.
Ore decorations admit three more options and one command. These allow you to customize the options you typically think of when you imagine ores.
-
size - Ses the amount of ore blocks that will generate per vein. This is not a rigid value, more like a recommendation. Defaults to 9.
-
minY, maxY - Sets the the minimum and maximum y-value that this ore will generate at. Defaults to 0 and 128, respectively.
This command lets you add a block that the ore should replace. Defaults to stone.
Example:
oreDec.addBlockToReplace("minecraft:dirt")
Tree decorations admit seven more options and one command. These allow you to customize the options you typically think of when you imagine trees.
-
minHeight - Sets the how tall the tree will be. This is not a rigid value, more like a recommendation. Defaults to 4.
-
heightVariation - Sets the maximum amount of variation in the tree's height. Defaults to 3.
-
leafBlock - Sets the block that will generate as leaves. Defaults to regular oak leaves.
-
vineBlock - Sets the block that will generate as vines. Defaults to regular vines.
-
leafHeight - Sets how tall the leaves should be on this tree. I would recommend only using even values, otherwise leaves look a bit wonky. Defaults to 4.
-
checkCanGrow - Sets if the tree will check that saplings can grow on block below it. If false, you must also add a soil block for the tree to generate. Defaults to true.
-
growVines - Sets if the tree will generate hanging vines. Defaults to false.
This command lets you set the blocks that this tree can generate on. Defaults to nothing, which requires checkCanGrow to grow.
Example:
treeDec.addSoilBlock("minecraft:stone")
Cluster decorations admit two more options and one command. These allow you to customize the options you typically think of when you imagine clusters.
-
radius - Sets the radius over which this cluster can generate. Higher values will cause more spread out generation (flowers). Smaller values will cause the blocks to be clustered together (pumpkin). Defaults to 8
-
height - Sets the the range y-values that this cluster will generate over. High values will cause the decoration to be able generate on steeply sloping cliffs. Defaults to 4.
This command lets you set the blocks that this cluster can generate on. Defaults to nothing, which allows the cluster to generate on anything except air.
Example:
clusterDec.addSoilBlock("minecraft:grass")
Ore decorations admit two more options and two command. These allow you to customize the options you typically think of when you imagine ores.
-
size - Sets the rough radius of blocks that will generate per splotch. This is not a rigid value, more like a recommendation. Defaults to 4.
-
requiresBase - Sets if the splotch needs a base block. This is the block that must be present for the splotch to generate. For example, clay has water as a base block (you only find clay near water). If set to false, the splotch decoration can generate anywhere it finds blocks it can replace. Defaults to true.
This command lets you add a base block for the splotch decoration. See the previous command for an explanation of base blocks. This does nothing if you set requires base block to false. Defaults to nothing.
Example:
splotchDec.addBaseBlock("minecraft:grass")
This command lets you add a block that the splotch should replace. Defaults to nothing.
Example:
splotchDec.addBlockToReplace("minecraft:dirt")
BiomeTweaker has been updated to 1.18. Please see the links below. Pages for previous versions can be found above.