Denizen Script Meta Documentation Search


Learn about how Denizen works in The Beginner's Guide.
Showing 405 search results for world out of 3884 meta-documentation entries...

Perfect Name Match Results



Tag


Name<world[<world>]>
ReturnsWorldTag
DescriptionReturns a world object constructed from the input value.
Refer to ObjectType:WorldTag.
Generated Example
- adjust <world[space]> destroy
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/utilities/CommonRegistries.java#L358

Partial Name Match Results



Command


NameCreateWorld
Syntaxcreateworld [<name>] (generator:<id>) (worldtype:<type>) (environment:<environment>) (copy_from:<world>) (seed:<seed>) (settings:<json>) (generate_structures:true/false)
Short DescriptionCreates a new world, or loads an existing world.
Full DescriptionThis command creates a new minecraft world with the specified name, or loads an existing world by that name.

Optionally specify a plugin-based world generator by its generator ID.
If you want an empty void world with a void biome, you can use "denizen:void".
If you want an empty void world with vanilla biomes, you can use "denizen:void_biomes".

Optionally specify additional generator settings as JSON input.

Optionally specify a world type which can be specified with 'worldtype:' (defaults to NORMAL).
For all world types, see: 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/WorldType.html

Optionally specify an environment (defaults to NORMAL, can also be NETHER, THE_END).

Optionally choose whether to generate structures in this world.

Optionally specify an existing world to copy files from.
The 'copy_from' argument is ~waitable. Refer to Language:~waitable.

