🎯 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>
orpositioned <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_shape: A list of cube coordinates (
- Block collision box
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.
- Entity hitbox data
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>
orpositioned <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>
orpositioned <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>
orpositioned <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>
orpositioned <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>
orpositioned <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