<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sasgaming.net/index.php?action=history&amp;feed=atom&amp;title=Minecraft%3ATree_definition</id>
	<title>Minecraft:Tree definition - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sasgaming.net/index.php?action=history&amp;feed=atom&amp;title=Minecraft%3ATree_definition"/>
	<link rel="alternate" type="text/html" href="https://wiki.sasgaming.net/index.php?title=Minecraft:Tree_definition&amp;action=history"/>
	<updated>2026-09-08T17:47:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.sasgaming.net/index.php?title=Minecraft:Tree_definition&amp;diff=166764&amp;oldid=prev</id>
		<title>SyncBot: Sync: updated from Minecraft</title>
		<link rel="alternate" type="text/html" href="https://wiki.sasgaming.net/index.php?title=Minecraft:Tree_definition&amp;diff=166764&amp;oldid=prev"/>
		<updated>2026-07-18T11:14:44Z</updated>

		<summary type="html">&lt;p&gt;Sync: updated from Minecraft&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:14, 18 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l123&quot;&gt;Line 123:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 123:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| style=&amp;quot;text-align: center;&amp;quot; |[[File:Fancy_trunk placer.png|x100px]] || &amp;lt;code&amp;gt;fancy_trunk_placer&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| style=&amp;quot;text-align: center;&amp;quot; |[[File:Fancy_trunk placer.png|x100px]] || &amp;lt;code&amp;gt;fancy_trunk_placer&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|| Places a straight trunk of &amp;lt;code&amp;gt;(height + 2) * 0.618&amp;lt;/code&amp;gt; and branches in random directions. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Foliage is attached to the end of all branches that are &lt;/del&gt;at least 20% up the tree.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|| Places a straight trunk of &amp;lt;code&amp;gt;(height + 2) * 0.618&amp;lt;/code&amp;gt; and branches in random directions. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Branches always generate &lt;/ins&gt;at least 20% up the tree.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;No additional fields&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;No additional fields&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SyncBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.sasgaming.net/index.php?title=Minecraft:Tree_definition&amp;diff=158001&amp;oldid=prev</id>
		<title>SyncBot: Sync: new page from Minecraft</title>
		<link rel="alternate" type="text/html" href="https://wiki.sasgaming.net/index.php?title=Minecraft:Tree_definition&amp;diff=158001&amp;oldid=prev"/>
		<updated>2026-06-30T11:11:51Z</updated>

		<summary type="html">&lt;p&gt;Sync: new page from Minecraft&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{exclusive|java}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Minecraft:Tree]]s&amp;#039;&amp;#039;&amp;#039; are features with a stem and leaves, and optionally roots and decorations. They are configured using [[Minecraft:configured feature]]s in [[Minecraft:data packs]].&lt;br /&gt;