It's often ideal to put this command inside Event:server prestart.
Related Tags<server.world_types> Returns a list of all world types known to the server. (...)
<server.worlds> Returns a list of all worlds.
Usage Example
# Use to create a normal world with name 'survival'
- createworld survival
Usage Example
# Use to create a flat world with the name 'superflat'
- createworld superflat worldtype:FLAT
Usage Example
# Use to create an end world with the name 'space'
- createworld space environment:THE_END
Usage Example
# Use to create a new world named 'dungeon3' as a copy of an existing world named 'dungeon_template'.
- ~createworld dungeon3 copy_from:dungeon_template
Synonyms (Search Aid)loadworld
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/CreateWorldCommand.java#L35
NameWorldBorder
Syntaxworldborder [<world>/<player>|...] (center:<location>) (size:<#.#>) (current_size:<#.#>) (damage:<#.#>) (damagebuffer:<#.#>) (warningdistance:<#>) (warningtime:<duration>) (duration:<duration>) (reset)
Short DescriptionModifies a world border.
Full DescriptionModifies the world border of a specified world or a list of players.
NOTE: Modifying player world borders is client-side and will reset on death, relog, or other actions.
Options are:
center: Sets the center of the world border.
size: Sets the new size of the world border.
current_size: Sets the initial size of the world border when resizing it over a duration.
damage: Sets the amount of damage a player takes when outside the world border buffer radius.
damagebuffer: Sets the radius a player may safely be outside the world border before taking damage.
warningdistance: Causes the screen to be tinted red when the player is within the specified radius from the world border.
warningtime: Causes the screen to be tinted red when a contracting world border will reach the player within the specified time.
duration: Causes the world border to grow or shrink from its current size to its new size over the specified duration.
reset: Resets the world border to its vanilla defaults for a world, or to the current world border for players.
Related Tags<LocationTag.is_within_border> Returns whether the location is within the world border.
<WorldTag.border_size> Returns the size of the world border in this world.
<WorldTag.border_center> Returns the center of the world border in this world.
<WorldTag.border_damage> Returns the amount of damage caused by crossing the world border in this world.
<WorldTag.border_damage_buffer> Returns the damage buffer of the world border in this world.
<WorldTag.border_warning_distance> Returns the warning distance of the world border in this world.
<WorldTag.border_warning_time> Returns warning time of the world border in this world as a duration.
Usage Example
# Use to set the size of a world border.
- worldborder <player.location.world> size:4
Usage Example
# Use to update a world border's center, and then the size over the course of 10 seconds.
- worldborder <[world]> center:<[world].spawn_location> size:100 duration:10s
Usage Example
# Use to show a client-side world border to the attached player.
- worldborder <player> center:<player.location> size:10
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/WorldBorderCommand.java#L28
Nameworldedit
Syntaxworldedit [create_schematic/copy_to_clipboard/paste] (file:<file path>) (cuboid:<cuboid>) (position:<location>) (rotate:<#>) (undoable) (noair)
Short DescriptionControls schematics and clipboards in WorldEdit.
Full DescriptionControls schematics and clipboards in WorldEdit. You should almost always use Command:schematic instead of this.

The action can be create_schematic, copy_to_clipboard, or paste.

For 'paste':
Specify 'noair' to exclude air blocks.
Specify 'rotate' to rotate the schematic when pasting it.
Specify 'undoable' to attach the paste to the player's WorldEdit history which allows them to undo/redo.

For 'copy_to_clipboard':
Specify either a cuboid or a file.
The file path starts in the folder: /plugins/Denizen/schematics/

For 'create_schematic':
Either specify a cuboid, or the player's clipboard will be used.
Specify a file to save to.
Related Tags<PlayerTag.we_selection> Returns the player's current block area selection, as a CuboidTag, EllipsoidTag, or PolygonTag.
Usage Example
# Use to save a cuboid to a schematic.
- worldedit create_schematic file:<[filepath]> cuboid:<player.we_selection> position:<player.location>
Usage Example
# Use to copy a cuboid to a player's clipboard.
- worldedit copy_to_clipboard cuboid:<player.we_selection> position:<player.location>
Usage Example
# Use to load a schematic into a player's clipboard.
- worldedit copy_to_clipboard file:<[filepath]>
Usage Example
# Use to paste a schematic at a location
- worldedit paste file:<[filepath]> position:<player.location>
Usage Example
# Use to paste a schematic at a location with a player attached to the edit history.
- worldedit paste file:<[filepath]> position:<player.location> undoable noair rotate:90
GroupDepenizen
RequiresDepenizen, WorldEdit
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/worldedit/WorldEditCommand.java#L44

Event


Nameentity added to world
Event Lines <entity> added to world
Triggersany time an entity is added to the world for any reason, including chunks loading pre-existing entities.
Generated Examplesafter player added to world:
after projectile added to world:
Contexts<context.entity> returns the EntityTag that will be added. Note that this entity will not necessarily be fully spawned yet, so usage will be limited.
<context.location> returns the LocationTag that the entity will be added at.
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupPaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/events/EntityAddToWorldScriptEvent.java#L15
Nameentity removed from world
Event Lines <entity> removed from world
Triggersany time an entity is removed from the world for any reason, including chunks unloading.
Generated Examplesafter entity removed from world:
on arrow removed from world:
Contexts<context.entity> returns the EntityTag that will be removed. Note that this entity will not necessarily be fully spawned at time of firing, so usage will be limited.
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupPaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/events/EntityRemoveFromWorldScriptEvent.java#L14
Nameworld initializes
Event Lines <world> initializes
Triggerswhen a world is initialized.
Generated Examplesafter world initializes:
Contexts<context.world> returns the WorldTag that was initialized.
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/WorldInitsScriptEvent.java#L12
Nameworld loads
Event Lines <world> loads
Triggerswhen a world is loaded.
Generated Exampleson world_nether loads:
after world_nether loads:
Contexts<context.world> returns the WorldTag that was loaded.
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/WorldLoadsScriptEvent.java#L12
Nameworld saves
Event Lines <world> saves
Triggerswhen a world is saved.
Generated Examplesafter world saves:
Contexts<context.world> returns the WorldTag that was saved.
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/WorldSavesScriptEvent.java#L12
Nameworld unloads
Event Lines <world> unloads
Triggerswhen a world is unloaded.
Generated Examplesafter world unloads:
after survivalland unloads:
Contexts<context.world> returns the WorldTag that was unloaded.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/WorldUnloadsScriptEvent.java#L12
Namegamerule changes in world
Event Lines gamerule changes (in <world>)
Triggerswhen a gamerule changes.
Generated Exampleson gamerule changes:
Has Playerwhen the sender of the command is a player. - this adds switches 'flagged:<flag name>' + 'permission:<node>', in addition to the '<player>' link.
Switchesgamerule:<gamerule> to only process the event if the gamerule matches a specific gamerule.
Contexts<context.gamerule> returns the name of the GameRule which was changed. Refer to 🔗https://jd.papermc.io/paper/1.19/org/bukkit/GameRule.html.
<context.value> returns the new value of the GameRule.
<context.world> returns the world where the GameRule is applied.
<context.source_type> returns type of source. Can be: PLAYER, COMMAND_BLOCK, COMMAND_MINECART, SERVER.
<context.command_block_location> returns the command block's location (if the command was run from one).
<context.command_minecart> returns the EntityTag of the command minecart (if the command was run from one).
Determine"VALUE:<ElementTag(Number)>" or ElementTag(Boolean) to set the value of the GameRule.
GroupPaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/events/WorldGameRuleChangeScriptEvent.java#L25
Nameplayer changes world from world to world
Event Lines player changes world (from <world>) (to <world>)
Triggerswhen a player moves to a different world.
Generated Examplesafter player changes world from world to world:
after player changes world from world:
Has PlayerAlways. - this adds switches 'flagged:<flag name>' + 'permission:<node>', in addition to the '<player>' link.
Contexts<context.origin_world> returns the WorldTag that the player was previously on.
<context.destination_world> returns the WorldTag that the player is now in.
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupPlayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerChangesWorldScriptEvent.java#L15
Nametime changes in world
Event Lines time changes (in <world>)
time <0-23> (in <world>)
Triggerswhen the current time changes in a world (once per mine-hour).
Generated Examplesafter time changes:
after time 0-23:
on time changes:
on time 0-23 in world:
Contexts<context.time> returns the current time (the hour, as a number from 0 to 23).
<context.world> returns the world.
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/TimeChangeScriptEvent.java#L11
Nameweather changes|rains|clears in world
Event Lines weather changes|rains|clears (in <world>)
Triggerswhen weather changes in a world.
Generated Examplesafter weather rains:
after weather changes in world:
Contexts<context.world> returns the WorldTag the weather changed in.
<context.weather> returns an ElementTag with the name of the new weather (rains or clears).
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/WeatherChangesScriptEvent.java#L13

Language


NameWorld Script Containers
DescriptionWorld script containers are generic script containers for commands that are automatically
ran when some given event happens in the server.

The only required key is 'events:', within which you can list any events to handle.

World scripts can be automatically disabled by adding "enabled: false" as a root key (supports any load-time-parseable tags).


World_Script_Name:

    type: world

    events:

        # Any event label can be placed here
        # This includes generic labels like 'on entity death:',
        # Specified labels  like 'on player death:',
        # And detailed labels like 'on player death ignorecancelled:true priority:5:'
        some event label:
        # Write any logic that should fire when the event runs.
        # Optionally 'determine' any results to the event.
        - some commands

        # List additional events here

GroupScript Container System
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/containers/core/WorldScriptContainer.java#L9

Mechanism


Nameworldguard_wander_region
ObjectNPCTag
InputWorldGuardRegionTag
Related Tags<NPCTag.worldguard_wander_region> If the NPC's waypoint provider is set to wander (Tag:NPCTag.waypoint_provider), (...)
DescriptionIf the NPC's waypoint provider is set to wander (Mechanism:NPCTag.waypoint_provider),
sets the current WorldGuard region that wandering is restricted to.
Provide no input to remove the region restriction.
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardNPCExtensions.java#L34
Nameadvance_ticks
ObjectWorldTag
InputElementTag(Number)
DescriptionAdvances this world's day the specified number of ticks WITHOUT firing any events.
Useful for manually adjusting the daylight cycle without firing an event every tick, for example.
Generated Example
- adjust <player.location.world> advance_ticks:3
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1437
Nameallow_pvp
ObjectWorldTag
InputElementTag(Boolean)
Related Tags<WorldTag.allows_pvp> Returns whether player versus player combat is allowed in this world.
DescriptionSets whether player versus player combat is allowed in this world.
Generated Example
- adjust <player.location.world> allow_pvp:false
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1294
Nameambient_spawn_limit
ObjectWorldTag
InputElementTag(Number)
Related Tags<WorldTag.ambient_spawn_limit> Returns the number of ambient mobs that can spawn in a chunk in this world.
DescriptionSets the limit for number of ambient mobs that can spawn in a chunk in this world.
Generated Example
- adjust <player.location.world> ambient_spawn_limit:2
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1133
Nameanimal_spawn_limit
ObjectWorldTag
InputElementTag(Number)
Related Tags<WorldTag.animal_spawn_limit> Returns the number of animals that can spawn in a chunk in this world.
DescriptionSets the limit for number of animals that can spawn in a chunk in this world.
Generated Example
- adjust <player.location.world> animal_spawn_limit:3
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1147
Nameauto_save
ObjectWorldTag
InputElementTag(Boolean)
Related Tags<WorldTag.auto_save> Returns whether the world automatically saves.
DescriptionSets whether the world will automatically save edits.
Generated Example
- adjust <player.location.world> auto_save:true
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1161
Namedestroy
ObjectWorldTag
InputNone
DescriptionUnloads the world from the server without saving chunks, then destroys all data that is part of the world.
Require config setting 'Commands.Delete.Allow file deletion'.
Generated Example
- adjust <player.location.world> destroy
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1216
Namedifficulty
ObjectWorldTag
InputElementTag
Related Tags<WorldTag.difficulty> Returns the name of the difficulty level.
DescriptionSets the difficulty level of this world.
Possible values: Peaceful, Easy, Normal, Hard.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1175
Nameduration_since_created
ObjectWorldTag
InputDurationTag
Related Tags<WorldTag.duration_since_created> Returns the total duration of time since this world was first created.
DescriptionChanges the world's internal time-since-created value.
Generated Example
- adjust <player.location.world> duration_since_created:1m
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1450
Namefirst_dragon_killed
ObjectWorldTag
InputElementTag(Boolean)
Related Tags<WorldTag.first_dragon_killed> Returns whether the ender dragon has been killed in this world before. (...)
DescriptionSet whether the first ender dragon was killed already.
Toggling this value won't really affect anything in the end world, but may be useful when creating custom end worlds.
Only works if the world is an end world.
Generated Example
- adjust <player.location.world> first_dragon_killed:true
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1084
Nameforce_unload
ObjectWorldTag
InputNone
DescriptionUnloads the world from the server without saving chunks.
Generated Example
- adjust <player.location.world> force_unload
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1243
Namefull_time
ObjectWorldTag
InputElementTag(Number)
Related Tags<WorldTag.time.full> Returns the in-game time of this world.
DescriptionSets the in-game time on the server.
Generated Example
- adjust <player.location.world> full_time:3
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1255
Namehardcore
ObjectWorldTag
InputElementTag(Boolean)
Related Tags<WorldTag.hardcore> Returns whether the world is in hardcore mode.
DescriptionSets whether the world is hardcore mode.
Generated Example
- adjust <player.location.world> hardcore:true
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1192
Namekeep_spawn
ObjectWorldTag
InputElementTag(Boolean)
Related Tags<WorldTag.keep_spawn> Returns whether the world's spawn area should be kept loaded into memory.
DescriptionSets whether the world's spawn area should be kept loaded into memory.
Generated Example
- adjust <player.location.world> keep_spawn:false
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1268
Namemonster_spawn_limit
ObjectWorldTag
InputElementTag(Number)
Related Tags<WorldTag.monster_spawn_limit> Returns the number of monsters that can spawn in a chunk in this world.
DescriptionSets the limit for number of monsters that can spawn in a chunk in this world.
Generated Example
- adjust <player.location.world> monster_spawn_limit:1
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1281
Nameno_tick_view_distance
ObjectWorldTag
InputElementTag(Number)
Related Tags<WorldTag.no_tick_view_distance> Deprecated: replaced by Minecraft's simulation_distance and view_distance config pairing
DescriptionDeprecated: replaced by Minecraft's simulation_distance and view_distance config pairing
Generated Example
- adjust <player.location.world> no_tick_view_distance:1
Grouppaper
RequiresPaper
Deprecatedreplaced by Minecraft's simulation_distance and view_distance config pairing
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperWorldExtensions.java#L166
Namereset_crystals
ObjectWorldTag
InputNone
DescriptionResets the end crystals located on the obsidian pillars in this world.
Only works if the world is an end world.
Generated Example
- adjust <player.location.world> reset_crystals
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1046
Namerespawn_dragon
ObjectWorldTag
InputNone
DescriptionInitiates the respawn sequence of the ender dragon as if a player placed 4 end crystals on the portal.
Only works if the world is an end world.
Generated Example
- adjust <player.location.world> respawn_dragon
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1029
Namerespawn_phase
ObjectWorldTag
InputElementTag
DescriptionSet the current respawn phase of the ender dragon. Valid phases can be found at 🔗https://jd.papermc.io/paper/1.21.3/org/bukkit/boss/DragonBattle.RespawnPhase.html
Only works if the world is an end world.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1063
Namesave
ObjectWorldTag
InputNone
DescriptionSaves the world to file.
Generated Example
- adjust <player.location.world> save
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1205
Namesimulation_distance
ObjectWorldTag
InputElementTag(Number)
Related Tags<WorldTag.view_distance> Returns the view distance of this world. Chunks are visible to players inside this radius. (...)
<server.view_distance> Returns the server's current view distance.
DescriptionSets this world's view distance. All chunks within this radius will be tracked by the server.
Input should be a number from 2 to 32.
See also Mechanism:WorldTag.view_distance
Generated Example
- adjust <player.location.world> simulation_distance:2
Grouppaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperWorldExtensions.java#L140
Nameskip_night
ObjectWorldTag
InputNone
DescriptionSkips to the next day as if enough players slept through the night.
NOTE: This ignores the doDaylightCycle gamerule!
Generated Example
- adjust <player.location.world> skip_night
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1463
Namespawn_gateway
ObjectWorldTag
InputLocationTag
DescriptionSpawns a new end gateway portal at the specified location.
If no location is specified, tries to spawn a new end gateway using default game mechanics.
Only works if the world is an end world.
Generated Example
- adjust <player.location.world> spawn_gateway:<player.location>
Grouppaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperWorldExtensions.java#L88
Namespawn_location
ObjectWorldTag
InputLocationTag
Related Tags<WorldTag.spawn_location> Returns the spawn location of the world.
DescriptionSets the spawn location of this world. (This ignores the world value of the LocationTag.)
Generated Example
- adjust <player.location.world> spawn_location:<npc.location>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1307
Namestorming
ObjectWorldTag
InputElementTag(Boolean)
Related Tags<WorldTag.has_storm> Returns whether there is currently a storm in this world. (...)
DescriptionSets whether there is a storm.
Generated Example
- adjust <player.location.world> storming:true
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1321
Namethunder_duration
ObjectWorldTag
InputDurationTag
Related Tags<WorldTag.thunder_duration> Returns the duration of thunder.
DescriptionSets the duration of thunder.
Generated Example
- adjust <player.location.world> thunder_duration:5m
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1334
Namethundering
ObjectWorldTag
InputElementTag(Boolean)
Related Tags<WorldTag.thundering> Returns whether it is currently thundering in this world.
DescriptionSets whether it is thundering.
Generated Example
- adjust <player.location.world> thundering:false
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1347
Nameticks_per_animal_spawns
ObjectWorldTag
InputDurationTag
Related Tags<WorldTag.ticks_per_animal_spawn> Returns the world's ticks per animal spawn value.
DescriptionSets the time between animal spawns.
Generated Example
- adjust <player.location.world> ticks_per_animal_spawns:1m
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1360
Nameticks_per_monster_spawns
ObjectWorldTag
InputDurationTag
Related Tags<WorldTag.ticks_per_monster_spawn> Returns the world's ticks per monster spawn value.
DescriptionSets the time between monster spawns.
Generated Example
- adjust <player.location.world> ticks_per_monster_spawns:5m
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1373
Nametime
ObjectWorldTag
InputElementTag(Number)
Related Tags<WorldTag.time> Returns the relative in-game time of this world.
DescriptionSets the relative in-game time on the server.
Generated Example
- adjust <player.location.world> time:1
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1386
Nameunload
ObjectWorldTag
InputNone
DescriptionUnloads the world from the server and saves chunks.
Generated Example
- adjust <player.location.world> unload
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1399
Nameview_distance
ObjectWorldTag
InputElementTag(Number)
Related Tags<WorldTag.view_distance> Returns the view distance of this world. Chunks are visible to players inside this radius. (...)
<server.view_distance> Returns the server's current view distance.
DescriptionSets this world's view distance. All chunks within this radius of a player will be visible to that player.
Input should be a number from 2 to 32.
See also Mechanism:WorldTag.simulation_distance
Generated Example
- adjust <player.location.world> view_distance:3
Grouppaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperWorldExtensions.java#L114
Namewater_animal_spawn_limit
ObjectWorldTag
InputElementTag(Number)
Related Tags<WorldTag.water_animal_spawn_limit> Returns the number of water animals that can spawn in a chunk in this world.
DescriptionSets the limit for number of water animals that can spawn in a chunk in this world.
Generated Example
- adjust <player.location.world> water_animal_spawn_limit:3
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1411
Nameweather_duration
ObjectWorldTag
InputDurationTag
Related Tags<WorldTag.weather_duration> Returns the duration of storms.
DescriptionSet the remaining time of the current conditions.
Generated Example
- adjust <player.location.world> weather_duration:5m
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1424

ObjectType


NameWorldGuardRegionTag
Prefixregion@
Base TypeElementTag
Identity FormatThe identity format for regions is <region_name>,<world_name>.
For example, 'region@spawnland,Hub'.
DescriptionA WorldGuardRegionTag represents a WorldGuard region in the world.
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/worldguard/WorldGuardRegionTag.java#L31
NameWorldTag
Prefixw@
Base TypeElementTag
ImplementsFlaggableObject
Identity FormatThe identity format for worlds is the name of the world it should be associated with.
For example, to reference the world named 'world1', use simply 'world1'.
World names are case insensitive.
DescriptionA WorldTag represents a world on the server.

This object type is flaggable.
Flags on this object type will be stored in the world folder in a file named 'denizen_flags.dat', like "server/world/denizen_flags.dat".
MatchableWorldTag matchers, sometimes identified as "<world>":
"world" plaintext: always matches.
World name: matches if the world has the given world name, using advanced matchers.
"world_flagged:<flag>": a Flag Matchable for WorldTag flags.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L42

Tag


Name<AreaObject.with_world[<world>]>
ReturnsAreaObject
DescriptionReturns a copy of the area, with the specified world.
Example
# Notes a copy of "my_cuboid" with the same coordinates transposed from the overworld to the end world.
- note my_new_cuboid <cuboid[my_cuboid].with_world[world_the_end]>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/AreaContainmentObject.java#L335
Name<AreaObject.world>
ReturnsWorldTag
DescriptionReturns the area's world.
Example
- narrate "The cuboid, 'my_cuboid', is in world: <cuboid[my_cuboid].world.name>!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/AreaContainmentObject.java#L108
Name<AreaShopTag.worldguard_region>
ReturnsWorldGuardRegionTag
DescriptionReturns the WorldGuardRegionTag that holds the AreaShop.
RequiresDepenizen, AreaShop
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/areashop/AreaShopTag.java#L200
Name<ChunkTag.world>
ReturnsWorldTag
DescriptionReturns the world associated with the chunk.
Example
# Narrates the name of the player's chunk's associated world.
# For example, if the player was in <chunk[5,10,world]>, the world the chunk is in would be "world".
- narrate "The world your chunk is in is: <player.location.chunk.world.name>!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java#L420
Name<ElementTag.as_world>
ReturnsWorldTag
DescriptionDeprecated in favor of Tag:ObjectTag.as
Generated Example
- adjust <element[hello_world].as_world> destroy
Groupconversion
Deprecateduse as[world]
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/properties/bukkit/BukkitElementExtensions.java#L256
Name<EntityTag.world>
ReturnsWorldTag
DescriptionReturns the world the entity is in. Works with offline players.
Generated Example
- adjust <player.world> full_time:0
Grouplocation
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java#L1641
Name<GriefPreventionClaimTag.world>
ReturnsWorldTag
DescriptionReturns the world this GriefPreventionClaim is in.
RequiresDepenizen, GriefPrevention
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/griefprevention/GriefPreventionClaimTag.java#L259
Name<LocationTag.distance[<location>].horizontal.multiworld>
ReturnsElementTag(Decimal)
DescriptionReturns the horizontal distance between 2 multiworld locations.
Groupmath
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3370
Name<LocationTag.distance[<location>].vertical.multiworld>
ReturnsElementTag(Decimal)
DescriptionReturns the vertical distance between 2 multiworld locations.
Groupmath
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3398
Name<LocationTag.with_world[<world>]>
ReturnsLocationTag
DescriptionReturns a copy of the location with a changed world value.
Generated Example
- teleport <player> <player.location.with_world[space]>
Groupidentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3272
Name<LocationTag.world>
ReturnsWorldTag
DescriptionReturns the world that the location is in.
Generated Example
- adjust <player.location.world> destroy
Groupidentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3229
Name<MaterialTag.is_enabled[<world>]>
ReturnsElementTag(Boolean)
DescriptionReturns whether the material is enabled in the specified world.
If experimental features are disabled in the given world, and the MaterialTag is an item or block that is only enabled by experimental features, this will return false.
Generated Example
- if <material[stone].is_enabled[space]>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/MaterialTag.java#L679
Name<NPCTag.worldguard_wander_region>
ReturnsWorldGuardRegionTag
MechanismNPCTag.worldguard_wander_region
DescriptionIf the NPC's waypoint provider is set to wander (Tag:NPCTag.waypoint_provider),
returns the current WorldGuard region that wandering is restricted to, if any.
Generated Example
- narrate <npc.worldguard_wander_region>
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardNPCExtensions.java#L13
Name<PlayerTag.groups[(<world>)]>
ReturnsListTag
DescriptionReturns a list of all groups the player is in.
May work with offline players, depending on permission plugin.
Generated Example
- foreach <player.groups> as:entry:
    - narrate "found <[entry]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java#L1088
Name<PlayerTag.has_permission[permission.node].world[<world>]>
ReturnsElementTag(Boolean)
DescriptionReturns whether the player has the specified node in regards to the
specified world.
(Works with offline players)
(Note: This may or may not be functional with your permissions system.)
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java#L1341
Name<PlayerTag.in_group[<group_name>].world[<world>]>
ReturnsElementTag(Boolean)
DescriptionReturns whether the player has the group in regards to a specific world.
(Works with offline players)
(Note: This may or may not be functional with your permissions system.)
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java#L1276
Name<PlayerTag.plotsquared_plots[<WorldTag>]>
ReturnsListTag(PlotSquaredPlotTag)
DescriptionReturns a list of plots a player has in a world. Exclude the context to get plots in all worlds.
Generated Example
- foreach <player.plotsquared_plots[<player.location.world>]> as:entry:
    - narrate "found <[entry]>"
RequiresDepenizen, PlotSquared
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/plotsquared/PlotSquaredPlayerProperties.java#L55
Name<PlayerTag.worldguard_can_build[<location>]>
ReturnsElementTag(Boolean)
DescriptionWhether WorldGuard allows to build at a location.
Generated Example
- if <player.worldguard_can_build[<npc.location>]>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardPlayerExtensions.java#L98
Name<PlayerTag.worldguard_flag[flag=<flag>(;location=<at>)]>
ReturnsObjectTag
DescriptionReturns the boolean state of a flag for that player at the specified location, defaults to player location.
For non-state tags, returns the current value of the flag.
Example
# Returns 'true' if the player can be attacked (according to WG) or 'false' if not.
- narrate <player.worldguard_flag[flag=pvp]>
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardPlayerExtensions.java#L110
Name<PlayerTag.worldguard.can_build[<location>]>
ReturnsElementTag(Boolean)
DescriptionDeprecated in favor of Tag:PlayerTag.worldguard_can_build
RequiresDepenizen, WorldGuard
DeprecatedUse 'PlayerTag.worldguard_can_build'
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardPlayerExtensions.java#L32
Name<PlayerTag.worldguard.test_flag[<name>].at[<location>]>
ReturnsObjectTag
DescriptionDeprecated in favor of Tag:PlayerTag.worldguard_flag
RequiresDepenizen, WorldGuard
DeprecatedUse 'PlayerTag.worldguard_flag'
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardPlayerExtensions.java#L70
Name<PlayerTag.worldguard.test_flag[<name>]>
ReturnsObjectTag
DescriptionDeprecated in favor of Tag:PlayerTag.worldguard_flag
RequiresDepenizen, WorldGuard
DeprecatedUse 'PlayerTag.worldguard_flag'
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardPlayerExtensions.java#L51
Name<PlotSquaredPlotTag.world>
ReturnsWorldTag
DescriptionReturns the plot's world.
RequiresDepenizen, PlotSquared
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/plotsquared/PlotSquaredPlotTag.java#L178
Name<server.group_prefix[<group>].world[<world>]>
ReturnsElementTag
DescriptionReturns an ElementTag of a group's chat prefix for the specified WorldTag.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java#L1171
Name<server.group_suffix[<group>].world[<world>]>
ReturnsElementTag
DescriptionReturns an ElementTag of a group's chat suffix for the specified WorldTag.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java#L1205
Name<server.world_types>
ReturnsListTag
DescriptionReturns a list of all world types known to the server.
Generally used with Command:createworld.
This is only their Bukkit enum names, as seen at 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/WorldType.html.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java#L944
Name<server.worlds>
ReturnsListTag(WorldTag)
DescriptionReturns a list of all worlds.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java#L1353
Name<skyblock.island_world>
ReturnsWorldTag
DescriptionReturns the world that A Skyblock uses for islands.
Generated Example
- adjust <skyblock.island_world> full_time:0
RequiresDepenizen, A SkyBlock
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/bridges/ASkyBlockBridge.java#L51
Name<skyblock.nether_world>
ReturnsWorldTag
DescriptionReturns the world that A Skyblock uses for the nether.
Generated Example
- adjust <skyblock.nether_world> destroy
RequiresDepenizen, A SkyBlock
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/bridges/ASkyBlockBridge.java#L62
Name<towny.list_towns[(<world>)]>
ReturnsListTag(TownTag)
DescriptionReturns a list of all towns. Optionally specify a world name.
Generated Example
- foreach <towny.list_towns> as:entry:
    - narrate "found <[entry]>"
RequiresDepenizen, Towny
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/bridges/TownyBridge.java#L68
Name<WorldGuardRegionTag.area>
ReturnsAreaObject
DescriptionReturns the region's block area as a CuboidTag or PolygonTag.
Groupconversion
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/worldguard/WorldGuardRegionTag.java#L151
Name<WorldGuardRegionTag.children>
ReturnsListTag(WorldGuardRegionTag)
DescriptionGets a list of all children of this region.
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/worldguard/WorldGuardRegionTag.java#L208
Name<WorldGuardRegionTag.id>
ReturnsElementTag
DescriptionGets the ID name of the region.
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/worldguard/WorldGuardRegionTag.java#L185
Name<WorldGuardRegionTag.members>
ReturnsListTag(PlayerTag)
DescriptionGets a list of all members of a region. (Members are permitted to build, etc.)
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/worldguard/WorldGuardRegionTag.java#L226
Name<WorldGuardRegionTag.owners>
ReturnsListTag(PlayerTag)
DescriptionGets a list of all owners of a region. (Owners are permitted to build, edit settings, etc.)
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/worldguard/WorldGuardRegionTag.java#L241
Name<WorldGuardRegionTag.parent>
ReturnsWorldGuardRegionTag
DescriptionGets the parent region of this region (if any).
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/worldguard/WorldGuardRegionTag.java#L196
Name<WorldGuardRegionTag.world>
ReturnsWorldTag
DescriptionGets the WorldTag this region is in.
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/worldguard/WorldGuardRegionTag.java#L256
Name<WorldTag.allows_animals>
ReturnsElementTag(Boolean)
DescriptionReturns whether animals can spawn in this world.
Generated Example
- if <player.location.world.allows_animals>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L449
Name<WorldTag.allows_monsters>
ReturnsElementTag(Boolean)
DescriptionReturns whether monsters can spawn in this world.
Generated Example
- if <player.location.world.allows_monsters>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L459
Name<WorldTag.allows_pvp>
ReturnsElementTag(Boolean)
DescriptionReturns whether player versus player combat is allowed in this world.
Generated Example
- if <player.location.world.allows_pvp>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L469
Name<WorldTag.ambient_spawn_limit>
ReturnsElementTag(Number)
MechanismWorldTag.ambient_spawn_limit
DescriptionReturns the number of ambient mobs that can spawn in a chunk in this world.
Generated Example
- narrate "the number value is <player.location.world.ambient_spawn_limit>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L490
Name<WorldTag.animal_spawn_limit>
ReturnsElementTag(Number)
MechanismWorldTag.animal_spawn_limit
DescriptionReturns the number of animals that can spawn in a chunk in this world.
Generated Example
- narrate "the number value is <player.location.world.animal_spawn_limit>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L501
Name<WorldTag.auto_save>
ReturnsElementTag(Boolean)
MechanismWorldTag.auto_save
DescriptionReturns whether the world automatically saves.
Generated Example
- if <player.location.world.auto_save>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L479
Name<WorldTag.bigdoors>
ReturnsListTag(BigDoorsDoorTag)
DescriptionReturns a list of Big Doors doors in the world.
Generated Example
- foreach <player.location.world.bigdoors> as:entry:
    - narrate "found <[entry]>"
RequiresDepenizen, Big Doors
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/bigdoors/BigDoorsWorldProperties.java#L48
Name<WorldTag.biomes>
ReturnsListTag(BiomeTag)
DescriptionReturns a list of all biomes in this world (including custom biomes).
Generated Example
- foreach <player.location.world.biomes> as:entry:
    - narrate "found <[entry]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L890
Name<WorldTag.border_center>
ReturnsLocationTag
DescriptionReturns the center of the world border in this world.
Generated Example
- teleport <player> <player.location.world.border_center>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L748
Name<WorldTag.border_damage_buffer>
ReturnsElementTag(Decimal)
DescriptionReturns the damage buffer of the world border in this world.
Generated Example
- narrate "the decimal value is <player.location.world.border_damage_buffer>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L768
Name<WorldTag.border_damage>
ReturnsElementTag(Decimal)
DescriptionReturns the amount of damage caused by crossing the world border in this world.
Generated Example
- narrate "the decimal value is <player.location.world.border_damage>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L758
Name<WorldTag.border_size>
ReturnsElementTag(Decimal)
DescriptionReturns the size of the world border in this world.
Generated Example
- narrate "the decimal value is <player.location.world.border_size>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L738
Name<WorldTag.border_warning_distance>
ReturnsElementTag(Number)
DescriptionReturns the warning distance of the world border in this world.
Generated Example
- narrate "the number value is <player.location.world.border_warning_distance>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L778
Name<WorldTag.border_warning_time>
ReturnsDurationTag
DescriptionReturns warning time of the world border in this world as a duration.
Generated Example
- ratelimit <player> <player.location.world.border_warning_time>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L788
Name<WorldTag.can_generate_structures>
ReturnsElementTag(Boolean)
DescriptionReturns whether the world will generate structures.
Generated Example
- if <player.location.world.can_generate_structures>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L344
Name<WorldTag.difficulty>
ReturnsElementTag
MechanismWorldTag.difficulty
DescriptionReturns the name of the difficulty level.
Generated Example
- narrate <player.location.world.difficulty>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L534
Name<WorldTag.dragon_portal_location>
ReturnsLocationTag
DescriptionReturns the location of the ender dragon exit portal, if any (only for end worlds).
Generated Example
- teleport <player> <player.location.world.dragon_portal_location>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L832
Name<WorldTag.duration_since_created>
ReturnsDurationTag
MechanismWorldTag.duration_since_created
DescriptionReturns the total duration of time since this world was first created.
Generated Example
- flag server myflag expire:<player.location.world.duration_since_created>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L589
Name<WorldTag.ender_dragon>
ReturnsEntityTag
DescriptionReturns the ender dragon entity currently fighting in this world, if any (only for end worlds).
Generated Example
- kill <player.location.world.ender_dragon>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L850
Name<WorldTag.enough_deep_sleeping[(<#>)]>
ReturnsElementTag(Boolean)
DescriptionReturns whether enough players have been in bed long enough for the night to advance (generally 100 ticks).
Loops through all online players, so is typically used after checking Tag:WorldTag.enough_sleeping
By default, automatically checks the playersSleepingPercentage gamerule,
but this can optionally be overridden by specifying a percentage integer.
Any integer above 100 will always yield 'false'. Requires at least one player to be sleeping to return 'true'.
Generated Example
- if <player.location.world.enough_deep_sleeping>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L953
Name<WorldTag.enough_sleeping[(<#>)]>
ReturnsElementTag(Boolean)
DescriptionReturns whether enough players are sleeping to prepare for the night to advance.
Typically used before checking Tag:WorldTag.enough_deep_sleeping
By default, automatically checks the playersSleepingPercentage gamerule,
but this can optionally be overridden by specifying a percentage integer.
Any integer above 100 will always yield 'false'. Requires at least one player to be sleeping to return 'true'.
Generated Example
- if <player.location.world.enough_sleeping>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L932
Name<WorldTag.entities[(<matcher>)]>
ReturnsListTag(EntityTag)
DescriptionReturns a list of entities in this world.
Optionally specify an entity type matcher to filter down to.
Generated Example
- foreach <player.location.world.entities> as:entry:
    - narrate "found <[entry]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L252
Name<WorldTag.environment>
ReturnsElementTag
DescriptionReturns the environment of the world: NORMAL, NETHER, or THE_END.
Generated Example
- narrate <player.location.world.environment>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L724
Name<WorldTag.first_dragon_killed>
ReturnsElementTag(Boolean)
MechanismWorldTag.first_dragon_killed
DescriptionReturns whether the ender dragon has been killed in this world before.
Only works if the world is an end world.
Generated Example
- if <player.location.world.first_dragon_killed>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L1012
Name<WorldTag.gamerule_map>
ReturnsMapTag
DescriptionReturns a map of all the current values of all gamerules in the world.
Generated Example
- foreach <player.location.world.gamerule_map> key:key as:val:
    - narrate "<[key]> is set as <[val]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L815
Name<WorldTag.gamerule[<gamerule>]>
ReturnsElementTag
DescriptionReturns the current value of the specified gamerule in the world.
Note that the name is case-sensitive... so "doFireTick" is correct, but "dofiretick" is not.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L798
Name<WorldTag.gateway_count>
ReturnsElementTag(Number)
DescriptionReturns the number of end gateway portals.
Only works if the world is an end world.
Generated Example
- narrate "the number value is <player.location.world.gateway_count>"
Grouppaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperWorldExtensions.java#L34
Name<WorldTag.gateway_locations>
ReturnsListTag(LocationTag)
DescriptionReturns a list of possible gateway portal locations, if any (only for end worlds).
Not all of these will necessarily generate.
In current implementation, this is a list of exactly 20 locations in a circle around the world origin (with radius of 96 blocks).
Generated Example
- foreach <player.location.world.gateway_locations> as:entry:
    - narrate "found <[entry]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L867
Name<WorldTag.griefprevention_claims>
ReturnsListTag(GriefPreventionClaimTag)
DescriptionReturns a list of GriefPreventionClaim in this world.
Generated Example
- foreach <player.location.world.griefprevention_claims> as:entry:
    - narrate "found <[entry]>"
RequiresDepenizen, GriefPrevention
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/griefprevention/GriefPreventionWorldProperties.java#L49
Name<WorldTag.hardcore>
ReturnsElementTag(Boolean)
MechanismWorldTag.hardcore
DescriptionReturns whether the world is in hardcore mode.
Generated Example
- if <player.location.world.hardcore>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L545
Name<WorldTag.has_region[<name>]>
ReturnsElementTag(Boolean)
DescriptionReturns whether a region exists in this world for the given name.
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardWorldExtensions.java#L29
Name<WorldTag.has_storm>
ReturnsElementTag(Boolean)
DescriptionReturns whether there is currently a storm in this world.
ie, whether it is raining. To check for thunder, use Tag:WorldTag.thundering.
Generated Example
- if <player.location.world.has_storm>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L680
Name<WorldTag.healing_crystals>
ReturnsListTag(EntityTag)
DescriptionReturns a ListTag of the healing end crystals located on top of the obsidian towers.
Only works if the world is an end world.
Generated Example
- foreach <player.location.world.healing_crystals> as:entry:
    - narrate "found <[entry]>"
Grouppaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperWorldExtensions.java#L52
Name<WorldTag.is_day>
ReturnsElementTag(Boolean)
DescriptionReturns whether it is considered day in this world. Players are not allowed to sleep at this time.
Note that in certain worlds, this and Tag:WorldTag.is_night can both be 'false'! (The nether, for example!)
In typical worlds, this is 'true' if Tag:WorldTag.sky_darkness is less than 4.
To check the current time without storm interference, see Tag:WorldTag.time and related tags.
Generated Example
- if <player.location.world.is_day>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L986
Name<WorldTag.is_night>
ReturnsElementTag(Boolean)
DescriptionReturns whether it is considered night in this world. Players are typically allowed to sleep at this time.
Note that in certain worlds, this and Tag:WorldTag.is_day can both be 'false'! (The nether, for example!)
In typical worlds, this is 'true' if Tag:WorldTag.sky_darkness is 4 or higher.
To check the current time without storm interference, see Tag:WorldTag.time and related tags.
Generated Example
- if <player.location.world.is_night>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L999
Name<WorldTag.is_skyblock_world>
ReturnsElementTag(Boolean)
DescriptionReturns whether the world is used by A SkyBlock.
Generated Example
- if <player.location.world.is_skyblock_world>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
RequiresDepenizen, A SkyBlock
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/askyblock/ASkyBlockWorldProperties.java#L61
Name<WorldTag.keep_spawn>
ReturnsElementTag(Boolean)
MechanismWorldTag.keep_spawn
DescriptionReturns whether the world's spawn area should be kept loaded into memory.
Generated Example
- if <player.location.world.keep_spawn>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L556
Name<WorldTag.list_regions>
ReturnsListTag(WorldGuardRegionTag)
DescriptionReturns a list of WorldGuard regions in this world.
Generated Example
- foreach <player.location.world.list_regions> as:entry:
    - narrate "found <[entry]>"
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardWorldExtensions.java#L14
Name<WorldTag.living_entities>
ReturnsListTag(EntityTag)
DescriptionReturns a list of living entities in this world.
This includes Players, mobs, NPCs, etc., but excludes dropped items, experience orbs, etc.
Generated Example
- foreach <player.location.world.living_entities> as:entry:
    - narrate "found <[entry]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L271
Name<WorldTag.loaded_chunks>
ReturnsListTag(ChunkTag)
DescriptionReturns a list of all the currently loaded chunks.
Generated Example
- foreach <player.location.world.loaded_chunks> as:entry:
    - narrate "found <[entry]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L354
Name<WorldTag.max_height>
ReturnsElementTag(Number)
DescriptionReturns the maximum block height of the world.
Generated Example
- narrate "the number value is <player.location.world.max_height>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L379
Name<WorldTag.min_height>
ReturnsElementTag(Number)
DescriptionReturns the minimum block height of the world.
Generated Example
- narrate "the number value is <player.location.world.min_height>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L389
Name<WorldTag.monster_spawn_limit>
ReturnsElementTag(Number)
MechanismWorldTag.monster_spawn_limit
DescriptionReturns the number of monsters that can spawn in a chunk in this world.
Generated Example
- narrate "the number value is <player.location.world.monster_spawn_limit>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L512
Name<WorldTag.moon_phase>
ReturnsElementTag(Number)
DescriptionReturns the current phase of the moon, as a number from 1 to 8.
Generated Example
- narrate "the number value is <player.location.world.moon_phase>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L666
Name<WorldTag.name>
ReturnsElementTag
DescriptionReturns the name of the world.
Generated Example
- narrate <player.location.world.name>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L425
Name<WorldTag.no_tick_view_distance>
ReturnsElementTag(Number)
MechanismWorldTag.no_tick_view_distance
DescriptionDeprecated: replaced by Minecraft's simulation_distance and view_distance config pairing
Generated Example
- narrate "the number value is <player.location.world.no_tick_view_distance>"
Grouppaper
RequiresPaper
Deprecatedreplaced by Minecraft's simulation_distance and view_distance config pairing
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperWorldExtensions.java#L17
Name<WorldTag.npcs>
ReturnsListTag(NPCTag)
DescriptionReturns a list of all NPCs in this world.
Generated Example
- foreach <player.location.world.npcs> as:entry:
    - narrate "found <[entry]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L319
Name<WorldTag.players>
ReturnsListTag(PlayerTag)
DescriptionReturns a list of online players in this world.
Generated Example
- foreach <player.location.world.players> as:entry:
    - narrate "found <[entry]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L286
Name<WorldTag.respawn_crystals>
ReturnsListTag(EntityTag)
DescriptionReturns a ListTag of the respawn end crystals located at the end exit portal.
Only works if the world is an end world.
Generated Example
- foreach <player.location.world.respawn_crystals> as:entry:
    - narrate "found <[entry]>"
Grouppaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperWorldExtensions.java#L70
Name<WorldTag.sea_level>
ReturnsElementTag(Number)
DescriptionReturns the level of the sea.
Generated Example
- narrate "the number value is <player.location.world.sea_level>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L369
Name<WorldTag.seed>
ReturnsElementTag
DescriptionReturns the world seed.
Generated Example
- narrate <player.location.world.seed>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L435
Name<WorldTag.simulation_distance>
ReturnsElementTag(Number)
MechanismWorldTag.simulation_distance
DescriptionReturns the simulation distance of this world. Chunks inside of this radius to players are ticked and processed.
See also Tag:WorldTag.view_distance
Generated Example
- narrate "the number value is <player.location.world.simulation_distance>"
Groupproperties
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L918
Name<WorldTag.sky_darkness>
ReturnsElementTag(Number)
DescriptionReturns the current darkness level of the sky in this world.
This is determined by an equation that factors in rain, thunder, and time of day.
When 4 or higher, players are typically allowed to sleep through the night.
Generated Example
- narrate "the number value is <player.location.world.sky_darkness>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L974
Name<WorldTag.spawn_location>
ReturnsLocationTag
MechanismWorldTag.spawn_location
DescriptionReturns the spawn location of the world.
Generated Example
- teleport <player> <player.location.world.spawn_location>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L399
Name<WorldTag.spawned_npcs>
ReturnsListTag(NPCTag)
DescriptionReturns a list of spawned NPCs in this world.
Generated Example
- foreach <player.location.world.spawned_npcs> as:entry:
    - narrate "found <[entry]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L302
Name<WorldTag.thunder_duration>
ReturnsDurationTag
MechanismWorldTag.thunder_duration
DescriptionReturns the duration of thunder.
Generated Example
- flag server myflag expire:<player.location.world.thunder_duration>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L691
Name<WorldTag.thundering>
ReturnsElementTag(Boolean)
MechanismWorldTag.thundering
DescriptionReturns whether it is currently thundering in this world.
Generated Example
- if <player.location.world.thundering>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L702
Name<WorldTag.ticks_per_animal_spawn>
ReturnsDurationTag
MechanismWorldTag.ticks_per_animal_spawns
DescriptionReturns the world's ticks per animal spawn value.
Generated Example
- ratelimit <player> <player.location.world.ticks_per_animal_spawn>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L567
Name<WorldTag.ticks_per_monster_spawn>
ReturnsDurationTag
MechanismWorldTag.ticks_per_monster_spawns
DescriptionReturns the world's ticks per monster spawn value.
Generated Example
- ratelimit <player> <player.location.world.ticks_per_monster_spawn>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L578
Name<WorldTag.time.duration>
ReturnsDurationTag
DescriptionReturns the relative in-game time of this world as a duration.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L612
Name<WorldTag.time.full>
ReturnsDurationTag
DescriptionReturns the in-game time of this world.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L623
Name<WorldTag.time.period>
ReturnsElementTag
DescriptionReturns the time as 'day', 'night', 'dawn', or 'dusk'.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L634
Name<WorldTag.time>
ReturnsElementTag(Number)
MechanismWorldTag.time
DescriptionReturns the relative in-game time of this world.
Generated Example
- narrate "the number value is <player.location.world.time>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L604
Name<WorldTag.towny_enabled>
ReturnsElementTag(Boolean)
DescriptionReturns whether this world has Towny enabled.
Generated Example
- if <player.location.world.towny_enabled>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
RequiresDepenizen, Towny
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/towny/TownyWorldProperties.java#L51
Name<WorldTag.view_distance>
ReturnsElementTag(Number)
MechanismWorldTag.view_distance
DescriptionReturns the view distance of this world. Chunks are visible to players inside this radius.
See also Tag:WorldTag.simulation_distance
Generated Example
- narrate "the number value is <player.location.world.view_distance>"
Groupproperties
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L904
Name<WorldTag.water_animal_spawn_limit>
ReturnsElementTag(Number)
MechanismWorldTag.water_animal_spawn_limit
DescriptionReturns the number of water animals that can spawn in a chunk in this world.
Generated Example
- narrate "the number value is <player.location.world.water_animal_spawn_limit>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L523
Name<WorldTag.weather_duration>
ReturnsDurationTag
MechanismWorldTag.weather_duration
DescriptionReturns the duration of storms.
Generated Example
- flag server myflag expire:<player.location.world.weather_duration>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L713
Name<WorldTag.world_type>
ReturnsElementTag
DescriptionReturns the world type of the world.
Can return any enum from: 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/WorldType.html
Generated Example
- narrate <player.location.world.world_type>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/WorldTag.java#L410

Partial Synonym Match Results


Name<FlaggableObject.flag_expiration[<flag_name>]>
ReturnsTimeTag
DescriptionReturns a TimeTag indicating when the specified flag will expire.
See Language:flag system.
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/flags/AbstractFlagTracker.java#L71
Name<FlaggableObject.flag_map[<name>|...]>
ReturnsMapTag
DescriptionReturns a raw map of the objects internal flag data for the flags with the given flag name. Names must be root names (no '.').
Output is a MapTag wherein each key is a flag name, and each value is a MapTag, containing keys '__value' and '__expiration', where '__value' contains the real object value.
Output also may contain key '__clear', which is a ListTag of flags that were listed in input but weren't present in output.
Using this without a parameter to get ALL flags is allowed exclusively for debug/testing reasons, and should never be used in a real script.
See Language:flag system.
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/flags/AbstractFlagTracker.java#L104
Name<FlaggableObject.flag[<flag_name>]>
ReturnsObjectTag
DescriptionReturns the specified flag from the flaggable object.
If the flag is expired, will return null.
Consider also using Tag:FlaggableObject.has_flag.
See Language:flag system.
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/flags/AbstractFlagTracker.java#L37
Name<FlaggableObject.has_flag[<flag_name>]>
ReturnsElementTag(Boolean)
DescriptionReturns true if the flaggable object has the specified flag, otherwise returns false.
See Language:flag system.
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/flags/AbstractFlagTracker.java#L55
Name<FlaggableObject.list_flags>
ReturnsListTag
DescriptionReturns a list of the flaggable object's flags.
Note that this is exclusively for debug/testing reasons, and should never be used in a real script.
See Language:flag system.
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/flags/AbstractFlagTracker.java#L87

Strong Match Results



Command


NameAnimateChest
Syntaxanimatechest [<location>] ({open}/close) (sound:{true}/false) (<player>|...)
Short DescriptionMakes a chest appear to open or close.
Full DescriptionThis command animates a chest at a specified location in the world opening or closing.
By default, the chest will animate opening.
Optionally, specify whether to play a sound with the animation. By default this will play.
Optionally, specify a player or list of players that the animation should be visible to.
By default, only the linked player can see the animation.

Note that this uses a generic 'block action' packet internally,
which means other block types may also react to this command.
Related TagsNone
Usage Example
# Use to animate a chest opening, which only the linked player will see.
- animatechest <context.location>
Usage Example
# Use to then animate a chest closing, which only the linked player will see.
- animatechest <context.location> close
Usage Example
# Use to animate a chest opening with no sound, which only the linked player will see.
- animatechest <context.location> sound:false
Usage Example
# Use to animate a chest opening that only a single specific player will see.
- animatechest <context.location> sound:false <[someplayer]>
Usage Example
# Use to animate a chest opening that only a list of specific players will see.
- animatechest <context.location> sound:false <[someplayer]>|<[player]>|<[thatplayer]>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/AnimateChestCommand.java#L30
NameChunkLoad
Syntaxchunkload ({add}/remove/removeall) [<chunk>|...] (duration:<value>)
Short DescriptionKeeps a chunk actively loaded and allowing activity.
Full DescriptionForces a chunk to load and stay loaded in the world for the duration specified or until removed.
This will not persist over server restarts.
If no duration is specified it defaults to 0 (forever).
While a chunk is loaded all normal activity such as crop growth and npc activity continues,
other than activity that requires a nearby player.
Related Tags<WorldTag.loaded_chunks> Returns a list of all the currently loaded chunks.
<ChunkTag.is_loaded> Returns true if the chunk is currently loaded into memory.
<ChunkTag.force_loaded> Returns whether the chunk is forced to stay loaded at all times.
Usage Example
# Use to load a chunk.
- chunkload <[some_chunk]>
Usage Example
# Use to temporarily load a chunk.
- chunkload <player.location.add[5000,0,0].chunk> duration:5m
Usage Example
# Use to stop loading a chunk.
- chunkload remove <[some_chunk]>
Usage Example
# Use to stop loading all chunks.
- chunkload removeall
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/ChunkLoadCommand.java#L41
NameCopyBlock
Syntaxcopyblock [<location>] [to:<location>] (remove_original)
Short DescriptionCopies a block to another location, keeping metadata when possible.
Full DescriptionCopies a block to another location.
You may also use the 'remove_original' argument to delete the original block.
This effectively moves the block to the target location.
Related Tags<LocationTag.material> Returns the material of the block at the location.
Usage Example
# Use to copy the block the player is looking at to their current location
- copyblock <player.cursor_on> to:<player.location>
Usage Example
# Use to move the block the player is looking at to their current location (removing it from its original location)
- copyblock <player.cursor_on> to:<player.location> remove_original
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/CopyBlockCommand.java#L29
NameDrop
Syntaxdrop [<entity_type>/xp/<item>|...] (<location>) (quantity:<#>) (speed:<#.#>) (delay:<duration>)
Short DescriptionDrops an item, entity, or experience orb on a location.
Full DescriptionTo drop an item, just specify a valid item object. To drop an entity, specify a generic entity object.
Drop can also reward players with experience orbs by using the 'xp' argument.

For all three usages, you can optionally specify an integer with 'quantity:' prefix to drop multiple items/entities/xp.

For items, you can add 'speed:' to modify the launch velocity.
You can also add 'delay:' to set the pickup delay of the item.
Related Tags<entry[saveName].dropped_entities> returns a list of entities that were dropped.
<entry[saveName].dropped_entity> returns a single entity that was dropped (if only one).
<EntityTag.item> (Property) An entity's item, which can be: (...)
<EntityTag.experience> Returns the experience value of this experience orb entity.
Usage Example
# Use to drop some loot around the player.
- drop gold_nugget <cuboid[<player.location.add[-2,-2,-2]>|<player.location.add[2,2,2]>].spawnable_blocks.random>
Usage Example
# Use to reward a player with 500 xp.
- drop xp quantity:500 <player.location>
Usage Example
# Use to drop a nasty surprise (exploding TNT).
- drop primed_tnt <player.location>
Usage Example
# Use to drop an item with a pickup delay at the player's location.
- drop diamond_sword <player.location> delay:20s
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/DropCommand.java#L34
NameExplode
Syntaxexplode (power:<#.#>) (<location>) (fire) (breakblocks) (source:<entity>)
Short DescriptionCauses an explosion at the location.
Full DescriptionThis command causes an explosion at the location specified (or the npc / player location).
By default, this will not destroy blocks or set fire to blocks within the explosion.

Specify the 'fire' argument to set blocks on fire within the explosion radius.

Specify the 'breakblocks' argument to cause the explosion to break blocks within the power radius.

If no power is specified, the default power will be 1.

If no location is given, the default will be the linked NPC or player's location.
It is highly recommended you specify a location to be safe.

Optionally specify a source entity that will be tracked as the damage cause.
Related TagsNone
Usage Example
# Use to create an explosion at a player's location.
- explode <player.location>
Usage Example
# Use to create an explosion at a player, which breaks blocks and causes fire with a power of 5.
- explode power:5 <player.location> fire breakblocks
Usage Example
# Use to create an explosion with a power radius of 3 at an NPC's location.
- explode power:3 <npc.location>
Usage Example
# Use to create an explosion with a power radius of 3 at a related location which breaks blocks.
- explode power:3 <context.location> breakblocks
Synonyms (Search Aid)detonate, bomb, tnt
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/ExplodeCommand.java#L22
NameFirework
Syntaxfirework (<location>) (power:<#>) (<type>/random) (primary:<color>|...) (fade:<color>|...) (flicker) (trail) (life:<duration>)
Short DescriptionLaunches a firework with customizable style.
Full DescriptionThis command launches a firework from the specified location.

If no location is given, the linked NPC or player's location will be used by default.

The power option, which defaults to 1 if left empty, specifies the 'power' integer of the firework, which mainly controls how high the firework will go before exploding.
Alternately, the "life" option allows you to manually specify a specific duration.

The type option which specifies the shape the firework will explode with. If unspecified, 'ball' will be used.
Can be any of: ball, ball_large, star, burst, or creeper

The primary option specifies what color the firework explosion will start with, as a ColorTag. If unspecified, 'yellow' will be used.

The fade option specifies what color the firework explosion will fade into, as a ColorTag.

The trail option means the firework will leave a trail behind it.

The flicker option means the firework will explode with a flicker effect.
Related Tags<EntityTag.firework_item> If the entity is a firework, returns the firework item used to launch it.
<ItemTag.is_firework> Returns whether the item is a firework. (...)
<ItemTag.firework> Returns the firework's property value as a list, matching the non-MapTag format of the mechanism. (...)
<entry[saveName].launched_firework> returns a EntityTag of the firework that was launched.
Usage Example
# Use to launch a star firework which explodes yellow and fades to white afterwards at the player's location.
- firework <player.location> star primary:yellow fade:white
Usage Example
# Use to make the firework launch double the height before exploding.
- firework <player.location> power:2 star primary:yellow fade:white
Usage Example
# Use to launch a firework which leaves a trail.
- firework <player.location> random trail
Usage Example
# Use to launch a firework which leaves a trail and explodes with a flicker effect at related location.
- firework <context.location> random trail flicker
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/FireworkCommand.java#L38
NameGamerule
Syntaxgamerule [<world>] [<rule>] [<value>]
Short DescriptionSets a gamerule on the world.
Full DescriptionSets a gamerule on the world. A list of valid gamerules can be found here: 🔗https://minecraft.wiki/w/Game_rule
Note: Be careful, gamerules are CASE SENSITIVE.
Related Tags<WorldTag.gamerule[<gamerule>]> Returns the current value of the specified gamerule in the world. (...)
Usage Example
# Use to disable fire spreading in world "Adventure".
- gamerule Adventure doFireTick false
Usage Example
# Use to avoid mobs from destroying blocks (creepers, endermen...) and picking items up (zombies, skeletons...) in world "Adventure".
- gamerule Adventure mobGriefing false
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/GameRuleCommand.java#L24
NameLight
Syntaxlight [<location>] [<#>/reset] (duration:<duration>)
Short DescriptionCreates a light source at the location with a specified brightness.
Full DescriptionThis command can create and reset a light source at a specified location, regardless of the type of block.
It will be shown to all players near the location until it is reset.
The brightness must be between 0 and 15, inclusive.
Optionally, specify the amount of time the light should exist before being removed.

Note that lights do not persist across server restarts, but will still be visible in the world after a restart until there is a block change near the location (to reset the light).
Related Tags<LocationTag.light> Returns the total amount of light on the location.
<LocationTag.light.blocks> Returns the amount of light from light blocks that is (...)
Usage Example
# Use to create a bright light at a noted location.
- light MyFancyLightOfWool 15
Usage Example
# Use to reset the brightness of the location to its original state.
- light MyFancyLightOfWool reset
Groupworld
Warning(s)May cause lag spikes, use carefully.
Incompatible with Paper in 1.17+. Use Spigot, or use vanilla Light blocks.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/LightCommand.java#L24
NameMidi
Syntaxmidi [cancel/<file> (tempo:<#.#>) (volume:<#.#>)] (<location>/<entity>|...)
Short DescriptionPlays a midi file at a given location or to a list of players using note block sounds.
Full DescriptionThis will fully load a midi song file stored in the '../plugins/Denizen/midi/' folder.
The file must be a valid midi file with the extension '.mid'.
It will continuously play the song as noteblock songs at the given location or group of players until the song ends.
If no location or entity is specified, by default this will play for the attached player.

Also, an example Midi song file has been included: "Denizen" by Black Coyote. He made it just for us!
Check out more of his amazing work at: http://www.youtube.com/user/BlaCoyProductions

The midi command is ~waitable. Refer to Language:~waitable.
Related TagsNone
Usage Example
# Use to play a midi song file on the current player.
- midi file:Denizen
Usage Example
# Use to play a midi song file at a given location.
- midi file:Denizen <player.location>
Usage Example
# Use to play a midi song file at a given location to the specified player(s), and wait for it to finish.
- ~midi file:Denizen <server.online_players>
Synonyms (Search Aid)music
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/MidiCommand.java#L30
NameModifyBlock
Syntaxmodifyblock [<location>|.../<ellipsoid>/<cuboid>] [<material>|...] (no_physics/naturally:<tool>) (delayed) (<script>) (<percent chance>|...) (source:<player>) (max_delay_ms:<#>)
Short DescriptionModifies blocks.
Full DescriptionChanges blocks in the world based on the criteria given.

Use 'no_physics' to place the blocks without physics taking over the modified blocks.
This is useful for block types such as portals or water. This does NOT control physics for an extended period of time.

Specify (<percent chance>|...) to give a chance of each material being placed (in any material at all).

Use 'naturally:' when setting a block to air to break it naturally, meaning that it will drop items. Specify the tool item that should be used for calculating drops.

Use 'delayed' to make the modifyblock slowly edit blocks at a time pace roughly equivalent to the server's limits.
Optionally, specify 'max_delay_ms' to control how many milliseconds the 'delayed' set can run for in any given tick (defaults to 50).

Note that specifying a list of locations will take more time in parsing than in the actual block modification.

Optionally, specify a script to be ran after the delayed edits finish. (Doesn't fire if delayed is not set.)

Optionally, specify a source player. When set, Bukkit events will fire that identify that player as the source of a change, and potentially cancel the change.
The source argument might cause weird interoperation with other plugins, use with caution.

The modifyblock command is ~waitable. Refer to Language:~waitable.
Related Tags<LocationTag.material> Returns the material of the block at the location.
Usage Example
# Use to change the block a player is looking at to stone.
- modifyblock <player.cursor_on> stone
Usage Example
# Use to modify an entire cuboid to half stone, half dirt.
- modifyblock <player.location.to_cuboid[<player.cursor_on>]> stone|dirt
Usage Example
# Use to modify an entire cuboid to some stone, some dirt, and some left as it is.
- modifyblock <player.location.to_cuboid[<player.cursor_on>]> stone|dirt 25|25
Usage Example
# Use to modify the ground beneath the player's feet.
- modifyblock <player.location.add[2,-1,2].to_cuboid[<player.location.add[-2,-1,-2]>]> RED_WOOL
Synonyms (Search Aid)setblock, changeblock, placeblock, breakblock
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/ModifyBlockCommand.java#L62
NamePlayEffect
Syntaxplayeffect [effect:<name>] [at:<location>|...] (data:<#.#>) (special_data:<map>) (visibility:<#.#>) (quantity:<#>) (offset:<#.#>,<#.#>,<#.#>) (targets:<player>|...) (velocity:<vector>)
Short DescriptionPlays a visible or audible effect at the location.
Full DescriptionAllows the playing of particle effects anywhere without the need of the source it comes from originally.
The particles you may use, can come from sources such as a potion effect or a portal/Enderman with their particles respectively.
Some particles have different data which may include different behavior depending on the data. Default data is 0
Specifying a visibility value changes the sight radius of the effect. For example if visibility is 15; Targeted players won't see it unless they are 15 blocks or closer.
You can add a quantity value that allow multiple of the same effect played at the same time. If an offset is set, each particle will be played at a different location in the offset area.
Everyone will see the particle effects unless a target has been specified.
See Language:Particle Effects for a list of valid effect names.

Version change note: The original PlayEffect command raised all location inputs 1 block-height upward to avoid effects playing underground when played at eg a player's location.
This was found to cause too much confusion, so it is no longer on by default. However, it will still happen for older commands.
The distinction is in whether you include the (now expected to use) "at:" prefix on your location argument.
If you do not have this prefix, the system will assume your command is older, and will apply the 1-block height offset.

Some particles will require input to the "special_data" argument. The data input is a MapTag with different keys per particle.
- For DUST particles, the input is of format [size=<size>;color=<color>], e.g. "[size=1.2;color=red]".
- For DUST_COLOR_TRANSITION particles, the input is of format [size=<size>;from=<color>;to=<color>], e.g "[size=1.2;from=red;to=blue]".
- For BLOCK, BLOCK_CRUMBLE, BLOCK_MARKER, DUST_PILLAR, or FALLING_DUST particles, the input is of format [material=<material>], e.g. [material=stone]
- For VIBRATION particles, the input is of format [origin=<location>;destination=<location/entity>;duration=<duration>], for example: [origin=<player.location>;destination=<player.cursor_on>;duration=5s]
- For ITEM particles, the input is of format [item=<item>], e.g. "[item=stick]".
- For TRAIL particles, the input is of format [color=<color>;target=<location>;duration=<duration>], e.g. "[color=red;target=<player.cursor_on>;duration=20s]".
- For ENTITY_EFFECT particles, the input is of format [color=<color>], e.g. "[color=green]".
- For SHRIEK particles, the input is of format [duration=<duration>], e.g. "[duration=1m]".
- For SCULK_CHARGE particles, the input is of format [radians=<element>], e.g. "[radians=<element[90].to_radians>]".

Optionally specify a velocity vector for standard particles to move. Note that this ignores the 'data' input if used.
Related Tags<server.effect_types> Returns a list of all 'effect' types known to the server. (...)
<server.particle_types> Returns a list of all particle effect types known to the server. (...)
Usage Example
# Use to create a fake explosion.
- playeffect effect:EXPLOSION_HUGE at:<player.location> visibility:500 quantity:10 offset:2.0
Usage Example
# Use to play a cloud effect.
- playeffect effect:CLOUD at:<player.location.add[0,5,0]> quantity:20 data:1 offset:0.0
Usage Example
# Use to play some effects at spawn.
- playeffect effect:FIREWORKS_SPARK at:<world[world].spawn_location> visibility:100 quantity:375 data:0 offset:50.0
Usage Example
# Use to spawn a cloud of rainbow-colored ENTITY_EFFECT particles around yourself.
- foreach <util.color_names> as:color:
    - playeffect effect:ENTITY_EFFECT at:<player.eye_location> quantity:25 special_data:[color=<[color]>]
Usage Example
# Use to shoot particles in to the direction you're looking at.
- repeat 10:
    - playeffect effect:TRAIL at:<player.eye_location> quantity:1 offset:0 special_data:[color=red;target=<player.eye_location.ray_trace[default=air]>;duration=5s]
    - wait 1t
Usage Example
# Use to spawn a SCULK_CHARGE effect upside down.
- playeffect effect:SCULK_CHARGE at:<player.eye_location.add[0,1,0]> quantity:1 offset:0 special_data:[radians=<element[180].to_radians>]
Usage Example
# Use to play a SHRIEK effect with a 5-second delay.
- playeffect effect:SHRIEK at:<player.eye_location.add[0,1,0]> quantity:1 special_data:[duration=5s]
Synonyms (Search Aid)particle
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/PlayEffectCommand.java#L55
NamePlaySound
Syntaxplaysound (<location>|...) (<player>|...) [sound:<name>] (volume:<#.#>) (pitch:<#.#>) (custom) (sound_category:<category_name>)
Short DescriptionPlays a sound at the location or to a list of players.
Full DescriptionPlays a sound to a player or nearby players at a location.
The sound is played through the player's client just like any other sounds in Minecraft.

For a list of all sounds, check 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html

Sounds are by default played under their normal sound type (eg zombie sounds are under the type Mobs/Animals).
You can optionally instead specify an alternate sound category to use.
For a list of all valid sound categories, check 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/SoundCategory.html

Specifying a player or list of players will only play the sound for each player, from their own location (but will not follow them if they move).
If a location is specified, it will play the sound for any players that are near the location specified.
If both players and locations are specified, will play the sound for only those players at those locations.

Optionally, specify 'custom' to play a custom sound added by a resource pack, changing the sound name to something like 'random.click'

Optionally specify a pitch value (defaults to 1.0). A pitch from 0.0 to 1.0 will be deeper (sounds like a demon), and above 1.0 will be higher pitched (sounds like a fairy).

Optionally specify a volume value (defaults to 1.0). A volume from 0.0 to 1.0 will be quieter than normal.
A volume above 1.0 however will not be louder - instead it will be audible from farther (approximately 1 extra chunk of distance per value, eg 2.0 is 2 more chunks, 5.0 is 5 more chunks, etc.).
Related Tags<server.sound_types> Deprecated in favor of Tag:server.sound_keys on MC 1.21+.
Usage Example
# Use to play a sound for a player
- playsound <player> sound:ENTITY_EXPERIENCE_ORB_PICKUP pitch:1
Usage Example
# Use to play a sound at a location for all nearby
- playsound <player.location> sound:ENTITY_PLAYER_LEVELUP
Usage Example
# Use to notify all players with a sound
- playsound <server.online_players> sound:ENTITY_PLAYER_LEVELUP volume:0.5 pitch:0.8
Synonyms (Search Aid)noise
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/PlaySoundCommand.java#L32
NameSchematic
Syntaxschematic [create/load/unload/rotate/save/flip_x/flip_y/flip_z/paste (fake_to:<player>|... fake_duration:<duration>) (noair) (mask:<material_matcher>)] [name:<name>] (filename:<name>) (angle:<#>) (<location>) (area:<area>) (delayed) (max_delay_ms:<#>) (entities) (flags)
Short DescriptionCreates, loads, pastes, and saves schematics (Sets of blocks).
Full DescriptionCreates, loads, pastes, and saves schematics. Schematics are files containing info about blocks and the order of those blocks.

Denizen offers a number of tools to manipulate and work with schematics.
Schematics can be rotated, flipped, pasted with no air, or pasted with a delay.

All schematic command usages must specify the "name" argument, which is a unique global identifier of the schematic in memory.
This will be created by "create" or "load" options, and persist in memory until "unload" is used (or the server is restarted).

The 'create' option requires an area and a center location as input.
The area can be defined as any valid ObjectType:AreaObject, such as a CuboidTag.
Note that all schematics are internally tracked as cuboids, and other area shapes will only constrain the copy region.
Note that the block boundaries of non-cuboid regions are defined by whether the region definition contains the center of a block.
This will create a new schematic in memory based on world data.

The "rotate angle:#" and "flip_x/y/z" options will apply the change to the copy of the schematic in memory, to later be pasted or saved.
This will rotate the set of blocks itself, the relative origin, and any directional blocks inside the schematic.
Rotation angles must be a multiple of 90 degrees.

When using 'paste', you can specify 'angle:#' to have that paste rotated, without rotating the original schematic.

The "delayed" option makes the command non-instant. This is recommended for large schematics.
For 'save', 'load', and 'rotate', this processes async to prevent server lockup.
For 'paste' and 'create', this delays how many blocks can be processed at once, spread over many ticks.
Optionally, specify 'max_delay_ms' to control how many milliseconds the 'delayed' set can run for in any given tick (defaults to 50) (for create/paste only).

The "load" option by default will load '.schem' files. If no '.schem' file is available, will attempt to load a legacy '.schematic' file instead.

For load and save, the "filename" option is available to specify the name of the file to look for.
If unspecified, the filename will default to the same as the "name" input.

The "noair" option skips air blocks in the pasted schematics- this means those air blocks will not replace any blocks in the target location.

The "mask" option can be specified to limit what block types the schematic will be pasted over.
When using "create" and "mask", any block that doesn't match the mask will become a structure void.

The "fake_to" option can be specified to cause the schematic paste to be a fake (packet-based, see Command:showfake)
block set, instead of actually modifying the blocks in the world.
This takes an optional duration as "fake_duration" for how long the fake blocks should remain.

The "create" and "paste" options allow the "entities" argument to be specified - when used, entities will be copied or pasted.
At current time, entity types included will be: Paintings, ItemFrames, ArmorStands.

The "create" option allows the "flags" argument to be specified - when used, block location flags will be copied.

The schematic command is ~waitable as an alternative to 'delayed' argument. Refer to Language:~waitable.

To delete a schematic file, use Mechanism:server.delete_file.
Related Tags<schematic[<name>].height> Returns the height (Y) of the schematic.
<schematic[<name>].length> Returns the length (Z) of the schematic.
<schematic[<name>].width> Returns the width (X) of the schematic.
<schematic[<name>].block[<location>]> Returns the material for the block at the location in the schematic. (...)
<schematic[<name>].origin> Returns the origin location of the schematic.
<schematic[<name>].blocks> Returns the number of blocks in the schematic.
<schematic[<name>].exists> Returns whether the schematic exists.
<schematic[<name>].cuboid[<origin_location>]> Returns a cuboid of where the schematic would be if it was pasted at an origin.
<schematic.list> Returns a list of all loaded schematics.
Usage Example
# Use to create a new schematic from a cuboid and an origin location.
- schematic create name:MySchematic area:<[my_cuboid]> <player.location>
Usage Example
# Use to load a schematic.
- ~schematic load name:MySchematic
Usage Example
# Use to unload a schematic.
- schematic unload name:MySchematic
Usage Example
# Use to paste a loaded schematic with no air blocks.
- schematic paste name:MySchematic <player.location> noair
Usage Example
# Use to save a created schematic.
- ~schematic save name:MySchematic
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SchematicCommand.java#L58
NameSign
Syntaxsign (type:{automatic}/sign_post/wall_sign) (material:<material>) [<line>|...] [<location>] (direction:north/east/south/west)
Short DescriptionModifies a sign.
Full DescriptionModifies a sign that replaces the text shown on it. If no sign is at the location, it replaces the location with the modified sign.

Specify 'automatic' as a type to use whatever sign type and direction is already placed there.
If there is not already a sign there, defaults to a sign_post.

Optionally specify a material to use. If not specified, will use an oak sign (unless the block is already a sign, and 'type' is 'automatic').

The direction argument specifies which direction the sign should face.
If a direction is not specified, and there is not already a sign there for 'automatic', the direction defaults to south.
If a sign_post is placed, you can specify any specific blockface value as the direction, eg "SOUTH_WEST".
See also Tag:MaterialTag.valid_directions (test in-game for example via "/ex narrate <material[oak_sign].valid_directions>").
Related Tags<LocationTag.sign_contents> Returns a list of lines on a sign.
Usage Example
# Use to edit some text on an existing sign.
- sign "Hello|this is|some|text" <context.location>
Usage Example
# Use to show the time on a sign and ensure that it points north.
- sign "I point|North.|System Time<&co>|<util.time_now.formatted>" <[location]> direction:north
Usage Example
# Use to place a new wall_sign regardless of whether there is already a sign there.
- sign type:wall_sign "Player<&co>|<player.name>|Online Players<&co>|<server.online_players.size>" <player.location>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SignCommand.java#L29
NameStrike
Syntaxstrike [<location>] (no_damage) (silent)
Short DescriptionStrikes lightning down upon the location.
Full DescriptionCauses lightning to strike at the specified location, which can optionally have damage disabled.

The lightning will still cause fires to start, even without the 'no_damage' argument.

Lightning caused by this command will cause creepers to activate. Using the no_damage argument makes the
lightning do no damage to the player or any other entities, and means creepers struck will not activate.

Use 'silent' to remove the sound of the lightning strike.
NOTE: The 'silent' option appears to have been removed in a Minecraft update and thus lightning will be audible until/unless Mojang re-adds it.
Related TagsNone
Usage Example
# Use to cause lightning to strike the player.
- strike <player.location>
Usage Example
# Use to strike the player with lightning causing no damage.
- strike no_damage <player.location>
Synonyms (Search Aid)lightning, electrocute
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/StrikeCommand.java#L20
NameSwitch
Syntaxswitch [<location>|...] (state:{toggle}/on/off) (duration:<value>) (no_physics)
Short DescriptionSwitches state of the block.
Full DescriptionChanges the state of a block at the given location, or list of blocks at the given locations.

Optionally specify "state:on" to turn a block on (or open it, or whatever as applicable) or "state:off" to turn it off (or close it, etc).
By default, will toggle the state (on to off, or off to on).

Optionally specify the "duration" argument to set a length of time after which the block will return to the original state.

Works on any interactable blocks, including:
- the standard toggling levers, doors, gates...
- Single-use interactables like buttons, note blocks, dispensers, droppers, ...
- Redstone interactables like repeaters, ...
- Special interactables like tripwires, ...
- Bells as a special case will ring when you use 'switch' on them, ...
- Almost any other block with an interaction handler.

This will generally (but not always) function equivalently to a user right-clicking the block
(so it will open and close doors, flip levers on and off, press and depress buttons, ...).

Optionally specify 'no_physics' to not apply a physics update after switching.
Related Tags<LocationTag.switched> Returns whether the block at the location is considered to be switched on. (...)
<MaterialTag.switched> Returns whether a material is 'switched on', which has different semantic meaning depending on the material type. (...)
Usage Example
# At the player's location, switch the state of the block to on, no matter what state it was in before.
- switch <player.location> state:on
Usage Example
# Opens a door that the player is looking at.
- switch <player.cursor_on> state:on
Usage Example
# Toggle a block at the player's foot location.
- switch <player.location>
Synonyms (Search Aid)toggle, lever, activate, power, redstone
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SwitchCommand.java#L37
Nametick
Syntaxtick [rate/step/sprint/freeze/reset] (amount:<#.#>/cancel)
Short DescriptionControls the server's tick rate.
Full DescriptionControls the server's tick rate. MC versions 1.20+ only.

The tick rate affects things such as entity movement (including player movement), entity animations, plant growth, etc.
Be careful when setting the tick rate, as a high tick rate can overload the server.
If tick rate is high, crops will grow faster, animations will speed up, and so forth.
Conversely, if the tick rate is low, crops will grow slower, animations will slow down, and entity movement (including player movement) will slow down and appear to be in slow motion.
For a list of all the things that the tick rate affects, see 🔗https://minecraft.wiki/w/Tick

To change the tick rate, use the 'rate' argument and input the amount using 'amount'. The tick rate must be a number between 1.0 and 10000.0 (inclusive).
To reset the tick rate to the normal value (20.0), use the 'reset' argument.

To freeze the tick rate, use the 'freeze' argument. To unfreeze, add the 'cancel' argument.
Freezing the tick rate will cause all entities (except for players and entities that a player is riding) to stop ticking.
This means that entity movement and animations will stop, as well as stop things like crop growth, daylight cycle, etc.

To step the tick rate while the server is frozen for a specific amount of time, use the 'step' argument and input the amount of ticks using 'amount'.
Tick rate stepping is allowing the tick rate to resume for a specific amount of ticks while the server is frozen.
After the amount of specified ticks have passed, the tick rate will refreeze.
Step input should not be a number less than one.
If the server is not frozen when trying to use the 'step' argument, nothing will happen.

To make the tick rate as fast as possible for a specific amount of time, use the 'sprint' argument and input the amount of ticks using 'amount'.
The tick rate will increase as much as possible without overloading the server for the amount of specified ticks.
Sprint input should be not be a number less than one.
For example, if you want to sprint 200 ticks, the tick rate will run 200 ticks as fast as possible and then return to the previous tick rate.
To stop stepping or sprinting early, use the 'cancel' argument.

The tick rate resets to 20.0 on server restart.
For information about tick rate arguments, see 🔗https://minecraft.wiki/w/Commands/tick
Usage Example
# Use to set the tick rate to 30 ticks per second.
- tick rate amount:30
Usage Example
# Use to stop stepping early if the server is currently stepping.
- tick step cancel
Usage Example
# Use to reset tick rate.
- tick reset
Usage Example
# Use to freeze the server.
- tick freeze
Usage Example
# Use to unfreeze the server.
- tick freeze cancel
Groupworld
Warning(s)Be careful, this command will affect plugins that depend on tick rate and may cause them to break. For example, setting the tick rate to 1 will cause the Event:tick event to fire once per second.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/TickCommand.java#L11
NameTime
Syntaxtime ({global}/player) [<time-duration>/reset] (<world>) (reset:<duration>) (freeze)
Short DescriptionChanges the current time in the minecraft world.
Full DescriptionChanges the current time in a world or the time that a player sees the world in.
If no world is specified, defaults to the NPCs world. If no NPC is available,
defaults to the player's world. If no player is available, an error will be thrown.

If 'player' is specified, this will change their personal time.
This is separate from the global time, and does not affect other players.
When that player logs off, their time will be reset to the global time.
Additionally, you may instead specify 'reset' to return the player's time back to global time.
If you specify a custom time, optionally specify 'reset:<duration>'
to set a time after which the player's time will reset (if not manually changed again before then).
Optionally specify 'freeze' to lock a player's time in at the specified time value.
Related Tags<WorldTag.time> Returns the relative in-game time of this world.
<WorldTag.time.period> Returns the time as 'day', 'night', 'dawn', or 'dusk'.
Usage Example
# Use to set the time in the NPC or Player's world.
- time 500t
Usage Example
# Use to make the player see a different time than everyone else.
- time player 500t
Usage Example
# Use to make the player see a different time than everyone else, with the sun no longer moving.
- time player 500t freeze
Usage Example
# Use to make the player see a different time than everyone else for the next 5 minutes.
- time player 500t reset:5m
Usage Example
# Use to make the player see the global time again.
- time player reset
Usage Example
# Use to set the time in a specific world.
- time 500t myworld
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/TimeCommand.java#L28
NameWeather
Syntaxweather ({global}/player) [sunny/storm/thunder/reset] (<world>) (reset:<duration>)
Short DescriptionChanges the current weather in the minecraft world.
Full DescriptionBy default, changes the weather in the specified world.

If you specify 'player', this will change the weather in that player's view.
This is separate from the global weather, and does not affect other players.
When that player logs off, their weather will be reset to the global weather.
Additionally, you may instead specify 'reset' to return the player's weather back to global weather.
If you specify a custom weather, optionally specify 'reset:<duration>'
to set a time after which the player's weather will reset (if not manually changed again before then).
Note that 'thunder' is no different from 'storm' when used on a single player.
Related Tags<BiomeTag.downfall_type> Deprecated in favor of Tag:BiomeTag.downfall_at on 1.19+, as downfall is block-specific now. (...)
<PlayerTag.weather> Returns the type of weather the player is experiencing. This will be different (...)
<WorldTag.has_storm> Returns whether there is currently a storm in this world. (...)
<WorldTag.weather_duration> Returns the duration of storms.
<WorldTag.thundering> Returns whether it is currently thundering in this world.
<WorldTag.thunder_duration> Returns the duration of thunder.
Usage Example
# Use to make the weather sunny.
- weather sunny
Usage Example
# Use to start a storm in world "cookies".
- weather storm cookies
Usage Example
# Use to start a storm that's only visible to the attached player.
- weather player storm
Usage Example
# Use to make the player see a storm for 2 minutes.
- weather player storm reset:2m
Usage Example
# Use to let the player see the global weather again.
- weather player reset
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/WeatherCommand.java#L28

Event


Namestructure/plant grows naturally
Event Lines <structure/plant> grows (naturally)
<structure/plant> grows from bonemeal
Triggerswhen a structure (a tree or a mushroom) grows in a world.
Generated Examplesafter structure/plant grows naturally:
after structure/plant grows from bonemeal:
after structure/plant grows:
Has Playerwhen a player caused the structure growth to occur (eg with bonemeal). - this adds switches 'flagged:<flag name>' + 'permission:<node>', in addition to the '<player>' link.
Contexts<context.world> returns the WorldTag the structure grew in.
<context.location> returns the LocationTag the structure grew at.
<context.structure> returns an ElementTag of the structure's type. Refer to 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/TreeType.html.
<context.blocks> returns a ListTag of all block locations to be modified.
<context.new_materials> returns a ListTag of the new block materials, to go with <context.blocks>.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/StructureGrowsScriptEvent.java#L20
Namechunk loads for the first time
Event Lines chunk loads (for the first time)
Triggerswhen a new chunk is loaded
Generated Examplesafter chunk loads for the first time:
Contexts<context.chunk> returns the loading chunk.
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Warning(s)This event will fire *extremely* rapidly and often when using 'for the first time'.
When not using that, it will fire so rapidly that lag is almost guaranteed. Use with maximum caution.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/ChunkLoadScriptEvent.java#L12
Namechunk loads entities
Event Lines chunk loads entities
Triggerswhen a chunk loads in its entities.
Generated Exampleson chunk loads entities:
after chunk loads entities:
Switchesentity_type:<type-matcher> to only fire in the chunk contains an entity that matches the given entity matcher.
include_empty:<true/false> defaults to false, set to 'true' to include chunks loading an empty set of entities.
Contexts<context.chunk> returns the loading chunk.
<context.entities> returns a ListTag of all entities to be loaded.
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Warning(s)This event will fire very rapidly.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/ChunkLoadEntitiesScriptEvent.java#L15
Namechunk unloads
Event Lines chunk unloads
Triggerswhen a chunk is unloaded
Generated Exampleson chunk unloads:
after chunk unloads:
Contexts<context.chunk> returns the unloading chunk.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Warning(s)This event will fire *extremely* rapidly and often!
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/ChunkUnloadScriptEvent.java#L12
Namechunk unloads entities
Event Lines chunk unloads entities
Triggerswhen a chunk unloads in its entities. Note that this is basically a notification - it's already too late to change entity data.
Generated Exampleson chunk unloads entities:
after chunk unloads entities:
Switchesentity_type:<type-matcher> to only fire in the chunk contains an entity that matches the given entity matcher.
include_empty:<true/false> defaults to false, set to 'true' to include chunks loading an empty set of entities.
Contexts<context.chunk> returns the unloading chunk.
<context.entities> returns a ListTag of all entities being unloaded.
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Warning(s)This event will fire very rapidly.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/ChunkUnloadEntitiesScriptEvent.java#L15
Namegeneric game event
Event Lines generic game event
Triggerswhen the minecraft world experiences a generic minecraft game event. This is normally used for sculk sensors.
Generated Exampleson generic game event:
Switchestype:<game_event_name> to only process the event when a specific game event is fired.
Contexts<context.location> returns the location of the event.
<context.entity> returns the entity that triggered the event, if any.
<context.game_event> returns the name of the Minecraft game event, for example "minecraft:block_change". See 🔗https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/GameEvent.html.
<context.radius> returns the radius, in blocks, that the event is broadcast to.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/GenericGameEventScriptEvent.java#L16
Namelightning strikes
Event Lines lightning strikes
Triggerswhen lightning strikes in a world.
Generated Examplesafter lightning strikes:
Contexts<context.lightning> returns the EntityTag of the lightning.
<context.location> returns the LocationTag where the lightning struck.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/LightningStrikesScriptEvent.java#L13
Namelingering potion splash|splashes
Event Lines lingering potion splash|splashes
lingering <item> splash|splashes
Triggerswhen a lingering splash potion breaks open
Generated Exampleson lingering potion splashes:
on lingering waxed_copper_trapdoor splash:
after lingering potion splashes:
on lingering item splash:
Contexts<context.potion> returns an ItemTag of the potion that broke open.
<context.location> returns the LocationTag the splash potion broke open at.
<context.entity> returns an EntityTag of the splash potion.
<context.cloud> returns the EntityTag of the area of effect cloud.
<context.radius> returns the radius of the effect cloud.
<context.duration> returns the lingering duration of the effect cloud.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/LingeringPotionSplashScriptEvent.java#L16
Nameloot generates
Event Lines loot generates
Triggerswhen loot is generated somewhere in the world (like a vanilla chest being opened for the first time).
Generated Exampleson loot generates:
after loot generates:
Has Playerwhen the linked entity is a player. - this adds switches 'flagged:<flag name>' + 'permission:<node>', in addition to the '<player>' link.
Switchesfor:<type> to only process the event if a certain inventory type is receiving loot (like 'for:chest').
Contexts<context.entity> returns an entity that caused loot generation, if any.
<context.inventory> returns the InventoryTag that loot is generating into.
<context.items> returns a ListTag of the items being generated.
<context.loot_table_id> returns an element indicating the minecraft key for the loot-table that was generated.
Determine"LOOT:<ListTag(ItemTag)>" to change the list of items that will generate as loot.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/LootGenerateScriptEvent.java#L22
Nameportal created because reason
Event Lines portal created (because <reason>)
Triggerswhen a portal is created.
Generated Examplesafter portal created:
Contexts<context.entity> returns the EntityTag that created the portal.
<context.world> returns the WorldTag the portal was created in.
<context.reason> returns an ElementTag of the reason the portal was created. (FIRE, NETHER_PAIR, END_PLATFORM)
<context.blocks> returns a ListTag of all the blocks that will become portal blocks.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/PortalCreateScriptEvent.java#L17
Namepotion splash|splashes
Event Lines potion splash|splashes
<item> splash|splashes
Triggerswhen a splash potion breaks open.
Example
# This example sets the intensity of the first affected entity to 0.6.
on potion splashes:
- if <context.entities.any>:
     - determine INTENSITY:[entity=<context.entities.first>;intensity=0.6]
Contexts<context.potion> returns an ItemTag of the potion that broke open.
<context.entities> returns a ListTag of affected entities.
<context.location> returns the LocationTag the splash potion broke open at.
<context.entity> returns an EntityTag of the splash potion.
<context.intensity> returns an ListTag(MapTag) of the intensity for all affected entities.
DetermineINTENSITY:<ListTag(MapTag)>" to set the intensity of specified entities.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/PotionSplashScriptEvent.java#L25
Nameraid finishes
Event Lines raid finishes
Triggerswhen a village raid finishes normally.
Generated Examplesafter raid finishes:
on raid finishes:
Contexts<context.raid> returns the raid data. See Language:Raid Event Data.
<context.winners> returns the ListTag of players who completed the raid. This is separate from the raid's heroes in that the winners are guaranteed to be online.
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/RaidFinishesScriptEvent.java#L13
Nameraid spawns wave
Event Lines raid spawns wave
Triggerswhen a village raid spawns a new wave of raiders.
Generated Examplesafter raid spawns wave:
Contexts<context.raid> returns the raid data. See Language:Raid Event Data.
<context.leader> returns the EntityTag of the patrol leader of the wave.
<context.new_raiders> returns the ListTag of all new raiders.
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/RaidSpawnsWaveScriptEvent.java#L13
Nameraid stops
Event Lines raid stops
Triggerswhen a village raid stops for any reason.
Generated Exampleson raid stops:
after raid stops:
Switchesreason:<reason> to only process the event if the raid stopped for a certain reason.
Contexts<context.raid> returns the raid data. See Language:Raid Event Data.
<context.reason> returns the reason for stopping. See 🔗https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/raid/RaidStopEvent.Reason.html.
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/RaidStopsScriptEvent.java#L11
Namespawn changes
Event Lines spawn changes
Triggerswhen the world's spawn point changes.
Generated Examplesafter spawn changes:
on spawn changes:
Switchesfor:<world> to only process the event when a specified world's spawn changes.
Contexts<context.world> returns the WorldTag that the spawn point changed in.
<context.old_location> returns the LocationTag of the old spawn point.
<context.new_location> returns the LocationTag of the new spawn point.
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/SpawnChangeScriptEvent.java#L13
Namethunder changes|begins|clears
Event Lines thunder changes|begins|clears
Triggerswhen thunder starts or stops in a world.
Generated Examplesafter thunder begins:
after thunder changes:
Switchesin:<world> to only run the event if it applies to a specific world.
Contexts<context.world> returns the WorldTag the thunder changed in.
<context.thunder> returns true if thunder is starting, or false if thunder is stopping.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
GroupWorld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/ThunderChangesScriptEvent.java#L13

Tag


Name<LocationTag.age>
ReturnsDurationTag
MechanismLocationTag.age
DescriptionReturns the age of an end gateway.
Generated Example
- ratelimit <player> <player.location.age>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4041
Name<LocationTag.attached_to>
ReturnsLocationTag
DescriptionReturns the block this block is attached to.
(For buttons, levers, signs, torches, etc).
Generated Example
- teleport <player> <player.location.attached_to>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3920
Name<LocationTag.beacon_primary_effect>
ReturnsElementTag
MechanismLocationTag.beacon_primary_effect
DescriptionReturns the primary effect of the beacon. The return is simply a potion effect type name.
Generated Example
- narrate <player.location.beacon_primary_effect>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3888
Name<LocationTag.beacon_secondary_effect>
ReturnsElementTag
MechanismLocationTag.beacon_secondary_effect
DescriptionReturns the secondary effect of the beacon. The return is simply a potion effect type name.
Generated Example
- narrate <player.location.beacon_secondary_effect>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3904
Name<LocationTag.beacon_tier>
ReturnsElementTag(Number)
DescriptionReturns the tier level of a beacon pyramid (0-4).
Generated Example
- narrate "the number value is <player.location.beacon_tier>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3877
Name<LocationTag.biome>
ReturnsBiomeTag
MechanismLocationTag.biome
DescriptionReturns the biome at the location.
Generated Example
- adjust <player.location.to_ellipsoid[60,3,10].blocks> biome:<player.location.biome>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3500
Name<LocationTag.block_facing>
ReturnsLocationTag
MechanismLocationTag.block_facing
DescriptionReturns the relative location vector of where this block is facing.
Only works for block types that have directionality (such as signs, chests, stairs, etc.).
This can return for example "1,0,0" to mean the block is facing towards the positive X axis.
You can use <some_block_location.add[<some_block_location.block_facing>]> to get the block directly in front of this block (based on its facing direction).
Generated Example
- teleport <player> <player.location.block_facing>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L845
Name<LocationTag.brewing_fuel_level>
ReturnsElementTag(Number)
MechanismLocationTag.brewing_fuel_level
DescriptionReturns the level of fuel a brewing stand has. Each unit of fuel can power one brewing operation.
Generated Example
- narrate "the number value is <player.location.brewing_fuel_level>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3817
Name<LocationTag.brewing_time>
ReturnsDurationTag
MechanismLocationTag.brewing_time
DescriptionReturns the brewing time a brewing stand has left.
Generated Example
- ratelimit <player> <player.location.brewing_time>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3805
Name<LocationTag.campfire_items>
ReturnsListTag(ItemTag)
MechanismLocationTag.campfire_items
DescriptionReturns a list of items currently in this campfire.
This list has air items in empty slots, and is always sized exactly the same as the number of spaces a campfire has.
(A standard campfire has exactly 4 slots).
Generated Example
- foreach <player.location.campfire_items> as:entry:
    - narrate "found <[entry]>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4113
Name<LocationTag.command_block_name>
ReturnsElementTag
MechanismLocationTag.command_block_name
DescriptionReturns the name a command block is set to.
Generated Example
- narrate <player.location.command_block_name>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3775
Name<LocationTag.command_block>
ReturnsElementTag
MechanismLocationTag.command_block
DescriptionReturns the command a command block is set to.
Generated Example
- narrate <player.location.command_block>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3790
Name<LocationTag.custom_name>
ReturnsElementTag
MechanismLocationTag.custom_name
DescriptionReturns the custom name of this block.
Only works for nameable blocks, such as chests and dispensers.
Generated Example
- narrate <player.location.custom_name>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3976
Name<LocationTag.drops[(<item>)]>
ReturnsListTag(ItemTag)
DescriptionReturns what items the block at the location would drop if broken naturally.
Optionally specifier a breaker item.
Not guaranteed to contain exactly correct or contain all possible drops (for things like plants that drop only when grown, ores that drop random amounts, etc).
Generated Example
- foreach <player.location.drops> as:entry:
    - narrate "found <[entry]>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1443
Name<LocationTag.exit_location>
ReturnsLocationTag
MechanismLocationTag.exit_location
DescriptionReturns the exit location of an end gateway block.
Generated Example
- teleport <player> <player.location.exit_location>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4077
Name<LocationTag.facing_blocks[(<#>)]>
ReturnsListTag(LocationTag)
DescriptionFinds all block locations in the direction this location is facing,
optionally with a custom range (default is 100).
For example a location at 0,0,0 facing straight up
will include 0,1,0 0,2,0 and so on.
This is an imperfect block line tracer.
Generated Example
- foreach <player.location.facing_blocks> as:entry:
    - narrate "found <[entry]>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L2102
Name<LocationTag.flood_fill[<limit>].types[<matcher>]>
ReturnsListTag(LocationTag)
DescriptionReturns the set of all blocks, starting at the given location,
that can be directly reached in a way that only travels through blocks that match the given LocationTag matcher.
This will not travel diagonally, only the 6 cardinal directions (N/E/S/W/Up/Down).
As this is potentially infinite for some block types (like air, stone, etc.) should there be any opening however small, a limit must be given.
The limit value can be: a CuboidTag, an EllipsoidTag, or an ElementTag(Decimal) to use as a radius.
Note that the returned list will not be in any particular order.
The result will be an empty list if the block at the start location is not one of the input materials.
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L2555
Name<LocationTag.flood_fill[<limit>]>
ReturnsListTag(LocationTag)
DescriptionReturns the set of all blocks, starting at the given location,
that can be directly reached in a way that only travels through blocks of the same type as the starting block.
For example, if starting at an air block inside an enclosed building, this will return all air blocks inside the building (but none outside, and no non-air blocks).
As another example, if starting on a block of iron_ore in the ground, this will find all other blocks of iron ore that are part of the same vein.
This will not travel diagonally, only the 6 cardinal directions (N/E/S/W/Up/Down).
As this is potentially infinite should there be any opening however small, a limit must be given.
The limit value can be: a CuboidTag, an EllipsoidTag, or an ElementTag(Decimal) to use as a radius.
Note that the returned list will not be in any particular order.
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L2514
Name<LocationTag.furnace_burn_duration>
ReturnsDurationTag
MechanismLocationTag.furnace_burn_duration
DescriptionReturns the burn time a furnace has left.
Generated Example
- ratelimit <player> <player.location.furnace_burn_duration>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3829
Name<LocationTag.furnace_cook_duration_total>
ReturnsDurationTag
MechanismLocationTag.furnace_cook_duration_total
DescriptionReturns the total cook time a furnace has left.
Generated Example
- flag server myflag expire:<player.location.furnace_cook_duration_total>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3861
Name<LocationTag.furnace_cook_duration>
ReturnsDurationTag
MechanismLocationTag.furnace_cook_duration
DescriptionReturns the cook time a furnace has been cooking its current item for.
Generated Example
- ratelimit <player> <player.location.furnace_cook_duration>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3845
Name<LocationTag.has_inventory>
ReturnsElementTag(Boolean)
DescriptionReturns whether the block at the location has an inventory.
Generated Example
- if <player.location.has_inventory>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1145
Name<LocationTag.has_loot_table>
ReturnsElementTag(Boolean)
MechanismLocationTag.clear_loot_table
DescriptionReturns an element indicating whether the chest at this location has a loot-table set.
Generated Example
- if <player.location.has_loot_table>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3722
Name<LocationTag.head_rotation>
ReturnsElementTag(Number)
MechanismLocationTag.head_rotation
DescriptionGets the rotation of the head at this location. Can be 1-16.
Generated Example
- narrate "the number value is <player.location.head_rotation>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1220
Name<LocationTag.highest>
ReturnsLocationTag
DescriptionReturns the location of the highest solid block at the location.
Generated Example
- teleport <player> <player.location.highest>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1133
Name<LocationTag.hive_bee_count>
ReturnsElementTag(Number)
DescriptionReturns the number of bees inside a hive.
Generated Example
- narrate "the number value is <player.location.hive_bee_count>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1482
Name<LocationTag.hive_max_bees>
ReturnsElementTag(Number)
MechanismLocationTag.hive_max_bees
DescriptionReturns the maximum number of bees allowed inside a hive.
Generated Example
- narrate "the number value is <player.location.hive_max_bees>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1493
Name<LocationTag.inventory>
ReturnsInventoryTag
DescriptionReturns the InventoryTag of the block at the location. If the
block is not a container, returns null.
Generated Example
- inventory set o:<player.location.inventory> d:stick slot:5
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1156
Name<LocationTag.is_exact_teleport>
ReturnsElementTag(Boolean)
MechanismLocationTag.is_exact_teleport
DescriptionReturns whether an end gateway is 'exact teleport' - if false, the destination will be randomly chosen *near* the destination.
Generated Example
- if <player.location.is_exact_teleport>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4059
Name<LocationTag.is_liquid>
ReturnsElementTag(Boolean)
DescriptionReturns whether the block at the location is a liquid.
Generated Example
- if <player.location.is_liquid>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3600
Name<LocationTag.is_lockable>
ReturnsElementTag(Boolean)
MechanismLocationTag.lock
DescriptionReturns whether the container is lockable.
Generated Example
- if <player.location.is_lockable>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1431
Name<LocationTag.is_locked>
ReturnsElementTag(Boolean)
MechanismLocationTag.lock
DescriptionReturns whether the container is locked.
Generated Example
- if <player.location.is_locked>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1416
Name<LocationTag.is_passable>
ReturnsElementTag(Boolean)
DescriptionReturns whether the block at this location is non-solid and can be walked through.
Note that for example an open door is still solid, and thus will return false.
Generated Example
- if <player.location.is_passable>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1186
Name<LocationTag.is_spawnable>
ReturnsElementTag(Boolean)
DescriptionReturns whether the location is safe to spawn at, for a player or player-like entity.
Specifically this verifies that:
- The block above this location is air.
- The block at this location is non-solid.
- The block below this location is solid.
- All relevant blocks are not dangerous (like fire, lava, etc.), or unstable/small/awkward (like fences, doors, etc.) or otherwise likely to go wrong (like pressure plates).
Generated Example
- if <player.location.is_spawnable>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4136
Name<LocationTag.is_within_border>
ReturnsElementTag(Boolean)
DescriptionReturns whether the location is within the world border.
Generated Example
- if <player.location.is_within_border>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3426
Name<LocationTag.jukebox_is_playing>
ReturnsElementTag(Boolean)
MechanismLocationTag.jukebox_play
DescriptionReturns whether the jukebox is currently playing a song.
Generated Example
- if <player.location.jukebox_is_playing>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4023
Name<LocationTag.jukebox_record>
ReturnsItemTag
MechanismLocationTag.jukebox_record
DescriptionReturns the record item currently inside the jukebox.
If there's no record, will return air.
Generated Example
- give <player.location.jukebox_record>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4004
Name<LocationTag.lectern_page>
ReturnsElementTag(Number)
MechanismLocationTag.lectern_page
DescriptionDeprecated in favor of Tag:LocationTag.page.
Generated Example
- narrate "the number value is <player.location.lectern_page>"
Groupworld
DeprecatedUse 'LocationTag.page'
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3689
Name<LocationTag.light.blocks>
ReturnsElementTag(Number)
DescriptionReturns the amount of light from light blocks that is
on the location.
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3634
Name<LocationTag.light.sky>
ReturnsElementTag(Number)
DescriptionReturns the amount of light from the sky that is
on the location.
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3647
Name<LocationTag.light>
ReturnsElementTag(Number)
DescriptionReturns the total amount of light on the location.
Generated Example
- narrate "the number value is <player.location.light>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3621
Name<LocationTag.local_difficulty>
ReturnsElementTag(Decimal)
DescriptionReturns the local difficulty (damage scaler) at the location.
This is based internally on multiple factors, including Tag:ChunkTag.inhabited_time and Tag:WorldTag.difficulty.
Generated Example
- narrate "the decimal value is <player.location.local_difficulty>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3992
Name<LocationTag.lock>
ReturnsElementTag
MechanismLocationTag.lock
DescriptionReturns the password to a locked container.
Generated Example
- narrate <player.location.lock>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1400
Name<LocationTag.loot_table_id>
ReturnsElementTag
MechanismLocationTag.loot_table_id
DescriptionReturns an element indicating the minecraft key for the loot-table for the chest at this location (if any).
Generated Example
- narrate <player.location.loot_table_id>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3738
Name<LocationTag.map_color>
ReturnsColorTag
DescriptionReturns the color of the block at the location, as seen in a map.
Generated Example
- narrate "<&color[<player.location.map_color>]>hello there!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4187
Name<LocationTag.material>
ReturnsMaterialTag
DescriptionReturns the material of the block at the location.
Generated Example
- modifyblock <player.location.below> <player.location.material>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1171
Name<LocationTag.other_block>
ReturnsLocationTag
DescriptionIf the location is part of a double-block structure (double chests, double plants, doors, beds, etc),
returns the location of the other block in the double-block structure.
Generated Example
- teleport <player> <player.location.other_block>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3955
Name<LocationTag.page>
ReturnsElementTag(Number)
MechanismLocationTag.page
DescriptionReturns the current page on display in the book on this Lectern block.
Generated Example
- narrate "the number value is <player.location.page>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3707
Name<LocationTag.patterns>
ReturnsListTag
MechanismLocationTag.patterns
DescriptionLists the patterns of the banner at this location in the form "COLOR/PATTERN|COLOR/PATTERN" etc.
For the list of possible colors, see 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/DyeColor.html.
For the list of possible patterns, see 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/banner/PatternType.html.
Generated Example
- foreach <player.location.patterns> as:entry:
    - narrate "found <[entry]>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1202
Name<LocationTag.power>
ReturnsElementTag(Number)
DescriptionReturns the current redstone power level of a block.
Generated Example
- narrate "the number value is <player.location.power>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3668
Name<LocationTag.precise_cursor_on_block[(<range>)]>
ReturnsLocationTag
DescriptionDeprecated in favor of Tag:LocationTag.ray_trace with input setting [return=block].
Generated Example
- teleport <player> <player.location.precise_cursor_on_block>
Groupworld
Deprecateduse "ray_trace[return=block]" instead.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1909
Name<LocationTag.precise_cursor_on[(<range>)]>
ReturnsLocationTag
DescriptionDeprecated in favor of Tag:LocationTag.ray_trace with all default settings (no input other than optionally the range).
Generated Example
- teleport <player> <player.location.precise_cursor_on>
Groupworld
Deprecateduse "ray_trace" instead.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1930
Name<LocationTag.precise_impact_normal[(<range>)]>
ReturnsLocationTag
DescriptionDeprecated in favor of Tag:LocationTag.ray_trace with input setting [return=normal].
Generated Example
- teleport <player> <player.location.precise_impact_normal>
Groupworld
Deprecateduse "ray_trace[return=normal]" instead.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1888
Name<LocationTag.precise_target_list[<range>]>
ReturnsListTag(EntityTag)
DescriptionReturns a list of all entities this location is pointing directly at (using precise ray trace logic), up to a given range limit.
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1951
Name<LocationTag.precise_target_position[(<range>)].type[<entity_type>|...]>
ReturnsLocationTag
DescriptionDeprecated in favor of Tag:LocationTag.ray_trace with "entities=" set to your input types as a matcher.
Groupworld
Deprecateduse "ray_trace[entities=(your_types)]" instead.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L2032
Name<LocationTag.precise_target_position[(<range>)]>
ReturnsLocationTag
DescriptionDeprecated in favor of Tag:LocationTag.ray_trace with input of [entities=*]
Generated Example
- teleport <player> <player.location.precise_target_position>
Groupworld
Deprecateduse "ray_trace[entities=*]" instead.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L2017
Name<LocationTag.precise_target[(<range>)].type[<entity_type>|...]>
ReturnsEntityTag
DescriptionReturns the entity this location is pointing at, using precise ray trace logic.
Optionally, specify a maximum range to find the entity from (defaults to 100).
Accepts a list of types to trace against (types not listed will be ignored).
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1991
Name<LocationTag.precise_target[(<range>)]>
ReturnsEntityTag
DescriptionReturns the entity this location is pointing at, using precise ray trace logic.
Optionally, specify a maximum range to find the entity from (defaults to 100).
Generated Example
- heal <player.location.precise_target>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1977
Name<LocationTag.ray_trace_target[(range=<#.#>/{200});(blocks=<{true}/false>);(fluids=<true/{false}>);(nonsolids=<true/{false}>);(entities=<matcher>);(ignore=<entity>|...);(raysize=<#.#>/{0})]>
ReturnsEntityTag
DescriptionTraces a line from this location towards the direction it's facing, returning the first hit entity (if any).
This is similar to Tag:LocationTag.precise_target and Tag:PlayerTag.target, except offering more options for how the ray trace is performed.
For ray tracing locations, see Tag:LocationTag.ray_trace.
Optionally specify:
range: (defaults to 200) a maximum distance (in blocks) to trace before giving up.
blocks: (defaults to true) specify "false" to ignore all blocks, solid or nonsolid or fluid, between this location and the target entity.
fluids: (defaults to false) specify "true" to count fluids like water as solid, or "false" to ignore them.
nonsolids: (defaults to false) specify "true" to count passable blocks (like tall_grass) as solid, or "false" to ignore them.
entities: (defaults to none) specify an entity matcher for entities to ray trace for. Any non-matching entities along the way are ignored. Leave blank to match any entity.
ignore: (defaults to none) optional list of EntityTags to ignore even if they match the matcher.
raysize: (defaults to 0) sets the radius of the ray being used to trace entities.
Example
# Removes the entity a player is looking at.
- define target <player.eye_location.ray_trace_target[ignore=<player>]||null>
- if <[target]> != null:
    - remove <[target]>
Example
# Returns any player within the view of an NPC.
- define target <npc.eye_location.ray_trace_target[entities=player;raysize=2]||null>
Example
# Highlights an entity through any number or types of blocks.
- define target <player.eye_location.ray_trace_target[ignore=<player>;blocks=false]||null>
- if <[target]> != null:
    - adjust <[target]> glowing:true
Synonyms (Search Aid)locationtag.raycast_target, locationtag.raytrace_target, locationtag.ray_cast_target
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1824
Name<LocationTag.ray_trace[(range=<#.#>/{200});(return=<{precise}/block/normal>);(default=<{null}/air>);(fluids=<true/{false}>);(nonsolids=<true/{false}>);(entities=<matcher>);(ignore=<entity>|...);(raysize=<#.#>/{0})]>
ReturnsLocationTag
DescriptionTraces a line from this location towards the direction it's facing, returning the location of the first hit block or (optionally) entity.
This tag has also been referred to as 'cursor_on' or 'precise_cursor_on' in the past.
For ray tracing entities, see Tag:LocationTag.ray_trace_target.
Using 'return=normal' instead replaces the old 'precise_impact_normal' tag.
Optionally specify:
range: (defaults to 200) a maximum distance (in blocks) to trace before giving up.
return: (defaults to precise)
specify "precise" to return the exact location of the hit (if it hits a block, returns a location along the edge of the block -- but if it hits an entity, returns a location along the body of the entity)
"normal" to return the normal vector of the impact location,
or "block" to return the location of the block hit (if it hits an entity, returns equivalent to 'precise')
For "precise" and "block", the location's direction is set to the direction of the block face hit (or entity bounding box face), pointing exactly away from whatever was hit (the 'normal' direction).
default: (defaults to "null")
specify "null" to return null when nothing is hit,
or "air" to return the location of the air at the end of the trace (NOTE: can potentially be in water or other ignored block type, not just literal air).
fluids: (defaults to false) specify "true" to count fluids like water as solid, or "false" to ignore them.
nonsolids: (defaults to false) specify "true" to count passable blocks (like tallgrass) as solid, or false to ignore them.
entities: (defaults to none) specify an entity matcher for entities to count as blocking the trace, "*" for any entity counts, or leave off (or empty) to ignore entities.
ignore: (defaults to none) optional list of EntityTags to ignore even if they match the matcher.
raysize: (defaults to 0) sets the radius of the ray being used to trace entities (and NOT for blocks!).
Example
# Destroys whatever solid block the player is looking at.
- define target <player.eye_location.ray_trace[return=block]||null>
- if <[target]> != null:
    - modifyblock <[target]> air
Example
# Spawns a heart wherever the player is looking, no more than 5 blocks away.
- playeffect effect:heart offset:0 at:<player.eye_location.ray_trace[range=5;entities=*;ignore=<player>;fluids=true;nonsolids=true;default=air]>
Example
# Spawns a line of fire starting at the player's target location and spewing out in the direction of the blockface or entity hit, demonstrating the concept of a normal vector.
- define hit <player.eye_location.ray_trace[entities=*;ignore=<player>;fluids=true;nonsolids=true]||null>
- if <[hit]> != null:
    - playeffect effect:flame offset:0 at:<[hit].points_between[<[hit].forward[2]>].distance[0.2]>
Synonyms (Search Aid)locationtag.raycast, locationtag.raytrace, locationtag.ray_cast
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1728
Name<LocationTag.sign_contents>
ReturnsListTag
MechanismLocationTag.sign_contents
DescriptionReturns a list of lines on a sign.
Generated Example
- foreach <player.location.sign_contents> as:entry:
    - narrate "found <[entry]>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1245
Name<LocationTag.sign_glow_color>
ReturnsElementTag
MechanismLocationTag.sign_glow_color
DescriptionReturns the name of the glow-color of the sign at the location.
See also Tag:LocationTag.sign_glowing
Generated Example
- narrate <player.location.sign_glow_color>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4169
Name<LocationTag.sign_glowing>
ReturnsElementTag(Boolean)
MechanismLocationTag.sign_glowing
DescriptionReturns whether the location is a Sign block that is glowing.
Generated Example
- if <player.location.sign_glowing>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4152
Name<LocationTag.skull_name>
ReturnsElementTag
MechanismLocationTag.skull_skin
DescriptionReturns the name of the skin the skull is displaying.
Generated Example
- narrate <player.location.skull_name>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1521
Name<LocationTag.skull_skin.full>
ReturnsElementTag
MechanismLocationTag.skull_skin
DescriptionReturns the skin the skull item is displaying - just the name or UUID as text, not a player object,
along with the permanently cached texture property.
In format "uuid|texture" - separated by a pipe, but not a ListTag.
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1564
Name<LocationTag.skull_skin>
ReturnsElementTag
MechanismLocationTag.skull_skin
DescriptionReturns the skin the skull is displaying - just the name or UUID as text, not a player object.
Generated Example
- narrate <player.location.skull_skin>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1545
Name<LocationTag.skull_type>
ReturnsElementTag
DescriptionReturns the type of the skull.
Generated Example
- narrate <player.location.skull_type>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1505
Name<LocationTag.spawner_count>
ReturnsElementTag(Number)
MechanismLocationTag.spawner_count
DescriptionReturns the spawn count for the spawner.
Generated Example
- narrate "the number value is <player.location.spawner_count>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1385
Name<LocationTag.spawner_display_entity>
ReturnsEntityTag
DescriptionReturns the full "display entity" for the spawner. This can contain more data than just a type.
Generated Example
- remove <player.location.spawner_display_entity>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1278
Name<LocationTag.spawner_max_nearby_entities>
ReturnsElementTag(Number)
MechanismLocationTag.spawner_max_nearby_entities
DescriptionReturns the maximum nearby entities for the spawner (the radius mobs will spawn in).
Generated Example
- narrate "the number value is <player.location.spawner_max_nearby_entities>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1370
Name<LocationTag.spawner_maximum_spawn_delay>
ReturnsElementTag(Number)
MechanismLocationTag.spawner_delay_data
DescriptionReturns the maximum spawn delay for the mob spawner.
Generated Example
- narrate "the number value is <player.location.spawner_maximum_spawn_delay>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1325
Name<LocationTag.spawner_minimum_spawn_delay>
ReturnsElementTag(Number)
MechanismLocationTag.spawner_delay_data
DescriptionReturns the minimum spawn delay for the mob spawner.
Generated Example
- narrate "the number value is <player.location.spawner_minimum_spawn_delay>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1310
Name<LocationTag.spawner_player_range>
ReturnsElementTag(Number)
MechanismLocationTag.spawner_player_range
DescriptionReturns the maximum player range for the spawner (ie how close a player must be for this spawner to be active).
Generated Example
- narrate "the number value is <player.location.spawner_player_range>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1340
Name<LocationTag.spawner_range>
ReturnsElementTag(Number)
MechanismLocationTag.spawner_range
DescriptionReturns the spawn range for the spawner (the radius mobs will spawn in).
Generated Example
- narrate "the number value is <player.location.spawner_range>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1355
Name<LocationTag.spawner_spawn_delay>
ReturnsElementTag(Number)
MechanismLocationTag.spawner_delay_data
DescriptionReturns the current spawn delay for the spawner.
This changes over time between Tag:LocationTag.spawner_minimum_spawn_delay and Tag:LocationTag.spawner_maximum_spawn_delay.
Generated Example
- narrate "the number value is <player.location.spawner_spawn_delay>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1294
Name<LocationTag.spawner_type>
ReturnsEntityTag
MechanismLocationTag.spawner_type
DescriptionReturns the type of entity spawned by a mob spawner, if any.
Generated Example
- kill <player.location.spawner_type>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1262
Name<LocationTag.structure_block_data>
ReturnsMapTag
MechanismLocationTag.structure_block_data
DescriptionReturns the structure block data of the structure block at the location as a map with the following keys:
- author: ElementTag: The name of the structure's creator. set to "?" for most vanilla structures.
- integrity: ElementTag(Decimal): The integrity of the structure (0-1). Lower integrity values will result in more blocks being removed when loading a structure.
used with the seed to determine which blocks are randomly removed to mimic "decay".
- metadata: ElementTag: Only applies in DATA mode, sets specific functions that can be applied to the structure,
check the Minecraft wiki (🔗https://minecraft.wiki/w/Structure_Block#Data) for more information.
- mirror: ElementTag: How the structure is mirrored; "NONE", "LEFT_RIGHT", or "FRONT_BACK".
- box_position: LocationTag: The position of the structure's bounding box, relative to the position of the structure block. Maximum allowed distance is 48 blocks in any direction.
- rotation: ElementTag: The rotation of the structure; "NONE", "CLOCKWISE_90", "CLOCKWISE_180", or "COUNTERCLOCKWISE_90".
- seed: ElementTag(Number): The seed used to determine how many blocks are removed upon loading of this structure (see "integrity" for more information).
- structure_name: ElementTag: The name of the structure.
- size: LocationTag: The size of the structure's bounding box, The maximum structure size is 48,48,48.
- mode: ElementTag: The structure block's mode; "CORNER", "DATA", "LOAD", or "SAVE". See also Mechanism:MaterialTag.mode.
- box_visible: ElementTag(Boolean): Whether the structure's bounding box is visible, only applies in LOAD mode.
- ignore_entities: ElementTag(Boolean): Whether entities in the structure are ignored, only applies in SAVE mode.
- show_invisible: ElementTag(Boolean): Whether invisible blocks in the structure are shown.
Generated Example
- foreach <player.location.structure_block_data> key:key as:val:
    - narrate "<[key]> is set as <[val]>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4202
Name<LocationTag.switched>
ReturnsElementTag(Boolean)
DescriptionReturns whether the block at the location is considered to be switched on.
(For buttons, levers, etc.)
To change this, see Command:Switch
Generated Example
- if <player.location.switched>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1232
Name<LocationTag.tree_distance>
ReturnsElementTag(Number)
DescriptionDeprecated in favor of Tag:MaterialTag.distance
Used like <[location].material.distance>
Generated Example
- narrate "the number value is <player.location.tree_distance>"
Groupworld
DeprecatedUse MaterialTag.distance
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3757
Name<LocationTag.waxed>
ReturnsElementTag(Boolean)
MechanismLocationTag.waxed
DescriptionIf the location is a sign block, returns whether it is waxed (locked to prevent players editing the text).
Generated Example
- if <player.location.waxed>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4454
Name<LocationTag.with_facing_direction>
ReturnsLocationTag
DescriptionReturns the location with its direction set to the block's facing direction.
Only works for block types that have directionality (such as signs, chests, stairs, etc.).
You can use <some_block_location.with_facing_direction.forward[1]> to get the block directly in front of this block (based on its facing direction).
Generated Example
- teleport <player> <player.location.with_facing_direction>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L869
Name<LocationTag.xp_drop[(<item>)]>
ReturnsElementTag(Number)
DescriptionReturns how much experience, if any, the block at the location would drop if broken naturally.
Returns 0 if a block wouldn't drop xp.
Optionally specifier a breaker item.
Not guaranteed to contain exactly the amount that actual drops if then broken later, as the value is usually randomized.
Generated Example
- narrate "the number value is <player.location.xp_drop>"
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1464

Semi-Strong Match Results



Command


NameCustomEvent
Syntaxcustomevent [id:<id>] (context:<map>)
Short DescriptionFires a custom world script event.
Full DescriptionFires a custom world script event.

Input is an ID (the name of your custom event, choose a constant name to use), and an optional MapTag of context data.

Linked data (player, npc, ...) is automatically sent across to the event.

Use with Event:custom event
Related Tags<entry[saveName].any_ran> returns a boolean indicating whether any events ran as a result of this command.
<entry[saveName].was_cancelled> returns a boolean indicating whether the event was cancelled.
<entry[saveName].determination_list> returns a ListTag of determinations to this event. Will be an empty list if 'determine output:' is never used.
Usage Example
# Use to call a custom event with path "on custom event id:things_happened:"
- customevent id:things_happened
Usage Example
# Use to call a custom event with path "on custom event id:things_happened:" and supply a context map of basic data.
- customevent id:things_happened context:[a=1;b=2;c=3]
Usage Example
# Use to call a custom event with a path such as "on custom event id:things_happened data:item:stone:" and supply a context map of more interesting data.
- definemap context:
    waffle: hello world
    item: <player.item_in_hand>
- customevent id:things_happened context:<[context]>
Usage Example
# Use to call a custom event and allow cancelling or replacing a value.
- definemap context:
    message: hello world
- customevent id:custom_message context:<[context]> save:event
- if <entry[event].was_cancelled>:
    - stop
- define message <entry[event].determination_list.first.if_null[<[context.message]>]>
- narrate "Final message is: <[message]>"
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/core/CustomEventCommand.java#L23

Event


Nameblock fades
Event Lines <block> fades
Triggerswhen a block fades, melts, or disappears based on world conditions.
Generated Exampleson block fades:
after dried_kelp_block fades:
Contexts<context.location> returns the LocationTag the block faded at.
<context.material> returns the MaterialTag of the block that faded.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupBlock
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/block/BlockFadesScriptEvent.java#L13
Nameblock forms
Event Lines <block> forms
Triggerswhen a block is formed based on world conditions, EG, when snow forms in a snow storm or ice forms in a cold biome.
Generated Exampleson waxed_copper_block forms:
after conduit forms:
Contexts<context.location> returns the LocationTag the block that is forming.
<context.material> returns the MaterialTag of the block that is forming.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupBlock
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/block/BlockFormsScriptEvent.java#L13
Nameblock grows
Event Lines <block> grows
Triggerswhen a block grows naturally in the world, EG, when wheat, sugar canes, cacti, watermelons or pumpkins grow.
Generated Examplesafter yellow_stained_glass_pane grows:
on block grows:
Switchesfrom:<age> to only process the event if the material started at a specific age.
to:<age> to only process the event if the material ended at a specific age.
Contexts<context.location> returns the LocationTag of the block that grew (still at original material state when event fires).
<context.material> returns the MaterialTag of the block's newly grown state.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupBlock
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/block/BlockGrowsScriptEvent.java#L15
Nameentity despawns
Event Lines <entity> despawns
Triggerswhen an entity despawns permanently from the world. May fire repeatedly for one entity.
Generated Examplesafter entity despawns:
after projectile despawns:
Has NPCwhen the entity that despawned is an NPC.
Switchescause:<cause> to only process the event when it came from a specified cause.
Contexts<context.entity> returns the entity that despawned.
<context.cause> returns the reason the entity despawned. Can be: DEATH, CHUNK_UNLOAD, CITIZENS, or OTHER
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupEntity
Warning(s)this event fires very rapidly.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/entity/EntityDespawnScriptEvent.java#L12
Nameblock spreads
Event Lines block spreads
Triggerswhen a block spreads based on world conditions, EG, when fire spreads, or when mushrooms spread, or when vines grow.
Generated Exampleson block spreads:
Switchestype:<block> to only run if the block spreading matches the material input.
Contexts<context.source_location> returns the LocationTag of the block that spread.
<context.location> returns the LocationTag of the new block.
<context.material> returns the MaterialTag of the block that spread.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupBlock
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/block/BlockSpreadsScriptEvent.java#L14
Namesystem time hh:mm
Event Lines system time <HH:MM>
system time hourly|minutely|secondly
Triggerswhen the system time changes to the specified value.
The system time is the real world time set in the server's operating system.
It is not necessarily in sync with the game server time, which may vary (for example, when the server is lagging).
For events based on in-game time passage, use Event:delta time or Command:wait.
Example
on system time hourly:
- announce "Whoa an hour passed!"
Example
on system time 12:00:
- announce "Whoa it's noon!"
Example
on system time 03:00:
- announce "Daily restart in 5 minutes!"
- wait 5m
- adjust server restart
Switchesevery:<count> to only run the event every *count* times (like "on system time secondly every:5" for every 5 seconds).
Contexts<context.hour> returns the exact hour of the system time.
<context.minute> returns the exact minute of the system time.
Synonyms (Search Aid)cron
GroupCore
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/events/core/SystemTimeScriptEvent.java#L11

Semi-Decent Match Results



Command


NameHurt
Syntaxhurt (<#.#>) ({player}/<entity>|...) (cause:<cause>) (source:<entity>/<location>)
Short DescriptionHurts the player or a list of entities.
Full DescriptionDoes damage to a list of entities, or to any single entity.

If no entities are specified: if there is a linked player, the command targets that. If there is no linked
player but there is a linked NPC, the command targets the NPC. If neither is available, the command will error.

Does a specified amount of damage usually, but, if no damage is specified, does precisely 1HP worth of damage (half a heart).

Optionally, specify (source:<entity>) to make the system treat that entity as the attacker.
If using a block-type cause such as "contact", you *must* specify (source:<location>) to set that block location as the attacker. The block can be any block, even just "<player.location>" (as long as the player in inside a world).

You may also specify a damage cause to fire a proper damage event with the given cause, only doing the damage if the event wasn't cancelled.
Calculates the 'final damage' rather than using the raw damage input number. See Language:damage cause for damage causes.

Using a valid 'cause' value is best when trying to replicate natural damage, excluding it is best when trying to force the raw damage through.
Note that using invalid or impossible causes may lead to bugs
Related Tags<EntityTag.health> Returns the current health of the entity.
<EntityTag.last_damage.amount> Returns the amount of the last damage taken by the entity.
<EntityTag.last_damage.cause> Returns the cause of the last damage taken by the entity.
<EntityTag.last_damage.duration> Returns the duration of the last damage taken by the entity.
<EntityTag.last_damage.max_duration> Returns the maximum duration of the last damage taken by the entity.
Usage Example
# Use to hurt the player for 1 HP.
- hurt
Usage Example
# Use to hurt the NPC for 5 HP.
- hurt 5 <npc>
Usage Example
# Use to cause the player to hurt the NPC for all its health (if unarmored).
- hurt <npc.health> <npc> cause:CUSTOM source:<player>
Synonyms (Search Aid)damage, injure
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/HurtCommand.java#L31
NameMap
Syntaxmap [<#>/new:<world>] (reset:<location>) (scale:<value>) (tracking) (image:<file>) (resize) (script:<script>) (dot:<color>) (radius:<#>) (x:<#>) (y:<#>) (text:<text>)
Short DescriptionModifies a new or existing map by adding images or text.
Full DescriptionThis command modifies an existing map, or creates a new one. Using this will override existing non-Denizen map renderers with Denizen's custom map renderer.

You must specify at least one of 'reset', 'script', 'image', 'dot', 'text'. You can specify multiple at once if you prefer.

When using 'reset', you can specify optionally 'scale' and/or 'tracking'.
When using 'image' you can optionally specify 'resize'.
When using 'dot', you can specify any valid ColorTag (it will be compressed to map's color space), and you can optionally also specify 'radius' as a number.
Use "radius:0" with dot to set on a single pixel. 1 or higher will make a circle centered on the x/y given.

You can reset this at any time by using the 'reset:<location>' argument, which will remove all
images and texts on the map and show the default world map at the specified location.
You can also specify 'reset' without a location.

The 'scale' argument takes input of one of the values listed here:
🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/map/MapView.Scale.html

The 'tracking' argument determines if the map will track its location on the map it displays.
This is often the player holding the map's location.

Note that all maps have a size of 128x128.

The file path is relative to the 'plugins/Denizen/images/' folder.
Instead of a local file path, an http(s) URL can be used, which will automatically download the image from the URL given.
If the file path points to a .gif, the map will automatically be animated.

Use escaping to let the image and text arguments have tags based on the player viewing the map.

Custom maps will persist over restarts using the 'maps.yml' save file in the Denizen plugins folder.
Related Tags<entry[saveName].created_map> returns the map created by the 'new:' argument if used.
Usage Example
# Use to add an auto-resized background image to map 3.
- map 3 image:my_map_images/my_background.png resize
Usage Example
# Use to add an image with the top-left corner at the center of a new map.
- map new:WorldTag image:my_map_images/my_center_image.png x:64 y:64 save:map
- give filled_map[map=<entry[map].created_map>]
Usage Example
# Use to reset map 3 to be centered at the player's location.
- map 3 reset:<player.location>
Usage Example
# Use to remove any custom renderers on map 3 and then apply the contents of the named <@link language Map Script Containers> to map 3.
- map 3 script:Map_Script_Name
Groupitem
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/MapCommand.java#L33
NamePermission
Syntaxpermission [add/remove] [permission] (group:<name>) (<world>)
Short DescriptionGives or takes a permission node to/from the player or group.
Full DescriptionAdds or removes a permission node from a player or group.
Accepts a world for world-based permissions plugins.
By default changes the attached player's permissions.
Accepts the 'group:<name>' argument to change a group's permission nodes rather than a player's.
Note: This requires a permissions plugin and Vault.
Related Tags<PlayerTag.has_permission[permission.node]> Returns whether the player has the specified node. (...)
<PlayerTag.has_permission[permission.node].global> Returns whether the player has the specified node, regardless of world. (...)
<PlayerTag.has_permission[permission.node].world[<world>]> Returns whether the player has the specified node in regards to the (...)
<server.has_permissions> Returns whether the server has a known permission plugin loaded. (...)
Usage Example
# Use to give the player a permissions node.
- permission add bukkit.version
Usage Example
# Use to remove a permissions node from a player.
- permission remove bukkit.version
Usage Example
# Use to give the group 'Members' a permission node.
- permission add bukkit.version group:Members
Usage Example
# Use to remove a permissions node from the group 'Members' in the Creative world.
- permission remove bukkit.version group:Members Creative
Groupplayer
RequiresVault
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/PermissionCommand.java#L24
Nameregion
Syntaxregion [{add} <cuboid>/remove <world>] [id:<name>]
Short DescriptionAdds or removes a protected region.
Full DescriptionAdds a protected region to a region manager based on the specified cuboid,
or removes a protected region from a region manager based on the specified
world. Currently, this command only supports cuboid-shaped regions.
Related TagsNone
Usage Example
# Use to add a region based on a cuboid.
- region add <[some_cuboid]> id:MyRegion
Usage Example
# Use to remove a region from a world.
- region remove world id:MyRegion
GroupDepenizen
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/worldguard/RegionCommand.java#L27
NameRemove
Syntaxremove [<entity>|...] (world:<world>)
Short DescriptionDespawns an entity or list of entities, permanently removing any NPCs.
Full DescriptionRemoves the selected entity. May also take a list of entities to remove.

Any NPC removed this way is completely removed, as if by '/npc remove'.
For temporary NPC removal, see Command:despawn.

If a generic entity name is given (like 'zombie'), this will remove all entities of that type from the given world.
Optionally, you may specify a world to target.
(Defaults to the world of the player running the command)
Related Tags<EntityTag.is_spawned> Returns whether the entity is spawned.
Usage Example
# Use to remove the entity the player is looking at.
- remove <player.target>
Usage Example
# Use to remove all nearby entities around the player, excluding the player itself.
- remove <player.location.find_entities.within[10].exclude[<player>]>
Usage Example
# Use to remove all dropped items in the world called cookies.
- remove dropped_item world:cookies
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/RemoveCommand.java#L28
NameTeleport
Syntaxteleport (<entity>|...) [<location>] (cause:<cause>) (entity_options:<option>|...) (relative) (relative_axes:<axis>|...) (offthread_repeat:<#>) (offthread_yaw) (offthread_pitch)
Short DescriptionTeleports the entity(s) to a new location.
Full DescriptionTeleports the entity or entities to the new location.
Entities can be teleported between worlds using this command.
You may optionally specify a teleport cause for player entities, allowing proper teleport event handling. When not specified, this is "PLUGIN". See Language:teleport cause for causes.

Instead of a valid entity, an unspawned NPC or an offline player may also be used.

Optionally specify "relative" to use relative teleportation (Paper only). This is primarily useful only for players, but available for all entities.
Relative teleports are smoother for the client when teleporting over short distances.
Optionally, you may use "relative_axes:" to specify a set of axes to move relative on (and other axes will be treated as absolute), as any of "X", "Y", "Z", "YAW", "PITCH".
Optionally, you may use "offthread_repeat:" with the relative arg when teleporting a player to smooth out the teleport with a specified number of extra async packets sent within a single tick.
Optionally, specify "offthread_yaw" or "offthread_pitch" while using offthread_repeat to smooth the player's yaw/pitch to the new location's yaw/pitch.

Optionally, specify additional teleport options using the 'entity_options:' arguments (Paper only).
This allows things like retaining an open inventory when teleporting - see the links below for more information.
See 🔗https://jd.papermc.io/paper/1.19/io/papermc/paper/entity/TeleportFlag.EntityState.html for all possible options.
Note that the API this is based on is marked as experimental in Paper, and so may change in the future.
Related Tags<EntityTag.location> Returns the location of the entity. (...)
Usage Example
# Use to teleport a player to the location their cursor is pointing at.
- teleport <player> <player.cursor_on>
Usage Example
# Use to teleport a player high above.
- teleport <player> <player.location.above[200]>
Usage Example
# Use to teleport to a random online player.
- teleport <player> <server.online_players.random.location>
Usage Example
# Use to teleport all players to your location.
- teleport <server.online_players> <player.location>
Usage Example
# Use to teleport the NPC to a location that was noted with the <@link command note> command.
- teleport <npc> my_prenoted_location
Usage Example
# Use to teleport a player to some location, and inform events that it was caused by a nether portal.
- teleport <player> <server.flag[nether_hub_location]> cause:nether_portal
Usage Example
# Use to teleport the player without closing their currently open inventory.
- teleport <player> <player.location.below[5]> entity_options:retain_open_inventory
Synonyms (Search Aid)tp
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/TeleportCommand.java#L39
NameWait
Syntaxwait (<duration>) (queue:<name>) (system/{delta})
Short DescriptionDelays a script for a specified amount of time.
Full DescriptionPauses the script queue for the duration specified. If no duration is specified it defaults to 3 seconds.
Accepts the 'queue:<name>' argument which allows the delay of a different queue.

Accepts a 'system' argument to delay based on system time (real-world time on a clock).
When that argument is not used, waits based on delta time (in-game time tracking, which tends to vary by small amounts, especially when the server is lagging).
Generally, do not use the 'system' argument unless you have a specific good reason you need it.
Related Tags<QueueTag.speed> Returns the speed of the queue as a Duration. A return of '0' implies it is 'instant'. (...)
Usage Example
# Use to delay the current queue for 1 minute.
- wait 1m
Usage Example
# Use to delay the current queue until 1 hour of system time passes.
- wait 1h system
Synonyms (Search Aid)delay
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/WaitCommand.java#L22
NameYaml
Syntaxyaml [create]/[load:<file>]/[loadtext:<text> raw_format]/[unload]/[savefile:<file>]/[copykey:<source_key> <target_key> (to_id:<name>)]/[set <key>([<#>])(:<action>):<value> (data_type:{string}/integer/double/boolean/auto)] [id:<name>]
Short DescriptionEdits YAML data, especially for YAML files.
Full DescriptionEdits YAML configuration data.

This commands exists primarily for interoperability with pre-existing data files and other plugins.
It should never be used for storing data that only Denizen needs to use. Consider instead using Command:flag.

Use waitable syntax ("- ~yaml load:...") with load or savefile actions to avoid locking up the server during file IO.
Refer to Language:~waitable.

For loading and saving, the starting path is within 'plugins/Denizen'.
The file path follows standard system file path rules. That means '/' separators folders,
and '..' as a folder name means go-up-one folder, for example '../WorldGuard/config.yml' would load the WorldGuard plugin config.
Also be aware that some servers (Linux/Mac based) have case sensitive file systems while others (Windows based) don't.
Generally, when using existing paths, make sure your casing is correct. When creating new paths, prefer all-lowercase to reduce risk of issues.

Please note that all usages of the YAML command except for "load" and "savefile" arguments are purely in memory.
That means, if you use "set" to make changes, those changes will not be saved to any file, until you use "savefile".
Similarly, "create" does not create any file, instead it only creates a YAML object in RAM.

When loading, optionally specify 'raw_format' to indicate that this YAML file needs to maintain compatibility with some external system using raw YAML data
(for example, when altering YAML data files used by external plugins).
Note that this can have side effects of custom data disappearing (for example, the value "yes" gets magically converted to "true") or strange data parsing in.

In-memory changes to a loaded YAML object will mark that object as having changes. Before saving,
you can check whether the YAML object needs to be written to disk with the has_changes tag.

Note that the '.yml' extension is not automatically appended, and you will have to include that in filenames.

All usages of the YAML command must include the "id:" argument. This is any arbitrary name, as plaintext or from a tag,
to uniquely and globally identify the YAML object in memory. This ID can only be used by one YAML object at a time.
IDs are stored when "create" or "load" arguments are used, and only removed when "unload" is used.
If, for example, you have a unique YAML data container per-player, you might use something like "id:myscript_<player>".

For ways to use the "set" argument, refer to Language:data actions.

When setting a value directly, you can optionally specify "data_type" as "string", "integer", "double", "boolean", or "auto",
to force the input to a specific data type, which may be needed for compatibility with some external YAML files.
Only applicable when setting a single value, not lists/maps/etc.
'Auto' will attempt to choose the best type for the value.
Related Tags<yaml[<idname>].contains[<path>]> Returns true if the file has the specified path. (...)
<yaml[<idname>].read[<path>]> Returns the value from a data key on the YAML document as an ElementTag, ListTag, or MapTag.
<yaml[<idname>].list_keys[<path>]> Returns a ListTag of all the keys at the path (and not sub-keys). (...)
<yaml[<idname>].has_changes> Returns whether this YAML object has had changes since the last save or load.
Usage Example
# Use to create a new YAML file.
- yaml create id:myfile
Usage Example
# Use to load a YAML file from disk.
- ~yaml load:myfile.yml id:myfile
Usage Example
# Use to modify a YAML file similarly to a flag.
- yaml id:myfile set my.key:HelloWorld
Usage Example
# Use to save a YAML file to disk.
- ~yaml savefile:myfile.yml id:myfile
Usage Example
# Use to unload a YAML file from memory.
- yaml unload id:myfile
Usage Example
# Use to modify a YAML file similarly to a flag.
- yaml id:myfile set my.key:+:2
Usage Example
# Use to modify a YAML file similarly to a flag.
- yaml id:myfile set my.key[2]:hello
Usage Example
# Use to modify a copy the contents of one YAML key to a new owning key.
- yaml id:myfile copykey:my.first.key my.new.key
Usage Example
# Use to modify a copy the contents of one YAML key to a new owning key on a different YAML file.
- yaml id:myfile copykey:my.first.key my.new.key to_id:myotherfile
Groupfile
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/file/YamlCommand.java#L44

Event


Nameentity enters|exits area
Event Lines <entity> enters|exits <area>
Triggerswhen an entity enters or exits a noted area (cuboid, ellipsoid, or polygon). On Spigot servers, only fires for players. Paper is required for other mob types.
Generated Exampleson entity enters area:
on ominous_item_spawner exits area:
Has PlayerWhen the entity is a player. - this adds switches 'flagged:<flag name>' + 'permission:<node>', in addition to the '<player>' link.
Contexts<context.area> returns the area object that was entered or exited.
<context.cause> returns the cause of the event. Can be: WALK, WORLD_CHANGE, JOIN, QUIT, TELEPORT, VEHICLE.
<context.to> returns the location the entity moved to (might not be available in exit events).
<context.from> returns the location the entity moved from (when available, depending on cause).
<context.entity> returns the entity that entered/exited an area.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
GroupEntity
Warning(s)cancelling this event will have different results depending on the cause. Teleporting the entity away 1 tick later might be safer.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/entity/AreaEnterExitScriptEvent.java#L29
Nameentity teleported by portal
Event Lines <entity> teleported by portal
TriggersWhen an entity is about to be teleported by a portal (currently only fires for nether portals).
Generated Exampleson entity teleported by portal:
on item_frame teleported by portal:
Switchesto:<world> to only process the event if the world the entity is being teleported to matches the specified WorldTag matcher.
portal_type:<type> to only process the event if the portal's type matches the specified portal type.
Contexts<context.entity> returns an EntityTag of the entity being teleported.
<context.target_world> returns a WorldTag of the world the entity is being teleported to.
<context.portal_type> returns an ElementTag of the portal's type. Will be one of 🔗https://jd.papermc.io/paper/1.19/org/bukkit/PortalType.html.
Determine"TARGET_WORLD:<WorldTag>" to set the world the entity will be teleported to.
"REMOVE_TARGET_WORLD" to remove the target world. Should usually cancel the event instead of using this.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupPaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/events/EntityTeleportedByPortalScriptEvent.java#L14
Nameplayer right clicks entity
Event Lines player right clicks <entity>
Triggerswhen a player right clicks on an entity.
Generated Exampleson player right clicks item_display:
after player right clicks pufferfish:
Has PlayerAlways. - this adds switches 'flagged:<flag name>' + 'permission:<node>', in addition to the '<player>' link.
Switcheswith:<item> to only process the event when the player is holding a specified item.
type:<entity> to only run if the entity clicked matches the entity input.
Contexts<context.entity> returns the EntityTag the player is clicking on.
<context.item> returns the ItemTag the player is clicking with.
<context.hand> returns "offhand" or "mainhand" to indicate which hand was used to fire the event. Some events fire twice - once for each hand.
<context.click_position> returns a LocationTag of the click position (as a world-less vector, relative to the entity's center). This is only available when clicking armor stands.
CancellableTrue - This adds <context.cancelled> and determine 'cancelled' or 'cancelled:false'
Has LocationTrue - This adds the switches 'in:<area>', 'location_flagged:<flag>', ...
GroupPlayer
Warning(s)this event may in some cases double-fire, requiring usage of the 'ratelimit' command (like 'ratelimit <player> 1t') to prevent doubling actions.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerRightClicksEntityScriptEvent.java#L21

Language


Name/npc constant command
DescriptionThe /npc constants command configures a NPC's constants. Uses Denizen's ConstantTrait to keep track of
NPC-specific constants. This provides seamless integration with an assignment script's 'Default Constants' in
which text variables can be stored and retrieved with the use of 'replaceable tags', or API. Constants set at
the NPC level override any constants from the NPC's assignment script.

Constants may be used in several ways: Setting, Removing, and Viewing

To set a constant, all that is required is a name and value. Use the Bukkit command in the
following manner: (Note the use of quotes on multi world values)
/npc constant --set constant_name --value 'multi word value'

Removing a constant from an NPC only requires a name. Note: It is not possible to remove a
constant set by the NPCs Assignment Script, except by modifying the script itself.
/npc constant --remove constant_name

Viewing constants is easy, just use '/npc constant #', specifying a page number. Constants which
have been overridden by the NPC are formatted with a strike-through to indicate this case.

To reference a constant value, use the replaceable tag to get the NPCs 'constant' attribute. For example:
<npc.constant[constant_name]>. Constants may also have other tags in their value, which will be replaced
whenever the constant is used, allowing the use of dynamic information.
GroupConsole Commands
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/utilities/command/NPCCommandHandler.java#L117
NameAdvanced Object Matchables
DescriptionScript events have a variety of matchable object inputs, and the range of inputs they accept may not always be obvious.
For example, an event might be "player clicks <block>"... what can "<block>" be filled with?

"<block>" usually indicates that a LocationTag and/or MaterialTag will be matched against.
This means you can specify any valid block material name, like "stone" or "air", like "on player clicks stone:" (will only run the event if the player is clicking stone)
You can also use a catch-all such as "block", like "on player clicks block:" (will always run the event when the player clicks anything/anywhere)
You can also use some more complicated matchables such as "vanilla_tagged:", like "on player clicks vanilla_tagged:mineable/axe:" (will run if the block is mineable with axes)
(For more block-related options, refer to the ObjectType:LocationTag and ObjectType:MaterialTag matchers lists.)

Many object types can be used for matchables, the valid inputs are unique depending on the object type involved.

Some inputs don't refer to any object at all - they're just advanced matchers for some generic plaintext,
for example "<cause>" implies an enumeration of causes will be matched against.

Many inputs support advanced matchers. For details on that, see Language:Advanced Object Matching.

A common matchable type found among different objects is a Flag Matchable. This usually looks like "item_flagged:<flag>"
This matches if the object has the specified flag, and fails to match if the object doesn't have that flag.
You can specify multiple required flags with '|', like "item_flagged:a|b|c", which will match if-and-only-if the item has ALL the flags named.
They can also be used to require the object does NOT have the flag with a "!" like "item_flagged:!<flag>".
When using multiple flags with "|", the "!" is per-entry, so "item_flagged:!a|b" requires the item DOES have 'b' but does NOT have 'a'.

Note also that in addition to events, tags often also have matchables as input params,
usually documented like ".types[<matcher>]", with tag documentation specifying what matcher is used,
or like "<material_matcher>" to indicate in this example specifically MaterialTag matchables are allowed.

Not all object types have defined matchable options, and those that do list them in their ObjectType meta. For an example of this, check ObjectType:ItemTag.

As a special case, "in:<area>" style matchable listings in event conform to the following option set:
"biome:<name>": matches if the location is in a given biome, using advanced matchers.
"cuboid" plaintext: matches if the location is in any noted cuboid.
"ellipsoid" plaintext: matches if the location is in any noted ellipsoid.
"polygon" plaintext: matches if the location is in any noted polygon.
"chunk_flagged:<flag>": a Flag Matchable for ChunkTag flags.
"area_flagged:<flag>": a Flag Matchable for AreaObject flags.
Area note name: matches if an AreaObject note that matches the given advanced matcher contains the location.
If none of the above are used, uses WorldTag matchers.
GroupObject System
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java#L45
NameAssignment Script Containers
DescriptionAssignment script-containers provide functionality to NPCs by 'assignment' of the container. Assignment
scripts are meant to be used when customizing the normal behavior of NPCs. This can be used on a 'per-NPC' basis,
but the encouraged approach is to design assignment scripts in a way that they can be used for multiple NPCs,
perhaps with the use of constants or flags to determine specific information required by the scripts.

Features unique to assignment script-containers include 'actions' and 'interact script' assignment.
Like any script, the ability to run local utility scripts can be accomplished as well. This allows fully
interactive NPCs to be built purely with Assignment Scripts, and for advanced situations, world scripts and
interact scripts can provide more functionality.
See also Language:interact script containers

Assignments scripts can be automatically disabled by adding "enabled: false" as a root key (supports any load-time-parseable tags).
This will disable any "actions" on the script (but not interact scripts steps - disable the interact for that).

Basic structure of an assignment script:

Assignment_Script_Name:

    type: assignment

    # | All assignment scripts MUST have this key!
    actions:
        on <action>:
        - ...

    # | Most assignment scripts should exclude this key, but it's available.
    default constants:
        <constant_name>: <value>
        <constant_list>:
        - ...

    # | MOST assignment scripts should have this key!
    interact scripts:
    - <interact_script_name>


Though note that almost always you should include the 'actions:' key, usually with the 'on assignment:' action (if using triggers).
Refer to Action:assignment.
GroupScript Container System
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/AssignmentScriptContainer.java#L13
NameEconomy Script Containers
DescriptionEconomy script containers

Economy script containers provide a Vault economy, which can be used in scripts by
Tag:PlayerTag.money and Command:money
and as well by any other plugin that relies on economy functionality (such as shop plugins).

Note that vault economy bank systems are not currently supported.
Per-world economies are also not currently supported.

Note that in most cases, you do not want to have multiple economy providers, as only one will actually be in use.

ALL SCRIPT KEYS ARE REQUIRED.

Economy scripts can be automatically disabled by adding "enabled: false" as a root key (supports any load-time-parseable tags).


# The script name will be shown to the economy provider as the name of the economy system.
Economy_Script_Name:

    type: economy

    # The Bukkit service priority. Priorities are Lowest, Low, Normal, High, Highest.
    priority: normal
    # The name of the currency in the singular (such as "dollar" or "euro").
    name single: scripto
    # The name of the currency in the plural (such as "dollars" or "euros").
    name plural: scriptos
    # How many digits after the decimal to include. For example, '2' means '1.05' is a valid amount, but '1.005' will be rounded.
    digits: 2
    # Format the standard output for the money in human-readable format. Use "<[amount]>" for the actual amount to display.
    # Fully supports tags.
    format: $<[amount]>
    # A tag that returns the balance of a linked player. Use a 'proc[]' tag if you need more complex logic.
    # Must return a decimal number.
    balance: <player.flag[money]>
    # A tag that returns a boolean indicating whether the linked player has the amount specified by def "<[amount]>".
    # Use a 'proc[]' tag if you need more complex logic.
    # Must return 'true' or 'false'.
    has: <player.flag[money].is[or_more].than[<[amount]>]>
    # A script that removes the amount of money needed from a player.
    # Note that it's generally up to the systems calling this script to verify that the amount can be safely withdrawn, not this script itself.
    # However you may wish to verify that the player has the amount required within this script.
    # The script may determine a failure message if the withdraw was refused. Determine nothing for no error.
    # Use def 'amount' for the amount to withdraw.
    withdraw:
    - flag <player> money:-:<[amount]>
    # A script that adds the amount of money needed to a player.
    # The script may determine a failure message if the deposit was refused. Determine nothing for no error.
    # Use def 'amount' for the amount to deposit.
    deposit:
    - flag <player> money:+:<[amount]>

GroupScript Container System
RequiresVault
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/EconomyScriptContainer.java#L32
NameEnchantment Script Containers
DescriptionEnchantment script containers allow you to register custom item enchantments.
For the most part, they work similarly to vanilla enchantments, albeit with some limitations.
These can be attached to enchanted books and used in anvils,
and can be generated by the enchanting table (requires discoverable: true and treasure_only: false).

In current implementation, custom enchantments do not appear in lore on their own, and will need fake lore added in their place.
This might be fixed in the future.

It may be beneficial in some cases to restart your server after making changes to enchantments, rather than just reloading scripts.
Rarity, Category, and Slots do not apply changes to an already-loaded script until the next restart (except when the script is newly added).

Using these may cause unpredictable compatibility issues with external plugins.

Enchantment scripts can be automatically disabled by adding "enabled: false" as a root key (supports any load-time-parseable tags).


Enchantment_Script_Name:

    type: enchantment

    # The ID is used as the internal registration key, and for lookups with things like the 'enchantments' mechanism.
    # If unspecified, will use the script name.
    # Limited to A-Z or _.
    # | Most enchantment scripts should have this key!
    id: my_id

    # A list of slots this enchantment is valid in.
    # | ALL enchantment scripts MUST have this key!
    slots:
    # Can be any of: mainhand, offhand, feet, legs, chest, head
    - mainhand

    # The rarity level of this enchantment. Can be any of: COMMON, UNCOMMON, RARE, VERY_RARE
    # If unspecified, will use COMMON.
    # | Most enchantment scripts should have this key!
    rarity: common

    # The category/type of this enchantment. Can be any of: ARMOR, ARMOR_FEET, ARMOR_LEGS, ARMOR_CHEST, ARMOR_HEAD,
    # WEAPON, DIGGER, FISHING_ROD, TRIDENT, BREAKABLE, BOW, WEARABLE, CROSSBOW, VANISHABLE
    # This is used internally by the enchanting table to determine which items to offer the enchantment for.
    # If unspecified, will use WEAPON.
    # | Most enchantment scripts should have this key!
    category: weapon

    # The per-level full name of this enchantment. Does not appear in lore automatically (but might in the future?).
    # Can make use of "<context.level>" for the applicable level.
    # | Most enchantment scripts should have this key!
    full_name: My Enchantment <context.level>

    # The minimum level of this enchantment.
    # If unspecified, will use 1.
    # | Most enchantment scripts can exclude this key.
    min_level: 1

    # The maximum level of this enchantment.
    # If unspecified, will use 1.
    # | Some enchantment scripts should have this key.
    max_level: 1

    # The per-level minimum XP cost of enchanting.
    # Can make use of "<context.level>" for the applicable level.
    # | Most enchantment scripts should have this key!
    min_cost: <context.level.mul[1]>

    # The per-level maximum XP cost of enchanting.
    # Can make use of "<context.level>" for the applicable level.
    # | Most enchantment scripts should have this key!
    max_cost: <context.level.mul[1]>

    # Whether this enchantment is only considered to be treasure. Treasure enchantments do not show in the enchanting table.
    # If unspecified, will be false.
    # | Most enchantment scripts can exclude this key.
    treasure_only: false

    # Whether this enchantment is only considered to be a curse. Curses are removed at grindstones, and spread from crafting table repairs.
    # If unspecified, will be false.
    # | Most enchantment scripts can exclude this key.
    is_curse: false

    # Whether this enchantment is only considered to be tradable. Villagers won't trade this enchantment if set to false.
    # If unspecified, will be true.
    # | Most enchantment scripts can exclude this key.
    is_tradable: true

    # Whether this enchantment is only considered to be discoverable.
    # If true, this will spawn from vanilla sources like the enchanting table. If false, it can only be given directly by script.
    # If unspecified, will be true.
    # | Most enchantment scripts can exclude this key.
    is_discoverable: true

    # A tag that returns a boolean indicating whether this enchantment is compatible with another.
    # Can make use of "<context.enchantment_key>" for the applicable enchantment's key, like "minecraft:sharpness".
    # This is used internally by the enchanting table and the anvil to determine if this enchantment can be given alongside another.
    # If unspecified, will default to always true.
    # | Most enchantment scripts can exclude this key.
    is_compatible: <context.enchantment_key.advanced_matches[minecraft:lure|minecraft:luck*]>

    # A tag that returns a boolean indicating whether this enchantment can enchant a specific item.
    # Can make use of "<context.item>" for the applicable ItemTag.
    # This is used internally to decide whether survival players can copy the enchantment between items on an anvil, as well as for commands like "/enchant".
    # If unspecified, will default to always true.
    # | Most enchantment scripts can exclude this key.
    can_enchant: <context.item.advanced_matches[*_sword|*_axe]>

    # A tag that returns a decimal number indicating how much extra damage this item should deal.
    # Can make use of "<context.level>" for the enchantment level,
    # and "<context.type>" for the type of monster being fought: ARTHROPOD, ILLAGER, WATER, UNDEAD, or UNDEFINED
    # If unspecified, will default to 0.0.
    # | Most enchantment scripts can exclude this key.
    damage_bonus: 0.0

    # A tag that returns an integer number indicating how much this item should protection against damage.
    # Can make use of "<context.level>" for the enchantment level, and "<context.cause>" for the applicable damage cause, using internal cause names (different from Spigot Damage Causes).
    # Internal cause names: inFire, lightningBolt, onFire, lava, hotFloor, inWall, cramming, drown, starve, cactus, fall, flyIntoWall,
    # outOfWorld, generic, magic, wither, anvil, fallingBlock, dragonBreath, dryout, sweetBerryBush, freeze, fallingStalactite, stalagmite
    # Also "<context.attacker>" as an EntityTag if the cause has an attacker specified.
    # If unspecified, will default to 0.
    # | Most enchantment scripts can exclude this key.
    damage_protection: 0

    # Triggered after an enchanted weapon is used to attack an entity.
    # Has <context.attacker> (EntityTag), <context.victim> (EntityTag), and <context.level>.
    # May fire rapidly or multiple times per hit. Use a ratelimit to prevent this.
    # | Some enchantment scripts should have this key.
    after attack:
    - narrate "You attacked <context.victim.name> with a <context.level> enchantment!"

    # Triggered after an enchanted armor is used to defend against an attack.
    # Also fires if an entity is holding a weapon with this enchantment while being hit.
    # Has <context.attacker> (EntityTag), <context.victim> (EntityTag), and <context.level>.
    # | Some enchantment scripts should have this key.
    after hurt:
    - narrate "You got hurt by <context.attacker.name> and protected by a level <context.level> enchantment!"
GroupScript Container System
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/EnchantmentScriptContainer.java#L33
NameInventory Actions
DescriptionUsed by some inventory world events to describe the action of the inventory event.

Actions, as described by the bukkit javadocs:
CLONE_STACK
A max-size stack of the clicked item is put on the cursor.
COLLECT_TO_CURSOR
The inventory is searched for the same material, and they are put on the cursor up to
MaterialTag.max_stack_size.
DROP_ALL_CURSOR
The entire cursor item is dropped.
DROP_ALL_SLOT
The entire clicked slot is dropped.
DROP_ONE_CURSOR
One item is dropped from the cursor.
DROP_ONE_SLOT
One item is dropped from the clicked slot.
HOTBAR_MOVE_AND_READD
The clicked item is moved to the hotbar, and the item currently there is re-added to the
player's inventory.
HOTBAR_SWAP
The clicked slot and the picked hotbar slot are swapped.
MOVE_TO_OTHER_INVENTORY
The item is moved to the opposite inventory if a space is found.
NOTHING
Nothing will happen from the click.
PICKUP_ALL
All of the items on the clicked slot are moved to the cursor.
PICKUP_HALF
Half of the items on the clicked slot are moved to the cursor.
PICKUP_ONE
One of the items on the clicked slot are moved to the cursor.
PICKUP_SOME
Some of the items on the clicked slot are moved to the cursor.
PLACE_ALL
All of the items on the cursor are moved to the clicked slot.
PLACE_ONE
A single item from the cursor is moved to the clicked slot.
PLACE_SOME
Some of the items from the cursor are moved to the clicked slot (usually up to the max stack size).
SWAP_WITH_CURSOR
The clicked item and the cursor are exchanged.
UNKNOWN
An unrecognized ClickType.
GroupUseful Lists
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerClicksInInventoryScriptEvent.java#L20
NameMap Script Containers
DescriptionMap scripts allow you define custom in-game map items, for usage with the map command.

The following is the format for the container.


# The name of the map script is used by the map command.
Map_Script_Name:

    type: map

    # Whether to display the original map below the custom values. Defaults to true.
    # | Some map scripts should have this key!
    original: true/false

    # Whether to constantly update things. Defaults to true.
    # | Some map scripts should have this key!
    auto update: true

    # Whether this map script renders uniquely per-player. Defaults to true.
    # | Some map scripts should have this key!
    contextual: true

    # Lists all contained objects.
    # | Most map scripts should have this key!
    objects:

        # The first object...
        1:
            # Specify the object type
            # Type can be IMAGE, TEXT, CURSOR, or DOT.
            type: image
            # Specify an HTTP url or file path within Denizen/images/ for the image. Supports animated .gif!
            image: my_image.png
            # Optionally add width/height numbers.
            width: 128
            height: 128
            # Specify a tag to show or hide custom content! Valid for all objects.
            # Note that all inputs other than 'type' for all objects support tags that will be dynamically reparsed per-player each time the map updates.
            visible: <player.name.contains_text[bob].not>

        2:
            type: text
            # Specify any text to display. Color codes not permitted (unless you know how to format CraftMapCanvas byte-ID color codes).
            text: Hello <player.name>
            # Specify the color of the text as any valid ColorTag.
            color: red
            # | Optionally, specify the following additional options:
            # Specify a font to use, which allows using special characters/other languages the default font may not support.
            font: arial
            # Specify a text size (only available with a custom font).
            size: 18
            # Specify a style, as a list that contains either "bold", "italic", or both (only available with a custom font).
            style: bold|italic
        3:
            type: cursor
            # Specify a cursor type
            cursor: red_marker
            # Optionally, specify a cursor direction. '180' seems to display as up-right usually.
            direction: 180
            # Supported on all objects: x/y positions, and whether to use worldly or map coordinates.
            x: 5
            # If 'world_coordinates' is set to 'true', the 'y' value corresponds to the 'z' value of a location.
            y: 5
            # If true: uses world coordinates. If false: uses map local coordinates. (Defaults to false).
            world_coordinates: false
            # If true: when the object goes past the edge, will stay in view at the corner. If false: disappears past the edge (defaults to false).
            show_past_edge: false

        4:
            type: dot
            # Specify the radius of the dot.
            radius: 1
            # Specify the color of the dot as any valid ColorTag.
            color: red



A list of cursor types is available through Tag:server.map_cursor_types.
GroupScript Container System
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/MapScriptContainer.java#L23
NameObjectTags
DescriptionObjectTags are a system put into place by Denizen that make working with things, or 'objects',
in Minecraft and Denizen easier. Many parts of scripts will require some kind of object as an
argument, identifier/type, or such as in world events, part of an event name. The ObjectTags notation
system helps both you and Denizen know what type of objects are being referenced and worked with.

So when should you use ObjectTags? In arguments, event names, replaceable tags, configs, flags, and
more! If you're just a beginner, you've probably been using them without even realizing it!

ObjectTag is a broader term for a 'type' of object that more specifically represents something,
such as a LocationTag or ScriptTag, often times just referred to as a 'location' or 'script'. Denizen
employs many object types that you should be familiar with. You'll notice that many times objects
are referenced with their 'ObjectTag notation' which is in the format of 'x@', the x being the specific
notation of an object type. Example: player objects use the p@ notation, and locations use l@.
This notation is automatically generated when directly displaying objects, or saving them into data files.
It should never be manually typed into a script.

Let's take the tag system, for example. It uses the ObjectTags system pretty heavily. For instance,
every time you use <player.name> or <npc.id>, you're using a ObjectTag, which brings us to a simple
clarification: Why <player.name> and not <PlayerTag.name>? That's because Denizen allows Players,
NPCs and other 'in-context objects' to be linked to certain scripts. In short, <player> already
contains a reference to a specific player, such as the player that died in a world event 'on player dies'.
<PlayerTag.name> is instead the format for documentation, with "PlayerTag" simply indicating 'any player object here'.

ObjectTags can be used to CREATE new instances of objects, too! Though not all types allow 'new'
objects to be created, many do, such as ItemTags. With the use of tags, it's easy to reference a specific
item, say -- an item in the Player's hand -- items are also able to use a constructor to make a new item,
and say, drop it in the world. Take the case of the command/usage '- drop diamond_ore'. The item object
used is a brand new diamond_ore, which is then dropped by the command to a location of your choice -- just
specify an additional location argument.

There's a great deal more to learn about ObjectTags, so be sure to check out each object type for more
specific information. While all ObjectTags share some features, many contain goodies on top of that!
GroupObject System
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/utilities/CommonRegistries.java#L29
NameProcedure Script Containers
DescriptionProcedure script containers are used to define a script that can be ran through a tag.

Generally called via Tag:proc or Tag:proc.context.

The only required key is 'script:'.

Note that procedure scripts must NEVER change external state.
That is, a procedure script cannot change anything at all, ONLY determine a value.
Setting a flag, loading a YAML document, placing a block, etc. are all examples of external changes that are NOT allowed.

This restriction comes from two main reasons:
- Tags run in arbitrary conditions. They may be read asynchronously or in other weird circumstances that can result
in applied changes crashing your server or other unexpected side effects.
- Tags can run for a variety of reasons.
If you were to make a proc script 'spawn_entity' that actually spawns an entity into the world,
you would likely end up with a *lot* of unintentional entity spawns.
Some tags will be read multiple times when theoretically ran once,
in some circumstances a tag read might even be based on user input! (Particularly if you ever make use of the '.parsed' tag,
or the list.parse/filter/sort_by_number tags).
Imagine if for example, a tag can be read when users input a specific custom command,
and a clever user finds out they can type "/testcommand 32 <proc[spawn_entity].context[creeper]>"
to spawn a creeper ... that would be a major problem!
In general, maximum caution is the best for situations like this... simply *never* make a procedure
that executes external changes.


Proc_Script_Name:

    type: procedure

    # Optionally specify definition names to use with the 'context' input of the proc tag.
    definitions: def|names|here

    script:

    # Put any logic, then determine the result.
    - determine 5

GroupScript Container System
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/containers/core/ProcedureScriptContainer.java#L9
NameScript
DescriptionA somewhat vague term used to describe a collection of script entries and other script parts.

For example, 'Hey, check out this script I just wrote!', probably refers to a collection of script entries that make up some kind of script container.
Perhaps it is a NPC Assignment Script Container that provides waypoint functionality, or a world script that implements and keeps track of a new player stat.
'Script' can refer to a single container, as well as a collection of containers that share a common theme.

Scripts that contain a collection of containers are typically kept to a single file.
Multiple containers are permitted inside a single file, but it should be noted that container names are stored on a global level.
That is, naming scripts should be done with care to avoid duplicate script names.
GroupDenizen Scripting Language
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/objects/core/ScriptTag.java#L28
NameScript Event After vs On
DescriptionModern ScriptEvents let you choose between "on" and "after".
An "on" event looks like "on player breaks block:" while an "after" event looks like "after player breaks block:".

An "on" event fires *before* the event actually happens in the world. This means some relevant data won't be updated
(for example, "<context.location.material>" would still show the block type that is going to be broken)
and the result of the event can be changed (eg the event can be cancelled to stop it from actually going through).

An "after" event, as the name implies, fires *after* the event actually happens. This means data will be already updated to the new state
(so "<context.location.material>" would now show air) but could potentially contain an arbitrary new state from unrelated changes
(for example "<context.location.material>" might now show a different block type, or the original one, if the event was changed,
or another thing happened right after the event but before the 'after' event ran).
This also means you cannot affect the outcome of the event at all (you can't cancel it or anything else - the "determine" command does nothing).

See also Language:Safety In Events
GroupScript Events
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/events/ScriptEvent.java#L361
NameScript Syntax
DescriptionThe syntax of Denizen is broken into multiple abstraction layers.

At the highest level, Denizen scripts are stored in script files, which use the '.dsc' suffix

Denizen script syntax is approximately based on YAML configuration files,
and is intended to seem generally as easy to edit as a YAML configuration.
However, several key differences exist between the Denizen script syntax and YAML syntax.
In particular, there are several changes made to support looser syntax rules
and avoid some of the issues that would result from writing code directly into a plain YAML file.

Within those 'script files' are 'script containers', which are the actual unit of separating individual 'scripts' apart.
(Whereas putting containers across different files results in no actual difference:
file and folder separation is purely for your own organization, and doesn't matter to the Denizen parser).
Each script container has a 'type' such as 'task' or 'world' that defines how it functions.

Within a script container are individual script paths, such as 'script:' in a 'task' script container,
or 'on player breaks block:' which might be found within the 'events:' section of a 'world' script container.
These paths are the points that might actually be executed at any given time.
When a path is executed, a 'script queue' is formed to process the contents of that script path.

Within any script path is a list of 'script entries', which are the commands to be executed.
These can be raw commands themselves (like 'narrate') with their arguments,
or commands that contain additional commands within their entry (as 'if' and 'foreach' for example both do).
GroupDenizen Scripting Language
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/objects/core/ScriptTag.java#L54
NameUnique Objects vs Generic Objects
DescriptionThere are a lot of object types in the Denizen object system, and not all of them behave the same way.
It can be useful to separate object types into categories to better understand how objects work, and how Denizen as a whole works.
While there are some hardlined separations, there are also some generalizations that don't necessarily hold exactly, but are still helpful.
One such generalization is the separation between Unique and Generic object types.

A UNIQUE object is the way you might assume all objects are.
Unique objects most notably include EntityTag objects and the derivative NPCTag / PlayerTag objects.
An entity object identifies in a form like 'e@<uuid>', where '<uuid>' is some unique ID that looks something like 'abc123-4d5e6f'.
This ID is randomly generated by the Minecraft server and is used to identify that one entity in the world separately from any other.
'e@abc123' is not "a creeper" to the engine, it is "that specific creeper over there".
An object that is unique must have some way to specify the exact single instance of it in the world, like the UUID used by entities.

A GENERIC object can be said to be a 'description' of a unique object.
A generic form of an EntityTag might look like 'e@creeper'.
Instead of "that specific creeper over there", it is instead "the concept of a creeper mob".
There is no way for the engine to read only the word 'creeper' and find out which specific creeper in the world it came from...
it could be any of them, there's often hundreds of creepers spawned somewhere in the world at any time.
Objects like items and materials are always generic. There is no unique identifier for any item, there is only the description.
An item usually looks something like 'i@stick'.
ItemTag objects can include more detail, like 'i@stick[lore=hi;display_name=My Stick;enchantments=[sharpness=5]]'...
but this is still just a description, and there could still be many items out there that match this description.

The consequences of this mostly relate to:
- How you adjust an object (eg change the lore of an item, or teleport an entity).
For example: you can't teleport the generic concept of a creeper, but you can certainly teleport a specific single creeper in the world.
- How reliable tags on the object are.
For example: the result of 'ItemTag.lore' on the item 'i@stick[lore=hi]' will always be 'hi' (because ItemTags are generic),
but the result of 'EntityTag.location' on the entity 'e@abc123' will change every tick as the entity moves,
or even become invalid if the entity dies (because that EntityTag is unique).

Here's where the separation gets muddy:
First, as mentioned, an EntityTag can either be unique ('e@abc123', 'n@42', etc.) OR generic ('e@creeper', 'e@zombie[custom_name=Bob]', etc).
Second, some object types exhibit a bit of both.

For example, a LocationTag refers to a unique block in the world (like, 'l@1,2,3,world' is always that specific block at that position),
but also is a generic object in terms of the location object itself - if for example you want to change the angle of a location,
you have to essentially 'create' a new location, that is an exact copy of the previous one but with a new yaw or pitch value.
GroupObject System
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/objects/ObjectTag.java#L43
NameVirtual Inventories
DescriptionVirtual inventories are inventories that have no attachment to anything within the world of Minecraft.
They can be used for a wide range of purposes - from looting fallen enemies to serving as interactive menus with item 'buttons'.

In Denizen, all noted inventories (saved by the Note command) are automatically converted into a virtual copy of the saved inventory.
This enables you to open and edit the items inside freely, with automatic saving, as if it were a normal inventory.

Noting is not the only way to create virtual inventories, however.
Using 'generic' along with inventory properties will allow you to create temporary custom inventories to do with as you please.
The properties that can be used like this are:

size=<size>
contents=<item>|...
title=<title>
holder=<inventory type>

For example, the following task script opens a virtual inventory with 18 slots,
where the second slot is a snowball, all the rest are empty, and the title is "My Awesome Inventory" with some colors in it.

open random inventory:
  type: task
  script:
  - inventory open "d:generic[size=18;title=<red>My <green>Awesome <blue>Inventory;contents=air|snowball]"
GroupInventory System
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/InventoryCommand.java#L65

Mechanism


Nameregenerate
ObjectChunkTag
InputNone
DescriptionCauses the chunk to be entirely deleted and reformed from the world's seed.
At time of writing this method only works as expected on Paper, and will error on Spigot.
Example
- adjust <player.location.chunk> regenerate
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java#L889
Nameauto_expire
ObjectEntityTag
InputElementTag(Boolean)
Related Tags<EntityTag.auto_expire> Returns whether a falling_block will auto-expire (after 30 seconds, or 5 when outside the world). (...)
DescriptionSets whether a falling_block will auto-expire (after 30 seconds, or 5 when outside the world).
See also Mechanism:EntityTag.time_lived
Generated Example
- adjust <player> auto_expire:true
Groupproperties
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/EntityAutoExpire.java#L76
Nameexplored_locations
ObjectEntityTag
InputListTag(LocationTag)
Related Tags<EntityTag.explored_locations> (Property) Returns a sniffer's explored locations.
Description(Property) Sets a sniffer's explored locations.
Note that if the sniffer is not in the same world as the input LocationTag(s), then the LocationTag(s) will not be added to the list of explored locations.
GroupProperties
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/properties/entity/EntityExploredLocations.java#L11
Nameleft_shoulder
ObjectEntityTag
InputEntityTag
Related Tags<EntityTag.left_shoulder> Returns the entity on the entity's left shoulder. (...)
DescriptionSets the entity's left shoulder entity.
Only applies to player-typed entities.
Provide no input to remove the shoulder entity.
NOTE: This mechanism will remove the current shoulder entity from the world.
Also note the client will currently only render parrot entities.
Generated Example
- adjust <player> left_shoulder:<npc>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java#L3667
Nameright_shoulder
ObjectEntityTag
InputEntityTag
Related Tags<EntityTag.right_shoulder> Returns the entity on the entity's right shoulder. (...)
DescriptionSets the entity's right shoulder entity.
Only applies to player-typed entities.
Provide no input to remove the shoulder entity.
NOTE: This mechanism will remove the current shoulder entity from the world.
Also note the client will currently only render parrot entities.
Generated Example
- adjust <player> right_shoulder:<player>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java#L3691
Namefull_render
ObjectItemTag
InputElementTag
Related Tags<ItemTag.map> Returns the ID number of the map item's map.
<ItemTag.map_scale> Returns the scale of the map, from 0 (smallest) to 4 (largest).
DescriptionFully renders all or part of a map item's view of the world.
Be warned that this can run very slowly on large maps.
Input can be nothing to render the full map, or a comma separated set of integers to render part of the map, in format x1,z1,x2,z2.
Input numbers are pixel indices within the map image - so, any integer from 0 to 128.
The input for a full map render would be 0,0,128,128.
Example
# Use to render sections slowly (to reduce server impact):
- repeat 16 as:x:
    - adjust <item[filled_map[map=4]]> full_render:<[x].sub[1].mul[8]>,0,<[x].mul[8]>,128
    - wait 2t
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/properties/item/ItemMap.java#L167
Namefake_op_level
ObjectPlayerTag
InputElementTag(Number)
DescriptionSends a fake operator level to the client, enabling clientside op-required features like the debug gamemode hotkey (F3+F4).
Input should be a number from 0 to 4, 0 indicating not op and 4 indicating maximum level op.
The input number value corresponds to "op-permission-level" in the server.properties. See also 🔗https://minecraft.wiki/w/Permission_level
This will be reset when a player rejoins, changes world, has their real op status changed, ...
Generated Example
- adjust <player> fake_op_level:1
Grouppaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperPlayerExtensions.java#L134
Nameredirect_logging
Objectsystem
InputElementTag(Boolean)
DescriptionTells the server to redirect logging to a world event or not.
Note that this redirects *all console output* not just Denizen output.
Note: don't enable /denizen debug -e while this is active.
Requires config file setting "Debug.Allow console redirection"!
Example
- adjust system redirect_logging:true
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/tags/core/UtilTagBase.java#L1005

ObjectType


NameAreaObject
PrefixNone
Identity FormatN/A
Description"AreaObject" is a pseudo-ObjectType that represents any object that indicates a world-space area, such as a CuboidTag.
MatchableAreaObject matchers (applies to CuboidTag, EllipsoidTag, PolygonTag, ...), sometimes identified as "<area>":
"cuboid" plaintext: matches if the area is a CuboidTag.
"ellipsoid" plaintext: matches if the area is an EllipsoidTag.
"polygon" plaintext: matches if the area is a PolygonTag.
"area_flagged:<flag>": a Flag Matchable for AreaObject flags.
Area note name: matches if the AreaObject's note name matches the given advanced matcher.
Extended ByCuboidTag, EllipsoidTag, PolygonTag
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/AreaContainmentObject.java#L28
NameBiomeTag
Prefixb@
Base TypeElementTag
ImplementsFlaggableObject
Identity FormatThe identity format for biomes is a world name, then a comma, then the biome key. For example: 'hub,desert', or 'space,minecraft:desert'.
DescriptionA BiomeTag represents a world biome type. Vanilla biomes are globally available, however some biomes are world-specific when added by datapacks.

A list of all vanilla biomes can be found at 🔗https://minecraft.wiki/w/Biome#Biome_IDs.

BiomeTags without a specific world will work as though they are in the server's default world.

This object type is flaggable.
Flags on this object type will be stored in the server saves file, under special sub-key "__biomes"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/BiomeTag.java#L33
NameChunkTag
Prefixch@
Base TypeElementTag
ImplementsFlaggableObject
Identity FormatThe identity format for chunks is <x>,<z>,<world>
For example, 'ch@5,3,world'.
DescriptionA ChunkTag represents a chunk in the world.

Note that the X/Z pair are chunk coordinates, not block coordinates.
To convert from block coordinates to chunk coordinates, divide by 16 and round downward.
Note that negative chunks are one unit lower than you might expect.
To understand why, simply look at chunks on a number line...
x x x x x
-2 -1 b 0 a 1 2
The block 'a' at block position '1' is in chunk '0', but the block 'b' at block position '-1' is in chunk '-1'.
As otherwise (if 'b' was in chunk '0'), chunk '0' would be double-wide (32 blocks wide instead of the standard 16).

For example, block at X,Z 32,67 is in the chunk at X,Z 2,4
And the block at X,Z -32,-67 is in the chunk at X,Z -2,-5

This object type is flaggable.
Flags on this object type will be stored in the chunk file inside the world folder.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java#L33
NameCuboidTag
Prefixcu@
Base TypeElementTag
ImplementsFlaggableObject, AreaObject
Identity FormatThe identity format for cuboids is <world>,<x1>,<y1>,<z1>,<x2>,<y2>,<z2>
Multi-member cuboids can simply continue listing x,y,z pairs.
For example, 'cu@space,1,2,3,4,5,6'.
DescriptionA CuboidTag represents a cuboidal region in the world.

The word 'cuboid' means a less strict cube.
Basically: a "cuboid" is to a 3D "cube" what a "rectangle" is to a 2D "square".

One 'cuboid' consists of two points: the low point and a high point.
a CuboidTag can contain as many cuboids within itself as needed (this allows forming more complex shapes from a single CuboidTag).

Note that the coordinates used are inclusive, meaning that a CuboidTag always includes the blocks identified as the low and high corner points.
This means for example that a cuboid from "5,5,5" to "5,5,5" will contain one full block, and have a size of "1,1,1".

This object type can be noted.

This object type is flaggable when it is noted.
Flags on this object type will be stored in the notables.yml file.
MatchableRefer to ObjectType:areaobject's matchable list.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/CuboidTag.java#L35
NameEllipsoidTag
Prefixellipsoid@
Base TypeElementTag
ImplementsFlaggableObject, AreaObject
Identity FormatThe identity format for ellipsoids is <x>,<y>,<z>,<world>,<x-radius>,<y-radius>,<z-radius>
For example, 'ellipsoid@1,2,3,space,7,7,7'.
DescriptionAn EllipsoidTag represents an ellipsoidal region in the world.

The word 'ellipsoid' means a less strict sphere.
Basically: an "ellipsoid" is to a 3D "sphere" what an "ellipse" (or "oval") is to a 2D "circle".

This object type can be noted.

This object type is flaggable when it is noted.
Flags on this object type will be stored in the notables.yml file.
MatchableRefer to ObjectType:areaobject's matchable list.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/EllipsoidTag.java#L29
NameEntityTag
Prefixe@
Base TypeElementTag
ImplementsFlaggableObject, PropertyHolderObject
Identity FormatThe identity format for entities is a spawned entity's UUID, or an entity type.
For example, 'e@abc123' or 'e@zombie'.
DescriptionAn EntityTag represents a spawned entity, or a generic entity type.

Note that players and NPCs are valid EntityTags, but are generally represented by the more specific
PlayerTag and NPCTag objects.

Note that a spawned entity can be a living entity (a player, NPC, or mob) or a nonliving entity (a painting, item frame, etc).

This object type is flaggable.
Flags on this object type will be stored in the world chunk files as a part of the entity's NBT.
MatchableEntityTag matchers, sometimes identified as "<entity>", "<projectile>", or "<vehicle>":
"entity" plaintext: always matches.
"player" plaintext: matches any real player (not NPCs).
"npc" plaintext: matches any Citizens NPC.
"vehicle" plaintext: matches for any vehicle type (minecarts, boats, horses, etc).
"fish" plaintext: matches for any fish type (cod, pufferfish, etc).
"projectile" plaintext: matches for any projectile type (arrow, trident, fish hook, snowball, etc).
"hanging" plaintext: matches for any hanging type (painting, item_frame, etc).
"monster" plaintext: matches for any monster type (creepers, zombies, etc).
"animal" plaintext: matches for any animal type (pigs, cows, etc).
"mob" plaintext: matches for any mob type (creepers, pigs, etc).
"living" plaintext: matches for any living type (players, pigs, creepers, etc).
"vanilla_tagged:<tag_name>": matches if the given vanilla tag applies to the entity. Allows advanced matchers, for example: "vanilla_tagged:axolotl_*".
"entity_flagged:<flag>": a Flag Matchable for EntityTag flags.
"player_flagged:<flag>": a Flag Matchable for PlayerTag flags (will never match non-players).
"npc_flagged:<flag>": a Flag Matchable for NPCTag flags (will never match non-NPCs).
"npc_<type>": matches if the NPC is the given entity type (like "npc_cow" or "npc_mob" or "npc_player").
Any entity type name: matches if the entity is of the given type, using advanced matchers.
Extended ByNPCTag, PlayerTag
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java#L68
NameFlaggableObject
PrefixNone
Identity FormatN/A
Description"FlaggableObject" is a pseudo-ObjectType that represents any type of object that can hold flags,
for use with Command:flag or any other flag related tags and mechanisms.

Just because an ObjectType implements FlaggableObject, does not mean a specific instance of that object type is flaggable.
For example, LocationTag implements FlaggableObject, but a LocationTag-Vector (a location without a world) cannot hold a flag.
Extended ByGriefPreventionClaimTag, NationTag, TownTag, DiscordBotTag, DiscordChannelTag, DiscordCommandTag, DiscordGroupTag, DiscordInteractionTag, DiscordMessageTag, DiscordReactionTag, DiscordRoleTag, DiscordUserTag, BiomeTag, ChunkTag, CuboidTag, EllipsoidTag, EnchantmentTag, EntityTag, InventoryTag, ItemTag, LocationTag, MaterialTag, NPCTag, PlayerTag, PluginTag, PolygonTag, WorldTag, QueueTag, ScriptTag, TimeTag
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/flags/FlaggableObject.java#L7
NameInventoryTag
Prefixin@
Base TypeElementTag
ImplementsFlaggableObject, PropertyHolderObject
Identity FormatThe identity format for inventories is the classification type of inventory to use. All other data is specified through properties.
DescriptionAn InventoryTag represents an inventory, generically or attached to some in-the-world object.

Inventories can be generically designed using inventory script containers,
and can be modified using the inventory command.

Valid inventory type classifications:
"npc", "player", "crafting", "enderchest", "workbench", "entity", "location", "generic"

This object type can be noted.

This object type is flaggable when it is noted.
Flags on this object type will be stored in the notables.yml file.
MatchableInventoryTag matchers, sometimes identified as "<inventory>":
"inventory" plaintext: always matches.
"note" plaintext: matches if the inventory is noted.
Inventory script name: matches if the inventory comes from an inventory script of the given name, using advanced matchers.
Inventory note name: matches if the inventory is noted with the given name, using advanced matchers.
Inventory type: matches if the inventory is of a given type, using advanced matchers.
"inventory_flagged:<flag>": a Flag Matchable for InventoryTag flags.
"gui" plaintext: matches if the inventory is a GUI (see Language:inventory script containers).
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/InventoryTag.java#L59
NameLocationTag
Prefixl@
Base TypeElementTag
ImplementsFlaggableObject, VectorObject
Identity FormatThe identity format for locations is <x>,<y>,<z>,<pitch>,<yaw>,<world>
Note that you can leave off the world, and/or pitch and yaw, and/or the z value.
You cannot leave off both the z and the pitch+yaw at the same time.
For example, 'l@1,2.15,3,45,90,space' or '[email protected],99,3.2'
DescriptionA LocationTag represents a point in the world.

Note that 'l' prefix is a lowercase 'L', the first letter in 'location'.

This object type is flaggable.
Flags on this object type will be stored in the chunk file inside the world folder.
MatchableLocationTag matchers, sometimes identified as "<location>" or "<block>":
"location" plaintext: always matches.
"block_flagged:<flag>": a Flag Matchable for location flags at the given block location.
"location_in:<area>": runs AreaObject checks, as defined below.
If none of the above are used, and the location is at a real block, a MaterialTag matchable is used. Refer to ObjectType:MaterialTag matchable list.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L65
NameMobArenaArenaTag
Prefixmobarena@
Base TypeElementTag
Identity FormatThe identity format for arenas is <arena_name>
For example, 'mobarena@my_arena'.
DescriptionA MobArenaArenaTag represents a mob arena in the world.
RequiresDepenizen, MobArena
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/mobarena/MobArenaArenaTag.java#L18
NameMythicMobsMobTag
Prefixmythicmob@
Base TypeElementTag
Identity FormatThe identity format for MythicMobsMobTag is <uuid>
For example, 'mythicmob@1234-1234-1234'.
DescriptionA MythicMobsMobTag represents a Mythic mob entity in the world.
RequiresDepenizen, MythicMobs
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/mythicmobs/MythicMobsMobTag.java#L31
NameMythicSpawnerTag
Prefixmythicspawner@
Base TypeElementTag
Identity FormatThe identity format for a MythicSpawner is its name.
For example, 'mythicspawner@AngrySludgeSpawner1'.
DescriptionA MythicSpawnerTag represents a MythicMobs spanwer in the world.
RequiresDepenizen, MythicMobs
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/mythicmobs/MythicSpawnerTag.java#L28
NamePlotSquaredPlotTag
Prefixplotsquaredplot@
Base TypeElementTag
Identity FormatThe identity format for plots is <x>,<z>,<world>
For example, 'plotsquaredplot@5,10,Hub'.
DescriptionA PlotSquaredPlotTag represents a PlotSquared plot in the world.
RequiresDepenizen, PlotSquared
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/plotsquared/PlotSquaredPlotTag.java#L25
NamePolygonTag
Prefixpolygon@
Base TypeElementTag
ImplementsFlaggableObject, AreaObject
Identity FormatThe identity format for polygons is <world>,<y-min>,<y-max>,<x1>,<z1>,... (the x,z pair repeats for as many points as the polygon has).
DescriptionA PolygonTag represents a polygonal region in the world.

The word 'polygon' means an arbitrary 2D shape.
PolygonTags, in addition to a 2D polygon, contain a minimum and maximum Y coordinate, to allow them to function in 3D.

PolygonTags are NOT polyhedra.

A PolygonTag with 4 points at right angles would cover an area also possible to be defined by a CuboidTag, however all other shapes a PolygonTag can form are unique.

Compared to CuboidTags, PolygonTags are generally slower to process and more complex to work with, but offer the benefit of supporting more intricate shapes.

Note that forming invalid polygons (duplicate corners, impossible shapes, etc) will not necessarily give any error message, and may cause weird results.

This object type can be noted.

This object type is flaggable when it is noted.
Flags on this object type will be stored in the notables.yml file.
MatchableRefer to ObjectType:areaobject's matchable list.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PolygonTag.java#L29
NamePVPArenaArenaTag
Prefixpvparena@
Base TypeElementTag
Identity FormatThe identity format for arenas is <arena_name>
For example, 'pvparena@myarena'.
DescriptionA PVPArenaArenaTag represents a PvP Arena in the world.
RequiresDepenizen, PvPArena
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/pvparena/PVPArenaArenaTag.java#L17
NameResidenceTag
Prefixresidence@
Base TypeElementTag
Identity FormatThe identity format for residences is just the name.
For example, 'residence@myresidence'.
DescriptionA ResidenceTag represents a Residence in the world.
MatchableResidenceTag matchers, sometimes identified as "<residence>":
"residence" plaintext: always matches.
Residence name: matches if the residence is named matches the input, using advanced matchers.
RequiresDepenizen, Residence
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/residence/ResidenceTag.java#L24
NameShopKeeperTag
Prefixshopkeeper@
Base TypeElementTag
Identity FormatThe identity format for shopkeepers is <uuid>
For example, 'shopkeeper@1234-1234-1234'.
DescriptionA ShopKeeperTag represents a ShopKeeper entity in the world.
RequiresDepenizen, Shopkeepers
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/shopkeepers/ShopKeeperTag.java#L26
NameTimeTag
Prefixtime@
Base TypeElementTag
ImplementsFlaggableObject
Identity FormatThe identity format for TimeTags is "yyyy/mm/dd_hh:mm:ss:mill_offset"
So, for example, 'time@2020/05/23_02:20:31:123_-07:00'
DescriptionA TimeTag represents a real world date/time value.

TimeTags can also be constructed from 'yyyy/mm/dd', 'yyyy/mm/dd_hh:mm:ss', or 'yyyy/mm/dd_hh:mm:ss:mill'.
(Meaning: the offset is optional, the milliseconds are optional, and the time-of-day is optional,
but if you exclude an optional part, you must immediately end the input there, without specifying more).

This object type is flaggable.
Flags on this object type will be stored in the server saves file, under special sub-key "__time"
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/objects/core/TimeTag.java#L25
NameTownTag
Prefixtown@
Base TypeElementTag
ImplementsFlaggableObject
Identity FormatThe identity format for towns is <town_uuid>
For example, 'town@123-abc'.
DescriptionA TownTag represents a Towny town in the world.

This object type is flaggable.
Flags on this object type will be stored in the server saves file, under special sub-key "__depenizen_towny_towns_uuid"
RequiresDepenizen, Towny
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/towny/TownTag.java#L29

Tag


Name<BiomeTag.downfall_at[<location>]>
ReturnsElementTag
DescriptionReturns this biome's downfall type at a location (for when a world has weather).
This can be RAIN, SNOW, or NONE.
Generally Tag:LocationTag.downfall_type should be preferred, other than some special cases.
Example
# Tells the linked player what the downfall type at their location is.
- narrate "The downfall type at your location is: <player.location.biome.downfall_at[<player.location>]>!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/BiomeTag.java#L307
Name<BiomeTag.downfall_type>
ReturnsElementTag
MechanismBiomeTag.downfall_type
DescriptionDeprecated in favor of Tag:BiomeTag.downfall_at on 1.19+, as downfall is block-specific now.
Returns this biome's downfall type for when a world has weather.
This can be RAIN, SNOW, or NONE.
Example
# In a plains biome, this fills with 'RAIN'.
- narrate "The downfall type in plains biomes is: <biome[plains].downfall_type>!"
DeprecatedMinecraft changed the way biome downfall works, use Tag:BiomeTag.downfall_at on 1.19+.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/BiomeTag.java#L168
Name<BiomeTag.temperature_at[<location>]>
ReturnsElementTag(Decimal)
DescriptionReturns the temperature of a specific location in this biome.
If this is less than 0.15, snow will form on the ground when weather occurs in the world and a layer of ice will form over water.
Generally Tag:LocationTag.temperature should be preferred, other than some special cases.
Example
# Gives the player water if they are standing in a warm location.
- if <player.location.biome.temperature_at[<player.location]> > 0.5:
  - give water_bucket
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/BiomeTag.java#L291
Name<ChunkTag.simple>
ReturnsElementTag
DescriptionReturns the X,Z coordinates and world name of the chunk in the format "X,Z,world".
Example
# Narrates the player's chunk's X,Z,World coordinates.
# For example, if the player was in <chunk[5,10,world]>, this will be "5,10,world"
- narrate "Your current chunk is: <player.location.chunk.simple>!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/ChunkTag.java#L448
Name<ElementTag.after[<element>]>
ReturnsElementTag
DescriptionReturns the portion of an element after the first occurrence of a specified element.
For example: HelloWorld .after[Hello] returns World.
Groupelement manipulation
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/objects/core/ElementTag.java#L1192
Name<ElementTag.regex[<regex>].group[<group>]>
ReturnsElementTag
DescriptionReturns the specific group from a regex match.
Specify group 0 for the whole match.
For example, <element[hello5world].regex[.*(\d).*].group[1]> returns '5'.
Groupelement checking
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/objects/core/ElementTag.java#L975
Name<EllipsoidTag.include[<location>]>
ReturnsEllipsoidTag
DescriptionReturns a copy of this ellipsoid, with the size value adapted to include the specified world location.
Example
# Expands "my_ellipsoid" to include the player's location and notes it as "my_new_ellipsoid".
# For example, if "my_ellipsoid" has a location of "5,5,5" and a size of "8,8,8",
# and the player had a location of 20,22,24, then "my_new_ellipsoid" will have a location of
# "5,5,5" and a size of "26,29,33" (rounded).
- note <ellipsoid[my_ellipsoid].include[<player.location>]> as:my_new_ellipsoid
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/EllipsoidTag.java#L480
Name<EntityTag.auto_expire>
ReturnsElementTag(Boolean)
MechanismEntityTag.auto_expire
DescriptionReturns whether a falling_block will auto-expire (after 30 seconds, or 5 when outside the world).
See also Tag:EntityTag.time_lived
Generated Example
- if <player.auto_expire>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Groupproperties
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/EntityAutoExpire.java#L39
Name<EntityTag.collides_at[<location>]>
ReturnsElementTag(Boolean)
DescriptionReturns whether the entity's bounding box would collide if the entity was moved to the given location.
This checks for any colliding entities (like boats and shulkers), the world border and regular blocks.
(Note that this won't load chunks at the location.)
Generated Example
- if <player.collides_at[<player.location>]>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Grouppaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperEntityExtensions.java#L146
Name<EntityTag.last_attack>
ReturnsMapTag
DescriptionReturns an interaction entity's last attack interaction, if any.
The returned map contains:
- 'player' (PlayerTag): the player who interacted
- 'duration' (DurationTag): the amount of time since the interaction. Note that this is a delta time (same limitations as Event:delta time), and may become inaccurate if the interaction entity changes worlds.
- 'raw_game_time' (ElementTag(Number)): the raw game time the interaction occurred at, used to calculate the time above.
Generated Example
- foreach <player.last_attack> key:key as:val:
    - narrate "<[key]> is set as <[val]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java#L2892
Name<EntityTag.last_interaction>
ReturnsMapTag
DescriptionReturns an interaction entity's last right click interaction, if any.
The returned map contains:
- 'player' (PlayerTag): the player who interacted
- 'duration' (DurationTag): the amount of time since the interaction. Note that this is a delta time (same limitations as Event:delta time), and may become inaccurate if the interaction entity changes worlds.
- 'raw_game_time' (ElementTag(Number)): the raw game time the interaction occurred at, used to calculate the time above.
Generated Example
- foreach <player.last_interaction> key:key as:val:
    - narrate "<[key]> is set as <[val]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java#L2910
Name<EntityTag.left_shoulder>
ReturnsEntityTag
MechanismEntityTag.left_shoulder
DescriptionReturns the entity on the entity's left shoulder.
Only applies to player-typed entities.
NOTE: The returned entity will not be spawned within the world,
so most operations are invalid unless the entity is first spawned in.
Generated Example
- heal <player.left_shoulder>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java#L1784
Name<EntityTag.right_shoulder>
ReturnsEntityTag
MechanismEntityTag.right_shoulder
DescriptionReturns the entity on the entity's right shoulder.
Only applies to player-typed entities.
NOTE: The returned entity will not be spawned within the world,
so most operations are invalid unless the entity is first spawned in.
Generated Example
- heal <player.right_shoulder>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java#L1805
Name<ItemTag.map_center>
ReturnsLocationTag
MechanismItemTag.map_center
DescriptionReturns the center location on the map's display.
Note that there is no Y value (it's always 0), only X, Z, and a World.
Generated Example
- teleport <player> <player.item_in_hand.map_center>
Groupproperties
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/properties/item/ItemMap.java#L99
Name<LocationTag.downfall_type>
ReturnsElementTag
DescriptionReturns a location's downfall type (for when a world has weather), based on the biome it's in.
This can be RAIN, SNOW, or NONE.
See also Tag:BiomeTag.downfall_at.
Example
# Tells the linked player what the downfall type at their location is.
- narrate "The downfall type at your location is: <player.location.downfall_type>!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4268
Name<LocationTag.format[<format>]>
ReturnsElementTag
DescriptionFormats a LocationTag according to a specified format input.
You can request x, y, z, yaw, or pitch as full "f", short "s", or block "b" format.
eg "fx" for "full X coordinate" (like 1.051234), "syaw" for "short yaw" (like 1.03), or "bz" for "block Z coordinate" (like 1).
"world" is also available to get the world name.
If "$" is in the format, only codes prefixed with "$" will be replaced, eg "$bx but not bx" will become "5 but not bx" (allowing the safe use of unpredictable text inside the format block).
Example
# This example does a simple format, like "1, 2, 3".
- narrate "You are at <player.location.format[bx, by, bz]>"
Example
# This example adds colors, uses the "$" prefix to be safe from bugs, and formats like "You are at y = 32 in Space".
- narrate "<&[base]>You are at <player.location.format[y = <&[emphasis]>$by <&[base]>in <&[emphasis]>$world]>"
Groupidentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3151
Name<LocationTag.formatted.citizens>
ReturnsElementTag
DescriptionReturns the location formatted for a Citizens command.
In the format: x.x:y.y:z.z:world
For example: 1.0:2.0:3.0:world_nether
Groupidentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3188
Name<LocationTag.formatted>
ReturnsElementTag
DescriptionReturns the formatted version of the LocationTag.
In the format: X 'x.x', Y 'y.y', Z 'z.z', in world 'world'
For example: X '1.0', Y '2.0', Z '3.0', in world 'world_nether'
Generated Example
- narrate <player.location.formatted>
Groupidentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L3178
Name<LocationTag.simple.formatted>
ReturnsElementTag
DescriptionReturns the formatted simple version of the LocationTag's block coordinates.
In the format: X 'x', Y 'y', Z 'z', in world 'world'
For example, X '1', Y '2', Z '3', in world 'world_nether'
Groupidentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1703
Name<LocationTag.simple>
ReturnsElementTag
DescriptionReturns a simple version of the LocationTag's block coordinates.
In the format: x,y,z,world
For example: 1,2,3,world_nether
Generated Example
- narrate <player.location.simple>
Groupidentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L1693
Name<LocationTag.temperature>
ReturnsElementTag(Decimal)
DescriptionReturns a location's temperature, based on the biome it's in.
If this is less than 0.15, snow will form on the ground when weather occurs in the world and a layer of ice will form over water.
See also Tag:BiomeTag.temperature_at.
Example
# Gives the player water if they are standing in a warm location.
- if <player.location.temperature> > 0.5:
  - give water_bucket
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/LocationTag.java#L4251
Name<NPCTag.pose[<name>]>
ReturnsLocationTag
DescriptionReturns the pose as a LocationTag with x, y, and z set to 0, and the world set to the first
possible available world Bukkit knows about.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/NPCTag.java#L667
Name<PlayerTag.has_permission[permission.node].global>
ReturnsElementTag(Boolean)
DescriptionReturns whether the player has the specified node, regardless of world.
(Works with offline players)
(Note: this may or may not be functional with your permissions system.)
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java#L1319
Name<PlayerTag.in_group[<group_name>].global>
ReturnsElementTag(Boolean)
DescriptionReturns whether the player has the group with no regard to the
player's current world.
(Works with offline players)
(Note: This may or may not be functional with your permissions system.)
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java#L1260
Name<PlayerTag.time>
ReturnsElementTag(Number)
DescriptionReturns the time the player is currently experiencing.
This time could differ from the time that the rest of the world is currently experiencing if Command:time is being used on the player.
Generated Example
- narrate "the number value is <player.time>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java#L2154
Name<PlayerTag.view_distance>
ReturnsElementTag(Number)
MechanismPlayerTag.view_distance
DescriptionReturns this player's view distance, or the view distance of the world they're in if unset.
Generated Example
- narrate "the number value is <player.view_distance>"
Grouppaper
RequiresPaper
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/paper/src/main/java/com/denizenscript/denizen/paper/properties/PaperPlayerExtensions.java#L82
Name<PlayerTag.we_brush_info[(<item>)]>
ReturnsListTag
DescriptionReturns information about a player's current brush for an item.
If no item is specified, will be based on their held item.
Output is in format: type|size|range|material

Note that some values may be listed as "unknown" or strange values due to WorldEdit having a messy API (no way to automatically stringify brush data).
Generated Example
- foreach <player.we_brush_info> as:entry:
    - narrate "found <[entry]>"
RequiresDepenizen, WorldEdit
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldedit/WorldEditPlayerProperties.java#L81
Name<PlayerTag.weather>
ReturnsElementTag
DescriptionReturns the type of weather the player is experiencing. This will be different
from the weather currently in the world that the player is residing in if
the weather is currently being forced onto the player.
Returns null if the player does not currently have any forced weather.
Generated Example
- narrate <player.weather>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java#L2165
Name<PolygonTag.blocks_inclusive[(<matcher>)]>
ReturnsListTag(LocationTag)
DescriptionReturns each block location within the polygon.
Optionally, specify a material matcher to only return locations with that block type.
Uses block-inclusive containment: contains a wider section of blocks along the edge (this mode is equivalent to WorldEdit's block selection).
Example
# Displays a debugblock at each block of wool contained within the polygon "my_polygon".
- debugblock <polygon[my_polygon].blocks_inclusive[*wool]>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PolygonTag.java#L875
Name<PolygonTag.contains_inclusive[<location>]>
ReturnsElementTag(Boolean)
DescriptionReturns a boolean indicating whether the specified location is inside this polygon.
Uses block-inclusive containment: contains a wider section of blocks along the edge (this mode is equivalent to WorldEdit's block selection).
Example
- if <polygon[my_polygon].contains_inclusive[<player.location>]>:
    - narrate "The player's location is contained within the polygon!"
- else:
    - narrate "The player's location is not contained within the polygon!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PolygonTag.java#L859
Name<PolygonTag.shell_inclusive>
ReturnsListTag(LocationTag)
DescriptionReturns each block location on the 3D outer shell of the polygon.
Uses block-inclusive containment: contains a wider section of blocks along the edge (this mode is equivalent to WorldEdit's block selection).
Example
# Plays the "flame" effect at the outer 3D shell of the polygon "my_polygon".
- playeffect effect:flame at:<polygon[my_polygon].shell_inclusive> offset:0.0
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/objects/PolygonTag.java#L901
Name<region[<region>]>
ReturnsWorldGuardRegionTag
DescriptionReturns a WorldGuard region object constructed from the input value.
Refer to ObjectType:WorldGuardRegionTag.
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/bridges/WorldGuardBridge.java#L33
Name<ScriptTag.container_type>
ReturnsElementTag
DescriptionReturns the type of script container that is associated with this ScriptTag object. For example: 'task', or
'world'.
Generated Example
- narrate <script.container_type>
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/objects/core/ScriptTag.java#L234
Name<server.generate_loot_table[id=<id>;location=<location>;(killer=<entity>);(entity=<entity>);(loot_bonus=<#>/{-1});(luck=<#.#>/{0})]>
ReturnsListTag(ItemTag)
DescriptionReturns a list of items from a loot table, given a map of input data.
Required input: id: the loot table ID, location: the location where it's being generated (LocationTag).
Optional inputs: killer: an online player (or player-type NPC) that is looting, entity: a dead entity being looted from (a valid EntityTag instance that is or was spawned in the world),
loot_bonus: the loot bonus level (defaults to -1) as an integer number, luck: the luck potion level (defaults to 0) as a decimal number.

Some inputs will be strictly required for some loot tables, and ignored for others.

A list of valid loot tables can be found here: 🔗https://minecraft.wiki/w/Loot_table#List_of_loot_tables
Note that the tree view represented on the wiki should be split by slashes for the input - for example, "cow" is under "entities" in the tree so "entities/cow" is how you input that.
CAUTION: Invalid loot table IDs will generate an empty list rather than an error.
Example
- give <server.generate_loot_table[id=chests/spawn_bonus_chest;killer=<player>;location=<player.location>]>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java#L1786
Name<server.material_types>
ReturnsListTag(MaterialTag)
DescriptionReturns a list of all materials known to the server.
Generally used with ObjectType:MaterialTag.
This is only types listed in the Bukkit Material enum, as seen at 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html.
Note: Some materials might be disabled in specific worlds, check using Tag:MaterialTag.is_enabled.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java#L803
Name<ShopKeeperTag.is_active>
ReturnsElementTag(Boolean)
DescriptionReturns whether the Shopkeeper is active (has been spawned and is still valid and present in the world).
RequiresDepenizen, ShopKeepers
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/shopkeepers/ShopKeeperTag.java#L108
Name<TownTag.cuboids>
ReturnsListTag(CuboidTag)
DescriptionReturns a list of plot cuboids claimed by the town.
Note that the cuboids may be in separate worlds if the town has outposts.
RequiresDepenizen, Towny
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/objects/towny/TownTag.java#L506
Name<VectorObject.xyz>
ReturnsElementTag
DescriptionReturns the basic vector in "x,y,z" format.
For example: 1,2,3
Other values, such as world, yaw, and pitch will be excluded from this output.
Generated Example
- narrate <location[1,2,3].xyz>
Groupidentity
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/objects/core/VectorObject.java#L110

Just Barely Matched Results



Command


NameAdjustBlock
Related Guide Pagehttps://guide.denizenscript.com/guides/basics/mechanisms.html
Syntaxadjustblock [<location>|...] [<mechanism>](:<value>) (no_physics)
Short DescriptionAdjusts a mechanism on the material of a block at the location.
Full DescriptionAdjusts a mechanism on the material of a block at the location.
That is, an equivalent to Command:adjust, but that directly applies a "MaterialTag" mechanism onto a block.

Input a location or list of locations, and the mechanism to apply.

Use the "no_physics" argument to indicate that the change should not apply a physics update.
If not specified, physics will apply to the block and nearby blocks.
Related Tags<LocationTag.material> Returns the material of the block at the location.
Usage Example
# Use to put snow on the block at the player's feet.
- adjustblock <player.location.below> snowy:true
Usage Example
# Use to switch on the lever that the player is looking at, without actually providing redstone power.
- adjustblock <player.cursor_on> switched:true no_physics
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/AdjustBlockCommand.java#L30
NameAdvancement
Syntaxadvancement [id:<name>] (delete/grant:<players>/revoke:<players>/{create}) (parent:<name>) (icon:<item>) (title:<text>) (description:<text>) (background:<key>) (frame:<type>) (toast:<boolean>) (announce:<boolean>) (hidden:<boolean>) (x:<offset>) (y:<offset>) (progress_length:<#>)
Short DescriptionControls a custom advancement.
Full DescriptionControls custom Minecraft player advancements. You should generally create advancements manually on server start.
Currently, the ID argument may only refer to advancements added through this command.
The default action is to create and register a new advancement.
You may also delete an existing advancement, in which case do not provide any further arguments.
You may grant or revoke an advancement for a list of players, in which case do not provide any further arguments.
The parent argument sets the root advancement in the advancements menu, in the format "namespace:key".
If no namespace is specified, the parent is assumed to have been created through this command.
The icon argument sets the icon displayed in toasts and the advancements menu.
As of MC 1.20, an icon is required. Dirt will be used if it is missing.
The title argument sets the title that will show on toasts and in the advancements menu.
The description argument sets the information that will show when scrolling over a chat announcement or in the advancements menu.
The background argument sets the image to use if the advancement goes to a new tab.
If the background is unspecified, defaults to "minecraft:textures/gui/advancements/backgrounds/stone.png".
The frame argument sets the type of advancement - valid arguments are CHALLENGE, GOAL, and TASK.
The toast argument sets whether the advancement should display a toast message when a player completes it. Default is true.
The announce argument sets whether the advancement should display a chat message to the server when a player completes it. Default is true.
The hidden argument sets whether the advancement should be hidden until it is completed.
The x and y arguments are offsets based on the size of an advancement icon in the menu. They are required for custom tabs to look reasonable.

When creating an advancement, optionally specify 'progress_length' to make it require multiple parts.
When granting an advancement, optionally specify 'progress_length' to only grant partial progress.

To award a pre-existing vanilla advancement, instead use Mechanism:PlayerTag.award_advancement

WARNING: Failure to re-create advancements on every server start may result in loss of data - use Event:server prestart.

If you mess with datapacks, you will also need to re-create advancements during Event:server resources reloaded
Related Tags<PlayerTag.has_advancement[<advancement>]> Returns whether the player has completed the specified advancement.
<PlayerTag.advancements> Returns a list of the names of all advancements the player has completed.
<server.advancement_types> Returns a list of all registered advancement names. (...)
Usage Example
# Creates a new advancement that has a potato icon.
- advancement id:hello_world icon:baked_potato "title:Hello World" "description:You said hello to the world."
Usage Example
# Creates a new advancement with the parent "hello_world" and a CHALLENGE frame. Hidden until it is completed.
- advancement id:hello_universe parent:hello_world icon:ender_pearl "title:Hello Universe" "description:You said hello to the UNIVERSE." frame:challenge hidden:true x:1
Usage Example
# Grants the "hello_world" advancement to the current player.
- advancement id:hello_world grant:<player>
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/AdvancementCommand.java#L33
NameCompass
Syntaxcompass [<location>/reset]
Short DescriptionRedirects the player's compass to target the given location.
Full DescriptionRedirects the compass of the player, who is attached to the script queue.

This is not the compass item, but the command is controlling the pointer the item should direct at.
This means that all item compasses will point the same direction but differently for each player.

To affect an individual compass item, use Mechanism:ItemTag.lodestone_location

The y-axis is not used but its fine to be included in the location argument.

Reset argument will turn the direction to default (spawn or bed)
Related Tags<PlayerTag.compass_target> Returns the location of the player's compass target.
Usage Example
# Use to reset the compass direction to its default.
- compass reset
Usage Example
# Use to point with a compass to the player's current location.
- compass <player.location>
Usage Example
# Use to point with a compass to the world's spawn location.
- compass <player.world.spawn_location>
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/CompassCommand.java#L23
NameDetermine
Related Guide Pagehttps://guide.denizenscript.com/guides/first-steps/world-script.html
Syntaxdetermine (passively) [<value>]
Short DescriptionSets the outcome of a script.
Full DescriptionSets the outcome of a script.
The most common use case is within script events (for example, to cancel the event).
This is also required for all procedure scripts.
It may be useful in other cases (such as a task script that returns a result, via the save argument).

By default, the determine command will end the queue (similar to Command:stop).
If you wish to prevent this, specify the "passively" argument.

To make multiple determines, simply use the determine command multiple times in a row, with the "passively" argument on each.
Related Tags<QueueTag.determination> Returns the values that have been determined via Command:Determine (...)
Usage Example
# Use to modify the result of an event.
- determine message:<context.message.to_lowercase>
Usage Example
# Use to cancel an event, but continue running script commands.
- determine passively cancelled
Synonyms (Search Aid)return
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/DetermineCommand.java#L23
Namediscordcommand
Related Guide Pagehttps://guide.denizenscript.com/guides/expanding/ddiscordbot.html
Syntaxdiscordcommand (id:<bot>) [create/delete] (group:<group>) (name:<name>) (type:{slash}/user/message) (description:<description>) (options:<options>)
Short DescriptionManages Discord application commands.
Full DescriptionManages Discord application commands.

You can create a new command, edit the permissions of an existing command, or delete an existing command.

To create (or delete) a command in a specific Discord guild, use the "group" argument. If not present, a global command will be created. NOTE: Global commands take up to an hour to register.
When creating, both a name and description are required.

Commands can be slash commands - activated via typing "/", message commands - activated by right-clicking a message, or user commands - activated by right-clicking a user.
"Description" and "options" are only valid for slash commands.

The "options" argument controls the command parameters. It is a MapTag of ordered MapTags that can sometimes hold ordered MapTags. It is recommended to use Command:definemap or a data script key when creating commands.
All option MapTags must have "type", "name", and "description" keys, with an optional "required" key (defaulting to true). The "type" key can be one of: STRING, INTEGER, BOOLEAN, USER, CHANNEL, ROLE, MENTIONABLE, NUMBER, ATTACHMENT.
Additionally, the option map can include a "choices" key, which is a MapTag of ordered MapTags that have a "name" (what displays to the user) and a "value" (what gets passed to the client).
Instead of choices, the option map can also include an "autocomplete" key controlling whether dynamic suggestions can be provided to the client (defaulting to false). See Event:on discord command autocomplete.

Editing application command permissions has been moved to the "Integrations" section in the server settings.
Read more about it here: 🔗https://discord.com/blog/slash-commands-permissions-discord-apps-bots

You DO NOT need to create a command on startup every time! Once a command is created, it will persist until you delete it.
Using the "create" instruction on an existing command will update it.

Commands and replies to interactions have limitations. See 🔗https://gist.github.com/MinnDevelopment/b883b078fdb69d0e568249cc8bf37fe9.

See also Discord's internal API documentation for commands: 🔗https://discord.com/developers/docs/interactions/application-commands

Generally used alongside Command:discordinteraction

The command should usually be ~waited for. See Language:~waitable.
Related Tags<entry[saveName].command> returns the DiscordCommandTag of a command upon creation, when the command is ~waited for.
Usage Example
# Use to create a simple slash command without options and save it.
- ~discordcommand create group:<discord[mybot].group[Denizen]> name:hello "description:Hello world!" save:mycmd
- debug log <entry[mycmd].command.name>
Usage Example
# Use to create a global slash command with one option, using definemap.
- definemap options:
    1:
      type: string
      name: animal
      description: Your favorite animal
      required: true
- ~discordcommand id:mybot create name:animal "description:Pick your favorite!" options:<[options]>
Groupexternal
RequiresdDiscordBot
Sourcehttps://github.com/DenizenScript/dDiscordBot/blob/master/src/main/java/com/denizenscript/ddiscordbot/commands/DiscordCommandCommand.java#L40
Namediscordinteraction
Related Guide Pagehttps://guide.denizenscript.com/guides/expanding/ddiscordbot.html
Syntaxdiscordinteraction [defer/reply/delete] [interaction:<interaction>] (ephemeral) (rows:<rows>) (<message>) (embed:<embed>|...) (attach_files:<map>)
Short DescriptionManages Discord interactions.
Full DescriptionManages Discord interactions.

You can defer, reply to, edit, or delete an interaction. These instructions all require the "interaction" argument.

The "ephemeral" argument can be used to have the reply message be visible to that one user.

You can defer an interaction before replying, which is useful if your reply may take more than a few seconds to be selected.
If you defer, the 'ephemeral' option can only be set by the defer - you cannot change it with the later reply.
Replying to an interaction uses similar logic to normal messaging. See Command:discordmessage.
If you deferred without using 'ephemeral', the 'delete' option will delete the "Thinking..." message.
Ephemeral replies cannot have files.

Slash commands, and replies to interactions, have limitations. See 🔗https://gist.github.com/MinnDevelopment/b883b078fdb69d0e568249cc8bf37fe9.

Generally used alongside Command:discordcommand

The command can be ~waited for. See Language:~waitable.
Related Tags<entry[saveName].command> returns the DiscordCommandTag of a slash command upon creation, when the command is ~waited for.
Usage Example
# Use to quickly reply to a slash command interaction.
- discordinteraction reply interaction:<context.interaction> "hello!"
Usage Example
# Use to defer and reply to a slash command interaction.
- ~discordinteraction defer interaction:<context.interaction>
- discordinteraction reply interaction:<context.interaction> <context.options.get[hello].if_null[world]>
Usage Example
# Use to defer and reply to an interaction ephemerally.
- ~discordinteraction defer interaction:<context.interaction> ephemeral:true
- discordinteraction reply interaction:<context.interaction> "Shh, don't tell anyone!"
Groupexternal
RequiresdDiscordBot
Sourcehttps://github.com/DenizenScript/dDiscordBot/blob/master/src/main/java/com/denizenscript/ddiscordbot/commands/DiscordInteractionCommand.java#L31
Namediscordmessage
Related Guide Pagehttps://guide.denizenscript.com/guides/expanding/ddiscordbot.html
Syntaxdiscordmessage (id:<id>) [reply:<message>/edit:<message>/channel:<channel>/user:<user>] (<message>) (no_mention) (rows:<rows>) (embed:<embed>|...) (attach_files:<map>) (post_title:<name>)
Short DescriptionSends a message to a Discord channel.
Full DescriptionSends a message to a Discord channel.

Command may fail if the bot does not have permission within the Discord group to send a message in that channel.

You can send the message to: a channel, user, or in reply to a previous message.
If sending as a reply, optionally use "no_mention" to disable the default reply pinging the original user.

Channels can be specified as either a copied ID, or using any tag that returns a valid DiscordChannelTag.
To get IDs, enable "Developer Mode" in your Discord settings, then right click on the channel and press "Copy ID".

You can edit an existing message by using "edit:<message>".

You can use "attach_file_name:<name>" and "attach_file_text:<text>" to attach a text file with longer content than a normal message allows.
Alternatively, you can use "attach_files:<map>" to attach files as a MapTag of the name of the file to the text or a BinaryTag.

To send embeds, use "embed:<embed>|...".

You can use "rows" to attach action rows of components, such as buttons to the message, using ObjectType:DiscordButtonTag, and ObjectType:DiscordSelectionTag.

You can send a message into a Forum Channel with "post_title" specified to create a post in that forum.

The command can be ~waited for. See Language:~waitable.
Related Tags<entry[saveName].message> returns the DiscordMessageTag of the sent message, when the command is ~waited for.
<discord[mybot].group[Denizen].channel[bot-spam]> is an example of a tag that will return an appropriate channel object for a named channel in a named group.
Usage Example
# Use to message a Discord channel with a copied channel ID.
- discordmessage id:mybot channel:1234 "Hello world!"
Usage Example
# Use to reply to a message from a message received event.
- discordmessage id:mybot reply:<context.message> "Hello world!"
Usage Example
# Use to message an embed to a Discord channel.
- discordmessage id:mybot channel:1234 embed:<discord_embed[title=hi;description=this is an embed!]>
Usage Example
# Use to message a Discord channel and record the new message ID.
- ~discordmessage id:mybot channel:1234 "Hello world!" save:sent
- announce "Sent as <entry[sent].message.id>"
Usage Example
# Use to send a message to a user through a private channel.
- discordmessage id:mybot user:<[user]> "Hello world!"
Usage Example
# Use to send a short and simple text-file message to a channel.
- discordmessage id:mybot channel:<[channel]> attach_files:<map[quote.xml=<&lt>mcmonkey<&gt> haha text files amirite<n>gotta abuse em]>
Usage Example
# Use to send a message and attach a button to it.
- define my_button <discord_button.with_map[style=primary;id=my_button;label=Hello]>
- discordmessage id:mybot channel:<[channel]> rows:<[my_button]> "Hello world!"
Usage Example
# Use to send a message to a Discord channel, then edit it after 5 seconds.
- ~discordmessage id:mybot channel:<[channel]> "Hello world!" save:msg
- wait 5s
- discordmessage id:mybot edit:<entry[msg].message> "Goodbye!"
Usage Example
# Use to send multiple embeds in a single message
- ~discordmessage id:mybot channel:<[channel]> embed:<discord_embed[title=embed 1]>|<discord_embed[title=embed 2]>
Usage Example
# Use to send files in a single message, including an image file, using a MapTag.
- ~fileread path:my_information.yml save:info
- ~fileread path:my_image.png save:image
- definemap files:
    text.txt: Wow! Denizen is so cool!
    info.yml: <entry[info].data>
    my_image.png: <entry[image].data>
- ~discordmessage id:mybot channel:<[channel]> attach_files:<[files]>
Groupexternal
RequiresdDiscordBot
Sourcehttps://github.com/DenizenScript/dDiscordBot/blob/master/src/main/java/com/denizenscript/ddiscordbot/commands/DiscordMessageCommand.java#L43
NameFlag
Related Guide Pagehttps://guide.denizenscript.com/guides/basics/flags.html
Syntaxflag [<object>|...] [<name>([<#>])](:<action>)[:<value>] (expire:<time>)
Short DescriptionSets or modifies a flag on any flaggable object.
Full DescriptionThe flag command sets or modifies custom data values stored on any flaggable object (the server, a player/NPC/entity, a block location, ...).
See also Language:flag system.

This command supports data actions, see Language:data actions.

Flags by default are added permanently (or for the lifetime of the object they're attached to).
You can optionally specify a system time the flag will expire at, using either a DurationTag or a TimeTag.
If a DurationTag is used, it will be equivalent to: <util.time_now.add[<your_duration_here>]>
Related Tags<FlaggableObject.flag[<flag_name>]> Returns the specified flag from the flaggable object. (...)
<FlaggableObject.has_flag[<flag_name>]> Returns true if the flaggable object has the specified flag, otherwise returns false. (...)
<FlaggableObject.flag_expiration[<flag_name>]> Returns a TimeTag indicating when the specified flag will expire. (...)
<FlaggableObject.list_flags> Returns a list of the flaggable object's flags. (...)
<server.online_players_flagged[<flag_name>]> Returns a list of all online players with a specified flag set. (...)
<server.players_flagged[<flag_name>]> Returns a list of all players (online or offline) with a specified flag set. (...)
<server.spawned_npcs_flagged[<flag_name>]> Returns a list of all spawned NPCs with a specified flag set. (...)
<server.npcs_flagged[<flag_name>]> Returns a list of all NPCs with a specified flag set. (...)
Usage Example
# Use to create or set a flag on a player.
- flag <player> playstyle:aggressive
Usage Example
# Use to set a temporary flag for five minutes on a player.
- flag <player> just_did_something expire:5m
Usage Example
# Use to flag an npc with a given tag value.
- flag <npc> location:<npc.location>
Usage Example
# Use to apply mathematical changes to a flag's value on a unique object.
- flag <context.damager> damage_dealt:+:<context.damage>
Usage Example
# Use to add an item to a server flag as a new value without removing existing values.
- flag server cool_people:->:<[player]>
Usage Example
# Use to add multiple items as individual new values to a server flag that is already a list.
- flag server cool_people:|:<[player]>|<[someplayer]>
Usage Example
# Use to remove an entry from a server flag.
- flag server cool_people:<-:<[someplayer]>
Usage Example
# Use to completely remove a flag.
- flag server cool_people:!
Usage Example
# Use to modify a specific index in a list flag.
- flag server myflag[3]:HelloWorld
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/core/FlagCommand.java#L88
NameGroup
Syntaxgroup [add/remove/set] [<group>] (<world>)
Short DescriptionAdds a player to, removes a player from, or sets a player's permissions group.
Full DescriptionControls a player's permission groups, which the ability to add, remove or set a player's groups.
The 'add' argument adds the player to the group and any parent groups,
and the 'remove' command does the opposite, removing the player from the group and any inheriting groups.
The set command removes all existing groups and sets the player's group.
Note: This requires a permissions plugin and Vault.
Related Tags<PlayerTag.in_group[<group>]> Returns whether the player is in the specified group. (...)
<PlayerTag.in_group[<group>].global> Returns whether the player has the group with no regard to the (...)
<PlayerTag.in_group[<group>].world> Returns whether the player has the group in regards to a specific world. (...)
<PlayerTag.groups[(<world>)]> Returns a list of all groups the player is in. (...)
<server.permission_groups> Returns a list of all permission groups on the server.
Usage Example
# Use to add a player to the Admin group.
- group add Admin
Usage Example
# Use to remove a player from the Moderator group.
- group remove Moderator
Usage Example
# Use to set a player to the Member group in the Creative world.
- group set Member Creative
Groupplayer
RequiresVault
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/GroupCommand.java#L24
NameNarrate
Syntaxnarrate [<text>] (targets:<player>|...) (format:<script>) (per_player) (from:<uuid>)
Short DescriptionShows some text to the player.
Full DescriptionPrints some text into the target's chat area. If no target is specified it will default to the attached player or the console.

Accepts the 'format:<script>' argument, which will reformat the text according to the specified format script. See Language:Format Script Containers.

Optionally use 'per_player' with a list of player targets, to have the tags in the text input be reparsed for each and every player.
So, for example, "- narrate 'hello <player.name>' targets:<server.online_players>"
would normally say "hello bob" to every player (every player sees the exact same name in the text, ie bob sees "hello bob", steve also sees "hello bob", etc)
but if you use "per_player", each player online would see their own name (so bob sees "hello bob", steve sees "hello steve", etc).

Optionally, specify 'from:<uuid>' to indicate that message came from a specific UUID (used for things like the vanilla client social interaction block option).
Related TagsNone
Usage Example
# Use to narrate text to the player.
- narrate "Hello World!"
Usage Example
# Use to narrate text to a list of players.
- narrate "Hello there." targets:<[player]>|<[someplayer]>|<[thatplayer]>
Usage Example
# Use to narrate text to a unique message to every player on the server.
- narrate "Hello <player.name>, your secret code is <util.random.duuid>." targets:<server.online_players> per_player
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/NarrateCommand.java#L38
NameReflectionSet
Syntaxreflectionset [object:<object>] [field:<name>] (value:<value>)
Short DescriptionSets a field on an object to a given value, or null.
Full DescriptionGive a ObjectType:JavaReflectedObjectTag as the object, a field name, and a value (or leave off for null) to set the value of a field on that object.

Uses reflection to set, and so can bypass 'private' or 'final' field limits if permitted by config.

If the value is fed as a general ObjectTag, automatic conversion will be attempted.
If automatic conversion is not possible, you must pass a ObjectType:JavaReflectedObjectTag with the appropriate type as the value.

Requires config setting "Reflection.Allow set command".
Related Tags<ObjectTag.reflected_internal_object> Returns the reflected internal Java object for a given ObjectTag.
Usage Example
# Use to change Bukkit's reference to a world's environment to the_end.
- narrate <world[world].environment>
- define obj <world[world].reflected_internal_object>
- narrate <[obj].reflect_field[environment].interpret>
- reflectionset object:<[obj]> field:environment value:the_end
- narrate <world[world].environment>
- narrate <[obj].reflect_field[environment].interpret>
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/core/ReflectionSetCommand.java#L30
NameScoreboard
Syntaxscoreboard ({add}/remove) (viewers:<player>|...) (lines:<player>/<text>|...) (id:<value>/player/{main}) (objective:<value>) (criteria:<criteria>/{dummy}) (score:<#>) (displayslot:<value>/{sidebar}/none) (displayname:<name>) (rendertype:<type>)
Short DescriptionAdd or removes viewers, objectives and scores from scoreboards.
Full DescriptionLets you make players see a certain scoreboard and then a certain objective in that scoreboard.
Please note that a 'scoreboard' is NOT a 'sidebar' - if you want that thing where text is on the right side of the screen, use Command:sidebar.
'Scoreboard' is the underlying internal system that powers sidebars, below_name plates, team prefixing, and a lot of other systems. Generally, you should avoid using this command directly.

The ID can be 'main' for the global default scoreboard, 'player' for the attached player's current scoreboard, or any other value for a custom named scoreboard.

There are currently three slots where objectives can be displayed:
in the sidebar on the right of the screen, below player names and in the player list that shows up when you press Tab.
The names of these slots can be found here: 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/scoreboard/DisplaySlot.html

Every objective has several lines of scores.
Technically, the lines track players, but fake player names can be used by Denizen to let you call the lines anything you want.

When using the sidebar as the display slot, all the scores set for an objective will be displayed there,
but you will need to put actual player names in the lines to be able to use
the below_name display slot (which displays each player's score underneath his/her name) and
the player_list display slot (which displays each player's score to the right of his/her name in the player list).

If you do not specify a display slot, the sidebar will be used. You can also use "none" as the
display slot if you want to add a hidden objective without automatically making it get displayed.
If the object already exists, and you don't specify the display slot, it will use the existing setting.

When setting an objective, you can also optionally set the display name by using the "displayname:" argument.

"Rendertype" can be "INTEGER" or "HEARTS". Defaults to integer.

You can set scores manually, or you can use different Minecraft criteria that set and update the scores automatically.
A list of these criteria can be found here: 🔗https://minecraft.wiki/w/Scoreboard#Objectives
If the object already exists, and you don't specify the criteria, it will use the existing setting.

You can use the "remove" argument to remove different parts of scoreboards.
The more arguments you use with it, the more specific your removal will be.
For example, if you only use the "remove" argument and the "id" argument, you will completely remove all the objectives in a scoreboard,
but if you specify an objective as well, you will only delete that one objective from that scoreboard,
and if you also specify certain lines, you will only delete those specific lines from that objective.
Similarly, if you use the "remove" argument along with the "id" and "viewers" arguments, you will only remove those viewers from the scoreboard, not the entire scoreboard.
Related Tags<server.scoreboard[(<board>)].exists> Returns whether a given scoreboard exists on the server.
<server.scoreboard[(<board>)].team[<team>].members> Returns a list of all members of a scoreboard team. Generally returns as a list of names or text entries. (...)
<PlayerTag.scoreboard_id> Returns the ID of the scoreboard from Command:scoreboard that a player is currently viewing, if any.
Usage Example
# Add a score for the defined player to the default scoreboard under the objective "cookies" and let him see it
- scoreboard add obj:cookies lines:joe score:1000 viewers:<[aplayer]>
Usage Example
# Add a new current objective called "food" to the "test" scoreboard with 3 lines that each have a score of 50:
- scoreboard add id:test obj:food lines:Cookies|Donuts|Cake score:50
Usage Example
# Make a list of players see the scoreboard that has the id "test":
- scoreboard add viewers:<[player]>|<[aplayer]>|<[thatplayer]> id:test
Usage Example
# Change the value of one of the scores in the "food" objective:
- scoreboard add id:test obj:food lines:Cake score:9000
Usage Example
# Remove one of the lines from the "food" objective in the "test" scoreboard
- scoreboard remove obj:food lines:Donuts
Usage Example
# Remove one of the viewers of the "test" scoreboard:
- scoreboard remove viewers:<[aplayer]>
Usage Example
# Make the defined player see the health of other players below their names
- scoreboard add viewers:<[player]> id:test obj:anything criteria:health displayslot:below_name
Usage Example
# Make all the players on the world "survival" see each other's number of entity kills in the player list when pressing Tab
- scoreboard add viewers:<world[survival].players> id:test obj:anything criteria:totalKillCount displayslot:player_list
Groupserver
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/server/ScoreboardCommand.java#L34
NameSidebar
Syntaxsidebar (add/remove/{set}/set_line) (title:<title>) (scores:<#>|...) (values:<line>|...) (start:<#>/{num_of_lines}) (increment:<#>/{-1}) (players:<player>|...) (per_player)
Short DescriptionControls clientside-only sidebars.
Full DescriptionThis command was created as a simpler replacement for using the Scoreboard command to display per-player sidebars.
By using packets and dummies, it enables you to have non-flickering, fully functional sidebars,
without wasting processing speed and memory on creating new Scoreboards for every single player.

Using this command, you can add, remove, or set lines on the scoreboard.

To set the title of the sidebar, use the 'title:' parameter in any case where the action is 'set'.

By default, the score numbers descend from the total line count to 1.
To customize the automatic score values, use the 'start:' and 'increment:' arguments in any case where the action is 'set'.
'Start' is the score where the first line will be shown with. The default 'start' value is determined by how many items are specified in 'values:'.
'Increment' is the difference between each score and the default is -1.

To instead set entirely custom numbers, use the 'scores:' input with a list of numbers,
where each number is the score to use with the value at the same place in the 'values:' list.

You can remove by line value text, or by score number.

The per_player argument is also available, and helps to reduce the number of loops required for updating multiple players' sidebars.
When it is specified, all tags in the command will fill based on each individual player in the players list.
So, for example, you could have <player.name> on a line and it will show each player specified their name on that line.
Related Tags<PlayerTag.sidebar_lines> Returns the current lines set on the player's Sidebar via Command:sidebar.
<PlayerTag.sidebar_title> Returns the current title set on the player's Sidebar via Command:sidebar.
<PlayerTag.sidebar_scores> Returns the current scores set on the player's Sidebar via Command:sidebar, (...)
Usage Example
# Use to show all online players a sidebar.
- sidebar set "title:Hello World!" "values:This is|My Message!|Wee!" players:<server.online_players>
Usage Example
# Use to show a few players their ping.
- sidebar set title:Info "values:Ping<&co> <player.ping>" players:<[someplayer]>|<[player]>|<[aplayer]> per_player
Usage Example
# Use to set a sidebar with the score values indicating information to the user.
- sidebar set scores:<server.online_players.size>|<server.max_players> "values:Players online|Players allowed"
Usage Example
# Use to change a specific line of a sidebar.
- sidebar set_line scores:5 "values:Better message!"
Usage Example
# Use to add a line to the bottom of the sidebar.
- sidebar add "values:This is the bottom!"
Usage Example
# Use to remove multiple lines from the sidebar.
- sidebar remove scores:2|4|6
Usage Example
# Use to stop showing the sidebar.
- sidebar remove
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/SidebarCommand.java#L37

Language


NameParticle Effects
DescriptionAll the effects listed here can be used by Command:PlayEffect to display visual effects or play sounds

Effects:
- Everything on 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html
- Everything on 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Effect.html
- RANDOM (chooses a random visual effect from the Particle list)
GroupUseful Lists
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/PlayEffectCommand.java#L43
NameRaid Event Data
DescriptionEvery event related to village raids has a <context.raid> property, a MapTag wrapper around raid data (see 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Raid.html).
These events are Event:player triggers raid, Event:raid finishes, Event:raid spawns wave, and Event:raid stops.

The data format is as follows:
location: a LocationTag of the raid's center
heroes: a list of PlayerTags that have participated in the raid
raiders: a list of raider EntityTags that remain in the current wave
status: the current status of the raid. See 🔗https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Raid.RaidStatus.html
age: the raid's age (active time) as a DurationTag
level: the Bad Omen level that the raid was started with
spawned_groups: the number of raider groups spawned
total_groups: the number of groups planned to spawn or already spawned
health: the combined health of all current raiders
waves: the number of waves in the raid
GroupUseful Lists
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/events/world/RaidScriptEvent.java#L20

Mechanism


Namewe_selection
ObjectPlayerTag
InputObjectTag
Related Tags<PlayerTag.we_selection> Returns the player's current block area selection, as a CuboidTag, EllipsoidTag, or PolygonTag.
DescriptionSets the player's current block area selection, as a CuboidTag, EllipsoidTag, or PolygonTag.
RequiresDepenizen, WorldEdit
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldedit/WorldEditPlayerProperties.java#L166

Tag


Name<CuboidTag.has_region>
ReturnsElementTag(Boolean)
DescriptionReturns whether the cuboid contains any region.
Generated Example
- if <cuboid[my_noted_cuboid].has_region>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardCuboidExtensions.java#L28
Name<CuboidTag.regions>
ReturnsListTag(WorldGuardRegionTag)
DescriptionReturns a list of regions that are in this cuboid.
Generated Example
- foreach <cuboid[my_noted_cuboid].regions> as:entry:
    - narrate "found <[entry]>"
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardCuboidExtensions.java#L39
Name<LocationTag.in_region[(<name>|...)]>
ReturnsElementTag(Boolean)
DescriptionIf a region name or list of names is specified, returns whether the
location is in one of the listed regions, otherwise returns whether
the location is in any region.
Generated Example
- if <player.location.in_region>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardLocationExtensions.java#L21
Name<LocationTag.regions>
ReturnsListTag(WorldGuardRegionTag)
DescriptionReturns a list of regions that the location is in.
Generated Example
- foreach <player.location.regions> as:entry:
    - narrate "found <[entry]>"
RequiresDepenizen, WorldGuard
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardLocationExtensions.java#L46
Name<PlayerTag.we_selection>
ReturnsObjectTag
MechanismPlayerTag.we_selection
DescriptionReturns the player's current block area selection, as a CuboidTag, EllipsoidTag, or PolygonTag.
Generated Example
- narrate "debug - the object is: <player.we_selection>"
RequiresDepenizen, WorldEdit
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/properties/worldedit/WorldEditPlayerProperties.java#L124
Name<schematic.list>
ReturnsListTag
DescriptionReturns a list of all loaded schematics.
Generated Example
- foreach <schematic.list> as:entry:
    - narrate "found <[entry]>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SchematicCommand.java#L609
Name<schematic[<name>].block[<location>]>
ReturnsMaterialTag
DescriptionReturns the material for the block at the location in the schematic.
An input location of 0,0,0 corresponds to the minimum corner of the schematic.
Generated Example
- modifyblock <player.location.below> <schematic.block[<npc.location>]>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SchematicCommand.java#L681
Name<schematic[<name>].blocks>
ReturnsElementTag(Number)
DescriptionReturns the number of blocks in the schematic.
Generated Example
- narrate "the number value is <schematic.blocks>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SchematicCommand.java#L710
Name<schematic[<name>].cuboid[<origin_location>]>
ReturnsCuboidTag
DescriptionReturns a cuboid of where the schematic would be if it was pasted at an origin.
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SchematicCommand.java#L722
Name<schematic[<name>].exists>
ReturnsElementTag(Boolean)
DescriptionReturns whether the schematic exists.
Generated Example
- if <schematic.exists>:
    - narrate "it was true!"
- else:
    - narrate "it was false!"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SchematicCommand.java#L633
Name<schematic[<name>].height>
ReturnsElementTag(Number)
DescriptionReturns the height (Y) of the schematic.
Generated Example
- narrate "the number value is <schematic.height>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SchematicCommand.java#L645
Name<schematic[<name>].length>
ReturnsElementTag(Number)
DescriptionReturns the length (Z) of the schematic.
Generated Example
- narrate "the number value is <schematic.length>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SchematicCommand.java#L657
Name<schematic[<name>].origin>
ReturnsLocationTag
DescriptionReturns the origin location of the schematic.
Generated Example
- teleport <player> <schematic.origin>
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SchematicCommand.java#L698
Name<schematic[<name>].width>
ReturnsElementTag(Number)
DescriptionReturns the width (X) of the schematic.
Generated Example
- narrate "the number value is <schematic.width>"
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SchematicCommand.java#L669