Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Minecraft:Block state provider: Difference between revisions

From SAS Gaming Wiki
SyncBot (talk | contribs)
Sync: updated from Minecraft
SyncBot (talk | contribs)
Sync: updated from Minecraft
Line 126: Line 126:
***** {{nbt inherit/block_state}}
***** {{nbt inherit/block_state}}
**** {{nbt|int|weight}}: The weight of this entry.
**** {{nbt|int|weight}}: The weight of this entry.
</div>'''Also see Rule_based_state_provider'''


<nowiki>https://minecraft.wiki/w/Rule-based_block_state_provider</nowiki>
=== rule_based_state_provider ===
Provides a block state depending on the current block(s) by matching a sequence of rules.
<div class="treeview"><section begin="json format" />
* {{nbt|compound}}: A block state provider
** {{nbt|string|type}}: <code>rule_based_state_provider</code>
** {{Nbt|compound|fallback}} The block to use when no rules' predicates match. This field is optional. If unspecified and no rules' predicates match, then no block is placed.
*** {{Nbt inherit/block state provider}}
** {{Nbt|list|rules}} (Required, but can be empty) Rules of the block to use.
*** {{Nbt|compound}} One rule.
**** {{Nbt|compound|if_true}} The [[Minecraft:block predicate]] of this rule.
***** {{list indent|***|{{#lst:block predicate|json format}}}}
**** {{Nbt|compound|then}} The block to use when the predicate is passed.
***** {{Nbt inherit/block state provider}}<section end="json format" />
</div>


== History ==
== History ==
{{info needed section|general history of block state providers. Specifically, when block state providers were added or removed.}}
{{info needed section|general history of block state providers. Specifically, when block state providers were added or removed.}}
{{HistoryTable
{{HistoryTable
|{{HistoryLine|java}}
|{{HistoryLine||1.16.2|dev=20w28a|Block state providers now control the blocks placed by many [[Minecraft:configured feature]]s.{{Verify|This is where custom worldgen and configured features were added to data packs. Did block state providers exist even earlier?}}}}
|{{HistoryLine||26.1|dev=snap11|All block state providers now support the {{cd|rule_based_state_provider}} type, which previously was only available for {{cd|disk}} features.}}
|{{HistoryLine|java upcoming}}
|{{HistoryLine|java upcoming}}
|{{HistoryLine||26.3|dev=snap2|Added the {{cd|copy_properties_provider}} block state provider.}}
|{{HistoryLine||26.3|dev=snap2|Added the {{cd|copy_properties_provider}} block state provider.}}
|{{HistoryLine|||dev=snap3|Added the {{cd|random_block_provider}} block state provider.
|{{HistoryLine|||dev=snap3|Added the {{cd|random_block_provider}} block state provider.
|Renamed the {{cd|source_block_state_provider}} field in {{cd|copy_properties_provider}} to {{cd|source}}.
|Renamed the {{cd|source_block_state_provider}} field in {{cd|copy_properties_provider}} to {{cd|source}}.
|The {{cd|rotated_block_provider}} block state provider now works on any block with {{cd|axis}} or {{cd|facing}} properties.
|The {{cd|rotated_block_provider}} block state provider now works on any block with {{cd|axis}} or {{cd|facing}} properties, and a {{cd|direction}} field has been added.
|Added the {{cd|direction}} field to the aforementioned block state provider.
}}
}}
}}
}}

Revision as of 11:12, 12 August 2026

Template:Exclusive A block state provider is used to provide a (potentially randomized) Minecraft:block and Minecraft:block state to be placed by Minecraft:configured features.

JSON format

Block state providers are defined using the following format:

Types

The following block state provider types exist.

copy_properties_provider

Copies common block state properties from the block at the evaluated position to the resulting state.Template:Upcoming

  • Template:Nbt: A block state provider
    • Template:Nbt: copy_properties_provider
    • Template:Nbt: 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.

dual_noise_provider

Randomly chooses a block state according to two noise values.

noise_provider

Randomly chooses a block state according to a noise value.

noise_threshold_provider

Uses different block states when a noise value above or below the threshold.

simple_state_provider

Specifies a single block state directly

random_block_provider

Returns the default block state for a randomly chosen block.Template:Upcoming

randomized_int_state_provider

Assigns a random value to an integer block property.

rotated_block_provider

Randomly rotates axially-rotated blocksTemplate:Until / any block with Template:Cd or Template:Cd properties.Template:Upcoming

weighted_state_provider

Chooses a block state from a weighted list.

rule_based_state_provider

Provides a block state depending on the current block(s) by matching a sequence of rules.

<section begin="json format" />

History

Template:Info needed section Template:HistoryTable

Navigation

Template:Navbox Java Edition technical

Minecraft:fr:Génération du monde personnalisée/Fournisseur d'état de bloc Minecraft:ja:ワールド生成のカスタマイズ/block state provider Minecraft:ko:블록 상태 제공자 Minecraft:pt:Geração de mundo personalizado/provedor de estado de bloco Minecraft:ru:Натуральные декорации/Провайдер состояний блока Minecraft:uk:Постачальник стану блока Minecraft:zh:编码格式/Worldgen#方块状态提供器