&lt;br /&gt;
== JSON format ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;section begin=&amp;quot;json_format&amp;quot; /&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: Root object.&lt;br /&gt;
** {{nbt|string|type}}: {{cd|minecraft:tree}}&lt;br /&gt;
** {{nbt|compound|config}}&lt;br /&gt;
***{{nbt|boolean|ignore_vines}} (optional, defaults to false) Allows the tree to generate even if there are vines blocking it.&lt;br /&gt;
*** {{nbt|compound|below_trunk_provider}} An optional rule-based block state provider defining how to replace the block below the trunk. For the default value, see {{slink|Tree definition|Default below trunk provider}}&lt;br /&gt;
**** {{Nbt_inherit/rule-based_block_state_provider}}&lt;br /&gt;
*** {{nbt|compound|trunk_provider}} The block to use for the trunk. Note that when the trunk placer is &amp;lt;code&amp;gt;fancy_trunk_placer&amp;lt;/code&amp;gt;, the block must have &amp;lt;code&amp;gt;axis&amp;lt;/code&amp;gt; property, such as logs.&lt;br /&gt;
**** {{Nbt inherit/block state provider}}&lt;br /&gt;
*** {{nbt|compound|foliage_provider}} The block to use for the foliage.&lt;br /&gt;
**** {{Nbt inherit/block state provider}}&lt;br /&gt;
*** {{nbt|compound|minimum_size}} Defines the width of the tree at different heights relative to the lowest trunk block, for the minimum size of the feature, see {{slink|Tree definition|Minimum size}}&lt;br /&gt;
*** {{nbt|compound|trunk_placer}} Defines how the trunk is generated, see {{slink|Tree definition|Trunk placer}}&lt;br /&gt;
*** {{nbt|compound|foliage_placer}} Defines how the foliage is generated, see {{slink|Tree definition|Foliage placer}}&lt;br /&gt;
*** {{Nbt|compound|root_placer}} (optional) Controls how roots are generated, and which blocks to use, see {{slink|Tree definition|Root placer}}&lt;br /&gt;
*** {{nbt|list|decorators}} (Required, but can be empty) Decorations to add to the tree apart from the trunk and leaves.&lt;br /&gt;
**** {{nbt|compound}} A decorator, see {{slink|Tree definition|Decorator}}&lt;br /&gt;
&amp;lt;section end=&amp;quot;json_format&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Default below trunk provider ===&lt;br /&gt;
When not specified the below trunk provider defaults to the following [[Minecraft:rule-based block state provider]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;rules&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;if_true&amp;quot;: {&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;minecraft:not&amp;quot;,&lt;br /&gt;
                &amp;quot;predicate&amp;quot;: {&lt;br /&gt;
                    &amp;quot;type&amp;quot;: &amp;quot;minecraft:matching_block_tag&amp;quot;,&lt;br /&gt;
                    &amp;quot;tag&amp;quot;: &amp;quot;minecraft:cannot_replace_below_tree_trunk&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;then&amp;quot;: {&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;minecraft:simple_state_provider&amp;quot;,&lt;br /&gt;
                &amp;quot;state&amp;quot;: {&lt;br /&gt;
                    &amp;quot;Name&amp;quot;: &amp;quot;minecraft:dirt&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Minimum size ==&lt;br /&gt;
The minimum size determines how much space needs to be available for the tree to be able to place. This is done by checking a square area of varying widths at each vertical position of the tree. The available free height is calculated as the height until all square are free.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound|minimum_size}}&lt;br /&gt;
** {{nbt|string|type}} One of &amp;lt;code&amp;gt;two_layers_feature_size&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;three_layers_feature_size&amp;lt;/code&amp;gt;&lt;br /&gt;
** {{nbt|float|min_clipped_height}} (optional) Value between 0 and 80 (inclusive). If specified and lower than the trunk height, specifies the minimum free height required for the tree to generate. Otherwise the trunk height is used instead.&lt;br /&gt;
** Additional fields depend on the value of {{Nbt|string|type}}, see below.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== two_layers_feature_size ===&lt;br /&gt;
Specifies 2 different width based on height. At heights lower than {{nbt|int|limit}}, {{nbt|int|lower_size}} is used, otherwise {{nbt|int|upper_size}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
** {{nbt|int|limit}} (optional, defaults to 1) Value between 0 and 81 (inclusive). The limit between lower and upper layer.&lt;br /&gt;
** {{nbt|int|lower_size}} (optional, defaults to 0) Value between 0 and 16 (inclusive). Minimum width of the tree at heights under {{nbt|int|limit}}.&lt;br /&gt;
** {{nbt|int|upper_size}} (optional, defaults to 1) Value between 0 and 16 (inclusive). Minimum width of the tree at heights greater than or equals {{nbt|int|limit}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== three_layers_feature_size ===&lt;br /&gt;
Specifies 3 different width based on height. At heights lower than {{nbt|int|limit}}, the minimum width is {{nbt|int|lower_size}}, at the topmost {{nbt|int|upper_limit}} of the trunk {{nbt|int|upper_size}} is used, otherwise {{nbt|int|middle_size}} is used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
** {{nbt|int|limit}} (optional, defaults to 1) Value between 0 and 80 (inclusive). Height of the lower layer, calculated from the bottom of the trunk.&lt;br /&gt;
** {{nbt|int|upper_limit}} (optional, defaults to 1) Value between 0 and 80 (inclusive). Height of the upper layer, calculated from the top of the trunk.&lt;br /&gt;
** {{nbt|int|lower_size}} (optional. defaults to 0) Value between 0 and 16 (inclusive). Minimum width of the tree in the bottom layer (i.e. the bottom {{nbt|int|limit}} blocks of the trunk).&lt;br /&gt;
** {{nbt|int|middle_size}} (optional, defaults to 1) Value between 0 and 16 (inclusive). Minimum width of the tree at the middle layer (i.e. between bottom and top layers).&lt;br /&gt;
** {{nbt|int|upper_size}} (optional, defaults to 1) Value between 0 and 16 (inclusive). Minimum width of the tree in the upper layer (i.e. the topmost {{nbt|int|upper_limit}} blocks of the trunk).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trunk placer ==&lt;br /&gt;
The trunk placer determines the shape trunk of the tree. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound|trunk_placer}}&lt;br /&gt;
** {{nbt|string|type}} One of &amp;lt;code&amp;gt;straight_trunk_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;forking_trunk_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;giant_trunk_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mega_jungle_trunk_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dark_oak_trunk_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;fancy_trunk_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bending_trunk_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;upwards_branching_trunk_placer&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;cherry_trunk_placer&amp;lt;/code&amp;gt;.&lt;br /&gt;
** {{nbt|int|base_height}} Value between 0 and 32 (inclusive). The base height of the trunk.&lt;br /&gt;
** {{nbt|int|height_rand_a}} Value between 0 and 24 (inclusive). A random value between 0 and this value (inclusive) is added to the height of the trunk.&lt;br /&gt;
** {{nbt|int|height_rand_b}} Value between 0 and 24 (inclusive). Another random value between 0 and this value (inclusive) is added to the height of the trunk.&lt;br /&gt;
** Additional fields depend on the value of {{Nbt|string|type}}, see below.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Trunk placers&lt;br /&gt;
|-&lt;br /&gt;
! !! Name !! Description and Additional Fields&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; min-width: 100px;&amp;quot; |[[File:Straight trunk placer.png|x100px]] || &amp;lt;code&amp;gt;straight_trunk_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places a straight trunk of specified height. Foliage is attached to be block above the highest trunk block.&lt;br /&gt;
&lt;br /&gt;
No additional fields&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Forking_trunk placer.png|x100px]] || &amp;lt;code&amp;gt;forking_trunk_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places a trunk with 1 or 2 branches, with an overhang of 1 to 3 blocks. Foliage is attached to the top of each branch.&lt;br /&gt;
&lt;br /&gt;
No additional fields&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Giant_trunk placer.png|x100px]] || &amp;lt;code&amp;gt;giant_trunk_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places a 2&amp;amp;times;2 trunk of the specified height, except the topmost block is only a single block. Foliage is attached to be block above the highest trunk block.&lt;br /&gt;
&lt;br /&gt;
No additional fields&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Mega_jungle_trunk placer.png|x100px]] || &amp;lt;code&amp;gt;mega_jungle_trunk_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Extends the &amp;lt;code&amp;gt;giant_trunk_placer&amp;lt;/code&amp;gt; with branches of length 5 in random directions in the top half of the trunk. Foliage is additionally attached to the end of each branch.&lt;br /&gt;
&lt;br /&gt;
No additional fields&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Dark_oak_trunk placer.png|x100px]] || &amp;lt;code&amp;gt;dark_oak_trunk_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places a 2&amp;amp;times;2 trunk of the specified height. Additionally places columns of branches in a 4&amp;amp;times;4 area around the stem in the topmost 5 blocks of the trunk. Foliage is attached to the top of the trunk as well as the top of each branch. &lt;br /&gt;
&lt;br /&gt;
No additional fields&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Fancy_trunk placer.png|x100px]] || &amp;lt;code&amp;gt;fancy_trunk_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places a straight trunk of &amp;lt;code&amp;gt;(height + 2) * 0.618&amp;lt;/code&amp;gt; and branches in random directions. Foliage is attached to the end of all branches that are at least 20% up the tree.&lt;br /&gt;
&lt;br /&gt;
No additional fields&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Bending_trunk placer.png|x100px]] || &amp;lt;code&amp;gt;bending_trunk_placer&amp;lt;/code&amp;gt;  &lt;br /&gt;
|| Places a trunk of the specified height. The topmost 2 blocks have a chance to be moved by one block each. On top of the trunk a straight branch of length {{nbt|int}}{{nbt|compound|bend_length}} is generated. Foliage is attached to all block of the top branch and any trunk block that is higher than {{nbt|int|min_height_for_leaves}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
** {{nbt|int}}{{nbt|compound|bend_length}} Value between 1 and 64 (inclusive).&lt;br /&gt;
*** {{nbt inherit/int_provider}}&lt;br /&gt;
** {{nbt|int|min_height_for_leaves}} (optional, defaults to 1) Must be a positive integer.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Upwards_branching_trunk_placer.png|x100px]] || &amp;lt;code&amp;gt;upwards_branching_trunk_placer&amp;lt;/code&amp;gt;  &lt;br /&gt;
||{{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
** {{nbt|int}}{{nbt|compound|extra_branch_steps}} The number of steps to generate extra branches. Must be a positive integer.&lt;br /&gt;
**** {{nbt inherit/int_provider}}&lt;br /&gt;
** {{nbt|int}}{{nbt|compound|extra_branch_length}} Generates extra branch length. Must be a non-negative integer.&lt;br /&gt;
*** {{nbt inherit/int_provider}}&lt;br /&gt;
** {{nbt|float|place_branch_per_log_probability}} The probability of each log producing a branch. Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
** {{nbt|string}}{{nbt|list|can_grow_through}} A block ID or a block tag, or a list of block IDs. Represents blocks that tree trunks can grow through.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Cherry_trunk placer.png|x100px]] || &amp;lt;code&amp;gt;cherry_trunk_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
||{{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
** {{nbt|int}}{{nbt|compound|branch_count}} Value between 1 and 3 (inclusive).&lt;br /&gt;
*** {{nbt inherit/int_provider}}&lt;br /&gt;
** {{nbt|int}}{{nbt|compound|branch_horizontal_length}} Value between 2 and 16 (inclusive).&lt;br /&gt;
*** {{nbt inherit/int_provider}}&lt;br /&gt;
** {{nbt|int}}{{nbt|compound|branch_start_offset_from_top}} A uniform int provider, which provides a number between two bounds with uniform distribution. Must between -16 and 0 (inclusive). And since it needs at least 2 blocks variation for the branch starts to fit both branches, {{cd|max_inclusive}} must be at least {{cd|min_inclusive + 1}}.&lt;br /&gt;
*** {{nbt|int|min_inclusive}} The minimum possible value.&lt;br /&gt;
*** {{nbt|int|max_inclusive}} The maximum possible value.&lt;br /&gt;
** {{nbt|int}}{{nbt|compound|branch_end_offset_from_top}} Value between -16 and 16 (inclusive).&lt;br /&gt;
*** {{nbt inherit/int_provider}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Foliage placer ==&lt;br /&gt;
{{info needed section|does poplar use an existing example or does it introduce its own?}}&lt;br /&gt;
The foliage placer determines the placement and shape of the foliage of the tree.&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound|foliage_placer}}&lt;br /&gt;
**{{nbt|string|type}} One of &amp;lt;code&amp;gt;blob_foliage_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;spruce_foliage_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pine_foliage_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;acacia_foliage_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bush_foliage_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;fancy_foliage_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;jungle_foliage_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mega_pine_foliage_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dark_oak_foliage_placer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;random_spread_foliage_placer&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;cherry_foliage_placer&amp;lt;/code&amp;gt;.&lt;br /&gt;
** {{nbt|int}}{{nbt|compound|radius}} The radius of the foliage.&lt;br /&gt;
*** {{Nbt inherit/int provider}}&lt;br /&gt;
**{{nbt|int}}{{nbt|compound|offset}} The vertical offset from the top of trunk to the top of the foliage.{{needs testing}}&lt;br /&gt;
*** {{Nbt inherit/int provider}}&lt;br /&gt;
** Additional fields depend on the value of {{Nbt|string|type}}, see below.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Foliage placers&lt;br /&gt;
|-&lt;br /&gt;
! !! Name !! Description and Additional Fields&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; min-width: 100px;&amp;quot; |[[File:Blob_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;blob_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|int|height}} The foliage&amp;#039;s height. Value between 0 and 16 (inclusive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Bush_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;bush_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|int|height}} The foliage&amp;#039;s height. Value between 0 and 16 (inclusive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Fancy_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;fancy_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|int|height}} The foliage&amp;#039;s height. Value between 0 and 16 (inclusive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Jungle_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;jungle_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|int|height}} The foliage&amp;#039;s height. Value between 0 and 16 (inclusive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Spruce_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;spruce_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places cones starting from the top of the trunk + offset, with increasing radius that increases until it hits a maximum radius, where it will keep generating frustums at maximum radius until the foliage is trunk_height + 1 tall&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|int}}{{nbt|compound|trunk_height}} Value between 0 and 24 (inclusive).&lt;br /&gt;
***{{nbt inherit/int_provider}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Pine_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;pine_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|int}}{{nbt|compound|height}} Value between 0 and 24 (inclusive).&lt;br /&gt;
***{{Nbt inherit/int provider}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Mega_pine_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;mega_pine_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|int}}{{nbt|compound|crown_height}} Value between 0 and 24 (inclusive).&lt;br /&gt;
***{{nbt inherit/int_provider}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Random_spread_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;random_spread_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|int}}{{nbt|compound|foliage_height}} Value between 1 and 512 (inclusive).&lt;br /&gt;
***{{nbt inherit/int_provider}}&lt;br /&gt;
**{{nbt|int|leaf_placement_attempts}} Value between 0 and 256 (inclusive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Cherry_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;cherry_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|int}}{{nbt|compound|height}} Value between 4 and 16 (inclusive).&lt;br /&gt;
***{{Nbt inherit/int provider}}&lt;br /&gt;
**{{nbt|float|wide_bottom_layer_hole_chance}} Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
**{{nbt|float|corner_hole_chance}} Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
**{{nbt|float|hanging_leaves_chance}} Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
**{{nbt|float|hanging_leaves_extension_chance}} Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Acacia_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;acacia_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
No additional fields.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Dark_oak_foliage_placer.png|x100px]] || &amp;lt;code&amp;gt;dark_oak_foliage_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
No additional fields.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Root placer==&lt;br /&gt;
The root placer is optional and controls the placement and shape of the roots, and moving the trunk upwards.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{Nbt|compound|root_placer}}&lt;br /&gt;
** {{Nbt|string|type}} Type of tree root placer, currently only {{cd|mangrove_root_placer}}.&lt;br /&gt;
** {{Nbt|compound|root_provider}} The block used as the root of the tree.&lt;br /&gt;
*** {{Nbt inherit/block state provider}}&lt;br /&gt;
** {{Nbt|int}}{{Nbt|compound|trunk_offset_y}} Offset perpendicular to the trunk.&lt;br /&gt;
*** {{Nbt inherit/int provider}}&lt;br /&gt;
** {{Nbt|compound|above_root_placement}} (optional) The blocks above the root.&lt;br /&gt;
*** {{Nbt|compound|above_root_provider}} The block above the root.&lt;br /&gt;
**** {{Nbt inherit/block state provider}}&lt;br /&gt;
*** {{Nbt|float|above_root_placement_chance}} The probability of generating the block. Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
** Additional fields depend on the value of {{Nbt|string|type}}, see below.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Root placers&lt;br /&gt;
|-&lt;br /&gt;
! !! Name !! Description and Additional Fields&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; min-width: 100px;&amp;quot; |[[File:Mangrove root placer.png|x100px]] || &amp;lt;code&amp;gt;mangrove_root_placer&amp;lt;/code&amp;gt;&lt;br /&gt;
|| {{info needed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
** {{Nbt|compound|mangrove_root_placement}} Mangrove root placement parameter.&lt;br /&gt;
*** {{Nbt|int|max_root_width}} The maximum width of the root. Value between 1 and 12 (inclusive).&lt;br /&gt;
*** {{Nbt|int|max_root_length}} The maximum length of the root. Value between 1 and 64 (inclusive).&lt;br /&gt;
*** {{Nbt|float|random_skew_chance}} The probability of random skew. Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
*** {{Nbt|string}}{{Nbt|list|can_grow_through}} A block ID or a block tag, or a list of block IDs. Blocks that roots can grow through.&lt;br /&gt;
*** {{Nbt|string}}{{Nbt|list|muddy_roots_in}} A block ID or a block tag, or a list of block IDs. Roots in it turn into muddy root blocks.&lt;br /&gt;
*** {{Nbt|compound|muddy_roots_provider}} Blocks used as muddy roots.&lt;br /&gt;
**** {{Nbt inherit/block state provider}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Decorator ==&lt;br /&gt;
Decorators are used to add additional blocks to various parts of the tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A decorator.&lt;br /&gt;
**{{nbt|string|type}} The type of decoration to add. One of &amp;lt;code&amp;gt;alter_ground&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attached_to_leaves&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attached_to_logs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;beehive&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cocoa&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;creaking_heart&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;leave_vine&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pale_moss&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;place_on_ground&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;trunk_vine&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Additional fields depend on the value of {{Nbt|string|type}}, see below.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Tree decorators&lt;br /&gt;
|-&lt;br /&gt;
! !! Name !! Description and Additional Fields&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; min-width: 100px;&amp;quot; |[[File:Alter_ground tree decorator.png|x100px]] || &amp;lt;code&amp;gt;alter_ground&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Replaces blocks in the {{tag link|block|minecraft:dirt}} tag around the tree with different blocks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|compound|provider}} A rule-based block state provider defining how to replace the ground.&lt;br /&gt;
***{{nbt inherit/rule-based block_state_provider}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Attached_to_leaves tree decorator.png|x100px]] || &amp;lt;code&amp;gt;attached_to_leaves&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Attaches blocks to exposed faces of all foliage blocks in specified directions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
** {{Nbt|float|probability}} Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
** {{Nbt|int|exclusion_radius_xz}} The minimum value of the horizontal distance between two decorations. Value between 0 and 16 (inclusive).&lt;br /&gt;
** {{Nbt|int|exclusion_radius_y}} The minimum value of the vertical distance between two decorations. Value between 0 and 16 (inclusive).&lt;br /&gt;
** {{Nbt|int|required_empty_blocks}} The number of empty blocks required by the decoration. Value between 0 and 16 (inclusive).&lt;br /&gt;
** {{Nbt|compound|block_provider}} The block of the decoration.&lt;br /&gt;
*** {{Nbt inherit/block state provider}}&lt;br /&gt;
** {{Nbt|list|directions}} (Cannot be empty) Directions to generate.&lt;br /&gt;
*** {{Nbt|string}} A direction. Must be {{cd|up}}, {{cd|down}}, {{cd|north}}, {{cd|south}} , {{cd|west}}, or {{cd|east}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Attached_to_logs tree decorator.png|x100px]] || &amp;lt;code&amp;gt;attached_to_logs&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Attaches blocks to exposed faces of all trunk blocks in specified directions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
** {{Nbt|float|probability}} Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
** {{Nbt|compound|block_provider}} The block of the decoration.&lt;br /&gt;
*** {{Nbt inherit/block state provider}}&lt;br /&gt;
** {{Nbt|list|directions}} (Cannot be empty) Directions to generate.&lt;br /&gt;
*** {{Nbt|string}} A direction. Must be {{cd|up}}, {{cd|down}}, {{cd|north}}, {{cd|south}} , {{cd|west}}, or {{cd|east}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Beehive tree decorator.png|x100px]] || &amp;lt;code&amp;gt;beehive&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places a single [[Minecraft:beehive]] with the specified probability. The beehive is always located 1 block below the lowest leaves block, but possibly on a different branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|float|probability}} Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Cocoa tree decorator.png|x100px]] || &amp;lt;code&amp;gt;cocoa&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places [[Minecraft:cocoa beans]] on the bottom 3 blocks of the trunk with a probability of 25% for each face. The specified probability determines how often any cocoa beans are placed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|float|probability}} Value between 0.0 and 1.0 (inclusive). Probability that this feature places any cocoa beans.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Creaking_heart tree decorator.png|x100px]] || &amp;lt;code&amp;gt;creaking_heart&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places a creaking heart, replacing a trunk block in a position where all 6 surrounding blocks are in the {{tag link|block|minecraft:logs}} tag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|float|probability}} Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Leave_vine tree decorator.png|x100px]] || &amp;lt;code&amp;gt;leave_vine&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places [[Minecraft:vines]] attached to any foliage blocks. Each vine is extended by 4 blocks downwards if possible.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|float|probability}} Value between 0.0 and 1.0 (inclusive). Probability of placing a vine at any given position.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Pale_moss tree decorator.png|x100px]] || &amp;lt;code&amp;gt;pale_moss&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Places the {{cd|minecraft:pale_moss_patch}} [[Minecraft:configured feature]] at the position of the lowest log with probability {{nbt|float|ground_probability}}.&lt;br /&gt;
&lt;br /&gt;
Adds [[Minecraft:hanging moss]] to the bottom of trunk and foliage blocks with probability {{nbt|float|trunk_probability}} and {{nbt|float|ground_probability}} respectively.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|float|leaves_probability}} Value between 0.0 and 1.0 (inclusive). &lt;br /&gt;
**{{nbt|float|trunk_probability}} Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
**{{nbt|float|ground_probability}} Value between 0.0 and 1.0 (inclusive).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Place_on_ground tree decorator.png|x100px]] || &amp;lt;code&amp;gt;place_on_ground&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Tries {{nbt|int|tries}} positions within the specified radius and height range to find a position that is at the height of the &amp;lt;code&amp;gt;MOTION_BLOCKING_NO_LEAVES&amp;lt;/code&amp;gt; [[Minecraft:heightmap]], is solid, and has air above. Places the specified block on the block above any matching positions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* Additional fields:&lt;br /&gt;
**{{nbt|int|tries}} Optional positive int. Defaults to 128.&lt;br /&gt;
**{{nbt|int|radius}} Optional non-negative int. Defaults to 2.&lt;br /&gt;
**{{nbt|int|height}} Optional non-negative int. Defaults to 1.&lt;br /&gt;
** {{Nbt|compound|block_state_provider}} The block of the decoration.&lt;br /&gt;
*** {{Nbt inherit/block state provider}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[[File:Trunk_vine tree decorator.png|x100px]] || &amp;lt;code&amp;gt;trunk_vine&amp;lt;/code&amp;gt;&lt;br /&gt;
|| Adds vines to each side of each trunk block with a probability of 75% each.&lt;br /&gt;
&lt;br /&gt;
No additional fields.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{HistoryTable&lt;br /&gt;
|{{HistoryLine|java}}&lt;br /&gt;
|{{HistoryLine||1.16.2|dev=20w28a|Trees can now be configured using data packs.}}&lt;br /&gt;
|{{HistoryLine||1.17|dev=21w10a|Removed {{nbt|int|max_water_depth}} and {{nbt|string|heightmap}} fields.&lt;br /&gt;
|Added {{nbt|compound|dirt_provider}} and {{nbt|boolean|force_dirt}}&lt;br /&gt;
|Renamed {{nbt|compound|leaves_provider}} to {{nbt|compound|foliage_provider}}&lt;br /&gt;
|Added &amp;lt;code&amp;gt;random_spread_foliage_placer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bending_trunk_placer&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
|{{HistoryLine|||dev=pre1|Added {{nbt|compound|sapling_provider}} field}}&lt;br /&gt;
|{{HistoryLine||1.18|dev=21w38a|Removed {{nbt|compound|sapling_provider}} field}}&lt;br /&gt;
|{{HistoryLine||1.19|dev=22w14a|Added {{nbt|compound|root_placer}} field and the &amp;lt;code&amp;gt;mangrove_root_placer&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Added &amp;lt;code&amp;gt;attached_to_leaves&amp;lt;/code&amp;gt; decorator.&lt;br /&gt;
|Added {{nbt|float|probability}} field to the &amp;lt;code&amp;gt;leave_vine&amp;lt;/code&amp;gt; decorator.&lt;br /&gt;
|Added &amp;lt;code&amp;gt;upwards_branching_trunk_placer&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
|{{HistoryLine|||dev=22w15a|Added {{nbt|int}}{{nbt|compound|trunk_offset_y}} and {{nbt|compound|above_root_placement}} fields to the root placer.&lt;br /&gt;
|Removed the {{nbt|int|y_offset}} field of the &amp;lt;code&amp;gt;mangrove_root_placer&amp;lt;/code&amp;gt;. Moved all other additional fields of &amp;lt;code&amp;gt;mangrove_root_placer&amp;lt;/code&amp;gt; into an object {{nbt|compound|mangrove_root_placement}}.}}&lt;br /&gt;
|{{HistoryLine||1.19.4|dev=23w07a|Added &amp;lt;code&amp;gt;cherry_foliage_placer&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cherry_trunk_placer&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
|{{HistoryLine||1.21.2|dev=24w40a|Added &amp;lt;code&amp;gt;pale_moss&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;creaking_heart&amp;lt;/code&amp;gt; decorators.}}&lt;br /&gt;
|{{HistoryLine||1.21.5|dev=25w02a|Added &amp;lt;code&amp;gt;place_on_ground&amp;lt;/code&amp;gt; decorator.}}&lt;br /&gt;
|{{HistoryLine|||dev=25w09a|Added &amp;lt;code&amp;gt;attached_to_logs&amp;lt;/code&amp;gt; decorator.}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
{{Navbox Java Edition technical|datapack}}&lt;/div&gt;</summary>
		<author><name>SyncBot</name></author>
	</entry>
</feed>