⚠️ You are reading a doc of an undergoing development version. Information can be out of date and/or change at any time. ⚠️

🏷️ ID#

#bs.id:help

Manage entity IDs, essential in scenarios like shooting games where you need to track who is targeting whom.

“We know what we are, but know not what we may be.”

—William Shakespeare


🔧 Functions#

You can find below all functions available in this module.


Give simple unique ID#

#bs.id:give_suid

Give a unique bs.id score to each entity.

Inputs:

Execution as <entities>: Entities to assign an ID to.

Outputs:

Score @s bs.id: Generated simple unique id.

Give an ID to all players:

# Give an id to all players who don’t already have one
execute as @a[predicate=!bs.id:has_suid] run function #bs.id:give_suid

# See the result
scoreboard objective setdisplay sidebar bs.id

Credits: Aksiome, KubbyDev


Give chain unique ID#

#bs.id:give_cuid

Give a unique bs.cid score to each entity.

Inputs:

Execution as <entities>: Entities to assign an ID to.

Outputs:

Score @s bs.cid: Generated chain unique id.

How it works

The chain ID is similar to the simple ID. However with chain IDs, you can use the function #bs.id:update_cuids to make sure there are no gaps in the ID sequence, thus creating a continuous chain.

Give an ID to all players:

# Give an id to all players who don’t have one
execute as @a[predicate=!bs.id:has_cuid] run  run function #bs.id:give_cuid

# See the result
scoreboard objective setdisplay sidebar bs.cid

Credits: Aksiome, KubbyDev


Update chain unique ID#

#bs.id:update_cuids

Update all entities CUIDs to ensure the chain is continuous.

Ensure the chain is free of gaps and duplicates:

function #bs.id:update_cuids

# See the result
scoreboard objective setdisplay sidebar bs.cid

Credits: Aksiome, KubbyDev


👁️ Predicates#

You can find below all predicates available in this module.


Check simple unique ID#

bs.id:has_suid

Determine if an entity has a bs.id score.

Give an suid to all entities that aren’t identified by a bs.id score:

execute as @e[predicate=!bs.id:has_suid] run function #bs.id:give_suid
bs.id:suid_equal

Find an entity that has the same bs.id as the input value.

Inputs:

Score $id.suid bs.in: Value to check against.

Find the entity that has a bs.id equal to 1:

scoreboard players set $id.suid bs.in 1
execute as @e[predicate=bs.id:suid_equal,limit=1] run say I'm the one
bs.id:suid_lower

Filter entities that have a bs.id less than or equal to the input value.

Inputs:

Score $id.suid bs.in: Value to check against.

Filter entities that have a bs.id less than or equal to 17:

scoreboard players set $id.suid bs.in 17
execute as @e[predicate=bs.id:suid_lower] run say I'm a minor
bs.id:suid_upper

Filter entities that have a bs.id greater than or equal to the input value.

Inputs:

Score $id.suid bs.in: Value to check against.

Filter entities that have a bs.id greater than or equal to 18:

scoreboard players set $id.suid bs.in 18
execute as @e[predicate=bs.id:suid_upper] run say I'm an adult
bs.id:suid_match

Filter entities that have a bs.id between the given values.

Inputs:

Score $id.suid.min bs.in: Min value to check against.

Score $id.suid.max bs.in: Min value to check against.

Filter entities that have a bs.id between 2 and 4:

scoreboard players set $id.suid.min bs.in 2
scoreboard players set $id.suid.max bs.in 4
execute as @e[predicate=bs.id:suid_match,limit=1] run say In range

Credits: Aksiome


Check chain unique ID#

bs.id:has_cuid

Determine if an entity has a bs.cid score.

Give an cuid to all entities that aren’t identified by a bs.cid score:

execute as @e[predicate=!bs.id:has_cuid] run function #bs.id:give_cuid
bs.id:cuid_equal

Find an entity that has the same bs.cid as the input value.

Inputs:

Score $id.cuid bs.in: Value to check against.

Find the entity that has a bs.cid equal to 1:

scoreboard players set $id.cuid bs.in 1
execute as @e[predicate=bs.id:cuid_equal,limit=1] run say I'm the one
bs.id:cuid_lower

Filter entities that have a bs.cid less than or equal to the input value.

Inputs:

Score $id.cuid bs.in: Value to check against.

Filter entities that have a bs.cid less than or equal to 17:

scoreboard players set $id.cuid bs.in 17
execute as @e[predicate=bs.id:cuid_lower] run say I'm a minor
bs.id:cuid_upper

Filter entities that have a bs.cid greater than or equal to the input value.

Inputs:

Score $id.cuid bs.in: Value to check against.

Filter entities that have a bs.cid greater than or equal to 18:

scoreboard players set $id.cuid bs.in 18
execute as @e[predicate=bs.id:cuid_upper] run say I'm an adult
bs.id:cuid_match

Filter entities that have a bs.cid between the given values.

Inputs:

Score $id.cuid.min bs.in: Min value to check against.

Score $id.cuid.max bs.in: Min value to check against.

Filter entities that have a bs.cid between 2 and 4:

scoreboard players set $id.cuid.min bs.in 2
scoreboard players set $id.cuid.max bs.in 4
execute as @e[predicate=bs.id:cuid_match,limit=1] run say In range

Credits: Aksiome


💬 Did it help you?

Feel free to leave your questions and feedbacks below!