Denizen Script Commands


Commands are always written with a '-' before them, and are the core component of any script, the primary way to cause things to happen.
Learn about how commands work in The Beginner's Guide.


Showing all 160 commands...

Categories:

core | entity | item | npc | player | server | world | file | queue | Depenizen | external | addons


Category: core


NameCooldown
Syntaxcooldown [<duration>] (global) (script:<script>)
Short DescriptionTemporarily disables an interact script for the linked player.
Full DescriptionTemporarily disables an interact script for the linked player.
Cooldown requires a type (player or global), a script, and a duration.
It also requires a valid link to a PlayerTag if using a non-global cooldown.
To cooldown non-interact scripts automatically, consider Command:ratelimit.
Cooldown periods are persistent through a server restart as they are saved in the 'saves.yml'.
Related Tags<ScriptTag.cooled_down[player]> Returns whether the script is currently cooled down for the player. Any global (...)
<ScriptTag.cooldown> Returns the time left for the player to cooldown for the script.
Usage Example
#Use to keep the current interact script from meeting requirements.
- cooldown 20m
Usage Example
#Use to keep a player from activating a script for a specified duration.
- cooldown 11h script:bonus_script
- cooldown 5s script:hit_indicator
Usage Example
#Use the 'global' argument to indicate the script to be on cooldown for all players.
- cooldown global 24h script:daily_treasure_offering
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/core/CooldownCommand.java#L30

NameNote
Syntaxnote [<Notable ObjectTag>/remove] [as:<name>]
Short DescriptionAdds or removes a notable object.
Full DescriptionAdd or remove a notable object that can be referenced in events or scripts.
Noted objects are "permanent" versions of other ObjectTags. (See: Language:ObjectTags)
Noted objects keep their properties when added.
Notable object types: CuboidTag, EllipsoidTag, PolygonTag, LocationTag, InventoryTag
Related Tags<server.notables[<type>]> Lists all saved notable objects of a specific type currently on the server. (...)
<CuboidTag.note_name> Gets the name of a noted CuboidTag. If the cuboid isn't noted, this is null.
<InventoryTag.note_name> Gets the name of a noted InventoryTag. If the inventory isn't noted, this is null.
<LocationTag.note_name> Gets the name of a noted LocationTag. If the location isn't noted, this is null.
Usage Example
#Use to note a cuboid.
- note <[some_cuboid]> as:mycuboid
Usage Example
#Use to remove a noted cuboid.
- note remove as:mycuboid
Usage Example
#Use to note a location.
- note <context.location> as:mylocation
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/core/NoteCommand.java#L22

NameReset
Syntaxreset (<player>|...) [cooldown/global_cooldown] (<script>)
Short DescriptionResets various parts of Denizen's interact save data, including a script's cooldowns.
Full DescriptionThis command can reset save data for a player, or globally.
The "cooldown" argument removes the player's cooldown for a specific script,
as set by Command:cooldown.
The "global_cooldown" argument removes all cooldowns for the specified script (not player-specific).
Related TagsNone
Usage Example
#Use to reset all cooldowns for a script when an event that limits usage completes.
- reset global_cooldown MyScriptName
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/core/ResetCommand.java#L23

NameZap
Syntaxzap (<script>) [<step>] (<duration>)
Short DescriptionChanges the current interact script step.
Full DescriptionChanges the current interact script step for the linked player.
The step name input should match the name of a step in the interact script.
The step name can be '*' to automatically zap to the default step.
If used inside an interact script, will default to the current interact script.
If used elsewhere, but there is a linked NPC with an assignment and interact, that NPC's interact script will be used.
For anywhere else, you must specify the script by name.
Optionally specify a duration. When the duration is up, the script will zap back to the step it was previously on.
If any zap commands are used during the duration, that duration will be discarded.
The command's name was inspired by a command in the language "ZZT-OOP", from a 1991 DOS game enjoyed by the original developer of Denizen.
Related Tags<ScriptTag.step[<player>]> Returns the name of a script step that the player is currently on. (...)
Usage Example
#Use to change the step to 2.
- zap 2
Usage Example
#Use to return to the default step.
- zap *
Usage Example
#Use to change the step to 3 in a script called Interact_Example.
- zap 3 Interact_Example
Usage Example
#Use to change the step to 1 for the defined player in a script called InteractScript.
- zap 1 InteractScript player:<[player]>
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/core/ZapCommand.java#L34

NameAdjustBlock
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

NameAdjust
Syntaxadjust [<ObjectTag>/def:<name>|...] [<mechanism>](:<value>)
Short DescriptionAdjusts an object's mechanism.
Full DescriptionMany object tag types contains options and properties that need to be adjusted. Denizen employs a mechanism
interface to deal with those adjustments. To easily accomplish this, use this command with a valid object
mechanism, and sometimes accompanying value.
Specify "def:<name>" as an input to adjust a definition and automatically save the result back to the definition.
You can optionally adjust a MapTag of mechanisms to values.
To adjust an item in an inventory, use Command:inventory, as '- inventory adjust slot:<#> <mechanism>:<value>'.
Note that that is only for items, not actual inventories.
To adjust an actual InventoryTag mechanism, you should still use the normal 'adjust' command, not 'inventory adjust'.
Related Tags<entry[saveName].result> returns the adjusted object.
<entry[saveName].result_list> returns a ListTag of adjusted objects.
Usage Example
#Use to set a custom display name on an entity.
- adjust <[some_entity]> custom_name:ANGRY!
Usage Example
#Use to set the skin of every online player.
- adjust <server.online_players> skin:Notch
Usage Example
#Use to modify an item held in a definition.
- adjust def:stick "display_name:Fancy stick"
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/core/AdjustCommand.java#L31

NameDebug
Syntaxdebug [<type>] [<message>] (name:<name>)
Short DescriptionShows a debug message.
Full DescriptionUse to quickly output debug information to console.
Valid types include:
DEBUG: standard hideable debug.
HEADER: standard hideable debug inside a header line.
FOOTER: a footer line.
SPACER: a spacer line.
LOG: global output, non-hideable.
APPROVAL: "Okay!" output, non-hideable.
ERROR: "Error!" output, non-hideable.
REPORT: normally used to describe the arguments of a command, requires a name, hideable.
EXCEPTION: outputs a full java stacktrace.
RECORD: Use message 'start' to start recording, 'submit' to submit a recording, or 'cancel' to cancel a recording.
TODO: Should [<type>] be required? Perhaps default to 'debug' mode?
Related Tags<entry[saveName].submitted> returns the submit link (if any).
Usage Example
#Use to show an error.
- debug error "Something went wrong!"
Usage Example
#Use to add some information to help your own ability to read debug output from you script.
- debug debug "Time is currently <[milliseconds].div[1000].round> seconds!"
Usage Example
#Use to record a debug log of a certain script.
- debug record start
- run myscript
- ~debug record submit save:mylog
- narrate "Recorded log as <entry[mylog].submitted||<red>FAILED>"
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/core/DebugCommand.java#L24

NameEvent
Syntaxevent [<event name>|...] (context:<name>|<object>|...)
Short DescriptionManually fires a world event.
Full DescriptionThis command will trigger a world event (an event within a 'world' type script) exactly the same
as if an actual serverside event had caused it.
You can specify as many event names as you want in the list, they will all be fired. It will also automatically
fire a duplicate of each event name with object identifiers (eg 'i@', see Language:objecttag) removed.
The script's linked player and NPC will automatically be sent through to the event.
To add context information (tags like <context.location>) to the event, simply specify all context values in a list.
Note that there are some inherent limitations... EG, you can't directly add a list to the context currently.
To do this, the best way is to just escape the list value (see Language:Escaping System).
NOTE: This command is outdated and bound to be updated.
Related Tags<entry[saveName].determinations> returns a list of the determined values (if any) from the event.
Usage Example
#Use to trigger a custom event
- event "player triggers custom event"
Usage Example
#Use to trigger multiple custom events with context
- event "player triggers custom event|player causes event" context:event|custom|npc|<player.selected_npc>
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/core/EventCommand.java#L25

NameFlag
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 clear a flag and fill it with a new list of values.
- flag server cool_people:!|:<[player]>|<[someplayer]>|<[aplayer]>
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#L71

NameReload
Syntaxreload
Short DescriptionReloads all Denizen scripts. Primarily for use as an in-game command.
Full DescriptionReloads all Denizen scripts.
Primarily for use as an in-game command, like "/ex reload".
Related TagsNone
Usage Example
#Use to reload scripts automatically
- reload
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/core/ReloadCommand.java#L17

NameSQL
Syntaxsql [id:<ID>] [disconnect/connect:<server> (username:<username>) (password:<password>) (ssl:true/{false})/query:<query>/update:<update>]
Short DescriptionInteracts with a MySQL server.
Full DescriptionThis command is used to interact with a MySQL server. It can update the database or query it for information.
This commands exists primarily for interoperability with pre-existing databases and external services.
It should never be used for storing data that only Denizen needs to use. Consider instead using Command:flag.
The general usage order is connect -> update/query -> disconnect.
It is not required that you disconnect right after using, and in fact encouraged that you keep a connection open where possible.
When connecting, the server format is IP:Port/Database, EG 'localhost:3306/test'.
You can switch whether SSL is used for the connection (defaults to false).
Note that when using tag, it is recommended you escape unusual inputs to avoid SQL injection.
The SQL command is merely a wrapper for SQL queries, and further usage details should be gathered from an official MySQL query reference rather than from Denizen command help.
SQL connections are not instant - they can take several seconds, or just never connect at all.
It is recommended you hold the command by doing "- ~sql ..." rather than just "- sql ..."
as this will delay the commands following the SQL command until after the SQL operation is complete.
If you have an SQL database server other than MySQL, be sure to include the driver prefix (defaults to "mysql://" when unspecified).
Related Tags<entry[saveName].result> returns a ListTag of all rows from a query or update command, of the form escaped_text/escaped_text|escaped_text/escaped_text
<entry[saveName].affected_rows> returns how many rows were affected by an update command.
Usage Example
#Use to connect to an SQL server.
- ~sql id:name connect:localhost:3306/test username:space password:space
Usage Example
#Use to connect to an SQL server over an SSL connection.
- ~sql id:name connect:localhost:3306/test username:space password:space ssl:true
Usage Example
#Use to connect to an SQL server with a UTF8 text encoding.
- ~sql id:name connect:localhost:3306/test?characterEncoding=utf8 username:space password:space
Usage Example
#Use to update an SQL server.
- ~sql id:name "update:CREATE table things(id int,column_name1 varchar(255),column_name2 varchar(255));"
Usage Example
#Use to update an SQL server.
- ~sql id:name "update:INSERT INTO things VALUES (3, 'hello', 'space');"
Usage Example
#Use to query an SQL server.
- ~sql id:name "query:SELECT id,column_name1,column_name2 FROM things;" save:saveName
- narrate <entry[saveName].result>
Usage Example
#Use to query an SQL server.
- ~sql id:name "query:SELECT id,column_name1,column_name2 FROM things WHERE id=3;" save:saveName2
- narrate <entry[saveName2].result>
Usage Example
#Use to disconnect from an SQL server.
- sql disconnect id:name
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/core/SQLCommand.java#L31

NameWebget
Syntaxwebget [<url>] (data:<data>) (method:<method>) (headers:<header>/<value>|...) (timeout:<duration>/{10s}) (savefile:<path>) (hide_failure)
Short DescriptionGets the contents of a web page or API response.
Full DescriptionConnects to a webpage or API and downloads its contents, to be used via the save argument and corresponding entry tags.
This should almost always be ~waited for.
Note that while this will replace URL spaces to %20, you are responsible for any other necessary URL encoding.
You may want to use the Tag:ElementTag.url_encode tag for this.
Optionally, use "data:<data>" to specify a set of data to send to the server (changes the default method from GET to POST).
Optionally, use "method:<method>" to specify the HTTP method to use in your request.
Can be: GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE.
Optionally, use "headers:" to specify a MapTag of headers.
Optionally, use "savefile:" to specify a path to save the retrieved file to.
This will remove the 'result' entry savedata.
Path is relative to server base directory.
Optionally, specify the "timeout:" to set how long the command should wait for a webpage to load before giving up. Defaults to 10 seconds.
Optionally, specify 'hide_failure' to indicate that connection errors are acceptable and shouldn't display in logs.
Related Tags<entry[saveName].failed> returns whether the webget failed. A failure occurs when the status is not 2XX/3XX or webget failed to connect.
<entry[saveName].result> returns the result of the webget. This is null only if webget failed to connect to the url.
<entry[saveName].result_headers> returns a MapTag of the headers returned from the webserver. Every value in the result is a list.
<entry[saveName].status> returns the HTTP status code of the webget. This is null only if webget failed to connect to the url.
<entry[saveName].time_ran> returns a DurationTag indicating how long the web connection processing took.
<ElementTag.url_encode> Encodes the element using URL encoding.
Usage Example
#Use to download the google home page.
- ~webget https://google.com save:google
- narrate <entry[google].result>
Usage Example
#Use to save a webpage to your server's base directory
- ~webget https://google.com savefile:google.html
Usage Example
#Use to post data to a server.
- ~webget https://api.mojang.com/orders/statistics 'data:{"metricKeys":["item_sold_minecraft"]}' headers:<map.with[Content-Type].as[application/json]> save:request
- narrate <entry[request].result>
Usage Example
#Use to retrieve and load an API response into yaml.
- ~webget https://api.mojang.com/users/profiles/minecraft/<player.name> save:request
- yaml loadtext:<entry[request].result> id:player_data
Groupcore
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/core/WebGetCommand.java#L35



Category: entity


NameAge
Syntaxage [<entity>|...] (adult/baby/<age>) (lock)
Short DescriptionSets the ages of a list of entities, optionally locking them in those ages.
Full DescriptionSome living entity types are 'ageable' which can affect an entities ability to breed, or whether they appear as a baby or an adult.
Using the 'age' command allows modification of an entity's age.
Specify an entity and either 'baby', 'adult', or an integer age to set the age of an entity.
Using the 'lock' argument will keep the entity from increasing its age automatically.
NPCs which use ageable entity types can also be specified.
Related Tags<EntityTag.age> If the entity is ageable, returns the entity's age number (-24000 to 0)
Usage Example
#Use to make an ageable entity a permanant baby.
- age <[some_entity]> baby lock
Usage Example
#...or a mature adult.
- age <[some_entity]> adult lock
Usage Example
#Use to make a baby entity an adult.
- age <[some_npc]> adult
Usage Example
#Use to mature some animals so that they are old enough to breed.
- age <player.location.find.entities.within[20]> adult
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/AgeCommand.java#L25

NameAnimate
Syntaxanimate [<entity>|...] [animation:<name>] (for:<player>|...)
Short DescriptionMakes a list of entities perform a certain animation.
Full DescriptionMinecraft implements several player and entity animations which the animate command can use, just
specify an entity and an animation.
Player animations require a Player-type entity or NPC. Available player animations include:
ARM_SWING, HURT, CRIT, MAGIC_CRIT, SIT, SLEEP, SNEAK, STOP_SITTING, STOP_SLEEPING, STOP_SNEAKING,
START_USE_MAINHAND_ITEM, START_USE_OFFHAND_ITEM, STOP_USE_ITEM, EAT_FOOD, ARM_SWING_OFFHAND
All entities also have available Bukkit's entity effect list:
URL:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/EntityEffect.html
These EntityEffect options can optionally be played only for specific players with the "for:" argument input.
In addition, Denizen adds a few new entity animations:
SKELETON_START_SWING_ARM, SKELETON_STOP_SWING_ARM, POLAR_BEAR_START_STANDING, POLAR_BEAR_STOP_STANDING, HORSE_BUCK, IRON_GOLEM_ATTACK
Note that the above list only applies where logical, EG 'WOLF_' animations only apply to wolves.
Related TagsNone
Usage Example
#Use to make a player appear to get hurt.
- animate <player> animation:hurt
Usage Example
#Use to make a wolf NPC shake.
- animate <npc> animation:wolf_shake
Groupentity
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/AnimateCommand.java#L31

