<?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_behaviour_%28Java_Edition%29</id>
	<title>Minecraft:Block behaviour (Java Edition) - 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_behaviour_%28Java_Edition%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.sasgaming.net/index.php?title=Minecraft:Block_behaviour_(Java_Edition)&amp;action=history"/>
	<updated>2026-04-12T18:35:02Z</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_behaviour_(Java_Edition)&amp;diff=88509&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_behaviour_(Java_Edition)&amp;diff=88509&amp;oldid=prev"/>
		<updated>2026-04-11T11:09:27Z</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;{{WIP}}&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
This article describes the various components of block behaviour {{in|JE}}, based on the class {{jbcp|state|BlockBehaviour}} in the code.&lt;br /&gt;
&lt;br /&gt;
This article aims to document the technical details of each block&amp;#039;s behavior, citing the code responsible for each behavior and specifying details such as which [[Minecraft:Tag_(Java_Edition)|tags]] are used, how the [[Minecraft:block states]] or [[Minecraft:block entity]] is affected, which [[Minecraft:Advancement_definition#List_of_triggers|advancement triggers]] are activated, etc. These details are usually hidden in the usage section of a specific block&amp;#039;s wiki page.&lt;br /&gt;
&lt;br /&gt;
This file may become very large and need to be split, however, the basic property information should be present here, pointing to main articles when necessary.&lt;br /&gt;
&lt;br /&gt;
Note that not all block behaviors will be described here, as some behaviors of certain blocks are described in item classes, entities, etc. For example, the behavior of blocks in the {{Tag link|block|convertable_to_mud}} tag turning into mud is described by the items that corvert them.{{refhip|PotionItem}}&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;BlockBehaviour({{Tooltip|...|Properties properties}})&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
These are the block properties saved as attributes of each block instance. Normally these properties are given in the block registry in the {{jbcp|-s}} class, or sometimes in a subclass of {{jbcp|}}.&lt;br /&gt;
&lt;br /&gt;
* hasCollision&lt;br /&gt;
* drops&lt;br /&gt;
* descriptionId &lt;br /&gt;
* explosionResistance&lt;br /&gt;
* isRandomlyTicking&lt;br /&gt;
* soundType&lt;br /&gt;
* friction &lt;br /&gt;
* speedFactor&lt;br /&gt;
* jumpFactor&lt;br /&gt;
* dynamicShape &lt;br /&gt;
* requiredFeatures &lt;br /&gt;
* properties&lt;br /&gt;
&lt;br /&gt;
The effect of each property depends on its use in other methods. &lt;br /&gt;
&lt;br /&gt;
=== Properties class  ===&lt;br /&gt;
&lt;br /&gt;
Properties is a public static class of {{jbcp|state|BlockBehaviour}} which defines the properties for each block. These properties serve to describe general block behaviors that do not need to be specified by a specific method. &lt;br /&gt;
&lt;br /&gt;
For example, blocks with the hasCollision property, a priori, have a collision shape equal to their shape, and blocks without this property have an empty collision box.&lt;br /&gt;
However, there are some exceptions, namely the blocks that have implementations of the method that defines their collision box, defining it more specifically.&lt;br /&gt;
&lt;br /&gt;
Block properties can be of various types, such as boolean, float, etc., unlike block tags which in practice function as a boolean property.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable collapsible&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Properties&lt;br /&gt;
! Default&lt;br /&gt;
|-&lt;br /&gt;
| Function&amp;lt;BlockState, MapColor&amp;gt; || mapColor || state -&amp;gt; MapColor.NONE &lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|bool}} boolean || hasCollision  || true &lt;br /&gt;
|-&lt;br /&gt;
| SoundType || soundType || SoundType.STONE &lt;br /&gt;
|-&lt;br /&gt;
| ToIntFunction&amp;lt;BlockState&amp;gt; || lightEmission || state -&amp;gt; 0 &lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|float}} float || explosionResistance &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|float}} float || destroyTime &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|bool}} boolean|| requiresCorrectToolForDrops &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|bool}} boolean|| isRandomlyTicking &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|float}} float || friction || 0.6f &lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|float}} float || speedFactor || 1.0f &lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|float}} float || jumpFactor || 1.0f &lt;br /&gt;
|-&lt;br /&gt;
| @Nullable ResourceKey&amp;lt;Block&amp;gt; || id &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| DependantName&amp;lt;Block, Optional&amp;lt;ResourceKey&amp;lt;LootTable&amp;gt;&amp;gt;&amp;gt; || drops || id -&amp;gt; Optional.of(ResourceKey.create(Registries.LOOT_TABLE, id.identifier().withPrefix(&amp;quot;blocks/&amp;quot;))) &lt;br /&gt;
|-&lt;br /&gt;
| DependantName&amp;lt;Block, String&amp;gt; || descriptionId || id -&amp;gt; Util.makeDescriptionId(&amp;quot;block&amp;quot;, id.identifier()) &lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|bool}} boolean|| canOcclude || true &lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|bool}} boolean|| isAir &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|bool}} boolean|| ignitedByLava &lt;br /&gt;
|&lt;br /&gt;
|-&amp;lt;!--@Deprecated--&amp;gt;&lt;br /&gt;
| {{nbt|bool}} boolean|| liquid &lt;br /&gt;
|&lt;br /&gt;
|-&amp;lt;!--@Deprecated--&amp;gt;&lt;br /&gt;
| {{nbt|bool}} boolean|| forceSolidOff ||&lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|bool}} boolean|| forceSolidOn &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| PushReaction || pushReaction || PushReaction.NORMAL &lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|bool}} boolean|| spawnTerrainParticles || true &lt;br /&gt;
|-&lt;br /&gt;
| NoteBlockInstrument || instrument || NoteBlockInstrument.HARP &lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|bool}} boolean|| replaceable &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| StateArgumentPredicate&amp;lt;EntityType&amp;lt;?&amp;gt;&amp;gt; || isValidSpawn || (state, level, pos, entityType) -&amp;gt; state.isFaceSturdy(level, pos, Direction.UP) &amp;amp;&amp;amp; state.getLightEmission() &amp;lt; 14 &lt;br /&gt;
|-&lt;br /&gt;
| StatePredicate || isRedstoneConductor || BlockStateBase::isCollisionShapeFullBlock &lt;br /&gt;
|-&lt;br /&gt;
| StatePredicate || isSuffocating || (state, level, pos) -&amp;gt; state.blocksMotion() &amp;amp;&amp;amp; state.isCollisionShapeFullBlock(level, pos) &lt;br /&gt;
|-&lt;br /&gt;
| StatePredicate || isViewBlocking || this.isSuffocating &lt;br /&gt;
|-&lt;br /&gt;
| PostProcess || postProcess || (state, level, pos) -&amp;gt; null &lt;br /&gt;
|-&lt;br /&gt;
| StatePredicate || emissiveRendering || (state, level, pos) -&amp;gt; false &lt;br /&gt;
|-&lt;br /&gt;
| {{nbt|bool}} boolean|| dynamicShape &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FeatureFlagSet || requiredFeatures || FeatureFlags.VANILLA_SET&lt;br /&gt;
|-&lt;br /&gt;
| @Nullable OffsetFunction || offsetFunction &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Properties class methods  ===&lt;br /&gt;
&lt;br /&gt;
There are many methods used to assign properties to a certain block; most commonly, the {{jbcp|-s}} class is used to add properties to blocks at the time of their registration.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ofLegacyCopy({{Tooltip|...|BlockBehaviour block}})&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Copies some properties from one block to another.&lt;br /&gt;
&lt;br /&gt;
The final properties of the new block are, in order of priority:&lt;br /&gt;
*Properties defined after copying&lt;br /&gt;
*Properties copied from the other block, which are: &lt;br /&gt;
{{Collapse|head=1|title=&amp;amp;emsp;}}&lt;br /&gt;
:* destroyTime&lt;br /&gt;
:* explosionResistance&lt;br /&gt;
:* hasCollision&lt;br /&gt;
:* isRandomlyTicking&lt;br /&gt;
:* lightEmission&lt;br /&gt;
:* mapColor&lt;br /&gt;
:* soundType&lt;br /&gt;
:* friction&lt;br /&gt;
:* speedFactor&lt;br /&gt;
:* dynamicShape&lt;br /&gt;
:* canOcclude&lt;br /&gt;
:* isAir&lt;br /&gt;
:* ignitedByLava&lt;br /&gt;
:* liquid&lt;br /&gt;
:* forceSolidOff&lt;br /&gt;
:* forceSolidOn&lt;br /&gt;
:* pushReaction&lt;br /&gt;
:* requiresCorrectToolForDrops&lt;br /&gt;
:* offsetFunction&lt;br /&gt;
:* spawnTerrainParticles&lt;br /&gt;
:* requiredFeatures&lt;br /&gt;
:* emissiveRendering&lt;br /&gt;
:* instrument&lt;br /&gt;
:* replaceable&lt;br /&gt;
{{Collapse|tail=1}}&lt;br /&gt;
* Default properties, for the other properties&lt;br /&gt;
&lt;br /&gt;
Used in the registration of 105 blocks and in the method {{cd|registerLegacyStair({{Tooltip|...|String id, Block base}})}} (used in the registration of 47 [[Minecraft:stairs]]) in {{jbcp|-s}}, and in {{cd|ofFullCopy(...)}}.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ofFullCopy({{Tooltip|...|BlockBehaviour block}})&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Like the {{cd|ofLegacyCopy(...)}} but in addition to the properties copied by {{cd|ofLegacyCopy(...)}} it also copies:&lt;br /&gt;
* jumpFactor&lt;br /&gt;
* isRedstoneConductor&lt;br /&gt;
* isValidSpawn&lt;br /&gt;
* postProcess&lt;br /&gt;
* isSuffocating&lt;br /&gt;
* isViewBlocking&lt;br /&gt;
* drops&lt;br /&gt;
* descriptionId&lt;br /&gt;
&lt;br /&gt;
Used in the registration of 84 blocks and in the method {{cd|registerStair({{Tooltip|...|String id, Block base}})}} (used in the registration of 4 [[Minecraft:cut copper stairs]]) in {{jbcp|-s}}.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;mapColor({{tooltip|...|DyeColor dyeColor}})&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
For all states of the block, define the color map as the color associated with the given dye color.&lt;br /&gt;
&lt;br /&gt;
Used in the registration of 48 blocks (all 16 [[Minecraft:glazed terracotta]], [[Minecraft:concrete]], and [[Minecraft:concrete powder]]) and in the method {{cd|registerStainedGlass({{Tooltip|...|String id, DyeColor color}})}} (unsed in all 16 [[Minecraft:stained glass]]) in {{jbcp|-s}}.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;mapColor({{tooltip|...|MapColor mapColor}})&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
For all states of the block, define the color map with the given map color&lt;br /&gt;
&lt;br /&gt;
Used in the registration of 662 blocks, in the method {{cd|leavesProperties({{Tooltip|...|SoundType soundType}})}} (used in 9 [[Minecraft:leaves]]), in the method {{cd|shulkerBoxProperties({{Tooltip|...|MapColor mapColor}})}} (used in all 17 [[Minecraft:shulker box]]s), in the method {{cd|pistonProperties()}} (used in [[Minecraft:piston]] and [[Minecraft:sticky piston]]) and, in the method {{cd|candleProperties({{Tooltip|...|MapColor mapColor}})}} (used in all 17 [[Minecraft:candle]]s) in {{jbcp|-s}}.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;mapColor({{tooltip|...|Function&amp;amp;lt;BlockState, MapColor&amp;amp;gt; mapColor}})&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
For a block, it defines a map between its states and a map color, so that the same block can have different colors in different states.&lt;br /&gt;
&lt;br /&gt;
Used in the registration of 3 blocks ([[Minecraft:wheat crop]], [[Minecraft:barrier]] and [[Minecraft:light (block)|light]]), in the method {{cd|registerBed({{Tooltip|...|String id, DyeColor color}})}} (unsed in all 16 [[Minecraft:beds]]), in the method {{cd|logProperties({{Tooltip|...|MapColor topColor, MapColor sideColor, SoundType soundType}})}} (unsed in 21 blocks, but 11 of they have the same color for all states) and, in the method {{cd|netherStemProperties({{Tooltip|...|MapColor mapColor}})}} (unsed in 4 blocks, but they all have the same color for all states) in {{jbcp|-s}}.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;noCollision()&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Set the hasCollision and canOcclude block properties to false.&lt;br /&gt;
&lt;br /&gt;
Used in the registration of 241 blocks and in the method {{cd|buttonProperties()}} (used in the registration of 14 [[Minecraft:button]]s) in {{jbcp|-s}}.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[Minecraft:Hardcoded item properties (Java Edition)]] — Similar article for items&lt;/div&gt;</summary>
		<author><name>SyncBot</name></author>
	</entry>
</feed>