❤️ Health#

#bs.health:help

Efficiently manage the lifecycle and vital aspects of an entity.

“He who has a why to live can bear almost any how.”

—Friedrich Nietzsche

About NBTs

When using the module, you cannot rely on NBTs to get health information. Use the get_health and get_max_health functions instead. This is because NBTs may not consistently reflect actual values. This choice was made to enhance performance, reliability, and to work around some limitations.


🔧 Functions#

You can find below all functions available in this module.


Add / Remove#

#bs.health:add_health {points:<value>}

Add or remove health points from players.

Inputs:

Execution as <players>: Players whose health will be updated.

Function macro:

  • Arguments
    • points: Health points to add to players.
Outputs:

State: Health is scheduled for update.

Heal yourself by 5 HP:

# Once (execute on you)
function #bs.health:add_health {points:5.0}

How to remove

You can use negative numbers to remove health points from the player.

#bs.health:add_max_health {points:<value>}

Add or remove maximum health points from players.

Inputs:

Execution as <players>: Players whose max health will be updated.

Function macro:

  • Arguments
    • points: Max health points to add to players.
Outputs:

State: Max health is scheduled for update.

Increase your max HP by 5:

# Once (execute on you)
function #bs.health:add_max_health {points:5.0}

How to remove

You can use negative numbers to remove max health from the player.

Credits: Aksiome


Get#

#bs.health:get_health {scale:<scaling>}

Get a player’s health points.

Inputs:

Execution as <players>: Players from which you want to get health points.

Function macro:

  • Arguments
    • scale: Scalar for the function’s returned value.
Outputs:

Return | Storage bs:out health.get_health: Player’s health points.

Get your current HP (scaled by 1000):

# See the returned value (execute on you)
function #bs.health:get_health {scale:1000}
#bs.health:get_max_health {scale:<scaling>}

Get a player’s maximum health points.

Inputs:

Execution as <players>: Players from which you want to get max health points.

Function macro:

  • Arguments
    • scale: Scalar for the function’s returned value.
Outputs:

Return | Storage bs:out health.get_max_health: Player’s max health points.

Get your maximum HP (scaled by 1000):

# See the returned value (execute on you)
function #bs.health:get_max_health {scale:1000}

Credits: Aksiome


Set#

#bs.health:set_health {points:<value>}

Set players health points.

Inputs:

Execution as <players>: Players whose health will be updated.

Function macro:

  • Arguments
    • points: Health points.
Outputs:

State: Health is scheduled for update.

Set your HP to 10:

# Once (execute on you)
function #bs.health:set_health {points:5.0}
#bs.health:set_max_health {points:<value>}

Set players maximum health points.

Inputs:

Execution as <players>: Players whose max health will be updated.

Function macro:

  • Arguments
    • points: Max health points.
Outputs:

State: Max health is scheduled for update.

Set your max HP to 10:

# Once (execute on you)
function #bs.health:set_max_health {points:5.0}

Credits: Aksiome


Time to live#

#bs.health:time_to_live {with:{}}

Set the life time of entities.

Inputs:

Execution as <entities>: Entities to add a life time to.

Function macro:

  • Arguments
    • with: Life time data.
      • time: Time to live. In ticks by default if unit is not defined.
      • unit: Unit of the specified time (tick, second, minute, hour, t, s, m, h).
      • on_death: Command that will be run as the entity on its death.
Outputs:

State: The entity has now a finite life time.

Give creepers a 10 seconds life time:

# Once
execute as @e[type=minecraft:creeper] run function #bs.health:time_to_live {with:{time:10,unit:"s"}}

Give an explosion effect to creepers at the end of their life:

# Once
execute as @e[type=minecraft:creeper] run function #bs.health:time_to_live {with:{time:10,on_death:"execute at @s run particle minecraft:explosion_emitter ~ ~ ~"}}

Update the on_death callback at any given time:

# Once
execute as @e[type=minecraft:creeper] run function #bs.health:time_to_live {with:{time:100,on_death:"execute at @s run particle minecraft:explosion_emitter ~ ~ ~"}}

# At any time before the entity's death
execute as @e[type=minecraft:creeper,limit=1] run function #bs.health:time_to_live {with:{on_death:"say GOTCHA"}}

Credits: Aksiome, Leirof


💬 Did it help you?

Feel free to leave your questions and feedbacks below!