<?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%3ABlock_state_provider</id>
	<title>Minecraft:Block state provider - 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%3ABlock_state_provider"/>
	<link rel="alternate" type="text/html" href="https://wiki.sasgaming.net/index.php?title=Minecraft:Block_state_provider&amp;action=history"/>
	<updated>2026-07-26T11:16:45Z</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:Block_state_provider&amp;diff=161369&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:Block_state_provider&amp;diff=161369&amp;oldid=prev"/>
		<updated>2026-07-08T11:04:12Z</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;
A &amp;#039;&amp;#039;&amp;#039;block state provider&amp;#039;&amp;#039;&amp;#039; is used to provide a (potentially randomized) [[Minecraft:block]] and [[Minecraft:block state]] to be placed by [[Minecraft:configured features]].&lt;br /&gt;
&lt;br /&gt;
== JSON format ==&lt;br /&gt;
Block state providers are defined using the following format: &lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A block state provider&amp;lt;section begin=&amp;quot;json format&amp;quot; /&amp;gt;&lt;br /&gt;
** {{nbt|string|type}}: The type of the block state provider, see {{slink|Block state provider|Types}} for option.&lt;br /&gt;
** Additional fields based on {{nbt|string|type}}, see {{slink|Block state provider|Types}}.&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;
== Types ==&lt;br /&gt;
The following block state provider types exist.&lt;br /&gt;
&lt;br /&gt;
=== copy_properties_provider ===&lt;br /&gt;
Copies common block state properties from the block at the evaluated position to the resulting state.{{upcoming|JE 26.3}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A block state provider&lt;br /&gt;
** {{nbt|string|type}}: &amp;lt;code&amp;gt;copy_properties_provider&amp;lt;/code&amp;gt;&lt;br /&gt;
** {{Nbt|string|source}}: Provides the block state which the copied properties are copied on top of. Only properties common between both the source and the target blocks will be copied.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== dual_noise_provider ===&lt;br /&gt;
Randomly chooses a block state according to two noise values.&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A block state provider&lt;br /&gt;
** {{nbt|string|type}}: &amp;lt;code&amp;gt;dual_noise_provider&amp;lt;/code&amp;gt;&lt;br /&gt;
** {{Nbt|long|seed}}: The seed of the noise.&lt;br /&gt;
** {{Nbt|compound|noise}}: A noise.&lt;br /&gt;
** {{Nbt|float|scale}}: Horizontal scale of noise. Must be a positive value.&lt;br /&gt;
** {{Nbt|compound|slow_noise}}: The noise used for the first selection.&lt;br /&gt;
** {{Nbt|float|slow_scale}}: Horizontal scale of the slow noise. Must be a positive value.&lt;br /&gt;
** {{Nbt|compound|variety}}: The number of block states that selected out by slow noise.&lt;br /&gt;
*** {{Nbt|int|min_inclusive}}: The min number of block states after selection by slow noise. Must be an integer equal to or greater than 1.&lt;br /&gt;
*** {{Nbt|int|max_inclusive}}: The max number of block states after selection by slow noise. Must be an integer equal to or less than 64, and must be greater than {{Nbt|int|min_inclusive}}.&lt;br /&gt;
** {{Nbt|list|variety}}: Shorthand version of {{Nbt|compound|variety}}.&lt;br /&gt;
*** {{Nbt|int}}: Min number. Must be an integer equal to or greater than 1.&lt;br /&gt;
*** {{Nbt|int}}: Max number. Must be an integer equal to or less than 64, and must be greater than the min number.&lt;br /&gt;
** {{Nbt|int|variety}}: Shorthand version of {{Nbt|compound|variety}} when the min equals to the max. Value between 1 and 64 (both inclusive).&lt;br /&gt;
** {{Nbt|list|states}}: List of block states to choose from.&lt;br /&gt;
*** {{Nbt|compound}}: A block state.&lt;br /&gt;
**** {{Nbt inherit/block_state}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== noise_provider ===&lt;br /&gt;
Randomly chooses a block state according to a noise value.&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A block state provider&lt;br /&gt;
** {{nbt|string|type}}: &amp;lt;code&amp;gt;noise_provider&amp;lt;/code&amp;gt;&lt;br /&gt;
** {{Nbt|long|seed}}: The seed of the noise.&lt;br /&gt;
** {{Nbt|compound|noise}}: A noise.&lt;br /&gt;
** {{Nbt|float|scale}}: Horizontal scale of the noise. Must be a positive value.&lt;br /&gt;
** {{Nbt|list|states}}: (Cannot be empty) List of optional block states.&lt;br /&gt;
*** {{Nbt|compound}}: A block state.&lt;br /&gt;
**** {{Nbt inherit/block_state}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== noise_threshold_provider ===&lt;br /&gt;
Uses different block states when a noise value above or below the threshold.&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A block state provider&lt;br /&gt;
** {{nbt|string|type}}: &amp;lt;code&amp;gt;noise_threshold_provider&amp;lt;/code&amp;gt;&lt;br /&gt;
** {{Nbt|long|seed}}: The seed of the noise.&lt;br /&gt;
** {{Nbt|compound|noise}}: A noise.&lt;br /&gt;
** {{Nbt|float|scale}}: Horizontal scale of noise. Must be a positive value.&lt;br /&gt;
** {{Nbt|float|threshold}}: Value between -1.0 and 1.0 (inclusive). The threshold of the noise value. If the noise value is lower than this value, the block states in {{cd|low_states}} will be selected.&lt;br /&gt;
** {{Nbt|float|high_chance}}: Value between 0.0 and 1.0 (inclusive). If the noise value is higher than the threshold, the block states in {{cd|high_states}} will be selected with a probability of high_chance.&lt;br /&gt;
** {{Nbt|compound|default_state}}: Default block state. These block states is used when the noise value is higher than {{cd|threshold}} but high_states is not selected according to high_chance.&lt;br /&gt;
*** {{Nbt inherit/block_state}}&lt;br /&gt;
** {{Nbt|list|low_states}}: (Cannot be empty) List of block states to choose from when lower than threshold.&lt;br /&gt;
*** {{Nbt|compound}}: A block state.&lt;br /&gt;
**** {{Nbt inherit/block_state}}&lt;br /&gt;
** {{Nbt|list|high_states}}: (Cannot be empty) List of block states to choose from when higher than threshold.&lt;br /&gt;
*** {{Nbt|compound}}: A block state.&lt;br /&gt;
**** {{Nbt inherit/block_state}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== simple_state_provider ===&lt;br /&gt;
Specifies a single block state directly&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A block state provider&lt;br /&gt;
** {{nbt|string|type}}: &amp;lt;code&amp;gt;simple_state_provider&amp;lt;/code&amp;gt;&lt;br /&gt;
** {{nbt|compound|state}}: The block state to use.&lt;br /&gt;
*** {{nbt inherit/block_state}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== random_block_provider ===&lt;br /&gt;
Returns the default block state for a randomly chosen block.{{upcoming|JE 26.3}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A block state provider&lt;br /&gt;
** {{nbt|string|type}}: &amp;lt;code&amp;gt;random_block_provider&amp;lt;/code&amp;gt;&lt;br /&gt;
** {{nbt|string}}{{nbt|compound}}{{nbt|list|blocks}}: {{json ref|block|tag=1|inline=1}}; Cannot be empty &amp;amp;mdash; Blocks to choose from.&lt;br /&gt;
*** {{nbt inherit/block_state}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== randomized_int_state_provider ===&lt;br /&gt;
Assigns a random value to an integer block property.&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A block state provider&lt;br /&gt;
** {{nbt|string|type}}: &amp;lt;code&amp;gt;randomized_int_state_provider&amp;lt;/code&amp;gt;&lt;br /&gt;
** {{Nbt|string|property}}: The name of a block property.&lt;br /&gt;
** {{Nbt|int}}{{Nbt|compound|values}}: The value of the block property.&lt;br /&gt;
*** {{Nbt inherit/int provider}}&lt;br /&gt;
** {{Nbt|compound|source}}: Another block state provider that specifies the source of the block state.&lt;br /&gt;
*** {{nbt inherit/block state provider}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== rotated_block_provider ===&lt;br /&gt;
Randomly rotates axially-rotated blocks{{until|JE 26.3}} / any block with {{cd|axis}} or {{cd|facing}} properties.{{upcoming|JE 26.3}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A block state provider&lt;br /&gt;
** {{nbt|string|type}}: &amp;lt;code&amp;gt;rotated_block_provider&amp;lt;/code&amp;gt;&lt;br /&gt;
** {{nbt|compound|state}}: The block ID to use. The block properties are ignored.{{until|JE 26.3}} / A block state provider{{upcoming|JE 26.3}}&lt;br /&gt;
** {{nbt|compound|direction}}{{upcoming|JE 26.3}}: Optional. Describes the direction to set. If omitted, a random direction is chosen.&lt;br /&gt;
*** {{nbt inherit/block_state}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== weighted_state_provider ===&lt;br /&gt;
Chooses a block state from a weighted list.&lt;br /&gt;
&amp;lt;div class=&amp;quot;treeview&amp;quot;&amp;gt;&lt;br /&gt;
* {{nbt|compound}}: A block state provider&lt;br /&gt;
** {{nbt|string|type}}: &amp;lt;code&amp;gt;weighted_state_provider&amp;lt;/code&amp;gt;&lt;br /&gt;
** {{nbt|list|entries}}: (Cannot be empty) A weighted list of block state entries.&lt;br /&gt;
*** {{nbt|compound}} A block state and its corresponding weight.&lt;br /&gt;
**** {{nbt|compound|data}}: The block state to use.&lt;br /&gt;
***** {{nbt inherit/block_state}}&lt;br /&gt;
**** {{nbt|int|weight}}: The weight of this entry.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
{{info needed section|general history of block state providers. Specifically, when block state providers were added or removed.}}&lt;br /&gt;
{{HistoryTable&lt;br /&gt;
|{{HistoryLine|java upcoming}}&lt;br /&gt;
|{{HistoryLine||26.3|dev=snap2|Added the {{cd|copy_properties_provider}} block state provider.}}&lt;br /&gt;
|{{HistoryLine|||dev=snap3|Added the {{cd|random_block_provider}} block state provider.&lt;br /&gt;
|Renamed the {{cd|source_block_state_provider}} field in {{cd|copy_properties_provider}} to {{cd|source}}.&lt;br /&gt;
|The {{cd|rotated_block_provider}} block state provider now works on any block with {{cd|axis}} or {{cd|facing}} properties.&lt;br /&gt;
|Added the {{cd|direction}} field to the aforementioned block state provider.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
{{Navbox Java Edition technical|datapack}}&lt;br /&gt;
&lt;br /&gt;
[[Minecraft:fr:Génération du monde personnalisée/Fournisseur d&amp;#039;état de bloc]]&lt;br /&gt;
[[Minecraft:ja:ワールド生成のカスタマイズ/block state provider]]&lt;br /&gt;
[[Minecraft:ko:블록 상태 제공자]]&lt;br /&gt;
[[Minecraft:pt:Geração de mundo personalizado/provedor de estado de bloco]]&lt;br /&gt;
[[Minecraft:ru:Натуральные декорации/Провайдер состояний блока]]&lt;br /&gt;
[[Minecraft:uk:Постачальник стану блока]]&lt;br /&gt;
[[Minecraft:zh:编码格式/Worldgen#方块状态提供器]]&lt;/div&gt;</summary>
		<author><name>SyncBot</name></author>
	</entry>
</feed>