🎯 Hitbox#

#bs.hitbox:help

Get and check the hitboxes of blocks or entities.

“Talent hits a target no one else can hit; Genius hits a target no one else can see.”

—Arthur Schopenhauer


🔧 Functions#

You can find below all functions available in this module.


Get#

#bs.hitbox:get_block

Get the hitbox of a block as a shape, represented by a list of boxes coordinates. Dimensions range from 0 to 16 as for models.

Inputs:

Execution at <entity> or positioned <x> <y> <z>: Position from which to get the block hitbox.

Outputs:

Storage bs:out hitbox:

  • Block collision box
    • collision_shape: A list of cube coordinates ([[min_x, min_y, min_z, max_x, max_y, max_z]]).
    • interaction_shape: A list of cube coordinates ([[min_x, min_y, min_z, max_x, max_y, max_z]]).
    • offset: Hitbox offset (used for example by flowers).
      • x: Number describing the X coordinate offset.
      • z: Number describing the Z coordinate offset.

Collision / Interaction Shape

  • Collision Shape: Defines the physical boundaries of a block that entities cannot pass through. It determines where an entity will stop when moving towards the block.

  • Interaction Shape: Defines the area where the player can interact with or break the block. This includes actions such as right-clicking to open a GUI (e.g., chests, furnaces) or mining the block. Some blocks have an interaction shape but no collision, such as crops or scaffolding.

Example: Get the hitbox of stairs:

setblock 0 0 0 minecraft:oak_stairs
execute positioned 0 0 0 run function #bs.hitbox:get_block
data get storage bs:out hitbox
#bs.hitbox:get_entity

Get the width and height of an entity.

Inputs:

Execution as <entities>: Entity to get the hitbox from.

Outputs:

Storage bs:out hitbox:

  • Entity hitbox data
    • height: Height of the entity.
    • width: Width of the entity.
    • scale: Scaling of the hitbox.

Important

Static entities, such as paintings and item frames, do not provide height and width information. Instead, they return a shape similar to blocks in bs:out hitbox.shape.

Example: Get the hitbox of an armor stand:

execute summon minecraft:armor_stand run function #bs.hitbox:get_entity
data get storage bs:out hitbox

Credits: Aksiome


Is Entity Inside#

#bs.hitbox:is_entity_in_blocks_collision

Check if the specified entity is within the collision hitbox of any block.

Inputs:

Execution as <entity>: Entity to check.

Outputs:

Return: Success or failure.

Note

Since an entity’s bounding box can extend across multiple blocks, this function checks all blocks the entity might be in contact with.

Example: Check if a summoned cow is inside a block:

# move to the edge of a block, then run
execute summon minecraft:cow if function #bs.hitbox:is_entity_in_blocks_collision run say I'm in the fence
# Since the cow is bigger than the player, you should get a success
#bs.hitbox:is_entity_in_blocks_interaction

Check if the specified entity is within the interaction hitbox of any block.

Inputs:

Execution as <entity>: Entity to check.

Outputs:

Return: Success or failure.

Note

Since an entity’s bounding box can extend across multiple blocks, this function checks all blocks the entity might be in contact with.

Example: Check if a summoned cow is inside a block:

# Move to the edge of a block, then run
execute summon minecraft:cow if function #bs.hitbox:is_entity_in_blocks_collision run say I'm in the fence
# Since the cow is bigger than the player, you should get a success
#bs.hitbox:is_entity_in_block_collision

Check if the specified entity is within the collision hitbox of the block at the execution position.

Inputs:

Execution as <entity>: Entity to check.

Execution at <entity> or positioned <x> <y> <z>: Position to check.

Outputs:

Return: Success or failure.

Note

This function checks whether the entity’s bounding box intersects with the block at the execution position. It does not consider other blocks the entity might be touching.

Example: Check if a summoned cow is inside the fence at your position:

setblock ~ ~ ~ minecraft:oak_fence
# Move to the edge of the fence, then run
execute summon minecraft:cow if function #bs.hitbox:is_entity_in_block_collision run say I'm in the fence
# Since the cow is bigger than the player, you should see the message
#bs.hitbox:is_entity_in_block_interaction

Check if the specified entity is within the interaction hitbox of the block at the execution position.

Inputs:

Execution as <entity>: Entity to check.

Execution at <entity> or positioned <x> <y> <z>: Position to check.

Outputs:

Return: Success or failure.

Note

This function checks whether the entity’s bounding box intersects with the block at the execution position. It does not consider other blocks the entity might be touching.

Example: Check if a summoned cow is inside the fence at your position:

setblock ~ ~ ~ minecraft:oak_fence
# Move to the edge of the fence, then run
execute summon minecraft:cow if function #bs.hitbox:is_entity_in_block_interaction run say I'm in the fence
# Since the cow is bigger than the player, you should see the message

Credits: Aksiome


Is Inside#

#bs.hitbox:is_in_block_collision

Check if the execution position is within the collision hitbox of a block.

Inputs:

Execution at <entity> or positioned <x> <y> <z>: Position to check.

Outputs:

Return: Success or failure.

Example: Say “My name is Pavel” if you are inside a block:

execute if function #bs.hitbox:is_in_block_collision run say My name is Pavel
#bs.hitbox:is_in_block_interaction

Check if the execution position is within the interaction hitbox of a block.

Inputs:

Execution at <entity> or positioned <x> <y> <z>: Position to check.

Outputs:

Return: Success or failure.

Example: Say “My name is Pavel” if you are inside a block:

execute if function #bs.hitbox:is_in_block_interaction run say My name is Pavel
#bs.hitbox:is_in_entity

Check if the execution position is inside the entity executing the command.

Inputs:

Execution as <entities>: Entity to check.

Execution at <entity> or positioned <x> <y> <z>: Position to check.

Outputs:

Return: Success or failure.

Example: Check if you are inside an entity:

execute summon minecraft:cow if function #bs.hitbox:is_in_entity run say Oh no...

Credits: Aksiome


🏷️ Tags#

You can find below below all tags available in this module.


Blocks#

#bs.hitbox:can_pass_through

Determine if the block has a collision box.

#bs.hitbox:has_offset

Determine if the block’s hitbox has an intentional random offset. This is commonly used in blocks that have slightly shifted hitboxes to give a more dynamic visual effect.

#bs.hitbox:intangible

Indicate whether the block is intangible, meaning it is typically invisible and lacks interaction collision.

#bs.hitbox:is_full_cube

Check if the block is a full cube of 16×16×16.

Credits: Aksiome


Entities#

#bs.hitbox:intangible

Determines if the entity’s hitbox is intangible, meaning it won’t interact physically with other blocks or entities.

#bs.hitbox:is_shaped

Identifies if the entity has a non-standard hitbox shape, differing from the typical cubic or rectangular hitbox.

#bs.hitbox:is_sized

Identifies if the entity has a rectangular hitbox size.

Credits: Aksiome


💬 Did it help you?

Feel free to leave your questions and feedback below!