Nameattach
Syntaxattach [<entity>|...] [to:<entity>/cancel] (offset:<offset>) (relative) (yaw_offset:<#.#>) (pitch_offset:<#.#>) (sync_server) (no_rotate) (for:<player>|...)
Short DescriptionAttaches a list of entities to another entity, for client-visible motion sync.
Full DescriptionAttaches a list of entities to another entity, for client-visible motion sync.
You must specify the entity or list of entities to be attached.
You must specify the entity that they will be attached to, or 'cancel' to end attachment.
Optionally, specify an offset location vector to be a positional offset. This can include a yaw/pitch to offset those as well.
Note that setting an offset of 0,0,0 will produce slightly different visual results from not setting any offset.
Optionally, specify 'relative' to indicate that the offset vector should rotate with the target entity.
If relative is used, optionally specify yaw_offset and/or pitch_offset to add an offset to rotation of the target entity when calculating the attachment offset.
Optionally, specify 'for' with a player or list of players to only sync motion for those players.
If unspecified, will sync for everyone.
Optionally, specify 'sync_server' to keep the serverside position of the attached entities near the target entity.
This can reduce some visual artifacts (such as entity unloading at distance), but may produce unintended functional artifacts.
Note that you should generally only use 'sync_server' when you exclude the 'for' argument.
Optionally specify 'no_rotate' to retain the attached entity's own rotation and ignore the target rotation.
Note that attaches involving a player will not be properly visible to that player, but will still be visible to *other* players.
Related TagsNone
Usage Example
#Use to attach random NPC to the air 3 blocks above a linked NPC.
- attach <server.list_npcs.random> to:<npc> offset:0,3,0
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/AttachCommand.java#L29

NameAttack
Syntaxattack [<entity>|...] (target:<entity>/cancel)
Short DescriptionMakes an entity, or list of entities, attack a target.
Full DescriptionThe attack command causes a mob entity to attack a target mob entity or player.
This technically can be used on an NPC, but it will trigger the Citizens internal punching-pathfinder.
This attack mode doesn't work well. If you want NPC combat, consider using Sentinel instead: URL:https://github.com/mcmonkeyprojects/Sentinel/blob/master/README.md.
To cancel an attack, use the 'cancel' argument instead of specifying a target.
Related Tags<NPCTag.is_fighting> Returns whether the NPC is currently targeting an entity for the Citizens internal punching pathfinder. (...)
<NPCTag.attack_strategy> Returns the NPC's current navigator attack strategy. (...)
<NPCTag.target_entity> Returns the entity being targeted by the NPC's current navigation (if any).
Usage Example
#Use to make the player's target entity attack a nearby entity.
- attack <player.target> target:<npc.location.find.living_entities.within[10].random>
Usage Example
#Use to make a random nearby entity attack a player.
- attack <player.location.find.living_entities.within[10].random> target:<player>
Usage Example
#Use to stop an entity from attacking.
- attack <[entity]> cancel
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/AttackCommand.java#L27

NameBurn
Syntaxburn [<entity>|...] (duration:<value>)
Short DescriptionSets a list of entities on fire.
Full DescriptionBurn will set a list of entities on fire. Just specify a list of entities (or a single entity) and
optionally, a duration. Normal mobs and players will see damage afflicted, but NPCs will block damage
from a burn unless 'vulnerable'. Since this command sets the total time of fire, it can also be used
to cancel fire on a burning entity by specifying a duration of 0. Specifying no duration will result
in a 5 second burn.
Related Tags<EntityTag.fire_time> Returns the duration for which the entity will remain on fire
<EntityTag.on_fire> Returns whether the entity is currently ablaze or not.
Usage Example
#Use to set an entity on fire.
- burn <player> duration:10s
Usage Example
#Use to cancel fire on entities.
- burn <player.location.find.living_entities.within[10]> duration:0
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/BurnCommand.java#L25

NameCast
Syntaxcast [<effect>] (remove) (duration:<value>) (amplifier:<#>) (<entity>|...) (no_ambient) (hide_particles) (no_icon)
Short DescriptionCasts a potion effect to a list of entities.
Full DescriptionCasts or removes a potion effect to or from a list of entities.
The effect type must be from URL:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html.
If you don't specify a duration, it defaults to 60 seconds.
To cast an effect with a duration which displays as '**:**' or 'infinite' use a duration of '1639s' (1639 seconds) or greater.
While it may display as infinite, it will still wear off.
The amplifier is how many levels to *add* over the normal level 1.
If you don't specify an amplifier level, it defaults to 1, meaning an effect of level 2 (this is for historical compatibility reasons).
Specify "amplifier:0" to have no amplifier applied (ie effect level 1).
If no player is specified, the command will target the player.
If no player is present, the command will target the NPC. If an NPC is not present, there will be an error!
Optionally, specify "no_ambient" to hide some translucent additional particles, while still rendering the main particles.
"Ambient" effects in vanilla came from a beacon, while non-ambient came from a potion.
Optionally, specify "hide_particles" to remove the particle effects entirely.
Optionally, specify "no_icon" to hide the effect icon in the corner of your screen.
Related Tags<EntityTag.has_effect[<effect>]> Returns whether the entity has a specified effect. (...)
<server.potion_effect_types> Returns a list of all potion effects known to the server. (...)
<EntityTag.list_effects> Returns the list of active potion effects on the entity, in the format: TYPE,AMPLIFIER,DURATION,IS_AMBIENT,HAS_PARTICLES,HAS_ICON|... (...)
Usage Example
#Use to cast a level 1 effect onto the player.
- cast speed amplifier:0
Usage Example
#Use to cast an effect onto the player for 120 seconds with an amplifier of 3 (effect level 4).
- cast jump d:120 amplifier:3
Usage Example
#Use to remove an effect from the player.
- if <player.has_effect[jump]>:
  - cast jump remove <player>
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/CastCommand.java#L28

NameEquip
Syntaxequip (<entity>|...) (hand:<item>) (offhand:<item>) (head:<item>) (chest:<item>) (legs:<item>) (boots:<item>) (saddle:<item>) (horse_armor:<item>)
Short DescriptionEquips items and armor on a list of entities.
Full DescriptionThis command equips an item or armor to an entity or list of entities to the specified slot(s).
Set the item to 'air' to unequip any slot.
Related Tags<EntityTag.equipment> Returns a ListTag containing the entity's equipment. (...)
<InventoryTag.equipment> Returns the equipment of an inventory as a list of items. (...)
Usage Example
#Use to equip a stone block on the player's head.
- equip <player> head:stone
Usage Example
#Use to equip an iron helmet on two defined players.
- equip <[player]>|<[someplayer]> head:iron_helmet
Usage Example
#Use to unequip all armor off the player.
- equip <player> head:air chest:air legs:air boots:air
Usage Example
#Use to equip a saddle on the horse the player is riding.
- equip <player.vehicle> saddle:saddle
Usage Example
#Use to equip a saddle on all nearby pigs.
- equip <player.location.find.entities[pig].within[10]> saddle:saddle
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/EquipCommand.java#L32

NameFakeEquip
Syntaxfakeequip [<entity>|...] (for:<player>|...) (duration:<duration>/reset) (hand:<item>) (offhand:<item>) (head:<item>) (chest:<item>) (legs:<item>) (boots:<item>)
Short DescriptionFake-equips items and armor on a list of entities for players to see without real change.
Full DescriptionThis command fake-equips items and armor on a list of entities.
The change doesn't happen on-server, and no armor effects will happen from it.
The equipment can only be seen by certain players. By default, the linked player is used.
The changes will remain in place for as long as the duration is specified (even if the real equipment is changed).
The changes can be manually reset early by using the 'reset' argument.
If you do not provide a duration, the fake equipment will last until manually reset.
This does not persist across server restarts.
Set the item to 'air' to unequip any slot.
Related Tags<EntityTag.equipment> Returns a ListTag containing the entity's equipment. (...)
<InventoryTag.equipment> Returns the equipment of an inventory as a list of items. (...)
Usage Example
#Use to fake-equip a stone block on the player's head.
- fakeequip <player> head:stone duration:10s
Usage Example
#Use to fake-equip an iron helmet on two defined players.
- fake-equip <[player]>|<[someplayer]> head:iron_helmet duration:1m
Usage Example
#Use to fake-unequip all armor off the player.
- fakeequip <player> head:air chest:air legs:air boots:air duration:5s
Usage Example
#Use to make all players within 30 blocks of an entity see it permanently equip a shield.
- equip <[entity]> offhand:shield for:<[entity].find.players.within[30]> duration:0
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/FakeEquipCommand.java#L33

NameFeed
Syntaxfeed (<entity>) (amount:<#>) (saturation:<#.#>)
Short DescriptionFeed the player or npc.
Full DescriptionFeeds the player or npc specified.
By default targets the player attached to the script queue and feeds a full amount.
Accepts the 'amount:' argument, which is in half bar increments, up to a total of 20 food points.
The amount may be negative, to cause hunger instead of satiating it.
You can optionally also specify an amount to change the saturation by.
By default, the saturation change will be the same as the food level change.
This is also up to a total of 20 points. This value may also be negative.
Also accepts the 'target:<entity>' argument to specify the entity which will be fed the amount.
Related Tags<PlayerTag.food_level> Returns the current food level (aka hunger) of the player.
<PlayerTag.formatted_food_level> Returns a 'formatted' value of the player's current food level. (...)
<PlayerTag.saturation> Returns the current food saturation of the player.
Usage Example
#Use to feed the player for 5 foodpoints (or 2.5 bars).
- feed amount:5
Usage Example
#Use to feed an NPC for 10 foodpoints (or 5 bars).
- feed <npc> amount:10
Usage Example
#Use to feed a player from a definition fully without refilling saturation.
- feed <[player]> saturation:0
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/FeedCommand.java#L24

NameFly
Syntaxfly (cancel) [<entity>|...] (controller:<player>) (origin:<location>) (destinations:<location>|...) (speed:<#.#>) (rotationthreshold:<#.#>)
Short DescriptionMake an entity fly where its controller is looking or fly to waypoints.
Full DescriptionMake an entity fly where its controller is looking or fly to waypoints.
This is particularly useful as a way to make flying entities rideable (or make a non-flying entity start flying).
Optionally specify a list of "destinations" to make it move through a series of checkpoints (disabling the "controller" functionality).
Optionally specify an "origin" location where the entities should teleport to at the start.
Optionally specify the "speed" argument to set how fast the entity should fly.
Optionally specify the "rotationthreshold" to set the minimum threshold (in degrees) before the entity should forcibly rotate to the correct direction.
Use the "cancel" argument to stop an existing flight.
Related Tags<PlayerTag.can_fly> Returns whether the player is allowed to fly.
<PlayerTag.fly_speed> Returns the speed the player can fly at. (...)
<PlayerTag.is_flying> Returns whether the player is currently flying.
Usage Example
#Use to make a player ride+fly a newly spawned dragon.
- fly <player>|ender_dragon
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/FlyCommand.java#L37

NameFollow
Syntaxfollow (followers:<entity>|...) (stop/target:<entity>) (lead:<#.#>) (max:<#.#>) (speed:<#.#>) (allow_wander) (no_teleport)
Short DescriptionCauses a list of entities to follow a target.
Full DescriptionCauses a list of entities to follow a target.
Specify the list of followers or just one. If no follower is specified, will use the linked NPC.
Specify either the target to follow, or 'stop'. If no target is specified, will use the linked player.
Use 'speed' to set the movement speed multiplier.
Use 'lead' to set how far away the follower will remain from the target (ie, it won't try to get closer than the 'lead' distance).
Use 'max' to set the maximum distance between the follower and the target before the follower will automatically start teleporting to keep up.
Use 'no_teleport' to disable teleporting when the entity is out of range (instead, the entity will simply give up).
Use 'allow_wander' to allow the entity to wander randomly.
The 'max' and 'allow_wander' arguments can only be used on non-NPC entities.
Related Tags<NPCTag.navigator.target_entity> returns the entity the npc is following.
Usage Example
#To make an NPC follow the player in an interact script.
- follow
Usage Example
#To make an NPC stop following.
- follow stop
Usage Example
#To explicitly make an NPC follow the player.
- follow followers:<npc> target:<player>
Usage Example
#To make an NPC follow the player, slowly and at distance.
- follow speed:0.7 lead:10
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/FollowCommand.java#L25

NameHeal
Syntaxheal (<#.#>) ({player}/<entity>|...)
Short DescriptionHeals the player or list of entities.
Full DescriptionThis command heals a player, list of players, entity or list of entities. If no amount is specified it will
heal the specified player(s)/entity(s) fully.
Related Tags<EntityTag.health> Returns the current health of the entity.
<EntityTag.health_max> Returns the maximum health of the entity.
Usage Example
#Use to fully heal a player.
- heal
Usage Example
#Use to heal a player 5 hearts.
- heal 10
Usage Example
#Use to heal a defined player fully.
- heal <[someplayer]>
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/HealCommand.java#L27

NameHealth
Syntaxhealth ({npc}/<entity>|...) [<#>] (state:{true}/false/toggle) (heal)
Short DescriptionChanges the target's maximum health.
Full DescriptionUse this command to modify an entity's maximum health.
If the target is an NPC, you can use the 'state' argument to enable, disable, or toggle the Health trait
(which is used to track the NPC's health, and handle actions such as 'on death').
The Health trait will be enabled by default.
By default, this command will target the linked NPC but can be set to target any other living entity, such as a player or mob.
Optionally specify the 'heal' argument to automatically heal the entity to the new health value.
If not specified, the entity's health will remain wherever it was
(so for example a change from 20 max to 50 max will leave an entity with 20 health out of 50 max).
Additionally, you may input a list of entities, each one will calculate the effects explained above.
Related Tags<EntityTag.health> Returns the current health of the entity.
<EntityTag.health_max> Returns the maximum health of the entity.
<NPCTag.has_trait[health]> Returns whether the NPC has a specified trait.
Usage Example
#Use to set the NPC's maximum health to 50.
- health 50
Usage Example
#Use to disable tracking of health value on the NPC.
- health state:false
Usage Example
#Use to change a player's health limit and current health both to 50.
- health <player> 50 heal
Usage Example
#Use to change a list of entities' health limits all to 50.
- health <player.location.find.living_entities.within[10]> 50
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/HealthCommand.java#L27

NameHurt
Syntaxhurt (<#.#>) ({player}/<entity>|...) (cause:<cause>) (source:<entity>) (source_once)
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,
be warned this does not always work as intended, and is liable to glitch.
You may also optionally 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.
To make the source only be included in the initial damage event, and not the application of damage, specify 'source_once'.
Note that 'cause' values are hacked in, similarly to the 'source' value.
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>
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/HurtCommand.java#L29

NameInvisible
Syntaxinvisible [<entity>] (state:true/false/toggle)
Short DescriptionMakes an NPC or entity go invisible
Full DescriptionFor non-armor stand entities, applies a maximum duration invisibility potion.
For armor stands, toggles them invisible.
Applies the 'invisible' trait to NPCs.
NPCs can't be made invisible if not added to the playerlist.
(The invisible trait adds the NPC to the playerlist when set)
See Language:invisible trait)
Related TagsNone
Usage Example
#Use to makes the player invisible.
- invisible <player> state:true
Usage Example
#Use to make the attached NPC visible if previously invisible, and invisible if not
- invisible <npc> state:toggle
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/InvisibleCommand.java#L27

NameLeash
Syntaxleash (cancel) [<entity>|...] (holder:<entity>/<location>)
Short DescriptionSticks a leash on target entity, held by a fence or another entity.
Full DescriptionAttaches a leash to the specified entity.
The leash may be attached to a fence, or another entity.
Players and Player NPCs may not be leashed.
Note that releasing a mob from a fence post may leave the leash attached to that fence post.
Non-player NPCs can be leashed if '/npc leashable' is enabled.
Related Tags<EntityTag.is_leashed> Returns whether the entity is leashed.
<EntityTag.leash_holder> Returns the leash holder of entity.
Usage Example
#Use to attach a leash to the player's target.
- leash <player.target> holder:<player>
Usage Example
#Use to attach the closest cow in 10 blocks to the fence the player is looking at.
- leash <player.location.find.entities[cow].within[10].first> holder:<player.cursor_on>
Usage Example
#Use to release the target entity.
- leash cancel <player.target>
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/LeashCommand.java#L28

NameLook
Syntaxlook (<entity>|...) [<location>/cancel] (duration:<duration>)
Short DescriptionCauses the NPC or other entity to look at a target location.
Full DescriptionMakes the entity look towards the location.
Can be used on players.
If a duration is set, the entity cannot look away from the location until the duration has expired.
Use the cancel argument to end the duration earlier.
Related Tags<LocationTag.yaw> Returns the normalized yaw of the object at the location.
<LocationTag.pitch> Returns the pitch of the object at the location.
Usage Example
#Use to point an npc towards a spot.
- look <npc> <player.location>
Usage Example
#Use to force a player to stare at a spot for some time.
- look <player> <npc.location> duration:10s
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/LookCommand.java#L32

NameMount
Syntaxmount (cancel) [<entity>|...] (<location>)
Short DescriptionMounts one entity onto another.
Full DescriptionMounts an entity onto another as though in a vehicle. Can be used to force a player into a vehicle or to
mount an entity onto another entity. e.g. a player onto an npc. If the entity(s) don't exist they will be
spawned. Accepts a location, which the entities will be teleported to on mounting.
Related Tags<EntityTag.vehicle> If the entity is in a vehicle, returns the vehicle as a EntityTag.
<EntityTag.is_inside_vehicle> Returns whether the entity is inside a vehicle.
<entry[saveName].mounted_entities> returns a list of entities that were mounted.
Usage Example
#Use to mount an NPC on top of a player.
- mount <npc>|<player>
Usage Example
#Use to spawn a mutant pile of mobs.
- mount cow|pig|sheep|chicken
Usage Example
#Use to place a diamond block above a player's head.
- mount falling_block,diamond_block|<player>
Usage Example
#Use to force an entity in a vehicle.
- mount <player>|boat
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/MountCommand.java#L28

NamePush
Syntaxpush [<entity>|...] (origin:<entity>/<location>) (destination:<location>) (speed:<#.#>) (duration:<duration>) (script:<name>) (def:<element>|...) (force_along) (precision:<#>) (no_rotate) (no_damage) (ignore_collision)
Short DescriptionPushes entities through the air in a straight line.
Full DescriptionPushes entities through the air in a straight line at a certain speed and for a certain duration,
triggering a script when they hit an obstacle or stop flying.
You must specify an entity to be pushed.
Usually, you should specify the origin and the destination. If unspecified, they will be assumed from contextual data.
You can specify the script to be run with the (script:<name>) argument,
and optionally specify definitions to be available in this script with the (def:<element>|...) argument.
Using the 'no_damage' argument causes the entity to receive no damage when they stop moving.
Optionally use the "ignore_collision" argument to ignore block collisions.
Optionally use "speed:#" to set how fast it should be pushed.
Optionally use "force_along" to cause the entity to teleport through any blockage.
Optionally use "no_rotate" to prevent entities being rotated at the start of the push.
Optionally use "duration:#" to set the max length of time to continue pushing.
The push command is ~waitable. Refer to Language:~waitable.
Related Tags<EntityTag.velocity> Returns the movement velocity of the entity. (...)
<entry[saveName].pushed_entities> returns the list of pushed entities.
Usage Example
#Use to launch an arrow straight towards a target.
- push arrow destination:<player.location>
Usage Example
#Use to launch an entity into the air.
- push cow
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/PushCommand.java#L40

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

NameRename
Syntaxrename [<name>/cancel] (t:<entity>|...) (per_player) (for:<player>|...) (list_name_only)
Short DescriptionRenames the linked NPC or list of entities.
Full DescriptionRenames the linked NPC or list of entities.
Functions like the '/npc rename' command.
Can rename a spawned or unspawned NPC to any name up to 256 characters.
Can rename a vanilla entity to any name up to 256 characters, and will automatically make the nameplate visible.
Can rename a player to any name up to 16 characters. This will affect only the player's nameplate.
Optionally specify 'per_player' to reprocess the input tags for each player when renaming a vanilla entity
(meaning, if you use "- rename <player.name> t:<[someent]> per_player", every player will see their own name on that entity).
A per_player rename will remain active until the entity is renamed again or the server is restarted.
Rename to "cancel" per_player to intentionally end a per_player rename.
Optionally specify "for:" a list of players when using per_player.
Optionally specify 'list_name_only' to only change the tab list name for a player. Works with 'per_player'.
Related Tags<EntityTag.name> Returns the name of the entity. (...)
<NPCTag.nickname> Returns the NPC's display name, as set by the Nickname trait (or the default NPC name).
Usage Example
#Use to rename the linked NPC to 'Bob'.
- rename Bob
Usage Example
#Use to rename a different NPC to 'Bob'.
- rename Bob t:<[some_npc]>
Usage Example
#Use to make an entity show players their own name for 10 seconds.
- rename <green><player.name> t:<[some_entity]> per_player
- wait 10s
- rename cancel t:<[some_entity]> per_player
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/RenameCommand.java#L42

NameRotate
Syntaxrotate (cancel) (<entity>|...) (yaw:<#.#>) (pitch:<#.#>) (infinite/duration:<duration>) (frequency:<duration>)
Short DescriptionRotates a list of entities.
Full DescriptionInduces incremental rotation on a list of entities over a period of time.
The yaw and pitch arguments specify how much the entity will rotate each step. Default to 10 and 0 respectively.
The frequency argument specifies how long it takes between each rotation step. Defaults to 1t.
The duration argument specifies how long the whole rotation process will last. Defaults to 1s.
Alternatively, use "infinite" if you want the entity to spin forever.
You can use "cancel" to prematurely stop the ongoing rotation (useful when set to infinite)
The rotate command is ~waitable. Refer to Language:~waitable.
Related Tags<EntityTag.location> Returns the location of the entity. (...)
Usage Example
#Use to rotate the player's yaw by 10 every tick for 3 seconds total
- rotate <player> duration:3s
Usage Example
#Use to rotate the player's pitch by 20 every 5 ticks for a second total
- rotate <player> yaw:0.0 pitch:20.0 frequency:5t
Usage Example
#Use to prematurely stop the player's rotation
- rotate cancel <player>
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/RotateCommand.java#L29

NameShoot
Syntaxshoot [<entity>|...] (origin:<entity>/<location>) (destination:<location>) (height:<#.#>) (speed:<#.#>) (script:<name>) (def:<element>|...) (shooter:<entity>) (spread:<#.#>) (lead:<location>) (no_rotate)
Short DescriptionShoots an entity through the air, useful for things like firing arrows.
Full DescriptionShoots an entity through the air up to a certain height, optionally triggering a script on impact with a target.
Generally, use the "speed" argument to send an entity exactly the direction you input,
and don't include it to have the entity automatically attempt to land exactly on the destination by calculating an arc.
If the origin is not an entity, specify a shooter so the damage handling code knows who to assume shot the projectile.
Normally, a list of entities will spawn mounted on top of each other. To have them instead fire separately and spread out,
specify the 'spread' argument with a decimal number indicating how wide to spread the entities.
Use the 'script:<name>' argument to run a task script when the projectiles land.
When that script runs, the following definitions will be available:
<[shot_entities]> for all shot entities (as in, the projectiles),
<[last_entity]> for the last one (The controlling entity),
<[location]> for the last known location of the last shot entity, and
<[hit_entities]> for a list of any entities that were hit by fired projectiles.
Optionally, specify a speed and 'lead' value to use the experimental arrow-aiming system.
Optionally, add 'no_rotate' to prevent the shoot command from rotating launched entities.
The shoot command is ~waitable. Refer to Language:~waitable.
Related Tags<entry[saveName].shot_entity> returns the single entity that was shot (as in, the projectile) (if you only shot one).
<entry[saveName].shot_entities> returns a ListTag of entities that were shot (as in, the projectiles).
Usage Example
#Use to shoot an arrow from the NPC to perfectly hit the player.
- shoot arrow origin:<npc> destination:<player.location>
Usage Example
#Use to shoot an arrow out of the player with a given speed.
- shoot arrow origin:<player> speed:2
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/ShootCommand.java#L51

NameSneak
Syntaxsneak [<entity>|...] ({start}/stop) (fake/stopfake) (for:<player>|...)
Short DescriptionCauses the entity to start or stop sneaking.
Full DescriptionCauses an entity to start or stop sneaking.
If the entity is NPC, adds the SneakingTrait to apply the sneak setting persistent.
Can optionally use the 'fake' argument to apply a fake sneak using packets, either globally or for specific players.
Use 'stopfake' to disable faking of sneak.
A fake sneak only affects the name plate, not the entity's pose.
Note: using this command on a player will only show to other players. You cannot alter a player in their own view.
Related Tags<NPCTag.is_sneaking> Returns whether the NPC is currently sneaking. Only works for player-type NPCs.
<PlayerTag.is_sneaking> Returns whether the player is currently sneaking.
Usage Example
#Make the linked NPC start sneaking.
- sneak <npc>
Usage Example
#Make the linked NPC stop sneaking.
- sneak <npc> stop
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/SneakCommand.java#L30

NameSpawn
Syntaxspawn [<entity>|...] (<location>) (target:<entity>) (persistent)
Short DescriptionSpawns a list of entities at a certain location.
Full DescriptionSpawn an entity or list of entities at the specified location.
Accepts the 'target:<entity>' argument which will cause all spawned entities to follow and attack the targeted entity.
If the persistent argument is present, the entity will not despawn when no players are within range, causing the entity to remain until killed.
Related Tags<EntityTag.is_spawned> Returns whether the entity is spawned.
<server.entity_is_spawned[<entity>]> Returns whether an entity is spawned and valid.
<server.entity_types> Returns a list of all entity types known to the server. (...)
<entry[saveName].spawned_entities> returns a list of entities that were spawned.
<entry[saveName].spawned_entity> returns the entity that was spawned (if you only spawned one).
Usage Example
#Use to spawn a spider at the player's location.
- spawn spider <player.location>
Usage Example
#Use to spawn a spider at the player's location which will automatically target the player.
- spawn spider <player.location> target:<player>
Usage Example
#Use to spawn a swarm of creepers around the npc, which will not despawn until killed.
- spawn creeper|creeper|creeper|creeper|creeper <npc.location> persistent
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/SpawnCommand.java#L30

NameTeleport
Syntaxteleport (<entity>|...) [<location>]
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.
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.add[0,200,0]>
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 wih the <@link command note> command.
- teleport <npc> my_prenoted_location
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/TeleportCommand.java#L35

NameWalk
Syntaxwalk (<entity>|...) [<location>/stop] (speed:<#.#>) (auto_range) (radius:<#.#>) (lookat:<location>)
Short DescriptionCauses an entity or list of entities to walk to another location.
Full DescriptionCauses an entity or list of entities to walk to another location.
Specify a destination location to walk to, or 'stop' to stop all walking.
Optionally, specify a "speed:<#.#>" argument to control the speed of the NPCs.
Optionally, specify "auto_range" to automatically set the path range for the walk instruction
(if not specified, an NPC will not be able to walk to a location outside of its existing path range, by default 25 blocks).
(Does not apply to non-NPC entities).
Note that in most cases, the walk command should not be used for paths longer than 100 blocks.
For ideal performance, keep it below 25.
Optionally, specify a list of entities to give them all the same walk instruction at the same time.
If the list is of NPCs, optionally specify a "radius:<#.#>" argument to change the flocking radius.
('Radius' does not apply to non-NPC entities).
Optionally, specify "lookat:<location>" to cause the NPCs to stare at a specific location while walking (as opposed to straight ahead).
('Radius' does not apply to non-NPC entities).
The walk command is ~waitable. Refer to Language:~waitable.
Related Tags<NPCTag.is_navigating> Returns whether the NPC is currently navigating.
<NPCTag.speed> Returns the current speed of the NPC.
<NPCTag.range> Returns the NPC's current maximum pathfinding range.
<NPCTag.target_location> Returns the location the NPC is currently navigating towards (if any).
Usage Example
#Use to make the NPC walk to an anchored position.
- walk <npc> <npc.anchor[spot1]>
Usage Example
#Use to make the NPC walk to an anchored position that may be far away.
- walk <npc> <npc.anchor[spot2]> auto_range
Usage Example
#Use to make the NPC walk to an anchored position while looking backwards.
- walk <npc> <npc.anchor[spot3]> lookat:<npc.anchor[spot2]>
Usage Example
#Use to make the NPC walk to an anchored position, and then say something after arrival, using ~waitable syntax.
- ~walk <npc> <npc.anchor[spot4]>
- chat "I'm here!"
Usage Example
#Use to make a list of NPCs stored in a flag all move together, with a flocking radius based on the number of NPCs included.
- walk <player.flag[squad]> radius:<player.flag[squad].size> <player.location>
Groupentity
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/WalkCommand.java#L38



Category: item


NameDisplayItem
Syntaxdisplayitem [<item>] [<location>] (duration:<value>)
Short DescriptionMakes a non-touchable item spawn for players to view.
Full DescriptionThis command drops an item at the specified location which cannot be picked up by players.
It accepts a duration which determines how long the item will stay for until disappearing.
If no duration is specified the item will stay for 1 minute, after which the item will disappear.
Related Tags<EntityTag.item> If the entity is a dropped item, returns the item represented by the entity. (...)
<entry[saveName].dropped> returns a EntityTag of the spawned item.
Usage Example
#Use to display a stone block dropped at a players location.
- displayitem stone <player.location>
Usage Example
#Use to display a diamond sword dropped at a relevant location.
- displayitem diamond_sword <context.location>
Usage Example
#Use to display redstone dust dropped at a related location disappear after 10 seconds.
- displayitem redstone <context.location> duration:10s
Usage Example
#Use to save the dropped item to save entry 'item_dropped'.
- displayitem redstone <context.location> duration:10s save:item_dropped
Groupitem
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/DisplayItemCommand.java#L40

NameFakeItem
Syntaxfakeitem [<item>|...] [slot:<slot>] (duration:<duration>) (players:<player>|...) (player_only)
Short DescriptionShow a fake item in a player's inventory.
Full DescriptionThis command allows you to display an item in an inventory that is not really there.
To make it automatically disappear at a specific time, use the 'duration:' argument.
By default, it will use any inventory the player currently has open.
To force it to use only the player's inventory, use the 'player_only' argument.
The slot argument can be any valid slot, see Language:Slot Inputs.
Related TagsNone
Usage Example
#Use to show a clientside-only pumpkin on the player's head.
- fakeitem pumpkin slot:head
Groupitem
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/FakeItemCommand.java#L38

NameGive
Syntaxgive [money/xp/<item>|...] (quantity:<#>) (unlimit_stack_size) (to:<inventory>) (slot:<slot>)
Short DescriptionGives the player an item, xp, or money.
Full DescriptionGives the linked player or inventory items, xp, or money.
Optionally specify a slot to put the items into. If the slot is already filled, the next available slot will be used.
If the player's inventory is full, the items will be dropped on the ground at the inventory's location.
Specifying "unlimit_stack_size" will allow an item to stack up to 64. This is useful for stacking items
with a max stack size that is less than 64 (for example, most weapon and armor items have a stack size of 1).
If an economy is registered, specifying money instead of a item will give money to the player's economy.
Related Tags<PlayerTag.money> Returns the amount of money the player has with the registered Economy system. (...)
Usage Example
#Use to give money to the player.
- give money quantity:10
Usage Example
#Use to give XP to the player.
- give xp quantity:10
Usage Example
#Use to give an item to the player.
- give iron_sword
Usage Example
#Use to give an item and place it in a specific slot if possible.
- give WATCH slot:5
Groupitem
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/GiveCommand.java#L34

NameInventory
Syntaxinventory [open/close/copy/move/swap/set/keep/exclude/fill/clear/update/adjust <mechanism>:<value>/flag <name>(:<action>)[:<value>] (duration:<duration>)] (destination:<inventory>) (origin:<inventory>/<item>|...) (slot:<slot>)
Short DescriptionEdits the inventory of a player, NPC, or chest.
Full DescriptionUse this command to edit the state of inventories.
By default, the destination inventory is the current attached player's inventory.
If you are copying, swapping, removing from (including via "keep" and "exclude"), adding to, moving, or filling inventories,
you'll need both destination and origin inventories.
Origin inventories may be specified as a list of ItemTags, but destinations must be actual InventoryTags.
Using "open", "clear", or "update" only require a destination.
"Update" also requires the destination to be a valid player inventory.
Using "close" closes any inventory that the currently attached player has opened.
The "adjust" option adjusts mechanisms on an item within a specific slot of an inventory (the "slot" parameter is required).
Note that this is only for items, it does NOT adjust the inventory itself. Use Command:adjust to adjust an inventory mechanism.
The "flag" option sets a flag on items, similar to Command:flag.
See also Language:flag system.
Note that to add items to an inventory, you should usually use Command:give,
and to remove items from an inventory, you should usually use Command:take.
The slot argument can be any valid slot, see Language:Slot Inputs.
Related Tags<PlayerTag.inventory> Returns a InventoryTag of the player's current inventory. (...)
<PlayerTag.enderchest> Gets the player's enderchest inventory. (...)
<PlayerTag.open_inventory> Gets the inventory the player currently has open. If the player has no open (...)
<NPCTag.inventory> Returns the InventoryTag of the NPC.
<LocationTag.inventory> Returns the InventoryTag of the block at the location. If the (...)
Usage Example
#Use to open a chest inventory, at a location.
- inventory open d:<context.location>
Usage Example
#Use to open a virtual inventory with a title and some items.
- inventory open d:generic[size=27;title=BestInventory;contents=snow_ball|stick]
Usage Example
#Use to open another player's inventory.
- inventory open d:<[player].inventory>
Usage Example
#Use to remove all items from a chest, except any items in the specified list.
- inventory keep d:<context.location.inventory> o:snow_ball|ItemScript
Usage Example
#Use to remove all sticks and stones from the player's inventory.
- inventory exclude origin:stick|stone
Usage Example
#Use to swap two players' inventories.
- inventory swap d:<[playerOne].inventory> o:<[playerTwo].inventory>
Usage Example
#Use to adjust a specific item in the player's inventory.
- inventory adjust slot:5 "lore:Item modified!"
Usage Example
#Use to set a single stick into slot 10 of the player's inventory.
- inventory set o:stick slot:10
Usage Example
#Use to set a temporary flag on the player's held item.
- inventory flag slot:hand my_target:<player.cursor_on> duration:1d
Groupitem
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/InventoryCommand.java#L68

NameMap
Syntaxmap [<#>/new:<world>] [reset:<location> (scale:<value>) (tracking)/image:<file> (resize)/script:<script>] (x:<#>) (y:<#>)
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 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.
The 'scale' argument takes input of one of the values listed here:
URL:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/map/MapView.Scale.html
The 'tracking' argument determines if the map will track it's 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
#Reset map to have the center at the player's location
- map 3 reset:<player.location>
Groupitem
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/MapCommand.java#L33

NameTake
Syntaxtake [money/xp/iteminhand/cursoritem/bydisplay:<name>/bycover:<title>|<author>/slot:<slot>/flagged:<flag>/item:<matcher>] (quantity:<#>) (from:<inventory>)
Short DescriptionTakes an item from the player.
Full DescriptionTakes items from a player or inventory.
If the player or inventory does not have the item being taken, nothing happens.
Using 'slot:' will take the items from that specific slot.
Using 'flagged:' with a flag name will take items with the specified flag name, see Language:flag system.
Using 'iteminhand' will take from the player's held item slot.
Using 'cursoritem' will take from the player's held cursor item (as in, one that's actively being picked up and moved in an inventory screen).
Using 'bydisplay:' will take items with the specified display name.
Using 'bycover:' will take a written book by the specified book title + author pair.
Using 'item:' will take items that match an advanced item matcher, using the system behind Language:Advanced Script Event Matching.
Using 'xp' will take experience from the player.
If an economy is registered, using 'money' instead of an item will take money from the player's economy balance.
Material, Flagged, Slot, Bydisplay, and Scriptname all sort a list as input to take multiple different item types at once.
If no quantity is specified, exactly 1 item will be taken.
Specifying a raw item without any matching method is considered unreliable and should be avoided.
Optionally using 'from:' to specify a specific inventory to take from. If not specified, the linked player's inventory will be used.
The options 'iteminhand', 'cursoritem', 'money', and 'xp' require a linked player and will ignore the 'from:' inventory.
Related Tags<PlayerTag.item_in_hand> Returns the item the entity is holding, or air if none.
<PlayerTag.money> Returns the amount of money the player has with the registered Economy system. (...)
Usage Example
#Use to take money from the player
- take money quantity:10
Usage Example
#Use to take an arrow from the player's enderchest
- take material:arrow from:<player.enderchest>
Usage Example
#Use to take the current holding item from the player's hand
- take iteminhand
Usage Example
#Use to take 5 emeralds from the player's inventory
- take material:emerald quantity:5
Groupitem
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/item/TakeCommand.java#L44



Category: npc


NameAction
Syntaxaction [<action name>|...] (<npc>|...) (context:<name>|<object>|...)
Short DescriptionManually fires an NPC action.
Full DescriptionThis command will trigger an NPC action (an action within an 'assignment' type script attached to the NPC) exactly the same
as if an actual serverside event had caused it.
You can specify as many action names as you want in the list, they will all be fired.
You may also specify as many NPCs as you would like to run the action on, in a list.
If no NPCs are specified, the NPC linked to the script will be assumed.
The script's linked player and the specified NPC will automatically be sent through to the action.
To add context information (tags like <context.location>) to the action, simply specify all context values in a list.
Note that there are some inherent limitations... EG, you can't directly add a list to the context currently.
To do this, the best way is to just escape the list value (see Language:Escaping System).
Related TagsNone
Usage Example
#Use to trigger a custom action
- action "custom action"
Usage Example
#Use to trigger multiple custom action with context on a different NPC
- action "player dances|target enemy" <[some_npc]> context:action|custom|target|<player.selected_npc>
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/ActionCommand.java#L23

NameAnchor
Syntaxanchor [id:<name>] [remove/add <location>]
Short DescriptionControls an NPC's Anchor Trait.
Full DescriptionThe anchor system inside Citizens allows locations to be 'bound' to an NPC, saved by an 'id'.
The anchor command can add and remove new anchors.
The Anchors Trait can also be used as a sort of 'waypoints' system.
As the Anchor command is an NPC specific command, a valid npc object must be referenced in the script entry.
If none is provided by default, use the 'npc:<npc>' argument.
Related Tags<NPCTag.anchor[anchor_name]> Returns the location associated with the specified anchor, or null if it doesn't exist.
<NPCTag.list_anchors> Returns a list of anchor names currently assigned to the NPC.
<NPCTag.has_anchors> Returns whether the NPC has anchors assigned.
Usage Example
#Use to add and remove anchors to an NPC.
- define location_name <context.message>
- chat "I have saved this location as <[location_name]>.'
- anchor add <npc.location> id:<[location_name]>
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/AnchorCommand.java#L27

NameAssignment
Syntaxassignment [set/remove] (script:<name>) (to:<npc>|...)
Short DescriptionChanges an NPC's assignment.
Full DescriptionChanges an NPC's assignment as though you used the '/npc assignment' command.
Uses the script: argument, which accepts an assignment-type script.
Optionally, specify a list of NPCs to apply the trait to. If unspecified, the linked NPC will be used.
Related Tags<NPCTag.script> Returns the NPC's assigned script.
<server.npcs_assigned[<assignment_script>]> Returns a list of all NPCs assigned to a specified script.
Usage Example
#Use to assign an npc with an assignment script named 'Bob_the_Builder'.
- assignment set script:Bob_the_Builder
Usage Example
#Use to give a different NPC an assignment.
- assignment set script:Bob_the_Builder npc:<[some_npc]>
Usage Example
#Use to remove an npc's assignment.
- assignment remove
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/AssignmentCommand.java#L31

NameBreak
Syntaxbreak [<location>] (<npc>) (radius:<#.#>)
Short DescriptionMakes an NPC walk over and break a block.
Full DescriptionBy itself, the 'break' command will act as an NPC command in the sense that an attached
NPC will navigate to and break the block at the attached location. It can also accept a specified npc,
to fulfill the command, just specify a 'fetchable' npc object. It can also accept a radius to start
breaking the block from within. To specify the radius, prefix the radius with 'radius:'.
The break command is ~waitable. Refer to Language:~waitable.
Related Tags<NPCTag.is_navigating> Returns whether the NPC is currently navigating.
<NPCTag.target_location> Returns the location the NPC is currently navigating towards (if any).
Usage Example
#Use to make the npc break a related block.
- ~break <context.location>
Usage Example
#Use to make a different NPC break a related block.
- ~break <context.location> <[some_npc]>
Usage Example
#Use to make a different NPC break a related block and start digging from 5 blocks away.
- ~break <context.location> <[some_npc]> radius:5
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/BreakCommand.java#L30

NameCreate
Syntaxcreate [<entity>] [<name>] (<location>) (traits:<trait>|...) (registry:<name>)
Short DescriptionCreates a new NPC, and optionally spawns it at a location.
Full DescriptionCreates an npc which the entity type specified, or specify an existing npc to create a copy.
If no location is specified the npc is created despawned.
Use the 'save:<savename>' argument to return the npc for later use in a script.
Optionally specify a list of traits to immediately apply when creating the NPC.
Optionally specify a custom registry to create the NPC into. (Most users, leave this option off).
Will generate a new registry if needed.
Related Tags<server.npcs> Returns a list of all NPCs.
<entry[saveName].created_npc> returns the NPC that was created.
Usage Example
#Use to create a despawned NPC for later usage.
- create player Bob
Usage Example
#Use to create an NPC and spawn it immediately.
- create spider Joe <player.location>
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/CreateCommand.java#L31

NameDespawn
Syntaxdespawn (<npc>|...)
Short DescriptionTemporarily despawns the linked NPC or a list of NPCs.
Full DescriptionThis command will temporarily despawn either the linked NPC or a list of other NPCs.
Despawning means they are no longer visible or interactable, but they still exist and can be respawned.
Related Tags<NPCTag.is_spawned> Returns whether the NPC is spawned.
Usage Example
#Use to despawn the linked NPC.
- despawn
Usage Example
#Use to despawn several NPCs.
- despawn <npc>|<player.selected_npc>|<[some_npc]>
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/DespawnCommand.java#L27

NameDisengage
Syntaxdisengage
Short DescriptionEnables an NPCs triggers that have been temporarily disabled by the engage command.
Full DescriptionRe-enables any toggled triggers that have been disabled by disengage. Using
disengage inside scripts must have an NPC to reference, or one may be specified
by supplying a valid NPCTag object with the npc argument.
This is mostly regarded as an 'interact script command', though it may be used inside
other script types. This is because disengage works with the trigger system, which is an
interact script-container feature.
NPCs that are interacted with while engaged will fire an 'on unavailable' assignment
script-container action.
See Command:Engage
Related Tags<NPCTag.engaged> Returns whether the NPC is currently engaged. (...)
Usage Example
#Use to reenable an NPC's triggers, disabled via 'engage'.
- engage
- chat 'Be right there!'
- walk <player.location>
- wait 5s
- disengage
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/DisengageCommand.java#L18

NameEngage
Syntaxengage (<duration>)
Short DescriptionTemporarily disables an NPCs toggled interact script-container triggers.
Full DescriptionEngaging an NPC will temporarily disable any interact script-container triggers. To reverse
this behavior, use either the disengage command, or specify a duration in which the engage
should timeout. Specifying an engage without a duration will render the NPC engaged until
a disengage is used on the NPC. Engaging an NPC affects all players attempting to interact
with the NPC.
While engaged, all triggers and actions associated with triggers will not 'fire', except
the 'on unavailable' assignment script-container action, which will fire for triggers that
were enabled previous to the engage command.
Engage can be useful when NPCs are carrying out a task that shouldn't be interrupted, or
to provide a good way to avoid accidental 'retrigger'.
See Command:Disengage
Related Tags<NPCTag.engaged> Returns whether the NPC is currently engaged. (...)
Usage Example
#Use to make an NPC appear 'busy'.
- engage
- chat 'Give me a few minutes while I mix you a potion!'
- walk <npc.anchor[mixing_station]>
- wait 10s
- walk <npc.anchor[service_station]>
- chat 'Here you go!'
- give potion <player>
- disengage
Usage Example
#Use to avoid 'retrigger'.
- engage 5s
- take quest_item
- flag player finished_quests:->:super_quest
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/EngageCommand.java#L27

NameFish
Syntaxfish [<location>/stop] (catch:{none}/default/junk/treasure/fish) (chance:<#>)
Short DescriptionCauses an NPC to begin fishing around a specified location.
Full DescriptionCauses an NPC to begin fishing at the specified location.
Setting catch determines what items the NPC may fish up, and the chance is the odds of the NPC fishing up an item.
Related TagsNone
Usage Example
#Makes the NPC throw their fishing line out to where the player is looking, with a 50% chance of catching fish.
- fish <player.cursor_on> catch:fish chance:50
Usage Example
#Makes the NPC stop fishing.
- fish stop
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/FishCommand.java#L26

NameLookClose
Syntaxlookclose (<npc>) (state:<true/false>) (range:<#>) (realistic)
Short DescriptionInteracts with an NPCs 'lookclose' trait as provided by Citizens.
Full DescriptionUse this command with any NPC to alter the state and options of its 'lookclose' trait.
When an NPC's 'lookclose' trait is toggled to true, the NPC's head will follow nearby players.
Specifying realistic will enable a higher precision and detection of players, while taking into account 'line-of-sight', however can use more CPU cycles.
You may also specify a range integer to specify the number of blocks that will trigger the NPC's attention.
Related Tags<NPCTag.lookclose> Returns whether the NPC has lookclose enabled.
Usage Example
#Use to cause the NPC to begin looking at nearby players.
- lookclose true
Usage Example
#Use to cause the NPC to stop looking at nearby players.
- lookclose false
Usage Example
#Use to change the range and make the NPC more realistic
- lookclose true range:10 realistic
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/LookcloseCommand.java#L24

NamePause
Syntaxpause [waypoints/activity] (<duration>)
Short DescriptionPauses an NPC's waypoint navigation or goal activity temporarily or indefinitely.
Full DescriptionThe pause command pauses an NPC's waypoint navigation or goal activity temporarily or indefinitely.
This works along side Command:resume.
"Waypoints" refers to the NPC's path navigation, usually set via "/npc path".
"Activity" refers to the Citizens AI Goal system, which may be used by some plugins but usually is not.
If no duration is specified, the resume command must be used to unpause it.
Related Tags<NPCTag.is_navigating> Returns whether the NPC is currently navigating.
Usage Example
#Use to pause an NPC's waypoint navigation indefinitely.
- pause waypoints
Usage Example
#Use to pause an NPC's goal activity temporarily.
- pause activity 1m
Usage Example
#Use to pause an NPC's waypoint navigation and then resume it.
- pause waypoints
- resume waypoints
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/PauseCommand.java#L34

NameResume
Syntaxresume [waypoints/activity] (<duration>)
Short DescriptionResumes an NPC's waypoint navigation or goal activity temporarily or indefinitely.
Full DescriptionThe resume command resumes an NPC's waypoint navigation or goal activity temporarily or indefinitely.
This works along side Command:pause.
See the documentation of the pause command for more details.
Related Tags<NPCTag.is_navigating> Returns whether the NPC is currently navigating.
Usage Example
#Use to pause an NPC's waypoint navigation and then resume it.
- pause waypoints
- resume waypoints
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/PauseCommand.java#L70

NamePose
Syntaxpose (add/remove/{assume}) [id:<name>] (player/{npc}) (<location>)
Short DescriptionRotates the player or NPC to match a pose, or adds/removes an NPC's poses.
Full DescriptionMakes a player or NPC assume the position of a pose saved on an NPC, removes a
pose with a specified ID from the current linked NPC, or adds a pose to the NPC
with an ID and a location, although the only thing that matters in the location
is the pitch and yaw.
Related Tags<NPCTag.has_pose[<name>]> Returns true if the NPC has the specified pose, otherwise returns false.
<NPCTag.pose[<name>]> Returns the pose as a LocationTag with x, y, and z set to 0, and the world set to the first (...)
Usage Example
#Make an NPC assume a pose.
- pose id:MyPose1
Usage Example
#Add a pose to an NPC. (Note that only the last 2 numbers matter)
- pose add id:MyPose2 0,0,0,-2.3,5.4
Usage Example
#Remove a pose from an NPC.
- pose remove id:MyPose1
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/PoseCommand.java#L25

NamePushable
Syntaxpushable (state:true/false/{toggle}) (delay:<duration>) (returnable:true/false)
Short DescriptionEdits the pushable trait for NPCs.
Full DescriptionEnables, disables, toggles, or edits the Pushable trait on the attached NPC.
Related TagsNone
Usage Example
#Use to toggle the Pushable trait for a specified NPC.
- pushable npc:<[some_npc]>
Usage Example
#Use to enable the Pushable trait and return after 2 seconds.
- pushable state:true delay:2s returnable:true
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/PushableCommand.java#L23

NameSit
Syntaxsit (<location>)
Short DescriptionCauses the NPC to sit. To make them stand, see Command:Stand.
Full DescriptionMakes the linked NPC sit at the specified location.
Use Command:Stand to make the NPC stand up again.
Related Tags<NPCTag.is_sitting> Returns true if the NPC is sitting. Relates to Command:sit.
Usage Example
#Make the linked NPC sit at the player's cursor location.
- sit <player.cursor_on>
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/SitCommand.java#L24

Namesleep
Syntaxsleep (<location>)
Short DescriptionCauses the NPC to sleep. To make them wake up, see Command:Stand.
Full DescriptionMakes the linked NPC sleep at the specified location.
Use Command:Stand to make the NPC wake back up.
Related Tags<NPCTag.is_sleeping> Returns true if the NPC is sleeping. Relates to Command:sleep.
Usage Example
#Make the linked NPC sleep at the player's cursor location.
- sleep <player.cursor_on>
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/SleepCommand.java#L25

NameStand
Syntaxstand
Short DescriptionCauses the NPC to stand up from sitting or sleeping.
Full DescriptionMakes the linked NPC stop sitting or sleeping.
To make them sit, see Command:Sit.
To make them sleep, see Command:Sleep.
Related TagsNone
Usage Example
#Make the linked NPC stand up.
- stand
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/StandCommand.java#L24

NameTrait
Syntaxtrait (state:true/false/{toggle}) [<trait>] (to:<npc>|...)
Short DescriptionAdds or removes a trait from an NPC.
Full DescriptionThis command adds or removes a trait from an NPC.
Use "state:true" to add or "state:false" to remove.
If neither is specified, the default is "toggle", which means remove if already present or add if not.
Note that a redundant instruction, like adding a trait that the NPC already has, will give an error message.
The trait input is simply the name of the trait, like "sentinel".
Optionally, specify a list of NPCs to apply the trait to. If unspecified, the linked NPC will be used.
Related Tags<NPCTag.has_trait[<trait>]> Returns whether the NPC has a specified trait.
<NPCTag.traits> Returns a list of all of the NPC's traits.
<server.traits> Returns a list of all available NPC traits on the server.
Usage Example
#Use to add the Sentinel trait to the linked NPC.
- trait state:true sentinel
Usage Example
#Use to toggle the MobProx trait on the linked NPC.
- trait mobprox
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/TraitCommand.java#L31

NameTrigger
Syntaxtrigger [name:<trigger>] (state:{toggle}/true/false) (cooldown:<duration>) (radius:<#>)
Short DescriptionEnables or disables a trigger.
Full DescriptionThis command enables or disables an interact script trigger for the linked NPC.
This is generally meant to be used within the 'on assignment' action in an assignment script.
This might also be useful on timed activations or other special events (such as an NPC that "goes to bed" at the end of the day,
you might disable the proximity trigger that would otherwise normally show a greeting message).
The "name" argument is required, and can have any supported trigger name.
The 4 triggers available by default are chat, click, damage, and proximity.
For more details of the available trigger types, refer to Language:Interact Script Triggers.
The "state" argument can be 'true' (to enable it), 'false' (to disable it),
or unspecified to toggle it (that is, enable if it's currently off, or disable if it's currently on).
You can specify the "cooldown" argument to set how long the trigger must wait
after any firing before it can be fired again.
You can specify the "radius" argument to set how far away a player can be when activating it.
Note that the way this applies varies from trigger to trigger.
For the "chat" trigger, a large radius can be easily accidentally triggered by unrelated chatter.
For the "proximity" trigger, the radius argument should almost always be specified, as you generally want to control this with care.
For the "click" and "damage" trigger, the radius argument will be ignored.
Related Tags<NPCTag.has_trigger[<trigger>]> Returns whether the NPC has a specified trigger.
Usage Example
#Use to enable the click trigger.
- trigger name:click state:true
Usage Example
#Use to enable the chat trigger with a 10-second cooldown and a radius of 5 blocks.
- trigger name:chat state:true cooldown:10s radius:5
Usage Example
#Use to disable the proximity trigger.
- trigger name:proximity state:false
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/TriggerCommand.java#L25

NameVulnerable
Syntaxvulnerable (state:{true}/false/toggle)
Short DescriptionSets whether an NPC is vulnerable.
Full DescriptionToggles whether an NPC can be hurt or not.
Related Tags<NPCTag.invulnerable> Returns whether the NPC is currently invulnerable. (...)
Usage Example
#Makes an NPC vulnerable.
- vulnerable state:true
Usage Example
#Makes an NPC vulnerable if it is not, and invulnerable if it is.
- vulnerable
Groupnpc
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/npc/VulnerableCommand.java#L21



Category: player


NameActionBar
Syntaxactionbar [<text>] (targets:<player>|...) (format:<name>) (per_player)
Short DescriptionSends a message to a player's action bar.
Full DescriptionSends a message to the target's action bar area.
If no target is specified it will default to the attached player.
Accepts the 'format:<name>' 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, "- actionbar 'hello <player.name>' targets:<server.online_players>"
would normally show "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).
Related TagsNone
Usage Example
#Use to send a message to the player's action bar.
- actionbar "Hey there <player.name>!"
Usage Example
#Use to send a message to a list of players.
- actionbar "Hey, welcome to the server!" targets:<[thatplayer]>|<[player]>|<[someplayer]>
Usage Example
#Use to send a message to a list of players, with a formatted message.
- actionbar "Hey there!" targets:<[thatplayer]>|<[player]> format:ServerChat
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ActionBarCommand.java#L35

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.
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.
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

NameBlockCrack
Syntaxblockcrack [<location>] [progress:<#>] (stack) (players:<player>|...)
Short DescriptionShows the player(s) a block cracking animation.
Full DescriptionYou must specify a progress number between 1 and 10, where 1 is the first stage and 10 is the last.
To remove the animation, you must specify any number outside of that range. For example, 0.
Optionally, you can stack multiple effects
Related TagsNone
Usage Example
#Use to show a crack in a block to the currently attached player.
- blockcrack <context.location> progress:4
Usage Example
#Use to stop showing a crack in a block to all online players.
- blockcrack <context.location> progress:0 players:<server.online_players>
Usage Example
#Use to show all 10 layers of block cracking at the same time.
- repeat 10:
  - blockcrack <context.location> progress:<[value]> stack
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/BlockCrackCommand.java#L34

NameChat
Syntaxchat [<text>] (no_target/targets:<entity>|...) (talkers:<entity>|...) (range:<#.#>)
Short DescriptionCauses an NPC/NPCs to send a chat message to nearby players.
Full DescriptionChat uses an NPC's speech controller provided by Denizen, typically inside 'interact' or 'task' script-containers.
Typically there is already player and NPC context inside a queue that is using the 'chat' command.
In this case, only a text input is required.
Alternatively, target entities can be specified to have any Entity chat to a different target/targets,
or specify 'no_target' to not send the message to any specific target.
Chat from an NPC is formatted by the settings present in Denizen's config.yml.
Players being chatted to see a slightly different message than surrounding players.
By default, a 'chat' will allow other players nearby to also see the conversation. For example:


- chat 'Hello!'
Related TagsNone
Usage Example
#Use to emulate an NPC talking out loud to a Player within an interact script-container.
- chat "Hello, <player.name>! Nice day, eh?"
Usage Example
#Use to have an NPC talk to a group of individuals.
- chat targets:<npc.location.find.players.within[6].filter[has_flag[clan_initiate]]> "Welcome, initiate!"
Groupplayer
RequiresCitizens
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ChatCommand.java#L27

NameClickable
Syntaxclickable [<script>] (def:<element>|...) (usages:<#>) (for:<player>|...) (until:<duration>)
Short DescriptionGenerates a clickable command for players.
Full DescriptionGenerates a clickable command for players.
Specify a task script to run, and optionally any definitions to pass.
Optionally specify a maximum number of usages (defaults to unlimited).
Optionally specify what players are allowed to use it. Defaults to unrestricted (any player may use it).
Players will need the permission "denizen.clickable" to be able to use this.
Related Tags<entry[saveName].command> returns the command to use in "on_click"
<ElementTag.on_click[<command>]> Adds a click command to the element, which makes the element execute the input command when clicked. (...)
Usage Example
#Use to generate a clickable message that will run a task script named 'test_script'.
- clickable test_script save:my_clickable
- narrate "Click <blue><element[here].on_click[<entry[my_clickable].command>]><reset>!"
Usage Example
#Use to generate a clickable message that will run a task script named 'reward_drop', that can be used by only the first person to click it.
- clickable reward_drop usages:1 save:reward
- announce "<blue><bold><element[Reward Here].on_click[<entry[reward].command>]><reset>!"
Usage Example
#Use to generate a clickable message exclusively for the linked player, that must be used within a minute.
- clickable your_secret def:quest3 for:<player> until:1m save:secretmessage
- narrate "Do you want to know the secret? <blue><element[Yes].on_click[<entry[secretmessage].command>]><reset> / No."
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ClickableCommand.java#L39

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.
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#L27

Namedisguise
Syntaxdisguise [<entity>] [cancel/as:<type>] (global/players:<player>|...)
Short DescriptionMakes the player see an entity as though it were a different type of entity.
Full DescriptionMakes the player see an entity as though it were a different type of entity.
The entity won't actually change on the server.
The entity will still visibly behave the same as the real entity type does.
Be warned that the replacement is imperfect, and visual or internal-client errors may arise from using this command.
If you disguise a player to themself, they will see a slightly-lagging-behind copy of the disguise entity.
The disguise will last until a server restart, or the cancel option is used.
Optionally, specify a list of players to show or cancel the entity to.
If unspecified, will default to the linked player.
Or, specify 'global' to make the disguise or cancel apply for all players. If using global, use "players:<player>" to show to the self-player.
To remove a disguise, use the 'cancel' argument.
Related Tags<PlayerTag.disguise_to_self[(<player>)]> Returns the fake entity used to disguise the entity in the player's self-view (only relevant to players), either globally (if no context input given), or to the specified player. (...)
<EntityTag.is_disguised[(<player>)]> Returns whether the entity is currently disguised, either globally (if no context input given), or to the specified player. (...)
<EntityTag.disguised_type[(<player>)]> Returns the entity type the entity is disguised as, either globally (if no context input given), or to the specified player. (...)
<EntityTag.disguise_to_others[(<player>)]> Returns the fake entity used to disguise the entity in other's views, either globally (if no context input given), or to the specified player. (...)
Usage Example
#Use to show a turn the NPC into a creeper for the linked player.
- disguise <npc> as:creeper
Usage Example
#Use to show a turn the NPC into a red sheep for the linked player.
- disguise <npc> as:sheep[color=red]
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/DisguiseCommand.java#L42

NameExperience
Syntaxexperience [{set}/give/take] (level) [<#>]
Short DescriptionGives or takes experience points to the player.
Full DescriptionThis command allows modification of a players experience points.
Experience can be modified in terms of XP points, or by levels.
Note that the "set" command does not affect levels, but xp bar fullness.
(E.g. setting experience to 0 will not change a players level, but will
set the players experience bar to 0)
Related Tags<PlayerTag.xp> Returns the percentage of experience points to the next level.
<PlayerTag.xp_to_next_level> Returns the amount of XP the player needs to get to the next level.
<PlayerTag.xp_total> Returns the total amount of experience points the player has.
<PlayerTag.xp_level> Returns the number of XP levels the player has.
Usage Example
#Use to set a player's experience bar to 0.
- experience set 0
Usage Example
#Use give give a player 1 level.
- experience give level 1
Usage Example
#Use to take 1 level from a player.
- experience take level 1
Usage Example
#Use to give a player with the name steve 10 experience points.
- experience give 10 player:<[someplayer]>
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ExperienceCommand.java#L21

NameFakeSpawn
Syntaxfakespawn [<entity>] [<location>/cancel] (players:<player>|...) (d:<duration>{10s})
Short DescriptionMakes the player see a fake entity spawn that didn't actually happen.
Full DescriptionMakes the player see a fake entity spawn that didn't actually happen.
This means that the server will not track the entity, and players not included in the command will not see the entity.
You must specify an entity to spawn and a location to spawn it at, or to remove a fake entity, specify the fake entity object and 'cancel' instead of a location.
Optionally, specify a list of players to show the entity to. If unspecified, will default to the linked player.
Optionally, specify how long the fake entity should remain for. If unspecified, will default to 10 seconds.
After the duration is up, the entity will be removed from the player(s).
Related Tags<PlayerTag.fake_entities> Returns a list of fake entities the player can see, as set by Command:fakespawn. (...)
<entry[saveName].faked_entity> returns the spawned faked entity.
Usage Example
#Use to show a fake creeper in front of the attached player.
- fakespawn creeper <player.location.forward[5]>
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/FakeSpawnCommand.java#L31

NameGlow
Syntaxglow [<entity>|...] (<should glow>)
Short DescriptionMakes the linked player see the chosen entities as glowing.
Full DescriptionMakes the linked player see the chosen entities as glowing.
BE WARNED, THIS COMMAND IS HIGHLY EXPERIMENTAL AND MAY NOT WORK AS EXPECTED.
This command works by globally enabling the glow effect, then whitelisting who is allowed to see it.
This command does it's best to disable glow effect when the entity is unloaded, but does not guarantee it.
Related Tags<EntityTag.glowing> Returns whether this entity is glowing.
Usage Example
#Use to make the player's target glow.
- glow <player.target>
Usage Example
#Use to make the player's target not glow.
- glow <player.target> false
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/GlowCommand.java#L32

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, while 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.
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

NameItemCooldown
Syntaxitemcooldown [<material>|...] (duration:<duration>)
Short DescriptionPlaces a cooldown on a material in a player's inventory.
Full DescriptionPlaces a cooldown on a material in a player's inventory.
Related Tags<PlayerTag.item_cooldown[<material>]> Returns the cooldown duration remaining on player's material.
Usage Example
#Places a 1 second cooldown on using an ender pearl.
- itemcooldown ender_pearl
Usage Example
#Places a 10 minute cooldown on using golden apples.
- itemcooldown golden_apple d:10m
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ItemCooldownCommand.java#L28

Namekick
Syntaxkick [<player>|...] (reason:<text>)
Short DescriptionKicks a player from the server.
Full DescriptionKick a player or a list of players from the server and optionally specify a reason.
If no reason is specified it defaults to "Kicked."
Related TagsNone
Usage Example
#Use to kick the player with the default reason.
- kick <player>
Usage Example
#Use to kick the player with a reason.
- kick <player> "reason:Because I can."
Usage Example
#Use to kick another player with a reason.
- kick <[player]> "reason:Because I can."
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/KickCommand.java#L24

NameMoney
Syntaxmoney [give/take/set] (quantity:<#.#>) (players:<player>|...)
Short DescriptionManage a player's money.
Full DescriptionGive money to, take money from, and set the balance of a player.
If no quantity is specified it defaults to '1'. You can specify a list of
players to give to or take from. If no player(s) are specified defaults to the attached player.
NOTE: This requires an economy plugin. May work for offline players depending on economy plugin.
Related Tags<PlayerTag.money> Returns the amount of money the player has with the registered Economy system. (...)
Usage Example
#Use to give 1 money to the player.
- money give
Usage Example
#Use to take 10 money from a player.
- money take quantity:10 from:<[player]>
Usage Example
#Use to give all players on the server 100 money.
- money give quantity:100 to:<server.players>
Usage Example
#Use to set the money of all online players to 250.
- money set quantity:250 players:<server.online_players>
Groupplayer
RequiresVault
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/MoneyCommand.java#L29

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

NameOpenTrades
Syntaxopentrades [<entity>/<trade>|...] (title:<title>) (players:<player>|...)
Short DescriptionOpens the specified villager entity's trading inventory or a list of trades.
Full DescriptionForces a player to open a villager's trading inventory or a virtual trading inventory.
If an entity is specified, only one player can be specified.
Otherwise, if a list of trades is specified, more than one player can be specified.
If the title is not specified, no title will be applied to the virtual trading inventory.
If no player is specified, by default the attached player will be forced to trade.
Related Tags<PlayerTag.selected_trade_index> Returns the index of the trade the player is currently viewing, if any.
<EntityTag.is_trading> Returns whether the villager entity is trading.
<EntityTag.trades> Returns a list of the Villager's trade recipes.
<EntityTag.trading_with> Returns the player who is trading with the villager entity, or null if it is not trading.
Usage Example
#Use to open an unusable trade.
- opentrades trade
Usage Example
#Use to open a list of trades with an optional title.
- opentrades trade[result=stone;inputs=stone;max_uses=9999]|trade[result=barrier] "title:Useless Trades"
Usage Example
#Use to force a player to trade with a villager.
- opentrades <[villager_entity]>
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/OpenTradesCommand.java#L32

NameOxygen
Syntaxoxygen [<#>] (type:{remaining}/maximum) (mode:{set}/add/remove)
Short DescriptionGives or takes breath from the player.
Full DescriptionUsed to add to, remove from or set the amount of current oxygen of a player. Also allows for the changing of the
player's maximum oxygen level. Value is in ticks, so 30 equals to 1 bubble.
Related Tags<PlayerTag.oxygen> Returns the duration of oxygen the entity has left. (...)
<PlayerTag.max_oxygen> Returns the maximum duration of oxygen the entity can have. (...)
Usage Example
#Use to set the player's current oxygen level to 5 bubbles.
- oxygen 150
Usage Example
#Use to add 1 bubble to the player's current oxygen level.
- oxygen 30 mode:add
Usage Example
#Use to set the player's maximum oxygen level to 20 bubbles.
- oxygen 600 type:maximum
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/OxygenCommand.java#L21

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.
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

NameShowFake
Syntaxshowfake [<material>|.../cancel] [<location>|...] (players:<player>|...) (d:<duration>{10s})
Short DescriptionMakes the player see a block change that didn't actually happen.
Full DescriptionMakes the player see a block change that didn't actually happen.
This means that the server will still register the block being what it was before the command,
and players not included in the command will still see the original block.
You must specify a location (or list of locations), and a material (or list of materials).
The material list does not have to be of the same size as the location list (materials will be repeated automatically).
Optionally, specify a list of players to show the change to.
If unspecified, will default to the linked player.
Optionally, specify how long the fake block should remain for.
If unspecified, will default to 10 seconds.
After the duration is up, the block will revert back to whatever it really is (on the server-side).
Note that while the player will see the block as though it were real, the server will have no knowledge of this.
This means that if the player, for example, stands atop a fake block that the server sees as air, that player will be seen as flying.
The reverse applies as well: if a player walks through fake air (that is actually solid), the server will see a player walking through walls.
This can easily lead to players getting kicked by anti-cheat systems or similar results.
You can enable the player to walk through fake air via Mechanism:PlayerTag.noclip.
Note as well that some clientside block effects may occur (eg fake fire may appear momentarily to actually ignite things, but won't actually damage them).
Warning: extremely complex chunks (those with a significant variety of block types in a small area) might not be able to retain fake blocks over time properly.
Related Tags<PlayerTag.fake_block_locations> Returns a list of locations that the player will see a fake block at, as set by Command:showfake or connected commands.
<PlayerTag.fake_block[<location>]> Returns the fake material that the player will see at the input location, as set by Command:showfake or connected commands. (...)
Usage Example
#Use to place a fake gold block at where the player is looking
- showfake gold_block <player.cursor_on>
Usage Example
#Use to place a stone block right on player's head, that only stays for a second.
- showfake stone <player.location.add[0,1,0]> duration:1s
Usage Example
#Use to place fake lava that the player is standing in, for all the server to see
- showfake lava <player.location> players:<server.online_players>
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ShowFakeCommand.java#L31

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
lines 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#L36

NameStatistic
Syntaxstatistic [<statistic>] [add/take/set] (<#>) (qualifier:<material>/<entity>)
Short DescriptionChanges the specified statistic value for a player.
Full DescriptionChanges the specified statistic for the player.
For more info on statistics, see URL:https://minecraft.gamepedia.com/Statistics
For statistic names, see URL:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Statistic.html
You can add, take, or set a numeric value to the statistic for the linked player.
Works with offline players.
Some statistics are unique per a material or entity - for those, use the "qualifier" argument.
Related Tags<PlayerTag.statistic[<statistic>]> Returns the player's current value for the specified statistic. (...)
<PlayerTag.statistic[<statistic>].qualifier[<material>/<entity>]> Returns the player's current value for the specified statistic, with the (...)
Usage Example
#Use to hide the evidence of all the animal breeding you've done.
- statistic animals_bred set 0
Usage Example
#Use to pretend you just ran a 5k.
- statistic walk_one_cm add 500000
Usage Example
#Use to make it look like that challenge course wasn't even hard for you at all.
- statistic deaths take 200
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/StatisticCommand.java#L29

NameTeam
Syntaxteam (id:<scoreboard>/{main}) [name:<team>] (add:<entry>|...) (remove:<entry>|...) (prefix:<prefix>) (suffix:<suffix>) (option:<type> status:<status>) (color:<color>)
Short DescriptionControls scoreboard teams.
Full DescriptionThe Team command allows you to control a scoreboard team.
Use the "prefix" or "suffix" arguments to modify a team's playername prefix and suffix.
NOTE: Prefixes and suffixes cannot be longer than 16 characters!
Use the "color" argument to set the team color (for glowing, names, etc). Must be from URL:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/ChatColor.html.
Use the "add" and "remove" arguments to add or remove players by name to/from the team.
Use the "option" and "status" arguments together to set a team option's status.
Option can be "COLLISION_RULE", "DEATH_MESSAGE_VISIBILITY", or "NAME_TAG_VISIBILITY", with status "ALWAYS", "FOR_OTHER_TEAMS", "FOR_OWN_TEAM", or "NEVER".
Option can instead be "FRIENDLY_FIRE" or "SEE_INVISIBLE", only allowing status "ALWAYS" or "NEVER".
Related Tags<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. (...)
Usage Example
#Use to add a player to a team.
- team name:red add:<player.name>
Usage Example
#Use to add an NPC to a team.
- team name:blue add:<npc.name>
Usage Example
#Use to change the prefix for a team.
- team name:red "prefix:[<red>Red Team<reset>]"
Usage Example
#Use to hide nameplates for members of a team.
- team name:red option:name_tag_visibility status:never
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/TeamCommand.java#L26

NameTitle
Syntaxtitle (title:<text>) (subtitle:<text>) (fade_in:<duration>/{1s}) (stay:<duration>/{3s}) (fade_out:<duration>/{1s}) (targets:<player>|...) (per_player)
Short DescriptionDisplays a title to specified players.
Full DescriptionShows the players a large, noticeable wall of text in the center of the screen.
You can also show a "subtitle" below that title.
You may add timings for fading in, staying there, and fading out.
The defaults for these are: 1 second, 3 seconds, and 1 second, respectively.
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, "- title 'title: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).
Related TagsNone
Usage Example
#Use to alert players of impending server restart.
- title "title:<red>Server Restarting" "subtitle:<red>In 1 minute!" stay:1m targets:<server.online_players>
Usage Example
#Use to inform the player about the area they have just entered.
- title "title:<green>Tatooine" "subtitle:<gold>What a desolate place this is."
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/TitleCommand.java#L30

NameToast
Syntaxtoast [<text>] (targets:<player>|...) (icon:<item>) (frame:{task}/challenge/goal) (background:<texture>)
Short DescriptionShows the player a custom advancement toast.
Full DescriptionDisplays a client-side custom advancement "toast" notification popup to the player(s).
If no target is specified it will default to the attached player.
The icon argument changes the icon displayed in the toast pop-up notification.
The frame argument changes the type of advancement.
The background texture can be specified as a file path with an optional namespace key prefix.
By default, the background texture is "minecraft:textures/gui/advancements/backgrounds/adventure.png"
Related TagsNone
Usage Example
#Welcomes the player with an advancement toast.
- toast "Welcome <player.name>!"
Usage Example
#Sends the player an advancement toast with a custom icon.
- toast "Diggy Diggy Hole" icon:iron_spade
Usage Example
#Sends the player a "Challenge Complete!" type advancement toast.
- toast "You finished a challenge!" frame:challenge icon:diamond
Groupplayer
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/player/ToastCommand.java#L34



Category: server


NameAnnounce
Syntaxannounce [<text>] (to_ops/to_console/to_flagged:<flag_name>) (format:<name>)
Short DescriptionAnnounces a message for everyone online to read.
Full DescriptionAnnounce sends a raw message to players.
Simply using announce with text will send the message to all online players using the Spigot broadcast system.
Specifying the 'to_ops' argument will narrow down the players in which the message is sent to ops only.
Alternatively, using the 'to_flagged' argument will send the message to only players that have the specified flag.
You can also use the 'to_console' argument to make it so it only shows in the server console.
Announce can also utilize a format script with the 'format' argument. See Language:Format Script Containers.
//
Note that the default announce mode (that shows for all players) relies on the Spigot broadcast system, which requires the permission "bukkit.broadcast.user" to see broadcasts.
Related TagsNone
Usage Example
#Use to send an important message to your players.
- announce 'Warning! This server will restart in 5 minutes!'
Usage Example
#Use to send a message to a specific 'group' of players.
- announce to_flagged:clan_subang '[<player.name>] Best clan ever!'
Usage Example
#Use to easily send a message to all online ops.
- announce to_ops '<player.name> requires help!'
Usage Example
#Use to send a message to just the console (Primarily for debugging / logging).
- announce to_console 'Warning- <player.name> broke a mob spawner at location <player.location>'
Groupserver
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/server/AnnounceCommand.java#L28

NameBan
Syntaxban ({add}/remove) [<player>|.../addresses:<address>|...] (reason:<text>) (duration:<duration>) (source:<text>)
Short DescriptionBan or un-ban players or ip addresses.
Full DescriptionAdd or remove player or ip address bans from the server. Banning a player will also kick them from the server.
You may optionally specify both a list of players and list of addresses.
Options are:
reason: Sets the ban reason. Defaults to "Banned.".
duration: Sets the duration of the temporary ban. This will be a permanent ban if not specified.
source: Sets the source of the ban. Defaults to "(Unknown)".
Related Tags<PlayerTag.is_banned> Returns whether the player is banned.
<PlayerTag.ban_reason> Returns the reason for the player's ban, if they are banned.
<PlayerTag.ban_expiration_time> Returns the expiration of the player's ban, if they are banned. (...)
<PlayerTag.ban_created_time> Returns when the player's ban was created, if they are banned.
<PlayerTag.ban_source> Returns the source of the player's ban, if they are banned.
<server.is_banned[<address>]> Returns whether the given ip address is banned.
<server.ban_info[<address>].expiration> Returns the expiration of the ip address's ban, if it is banned. (...)
<server.ban_info[<address>].reason> Returns the reason for the ip address's ban, if it is banned.
<server.ban_info[<address>].created> Returns when the ip address's ban was created, if it is banned.
<server.ban_info[<address>].source> Returns the source of the ip address's ban, if it is banned.
<server.banned_addresses> Returns a list of all banned ip addresses.
<server.banned_players> Returns a list of all banned players.
Usage Example
#Use to ban a player.
- ban <[player]>
Usage Example
#Use to ban a list of players with a reason.
- ban <[player]>|<[someplayer]> "reason:Didn't grow enough potatoes."
Usage Example
#Use to ban a list of players for 10 minutes with a reason.
- ban <[player]>|<[someplayer]> "reason:Didn't grow enough potatoes." duration:10m
Usage Example
#Use to ban a player with a source.
- ban <[aplayer]> "reason:Grew too many potatoes." source:<player.name>
Usage Example
#Use to ban an ip address.
- ban addresses:127.0.0.1
Usage Example
#Use to temporarily ip ban all online players.
- ban addresses:<server.online_players.parse[ip]> duration:5m
Usage Example
#Use to unban a list of players.
- ban remove <[player]>|<[someplayer]>
Usage Example
#Use to unban an ip address.
- ban remove addresses:127.0.0.1
Groupserver
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/server/BanCommand.java#L27

NameBossBar
Syntaxbossbar ({create}/update/remove) [<id>] (players:<player>|...) (title:<title>) (progress:<#.#>) (color:<color>) (style:<style>) (options:<option>|...)
Short DescriptionShows players a boss bar.
Full DescriptionDisplays a boss bar at the top of the screen of the specified player(s). You can also update the
values and remove the bar.
Requires an ID.
Progress must be between 0 and 1.
Valid colors: BLUE, GREEN, PINK, PURPLE, RED, WHITE, YELLOW.
Valid styles: SEGMENTED_10, SEGMENTED_12, SEGMENTED_20, SEGMENTED_6, SOLID.
Valid options: CREATE_FOG, DARKEN_SKY, PLAY_BOSS_MUSIC.
Related Tags<server.current_bossbars> Returns a list of all currently active boss bar IDs.
Usage Example
#Shows a message to all online players.
- bossbar MyMessageID players:<server.online_players> "title:HI GUYS" color:red
Usage Example
#Update the boss bar's color and progress.
- bossbar update MyMessageID color:blue progress:0.2
Usage Example
#Add more players to the boss bar.
- bossbar update MyMessageID players:<server.flag[new_players]>
Usage Example
#Remove a player from the boss bar.
- bossbar remove MyMessageID players:<[player]>
Usage Example
#Delete the boss bar.
- bossbar remove MyMessageID
Groupserver
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/server/BossBarCommand.java#L32

NameExecute
Syntaxexecute [as_player/as_op/as_npc/as_server] [<Bukkit-command>] (silent)
Short DescriptionExecutes an arbitrary server command as if the player, NPC, or server typed it in.
Full DescriptionAllows the execution of server commands through a Denizen script.
Commands can be executed as the server, as an npc, as an opped player, or as a player, as though it was typed by the respective source.
Note that you should generally avoid using 'as_op', which is only meant for very specific special cases. 'as_server' is usually a better option.
Note: do not include the slash at the start. A slash at the start will be interpreted equivalent to typing two slashes at the front in-game.
Note that this is a Denizen script command that executes Bukkit commands.
This can be considered the inverse of '/ex' (a Bukkit command that executes Denizen script commands).
The 'silent' option can be specified with 'as_server' to hide the output. Note that 'silent' might or might not work with different plugins depending on how they operate.
Generally, you should never use this to execute a vanilla command, there is almost always a script command that should be used instead.
Usually the 'execute' command should be reserved for interacting with external plugins.
Related Tags<entry[saveName].output> returns the output to an as_server sender.
Usage Example
#Use to execute the save-all command as the server.
- execute as_server "save-all"
Usage Example
#Use to make the linked (non-op) player execute a command that normally only ops can use.
- execute as_op "staffsay hi"
Groupserver
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/server/ExecuteCommand.java#L34

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>)
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: URL: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.
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: URL:https://minecraft.gamepedia.com/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. (...)
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#L32



Category: world


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#L34

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#L39

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#L28

NameCreateWorld
Syntaxcreateworld [<name>] (generator:<id>) (worldtype:<type>) (environment:<environment>) (copy_from:<world>) (seed:<seed>) (settings:<json>)
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 it's generator ID.
If you want an empty void world, you can use "generator:denizen:void".
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: URL:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/WorldType.html
Optionally specify an environment (defaults to NORMAL, can also be NETHER or THE_END).
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
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/CreateWorldCommand.java#L32

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> If the entity is a dropped item, returns the item represented by the entity. (...)
<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#L35

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
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/ExplodeCommand.java#L26

NameFirework
Syntaxfirework (<location>) (power:<#>) (<type>/random) (primary:<color>|...) (fade:<color>|...) (flicker) (trail)
Short DescriptionLaunches a firework with specific coloring
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 how high the firework will go before exploding.
The type option which specifies the shape the firework will explode with. If unspecified, 'ball' will be used.
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 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: URL:https://minecraft.gamepedia.com/Commands#gamerule
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#L20

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.
WARNING: May cause lag spikes, use carefully.
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
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/LightCommand.java#L27

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>
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_delayed_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_delayed_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 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 <cuboid[<player.location>|<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 <cuboid[<player.location>|<player.cursor_on>]> stone|dirt 25|25
Usage Example
#Use to modify the ground beneath the player's feet.
- modifyblock <cuboid[<player.location.add[2,-1,2]>|<player.location.add[-2,-1,-2]>]> RED_WOOL
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/ModifyBlockCommand.java#L59

NamePlayEffect
Syntaxplayeffect [effect:<name>] [at:<location>|...] (data:<#.#>) (special_data:<data>) (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 unique per particle.
- For REDSTONE particles, the input is of format: <size>|<color>, for example: "1.2|red". Color input is any valid ColorTag object.
- For FALLING_DUST, BLOCK_CRACK, or BLOCK_DUST particles, the input is any valid MaterialTag, eg "stone".
- For ITEM_CRACK particles, the input is any valid ItemTag, eg "stick".
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
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/PlayEffectCommand.java#L48

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 URL: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 URL: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> Returns a list of all sounds known to the server. (...)
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
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/PlaySoundCommand.java#L28

NameSchematic
Syntaxschematic [create/load/unload/rotate (angle:<#>)/paste (fake_to:<player>|... fake_duration:<duration>)/save/flip_x/flip_y/flip_z) (noair) (mask:<material>|...)] [name:<name>] (filename:<name>) (<location>) (<cuboid>) (delayed) (max_delay_ms:<#>)
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 a cuboid region and a center location as input. This will create a new schematic in memory based on world data.
The "rotate" 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.
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.
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 schematic command is ~waitable as an alternative to 'delayed' argument. Refer to Language:~waitable.
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>]>
<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 <[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#L57

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.
The direction argument tells which direction the text shown. If a direction is not specified, it defaults to south.
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').
Related Tags<LocationTag.sign_contents> Returns a list of lines on a sign.
Usage Example
#Use to edit some text on a sign
- sign type:automatic "Hello|this is|some|text" <player.location>
Usage Example
#Use to show the time on a sign that points north
- sign type:automatic "I point|North.|System Time<&co>|<util.date.time>" <context.location> direction:north
Usage Example
#Use to force a sign to be a wall_sign if no sign is found.
- sign type:wall_sign "Player<&co>|<player.name>|Online Players<&co>|<server.online_players.size>" <context.location>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SignCommand.java#L35

NameStrike
Syntaxstrike (no_damage) [<location>]
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.
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>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/StrikeCommand.java#L25

NameSwitch
Syntaxswitch [<location>|...] (state:[{toggle}/on/off]) (duration:<value>)
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, ...
- 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, ...).
Related Tags<LocationTag.switched> Returns whether the block at the location is considered to be switched on. (...)
<MaterialTag.is_switchable> Returns whether the material is Openable, Powerable, or a Dispenser.
<MaterialTag.switched> Returns whether a Powerable material (like pressure plates) an Openable material (like doors), a dispenser, a daylight sensor, or a piston is switched.
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>
Groupworld
Sourcehttps://github.com/DenizenScript/Denizen/blob/dev/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/world/SwitchCommand.java#L34

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#L27

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> Returns this biome's downfall type for when a world has weather. (...)
<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

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



Category: file


NameFileCopy
Syntaxfilecopy [origin:<origin>] [destination:<destination>] (overwrite)
Short DescriptionCopies a file from one location to another.
Full DescriptionCopies a file from one location to another.
The starting directory is server/plugins/Denizen.
May overwrite existing copies of files.
Note that in most cases this command should be ~waited for (like "- ~filecopy ..."). Refer to Language:~waitable.
Related Tags<entry[saveName].success> returns whether the copy succeeded (if not, either an error or occurred, or there is an existing file in the destination.)
Usage Example
#Use to copy a custom YAML data file to a backup folder, overwriting any old backup of it that exists.
- ~filecopy o:data/custom.yml d:data/backup.yml overwrite save:copy
- narrate "Copy success<&co> <entry[copy].success>"
Groupfile
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/file/FileCopyCommand.java#L27

NameLog
Syntaxlog [<text>] (type:{info}/severe/warning/fine/finer/finest/none/clear) [file:<name>]
Short DescriptionLogs some debugging info to a file.
Full DescriptionThis is a quick and simple way to store debugging information for admins to read.
You just input a file name and some text, and it will store that information in the file
with a date/time stamp and the chosen type ('INFO' by default). If you don't want the
date/time stamp and type, you can set the type to 'none' and it will only add the
message text.
Regardless of type, each usage of the log command will add a new line to the file, you can't
just keep adding to one line.
You might choose to use this to record some important things, for example, every time a player
uses a dangerous command you might log the player's name and their location, so you'll know
who to blame if you find something damaged.
Remember that the file location is inside the server's primary folder. You most likely want to prefix
file names with a folder name, For example: 'file:logs/security.log'
If the file or folder path you input do not already exist, they will be automatically created.
Warning: Remember that file operations are dangerous! A typo in the filename could ruin your server.
It's recommended you use this command minimally.
Related TagsNone
Usage Example
#Use to log some information to a file.
- log "Security breach on level 3!" type:severe file:securitylog.txt
Usage Example
#Use to log a player's name and location when they did something dangerous.
- log "<player.name> used the '/EXPLODE' command at <player.location.simple>!" type:warning file:security.log
Usage Example
#Use to write information directly to a file.
- log "This won't have a date or type" type:none file:example.log
Usage Example
#Use to clear a log file and write some text at the start.
- log "// Log File Generated by my Denizen script, do not edit!" type:clear file:myfile.log
Usage Example
#Use to clear a log file entirely.
- log "" type:clear file:myfile.log
Groupfile
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/file/LogCommand.java#L26

NameYaml
Syntaxyaml [create]/[load:<file>]/[loadtext:<text>]/[unload]/[savefile:<file>]/[copykey:<source_key> <target_key> (to_id:<name>)]/[set <key>([<#>])(:<action>):<value>] [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.
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 type.
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.
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#L40



Category: queue


NameChoose
Syntaxchoose [<option>] [<cases>]
Short DescriptionChooses an option from the list of cases.
Full DescriptionChooses an option from the list of cases.
Intended to replace a long chain of simplistic if/else if or complicated script path selection systems.
Simply input the selected option, and the system will automatically jump to the most relevant case input.
Cases are given as a sub-set of commands inside the current command (see Usage for samples).
Optionally, specify "default" in place of a case to give a result when all other cases fail to match.
Cases must be static text. They may not contain tags. For multi-tag comparison, consider the IF command.
Any one case line can have multiple values in it - each possible value should be its own argument (separated by spaces).
Related TagsNone
Usage Example
#Use to choose the only case.
- choose 1:
  - case 1:
    - debug LOG "Success!"
Usage Example
#Use to choose the default case.
- choose 2:
  - case 1:
    - debug log "Failure!"
  - default:
    - debug log "Success!"
Usage Example
#Use for dynamically choosing a case.
- choose <[entity_type]>:
  - case zombie:
    - narrate "You slayed an undead zombie!"
  - case skeleton:
    - narrate "You knocked the bones out of a skeleton!"
  - case creeper:
    - narrate "You didn't give that creeper a chance to explode!"
  - case pig cow chicken:
    - narrate "You killed an innocent farm animal!"
  - default:
    - narrate "You killed a <[entity_type].to_titlecase>!"
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/ChooseCommand.java#L23

NameDefine
Syntaxdefine [<id>](:<action>)[:<value>]
Short DescriptionCreates a temporary variable inside a script queue.
Full DescriptionDefinitions are queue-level 'variables' that can be used throughout a script, once defined, by using the <[<id>]> tag.
Definitions are only valid on the current queue and are not transferred to any new queues constructed within the script,
such as by a 'run' command, without explicitly specifying to do so.
Definitions are lighter and faster than creating a temporary flag.
Definitions are also automatically removed when the queue is completed, so there is no worry for leaving unused data hanging around.
This command supports data actions, see Language:data actions.
Related Tags<[<id>]> to get the value assigned to an ID
<QueueTag.definition[<definition>]> Returns the value of the specified definition. (...)
<QueueTag.definitions> Returns the names of all definitions that were added to the current queue.
Usage Example
#Use to make complex tags look less complex, and scripts more readable.
- narrate 'You invoke your power of notice...'
- define range <player.flag[range_level].mul[3]>
- define blocks <player.flag[noticeable_blocks]>
- narrate '[NOTICE] You have noticed <player.location.find.blocks[<[blocks]>].within[<[range]>].size> blocks in the area that may be of interest.'
Usage Example
#Use to validate a player input to a command script, and then output the found player's name.
- define target <server.match_player[<context.args.get[1]>]||null>
- if <[target]> == null:
  - narrate '<red>Unknown player target.'
  - stop
- narrate 'You targeted <[target].name>!'
Usage Example
#Use to keep the value of a replaceable tag that you might use many times within a single script.
- define arg1 <context.args.get[1]>
- if <[arg1]> == hello:
  - narrate 'Hello!'
- else if <[arg1]> == goodbye:
  - narrate 'Goodbye!'
Usage Example
#Use to remove a definition.
- define myDef:!
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/DefineCommand.java#L29

NameDefineMap
Syntaxdefinemap [<name>] [<key>:<value> ...]
Short DescriptionCreates a MapTag definition with key/value pairs constructed from the input arguments.
Full DescriptionCreates a MapTag definition with key/value pairs constructed from the input arguments.
Related Tags<[<id>]> to get the value assigned to an ID
Usage Example
#Use to make a MapTag definition with three inputs.
- definemap my_map count:5 type:Taco smell:Tasty
Usage Example
#Use to make a MapTag definition with complex input.
- definemap my_map:
    count: 5
    some_list:
    - a
    - b
    some_submap:
        some_subkey: taco
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/DefineMapCommand.java#L24

NameDetermine
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 <context.message.substring[5]>
Usage Example
#Use to cancel an event, but continue running script commands.
- determine passively cancelled
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/DetermineCommand.java#L22

NameElse
Syntaxelse (if <comparison logic>)
Short DescriptionHelper command for usage with the if command.
Full DescriptionA helper command for ':' syntax if commands.
See Command:if command documentation.
Related TagsSee IF command documentation.
Usage Example
#See IF command documentation.
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/ElseCommand.java#L17

NameForeach
Syntaxforeach [stop/next/<object>|...] (as:<name>) (key:<name>) [<commands>]
Short DescriptionLoops through a ListTag, running a set of commands for each item.
Full DescriptionLoops through a ListTag of any type. For each item in the ListTag, the specified commands will be ran for
that list entry. To call the value of the entry while in the loop, you can use <[value]>.
Alternately, specify a map tag to loop over the set of key/value pairs in the map, where the key will be <[key]> and the value will be <[value]>.
Optionally, specify "key:<name>" to change the key definition name to something other than "key".
Optionally, specify "as:<name>" to change the value definition name to something other than "value".
To end a foreach loop, do - foreach stop
To jump immediately to the next entry in the loop, do - foreach next
Related Tags<[value]> to get the current item in the loop
<[loop_index]> to get the current loop iteration number
Usage Example
#Use to run commands 'for each entry' in a list of objects/elements.
- foreach <[some_entity]>|<[some_npc]>|<[player]>:
    - announce "There's something at <[value].location>!"
Usage Example
#Use to iterate through entries in any tag that returns a list
- foreach <server.online_players> as:player:
    - narrate "Thanks for coming to our server! Here's a bonus $50.00!" targets:<[player]>
    - give money qty:50 player:<[player]>
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/ForeachCommand.java#L28

NameGoto
Syntaxgoto [<name>]
Short DescriptionJump forward to a location marked by Command:mark.
Full DescriptionJumps forward to a marked location in the script.
For example:


- goto potato
- narrate "This will never show"
- mark potato
Related TagsNone
Usage Example
#Use to jump forward to a location.
- goto potato
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/GotoCommand.java#L22

NameIf
Syntaxif [<value>] (!)(<operator> <value>) (&&/|| ...) [<commands>]
Short DescriptionCompares values, and runs a subset of commands if they match.
Full DescriptionCompares values, and runs a subset of commands if they match.
Works with the else command, which handles alternatives for when the comparison fails.
The if command is equivalent to the English phrasing "if something is true, then do the following".
Values are compared using the comparable system. See Language:comparable for information.
Comparisons may be chained together using '&&' and '||'.
'&&' means "and", '||' means "or".
So, for example "if <[a]> && <[b]>:" requires both a AND b to be true.
The "or" is inclusive, meaning "if <[a]> || <[b]>:" will pass for any of the following:
a = true, b = true
a = true, b = false
a = false, b = true
but will fail when a = false and b = false.
Sets of comparisons may be grouped using ( parens ) as separate arguments.
So, for example "if ( <[a]> && <[b]> ) || <[c]>".
Grouping is REQUIRED when using both '&&' and '||' in one line. Otherwise, groupings should not be used at all.
Boolean inputs and groups both support negating with the '!' symbol as a prefix.
This means you can do "if !<[a]>" to say "if a is NOT true".
Similarly, you can do "if !( <[a]> || <[b]> )", though be aware that per rules of boolean logic,
that example is the exactly same as "if !<[a]> && !<[b]>".
Related Tags<ElementTag.is[<operator>].to[<element>]> Takes an operator, and compares the value of the element to the supplied (...)
<ElementTag.is[<operator>].than[<element>]> Takes an operator, and compares the value of the element to the supplied (...)
Usage Example
#Use to narrate a message only if a player has a flag.
- if <player.has_flag[secrets]>:
  - narrate "The secret number is 3!"
Usage Example
#Use to narrate a different message depending on a player's money level.
- if <player.money> > 1000:
  - narrate "You're rich!"
- else:
  - narrate "You're poor!"
Usage Example
#Use to stop a script if a player doesn't have all the prerequisites.
- if !<player.has_flag[quest_complete]> || !<player.has_permission[new_quests]> || <player.money> < 50:
  - narrate "You're not ready!"
  - stop
- narrate "Okay so your quest is to find the needle item in the haystack build next to town."
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/IfCommand.java#L27

NameInject
Syntaxinject [<script>] (path:<name>) (instantly)
Short DescriptionRuns a script in the current queue.
Full DescriptionInjects a script into the current queue.
This means this task will run with all of the original queue's definitions and tags.
It will also now be part of the queue, so any delays or definitions used in the injected script will be accessible in the original queue.
Related TagsNone
Usage Example
#Injects the InjectedTask task into the current queue
- inject InjectedTask
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/InjectCommand.java#L27

NameMark
Syntaxmark [<name>]
Short DescriptionMarks a location for Command:goto.
Full DescriptionMarks a location for the goto command. See Command:goto for details.
Related TagsNone
Usage Example
#Use to mark a location.
- mark potato
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/MarkCommand.java#L19

NameQueue
Syntaxqueue (<queue>) [clear/stop/pause/resume/delay:<duration>]
Short DescriptionModifies the current state of a script queue.
Full DescriptionAllows queues to be modified during their run. This can also be used to modify other queues currently running.
Clearing a queue will remove any commands still queued within it, and thus end the queue.
When trying to clear the current queue, use Command:stop instead.
Using the "stop" argument will force the queue to immediately stop running.
When trying to stop the current queue, use Command:stop instead.
Using the "delay:<duration>" argument will cause the queue to wait for a specified duration.
When trying to delay the current queue, use Command:wait instead.
Using the "pause" argument will freeze the queue but keep it listed, waiting for a "resume" instruction.
It is of course not possible to resume the current queue (as if you're running a 'queue' command, the queue can't be paused).
Generally, the queue is considered a non-ideal way of doing things - that is, there's usually a better/cleaner way to achieve similar results.
It's most useful within the "/ex" command for quick problem solving
(eg if a script in testing gets caught in an infinite loop, you can do "/ex queue ID_HERE stop" to fix that).
Related Tags<queue> Returns a queue object constructed from the input value. (...)
<QueueTag.id> Returns the id of the queue.
<QueueTag.size> Returns the number of script entries in the queue.
<queue.list> Returns a list of all currently running queues on the server.
<queue.stats> Returns stats for all queues during this server session
<queue.exists[queue_id]> Returns whether the specified queue exists.
<ScriptTag.queues> Returns all queues which are running for this script.
Usage Example
#Use to force-stop a given queue.
- queue <server.flag[OtherQueue]> clear
Usage Example
#Use to delay the current queue (use <@link command wait> instead!)
- queue delay:5t
Usage Example
#Use to pause the given queue.
- queue <server.flag[OtherQueue]> pause
Usage Example
#Use to resume the given queue.
- queue <server.flag[OtherQueue]> resume
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/QueueCommand.java#L23

NameRandom
Syntaxrandom [<commands>]
Short DescriptionSelects a random choice from the following script commands.
Full DescriptionThe random command picks one of the following script command and skips all the other script commands that are in its section.
Commands like "repeat 1" or "if true" can be used to group together a sublisting of commands to execute together
(as a way to get around the 1-command limit).
If wanting to choose a random long set of commands,
consider instead using Command:choose with Tag:util.random.int.to
Related Tags<entry[saveName].possibilities> returns an ElementTag of the possibility count.
<entry[saveName].selected> returns an ElementTag of the selected number.
Usage Example
#Use to choose randomly from a braced set of commands
- random:
  - narrate "hi"
  - narrate "hello"
  - narrate "hey"
Usage Example
#Use to perform multiple commands randomly
- random:
  - repeat 1:
    - narrate "Hello"
    - narrate "How are you?"
  - repeat 1:
    - narrate "Hey"
    - narrate "It is a nice day."
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/RandomCommand.java#L25

NameRateLimit
Syntaxratelimit [<object>] [<duration>]
Short DescriptionLimits the rate that queues may process a script at.
Full DescriptionLimits the rate that queues may process a script at.
If another queue tries to run the same script faster than the duration, that second queue will be stopped.
Note that the rate limiting is tracked based on two unique factors: the object input, and the specific script line.
That is to say: if you have a 'ratelimit <player> 10s', and then a few lines down a 'ratelimit <player> 10s',
those are two separate rate limiters.
Additionally, if you have a 'ratelimit <player> 10s' and two different players run it, they each have a separate rate limit applied.
Note that this uses game delta tick time, not system realtime.
Related TagsNone
Usage Example
#Use to show a message to a player no faster than once every ten seconds.
- ratelimit <player> 10s
- narrate "Wow!"
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/RateLimitCommand.java#L24

NameRepeat
Syntaxrepeat [stop/next/<amount>] (as:<name>) [<commands>]
Short DescriptionRuns a series of braced commands several times.
Full DescriptionLoops through a series of braced commands a specified number of times.
To get the number of loops so far, you can use <[value]>.
Optionally, specify "as:<name>" to change the definition name to something other than "value".
To stop a repeat loop, do - repeat stop
To jump immediately to the next number in the loop, do - repeat next
Related Tags<[value]> to get the number of loops so far
Usage Example
#Use to loop through a command several times
- repeat 5:
    - announce "Announce Number <[value]>"
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/RepeatCommand.java#L23

NameRun
Syntaxrun [<script>] (path:<name>) (def:<element>|.../defmap:<map>/def.<name>:<value>) (id:<name>) (speed:<value>/instantly) (delay:<value>)
Short DescriptionRuns a script in a new queue.
Full DescriptionRuns a script in a new queue.
You must specify a script object to run.
Optionally, use the "path:" argument to choose a specific sub-path within a script.
Optionally, use the "def:" argument to specify definition values to pass to the script,
the definitions will be named via the "definitions:" script key on the script being ran,
or numerically in order if that isn't specified (starting with <[1]>).
Alternately, use "defmap:<map>" to specify definitions to pass as a MapTag, where the keys will be definition names and the values will of course be definition values.
Alternately, use "def.<name>:<value>" to define one or more named definitions individually.
Optionally, use the "speed:" argument to specify the queue command-speed to run the target script at,
or use the "instantly" argument to use an instant speed (no command delay applied).
If neither argument is specified, the default queue speed applies (normally instant, refer to the config file).
Generally, prefer to set the "speed:" script key on the script to be ran, rather than using this argument.
Optionally, use the "delay:" argument to specify a delay time before the script starts running.
Optionally, specify the "id:" argument to choose a custom queue ID to be used.
If none is specified, a randomly generated one will be used. Generally, don't use this argument.
The run command is ~waitable. Refer to Language:~waitable.
Related Tags<entry[saveName].created_queue> returns the queue that was started by the run command.
Usage Example
#Use to run a task script named 'MyTask'.
- run MyTask
Usage Example
#Use to run a task script named 'MyTask' that isn't normally instant, instantly.
- run MyTask instantly
Usage Example
#Use to run a local subscript named 'alt_path'.
- run <script> path:alt_path
Usage Example
#Use to run 'MyTask' and pass 3 definitions to it.
- run MyTask def:A|Second_Def|Taco
Usage Example
#Use to run 'MyTask' and pass 3 named definitions to it.
- run MyTask def.count:5 def.type:Taco def.smell:Tasty
Usage Example
#Use to run 'MyTask' and pass a list as a single definition.
- run MyTask def:<list_single[<list[a|big|list|here]>]>
# MyTask can then get the list back by doing:
- define mylist <[1]>
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/RunCommand.java#L31

NameRunLater
Syntaxrunlater [<script>] (path:<name>) [delay:<duration>] (def:<element>|.../defmap:<map>/def.<name>:<value>)
Short DescriptionCauses a task to run sometime in the future, even if the server restarts.
Full DescriptionCauses a task to run sometime in the future, even if the server restarts.
Script, path, and definition inputs work the exact same as with Command:run.
This command will store intended script runs to a file, so that even if the server restarts, they will still run.
Script runs are guaranteed to happen after the time is up - if the server is turned off at the scheduled time, they will run at next startup.
The guarantee can be broken if the server crashes or other errors occur.
The delay input is a DurationTag instance, that is relative to system time (not server delta time).
Definitions and queue object links will be preserved, so long as they remain valid at time of execution.
Objects that are lost before the delay is up (such as a linked NPC that is removed) may cause errors.
Implementation note: the system that tracks when scripts should be ran is a fair bit more optimized than 'wait' commands or the 'run' command with a delay,
specifically for the case of very large delays (hours or more) - in the short term, 'wait' or 'run' with a delay will be better.
Related TagsNone
Usage Example
#Use to run a task script named 'example' 3 days later.
- runlater example delay:3d
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/RunLaterCommand.java#L34

NameStop
Syntaxstop
Short DescriptionStops the current queue.
Full DescriptionThis will immediately stop the current queue, preventing it from processing any further.
Related Tags<queue> to get the current queue.
Usage Example
#Use to stop the current queue.
- stop
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/StopCommand.java#L19

NameWait
Syntaxwait (<duration>) (queue:<name>) (system)
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
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/WaitCommand.java#L22

NameWaitUntil
Syntaxwaituntil (rate:<duration>) [<comparisons>]
Short DescriptionDelays a script until the If comparisons return true.
Full DescriptionDelays a script until the If comparisons return true.
Optionally, specify an update rate (if unset, will update at queue speed).
The update rate controls how often the tag will be checked. This generally doesn't need to be set,
unless you're concerned about script efficiency.
Never set this to faster than queue update rate.
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 until the player respawns (useful in a death event, for example).
- waituntil <player.is_spawned>
Usage Example
#Use to delay the current queue until the player is healed, only checking once per second.
- waituntil rate:1s <player.health> > 15
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/WaitUntilCommand.java#L29

NameWhile
Syntaxwhile [stop/next/[<value>] (!)(<operator> <value>) (&&/|| ...)] [<commands>]
Short DescriptionRuns a series of braced commands until the tag returns false.
Full DescriptionRuns a series of braced commands until the tag returns false.
To end a while loop, use the 'stop' argument.
To jump to the next entry in the loop, use the 'next' argument.
Related Tags<[loop_index]> to get the number of loops so far.
Usage Example
#Use to loop until a player sneaks, or the player goes offline. (Note: generally use 'waituntil' for this instead)
- while !<player.is_sneaking> && <player.is_online>:
    - narrate "Waiting for you to sneak..."
    - wait 1s
Groupqueue
Sourcehttps://github.com/DenizenScript/Denizen-Core/blob/master/src/main/java/com/denizenscript/denizencore/scripts/commands/queue/WhileCommand.java#L27



Category: Depenizen


Namebossshop
Syntaxbossshop [<shop name>]
Short DescriptionOpens a BossShop inventory for a player.
Full DescriptionUse to open up a BossShop inventory for the linked player.
Useful for rewarding players using the BossShop plugin.
Shops are made with the BossShop system.
Related Tags<InventoryTag.is_bossshop> Returns whether the inventory is a BossShop.
Usage Example
#Use to open a bossshop inventory for the linked player.
- bossshop MyShop
GroupDepenizen
RequiresDepenizen, BossShopPro
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/bossshop/BossShopCommand.java#L23

NameBungee
Syntaxbungee [<server>|...] [<commands>]
Short DescriptionRuns a set of commands on another server.
Full DescriptionThis command runs a set of commands on another server on the Bungee network.
Tags will be parsed on the remote server, but definitions from the originating queue will be used.
The linked player will be available on the remote server if that server has ever seen the player.
Generally, prefer Command:BungeeRun.
Related Tags<bungee.list_servers> Returns a list of known bungee server names.
Usage Example
#Use to run a simple announce command on another server;
- bungee lobby:
  - announce "Wow! Stuff is happening!"
GroupDepenizen
RequiresDepenizen, DepenizenBungee, BungeeCord
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/bungee/BungeeCommand.java#L29

NameBungeeExecute
Syntaxbungeeexecute [<command>]
Short DescriptionRuns a command on the Bungee proxy server.
Full DescriptionThis command runs a command on the Bungee proxy server. Works similarly to "execute as_server".
Related TagsNone
Usage Example
#Use to run the 'alert' bungee command.
- bungeeexecute "alert Network restart in 5 minutes..."
GroupDepenizen
RequiresDepenizen, DepenizenBungee, BungeeCord
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/bungee/BungeeExecuteCommand.java#L21

NameBungeeRun
Syntaxbungeerun [<server>|...] [<script name>] (def:<definition>|...)
Short DescriptionRuns a task script on another server.
Full DescriptionThis command runs a task on another server on the Bungee network. Works similarly to the 'run' command.
Related Tags<bungee.list_servers> Returns a list of known bungee server names.
Usage Example
#Use to run a simple task on another server.
- bungeerun lobby my_script def:32
GroupDepenizen
RequiresDepenizen, DepenizenBungee, BungeeCord
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/bungee/BungeeRunCommand.java#L26

NameBungeeTag
Syntaxbungeetag [server:<server>] [<tags>]
Short DescriptionParses tags on another server on a Bungee network and returns the results for this server to process.
Full DescriptionThis command parses tags on another server on a Bungee network and returns the results for this server to process.
As a more technical explanation: All commands in Denizen parse tags in any input arguments prior to processing them further.
This command skips that step, and sends the raw tags out to the specified server to then have that server perform the actual tag processing,
when then gets sent back and allows the command to complete.
Tags will be parsed on the remote server, but definitions from the originating queue will be used.
The linked player will be available on the remote server if that server has ever seen the player.
This command must be held with the '~' prefix. The queue will then wait for the result.
Related Tags<entry[saveName].result> returns the result of the parsed tag.
<bungee.list_servers> Returns a list of known bungee server names.
Usage Example
#Use to read a simple tag from another server.
- ~bungeetag server:lobby <server.motd> save:motd
- narrate "The lobby's MOTD is <entry[motd].result>"
GroupDepenizen
RequiresDepenizen, DepenizenBungee, BungeeCord
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/bungee/BungeeTagCommand.java#L31

Nameeffectlib
Syntaxeffectlib (type:<effect name>) (duration:<duration>) (target:<entity>/location:<location>)
Short DescriptionShow custom effects using EffectLib
Full DescriptionUse to show custom effects in a easier way using the config file in EffectLib.
The effect names comes from the config file.
Specify a location instead of a target to show the effect at a location instead.
Note that most users should instead use Command:playeffect.
Related TagsNone
Usage Example
#Use to show a effect on the attached player in queue.
- effectlib bleed duration:10s
Usage Example
#Use to show a effect on a target entity.
- effectlib atom target:<player.target> duration:10s
Usage Example
#Use to show effect at a position of the player.
- effectlib type:atom duration:10s location:<player.location>
GroupDepenizen
RequiresDepenizen, EffectLib
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/effectlib/EffectLibCommand.java#L27

NameJobs
Syntaxjobs [promote/demote/join/quit] [<job>] (<#>)
Short DescriptionModifies the specified job of a player.
Full DescriptionThis allows you to promote or demote a player's job level. This also allows you
to force a player to join or quit a job.
Related Tags<PlayerTag.job[<job>]> Returns the job specified with the player's information attached.
<PlayerTag.current_jobs> Returns a list of all jobs that the player is in.
Usage Example
#Use to promote a player.
- jobs promote Woodcutter
Usage Example
#Use to demote a player multiple times.
- jobs demote Builder 3
Usage Example
#Use to make a different player join a job.
- jobs join Worker player:<[player]>
GroupDepenizen
RequiresDepenizen, Jobs
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/jobs/JobsCommand.java#L21

Namelibsdisguise
Syntaxlibsdisguise [remove/player/mob/misc] (type:<entity type>) (target:<entity>) (name:<text>) (baby:true/{false}) (id:<item>) (self:true/{false})
Short DescriptionDisguises an entity as a different entity.
Full DescriptionDisguises an entity using Lib's Disguises.
This hides the true entity and replaces it with a fake entity as a disguise.
The entity mimics the same actions and movement as the entity in a disguise.
The required argument depends on the first argument:
For 'mob':
Specify an entity type.
Optionally, specify if the mob is a baby or not (defaults to false).
For 'player':
Specify the player name.
For 'misc':
Specify a misc disguise type.
Optionally, specify id as an ItemTag.
Removing a disguise shows the true entity again for all players.
Only one disguise can be set per target, if another one is set, the previous disguise is removed.
Optionally specify 'self:true' to hide the disguise from the target player, so they still see their normal player (defaults to false).
Related Tags<EntityTag.libsdisguise_is_disguised> Returns whether the entity is in a disguise.
<EntityTag.libsdisguise_disguise> Returns the disguise of the entity.
Usage Example
#Use to disguise the linked player as a different player named Bob.
- libsdisguise player name:Bob
Usage Example
#Use to disguise the linked player as a baby Zombie, which can only be seen by other players.
- libsdisguise mob type:ZOMBIE baby:true self:true
Usage Example
#Use to disguise the linked player as a Boat.
- libsdisguise misc type:Boat
Usage Example
#Use to disguise the linked player as a Sponge Block.
- libsdisguise misc type:Falling_Block id:sponge
Usage Example
#Use to remove the disguise from the linked player.
- libsdisguise remove
Usage Example
#Use to disguise an entity as a player named Bob.
- libsdisguise player target:<player.target> name:Bob
Usage Example
#Use to remove a disguise from an entity.
- libsdisguise remove target:<player.target>
GroupDepenizen
RequiresDepenizen, LibsDisguises
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/libsdisguises/LibsDisguiseCommand.java#L23

NamemcMMO
Syntaxmcmmo [add/remove/set] [levels/xp/xprate/vampirism/hardcore/leader] (skill:<skill>) (state:{toggle}/true/false) (quantity:<#>) (party:<party>)
Short DescriptionEdits mcMMO information.
Full DescriptionThis command allows you to add or remove skill levels and experience for players, add or remove
players to/from parties, set the level, xp, xprate, vampirism state, hardcore state of a player's
skill, or set the leader of a party.
Related Tags<PlayerTag.mcmmo.party> Returns the name of the player's party.
Usage Example
#Use to add 5 levels to a player's skill.
- mcmmo add levels skill:acrobatics quantity:5
Usage Example
#Use to remove a different player from a party.
- mcmmo remove player:<[player]> party:SerpentPeople
Usage Example
#Use to set vampirism mode for a player's skill.
- mcmmo set vampirism skill:woodcutting state:true
GroupDepenizen
RequiresDepenizen, mcMMO
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/mcmmo/McMMOCommand.java#L27

NameMobArena
Syntaxmobarena [<mobarena>] (add:<player>|...) (remove:<player>|...) (spectate:<player>|...)
Short DescriptionMake a player join, remove a player from or make a player spectate a MobArena.
Full DescriptionThis command allows you to make a player join an arena, make them leave an arena or make them spectate an arena.
Follows normal MobArena functionality, so acts as if the player has typed '/mobarena join'.
NOTE: You can use all 3: ("add", "remove", and "spectate") as once, however avoid conflicts.
Related Tags<player.mobarena.in_arena> Returns whether the player is in an arena.
Usage Example
#Use to force the player to join an arena.
- mobarena mobarena@Default add:<player>
Usage Example
#Use to force the player to leave an arena.
- mobarena mobarena@Default remove:<player>
Usage Example
#Use to force a player to join an arena and another to leave.
- mobarena mobarena@Default add:<player> remove:<[player]>
Usage Example
#Use to cause all players who aren't in an arena to spectate.
- mobarena mobarena@Default spectate:<server.online_players.filter[mobarena.in_arena.not]>
GroupDepenizen
RequiresDepenizen, MobArena
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/mobarena/MobArenaCommand.java#L24

NameMythicSignal
Syntaxmythicsignal [<mythicmob>|...] [<signal>] [source:<entity>]
Short DescriptionSends a signal trigger to the target MythicMobs.
Full DescriptionThis allows you to send a signal trigger to multiple MythicMobs.
If those mobs have any triggers configured for that signal, they will fire.
You must specify an entity that acts as the sender.
NOTE: signals are case sensitive.
Usage Example
#Used to trigger the player's target signal "attack".
- mythicsignal <player.target.mythicmob> attack
GroupDepenizen
RequiresDepenizen, MythicMobs
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/mythicmobs/MythicSignalCommand.java#L25

NameMythicSkill
Syntaxmythicskill [<skillname>] [<location>|.../<entity>|...] (power:<#.#>) (casters:<entity>|...)
Short DescriptionCast a MythicMob skill from an entity.
Full DescriptionThis will cast a MythicMob skill from any specified entity.
Optionally, you can have multiple entities cast the skill.
You may also specify multiple EntityTag(s) or LocationTag(s) for targets.
You may not have both the Entity and Location targets, one or the other.
The MythicMob configuration must be configured to account for this.
Usage Example
#Used to make the player use the MythicMob skill frostbolt on their target.
- mythicskill <player> frostbolt <player.target>
GroupDepenizen
RequiresDepenizen, MythicMobs
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/mythicmobs/MythicSkillCommand.java#L30

NameMythicSpawn
Syntaxmythicspawn [<name>] [<location>] (level:<#>)
Short DescriptionSpawns a MythicMob at a location.
Full DescriptionThis allows you to spawn a MythicMob at a location using the mob's internal name.
Related Tags<entry[saveName].spawned_mythicmob> returns the spawned MythicMobsMob.
Usage Example
#Use to spawn a BarbarianMinion at a player's location.
- mythicspawn BarbarianMinion <player.location>
GroupDepenizen
RequiresDepenizen, MythicMobs
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/mythicmobs/MythicSpawnCommand.java#L24

NameMythicThreat
Syntaxmythicthreat [<mythicmob>] [add/subtract/set] [<#.#>] (for:<entity>|...)
Short DescriptionModifies the threat table of a Mythic Mob.
Full DescriptionThis allows you to modify a threat table for an active MythicMob.
Optionally, set a list of entities to apply the threat modification to.
Usage Example
#Used to add 50 threat to the attached player on the target mob's threat table.
- mythicthreat <player.target.mythicmob> add 50
GroupDepenizen
RequiresDepenizen, MythicMobs
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/mythicmobs/MythicThreatCommand.java#L27

Namenbs
Syntaxnbs [play/stop] (file:<file path>) (targets:<entity>|...)
Short DescriptionPlays or stops a noteblock song.
Full DescriptionPlays a .nbs file for the targets, being players specified.
If no targets are specified, the target will be the player in the queue.
Note block song files are created using NoteBlockStudio or other programs.
The file path starts in the denizen folder: /plugins/Denizen/
Related Tags<PlayerTag.nbs_is_playing> Returns true if the player is currently listening to a note block song.
Usage Example
#Use to play a song to the linked player in a queue.
- nbs play file:MySong
Usage Example
#Use to play a song to everyone online.
- nbs play file:MySong targets:<server.online_players>
Usage Example
#Use to stop the current song playing for the linked player in a queue.
- nbs stop
Usage Example
#Use to stop the current song playing for all online players.
- nbs stop targets:<server.online_players>
GroupDepenizen
RequiresDepenizen, NoteBlockAPI
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/noteblockapi/NBSCommand.java#L32

Nameplayerpoints
Syntaxplayerpoints [set/give/take] [<#>]
Short DescriptionAdjusts the amount of points the player has.
Full DescriptionTake, give or set the amount of points a player has.
This is useful for plugins supporting this kind of economy
which uses the points instead of money as an alternative system.
This works for offline players.
Related Tags<PlayerTag.playerpoints_points> Returns the amount of points the player has. Only works on online players.
Usage Example
#Use to give 5 points to the player.
- playerpoints give 5
Usage Example
#Use to set 10 points to the player.
- playerpoints set 10
GroupDepenizen
RequiresDepenizen, PlayerPoints
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/playerpoints/PlayerPointsCommand.java#L22

NameQuests
Syntaxquests [add/remove/set] (quest:<quest_id>) (stage:<#>) (points:<#>) (override_checks:{true}/false)
Short DescriptionEdits quest player information.
Full DescriptionThis command allows you to give, quit, or set the stage of a quest for a player, or to add, subtract, or set the amount of Quest Points that a player holds.
When modifying quests, the ID (read: NOT the name) must be specified.
Numerical stage number must be present when setting progress.
'override_checks' indicates whether to bypass associated checks (see Usage).
If not modifying a quest, points must be included as a numerical value.
Related TagsNone
Usage Example
#Use to force the player to take quest with ID custom1, ignoring requirements.
- quests add quest:custom1 override_checks:true
Usage Example
#Use to force the player to quit quest with ID custom2, notifying said player.
- quests remove quest:custom2 override_checks:true
Usage Example
#Use to force the player into specified stage 2 of quest with ID custom3.
- quests set quest:custom3 stage:2
Usage Example
#Use to give the player 100 Quest Points.
- quests add points:100
GroupDepenizen
RequiresDepenizen, Quests
Sourcehttps://github.com/DenizenScript/Depenizen/blob/master/src/main/java/com/denizenscript/depenizen/bukkit/commands/quests/QuestsCommand.java#L27

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

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#L28



Category: external


Namediscord
Syntaxdiscord [id:<id>] [connect tokenfile:<file>/disconnect/add_role/start_typing/stop_typing/remove_role/status (status:<status>) (activity:<activity>)/rename/edit_message/delete_message] (<value>) (message_id:<id>) (channel:<channel>) (user:<user>) (group:<group>) (role:<role>) (url:<url>)
Short DescriptionConnects to and interacts with Discord.
Full DescriptionConnects to and interacts with Discord.
Commands may fail if the bot does not have permission within the Discord group to perform them.
When setting the status of the Discord bot, the status argument can be: ONLINE, DND, IDLE, or INVISIBLE,
and the activity argument can be: PLAYING, STREAMING, LISTENING, or WATCHING.
Streaming activity requires a 'url:' input.
The command should always be ~waited for. See Language:~waitable.
Store your Discord bot token in a file, like "plugins/Denizen/data/discord_token.txt", with the token as the only content of the file, which you can then use like "tokenfile:data/discord_token.txt"
Related Tags<discord[<bot_id>]> Returns the Discord bot for the given bot ID.
Usage Example
#Use to connect to Discord via a bot code.
- ~discord id:mybot connect code:<[code]>
Usage Example
#Use to connect to Discord with a token stored in text file 'plugins/Denizen/data/discord_token.txt'.
- ~discord id:mybot connect tokenfile:data/discord_token.txt
Usage Example
#Use to disconnect from Discord.
- ~discord id:mybot disconnect
Usage Example
#Use to add a role on a user in a Discord guild.
- ~discord id:mybot add_role user:<[user]> role:<[role]> group:<[group]>
Usage Example
#Use to remove a role on a user in a Discord guild.
- ~discord id:mybot remove_role user:<[user]> role:<[role]> group:<[group]>
Usage Example
#Use to set the online status of the bot, and clear the game status.
- ~discord id:mybot status "Minecraft" "status:ONLINE"
Usage Example
#Use to set the game status of the bot.
- ~discord id:mybot status "Minecraft" "status:ONLINE" "activity:PLAYING"
Usage Example
#Use to change the bot's nickname.
- ~discord id:mybot rename "<[nickname]>" group:<[group]>
Usage Example
#Use to give a user a new nickname.
- ~discord id:mybot rename "<[nickname]>" user:<[user]> group:<[group]>
Usage Example
#Use to start typing in a specific channel.
- ~discord id:mybot start_typing channel:<[channel]>
Usage Example
#Use to stop typing in a specific channel.
- ~discord id:mybot stop_typing channel:<[channel]>
Usage Example
#Use to edit a message the bot has already sent.
- ~discord id:mybot edit_message channel:<[channel]> message_id:<[msg]> "Wow! It got edited!"
Usage Example
#Use to delete a message the bot has already sent.
- ~discord id:mybot delete_message channel:<[channel]> message_id:<[msg]>
Groupexternal
RequiresdDiscordBot
Sourcehttps://github.com/DenizenScript/dDiscordBot/blob/master/src/main/java/com/denizenscript/ddiscordbot/commands/DiscordCommand.java#L40

Namediscordmessage
Syntaxdiscordmessage [id:<id>] (reply:<message>/channel:<channel>/user:<user>) [<message>] (no_mention) (attach_file_name:<name> attach_text:<text>)
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 or user, or optionally in reply to a previous message.
If sending as a reply, optionally use "no_mention" to disable the default reply pinging the original user.
You can use "attach_file_name:<name>" and "attach_text:<text>" to attach a text file with longer content than a normal message allows.
The command should usually be ~waited for. See Language:~waitable.
Related Tags<entry[saveName].message> returns the DiscordMessageTag of the sent message, when the command is ~waited for.
Usage Example
#Use to message a Discord channel.
- ~discordmessage id:mybot channel:<discord[mybot].group[Denizen].channel[bot-spam]> "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:<discord[mybot].group[Denizen].channel[bot-spam]> "<discord_embed.with[title].as[hi].with[description].as[This is an embed!]>"
Usage Example
#Use to message a Discord channel and record the ID.
- ~discordmessage id:mybot channel:<discord[mybot].group[Denizen].channel[bot-spam]> "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 message user:<[user]> "Hello world!"
Usage Example
#Use to send a text-file message to a channel.
- ~discordmessage id:mybot channel:<[channel]> attach_file_name:quote.xml "attach_file_text:<&lt>mcmonkey<&gt> haha text files amirite<n>gotta abuse em"
Groupexternal
RequiresdDiscordBot
Sourcehttps://github.com/DenizenScript/dDiscordBot/blob/master/src/main/java/com/denizenscript/ddiscordbot/commands/DiscordMessageCommand.java#L28

Namediscordreact
Syntaxdiscordreact [id:<id>] (channel:<channel>) [message:<message>] [add/remove/clear] [reaction:<reaction>/all] (user:<user>)
Short DescriptionManages message reactions on Discord.
Full DescriptionManages message reactions on Discord.
The message can be a Language:DiscordMessageTag, or just the message ID, with a channel ID also given.
You can add or remove reactions from the bot, or clear all reactions of a specific ID, or clear all reactions from a message entirely.
Reactions can be unicode symbols, or custom emoji IDs.
Optionally specify a user for 'remove' to remove only a specific user's reaction.
'Add' requires basic add-reaction permissions.
'Clear' requires 'manage messages' permission.
Related Tags<DiscordMessageTag.reactions> Returns a list of reaction on this message.
Usage Example
#Use to react to a previously sent message.
- ~discordreact id:mybot message:<[some_message]> add reaction:<[my_emoji_id]>
Usage Example
#Use to remove a reaction from a previously sent message.
- ~discordreact id:mybot message:<[some_message]> remove reaction:middle_finger
Usage Example
#Use to clear all reactions from a message.
- ~discordreact id:mybot message:<[some_message]> clear reaction:all
Groupexternal
RequiresdDiscordBot
Sourcehttps://github.com/DenizenScript/dDiscordBot/blob/master/src/main/java/com/denizenscript/ddiscordbot/commands/DiscordReactCommand.java#L29



Category: addons


NameWeb
Syntaxweb [start/stop] (port:<#>)
Short DescriptionManages the web server ran on your minecraft server.
Full DescriptionLets you start or stop a web server.
Only one web server can be run at a time.
The default port when the port argument is not specified, is 80.
TODO: Document command details!
Usage Example
#Use to start the web server on port 10123.
- web start port:10123
Usage Example
#Use to stop the web server.
- web stop
Groupaddons
RequiresWebizen
Sourcehttps://github.com/DenizenScript/Webizen/blob/master/src/main/java/space/morphanone/webizen/commands/WebCommand.java#L22