Global Ignoring Tag (***
)
About
This convention provides a way for datapacks to communicate with each other by specifying entity tags which other datapacks can then look for. This is used heavily to prevent other datapacks from killing/removing custom entities from the world unexpectedly.
There are currently 4 ignoring tags: global.ignore
, global.ignore.pos
, global.ignore.gui
and global.ignore.kill
.
1. global.ignore.kill
Any entity with this tag must not be killed by other datapacks. This includes, but is not limited to, the /kill
command.
execute as @e[type=creeper, tag=!global.ignore, tag=!global.ignore.kill] run kill @s
2. global.ignore.gui
Any entity with this tag must not display visual effects around them. This includes, but is not limited to, the /title
command.
execute as @a[tag=!global.ignore.gui] at @s run title @s actionbar [{"text": "Hello, World!", "color": "green"}]
This excludes the
/playsound
,/tellraw
and/particle
commands.
3. global.ignore.pos
Any entity with this tag must not be moved positionally. This includes, but is not limited to, the /tp
and/teleport
commands.
execute as @e[type=witch, tag=!global.ignore, tag=!global.ignore.pos] at @s run tp @s ~ ~0.1 ~
4. global.ignore
Any entity with this tag must not be included in an entity selector at all.
execute as @e[tag=!global.ignore] at @s run function namespace:internal/logic/function
This tag does not apply to player-only selectors (
@a
,@e[type=player]
,@p
, etc.)
Note
The convention only applies if your function will affect an unknown entity. If you are trying to target a known entity (e.g. an entity with a special tag attached specific to your datapack), you don't need to follow this convention.