{
  "version": {
    "major": 2,
    "minor": 0
  },
  "source": {
    "name": "Skript",
    "version": "2.17.0"
  },
  "conditions": [
    {
      "id": "CondFishingLure",
      "name": "Fishing Lure Applied",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks if the lure enchantment is applied to the current fishing event."
      ],
      "patterns": [
        "lure enchantment bonus is (applied|active)",
        "lure enchantment bonus is(n't| not) (applied|active)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on fishing line cast:\n\tif lure enchantment bonus is applied:\n\t\tcancel event\n"
      ],
      "events": [
        {
          "id": "fishing",
          "name": "On Fishing"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondChangedSide",
      "name": "Changed Sign Side",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a side was changed in a sign change event."
      ],
      "patterns": [
        "[the] (front|back) [side] (is|was) changed",
        "[the] (front|back) [side] (is not|isn't|was not|wasn't) changed",
        "[the] changed side (is|was) [the] (front|back)",
        "[the] changed side (is not|isn't|was not|wasn't) [the] (front|back)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on sign change:\n\tthe back side was changed\n\tcancel the event\n\tsend \"<red>It is not possible to change the back side of a sign!\" to the player\n"
      ],
      "events": [
        {
          "id": "sign_change",
          "name": "On Sign Change"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondBrewingConsume",
      "name": "Brewing Will Consume Fuel",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Checks if the 'brewing fuel' event will consume fuel.\nPreventing the fuel from being consumed will keep the fuel item and still add to the fuel level of the brewing stand.\n"
      ],
      "patterns": [
        "[the] brewing stand will consume [the] fuel",
        "[the] brewing stand (will not|won't) consume [the] fuel"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on brewing fuel:\n\tif the brewing stand will consume the fuel:\n\t\tprevent the brewing stand from consuming the fuel\n"
      ],
      "events": [
        {
          "id": "brewing_fuel",
          "name": "On Brewing Fuel"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondElytraBoostConsume",
      "name": "Will Consume Boosting Firework",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if the firework used in an 'elytra boost' event will be consumed."
      ],
      "patterns": [
        "[the] (boosting|used) firework will be consumed",
        "[the] (boosting|used) firework (will not|won't) be consumed"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on elytra boost:\n\tif the used firework will be consumed:\n\t\tprevent the used firework from being consumed\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondRespawnLocation",
      "name": "Is Bed/Anchor Spawn",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Checks what the respawn location of a player in the respawn event is."
      ],
      "patterns": [
        "[the] respawn location (was|is)[(n'| no)t] [a] (bed|respawn anchor)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on respawn:\n\tthe respawn location is a bed\n\tbroadcast \"%player% is respawning in their bed! So cozy!\"\n"
      ],
      "events": [
        {
          "id": "respawn",
          "name": "On Respawn"
        }
      ],
      "requirements": [
        "Minecraft 1.16+"
      ],
      "keywords": null
    },
    {
      "id": "CondWillHatch",
      "name": "Egg Will Hatch",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Whether the egg will hatch in a Player Egg Throw event."
      ],
      "patterns": [
        "[the] egg (will|will not|won't) hatch"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player egg throw:\n\tif an entity won't hatch:\n\t\tsend \"Better luck next time!\" to the player\n"
      ],
      "events": [
        {
          "id": "egg_throw",
          "name": "On Egg Throw"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondLeashWillDrop",
      "name": "Leash Will Drop",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether the leash item will drop during the leash detaching in an unleash event."
      ],
      "patterns": [
        "[the] (lead|leash) [item] (will|(won't|will not)) (drop|be dropped)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on unleash:\n\tif the leash will drop:\n\t\tprevent the leash from dropping\n\telse:\n\t\tallow the leash to drop\n"
      ],
      "events": [
        {
          "id": "leash_unleash",
          "name": "On Leash / Unleash"
        }
      ],
      "requirements": null,
      "keywords": [
        "lead"
      ]
    },
    {
      "id": "CondCancelled",
      "name": "Event Cancelled",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "Checks whether or not the event is cancelled."
      ],
      "patterns": [
        "[the] event is cancel[l]ed",
        "[the] event (is not|isn't) cancel[l]ed"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on click:\n\tif event is cancelled:\n\t\tbroadcast \"no clicks allowed!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasBossBarFlag",
      "name": "Has Boss Bar Flag",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a boss bar has a specific flag.\nThere are three flags:\n- 'darken the sky'\n- 'create fog'\n- 'play boss music'\n"
      ],
      "patterns": [
        "%boss bars% [do[es]] darken[s] the sky",
        "%boss bars% (doesn't|does not|do not|don't) darken the sky",
        "%boss bars% [do[es]] create[s] fog",
        "%boss bars% (doesn't|does not|do not|don't) create fog",
        "%boss bars% [do[es]] play[s] boss music",
        "%boss bars% (doesn't|does not|do not|don't) play boss music"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_mybar} does darken the sky:\n\tbroadcast \"It's getting dark around here..\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondTooltip",
      "name": "Has Item Tooltips",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Whether the entire or additional tooltip of an item is shown or hidden.",
        "The 'entire tooltip' is what shows to the player when they hover an item (i.e. name, lore, etc.).",
        "The 'additional tooltip' hides certain information from certain items (potions, maps, books, fireworks, and banners)."
      ],
      "patterns": [
        "[the] [entire|additional] tool[ ]tip[s] of %item types% (is|are) (shown|hidden)",
        "[the] [entire|additional] tool[ ]tip[s] of %item types% (isn't|is not|aren't|are not) (shown|hidden)",
        "%item types%'[s] [entire|additional] tool[ ]tip[s] (is|are) (shown|hidden)",
        "%item types%'[s] [entire|additional] tool[ ]tip[s] (isn't|is not|aren't|are not) (shown|hidden)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send true if entire tooltip of player's tool is shown",
        "if additional tooltip of {_item} is hidden:"
      ],
      "events": null,
      "requirements": [
        "Spigot 1.20.5+"
      ],
      "keywords": null
    },
    {
      "id": "CondPlayedBefore",
      "name": "Has Played Before",
      "since": [
        "1.4, 2.7 (multiple players)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player has played on this server before. You can also use <a href='#first_join'>on first join</a> if you want to make triggers for new players."
      ],
      "patterns": [
        "%offline players% [(has|have|did)] [already] play[ed] [on (this|the) server] (before|already)",
        "%offline players% (has not|hasn't|have not|haven't|did not|didn't) [(already|yet)] play[ed] [on (this|the) server] (before|already|yet)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player has played on this server before",
        "player hasn't played before"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondPastFuture",
      "name": "In The Past/Future",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a date is in the past or future.",
        "Note that using the 'now' expression will not be in the past or future when used directly in the condition."
      ],
      "patterns": [
        "%dates% (is|are)[(n't| not)] in the (past|future)",
        "%dates% ha(s|ve)[(n't| not)] passed"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_date} to now\nwait 5 seconds\nif {_date} is in the past:\n\t# this will be true\n",
        "if now is in the future:\n\t# this will be false\n",
        "set {_dates::*} to 1 day from now, 12 days from now, and 1 year from now\nif {_dates::*} are in the future:\n\t# this will be true\nif {_dates::*} have passed:\n\t# this will be false\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondScriptLoaded",
      "name": "Is Script Loaded",
      "since": [
        "2.2-dev31"
      ],
      "deprecated": false,
      "description": [
        "Check if the current script, or another script, is currently loaded."
      ],
      "patterns": [
        "script[s] [%texts%] (is|are) loaded",
        "script[s] [%texts%] (isn't|is not|aren't|are not) loaded"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "script is loaded",
        "script \"example.sk\" is loaded"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsBlockRedstonePowered",
      "name": "Is Block Redstone Powered",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Checks if a block is indirectly or directly powered by redstone"
      ],
      "patterns": [
        "%blocks% (is|are) redstone powered",
        "%blocks% (is|are) indirectly redstone powered",
        "%blocks% (is|are)(n't| not) redstone powered",
        "%blocks% (is|are)(n't| not) indirectly redstone powered"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if clicked block is redstone powered:\n\tsend \"This block is well-powered by redstone!\"\n",
        "if clicked block is indirectly redstone powered:\n\tsend \"This block is indirectly redstone powered.\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsPluginEnabled",
      "name": "Is Plugin Enabled",
      "since": [
        "2.6"
      ],
      "deprecated": false,
      "description": [
        "Check if a plugin is enabled/disabled on the server.",
        "Plugin names can be found in the plugin's 'plugin.yml' file or by using the '/plugins' command, they are NOT the name of the plugin's jar file.",
        "When checking if a plugin is not enabled, this will return true if the plugin is either disabled or not on the server. ",
        "When checking if a plugin is disabled, this will return true if the plugin is on the server and is disabled."
      ],
      "patterns": [
        "plugin[s] %texts% (is|are) enabled",
        "plugin[s] %texts% (is|are)(n't| not) enabled",
        "plugin[s] %texts% (is|are) disabled"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if plugin \"Vault\" is enabled:",
        "if plugin \"WorldGuard\" is not enabled:",
        "if plugins \"Essentials\" and \"Vault\" are enabled:",
        "if plugin \"MyBrokenPlugin\" is disabled:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondResourcePack",
      "name": "Resource Pack",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Checks state of the resource pack in a <a href='#resource_pack_request_action'>resource pack request response</a> event."
      ],
      "patterns": [
        "[the] resource pack (was|is|has) [been] %resource pack state%",
        "[the] resource pack (was|is|has)(n't| not) [been] %resource pack state%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on resource pack response:\n\tif the resource pack wasn't accepted:\n\t\tkick the player due to \"You have to install the resource pack to play in this server!\"\n"
      ],
      "events": [
        {
          "id": "resource_pack_request_response",
          "name": "On Resource Pack Request Response"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSet",
      "name": "Exists/Is Set",
      "since": [
        "1.2"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a given expression or variable is set."
      ],
      "patterns": [
        "%~objects% (exist[s]|(is|are) set)",
        "%~objects% (do[es](n't| not) exist|(is|are)(n't| not) set)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "{teams::%player's uuid%::preferred-team} is not set",
        "on damage:\n\tprojectile exists\n\tbroadcast \"%attacker% used a %projectile% to attack %victim%!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondEquipCompDamage",
      "name": "Equippable Component - Will Lose Durability",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether an item will be damaged when the wearer gets injured.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "%equippable components% will (lose durability|be damaged) (on [wearer['s]] injury|when [[the] wearer [is]] (hurt|injured|damaged))",
        "%equippable components% (will not|won't) (lose durability|be damaged) (on [wearer['s]] injury|when [[the] wearer [is]] (hurt|injured|damaged))"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_item} will lose durability when hurt:\n\tadd \"Damageable on injury\" to lore of {_item}\n",
        "set {_component} to the equippable component of {_item}\nif {_component} won't lose durability on injury:\n\tmake {_component} lose durability when injured\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null
    },
    {
      "id": "CondIsWhitelisted",
      "name": "Is Whitelisted",
      "since": [
        "2.5.2, 2.9.0 (enforce, offline players)"
      ],
      "deprecated": false,
      "description": [
        "Whether or not the server or a player is whitelisted, or the server is whitelist enforced."
      ],
      "patterns": [
        "[the] server (is|(isn't|is not)) (in white[ ]list mode|white[ ]listed)",
        "%offline players% (is|are|(isn't|is not|aren't|are not)) white[ ]listed",
        "[the] server white[ ]list (is|(isn't|is not)) enforced"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the player is whitelisted:",
        "if the server is whitelisted:",
        "if the server whitelist is enforced:"
      ],
      "events": null,
      "requirements": [
        "MC 1.17+ (enforce)"
      ],
      "keywords": null
    },
    {
      "id": "CondMinecraftVersion",
      "name": "Running Minecraft",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Checks if current Minecraft version is given version or newer."
      ],
      "patterns": [
        "running [below] minecraft %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "running minecraft \"1.14\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondPvP",
      "name": "PvP",
      "since": [
        "1.3.4"
      ],
      "deprecated": false,
      "description": [
        "Checks the PvP state of a world."
      ],
      "patterns": [
        "(is PvP|PvP is) enabled [in %worlds%]",
        "(is PvP|PvP is) disabled [in %worlds%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "PvP is enabled",
        "PvP is disabled in \"world\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIncendiary",
      "name": "Is Incendiary",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Checks if an entity will create fire when it explodes. This condition is also usable in an explosion prime event."
      ],
      "patterns": [
        "%entities% ((is|are) incendiary|cause[s] a[n] (incendiary|fiery) explosion)",
        "%entities% ((is not|are not|isn't|aren't) incendiary|(does not|do not|doesn't|don't) cause[s] a[n] (incendiary|fiery) explosion)",
        "the [event(-| )]explosion (is|(is not|isn't)) (incendiary|fiery)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on explosion prime:\n\tif the explosion is fiery:\n\t\tbroadcast \"A fiery explosive has been ignited!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIgnitionProcess",
      "name": "Ignition Process",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Checks if a creeper is going to explode."
      ],
      "patterns": [
        "[creeper[s]] %living entities% ((is|are)|(isn't|is not|aren't|are not)) going to explode",
        "[creeper[s]] %living entities% ((is|are)|(isn't|is not|aren't|are not)) in the (ignition|explosion) process",
        "creeper[s] %living entities% ((is|are)|(isn't|is not|aren't|are not)) ignited"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the last spawned creeper is going to explode:\n\tloop all players in radius 3 of the last spawned creeper\n\t\tsend \"RUN!!!\" to the loop-player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsCustomNameVisible",
      "name": "Is Custom Name Visible",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks if an entity's custom name is visible."
      ],
      "patterns": [
        "%entities%'[s] custom name[s] (is|are) visible",
        "%entities%'[s] custom name[s] (isn't|is not|are not|aren't) visible",
        "custom name of %entities% (is|are) visible",
        "custom name of %entities% (isn't|is not|are not|aren't) visible"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send true if target's custom name is visible"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondDamageCause",
      "name": "Damage Cause",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "Tests what kind of damage caused a <a href='#damage'>damage event</a>. Refer to the <a href='#damagecause'>Damage Cause</a> type for a list of all possible causes."
      ],
      "patterns": [
        "[the] damage (was|is|has)[n('|o)t] [been] (caused|done|made) by %damage cause%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# make players use their potions of fire resistance whenever they take any kind of fire damage\non damage:\n\tdamage was caused by lava, fire or burning\n\tvictim is a player\n\tvictim has a potion of fire resistance\n\tcancel event\n\tapply fire resistance to the victim for 30 seconds\n\tremove 1 potion of fire resistance from the victim\n",
        "# prevent mobs from dropping items under certain circumstances\non death:\n\tentity is not a player\n\tdamage wasn't caused by a block explosion, an attack, a projectile, a potion, fire, burning, thorns or poison\n\tclear drops\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondChatVisibility",
      "name": "Can See Messages",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player can see specific message types in chat."
      ],
      "patterns": [
        "%player% can see all messages [in chat]",
        "%player% can only see (commands|system messages) [in chat]",
        "%player% can('t|[ ]not) see any (command[s]|message[s]) [in chat]",
        "%player% can('t|[ ]not) see all messages [in chat]",
        "%player% can('t|[ ]not) only see (commands|system messages) [in chat]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player can see all messages:\n\tsend \"You can see all messages.\"\n",
        "if player can only see commands:\n\tsend \"This game doesn't work with commands-only chat.\"\n",
        "if player can't see any messages:\n\tsend action bar \"Server shutting down in 5 minutes!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondGlowingText",
      "name": "Has Glowing Text",
      "since": [
        "2.8.0",
        "2.17 (sign side support)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a sign (either a block or an item) has glowing text. If a sign side is not specified, the front side will be used by default.\n"
      ],
      "patterns": [
        "[[the] (front|back) [side[s]] of]%blocks/item types% (has|have) glowing text",
        "[[the] (front|back) [side[s]] of]%blocks/item types% (doesn't|does not|do not|don't) have glowing text"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if target block has glowing text"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsHandRaised",
      "name": "Is Hand Raised",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity has one or both of their hands raised.",
        "Hands are raised when an entity is using an item (eg: blocking, drawing a bow, eating)."
      ],
      "patterns": [
        "%living entities%'[s] [main] hand[s] (is|are) raised",
        "%living entities%'[s] [main] hand[s] (isn't|is not|aren't|are not) raised",
        "[main] hand[s] of %living entities% (is|are) raised",
        "[main] hand[s] of %living entities% (isn't|is not|aren't|are not) raised",
        "%living entities%'[s] off[ |-]hand[s] (is|are) raised",
        "%living entities%'[s] off[ |-]hand[s] (isn't|is not|aren't|are not) raised",
        "off[ |-]hand[s] of %living entities% (is|are) raised",
        "off[ |-]hand[s] of %living entities% (isn't|is not|aren't|are not) raised"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage of player:\n\tif victim's main hand is raised:\n\t\tdrop player's tool at player\n\t\tset player's tool to air\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondAlphanumeric",
      "name": "Alphanumeric",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Checks if the given string is alphanumeric."
      ],
      "patterns": [
        "%texts% (is|are) alphanumeric",
        "%texts% (isn't|is not|aren't|are not) alphanumeric"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the argument is not alphanumeric:\n\tsend \"Invalid name!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsBanned",
      "name": "Is Banned",
      "since": [
        "1.4"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player or IP is banned."
      ],
      "patterns": [
        "%offline players/texts% (is|are) banned",
        "%players/texts% (is|are) IP[(-| )]banned",
        "%offline players/texts% (isn't|is not|aren't|are not) banned",
        "%players/texts% (isn't|is not|aren't|are not) IP[(-| )]banned"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player is banned",
        "victim is not IP-banned",
        "\"127.0.0.1\" is banned"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondScalesWithDifficulty",
      "name": "Damage Source - Does Scale With Difficulty",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Whether the damage from a damage source scales with the difficulty of the server."
      ],
      "patterns": [
        "%damage sources% ((does|do) scale|scales) damage with difficulty",
        "%damage sources% (do not|don't|does not|doesn't) scale damage with difficulty",
        "%damage sources%'[s] damage ((does|do) scale|scales) with difficulty",
        "%damage sources%'[s] damage (do not|don't|does not|doesn't) scale with difficulty"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on death:\n\tif event-damage source scales damage with difficulty:\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondWasIndirect",
      "name": "Damage Source - Was Indirectly Caused",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Whether the damage from a damage source was indirectly caused.",
        "Vanilla damage sources are considered indirect if the 'causing entity' and the 'direct entity' are not the same. For example, taking damage from an arrow that was shot by an entity."
      ],
      "patterns": [
        "%damage sources% (was|were) ([in]directly caused|caused [in]directly)",
        "%damage sources% (was not|wasn't|were not|weren't) ([in]directly caused|caused [in]directly)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\tif event-damage source was indirectly caused:\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondAnchorWorks",
      "name": "Do Respawn Anchors Work",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Checks whether or not respawn anchors work in a world."
      ],
      "patterns": [
        "respawn anchors [do[(n't| not)]] work in %worlds%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "respawn anchors work in world \"world_nether\""
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.16+"
      ],
      "keywords": null
    },
    {
      "id": "CondFromMobSpawner",
      "name": "Is From A Mob Spawner",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks if an entity was spawned from a mob spawner."
      ],
      "patterns": [
        "%entities% (is|are) from a [mob] spawner",
        "%entities% (isn't|aren't|is not|are not) from a [mob] spawner",
        "%entities% (was|were) spawned (from|by) a [mob] spawner",
        "%entities% (wasn't|weren't|was not|were not) spawned (from|by) a [mob] spawner"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send whether target is from a mob spawner"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondChance",
      "name": "Chance",
      "since": [
        "1.0, 2.14 (chance fails)"
      ],
      "deprecated": false,
      "description": [
        "A condition that randomly succeeds or fails.\nValid values are between 0% and 100%, or if the percent sign is omitted, between 0 and 1.\n"
      ],
      "patterns": [
        "chance of %number%[(\\%)] [(fails|failed)]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "chance of 50%:\n\tdrop a diamond at location(100, 100, 100, \"world')\n",
        "chance of {chance}% # {chance} between 0 and 100",
        "chance of {chance} # {chance} between 0 and 1",
        "if chance of 99% fails:\n\tbroadcast \"Haha loser! *points and laughs*\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSpawnable",
      "name": "Is Spawnable",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether an entity type can be spawned in a world.\nAny general types such as 'monster, mob, entity, living entity' etc. will never be spawnable.\n"
      ],
      "patterns": [
        "%entity types% is spawnable [in [the [world]] %world%]",
        "%entity types% can be spawned [in [the [world]] %world%]",
        "%entity types% (isn't|is not) spawnable [in [the [world]] %world%]",
        "%entity types% (can't|can not) be spawned [in [the [world]] %world%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if a pig is spawnable in world \"world\": # true\nif a monster can be spawned in {_world}: # false\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsMember",
      "name": "Is Member/Owner of Region",
      "since": [
        "2.1"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player is a member or owner of a particular region.",
        "This condition requires a supported regions plugin to be installed."
      ],
      "patterns": [
        "%offline players% (is|are) ([a] member|[(the|an)] owner) of [[the] region] %regions%",
        "%offline players% (is|are)(n't| not) ([a] member|[(the|an)] owner) of [[the] region] %regions%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on region enter:\n\tplayer is the owner of the region\n\tmessage \"Welcome back to %region%!\"\n\tsend \"%player% just entered %region%!\" to all members of the region\n"
      ],
      "events": null,
      "requirements": [
        "Supported regions plugin"
      ],
      "keywords": null
    },
    {
      "id": "CondIsPressingKey",
      "name": "Is Pressing Key",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks if a player is pressing a certain input key."
      ],
      "patterns": [
        "%players% (is|are) pressing %input keys%",
        "%players% (isn't|is not|aren't|are not) pressing %input keys%",
        "%players% (was|were) pressing %input keys%",
        "%players% (wasn't|was not|weren't|were not) pressing %input keys%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player input:\n\tif player is pressing forward movement key:\n\t\tsend \"You are moving forward!\"\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": [
        "press",
        "input"
      ]
    },
    {
      "id": "PropCondContains",
      "name": "Contains (Property)",
      "since": null,
      "deprecated": false,
      "description": [
        "Checks whether a type or list contains certain elements.\nWhen checking if a list contains a specific element, use '{list::*} contains {x}'.\nWhen checking if a single type contains something, use `player's inventory contains {x}`.\nWhen checking if many types contain something, use '{inventories::*} contain {x}` or `contents of {inventories::*} contain {x}`.\n"
      ],
      "patterns": [
        "%objects% contain[s] %objects%",
        "%objects% (doesn't|does not|do not|don't) contain %objects%",
        "contents of %objects% contain %objects%",
        "contents of %objects% (do not|don't) contain %objects%",
        "%inventories% (has|have) %item types% [in [(the[ir]|his|her|its)] inventory]",
        "%inventories% (doesn't|does not|do not|don't) have %item types% [in [(the[ir]|his|her|its)] inventory]"
      ],
      "property": {
        "id": "contains",
        "name": "contains",
        "description": "Something that can contain other things, such as an inventory or a string.",
        "provider": "Skript",
        "since": [
          "2.13"
        ]
      },
      "propertyTypes": [
        {
          "id": "inventory",
          "name": "Inventory"
        },
        {
          "id": "containing",
          "name": "Anything with Contents"
        },
        {
          "id": "textcomponent",
          "name": "Text Component"
        },
        {
          "id": "string",
          "name": "Text"
        }
      ],
      "examples": [
        "block contains 20 cobblestone",
        "player has 4 flint and 2 iron ingots",
        "{list::*} contains 5",
        "names of {list::*} contain \"prefix\"",
        "contents of the inventories of all players contain 1 stick"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondStartsEndsWith",
      "name": "Starts/Ends With",
      "since": [
        "2.2-dev36, 2.5.1 (multiple strings support)"
      ],
      "deprecated": false,
      "description": [
        "Checks if a text starts or ends with another."
      ],
      "patterns": [
        "%texts% (start|end)[s] with %texts%",
        "%texts% (doesn't|does not|do not|don't) (start|end) with %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the argument starts with \"test\" or \"debug\":\n\tsend \"Stop!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasMetadata",
      "name": "Has Metadata",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a metadata holder has a metadata tag."
      ],
      "patterns": [
        "%metadata holders% (has|have) metadata [(value|tag)[s]] %texts%",
        "%metadata holders% (doesn't|does not|do not|don't) have metadata [(value|tag)[s]] %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player has metadata value \"healer\":"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasLineOfSight",
      "name": "Has Line of Sight",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Checks whether living entities have an unobstructed line of sight to other entities or locations."
      ],
      "patterns": [
        "%living entities% (has|have) [a] [direct] line of sight to %entities/locations%",
        "%living entities% does(n't| not) have [a] [direct] line of sight to %entities/locations%",
        "%living entities% (has|have) no [direct] line of sight to %entities/locations%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player has direct line of sight to location 5 blocks to the right of player",
        "victim has line of sight to attacker",
        "player has no line of sight to location 100 blocks in front of player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsPreferredTool",
      "name": "Is Preferred Tool",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is the preferred tool for a block. A preferred tool is one that will drop the block's item when used. For example, a wooden pickaxe is a preferred tool for grass and stone blocks, but not for iron ore."
      ],
      "patterns": [
        "%item types% (is|are) %blocks/block datas%'s preferred tool[s]",
        "%item types% (is|are) [the|a] preferred tool[s] (for|of) %blocks/block datas%",
        "%item types% (is|are)(n't| not) %blocks/block datas%'s preferred tool[s]",
        "%item types% (is|are)(n't| not) [the|a] preferred tool[s] (for|of) %blocks/block datas%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on left click:\n\tevent-block is set\n\tif player's tool is the preferred tool for event-block:\n\t\tbreak event-block naturally using player's tool\n\telse:\n\t\tcancel event\n"
      ],
      "events": null,
      "requirements": [
        "1.16.5+, Paper 1.19.2+ (blockdata)"
      ],
      "keywords": null
    },
    {
      "id": "CondCanSee",
      "name": "Can See",
      "since": [
        "2.3, 2.10 (entities)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether the given players can see the provided entities."
      ],
      "patterns": [
        "%entities% (is|are) [visible|invisible] for %players%",
        "%players% can see %entities%",
        "%entities% (is|are)(n't| not) [visible|invisible] for %players%",
        "%players% can('t| not) see %entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if sender can't see the player-argument:\n\tmessage \"who dat?\"\n",
        "if the player can see the last spawned entity:\n\tmessage \"hello there!\"\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.19+ (entities)"
      ],
      "keywords": null
    },
    {
      "id": "CondMatches",
      "name": "Matches",
      "since": [
        "2.5.2"
      ],
      "deprecated": false,
      "description": [
        "Checks whether the defined strings match the input regexes (Regular expressions)."
      ],
      "patterns": [
        "%texts% (match[es]|do[es](n't| not) match) %texts%",
        "%texts% (partially match[es]|do[es](n't| not) partially match) %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on chat:\n\tif message partially matches \"\\d\":\n\t\tsend \"Message contains a digit!\"\n\tif message doesn't match \"[A-Za-z]+\":\n\t\tsend \"Message doesn't only contain letters!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondPermission",
      "name": "Has Permission",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Test whether a player has a certain permission."
      ],
      "patterns": [
        "%command senders% (has|have) [the] permission[s] %texts%",
        "%command senders% (doesn't|does not|do not|don't) have [the] permission[s] %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player has permission \"skript.tree\"",
        "victim has the permission \"admin\":\n\tsend \"You're attacking an admin!\" to attacker\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondDate",
      "name": "Time",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "Tests whether a given <a href='#date'>real time</a> was more or less than some <a href='#timespan'>time span</a> ago."
      ],
      "patterns": [
        "%date% (was|were)( more|(n't| not) less) than %time span% [ago]",
        "%date% (was|were)((n't| not) more| less) than %time span% [ago]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /command-with-cooldown:\n\ttrigger:\n\t\t{command::%player's uuid%::last-usage} was less than a minute ago:\n\t\t\tmessage \"Please wait a minute between uses of this command.\"\n\t\t\tstop\n\t\tset {command::%player's uuid%::last-usage} to now\n\t\t# ... actual command trigger here ...\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondCanHold",
      "name": "Can Hold",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Tests whether a player or a chest can hold the given item."
      ],
      "patterns": [
        "%inventories% (can hold|ha(s|ve) [enough] space (for|to hold)) %item types%",
        "%inventories% (can(no|')t hold|(ha(s|ve) not|ha(s|ve)n't|do[es]n't have) [enough] space (for|to hold)) %item types%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "block can hold 200 cobblestone",
        "player has enough space for 64 feathers"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondItemInHand",
      "name": "Is Holding",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player is holding a specific item. Cannot be used with endermen, use 'entity is [not] an enderman holding &lt;item type&gt;' instead."
      ],
      "patterns": [
        "[%living entities%] ha(s|ve) %item types% in [main] hand",
        "[%living entities%] (is|are) holding %item types% [in main hand]",
        "[%living entities%] ha(s|ve) %item types% in off[(-| )]hand",
        "[%living entities%] (is|are) holding %item types% in off[(-| )]hand",
        "[%living entities%] (ha(s|ve) not|do[es]n't have) %item types% in [main] hand",
        "[%living entities%] (is not|isn't) holding %item types% [in main hand]",
        "[%living entities%] (ha(s|ve) not|do[es]n't have) %item types% in off[(-| )]hand",
        "[%living entities%] (is not|isn't) holding %item types% in off[(-| )]hand"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player is holding a stick",
        "victim isn't holding a diamond sword of sharpness"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsUsingFeature",
      "name": "Is Using Experimental Feature",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a script is using an experimental feature by name."
      ],
      "patterns": [
        "%script% is using %texts%",
        "%scripts% are using %texts%",
        "%script% is(n't| not) using %texts%",
        "%scripts% are(n't| not) using %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "the script is using \"example feature\"",
        "on load:\n\tif the script is using \"example feature\":\n\t\tbroadcast \"You're using an experimental feature!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasItemCooldown",
      "name": "Has Item Cooldown",
      "since": [
        "2.8.0",
        "2.12 (cooldown group)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a cooldown is active on the specified item for a specific player.\nIf the provided item has a cooldown group component specified, the cooldown group will take priority.\nOtherwise, the cooldown of the item material will be used.\n"
      ],
      "patterns": [
        "%players% (has|have) [([an] item|a)] cooldown (on|for) %item types%",
        "%players% (has|have) %item types% on [(item|a)] cooldown",
        "%players% (doesn't|does not|do not|don't) have [([an] item|a)] cooldown (on|for) %item types%",
        "%players% (doesn't|does not|do not|don't) have %item types% on [(item|a)] cooldown"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player has player's tool on cooldown:\n\tsend \"You can't use this item right now. Wait %item cooldown of player's tool for player%\"\n"
      ],
      "events": null,
      "requirements": [
        "MC 1.21.2 (cooldown group)"
      ],
      "keywords": null
    },
    {
      "id": "CondIsDivisibleBy",
      "name": "Is Evenly Divisible By",
      "since": [
        "2.10, 2.12 (tolerance)"
      ],
      "deprecated": false,
      "description": [
        "Checks if a number is evenly divisible by another number.\nAn optional tolerance can be provided to counteract floating point error. The default tolerance is 1e-10.\nAny input smaller than the tolerance is considered to be 0.\nThis means divisors that are too small will always return false, and dividends that are too small will always return true.\n"
      ],
      "patterns": [
        "%numbers% (is|are) evenly divisible by %number% [with [a] tolerance [of] %number%]",
        "%numbers% (isn't|is not|aren't|are not) evenly divisible by %number% [with [a] tolerance [of] %number%]",
        "%numbers% can be evenly divided by %number% [with [a] tolerance [of] %number%]",
        "%numbers% (can't|can[ ]not) be evenly divided by %number% [with [a] tolerance [of] %number%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if 5 is evenly divisible by 5:",
        "if 11 cannot be evenly divided by 10:",
        "if 0.3 can be evenly divided by 0.1 with a tolerance of 0.0000001:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsWithin",
      "name": "Is Within",
      "since": [
        "2.7, 2.11 (world borders)"
      ],
      "deprecated": false,
      "description": [
        "Whether a location is within something else. The \"something\" can be a block, an entity, a chunk, a world, or a cuboid formed by two other locations.",
        "Note that using the <a href='#CondCompare'>is between</a> condition will refer to a straight line between locations, while this condition will refer to the cuboid between locations."
      ],
      "patterns": [
        "%locations% (is|are) within %location% and %location%",
        "%locations% (isn't|is not|aren't|are not) within %location% and %location%",
        "%locations% (is|are) (within|in[side [of]]) %entities/chunks/worlds/worldborders/blocks%",
        "%locations% (isn't|is not|aren't|are not) (within|in[side [of]]) %entities/chunks/worlds/worldborders/blocks%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player's location is within {_loc1} and {_loc2}:\n\tsend \"You are in a PvP zone!\" to player\n",
        "if player is in world(\"world\"):\n\tsend \"You are in the overworld!\" to player\n",
        "if attacker's location is inside of victim:\n\tcancel event\n\tsend \"Back up!\" to attacker and victim\n",
        "if player is in world \"world1\" or world \"world2\":\n\tkill player\n",
        "if player is in world \"world\" and chunk at location(0, 0, 0):\n\tgive player 1 diamond\n"
      ],
      "events": null,
      "requirements": [
        "MC 1.17+ (within block)"
      ],
      "keywords": null
    },
    {
      "id": "CondRegionContains",
      "name": "Region Contains",
      "since": [
        "2.1"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a location is contained in a particular <a href='#region'>region</a>.",
        "This condition requires a supported regions plugin to be installed."
      ],
      "patterns": [
        "[[the] region] %regions% contain[s] %directions% %locations%",
        "%locations% (is|are) ([contained] in|part of) [[the] region] %regions%",
        "[[the] region] %regions% (do|does)(n't| not) contain %directions% %locations%",
        "%locations% (is|are)(n't| not) (contained in|part of) [[the] region] %regions%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player is in the region {regions::3}",
        "on region enter:\n\tregion contains {flags.%world%.red}\n\tmessage \"The red flag is near!\"\n"
      ],
      "events": null,
      "requirements": [
        "Supported regions plugin"
      ],
      "keywords": null
    },
    {
      "id": "CondCanBuild",
      "name": "Can Build",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "Tests whether a player is allowed to build at a certain location.",
        "This condition requires a supported <a href='#region'>regions</a> plugin to be installed."
      ],
      "patterns": [
        "%players% (can|(is|are) allowed to) build %directions% %locations%",
        "%players% (can('t|not)|(is|are)(n't| not) allowed to) build %directions% %locations%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /setblock <material>:\n\tdescription: set the block at your crosshair to a different type\n\ttrigger:\n\t\tplayer cannot build at the targeted block:\n\t\t\tmessage \"You do not have permission to change blocks there!\"\n\t\t\tstop\n\t\tset the targeted block to argument\n"
      ],
      "events": null,
      "requirements": [
        "Supported regions plugin"
      ],
      "keywords": null
    },
    {
      "id": "CondIsLoaded",
      "name": "Is Loaded",
      "since": [
        "2.3, 2.5 (revamp with chunk at location/coords), 2.10 (Scripts)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a world, chunk or script is loaded.",
        "'chunk at 1, 1' uses chunk coordinates, which are location coords divided by 16."
      ],
      "patterns": [
        "chunk[s] %directions% [%locations%] (is|are)[((n't| not))] loaded",
        "chunk [at] %number%, %number% (in|of) [world] %world% is[((n't| not))] loaded",
        "%scripts/worlds% (is|are)[(n't| not)] loaded",
        "script[s] %scripts% (is|are)[(n't| not)] loaded",
        "world[s] %worlds% (is|are)[(n't| not)] loaded"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if chunk at {home::%player's uuid%} is loaded:",
        "if chunk 1, 10 in world \"world\" is loaded:",
        "if world(\"lobby\") is loaded:",
        "if script named \"MyScript.sk\" is loaded:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondStriderIsShivering",
      "name": "Strider Is Shivering",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Whether a strider is shivering."
      ],
      "patterns": [
        "%living entities% (is|are) shivering",
        "%living entities% (isn't|is not|aren't|are not) shivering"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned strider is shivering:\n\tmake last spawned strider stop shivering\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsAdult",
      "name": "Is Adult",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether or not a living entity is an adult."
      ],
      "patterns": [
        "%living entities% (is|are) [an] adult",
        "%living entities% (isn't|is not|aren't|are not) [an] adult"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on drink:\n\tevent-entity is not an adult\n\tkill event-entity\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondPandaIsScared",
      "name": "Panda Is Scared",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Whether a panda is scared."
      ],
      "patterns": [
        "%living entities% (is|are) scared",
        "%living entities% (isn't|is not|aren't|are not) scared"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned panda is scared:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsTicking",
      "name": "Is Ticking",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks if an entity is ticking."
      ],
      "patterns": [
        "%entities% (is|are) ticking",
        "%entities% (isn't|is not|aren't|are not) ticking"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send true if target is ticking"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondAllayCanDuplicate",
      "name": "Allay Can Duplicate",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if an allay is able to duplicate naturally."
      ],
      "patterns": [
        "%living entities% can (duplicate|clone)",
        "%living entities% (can't|cannot|can not) (duplicate|clone)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned allay can duplicate:\n\tdisallow last spawned to duplicate\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsAlive",
      "name": "Is Alive",
      "since": [
        "2.0, 2.4-alpha4 (non-living entity support)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity is alive. Works for non-living entities too."
      ],
      "patterns": [
        "%entities% (is|are) (alive|dead)",
        "%entities% (isn't|is not|aren't|are not) (alive|dead)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {villager-buddy::%player's uuid%} is not dead:",
        "on shoot:\n\twhile the projectile is alive:\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSwimming",
      "name": "Is Swimming",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a living entity is swimming."
      ],
      "patterns": [
        "%living entities% (is|are) swimming",
        "%living entities% (isn't|is not|aren't|are not) swimming"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player is swimming"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondPandaIsOnBack",
      "name": "Panda Is On Its Back",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Whether a panda is on its back."
      ],
      "patterns": [
        "%living entities% (is|are) on (its|their) back[s]",
        "%living entities% (isn't|is not|aren't|are not) on (its|their) back[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned panda is on its back:\n\tmake last spawned panda get off its back\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsInOpenWater",
      "name": "Is Fish Hook in Open Water",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether the fish hook is in open water.",
        "Open water is defined by a 5x4x5 area of water, air and lily pads. If in open water, treasure items may be caught."
      ],
      "patterns": [
        "%entities% (is|are) in open water[s]",
        "%entities% (isn't|is not|aren't|are not) in open water[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on fish catch:\n\tif fish hook is in open water:\n\t\tsend \"You will catch a shark soon!\"\n"
      ],
      "events": [
        {
          "id": "fishing",
          "name": "On Fishing"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondEntityIsWet",
      "name": "Entity is Wet",
      "since": [
        "2.6.1"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity is wet or not (in water, rain or a bubble column)."
      ],
      "patterns": [
        "%entities% (is|are) wet",
        "%entities% (isn't|is not|aren't|are not) wet"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player is wet:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondPotionHasParticles",
      "name": "Potion Effect - Has Particles",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a potion effect has particles."
      ],
      "patterns": [
        "%skriptpotioneffects% (has|have) particles",
        "%skriptpotioneffects% (doesn't|does not|do not|don't) have particles"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on entity potion effect modification:\n\tif the potion effect has particles:\n\t\t hide the particles of event-potioneffecttype for event-entity\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "PropCondIsEmpty",
      "name": "Is Empty",
      "since": [
        "unknown (before 2.1)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether something is empty."
      ],
      "patterns": [
        "%objects% (is|are) empty",
        "%objects% (isn't|is not|aren't|are not) empty"
      ],
      "property": {
        "id": "empty",
        "name": "empty",
        "description": "Whether something is empty or not.",
        "provider": "Skript",
        "since": [
          "2.13"
        ]
      },
      "propertyTypes": [
        {
          "id": "slot",
          "name": "Slot"
        },
        {
          "id": "inventory",
          "name": "Inventory"
        },
        {
          "id": "numbered",
          "name": "Any Numbered/Sized Thing"
        },
        {
          "id": "string",
          "name": "Text"
        },
        {
          "id": "queue",
          "name": "Queue"
        }
      ],
      "examples": [
        "player's inventory is empty"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsGliding",
      "name": "Is Gliding",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a living entity is gliding."
      ],
      "patterns": [
        "%living entities% (is|are) gliding",
        "%living entities% (isn't|is not|aren't|are not) gliding"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player is gliding"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondItemDespawn",
      "name": "Will Despawn",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Checks if the dropped item will be despawned naturally through Minecraft's timer."
      ],
      "patterns": [
        "%itementities% can (despawn naturally|naturally despawn)",
        "%itementities% (can't|cannot|can not) (despawn naturally|naturally despawn)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if all dropped items can despawn naturally:\n\tprevent all dropped items from naturally despawning\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsValid",
      "name": "Is Valid",
      "since": [
        "2.7, 2.10 (Scripts & Configs)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether something (an entity, a script, a config, etc.) is valid.",
        "An invalid entity may have died or de-spawned for some other reason.",
        "An invalid script reference may have been reloaded, moved or disabled since."
      ],
      "patterns": [
        "%entities/scripts% (is|are) valid",
        "%entities/scripts% (isn't|is not|aren't|are not) valid"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if event-entity is valid"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsInteractable",
      "name": "Is Interactable",
      "since": [
        "2.5.2"
      ],
      "deprecated": false,
      "description": [
        "Checks wether or not a block is interactable."
      ],
      "patterns": [
        "%item types% (is|are) interactable",
        "%item types% (isn't|is not|aren't|are not) interactable"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on block break:\n\tif event-block is interactable:\n\t\tcancel event\n\t\tsend \"You cannot break interactable blocks!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsInvulnerable",
      "name": "Is Invulnerable",
      "since": [
        "2.5, 2.10 (gamemode)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity or a gamemode is invulnerable.\nFor gamemodes, Paper and Minecraft 1.20.6 are required"
      ],
      "patterns": [
        "%entities/gamemodes% (is|are) (invulnerable|invincible)",
        "%entities/gamemodes% (isn't|is not|aren't|are not) (invulnerable|invincible)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "target entity is invulnerable",
        "loop all gamemodes:\n\tif loop-value is not invulnerable:\n\t\tbroadcast \"the gamemode %loop-value% is vulnerable!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsDancing",
      "name": "Is Dancing",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if an entity is dancing, such as allays, parrots, or piglins.\nPlease note that it is not possible to change whether a parrot is dancing.\n"
      ],
      "patterns": [
        "%living entities% (is|are) dancing",
        "%living entities% (isn't|is not|aren't|are not) dancing"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned allay is dancing:\n\tbroadcast \"Dance Party!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondTextDisplaySeeThroughBlocks",
      "name": "Text Display Visible Through Blocks",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns whether text displays can be seen through blocks or not."
      ],
      "patterns": [
        "%displays% (is|are) visible through (blocks|walls)",
        "%displays% (isn't|is not|aren't|are not) visible through (blocks|walls)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned text display is visible through walls:\n\tprevent last spawned text display from being visible through walls\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsVectorNormalized",
      "name": "Is Normalized",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a vector is normalized i.e. length of 1"
      ],
      "patterns": [
        "%vectors% (is|are) normali(s|z)ed",
        "%vectors% (isn't|is not|aren't|are not) normali(s|z)ed"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "vector of player's location is normalized",
        "vector in direction of player is normalised"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondChatFiltering",
      "name": "Has Chat Filtering",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player has chat filtering enabled."
      ],
      "patterns": [
        "%players% (has|have) (chat|text) filtering (on|enabled)",
        "%players% (doesn't|does not|do not|don't) have (chat|text) filtering (on|enabled)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player doesn't have chat filtering enabled:\n\tsend \"<gray>This server may contain mature chat messages. You have been warned!\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsBlocking",
      "name": "Is Blocking",
      "since": [
        "unknown (before 2.1)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player is blocking with their shield."
      ],
      "patterns": [
        "%players% (is|are) (blocking|defending) [with [a] shield]",
        "%players% (isn't|is not|aren't|are not) (blocking|defending) [with [a] shield]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage of player:\n\tvictim is blocking\n\tdamage attacker by 0.5 hearts\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsTamed",
      "name": "Is Tamed",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Check if a tameable entity is tamed (horse, parrot, cat, etc.)."
      ],
      "patterns": [
        "%entities% (is|are) (tamed|domesticated)",
        "%entities% (isn't|is not|aren't|are not) (tamed|domesticated)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send true if {_horse} is tamed",
        "tame {_horse} if {_horse} is untamed"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondItemEnchantmentGlint",
      "name": "Item Has Enchantment Glint Override",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item has the enchantment glint overridden, or is forced to glint or not."
      ],
      "patterns": [
        "%item types% (has|have) enchantment glint overrid(den|e)",
        "%item types% (doesn't|does not|do not|don't) have enchantment glint overrid(den|e)",
        "%item types% (is|are) forced to [not] glint",
        "%item types% (isn't|is not|aren't|are not) forced to [not] glint"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the player's tool has the enchantment glint override\n\tsend \"Your tool has the enchantment glint override.\" to player\n",
        "if {_item} is forced to glint:\n\tsend \"This item is forced to glint.\" to player\nelse if {_item} is forced to not glint:\n\tsend \"This item is forced to not glint.\" to player\nelse:\n\tsend \"This item does not have any glint override.\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondEquipCompDispensable",
      "name": "Equippable Component - Can Be Dispensed",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether an item can be dispensed by a dispenser.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "%equippable components% can be dispensed",
        "%equippable components% (can't|cannot|can not) be dispensed",
        "%equippable components% (is|are) (able to be dispensed|dispensable)",
        "%equippable components% (isn't|is not|aren't|are not) (able to be dispensed|dispensable)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_item} can be dispensed:\n\tadd \"Dispensable\" to lore of {_item}\n",
        "set {_component} to the equippable component of {_item}\nif {_component} is not able to be dispensed:\n\tallow {_component} to be dispensed\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null
    },
    {
      "id": "CondTextDisplayHasDropShadow",
      "name": "Text Display Has Drop Shadow",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns whether the text of a display has drop shadow applied."
      ],
      "patterns": [
        "[[the] text of] %displays% (has|have) [a] (drop|text) shadow",
        "%displays%'[s] text (has|have) [a] (drop|text) shadow",
        "[[the] text of] %displays% (doesn't|does not|do not|don't) have [a] (drop|text) shadow",
        "%displays%'[s] text (doesn't|does not|do not|don't) have [a] (drop|text) shadow"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_display} has drop shadow:\n\tremove drop shadow from the text of {_display}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSheared",
      "name": "Entity Is Sheared",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Checks whether entities are sheared."
      ],
      "patterns": [
        "%living entities% (is|are) (sheared|shorn)",
        "%living entities% (isn't|is not|aren't|are not) (sheared|shorn)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if targeted entity of player is sheared:\n\tsend \"This entity has nothing left to shear!\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondLidState",
      "name": "Lid Is Open/Closed",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Check to see whether lidded blocks (chests, shulkers, etc.) are open or closed."
      ],
      "patterns": [
        "[the] lid[s] of %blocks% (is|are) (open[ed]|close[d])",
        "[the] lid[s] of %blocks% (isn't|is not|aren't|are not) (open[ed]|close[d])",
        "%blocks%'[s] lid[s] (is|are) (open[ed]|close[d])",
        "%blocks%'[s] lid[s] (isn't|is not|aren't|are not) (open[ed]|close[d])"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the lid of {_chest} is closed:\n\topen the lid of {_block}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondEntityIsInLiquid",
      "name": "Entity is in Liquid",
      "since": [
        "2.6.1"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity is in rain, lava, water or a bubble column."
      ],
      "patterns": [
        "%entities% (is|are) in (water|lava|[a] bubble[ ]column|rain)",
        "%entities% (isn't|is not|aren't|are not) in (water|lava|[a] bubble[ ]column|rain)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player is in rain:",
        "if player is in water:",
        "player is in lava:",
        "player is in bubble column"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondEquipCompSwapEquipment",
      "name": "Equippable Component - Can Swap Equipment",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether an item can swap equipment by right clicking with it in your hand.\nThe item will swap places of the set 'equipment slot' of the item. If an equipment slot is not set, defaults to helmet.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work aas intended.\n"
      ],
      "patterns": [
        "%equippable components% can swap equipment [on right click|when right clicked]",
        "%equippable components% (can't|cannot|can not) swap equipment [on right click|when right clicked]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_item} can swap equipment:\n\tadd \"Swappable\" to lore of {_item}\n",
        "set {_component} to the equippable component of {_item}\nif {_component} can not be equipped when right clicked:\n\tmake {_component} swappable\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null
    },
    {
      "id": "CondChatColors",
      "name": "Can See Chat Colors",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player can see chat colors."
      ],
      "patterns": [
        "%players% can see chat colo[u]r[s|ing]",
        "%players% (can't|cannot|can not) see chat colo[u]r[s|ing]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player can see chat colors:\n\tsend \"Find the red word in <red>this<reset> message.\"\nelse:\n\tsend \"You cannot partake in finding the colored word.\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsResonating",
      "name": "Bell Is Resonating",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if a bell is currently resonating.",
        "A bell will start resonating five game ticks after being rung, and will continue to resonate for 40 game ticks."
      ],
      "patterns": [
        "%blocks% (is|are) resonating",
        "%blocks% (isn't|is not|aren't|are not) resonating"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "target block is resonating"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsOnGround",
      "name": "Is on Ground",
      "since": [
        "2.2-dev26"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity is on ground."
      ],
      "patterns": [
        "%entities% (is|are) on [the] ground",
        "%entities% (isn't|is not|aren't|are not) on [the] ground"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player is not on ground"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondLeashed",
      "name": "Is Leashed",
      "since": [
        "2.5, 2.16 (all leashable entities)"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if an entity is currently leashed."
      ],
      "patterns": [
        "%entities% (is|are) leashed",
        "%entities% (isn't|is not|aren't|are not) leashed"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "target entity is leashed"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsFireResistant",
      "name": "Is Fire Resistant",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is fire resistant."
      ],
      "patterns": [
        "%item types% (is|are) (fire resistant|resistant to fire)",
        "%item types% (isn't|is not|aren't|are not) (fire resistant|resistant to fire)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player's tool is fire resistant:",
        "if {_items::*} aren't resistant to fire:"
      ],
      "events": null,
      "requirements": [
        "Spigot 1.20.5+"
      ],
      "keywords": null
    },
    {
      "id": "CondIsBaby",
      "name": "Is Baby",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether or not a living entity is a baby."
      ],
      "patterns": [
        "%living entities% (is|are) a (child|baby)",
        "%living entities% (isn't|is not|aren't|are not) a (child|baby)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on drink:\n\tevent-entity is a baby\n\tkill event-entity\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasLootTable",
      "name": "Has Loot Table",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity or block has a loot table. The loot tables of chests will be deleted when the chest is opened or broken."
      ],
      "patterns": [
        "%blocks/entities% (has|have) [a] loot[ ]table",
        "%blocks/entities% (doesn't|does not|do not|don't) have [a] loot[ ]table"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set event-block to chest\nif event-block has a loot table:\n\t# this will never happen, because it doesn't have a loot table.\n\nset loot table of event-block to \"minecraft:chests/simple_dungeon\"\nif event-block has a loot table:\n\t# this will happen, because it now has a loot table.\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSneaking",
      "name": "Is Sneaking",
      "since": [
        "1.4.4"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player is sneaking."
      ],
      "patterns": [
        "%players% (is|are) sneaking",
        "%players% (isn't|is not|aren't|are not) sneaking"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# prevent mobs from seeing sneaking players if they are at least 4 meters apart\non target:\n\ttarget is sneaking\n\tdistance of target and the entity is bigger than 4\n\tcancel the event\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsPassable",
      "name": "Is Passable",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a block is passable.",
        "A block is passable if it has no colliding parts that would prevent players from moving through it.",
        "Blocks like tall grass, flowers, signs, etc. are passable, but open doors, fence gates, trap doors, etc. are not because they still have parts that can be collided with."
      ],
      "patterns": [
        "%blocks% (is|are) passable",
        "%blocks% (isn't|is not|aren't|are not) passable"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player's targeted block is passable"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsOp",
      "name": "Is Operator",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player is a server operator."
      ],
      "patterns": [
        "%offline players% (is|are) [[a] server|an] op[erator][s]",
        "%offline players% (isn't|is not|aren't|are not) [[a] server|an] op[erator][s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player is an operator"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondEquipCompShearable",
      "name": "Equippable Component - Can Be Sheared Off",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether an item can be sheared off of an entity.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "%equippable components% can be sheared off [of entities]",
        "%equippable components% (can't|cannot|can not) be sheared off [of entities]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_item} can be sheared off:\n\tadd \"Shearable\" to lore of {_item}\n",
        "set {_component} to the equippable component of {_item}\nif {_component} can not be sheared off:\n\tallow {_component} to be sheared off\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.6+"
      ],
      "keywords": null
    },
    {
      "id": "CondIsTransparent",
      "name": "Is Transparent",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is transparent. Note that this condition may not work for all blocks, due to the transparency list used by Spigot not being completely accurate."
      ],
      "patterns": [
        "%item types% (is|are) transparent",
        "%item types% (isn't|is not|aren't|are not) transparent"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player's tool is transparent."
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSprinting",
      "name": "Is Sprinting",
      "since": [
        "1.4.4"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player is sprinting."
      ],
      "patterns": [
        "%players% (is|are) sprinting",
        "%players% (isn't|is not|aren't|are not) sprinting"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player is not sprinting"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsBurning",
      "name": "Is Burning",
      "since": [
        "1.4.4"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity is on fire, e.g. a zombie due to being in sunlight, or any entity after falling into lava."
      ],
      "patterns": [
        "%entities% (is|are) (burning|ignited|on fire)",
        "%entities% (isn't|is not|aren't|are not) (burning|ignited|on fire)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# increased attack against burning targets\nvictim is burning:\n\tincrease damage by 2\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSleeping",
      "name": "Is Sleeping",
      "since": [
        "1.4.4, 2.11 (living entities)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity is sleeping."
      ],
      "patterns": [
        "%living entities% (is|are) sleeping",
        "%living entities% (isn't|is not|aren't|are not) sleeping"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player is sleeping:\n\tmake player wake up without spawn location update\n",
        "if last spawned fox is sleeping:\n\tmake last spawned fox stop sleeping\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondItemDespawn-2",
      "name": "Will Despawn",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Checks if the dropped item will be despawned naturally through Minecraft's timer."
      ],
      "patterns": [
        "%itementities% will (despawn naturally|naturally despawn)",
        "%itementities% (will (not|neither)|won't) (despawn naturally|naturally despawn)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if all dropped items can despawn naturally:\n\tprevent all dropped items from naturally despawning\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsBlock",
      "name": "Is Block",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is a block."
      ],
      "patterns": [
        "%item types% (is|are) ([a] block|blocks)",
        "%item types% (isn't|is not|aren't|are not) ([a] block|blocks)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player's held item is a block",
        "{list::*} are blocks"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondPotionHasIcon",
      "name": "Potion Effect - Has Icon",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a potion effect has an icon."
      ],
      "patterns": [
        "%skriptpotioneffects% (has|have) ([an] icon|icons)",
        "%skriptpotioneffects% (doesn't|does not|do not|don't) have ([an] icon|icons)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on entity potion effect modification:\n\tif the potion effect has an icon:\n\t\thide the icon of event-potioneffecttype for event-entity\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSlimeChunk",
      "name": "Is Slime Chunk",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Tests whether a chunk is a so-called slime chunk.",
        "Slimes can generally spawn in the swamp biome and in slime chunks.",
        "For more info, see <a href='https://minecraft.wiki/w/Slime#.22Slime_chunks.22'>the Minecraft wiki</a>."
      ],
      "patterns": [
        "%chunk% (is|are) ([a] slime chunk|slime chunks|slimey)",
        "%chunk% (isn't|is not|aren't|are not) ([a] slime chunk|slime chunks|slimey)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /slimey:\n\ttrigger:\n\t\tif chunk at player is a slime chunk:\n\t\t\tsend \"Yeah, it is!\"\n\t\telse:\n\t\t\tsend \"Nope, it isn't\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsFlying",
      "name": "Is Flying",
      "since": [
        "1.4.4"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player is flying."
      ],
      "patterns": [
        "%players% (is|are) flying",
        "%players% (isn't|is not|aren't|are not) flying"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player is not flying"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondEntityStorageIsFull",
      "name": "Entity Storage Is Full",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if the an entity block storage (i.e beehive) is full."
      ],
      "patterns": [
        "[the] entity storage of %blocks% (is|are) full",
        "%blocks%'[s] entity storage (is|are) full",
        "[the] entity storage of %blocks% (isn't|is not|aren't|are not) full",
        "%blocks%'[s] entity storage (isn't|is not|aren't|are not) full"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the entity storage of {_beehive} is full:\n\trelease the entity storage of {_beehive}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsOccluding",
      "name": "Is Occluding",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is a block and completely blocks vision."
      ],
      "patterns": [
        "%item types% (is|are) occluding",
        "%item types% (isn't|is not|aren't|are not) occluding"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player's tool is occluding"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasClientWeather",
      "name": "Has Client Weather",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Checks whether the given players have a custom client weather"
      ],
      "patterns": [
        "%players% (has|have) [a] (client|custom) weather [set]",
        "%players% (doesn't|does not|do not|don't) have [a] (client|custom) weather [set]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the player has custom weather:\n\tmessage \"Your custom weather is %player's weather%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSaddled",
      "name": "Is Saddled",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a given entity (horse or steerable) is saddled.",
        "If 'properly' is used, this will only return true if the entity is wearing specifically a saddle item."
      ],
      "patterns": [
        "%living entities% (is|are) [properly] saddled",
        "%living entities% (isn't|is not|aren't|are not) [properly] saddled"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send whether {_horse} is saddled"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsChargingFireball",
      "name": "Is Charging Fireball",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Check whether a ghast is charging a fireball."
      ],
      "patterns": [
        "%living entities% (is|are) charging [a] fireball",
        "%living entities% (isn't|is not|aren't|are not) charging [a] fireball"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned ghast is charging fireball:\n\tkill last spawned ghast\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSolid",
      "name": "Is Solid",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is solid."
      ],
      "patterns": [
        "%item types% (is|are) solid",
        "%item types% (isn't|is not|aren't|are not) solid"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "grass block is solid",
        "player's tool isn't solid"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsFuel",
      "name": "Is Fuel",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item can be used as fuel in a furnace."
      ],
      "patterns": [
        "%item types% (is|are) [furnace] fuel",
        "%item types% (isn't|is not|aren't|are not) [furnace] fuel"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click on furnace:\n\tif player's tool is not fuel:\n\t\tsend \"Please hold a valid fuel item in your hand\"\n\t\tcancel event\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsLeftHanded",
      "name": "Left Handed",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Checks if living entities or players are left or right-handed. Armor stands are neither right nor left-handed."
      ],
      "patterns": [
        "%living entities% (is|are) (left|right)( |-)handed",
        "%living entities% (isn't|is not|aren't|are not) (left|right)( |-)handed"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage of player:\n\tif victim is left handed:\n\t\tcancel event\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsDashing",
      "name": "Camel Is Dashing",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a camel is currently using its dash ability."
      ],
      "patterns": [
        "%living entities% (is|are) dashing",
        "%living entities% (isn't|is not|aren't|are not) dashing"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned camel is dashing:\n\tkill last spawned camel\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsPotionInstant",
      "name": "Potion Effect Type - Is Instant",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a potion effect type is instant.",
        "That is, whether the effect happens once/immediately."
      ],
      "patterns": [
        "%potion effect types% (is|are) instant",
        "%potion effect types% (isn't|is not|aren't|are not) instant"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if any of the potion effects of the player's tool are instant:\n\tmessage \"Use your tool for immediate benefits!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsCharged",
      "name": "Is Charged",
      "since": [
        "2.5, 2.10 (withers, wither skulls)"
      ],
      "deprecated": false,
      "description": [
        "Checks if a creeper, wither, or wither skull is charged (powered).\nPlease note that it is not possible to change whether a wither is charged.\n"
      ],
      "patterns": [
        "%entities% (is|are) (charged|powered)",
        "%entities% (isn't|is not|aren't|are not) (charged|powered)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the last spawned creeper is charged:\n\tbroadcast \"A charged creeper is at %location of last spawned creeper%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondCanFly",
      "name": "Can Fly",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Whether a player is allowed to fly."
      ],
      "patterns": [
        "%players% can fly",
        "%players% (can't|cannot|can not) fly"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player can fly"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsUnbreakable",
      "name": "Is Unbreakable",
      "since": [
        "2.5.1, 2.9.0 (breakable)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is unbreakable."
      ],
      "patterns": [
        "%item types% (is|are) [un]breakable",
        "%item types% (isn't|is not|aren't|are not) [un]breakable"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if event-item is unbreakable:\n\tsend \"This item is unbreakable!\" to player\n",
        "if tool of {_p} is breakable:\n\tsend \"Your tool is breakable!\" to {_p}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsInfinite",
      "name": "Is Infinite",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Checks whether potion effects or timespans are infinite."
      ],
      "patterns": [
        "%potion effects/time spans% (is|are) infinite",
        "%potion effects/time spans% (isn't|is not|aren't|are not) infinite"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "all of the active potion effects of the player are infinite",
        "if timespan argument is infinite:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondPandaIsSneezing",
      "name": "Panda Is Sneezing",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Whether a panda is sneezing."
      ],
      "patterns": [
        "%living entities% (is|are) sneezing",
        "%living entities% (isn't|is not|aren't|are not) sneezing"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned panda is sneezing:\n\tmake last spawned panda stop sneezing\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsLootable",
      "name": "Is Lootable",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity or block is lootable. Lootables are entities or blocks that can have a loot table."
      ],
      "patterns": [
        "%blocks/entities% (is|are) lootable",
        "%blocks/entities% (isn't|is not|aren't|are not) lootable"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "spawn a pig at event-location\nset {_pig} to last spawned entity\nif {_pig} is lootable:\n\tset loot table of {_pig} to \"minecraft:entities/cow\"\n\t# the pig will now drop the loot of a cow when killed, because it is indeed a lootable entity.\n",
        "set block at event-location to chest\nif block at event-location is lootable:\n\tset loot table of block at event-location to \"minecraft:chests/simple_dungeon\"\n\t# the chest will now generate the loot of a simple dungeon when opened, because it is indeed a lootable block.\n",
        "set block at event-location to white wool\nif block at event-location is lootable:\n\t# uh oh, nothing will happen because a wool is not a lootable block.\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsFrozen",
      "name": "Is Frozen",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity is frozen."
      ],
      "patterns": [
        "%entities% (is|are) frozen",
        "%entities% (isn't|is not|aren't|are not) frozen"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player is frozen:\n\tkill player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondCanPickUpItems",
      "name": "Can Pick Up Items",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Whether living entities are able to pick up items off the ground or not."
      ],
      "patterns": [
        "%living entities% can pick([ ]up items| items up)",
        "%living entities% (can't|cannot|can not) pick([ ]up items| items up)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player can pick items up:\n\tsend \"You can pick up items!\" to player\n",
        "on drop:\n\tif player can't pick up items:\n\t\tsend \"Be careful, you won't be able to pick that up!\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsOnline",
      "name": "Is Online",
      "since": [
        "1.4"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a player is online. The 'connected' pattern will return false once this player leaves the server, even if they rejoin. Be aware that using the 'connected' pattern with a variable will not have this special behavior. Use the direct event-player or other non-variable expression for best results."
      ],
      "patterns": [
        "%offline players% (is|are) (online|offline|connected)",
        "%offline players% (isn't|is not|aren't|are not) (online|offline|connected)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player is online",
        "player-argument is offline",
        "while player is connected:\n\twait 60 seconds\n\tsend \"hello!\" to player\n",
        "# The following will act like `{_player} is online`.\n# Using variables with `is connected` will not behave the same as with non-variables.\nwhile {_player} is connected:\n\tbroadcast \"online!\"\n\twait 1 tick\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsStackable",
      "name": "Is Stackable",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is stackable."
      ],
      "patterns": [
        "%item stacks% (is|are) stackable",
        "%item stacks% (isn't|is not|aren't|are not) stackable"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "diamond axe is stackable",
        "birch wood is stackable",
        "torch is stackable"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondEntityUnload",
      "name": "Can Despawn",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Check if an entity can despawn when the chunk they're located at is unloaded.",
        "More information on what and when entities despawn can be found at <a href=\"https://minecraft.wiki/w/Mob_spawning#Despawning\">reference</a>."
      ],
      "patterns": [
        "%living entities% can despawn (on chunk unload|when far away)",
        "%living entities% (can't|cannot|can not) despawn (on chunk unload|when far away)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned entity can despawn on chunk unload:\n\tmake last spawned entity not despawn on chunk unload\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsEdible",
      "name": "Is Edible",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is edible."
      ],
      "patterns": [
        "%item types% (is|are) edible",
        "%item types% (isn't|is not|aren't|are not) edible"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "cooked beef is edible",
        "player's tool is edible"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondEquipCompInteract",
      "name": "Equippable Component - Can Equip On Entities",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether an entity should equip the item when right clicking on the entity with the item.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "%equippable components% can be (equipped|put) on[to] entities",
        "%equippable components% (can't|cannot|can not) be (equipped|put) on[to] entities"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_item} can be equipped on entities:"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.5+"
      ],
      "keywords": null
    },
    {
      "id": "CondIsPotionAmbient",
      "name": "Potion Effect - Is Ambient",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a potion effect is ambient.",
        "That is, whether the potion effect produces more, translucent, particles."
      ],
      "patterns": [
        "%skriptpotioneffects% (is|are) ambient",
        "%skriptpotioneffects% (isn't|is not|aren't|are not) ambient"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on entity potion effect modification:\n\tif the potion effect is ambient:\n\t\tmessage \"It's particle time!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsJumping",
      "name": "Is Jumping",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a living entity is jumping. This condition does not work on players."
      ],
      "patterns": [
        "%living entities% (is|are) jumping",
        "%living entities% (isn't|is not|aren't|are not) jumping"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn of zombie:\n\twhile event-entity is not jumping:\n\t\twait 5 ticks\n\tpush event-entity upwards\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsResponsive",
      "name": "Is Responsive",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an interaction is responsive or not. Responsiveness determines whether clicking the entity will cause the clicker's arm to swing.\n"
      ],
      "patterns": [
        "%entities% (is|are) (responsive|unresponsive)",
        "%entities% (isn't|is not|aren't|are not) (responsive|unresponsive)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned interaction is responsive:",
        "if last spawned interaction is unresponsive:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsScriptCommand",
      "name": "Is a Script Command",
      "since": [
        "2.6"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a command (string label) is a script command (one registered in a script)."
      ],
      "patterns": [
        "%text% (is|are) [a] s(c|k)ript (command|cmd)",
        "%text% (isn't|is not|aren't|are not) [a] s(c|k)ript (command|cmd)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on command:\n\tcommand is not a script command\n\t# do something only for non-custom commands\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsClimbing",
      "name": "Is Climbing",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Whether a living entity is climbing, such as a spider up a wall or a player on a ladder."
      ],
      "patterns": [
        "%living entities% (is|are) climbing",
        "%living entities% (isn't|is not|aren't|are not) climbing"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "spawn a spider at location of spawn\nwait a second\nif the last spawned spider is climbing:\n\tmessage \"The spider is now climbing!\"\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.17+"
      ],
      "keywords": null
    },
    {
      "id": "CondIsPlayingDead",
      "name": "Is Playing Dead",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if an axolotl is playing dead."
      ],
      "patterns": [
        "%living entities% (is|are) playing dead",
        "%living entities% (isn't|is not|aren't|are not) playing dead"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned axolotl is playing dead:\n\tmake last spawned axolotl stop playing dead\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondPandaIsRolling",
      "name": "Panda Is Rolling",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Whether a panda is rolling."
      ],
      "patterns": [
        "%living entities% (is|are) rolling",
        "%living entities% (isn't|is not|aren't|are not) rolling"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned panda is rolling:\n\tmake last spawned panda stop rolling\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsFlammable",
      "name": "Is Flammable",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is flammable."
      ],
      "patterns": [
        "%item types% (is|are) flammable",
        "%item types% (isn't|is not|aren't|are not) flammable"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send whether the tag contents of minecraft tag \"planks\" are flammable",
        "player's tool is flammable"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondEndermanStaredAt",
      "name": "Enderman Has Been Stared At",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if an enderman has been stared at.",
        "This will return true as long as the entity that stared at the enderman is still alive."
      ],
      "patterns": [
        "%living entities% (has|have) been stared at",
        "%living entities% (doesn't|does not|do not|don't) have been stared at"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned enderman has been stared at:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondCanAge",
      "name": "Can Age",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether or not an entity will be able to age/grow up."
      ],
      "patterns": [
        "%living entities% can (age|grow (up|old[er]))",
        "%living entities% (can't|cannot|can not) (age|grow (up|old[er]))"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on breeding:\n\tentity can't age\n\tbroadcast \"An immortal has been born!\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsCommandBlockConditional",
      "name": "Is Conditional",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a command block is conditional or not."
      ],
      "patterns": [
        "%blocks% (is|are) [un]conditional",
        "%blocks% (isn't|is not|aren't|are not) [un]conditional"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_block} is conditional:\n\tmake {_block} unconditional\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondCanBreed",
      "name": "Can Breed",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether or not a living entity can be bred."
      ],
      "patterns": [
        "%living entities% can (breed|be bred)",
        "%living entities% (can't|cannot|can not) (breed|be bred)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click on living entity:\n\tevent-entity can't breed\n\tsend \"Turns out %event-entity% is not breedable. Must be a Skript user!\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasCustomModelData",
      "name": "Has Custom Model Data",
      "since": [
        "2.5, 2.12 (expanded data types)"
      ],
      "deprecated": false,
      "description": [
        "Check if an item has a custom model data tag"
      ],
      "patterns": [
        "%item types% (has|have) [custom] model data [floats|flags|strings|colo[u]rs]",
        "%item types% (doesn't|does not|do not|don't) have [custom] model data [floats|flags|strings|colo[u]rs]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player's tool has custom model data",
        "if player's tool has custom model data flags:\n\tloop custom model data flags of player's tool:\n\t\tsend \"Flag %loop-index%: %loop-value%\"\n",
        "set {_coloured} to whether player's tool has model data colours"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.4+ (floats/flags/strings/colours)"
      ],
      "keywords": null
    },
    {
      "id": "CondIsPersistent",
      "name": "Is Persistent",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Whether entities, players, or leaves are persistent.",
        "Persistence of entities is whether they are retained through server restarts.",
        "Persistence of leaves is whether they should decay when not connected to a log block within 6 meters.",
        "Persistence of players is if the player's playerdata should be saved when they leave the server. Players' persistence is reset back to 'true' when they join the server.",
        "Passengers inherit the persistence of their vehicle, meaning a persistent zombie put on a non-persistent chicken will become non-persistent. This does not apply to players.",
        "By default, all entities are persistent."
      ],
      "patterns": [
        "%entities/blocks% (is|are) persistent",
        "%entities/blocks% (isn't|is not|aren't|are not) persistent"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn:\n\tif event-entity is persistent:\n\t\tmake event-entity not persistent\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsScreaming",
      "name": "Is Screaming",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Check whether a goat or enderman is screaming."
      ],
      "patterns": [
        "%living entities% (is|are) screaming",
        "%living entities% (isn't|is not|aren't|are not) screaming"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "\tif last spawned goat is not screaming:\n\t\tmake last spawned goat scream\n",
        "\tif {_enderman} is screaming:\n\t\tforce {_enderman} to stop screaming\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSilent",
      "name": "Is Silent",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity is silent i.e. its sounds are disabled."
      ],
      "patterns": [
        "%entities% (is|are) silent",
        "%entities% (isn't|is not|aren't|are not) silent"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "target entity is silent"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsTameable",
      "name": "Is Tameable",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Check if an entity is tameable."
      ],
      "patterns": [
        "%living entities% (is|are) tameable",
        "%living entities% (isn't|is not|aren't|are not) tameable"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\tif victim is tameable:\n\t\tcancel event\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsInvisible",
      "name": "Is Invisible",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a living entity is invisible."
      ],
      "patterns": [
        "%living entities% (is|are) (invisible|visible)",
        "%living entities% (isn't|is not|aren't|are not) (invisible|visible)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "target entity is invisible"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsPoisoned",
      "name": "Is Poisoned",
      "since": [
        "1.4.4"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity is poisoned."
      ],
      "patterns": [
        "%living entities% (is|are) poisoned",
        "%living entities% (isn't|is not|aren't|are not) poisoned"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the player is poisoned:\n\tcure the player from poison\n\tmessage \"You have been cured!\" to the player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsRiptiding",
      "name": "Is Riptiding",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if an entity is currently using the Riptide enchantment."
      ],
      "patterns": [
        "%living entities% (is|are) riptiding",
        "%living entities% (isn't|is not|aren't|are not) riptiding"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "target entity is riptiding"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsEating",
      "name": "Is Eating",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Whether a panda or horse type (horse, camel, donkey, llama, mule) is eating."
      ],
      "patterns": [
        "%living entities% (is|are) eating",
        "%living entities% (isn't|is not|aren't|are not) eating"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned panda is eating:\n\tforce last spawned panda to stop eating\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsInLove",
      "name": "Is In Love",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether or not a living entity is in love."
      ],
      "patterns": [
        "%living entities% (is|are) in lov(e|ing) [state|mode]",
        "%living entities% (isn't|is not|aren't|are not) in lov(e|ing) [state|mode]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn of living entity:\n\tif entity is in love:\n\t\tbroadcast \"That was quick!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasResourcePack",
      "name": "Has Resource Pack",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Checks whether the given players have a server resource pack loaded. Please note that this can't detect player's own resource pack, only the resource pack that sent by the server."
      ],
      "patterns": [
        "%players% (has|have) [a] resource pack [(loaded|installed)]",
        "%players% (doesn't|does not|do not|don't) have [a] resource pack [(loaded|installed)]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the player has a resource pack loaded:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondGoatHasHorns",
      "name": "Goat Has Horns",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if a goat has or does not have a left, right, or both horns."
      ],
      "patterns": [
        "%living entities% (has|have) ((any|a) horn|[a] left horn[s]|[a] right horn[s]|both horns)",
        "%living entities% (doesn't|does not|do not|don't) have ((any|a) horn|[a] left horn[s]|[a] right horn[s]|both horns)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "\tif last spawned goat does not have both horns:\n\t\tmake last spawned goat have both horns\n",
        "\tif {_goat} has a right horn:\n\t\tforce {_goat} to not have a right horn\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsRinging",
      "name": "Bell Is Ringing",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Checks to see if a bell is currently ringing. A bell typically rings for 50 game ticks."
      ],
      "patterns": [
        "%blocks% (is|are) ringing",
        "%blocks% (isn't|is not|aren't|are not) ringing"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "target block is ringing"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondAI",
      "name": "Has AI",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity has AI."
      ],
      "patterns": [
        "%living entities% (has|have) (ai|artificial intelligence)",
        "%living entities% (doesn't|does not|do not|don't) have (ai|artificial intelligence)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "target entity has ai"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsSedated",
      "name": "Beehive Is Sedated",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Checks if a beehive is sedated from a nearby campfire."
      ],
      "patterns": [
        "%blocks% (is|are) sedated",
        "%blocks% (isn't|is not|aren't|are not) sedated"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_beehive} is sedated:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsEnchanted",
      "name": "Is Enchanted",
      "since": [
        "1.4.6, 2.12 ('or better')"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item is enchanted. Enchants must match the exact level by default, unless 'or better' or 'or worse' are used."
      ],
      "patterns": [
        "%item types% (is|are) enchanted [with %enchantment types% [or ((better|greater|higher|above)|(worse|lesser|lower|below))]]",
        "%item types% (isn't|is not|aren't|are not) enchanted [with %enchantment types% [or ((better|greater|higher|above)|(worse|lesser|lower|below))]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "tool of the player is enchanted with efficiency 2",
        "if player's helmet or player's boots are enchanted with protection 3 or better:",
        "if player's chestplate is enchanted with protection"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasScoreboardTag",
      "name": "Has Scoreboard Tag",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Checks whether the given entities has the given <a href='#ExprScoreboardTags'>scoreboard tags</a>."
      ],
      "patterns": [
        "%entities% (has|have) [the] score[ ]board tag[s] %texts%",
        "%entities% (doesn't|does not|do not|don't) have [the] score[ ]board tag[s] %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the targeted armor stand has the scoreboard tag \"test tag\":"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasPersistentDataTag",
      "name": "Has Persistent Data Tag",
      "since": [
        "2.15"
      ],
      "deprecated": false,
      "description": [
        "Checks if the specified objects have persistent data tags with the given keys.\nKeys should be in the format \"namespace:key\" or \"key\". If a namespace is omitted, \"minecraft\" will be used instead.\nIf a key is invalid, it will be ignored and a warning will be logged.\n"
      ],
      "patterns": [
        "%objects% (has|have) [persistent] data tag[s] %texts%",
        "%objects% (doesn't|does not|do not|don't) have [persistent] data tag[s] %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player has persistent data tag \"koth:capturePoint\":\n\tadd 1 to {points::%{team::%player%}%}\n",
        "if player's tool has persistent data tags \"custom:damage\" and \"custom:owner\":\n\tif data tag \"custom:owner\" of player's tool is not player:\n\t\tbroadcast \"You are not the owner of this tool!\"\n\t\tstop\n\tif data tag \"custom:damage\" of player's tool > 10:\n\t\tbroadcast \"Your tool is heavily damaged!\"\n\telse:\n\t\tbroadcast \"Your tool is in good condition.\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "pdc",
        "persistent data container",
        "custom data",
        "nbt"
      ]
    },
    {
      "id": "CondIsRiding",
      "name": "Is Riding",
      "since": [
        "2.0, 2.11 (entities)"
      ],
      "deprecated": false,
      "description": [
        "Tests whether an entity is riding any entity, a specific entity type, or a specific entity."
      ],
      "patterns": [
        "%entities% (is|are) riding [%entity types/entities%]",
        "%entities% (isn't|is not|aren't|are not) riding [%entity types/entities%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player is riding:",
        "if player is riding an entity:",
        "if player is riding a saddled pig:",
        "if player is riding last spawned horse:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondHasPotion",
      "name": "Has Potion Effect",
      "since": [
        "2.6.1",
        "2.14 (support for potion effects)"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity has a potion effect with certain properties.",
        "An entity is considered having a potion effect if it has a potion effect with at least the specified properties.",
        "For example, if an entity has an 'ambient speed 5' effect, they would be considered as having 'speed 5'.",
        "For exact comparisons, consider using the <a href='./expressions.html#ExprPotionEffect'>Potion Effect of Entity/Item</a> expression in an 'is' comparison."
      ],
      "patterns": [
        "%living entities% (has|have) ([any|a[n]] [active] potion effect[s]|[any|a] potion effect[s] active)",
        "%living entities% (doesn't|does not|do not|don't) have ([any|a[n]] [active] potion effect[s]|[any|a] potion effect[s] active)",
        "%living entities% (has|have) %skriptpotioneffects% [active]",
        "%living entities% (doesn't|does not|do not|don't) have %skriptpotioneffects% [active]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the player has a potion effect of speed:\n\tmessage \"You are sonic!\"\n",
        "if all players have speed and haste active:\n\tbroadcast \"This server is ready to mine!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsWearing",
      "name": "Is Wearing",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an entity is wearing some items (usually armor)."
      ],
      "patterns": [
        "%living entities% (is|are) wearing %item types%",
        "%living entities% (isn't|is not|aren't|are not) wearing %item types%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player is wearing an iron chestplate and iron leggings",
        "target is wearing wolf armor"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsTagged",
      "name": "Is Tagged",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item, block, entity, or entitydata is tagged with the given tag."
      ],
      "patterns": [
        "%item types/entities/entity types% (is|are) tagged (as|with) %minecraft tags%",
        "%item types/entities/entity types% (isn't|is not|aren't|are not) tagged (as|with) %minecraft tags%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player's tool is tagged with minecraft tag \"enchantable/sharp_weapon\":\n\tenchant player's tool with sharpness 1\n",
        "if all logs are tagged with tag \"minecraft:logs\""
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "blocks",
        "minecraft tag",
        "type",
        "category"
      ]
    },
    {
      "id": "CondIsOfType",
      "name": "Is of Type",
      "since": [
        "1.4"
      ],
      "deprecated": false,
      "description": [
        "Checks whether an item or an entity is of the given type. This is mostly useful for variables, as you can use the general 'is' condition otherwise (e.g. 'victim is a creeper')."
      ],
      "patterns": [
        "%item stacks/entities% (is|are) of type[s] %item types/entity types%",
        "%item stacks/entities% (isn't|is not|aren't|are not) of type[s] %item types/entity types%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "tool is of type {selected type}",
        "victim is of type {villager type}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondIsPathfinding",
      "name": "Is Pathfinding",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Checks whether living entities are pathfinding.",
        "Can only be a living entity that is a Mob."
      ],
      "patterns": [
        "%living entities% (is|are) pathfinding [to[wards] %living entity/location%]",
        "%living entities% (isn't|is not|aren't|are not) pathfinding [to[wards] %living entity/location%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make {_entity} pathfind to {_location} at speed 2\nwhile {_entity} is pathfinding\n\twait a second\nlaunch flickering trailing burst firework colored red at location of {_entity}\nsubtract 10 from {defence::tower::health}\nclear entity within {_entity}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondWithinRadius",
      "name": "Is Within Radius",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Checks whether a location is within a certain radius of another location."
      ],
      "patterns": [
        "%locations% (is|are) within %number% (block|metre|meter)[s] (around|of) %locations%",
        "%locations% (isn't|is not|aren't|are not) within %number% (block|metre|meter)[s] (around|of) %locations%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\tif attacker's location is within 10 blocks around {_spawn}:\n\t\tcancel event\n\t\tsend \"You can't PVP in spawn.\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "CondCompare",
      "name": "Comparison",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "A very general condition, it simply compares two values. Usually you can only compare for equality (e.g. block is/isn't of &lt;type&gt;), but some values can also be compared using greater than/less than. In that case you can also test for whether an object is between two others.",
        "Note: This is the only element where not all patterns are shown. It has actually another two sets of similar patters, but with <code>(was|were)</code> or <code>will be</code> instead of <code>(is|are)</code> respectively, which check different <a href='#ExprTimeState'>time states</a> of the first expression."
      ],
      "patterns": [
        "[(neither)] %objects% ((is|are)[(n't| not| neither)] ((greater|more|higher|bigger|larger) than|above)|>) %objects%",
        "[(neither)] %objects% ((is|are)[(n't| not| neither)] (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as)|>=) %objects%",
        "[(neither)] %objects% ((is|are)[(n't| not| neither)] ((less|smaller|lower) than|below)|<) %objects%",
        "[(neither)] %objects% ((is|are)[(n't| not| neither)] (less|smaller|lower|below) [than] or (equal to|the same as)|<=) %objects%",
        "[(neither)] %objects% ((is|are) (not|neither)|isn't|aren't|!=) [equal to] %objects%",
        "[(neither)] %objects% (is|are|=) [(equal to|the same as)] %objects%",
        "[(neither)] %objects% (is|are) between %objects% and %objects%",
        "[(neither)] %objects% (is not|are not|isn't|aren't) between %objects% and %objects%",
        "[(neither)] %objects% (was|were)[(n't| not| neither)] ((greater|more|higher|bigger|larger) than|above) %objects%",
        "[(neither)] %objects% (was|were)[(n't| not| neither)] (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as) %objects%",
        "[(neither)] %objects% (was|were)[(n't| not| neither)] ((less|smaller|lower) than|below) %objects%",
        "[(neither)] %objects% (was|were)[(n't| not| neither)] (less|smaller|lower|below) [than] or (equal to|the same as) %objects%",
        "[(neither)] %objects% ((was|were) (not|neither)|wasn't|weren't) [equal to] %objects%",
        "[(neither)] %objects% (was|were) [(equal to|the same as)] %objects%",
        "[(neither)] %objects% (was|were) between %objects% and %objects%",
        "[(neither)] %objects% (was not|were not|wasn't|weren't) between %objects% and %objects%",
        "[(neither)] %objects% (will be|(will (not|neither) be|won't be)) ((greater|more|higher|bigger|larger) than|above) %objects%",
        "[(neither)] %objects% (will be|(will (not|neither) be|won't be)) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as) %objects%",
        "[(neither)] %objects% (will be|(will (not|neither) be|won't be)) ((less|smaller|lower) than|below) %objects%",
        "[(neither)] %objects% (will be|(will (not|neither) be|won't be)) (less|smaller|lower|below) [than] or (equal to|the same as) %objects%",
        "[(neither)] %objects% ((will (not|neither) be|won't be)|(isn't|aren't|is not|are not) (turning|changing) [in]to) [equal to] %objects%",
        "[(neither)] %objects% (will be [(equal to|the same as)]|(is|are) (turning|changing) [in]to) %objects%",
        "[(neither)] %objects% will be between %objects% and %objects%",
        "[(neither)] %objects% (will not be|won't be) between %objects% and %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "the clicked block is a stone slab or a double stone slab",
        "time in the player's world is greater than 8:00",
        "the creature is not an enderman or an ender dragon"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    }
  ],
  "effects": [
    {
      "id": "EffElytraBoostConsume",
      "name": "Consume Boosting Firework",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Prevent the firework used in an 'elytra boost' event to be consumed."
      ],
      "patterns": [
        "(prevent|disallow) [the] (boosting|used) firework from being consumed",
        "allow [the] (boosting|used) firework to be consumed"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on elytra boost:\n\tif the used firework will be consumed:\n\t\tprevent the used firework from being consume\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffCancelDrops",
      "name": "Cancel Drops",
      "since": [
        "2.4, 2.12 (harvest event)"
      ],
      "deprecated": false,
      "description": [
        "Cancels drops of items in a death, block break, block drop, and block harvest events.",
        "The dropped experience can be cancelled in a death and block break events.",
        "Please note that using this in a death event doesn't keep items or experience of a dead player. If you want to do that, use the <a href='#EffKeepInventory'>Keep Inventory / Experience</a> effect."
      ],
      "patterns": [
        "(cancel|clear|delete) [the] drops [of (items|[e]xp[erience][s])]",
        "(cancel|clear|delete) [the] (item|[e]xp[erience]) drops"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on death of a zombie:\n\tif name of the entity is \"&cSpecial\":\n\t\tcancel drops of items\n",
        "on break of a coal ore:\n\tcancel the experience drops\n",
        "on player block harvest:\n\tcancel the item drops\n"
      ],
      "events": [
        {
          "id": "death",
          "name": "On Death"
        },
        {
          "id": "break_mine",
          "name": "On Break / Mine"
        },
        {
          "id": "block_drop",
          "name": "On Block Drop"
        },
        {
          "id": "harvest_block",
          "name": "On Harvest Block"
        }
      ],
      "requirements": [
        "1.12.2 or newer (cancelling item drops of blocks)"
      ],
      "keywords": null
    },
    {
      "id": "EffKeepInventory",
      "name": "Keep Inventory / Experience",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Keeps the inventory or/and experiences of the dead player in a death event."
      ],
      "patterns": [
        "keep [the] (inventory|items) [(and [e]xp[erience][s] [point[s]])]",
        "keep [the] [e]xp[erience][s] [point[s]] [(and (inventory|items))]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on death of a player:\n\tif the victim is an op:\n\t\tkeep the inventory and experiences\n"
      ],
      "events": [
        {
          "id": "death",
          "name": "On Death"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffMakeEggHatch",
      "name": "Make Egg Hatch",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Makes the egg hatch in a Player Egg Throw event."
      ],
      "patterns": [
        "make [the] egg [not] hatch"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player egg throw:\n\t# EGGS FOR DAYZ!\n\tmake the egg hatch\n"
      ],
      "events": [
        {
          "id": "egg_throw",
          "name": "On Egg Throw"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffDropLeash",
      "name": "Allow / Prevent Leash Drop",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Allows or prevents the leash from being dropped in an unleash event."
      ],
      "patterns": [
        "(force|allow) [the] (lead|leash) [item] to drop",
        "(block|disallow|prevent) [the] (lead|leash) [item] from dropping"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on unleash:\n\tif player is not set:\n\t\tprevent the leash from dropping\n\telse if player is op:\n\t\tallow the leash to drop\n"
      ],
      "events": [
        {
          "id": "leash_unleash",
          "name": "On Leash / Unleash"
        }
      ],
      "requirements": null,
      "keywords": [
        "lead"
      ]
    },
    {
      "id": "EffCancelCooldown",
      "name": "Cancel Command Cooldown",
      "since": [
        "2.2-dev34"
      ],
      "deprecated": false,
      "description": [
        "Only usable in commands. Makes it so the current command usage isn't counted towards the cooldown."
      ],
      "patterns": [
        "[un](cancel|ignore) [the] [current] [command] cooldown"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /nick <text>:\n\texecutable by: players\n\tcooldown: 10 seconds\n\ttrigger:\n\t\tif length of arg-1 is more than 16:\n\t\t\t# Makes it so that invalid arguments don't make you wait for the cooldown again\n\t\t\tcancel the cooldown\n\t\t\tsend \"Your nickname may be at most 16 characters.\"\n\t\t\tstop\n\t\tset the player's display name to arg-1\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffBrewingConsume",
      "name": "Consume Brewing Fuel",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Makes the brewing stand in a brewing fuel event consume its fuel.\nPreventing the fuel from being consumed will keep the fuel item and still add to the fuel level of the brewing stand.\n"
      ],
      "patterns": [
        "make [the] brewing stand consume [its|the] fuel",
        "prevent [the] brewing stand from consuming [its|the] fuel"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on brewing fuel consumption:\n\tprevent the brewing stand from consuming the fuel\n"
      ],
      "events": [
        {
          "id": "brewing_fuel",
          "name": "On Brewing Fuel"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffEnforceWhitelist",
      "name": "Enforce Whitelist",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Enforces or un-enforce a server's whitelist.",
        "All non-whitelisted players will be kicked upon enforcing the whitelist."
      ],
      "patterns": [
        "[un]enforce [the] [server] white[ ]list"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "enforce the whitelist",
        "unenforce the whitelist"
      ],
      "events": null,
      "requirements": [
        "MC 1.17+"
      ],
      "keywords": null
    },
    {
      "id": "EffCancelEvent",
      "name": "Cancel Event",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Cancels the event (e.g. prevent blocks from being placed, or damage being taken)."
      ],
      "patterns": [
        "cancel [the] event",
        "uncancel [the] event"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\tvictim is a player\n\tvictim has the permission \"skript.god\"\n\tcancel the event\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffStopServer",
      "name": "Stop Server",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Stops or restarts the server. If restart is used when the restart-script spigot.yml option isn't defined, the server will stop instead."
      ],
      "patterns": [
        "(stop|shut[ ]down) [the] server",
        "restart [the] server"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "stop the server",
        "restart server"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffFishingLure",
      "name": "Apply Fishing Lure",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Sets whether the lure enchantment should be applied, which reduces the wait time."
      ],
      "patterns": [
        "(reel|pull) in [the] hook[ed] entity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on fishing line cast:\n\tapply lure enchantment bonus\n"
      ],
      "events": [
        {
          "id": "fishing",
          "name": "On Fishing"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffFishingLure-2",
      "name": "Apply Fishing Lure",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Sets whether the lure enchantment should be applied, which reduces the wait time."
      ],
      "patterns": [
        "apply [the] lure enchantment bonus",
        "remove [the] lure enchantment bonus"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on fishing line cast:\n\tapply lure enchantment bonus\n"
      ],
      "events": [
        {
          "id": "fishing",
          "name": "On Fishing"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPlayerInfoVisibility",
      "name": "Player Info Visibility",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Sets whether all player related information is hidden in the server list.",
        "The Vanilla Minecraft client will display ??? (dark gray) instead of player counts and will not show the",
        "<a href='#ExprHoverList'>hover hist</a> when hiding player info.",
        "<a href='#ExprVersionString'>The version string</a> can override the ???.",
        "Also the <a href='#ExprOnlinePlayersCount'>Online Players Count</a> and",
        "<a href='#ExprMaxPlayers'>Max Players</a> expressions will return -1 when hiding player info."
      ],
      "patterns": [
        "hide [all] player [related] info[rmation] [(in|on|from) [the] server list]",
        "(show|reveal) [all] player [related] info[rmation] [(in|to|on|from) [the] server list]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "hide player info",
        "hide player related information in the server list",
        "reveal all player related info"
      ],
      "events": [
        {
          "id": "server_list_ping",
          "name": "On Server List Ping"
        }
      ],
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffKill",
      "name": "Kill",
      "since": [
        "1.0, 2.10 (ignoring totem of undying)"
      ],
      "deprecated": false,
      "description": [
        "Kills an entity."
      ],
      "patterns": [
        "kill %entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "kill the player",
        "kill all creepers in the player's world",
        "kill all endermen, witches and bats"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPandaRolling",
      "name": "Make Panda Roll",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make a panda start/stop rolling."
      ],
      "patterns": [
        "make %living entities% ((start rolling|roll)|stop rolling)",
        "force %living entities% to (start|stop) rolling"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned panda is not rolling:\n\tmake last spawned panda start rolling\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffBossBarFlags",
      "name": "Boss Bar Flags",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Makes a boss bar have or not have a flag.\nThe `play boss music` flag does not actually play any sound or do anything.\nHowever you can use a resource pack to play your own custom sound.\n"
      ],
      "patterns": [
        "make %boss bars% [(not|no longer)] darken the sky",
        "stop %boss bar% from darkening the sky",
        "make %boss bars% [(not|no longer)] create fog",
        "stop %boss bar% from creating fog",
        "make %boss bars% [(not|no longer)] play boss music",
        "stop %boss bar% from playing [the] boss music"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast \"The boss has entered a new phase! Watch out for the fog...\"\nmake {_bossbar} create fog\nwait 30 seconds\nbroadcast \"The fog has subsided... for now\"\nmake {_bossbar} no longer create fog\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPotionAmbient",
      "name": "Potion Effect - Ambient",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Modify whether a potion effect is ambient.",
        "That is, whether the potion effect produces more, translucent, particles."
      ],
      "patterns": [
        "make %skriptpotioneffects% [not] ambient"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make the player's potion effects ambient"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffDetonate",
      "name": "Detonate Entities",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Immediately detonates an entity. Accepted entities are fireworks, TNT minecarts, primed TNT, wind charges and creepers."
      ],
      "patterns": [
        "detonate %entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "detonate last launched firework"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffItemDespawn",
      "name": "Item Despawn",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Prevent a dropped item from naturally despawning through Minecraft's timer."
      ],
      "patterns": [
        "(prevent|disallow) %itementities% from (naturally despawning|despawning naturally)",
        "allow natural despawning of %itementities%",
        "allow %itementities% to (naturally despawn|despawn naturally)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "prevent all dropped items from naturally despawning",
        "allow all dropped items to naturally despawn"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffCommandBlockConditional",
      "name": "Conditional / Unconditional",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Sets whether the provided command blocks are conditional or not."
      ],
      "patterns": [
        "make command block[s] %blocks% [(un|not )]conditional"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make command block {_block} conditional",
        "make command block {_block} unconditional if {_block} is conditional"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffAllayCanDuplicate",
      "name": "Allay Duplicate",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Set whether an allay can or cannot duplicate itself.",
        "This is not the same as breeding allays."
      ],
      "patterns": [
        "allow %living entities% to (duplicate|clone)",
        "prevent %living entities% from (duplicating|cloning)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "allow all allays to duplicate",
        "prevent all allays from duplicating"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffWorldSave",
      "name": "Save World",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Save all worlds or a given world manually.",
        "Note: saving many worlds at once may possibly cause the server to freeze."
      ],
      "patterns": [
        "save [[the] world[s]] %worlds%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "save \"world_nether\"",
        "save all worlds"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffLidState",
      "name": "Open/Close Lid",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Open or close the lid of the block(s)."
      ],
      "patterns": [
        "(open|close) [the] lid[s] (of|for) %blocks%",
        "(open|close) %blocks%'[s] lid[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "open the lid of {_chest}",
        "close the lid of {_blocks::*}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPotionIcon",
      "name": "Potion Effect - Icon",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Modify whether a potion effect shows an icon."
      ],
      "patterns": [
        "(show|hide) [the] [potion] icon[s] [(of|for) %skriptpotioneffects%]",
        "(show|hide) %skriptpotioneffects%'[s] icon[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "hide the icon for the player's potion effects"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPotionParticles",
      "name": "Potion Effect - Particles",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Modify whether a potion effect shows particles."
      ],
      "patterns": [
        "(show|hide) [the] [potion] particles [(of|for) %skriptpotioneffects%]",
        "(show|hide) %skriptpotioneffects%'[s] particles"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "hide the particles for the player's potion effects"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffRespawn",
      "name": "Force Respawn",
      "since": [
        "2.2-dev21"
      ],
      "deprecated": false,
      "description": [
        "Forces player(s) to respawn if they are dead. If this is called without delay from death event, one tick is waited before respawn attempt."
      ],
      "patterns": [
        "force %players% to respawn"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on death of player:\n\tforce event-player to respawn\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffEquipCompShearable",
      "name": "Equippable Component - Shear Off",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether the item can be sheared off of entities.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "allow %equippable components% to be sheared off [of entities]",
        "(disallow|prevent) %equippable components% from being sheared off [of entities]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "allow {_item} to be sheared off",
        "set {_component} to the equippable component of {_item}\nif {_component} can be sheared off of entities:\n\tprevent {_component} from being sheared off of entities\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.6+"
      ],
      "keywords": null
    },
    {
      "id": "EffSprinting",
      "name": "Sprinting",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make a player start or stop sprinting.",
        "If the player is not moving when this effect is used, they will be put in sprint mode for a tick and then stopped (this causes the FOV to change). Using it a second time, without the player manually sprinting in between, causes the player to stay in sprint mode, with some quirks.",
        " - Particles may not be produced under the player's feet.",
        " - The player will not exit the sprinting state if they stop moving.",
        " - Restrictions like low hunger will not prevent the player from sprinting",
        " - The player pressing shift will stop them sprinting, and pressing sprint will re-assert normal sprinting behavior",
        "Using this effect two or more consecutive times on a stationary player produces undefined behavior and should not be relied on."
      ],
      "patterns": [
        "make %players% (start sprinting|sprint)",
        "force %players% to (start sprinting|sprint)",
        "make %players% (stop sprinting|not sprint)",
        "force %players% to (stop sprinting|not sprint)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make player start sprinting",
        "force player to start sprinting"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffStriderShivering",
      "name": "Strider Shivering",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Make a strider start/stop shivering."
      ],
      "patterns": [
        "make %living entities% start shivering",
        "force %living entities% to start shivering",
        "make %living entities% stop shivering",
        "force %living entities% to stop shivering"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned strider is shivering:\n\tmake last spawned strider stop shivering\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffEquipCompInteract",
      "name": "Equippable Component - Equip On Entities",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether an entity should equip the item when right clicking on the entity with the item.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "allow %equippable components% to be equipped on[to] entities",
        "make %equippable components% equippable on[to] entities",
        "let %equippable components% be equipped on[to] entities",
        "(block|prevent|disallow) %equippable components% from being equipped on[to] entities",
        "make %equippable components% not equippable on[to] entities"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "allow {_item} to be equipped onto entities"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.5+"
      ],
      "keywords": null
    },
    {
      "id": "EffGlowingText",
      "name": "Make Sign Glow",
      "since": [
        "2.8.0",
        "2.17 (sign side support)"
      ],
      "deprecated": false,
      "description": [
        "Makes a sign (either a block or item) have glowing text or normal text. If a sign side is not specified, the front side will be used by default.\n"
      ],
      "patterns": [
        "make [[the] (front|back) [side[s]] of] %blocks/item types% have glowing text",
        "make [[the] (front|back) [side[s]] of] %blocks/item types% have (normal|non[-| ]glowing) text"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make target block of player have glowing text"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffShear",
      "name": "Shear",
      "since": [
        "2.0 (cows, sheep & snowmen), 2.8.0 (all shearable entities)"
      ],
      "deprecated": false,
      "description": [
        "Shears or un-shears a shearable entity with drops by shearing and a 'sheared' sound. Using with 'force' will force this effect despite the entity's 'shear state'.",
        "\nPlease note that..:",
        "\n- Force-shearing or un-shearing on a sheared mushroom cow is not possible"
      ],
      "patterns": [
        "[force] shear %living entities%",
        "un[-]shear %living entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on rightclick on a sheep holding a sword:\n\tshear the clicked sheep\n\tchance of 10%\n\tforce shear the clicked sheep\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffEquipCompDamageable",
      "name": "Equippable Component - Lose Durability",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether the item should take damage when the wearer gets injured.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "(make|let) %equippable components% (lose durability|be damaged) (on [wearer['s]] injury|when [[the] wearer [is]] (hurt|injured|damaged))",
        "(allow|force) %equippable components% to (lose durability|be damaged) (on [wearer['s]] injury|when [[the] wearer [is]] (hurt|injured|damaged))",
        "make %equippable components% not (lose durability|be damaged) (on [wearer['s]] injury|when [[the] wearer [is]] (hurt|injured|damaged))",
        "(disallow|prevent) %equippable components% from (lose durability|being damaged) (on [wearer['s]] injury|when [[the] wearer [is]] (hurt|injured|damaged))"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make {_item} lose durability when hurt",
        "set {_component} to the equippable component of {_item}\nif {_component} will lose durability when injured:\n\tmake {_component} lose durability on injury\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null
    },
    {
      "id": "EffPotionInfinite",
      "name": "Potion Effect - Infinite",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Modify whether a potion effect is infinite.",
        "That is, whether the potion effect will ever expire."
      ],
      "patterns": [
        "make %skriptpotioneffects% [not] (infinite|permanent)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make the player's potion effects infinite"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPandaOnBack",
      "name": "Force Panda On Back",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make a panda get on/off its back."
      ],
      "patterns": [
        "make %living entities% get (on|off) (its|their) back[s]",
        "force %living entities% to get (on|off) (its|their) back[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned panda is on its back:\n\tmake last spawned panda get off its back\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffGoatHorns",
      "name": "Goat Horns",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make a goat have or not have a left, right, or both horns."
      ],
      "patterns": [
        "remove [the] (left horn[s]|right horn[s]|both horns) of %living entities%",
        "remove %living entities%'[s] (left horn[s]|right horn[s]|horns)",
        "(regrow|replace) [the] (left horn[s]|right horn[s]|both horns) of %living entities%",
        "(regrow|replace) %living entities%'[s] (left horn[s]|right horn[s]|horns)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "remove the left horn of last spawned goat",
        "regrow {_goat}'s horns",
        "remove both horns of all goats"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffFireResistant",
      "name": "Make Fire Resistant",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Makes items fire resistant."
      ],
      "patterns": [
        "make %item types% [not] (fire resistant|resistant to fire)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make player's tool fire resistant",
        "make {_items::*} not resistant to fire"
      ],
      "events": null,
      "requirements": [
        "Spigot 1.20.5+"
      ],
      "keywords": null
    },
    {
      "id": "EffSuggestionFilteringMode",
      "name": "Script Command Suggestion Filtering Mode",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "Controls how suggestions are filtered for script commands. With no filtering, suggestions are simply displayed as set. With 'starts with' filtering, only suggestions that start with the current input are displayed. With 'contains' filtering, only suggestions that contain the current input are displayed.\n"
      ],
      "patterns": [
        "(use no|disable) filtering (for|with) %objects%",
        "use starts with filtering (for|with) %objects%",
        "use contains filtering (for|with) %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /message <player> <text>:\n\tsuggestions:\n\t\tplayer argument is set # they are writing the text argument\n\t\tif the current input contains \"frick\":\n\t\t\tset the suggestions for the text argument to \"Keep your messages nice please!\"\n\t\t\tdisable filtering for the text argument's suggestions\n\ttrigger:\n\t\tsend \"<grey><italic>%player% -> You: %text argument%\" to player argument\n\t\tsend \"<grey><italic>You -> %player argument%: %text argument%\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffCustomName",
      "name": "Toggle Custom Name Visibility",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Toggles the custom name visibility of an entity."
      ],
      "patterns": [
        "(show|hide) [the] (custom|display)[ ]name of %entities%",
        "(show|hide) %entities%'[s] (custom|display)[ ]name"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "show the custom name of event-entity",
        "hide target's display name"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffExplodeCreeper",
      "name": "Explode Creeper",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Starts the explosion process of a creeper or instantly explodes it."
      ],
      "patterns": [
        "instantly explode [creeper[s]] %living entities%",
        "explode [creeper[s]] %living entities% instantly",
        "ignite creeper[s] %living entities%",
        "start (ignition|explosion) [process] of [creeper[s]] %living entities%",
        "stop (ignition|explosion) [process] of [creeper[s]] %living entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "start explosion of the last spawned creeper",
        "stop ignition of the last spawned creeper"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffEquipCompSwapEquipment",
      "name": "Equippable Component - Swap Equipment",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether the item can be swapped by right clicking with it in your hand.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "(allow|force) %equippable components% to swap equipment [on right click|when right clicked]",
        "(make|let) %equippable components% swap equipment [on right click|when right clicked]",
        "(block|prevent|disallow) %equippable components% from swapping equipment [on right click|when right clicked]",
        "make %equippable components% not swap equipment [on right click|when right clicked]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "allow {_item} to swap equipment",
        "set {_component} to the equippable component of {_item}\nprevent {_component} from swapping equipment on right click\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null
    },
    {
      "id": "EffLoadServerIcon",
      "name": "Load Server Icon",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Loads server icons from the given files. You can get the loaded icon using the",
        "<a href='#ExprLastLoadedServerIcon'>last loaded server icon</a> expression.",
        "Please note that the image must be 64x64 and the file path starts from the server folder."
      ],
      "patterns": [
        "load [the] server icon (from|of) [the] [image] [file] %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on load:\n\tclear {server-icons::*}\n\tloop 5 times:\n\t\tload server icon from file \"icons/%loop-number%.png\"\n\t\tadd the last loaded server icon to {server-icons::*}\n\non server list ping:\n\tset the icon to a random server icon out of {server-icons::*}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffTooltip",
      "name": "Item Tooltips",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Show or hide the tooltip of an item.",
        "If changing the 'entire' tooltip of an item, nothing will show up when a player hovers over it.",
        "If changing the 'additional' tooltip, only specific parts (which change per item) will be hidden."
      ],
      "patterns": [
        "(show|reveal|hide) %item types%'[s] [entire|additional] tool[ ]tip",
        "(show|reveal|hide) [the] [entire|additional] tool[ ]tip of %item types%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "hide the entire tooltip of player's tool",
        "hide {_item}'s additional tool tip"
      ],
      "events": null,
      "requirements": [
        "Spigot 1.20.5+"
      ],
      "keywords": null
    },
    {
      "id": "EffSilence",
      "name": "Silence Entity",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Controls whether or not an entity is silent."
      ],
      "patterns": [
        "silence %entities%",
        "unsilence %entities%",
        "make %entities% silent",
        "make %entities% not silent"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make target entity silent"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffFailExecution",
      "name": "Fail Command Execution",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "Causes a command to fail execution with an error message displayed to the executor."
      ],
      "patterns": [
        "fail [the] command execution with [the] error [message] %text component%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /withdraw <number>:\n\ttrigger:\n\t\tif the number argument is greater than the player's balance:\n\t\t\tfail the command execution with the error message \"Your balance is less than $%number argument%!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffInvisible",
      "name": "Make Invisible",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Makes a living entity visible/invisible. This is not a potion and therefore does not have features such as a time limit or particles.",
        "When setting an entity to invisible while using an invisibility potion on it, the potion will be overridden and when it runs out the entity keeps its invisibility."
      ],
      "patterns": [
        "make %living entities% (invisible|not visible)",
        "make %living entities% (visible|not invisible)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make target entity invisible"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffIncendiary",
      "name": "Make Incendiary",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Sets if an entity's explosion will leave behind fire. This effect is also usable in an explosion prime event."
      ],
      "patterns": [
        "make %entities% [not] incendiary",
        "make %entities%'[s] explosion [not] (incendiary|fiery)",
        "make [the] [event(-| )]explosion [not] (incendiary|fiery)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on explosion prime:\n\tmake the explosion fiery\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffAllowAging",
      "name": "Allow Aging",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Sets whether or not living entities will be able to age."
      ],
      "patterns": [
        "lock age of %living entities%",
        "prevent aging of %living entities%",
        "prevent %living entities% from aging",
        "unlock age of %living entities%",
        "allow aging of %living entities%",
        "allow %living entities% to age"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn of animal:\n\tallow aging of entity\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffAllayDuplicate",
      "name": "Make Allay Duplicate",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make an allay duplicate itself.",
        "This effect will always make an allay duplicate regardless of whether the duplicate attribute is disabled."
      ],
      "patterns": [
        "make %living entities% (duplicate|clone)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make all allays duplicate"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffTame",
      "name": "Tame / Untame",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Tame a tameable entity (horse, parrot, cat, etc.)."
      ],
      "patterns": [
        "[un](tame|domesticate) %entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "tame {_horse}",
        "untame {_horse}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffForceEnchantmentGlint",
      "name": "Force Enchantment Glint",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Forces the items to glint or not, or removes its existing enchantment glint enforcement."
      ],
      "patterns": [
        "(force|make) %item types% [to] [start] glint[ing]",
        "(force|make) %item types% [to] (not|stop) glint[ing]",
        "(clear|delete|reset) [the] enchantment glint override of %item types%",
        "(clear|delete|reset) %item types%'[s] enchantment glint override"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "force {_items::*} to glint",
        "force the player's tool to stop glinting"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffTextDisplayDropShadow",
      "name": "Text Display Drop Shadow",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Applies or removes drop shadow from the displayed text on a text display."
      ],
      "patterns": [
        "(apply|add) (drop|text) shadow to [[the] text of] %displays%",
        "(apply|add) (drop|text) shadow to %displays%'[s] text",
        "(remove|clear) (drop|text) shadow from [[the] text of] %displays%",
        "(remove|clear) (drop|text) shadow from %displays%'[s] text"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "apply drop shadow to last spawned text display\nif {_display} has drop shadow:\n\tremove drop shadow from the text of {_display}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffCancelItemUse",
      "name": "Cancel Active Item",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Interrupts the action entities may be trying to complete.",
        "For example, interrupting eating, or drawing back a bow."
      ],
      "patterns": [
        "(cancel|interrupt) [the] us[ag]e of %living entities%'[s] [active|current] item"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage of player:\n\tif the victim's active tool is a bow:\n\t\tinterrupt the usage of the player's active item\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffBreedable",
      "name": "Make Breedable",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Sets whether or not entities will be able to breed. Only works on animals."
      ],
      "patterns": [
        "make %living entities% breedable",
        "unsterilize %living entities%",
        "make %living entities% (not |non(-| )|un)breedable",
        "sterilize %living entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn of animal:\n\tmake entity unbreedable\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffEating",
      "name": "Force Eating",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make a panda or horse type (horse, camel, donkey, llama, mule) start/stop eating."
      ],
      "patterns": [
        "make %living entities% (start|stop) eating",
        "force %living entities% to (start|stop) eating"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned panda is eating:\n\tmake last spawned panda stop eating\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffSwingHand",
      "name": "Swing Hand",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "Makes an entity swing their hand. This does nothing if the entity does not have an animation for swinging their hand."
      ],
      "patterns": [
        "make %living entities% swing [their] [main] hand",
        "make %living entities% swing [their] off[ ]hand"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make player swing their main hand"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.15.2+"
      ],
      "keywords": null
    },
    {
      "id": "EffPlayingDead",
      "name": "Play Dead",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make an axolotl start or stop playing dead."
      ],
      "patterns": [
        "make %living entities% (start playing|play) dead",
        "force %living entities% to (start playing|play) dead",
        "make %living entities% (stop playing|not play) dead",
        "force %living entities% to (stop playing|not play) dead"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make last spawned axolotl play dead"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffOp",
      "name": "op/deop",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Grant/revoke a user operator state."
      ],
      "patterns": [
        "[de[-]]op %offline players%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "op the player",
        "deop all players"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffScreaming",
      "name": "Make Entity Scream",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make a goat or enderman start or stop screaming."
      ],
      "patterns": [
        "make %living entities% (start screaming|scream)",
        "force %living entities% to (start screaming|scream)",
        "make %living entities% stop screaming",
        "force %living entities% to stop screaming"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "\tmake last spawned goat start screaming\n\tforce last spawned goat to stop screaming\n",
        "\tmake {_enderman} scream\n\tforce {_enderman} to stop screaming\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffClearEntityStorage",
      "name": "Clear Entity Storage",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Clear the stored entities of an entity block storage (i.e. beehive)."
      ],
      "patterns": [
        "(clear|empty) the (stored entities|entity storage) of %blocks%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "clear the stored entities of {_beehive}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffMakeAdultOrBaby",
      "name": "Make Adult/Baby",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Force a animal to become an adult or baby."
      ],
      "patterns": [
        "make %living entities% [a[n]] (adult|baby|child)",
        "force %living entities% to be[come] a[n] (adult|baby|child)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn of mob:\n\tentity is not an adult\n\tmake entity an adult\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffReturn",
      "name": "Return",
      "since": [
        "2.2, 2.8.0 (returns aliases)"
      ],
      "deprecated": false,
      "description": [
        "Makes a trigger or a section (e.g. a function) return a value"
      ],
      "patterns": [
        "return %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "function double(i: number) :: number:\n\treturn 2 * {_i}\n",
        "function divide(i: number) returns number:\n\treturn {_i} / 2\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffToggleCanPickUpItems",
      "name": "Toggle Picking Up Items",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Determines whether living entities are able to pick up items or not"
      ],
      "patterns": [
        "allow %living entities% to pick([ ]up items| items up)",
        "(forbid|disallow) %living entities% (from|to) pick([ing | ]up items|[ing] items up)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "forbid player from picking up items",
        "send \"You can no longer pick up items!\" to player",
        "on drop:\n\tif player can't pick up items:\n\t\tallow player to pick up items\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffToggle",
      "name": "Toggle",
      "since": [
        "1.4, 2.12 (booleans)"
      ],
      "deprecated": false,
      "description": [
        "Toggle the state of a block or boolean."
      ],
      "patterns": [
        "(open|turn on|activate) %blocks%",
        "(close|turn off|de[-]activate) %blocks%",
        "(toggle|switch) [[the] state of] %blocks/booleans (yes/no)%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# use arrows to toggle switches, doors, etc.\non projectile hit:\n\tprojectile is arrow\n\ttoggle the block at the arrow\n",
        "# With booleans\ntoggle gravity of player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffResetTitle",
      "name": "Title - Clear/Reset",
      "since": [
        "2.3, 2.15 (clearing the title)"
      ],
      "deprecated": false,
      "description": [
        "Clears or resets the title of an audience to the default values.",
        "While both actions remove the title being displayed, <code>reset</code> will also reset the title timings."
      ],
      "patterns": [
        "(clear|delete|reset) [the] title[s] [of %audiences%]",
        "(clear|delete|reset) [the] %audiences%'[s] title[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "reset the titles of all players",
        "clear the title"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffScriptFile",
      "name": "Enable/Disable/Unload/Reload Script",
      "since": [
        "2.4, 2.10 (unloading)"
      ],
      "deprecated": false,
      "description": [
        "Enables, disables, unloads, or reloads a script.\n\nDisabling a script unloads it and prepends - to its name so it will not be loaded the next time the server restarts.\nIf the script reflection experiment is enabled: unloading a script terminates it and removes it from memory, but does not alter the file."
      ],
      "patterns": [
        "((enable|load)|reload|disable|unload) script [file|named] %text% [with errors]",
        "((enable|load)|reload|disable|unload) skript file %text% [with errors]",
        "((enable|load)|reload|disable|unload) %scripts% [with errors]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "reload script \"test\"",
        "enable script file \"testing\"",
        "unload script file \"script.sk\"",
        "set {_script} to the script \"MyScript.sk\"\nreload {_script}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPandaSneezing",
      "name": "Make Panda Sneeze",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make a panda start/stop sneezing."
      ],
      "patterns": [
        "make %living entities% ((start sneezing|sneeze)|stop sneezing)",
        "force %living entities% to (start|stop) sneezing"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned panda is not sneezing:\n\tmake last spawned panda start sneezing\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffEntityUnload",
      "name": "Entity Despawn",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make a living entity despawn when the chunk they're located at is unloaded.",
        "Setting a custom name on a living entity automatically makes it not despawnable.",
        "More information on what and when entities despawn can be found at <a href=\"https://minecraft.wiki/w/Mob_spawning#Despawning\">reference</a>."
      ],
      "patterns": [
        "make %living entities% despawn[able] (on chunk unload|when far away)",
        "force %living entities% to despawn (on chunk unload|when far away)",
        "prevent %living entities% from despawning [on chunk unload|when far away]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make all entities not despawnable on chunk unload",
        "spawn zombie at location(0, 0, 0):\n\tforce event-entity to not despawn when far away\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPvP",
      "name": "PvP",
      "since": [
        "1.3.4"
      ],
      "deprecated": false,
      "description": [
        "Set the PvP state for a given world."
      ],
      "patterns": [
        "enable PvP [in %worlds%]",
        "disable PVP [in %worlds%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "enable PvP #(current world only)",
        "disable PvP in all worlds"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffInvulnerability",
      "name": "Make Invulnerable",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Makes an entity invulnerable/not invulnerable."
      ],
      "patterns": [
        "make %entities% (invulnerable|invincible)",
        "make %entities% (not (invulnerable|invincible)|vulnerable|vincible)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make target entity invulnerable"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffCharge",
      "name": "Charge Entity",
      "since": [
        "2.5, 2.10 (wither skulls)"
      ],
      "deprecated": false,
      "description": [
        "Charges or uncharges a creeper or wither skull. A creeper is charged when it has been struck by lightning."
      ],
      "patterns": [
        "make %entities% [(un|not |non[-| ])](charged|powered)",
        "[un](charge|power) %entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn of creeper:\n\tcharge the event-entity\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPersistent",
      "name": "Persistent",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make entities, players, or leaves be persistent.",
        "Persistence of entities is whether they are retained through server restarts.",
        "Persistence of leaves is whether they should decay when not connected to a log block within 6 meters.",
        "Persistence of players is if the player's playerdata should be saved when they leave the server. Players' persistence is reset back to 'true' when they join the server.",
        "Passengers inherit the persistence of their vehicle, meaning a persistent zombie put on a non-persistent chicken will become non-persistent. This does not apply to players.",
        "By default, all entities are persistent."
      ],
      "patterns": [
        "make %entities/blocks% [not] persist[ent]",
        "force %entities/blocks% to [not] persist",
        "prevent %entities/blocks% from persisting"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "prevent all entities from persisting",
        "force {_leaves} to persist",
        "command /kickcheater <cheater: player>:\n\tpermission: op\n\ttrigger:\n\t\tprevent {_cheater} from persisting\n\t\tkick {_cheater}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffMakeFly",
      "name": "Make Fly",
      "since": [
        "2.2-dev34"
      ],
      "deprecated": false,
      "description": [
        "Forces a player to start/stop flying."
      ],
      "patterns": [
        "force %players% to [(start|stop)] fly[ing]",
        "make %players% (start|stop) flying",
        "make %players% fly"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make player fly",
        "force all players to stop flying"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffTextDisplaySeeThroughBlocks",
      "name": "Text Display See Through Blocks",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Forces a text display to either be or not be visible through blocks."
      ],
      "patterns": [
        "make %displays% visible through (blocks|walls)",
        "force %displays% to be visible through (blocks|walls)",
        "(prevent|block) %displays% from being (visible|seen) through (blocks|walls)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "force last spawned text display to be visible through walls",
        "prevent all text displays from being visible through walls"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffToggleFlight",
      "name": "Toggle Flight",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Toggle the <a href='#ExprFlightMode'>flight mode</a> of a player."
      ],
      "patterns": [
        "(allow|enable) (fly|flight) (for|to) %players%",
        "(disallow|disable) (fly|flight) (for|to) %players%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "allow flight to event-player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffMakeResponsive",
      "name": "Make Interaction Responsive",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Makes an interaction either responsive or unresponsive. This determines whether clicking the entity will cause the clicker's arm to swing.\nInteractions default to unresponsive.\n"
      ],
      "patterns": [
        "make %entities% responsive",
        "make %entities% (not |un)responsive"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make last spawned interaction responsive"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffEquipCompDispensable",
      "name": "Equippable Component - Dispense",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Whether the item can be dispensed by a dispenser.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "allow %equippable components% to be dispensed",
        "make %equippable components% dispensable",
        "let %equippable components% be dispensed",
        "(block|prevent|disallow) %equippable components% from being dispensed",
        "make %equippable components% not dispensable"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "allow {_item} to be dispensed",
        "set {_component} to the equippable component of {_item}\nprevent {_component} from being dispensed\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null
    },
    {
      "id": "EffHandedness",
      "name": "Handedness",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Make mobs left or right-handed. This does not affect players."
      ],
      "patterns": [
        "make %living entities% (left|right)( |-)handed"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "spawn skeleton at spawn of world \"world\":\n\tmake entity left handed\n",
        "make all zombies in radius 10 of player right handed"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffHidePlayerFromServerList",
      "name": "Hide Player from Server List",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Hides a player from the <a href='#ExprHoverList'>hover list</a> and decreases the <a href='#ExprOnlinePlayersCount'>online players count</a> (only if the player count wasn't changed before)."
      ],
      "patterns": [
        "hide %players% (in|on|from) [the] server list",
        "hide %players%'[s] info[rmation] (in|on|from) [the] server list"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on server list ping:\n\thide {vanished::*} from the server list\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPoison",
      "name": "Poison/Cure",
      "since": [
        "1.3.2"
      ],
      "deprecated": false,
      "description": [
        "Poison or cure an entity. If the entity is already poisoned, the duration may be overwritten."
      ],
      "patterns": [
        "poison %living entities% [for %time span%]",
        "(cure|unpoison) %living entities% [(from|of) poison]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "poison the player",
        "poison the victim for 20 seconds",
        "cure the player from of poison"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffApplyBoneMeal",
      "name": "Apply Bone Meal",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Applies bone meal to a crop, sapling, or composter"
      ],
      "patterns": [
        "apply [%number%] bone[ ]meal[s] [to %blocks%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "apply 3 bone meal to event-block"
      ],
      "events": null,
      "requirements": [
        "MC 1.16.2+"
      ],
      "keywords": null
    },
    {
      "id": "EffRun",
      "name": "Run",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Executes a task (a function). Any returned result is discarded."
      ],
      "patterns": [
        "run %executable% [with arg[ument]s %objects%]",
        "execute %executable% [with arg[ument]s %objects%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_function} to the function named \"myFunction\"\nrun {_function}\nrun {_function} with arguments {_things::*}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "run",
        "execute",
        "reflection",
        "function"
      ]
    },
    {
      "id": "EffKick",
      "name": "Kick",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Kicks a player from the server."
      ],
      "patterns": [
        "kick %players% [(by reason of|because [of]|on account of|due to) %text component%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on place of TNT, lava, or obsidian:\n\tkick the player due to \"You may not place %block%!\"\n\tcancel the event\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffFeed",
      "name": "Feed",
      "since": [
        "2.2-dev34"
      ],
      "deprecated": false,
      "description": [
        "Feeds the specified players."
      ],
      "patterns": [
        "feed [the] %players% [by %number% [beef[s]]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "feed all players",
        "feed the player by 5 beefs"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffLeash",
      "name": "Leash entities",
      "since": [
        "2.3, 2.16 (all leashable entities)"
      ],
      "deprecated": false,
      "description": [
        "Leash entities to other entities, or unleash them.",
        "Most mobs, iron golems, snow golems, and boats can be leashed."
      ],
      "patterns": [
        "(leash|lead) %entities% to %entity%",
        "make %entity% (leash|lead) %entities%",
        "un(leash|lead) [holder of] %entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click:\n\tleash event-entity to player\n\tsend \"&aYou leashed &2%event-entity%!\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffCommand",
      "name": "Command",
      "since": [
        "1.0, 2.8.0 (BungeeCord command)"
      ],
      "deprecated": false,
      "description": [
        "Executes a command. This can be useful to use other plugin in triggers.\nIf the command is a BungeeCord side command, you can use the '[bungeecord]' keyword option to execute the command on the proxy.\n"
      ],
      "patterns": [
        "execute [the] [bungee[cord]] command[s] %texts% [by %command senders%]",
        "execute [the] %command senders% [bungee[cord]] command[s] %texts%",
        "(let|make) %command senders% execute [[the] [bungee[cord]] command[s]] %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make player execute command \"/home\"",
        "execute console command \"/say Hello everyone!\"",
        "execute player bungeecord command \"/alert &6Testing Announcement!\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffMessage",
      "name": "Message",
      "since": [
        "1.0",
        "2.2-dev26 (advanced features)",
        "2.6 (support for sending anything)"
      ],
      "deprecated": false,
      "description": [
        "Sends a message to an audience, such as a player or the console.",
        "Only styles written in given string or in <a href=#ExprColored>formatted expressions</a> will be parsed."
      ],
      "patterns": [
        "(message|send [message[s]]) %objects% [to %audiences%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message \"A wild %player% appeared!\"",
        "message \"This message is a distraction. Mwahaha!\"",
        "send \"Your kill streak is %{kill streak::%uuid of player%}%.\" to player",
        "if the targeted entity exists:\n\tmessage \"You're currently looking at a %type of the targeted entity%!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffEntityVisibility",
      "name": "Entity Visibility",
      "since": [
        "2.3, 2.10 (entities)"
      ],
      "deprecated": false,
      "description": [
        "Change visibility of the given entities for the given players.",
        "If no players are given, will hide the entities from all online players.",
        "",
        "When reveal is used in combination of the <a href='#ExprHiddenPlayers'>hidden players</a> expression and the viewers are not specified, this will default it to the given player in the hidden players expression.",
        "",
        "Note: all previously hidden entities (including players) will be visible when a player leaves and rejoins."
      ],
      "patterns": [
        "hide %entities% [(from|for) %players%]",
        "reveal %entities% [(to|for|from) %players%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn:\n\tif event-entity is a chicken:\n\t\thide event-entity\n",
        "reveal hidden players of players"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.19+ (entities)"
      ],
      "keywords": null
    },
    {
      "id": "EffGoatRam",
      "name": "Make Goat Ram",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make a goat ram an entity.",
        "Ramming does have a cooldown and currently no way to change it."
      ],
      "patterns": [
        "make %living entities% ram %living entity%",
        "force %living entities% to ram %living entity%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make all goats ram player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffBroadcast",
      "name": "Broadcast",
      "since": [
        "1.0",
        "2.6 (support for broadcasting anything)",
        "2.6.1 (using advanced formatting)"
      ],
      "deprecated": false,
      "description": [
        "Broadcasts a message to the server."
      ],
      "patterns": [
        "broadcast %objects% [(to|in) %worlds%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast \"Welcome %player% to the server!\"",
        "broadcast \"Woah! It's a message!\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffBlockUpdate",
      "name": "Update Block",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Updates the blocks by setting them to a selected block",
        "Using 'without physics' will not send updates to the surrounding blocks of the blocks being set.",
        "Example: Updating a block next to a sand block in the air 'without physics' will not cause the sand block to fall."
      ],
      "patterns": [
        "update %blocks% (as|to be) %block data% [without [neighbo[u]r[ing]|adjacent] [physics] update[s]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "update {_blocks::*} as gravel",
        "update {_blocks::*} to be sand without physics updates",
        "update {_blocks::*} as stone without neighbouring updates"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffReleaseEntityStorage",
      "name": "Release From Entity Storage",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Releases the stored entities in an entity block storage (i.e. beehive).",
        "When using beehives, providing a timespan will prevent the released bees from re-entering the beehive for that amount of time.",
        "Due to unstable behaviour on older versions, this effect requires Minecraft version 1.21+."
      ],
      "patterns": [
        "(release|evict) [the] (stored entities|entity storage) of %blocks% [for %time span%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "release the stored entities of {_beehive}",
        "release the entity storage of {_hive} for 5 seconds"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21"
      ],
      "keywords": null
    },
    {
      "id": "EffEndermanTeleport",
      "name": "Enderman Teleport",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make an enderman teleport randomly or towards an entity.",
        "Teleporting towards an entity teleports in the direction to the entity and not to them."
      ],
      "patterns": [
        "make %living entities% (randomly teleport|teleport randomly)",
        "force %living entities% to (randomly teleport|teleport randomly)",
        "make %living entities% teleport [randomly] towards %entity%",
        "force %living entities% to teleport [randomly] towards %entity%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make last spawned enderman teleport randomly",
        "loop 10 times:\n\tmake all endermen teleport towards player\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.20.1+"
      ],
      "keywords": null
    },
    {
      "id": "EffEquip",
      "name": "Equip",
      "since": [
        "1.0",
        "2.7 (multiple entities, unequip)"
      ],
      "deprecated": false,
      "description": [
        "Equips or unequips an entity with the given itemtypes (usually armor).",
        "This effect will replace any armor that the entity is already wearing."
      ],
      "patterns": [
        "equip [%living entities%] with %item types%",
        "make %living entities% wear %item types%",
        "unequip %item types% [from %living entities%]",
        "unequip %living entities%'[s] (armo[u]r|equipment)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "equip player with diamond helmet",
        "equip player with diamond leggings, diamond chestplate, and diamond boots",
        "unequip diamond chestplate from player",
        "unequip player's armor"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffLog",
      "name": "Log",
      "since": [
        "2.0, 2.9.0 (severities)"
      ],
      "deprecated": false,
      "description": [
        "Writes text into a .log file. Skript will write these files to /plugins/Skript/logs.",
        "NB: Using 'server.log' as the log file will write to the default server log. Omitting the log file altogether will log the message as '[Skript] [&lt;script&gt;.sk] &lt;message&gt;' in the server log."
      ],
      "patterns": [
        "log %texts% [(to|in) [file[s]] %texts%] [with [the|a] severity [of] (warning|severe)]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on join:\n\tlog \"%player% has just joined the server!\"\n",
        "on world change:\n\tlog \"Someone just went to %event-world%!\" to file \"worldlog/worlds.log\"\n",
        "on command:\n\tlog \"%player% just executed %full command%!\" to file \"server/commands.log\" with a severity of warning\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffActionBar",
      "name": "Action Bar",
      "since": [
        "2.3",
        "2.15 (support for sending anything)"
      ],
      "deprecated": false,
      "description": [
        "Sends an action bar message to an audience."
      ],
      "patterns": [
        "send [the] action[ ]bar [with text] %object% [to %audiences%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send action bar \"Hello player!\" to player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffRegisterTag",
      "name": "Register Tag",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Registers a new tag containing either items or entity datas. Note that items will NOT keep any information other than their type, so adding `diamond sword named \"test\"` to a tag is the same as adding `diamond sword`",
        "Item tags should be used for contexts where the item is not placed down, while block tags should be used for contexts where the item is placed. For example, and item tag could be \"skript:edible\", while a block tag would be \"skript:needs_water_above\".",
        "All custom tags will be given the namespace \"skript\", followed by the name you give it. The name must only include the characters A to Z, 0 to 9, and '/', '.', '_', and '-'. Otherwise, the tag will not register.",
        "",
        "Please note that two tags can share a name if they are of different types. Registering a new tag of the same name and type will overwrite the existing tag. Tags will reset on server shutdown."
      ],
      "patterns": [
        "register [a[n]] [custom] (item|block|entity [type]) tag named %text% (containing|using) %entity types/item types%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "register a new custom entity tag named \"fish\" using cod, salmon, tropical fish, and pufferfish",
        "register an item tag named \"skript:wasp_weapons/swords\" containing diamond sword and netherite sword",
        "register block tag named \"pokey\" containing sweet berry bush and bamboo sapling",
        "on player move:\n\tblock at player is tagged as tag \"skript:pokey\"\n\tdamage the player by 1 heart\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "blocks",
        "minecraft tag",
        "type",
        "category"
      ]
    },
    {
      "id": "EffInsertEntityStorage",
      "name": "Insert Entity Storage",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Add an entity into the entity storage of a block (e.g. beehive).",
        "The entity must be of the right type for the block (e.g. bee for beehive).",
        "Due to unstable behavior on older versions, adding entities to an entity storage requires Minecraft version 1.21+."
      ],
      "patterns": [
        "(add|insert) %living entities% [in[ ]]to [the] (stored entities|entity storage) of %block%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "add last spawned bee into the entity storage of {_beehive}"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21+"
      ],
      "keywords": null
    },
    {
      "id": "EffMakeSay",
      "name": "Make Say",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Forces a player to send a message to the chat. If the message starts with a slash it will force the player to use command."
      ],
      "patterns": [
        "make %players% (say|send [the] message[s]) %texts%",
        "force %players% to (say|send [the] message[s]) %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make the player say \"Hello.\"",
        "force all players to send the message \"I love this server\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffOpenInventory",
      "name": "Open/Close Inventory",
      "since": [
        "2.0, 2.1.1 (closing), 2.2-Fixes-V10 (anvil), 2.4 (hopper, dropper, dispenser)"
      ],
      "deprecated": false,
      "description": [
        "Opens an inventory to a player. The player can then access and modify the inventory as if it was a chest that they just opened.",
        "Please note that currently 'show' and 'open' have the same effect, but 'show' will eventually show an unmodifiable view of the inventory in the future."
      ],
      "patterns": [
        "close %players%'[s] inventory [view]",
        "close [the] inventory [view] (to|of|for) %players%",
        "open %inventory/inventory type% (to|for) %players%",
        "open [a] (crafting table|workbench) (to|for) %players%",
        "open [a] chest (to|for) %players%",
        "open [a[n]] anvil (to|for) %players%",
        "open [a] hopper (to|for) %players%",
        "open [a] dropper (to|for) %players%",
        "open [a] dispenser (to|for) %players%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "show the victim's inventory to the player",
        "open the player's inventory for the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffWorldLoad",
      "name": "Load World",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Load your worlds or unload your worlds",
        "The load effect will create a new world if world doesn't already exist.",
        "When attempting to load a normal vanilla world you must define it's environment i.e \"world_nether\" must be loaded with nether environment"
      ],
      "patterns": [
        "load [the] world[s] %texts% [with environment %environment%]",
        "unload [[the] world[s]] %worlds% [without saving]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "load world \"world_nether\" with environment nether",
        "load the world \"myCustomWorld\"",
        "unload \"world_nether\"",
        "unload \"world_the_end\" without saving",
        "unload all worlds"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffVehicle",
      "name": "Vehicle",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "Makes an entity ride another entity, e.g. a minecart, a saddled pig, an arrow, etc."
      ],
      "patterns": [
        "(make|let|force) %entities% [to] (ride|mount) [(in|on)] %entity/entity type%",
        "(make|let|force) %entities% [to] (dismount|(dismount|leave) [(from|of)] [(any|the[ir]|his|her)] vehicle[s])",
        "(eject|dismount) [(any|the)] passenger[s] (of|from) %entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make the player ride a saddled pig",
        "make the attacker ride the victim"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffIgnite",
      "name": "Ignite/Extinguish",
      "since": [
        "1.4"
      ],
      "deprecated": false,
      "description": [
        "Lights entities on fire or extinguishes them."
      ],
      "patterns": [
        "(ignite|set fire to) %entities% [for %time span%]",
        "(set|light) %entities% on fire [for %time span%]",
        "extinguish %entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "ignite the player",
        "extinguish the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffBreakNaturally",
      "name": "Break Block",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Breaks the block and spawns items as if a player had mined it",
        "\nYou can add a tool, which will spawn items based on how that tool would break the block ",
        "(ie: When using a hand to break stone, it drops nothing, whereas with a pickaxe it drops cobblestone)"
      ],
      "patterns": [
        "break %blocks% [naturally] [using %item type%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click:\n\tbreak clicked block naturally\n",
        "loop blocks in radius 10 around player:\n\tbreak loop-block using player's tool\n",
        "loop blocks in radius 10 around player:\n\tbreak loop-block naturally using diamond pickaxe\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffOpenBook",
      "name": "Open Book",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "Opens a written book to a player."
      ],
      "patterns": [
        "(open|show) book %item type% (to|for) %players%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "open book player's tool to player"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.14.2+"
      ],
      "keywords": null
    },
    {
      "id": "EffZombify",
      "name": "Zombify Villager",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Turn a villager into a zombie villager. Cure a zombie villager immediately or after specified amount of time.",
        "This effect removes the old entity and creates a new entity.",
        "Zombifying a villager stored in a variable will update the variable to the new zombie villager.",
        "Curing a zombie villager does not update the variable."
      ],
      "patterns": [
        "zombify %living entities%",
        "unzombify %living entities% [(in|after) %time span%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "zombify last spawned villager",
        "set {_villager} to last spawned villager\nzombify {_villager}\nif {_villager} is a zombie villager:\n\t# This will pass because '{_villager}' gets changed to the new zombie villager\n",
        "set {_villager} to last spawned villager\nzombify last spawned villager\nif {_villager} is a zombie villager:\n\t# This will fail because the variable was not provided when zombifying\n",
        "unzombify {_zombieVillager}",
        "unzombify {_zombieVillager} after 2 seconds"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffEnchant",
      "name": "Enchant/Disenchant",
      "since": [
        "2.0, 2.13 (at level)"
      ],
      "deprecated": false,
      "description": [
        "Enchant or disenchant an existing item. Enchanting at a specific level will act as if an enchanting table was used, and will apply the enchantments randomly chosen at that level. Treasure enchantments, like mending, can optionally be allowed. Note that enchanting a book at a specific level will turn it into an enchanted book, rather than a book with enchantments."
      ],
      "patterns": [
        "enchant %~item types% with %enchantment types%",
        "[naturally|randomly] enchant %~item types% at level %number%[[,] allowing treasure enchant[ment]s]",
        "disenchant %~item types%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "enchant the player's tool with sharpness 5",
        "enchant the player's tool at level 30",
        "disenchant the player's tool"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffCopy",
      "name": "Copy Into Variable",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Copies objects into a variable. When copying a list over to another list, the source list and its sublists are also copied over.",
        "<strong>Note: Copying a value into a variable/list will overwrite the existing data.</strong>"
      ],
      "patterns": [
        "copy %~objects% [in]to %~objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_foo::bar} to 1\nset {_foo::sublist::foobar} to \"hey\"\ncopy {_foo::*} to {_copy::*}\nbroadcast indices of {_copy::*} # bar, sublist\nbroadcast {_copy::bar} # 1\nbroadcast {_copy::sublist::foobar} # \"hey!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "clone",
        "variable",
        "list"
      ]
    },
    {
      "id": "EffWorldBorderExpand",
      "name": "Expand/Shrink World Border",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Expand or shrink the size of a world border.",
        "Using `by` adds/subtracts from the current size of the world border.",
        "Using `to` sets to the specified size."
      ],
      "patterns": [
        "(expand|grow) [[the] (diameter|radius) of] %worldborders% (by|to) %number% [over [a period of] %time span%]",
        "(expand|grow) %worldborders%['s (diameter|radius)] (by|to) %number% [over [a period of] %time span%]",
        "(contract|shrink) [[the] (diameter|radius) of] %worldborders% (by|to) %number% [over [a period of] %time span%]",
        "(contract|shrink) %worldborders%['s (diameter|radius)] (by|to) %number% [over [a period of] %time span%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "expand world border of player by 100 over 5 seconds",
        "shrink world border of world \"world\" to 100 over 10 seconds"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffForceAttack",
      "name": "Force Attack",
      "since": [
        "2.5.1, 2.13 (multiple, amount)"
      ],
      "deprecated": false,
      "description": [
        "Makes a living entity attack an entity with a melee attack.",
        "Using 'attack' will make the attacker use the item in their main hand and will apply extra data from the item, including enchantments and attributes.",
        "Using 'damage' with a number of hearts will not account for the item in the main hand and will always be the number provided."
      ],
      "patterns": [
        "make %living entities% attack %entities%",
        "force %living entities% to attack %entities%",
        "make %living entities% damage %entities% by %number% [heart[s]]",
        "force %living entities% to damage %entities% by %number% [heart[s]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "spawn a wolf at location(0, 0, 0)\nmake last spawned wolf attack all players\n",
        "spawn a zombie at location(0, 0, 0)\nmake player damage last spawned zombie by 2\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.15.2+"
      ],
      "keywords": null
    },
    {
      "id": "EffHealth",
      "name": "Damage/Heal/Repair",
      "since": [
        "1.0, 2.10 (damage cause)"
      ],
      "deprecated": false,
      "description": [
        "Damage, heal, or repair an entity or item.",
        "Servers running Spigot 1.20.4+ can optionally choose to specify a fake damage cause."
      ],
      "patterns": [
        "damage %living entities/item types/slots% by %number% [heart[s]]",
        "damage %living entities% by %number% [heart[s]] with [fake] [damage] cause %damage cause%",
        "damage %living entities% by %number% [heart[s]] (using|with) %damage source% [as the source]",
        "heal %living entities% [by %number% [heart[s]]]",
        "repair %item types/slots% [by %number%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "damage player by 5 hearts",
        "damage player by 3 hearts with fake cause fall",
        "heal the player",
        "repair tool of player"
      ],
      "events": null,
      "requirements": [
        "Spigot 1.20.4+ (for damage cause)"
      ],
      "keywords": null
    },
    {
      "id": "EffRing",
      "name": "Ring Bell",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Causes a bell to ring.",
        "Optionally, the entity that rang the bell and the direction the bell should ring can be specified.",
        "A bell can only ring in two directions, and the direction is determined by which way the bell is facing.",
        "By default, the bell will ring in the direction it is facing."
      ],
      "patterns": [
        "ring %blocks% [from [the]] [%direction%]",
        "(make|let) %entity% ring %blocks% [from [the]] [%direction%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make player ring target-block"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffReplace",
      "name": "Replace",
      "since": [
        "2.0, 2.2-dev24 (multiple strings, items in inventory), 2.5 (replace first, case sensitivity), 2.10 (regex)"
      ],
      "deprecated": false,
      "description": [
        "Replaces all occurrences of a given text or regex with another text. Please note that you can only change variables and a few expressions, e.g. a <a href='/#ExprMessage'>message</a> or a line of a sign."
      ],
      "patterns": [
        "replace [(all|every)|[the] first] %texts% in %texts% with %text% [with case sensitivity]",
        "replace [(all|every)|[the] first] %texts% with %text% in %texts% [with case sensitivity]",
        "(replace [with|using] regex|regex replace) %texts% in %texts% with %text%",
        "(replace [with|using] regex|regex replace) %texts% with %text% in %texts%",
        "replace [all|every] %item types% in %inventories% with %item type%",
        "replace [all|every] %item types% with %item type% in %inventories%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "replace \"<item>\" in {_msg} with \"[%name of player's tool%]\"",
        "replace every \"&\" with \"§\" in line 1 of targeted block",
        "# Very simple chat censor\non chat:\n\treplace all \"idiot\" and \"noob\" with \"****\" in the message\n\tregex replace \"\\b(idiot|noob)\\b\" with \"****\" in the message # Regex version using word boundaries for better results\n",
        "replace all stone and dirt in player's inventory and player's top inventory with diamond"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffFireworkLaunch",
      "name": "Launch firework",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Launch firework effects at the given location(s)."
      ],
      "patterns": [
        "(launch|deploy) [[a] firework [with effect[s]]] %firework effects% at %locations% [([with] (duration|power)|timed) %number%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "launch ball large colored red, purple and white fading to light green and black at player's location with duration 1"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPush",
      "name": "Push",
      "since": [
        "1.4.6",
        "2.12 (push towards)"
      ],
      "deprecated": false,
      "description": [
        "Push entities in a given direction or towards a specific location."
      ],
      "patterns": [
        "(push|thrust|pull) %entities% [along] %direction% [(at|with) [a] (speed|velocity|force) [of] %number%]",
        "(push|thrust|pull) %entities% (towards|away from) %location% [(at|with) [a] (speed|velocity|force) [of] %number%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "push the player upwards",
        "push the victim downwards at speed 0.5",
        "push player towards player's target at speed 2",
        "pull player along vector(1,1,1) at speed 1.5"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffStopSound",
      "name": "Stop Sound",
      "since": [
        "2.4, 2.7 (stop all sounds)"
      ],
      "deprecated": false,
      "description": [
        "Stops specific or all sounds from playing to a group of players. Both Minecraft sound names and <a href=\"https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html\">Spigot sound names</a> are supported. Resource pack sounds are supported too. The sound category is 'master' by default. A sound can't be stopped from a different category. ",
        "",
        "Please note that sound names can get changed in any Minecraft or Spigot version, or even removed from Minecraft itself."
      ],
      "patterns": [
        "stop (all sound[s]|sound[s] %texts%) [(in [the]|from) %sound category%] [(from playing to|for) %players%]",
        "stop playing sound[s] %texts% [(in [the]|from) %sound category%] [(to|for) %players%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "stop sound \"block.chest.open\" for the player",
        "stop playing sounds \"ambient.underwater.loop\" and \"ambient.underwater.loop.additions\" to the player",
        "stop all sounds for all players",
        "stop sound in the record category"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffGenerateLoot",
      "name": "Generate Loot",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Generates the loot in the specified inventories from a loot table using a loot context. Not specifying a loot context will use a loot context with a location at the world's origin.",
        "Note that if the inventory is full, it will cause warnings in the console due to over-filling the inventory."
      ],
      "patterns": [
        "generate [the] loot (of|using) %loot table% [(with|using) %loot context%] in %inventories%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "generate loot of loot table \"minecraft:chests/simple_dungeon\" using loot context at player in {_inventory}",
        "generate loot using \"minecraft:chests/shipwreck_supply\" in {_inventory}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffSendBlockChange",
      "name": "Send Block Change",
      "since": [
        "2.2-dev37c, 2.5.1 (block data support), 2.12 (as original)"
      ],
      "deprecated": false,
      "description": [
        "Makes a player see a block as something else or as the original."
      ],
      "patterns": [
        "make %players% see %locations% as %item type/block data%",
        "make %players% see %locations% as [the|its|their] (original|normal|actual) [block[s]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make player see block at player as dirt",
        "make player see player's target block as campfire[facing=south]",
        "make all players see (blocks in radius 5 of location(0, 0, 0)) as bedrock\nmake all players see (blocks in radius 5 of location(0, 0, 0)) as original\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPathfind",
      "name": "Pathfind",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Make an entity pathfind towards a location or another entity. Not all entities can pathfind. If the pathfinding target is another entity, the entities may or may not continuously follow the target."
      ],
      "patterns": [
        "make %living entities% (pathfind|move) to[wards] %living entity/location% [at speed %number%]",
        "make %living entities% stop (pathfinding|moving)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make all creepers pathfind towards player",
        "make all cows stop pathfinding",
        "make event-entity pathfind towards player at speed 1"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffSendResourcePack",
      "name": "Send Resource Pack",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Request that the player's client download and switch resource packs. The client will download ",
        "the resource pack in the background, and will automatically switch to it once the download is complete. ",
        "The URL must be a direct download link.",
        "",
        "The hash is used for caching, the player won't have to re-download the resource pack that way. ",
        "The hash must be SHA-1, you can get SHA-1 hash of your resource pack using ",
        "<a href=\"https://emn178.github.io/online-tools/sha1_checksum.html\">this online tool</a>.",
        "",
        "The <a href='#resource_pack_request_action'>resource pack request action</a> can be used to check ",
        "status of the sent resource pack request."
      ],
      "patterns": [
        "send [the] resource pack [from [[the] URL]] %text% to %players%",
        "send [the] resource pack [from [[the] URL]] %text% with hash %text% to %players%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on join:\n\tsend the resource pack from \"URL\" with hash \"hash\" to the player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffApplyPotionEffect",
      "name": "Apply Potion Effect",
      "since": [
        "2.0",
        "2.14 (syntax rework)"
      ],
      "deprecated": false,
      "description": [
        "Applies a potion effect to an entity."
      ],
      "patterns": [
        "(apply|grant) %skriptpotioneffects% to %living entities% [for %time span%]",
        "(affect|afflict) %living entities% with %skriptpotioneffects% [for %time span%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "apply swiftness 2 to the player",
        "command /strengthboost:\n\ttrigger:\n\t\tapply strength 10 to the player for 5 minutes\n",
        "apply the potion effects of the player's tool to the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffConnect",
      "name": "Connect",
      "since": [
        "2.3, 2.10 (transfer)"
      ],
      "deprecated": false,
      "description": [
        "Connect a player to a server running on your proxy, or any server supporting transfers. Read below for more information.",
        "If the server is running Minecraft 1.20.5 or above, you may specify an IP and Port to transfer a player over to that server.",
        "When transferring players using an IP, the transfer will not complete if the `accepts-transfers` option isn't enabled in `server.properties` for the server specified.",
        "If the port is not provided, it will default to `25565`."
      ],
      "patterns": [
        "connect %players% to [proxy|bungeecord] [server] %text%",
        "send %players% to [proxy|bungeecord] server %text%",
        "transfer %players% to server %text% [on port %number%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "connect all players to proxy server \"hub\"",
        "transfer player to server \"my.server.com\"",
        "transfer player to server \"localhost\" on port 25566"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffBan",
      "name": "Ban",
      "since": [
        "1.4, 2.1.1 (ban reason), 2.5 (timespan), 2.9.0 (kick)"
      ],
      "deprecated": false,
      "description": [
        "Bans or unbans a player or an IP address.",
        "If a reason is given, it will be shown to the player when they try to join the server while banned.",
        "A length of ban may also be given to apply a temporary ban. If it is absent for any reason, a permanent ban will be used instead.",
        "We recommend that you test your scripts so that no accidental permanent bans are applied.",
        "",
        "Note that banning people does not kick them from the server.",
        "You can optionally use 'and kick' or consider using the <a href='#EffKick'>kick effect</a> after applying a ban."
      ],
      "patterns": [
        "ban [and kick] %texts/offline players% [(by reason of|because [of]|on account of|due to) %text component%] [for %time span%]",
        "unban %texts/offline players%",
        "ban [and kick] %players% by IP [(by reason of|because [of]|on account of|due to) %text component%] [for %time span%]",
        "unban %players% by IP",
        "IP(-| )ban [and kick] %players% [(by reason of|because [of]|on account of|due to) %text component%] [for %time span%]",
        "(IP(-| )unban|un[-]IP[-]ban) %players%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "unban player",
        "ban \"127.0.0.1\"",
        "IP-ban the player because \"he is an idiot\"",
        "ban player due to \"inappropriate language\" for 2 days",
        "ban and kick player due to \"inappropriate language\" for 2 days"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffLook",
      "name": "Look At",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Forces the mob(s) or player(s) to look at an entity, vector or location. Vanilla max head pitches range from 10 to 50."
      ],
      "patterns": [
        "(force|make) %living entities% [to] (face [towards]|look [(at|towards)]) %entity%'s (feet|eyes) [(at|with) [head] [rotation] speed %number%] [[and] max[imum] [head] pitch %number%]",
        "(force|make) %living entities% [to] (face [towards]|look [(at|towards)]) [the] (feet|eyes) of %entity% [(at|with) [head] [rotation] speed %number%] [[and] max[imum] [head] pitch %number%]",
        "(force|make) %living entities% [to] (face [towards]|look [(at|towards)]) %vector/location/entity% [(at|with) [head] [rotation] speed %number%] [[and] max[imum] [head] pitch %number%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "force the player to look towards event-entity's feet",
        "on entity explosion:\n\tset {_player} to the nearest player\n\t{_player} is set\n\tdistance between {_player} and the event-location is less than 15\n\tmake {_player} look towards vector from the {_player} to location of the event-entity\n",
        "force {_enderman} to face the block 3 meters above {_location} at head rotation speed 100.5 and max head pitch -40"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffRotate",
      "name": "Rotate",
      "since": [
        "2.2-dev28, 2.10 (quaternions, displays)"
      ],
      "deprecated": false,
      "description": [
        "Rotates displays, quaternions, or vectors around an axis a set amount of degrees, or around all 3 axes at once.",
        "Vectors can only be rotated around the global X/Y/Z axes, or an arbitrary vector axis.",
        "Quaternions are more flexible, allowing rotation around the global or local X/Y/Z axes, arbitrary vectors, or all 3 local axes at once.",
        "Global axes are the ones in the Minecraft world. Local axes are relative to how the quaternion is already oriented.",
        "",
        "Rotating a display is a shortcut for rotating its left rotation. If the right rotation needs to be modified, it should be acquired, rotated, and re-set.",
        "",
        "Note that rotating a quaternion/display around a vector results in a rotation around the local vector, so results may not be what you expect. For example, rotating quaternions/displays around vector(1, 0, 0) is the same as rotating around the local X axis.",
        "The same applies to rotations by all three axes at once. In addition, rotating around all three axes of a quaternion/display at once will rotate in ZYX order, meaning the Z rotation will be applied first and the X rotation last."
      ],
      "patterns": [
        "rotate %vectors/quaternions/displays% around [the] [global] (x|y|z)(-| )axis by %number%",
        "rotate %quaternions/displays% around [the|its|their] local (x|y|z)(-| )ax(i|e)s by %number%",
        "rotate %vectors/quaternions/displays% around [the] %vector% by %number%",
        "rotate %quaternions/displays% by x %number%, y %number%(, [and]| and) z %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "rotate {_quaternion} around x axis by 10 degrees",
        "rotate last spawned block display around y axis by 10 degrees",
        "rotate {_vector} around vector(1, 1, 1) by 45",
        "rotate {_quaternion} by x 45, y 90, z 135"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffSendTitle",
      "name": "Title - Send",
      "since": [
        "2.3",
        "2.15 (support for showing anything)"
      ],
      "deprecated": false,
      "description": [
        "Sends a title and/or subtitle to an audience with an optional fade in, stay, and/or fade out time.",
        "If sending only the subtitle, it will only be shown if the audience currently has a title displayed. Otherwise, it will be shown when the audience is next shown a title.",
        "Additionally, if no input is given for the times, the previous times of the last sent title will be used (or default values). Use the <a href='#EffResetTitle'>reset title</a> effect to restore the default values for the times."
      ],
      "patterns": [
        "send title %object% [with subtitle %object%] [to %audiences%] [for %time span%] [with fade[(-| )]in %time span%] [[and] [with] fade[(-| )]out %time span%]",
        "send subtitle %object% [to %audiences%] [for %time span%] [with fade[(-| )]in %time span%] [[and] [with] fade[(-| )]out %time span%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send title \"Competition Started\" with subtitle \"Have fun, Stay safe!\" to player for 5 seconds",
        "send title \"Hi %player%\" to player",
        "send title \"Loot Drop\" with subtitle \"starts in 3 minutes\" to all players",
        "send title \"Hello %player%!\" with subtitle \"Welcome to our server\" to player for 5 seconds with fadein 1 second and fade out 1 second",
        "send subtitle \"Party!\" to all players"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPlaySound",
      "name": "Play Sound",
      "since": [
        "2.2-dev28, 2.4 (sound categories), 2.9 (sound seed & entity emitter)"
      ],
      "deprecated": false,
      "description": [
        "Plays a sound at given location for everyone or just for given players, or plays a sound to specified players. Both Minecraft sound names and <a href=\"https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html\">Spigot sound names</a> are supported. Playing resource pack sounds are supported too. The sound category is 'master' by default. ",
        "",
        "When running 1.19+, playing a sound from an entity directly will result in the sound coming from said entity, even while moving.",
        "If the sound is custom, a location emitter will follow the entity. Do note that pitch and volume ",
        "are reflected based on the entity, and Minecraft may not use the values from this syntax.",
        "",
        "Minecraft sometimes has a set of sounds under one sound ID that will randomly play. To counter this, you can directly state which seed to use.",
        "",
        "Please note that sound names can get changed in any Minecraft or Spigot version, or even removed from Minecraft itself."
      ],
      "patterns": [
        "play sound[s] %texts% [[with] seed %number%] [(in|from) %sound category%] [(at|with) volume %number%] [(and|at|with) pitch %number%] (at|on|from) %locations/entities% [(to|for) %players%]",
        "play sound[s] %texts% [[with] seed %number%] [(in|from) %sound category%] [(at|with) volume %number%] [(and|at|with) pitch %number%] [(to|for) %players%] [(at|on|from) %locations/entities%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "play sound \"block.note_block.pling\"",
        "play sound \"entity.experience_orb.pickup\" with volume 0.5 to the player",
        "play sound \"custom.music.1\" in jukebox category at {speakerBlock}",
        "play sound \"BLOCK_AMETHYST_BLOCK_RESONATE\" with seed 1 on target entity for the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffExit",
      "name": "Exit",
      "since": [
        "unknown (before 2.1)"
      ],
      "deprecated": false,
      "description": [
        "Exits a given amount of loops and conditionals, or the entire trigger."
      ],
      "patterns": [
        "(exit|stop) [trigger]",
        "(exit|stop) [1|a|the|this] (section|loop|conditional)",
        "(exit|stop) <-?\\d+(_\\d+)*> (section|loop|conditional)s",
        "(exit|stop) all (section|loop|conditional)s"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop blocks above the player:\n\tloop-block is not air:\n\t\texit 2 sections\n\tset loop-block to water\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffDoIf",
      "name": "Do If",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Execute an effect if a condition is true."
      ],
      "patterns": [
        "<.+> if <.+>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on join:\n\tgive a diamond to the player if the player has permission \"rank.vip\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffContinue",
      "name": "Continue",
      "since": [
        "2.2-dev37, 2.7 (while loops), 2.8.0 (outer loops)"
      ],
      "deprecated": false,
      "description": [
        "Moves the loop to the next iteration. You may also continue an outer loop from an inner one. The loops are labelled from 1 until the current loop, starting with the outermost one."
      ],
      "patterns": [
        "continue [this loop|[the] [current] loop]",
        "continue [the] <-?\\d+(_\\d+)*>(st|nd|rd|th) loop"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# Broadcast online moderators\nloop all players:\n\tif loop-value does not have permission \"moderator\":\n\t\tcontinue # filter out non moderators\n\tbroadcast \"%loop-player% is a moderator!\" # Only moderators get broadcast\n",
        "# Game starting counter\nset {_counter} to 11\nwhile {_counter} > 0:\n\tremove 1 from {_counter}\n\twait a second\n\tif {_counter} != 1, 2, 3, 5 or 10:\n\t\tcontinue # only print when counter is 1, 2, 3, 5 or 10\n\tbroadcast \"Game starting in %{_counter}% second(s)\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffTransform",
      "name": "Transform List",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Transforms (or 'maps') a list's values using a given expression. This is akin to looping over the list and setting each value to a modified version of itself.",
        "Evaluates the given expression for each element in the list, replacing the original element with the expression's result.",
        "If the given expression returns a single value, the indices of the list will not change. If the expression returns multiple values, then then indices will be reset as a single index cannot contain multiple values.",
        "Only variable lists can be transformed with this effect. For other lists, see the transform expression."
      ],
      "patterns": [
        "(transform|map) %~objects% (using|with) <.+>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_a::*} to 1, 2, and 3\ntransform {_a::*} using input * 2\n# {_a::*} is now 2, 4, and 6\n",
        "# get a list of the sizes of all clans without manually looping\nset {_clan-sizes::*} to indices of {clans::*}\ntransform {_clan-sizes::*} using {clans::%input%::size}\n",
        "# set all existing values of a list to 0:\ntransform {_list::*} with 0\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "input"
      ]
    },
    {
      "id": "EffSort",
      "name": "Sort",
      "since": [
        "2.9.0, 2.10 (sort order)"
      ],
      "deprecated": false,
      "description": [
        "Sorts a list variable using either the natural ordering of the contents or the results of the given expression.\nBe warned, this will overwrite the indices of the list variable.\n\nWhen using the full <code>sort %~objects% (by|based on) &lt;expression&gt;</code> pattern,\nthe input expression can be used to refer to the current item being sorted.\n(See input expression for more information.)"
      ],
      "patterns": [
        "sort %~objects% [in (descending|ascending) order] [(by|based on) <.+>]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_words::*} to \"pineapple\", \"banana\", \"yoghurt\", and \"apple\"",
        "sort {_words::*} # alphabetical sort",
        "sort {_words::*} by length of input # shortest to longest",
        "sort {_words::*} in descending order by length of input # longest to shortest",
        "sort {_words::*} based on {tastiness::%input%} # sort based on custom value"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "input"
      ]
    },
    {
      "id": "EffLightning",
      "name": "Lightning",
      "since": [
        "1.4"
      ],
      "deprecated": false,
      "description": [
        "Strike lightning at a given location. Can use 'lightning effect' to create a lightning that does not harm entities or start fires."
      ],
      "patterns": [
        "(create|strike) lightning[([ ]effect)] %directions% %locations%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "strike lightning at the player",
        "strike lightning effect at the victim"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffChange",
      "name": "Change: Set/Add/Remove/Remove All/Delete/Reset",
      "since": [
        "1.0 (set, add, remove, delete), 2.0 (remove all)"
      ],
      "deprecated": false,
      "description": [
        "A general effect that can be used for changing many <a href='./expressions'>expressions</a>.",
        "Some expressions can only be set and/or deleted, while others can also have things added to or removed from them."
      ],
      "patterns": [
        "(add|give) %objects% to %~objects%",
        "increase %~objects% by %objects%",
        "give %~objects% %objects%",
        "set %~objects% to %objects%",
        "remove (all|every) %objects% from %~objects%",
        "(remove|subtract) %objects% from %~objects%",
        "(reduce|decrease) %~objects% by %objects%",
        "(delete|clear) %~objects%",
        "reset %~objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the player's display name to \"<red>%name of player%\"\nset the block above the victim to lava\n",
        "add 2 to the player's health # preferably use '<a href='#EffHealth'>heal</a>' for this\nadd argument to {blacklist::*}\ngive a diamond pickaxe of efficiency 5 to the player\nincrease the data value of the clicked block by 1\n",
        "remove 2 pickaxes from the victim\nsubtract 2.5 from {points::%uuid of player%}\n",
        "remove every iron tool from the player\nremove all minecarts from {entitylist::*}\n",
        "delete the block below the player\nclear drops\ndelete {variable}\n",
        "reset walk speed of player\nreset chunk at the targeted block\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffWardenDisturbance",
      "name": "Make Disturbance",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make a warden sense a disturbance at a location, causing the warden to investigate that area.",
        "The warden will not investigate if the warden is aggressive towards an entity.",
        "This effect does not add anger to the warden."
      ],
      "patterns": [
        "make %living entities% sense [a] disturbance %direction% %location%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make last spawned warden sense a disturbance at location(0, 0, 0)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffWakeupSleep",
      "name": "Wake And Sleep",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make bats and foxes sleep or wake up.",
        "Make villagers sleep by providing a location of a bed.",
        "Make players sleep by providing a location of a bed. Using 'with force' will bypass \"nearby monsters\" ,the max distance, allowing players to sleep even if the bed is far away, and lets players sleep in the nether and end. Does not work if the location of the bed is not in the world the player is currently in.",
        "Using 'without spawn location update' will make players wake up without setting their spawn location to the bed."
      ],
      "patterns": [
        "make %living entities% (start sleeping|[go to] sleep) [%direction% %location%]",
        "force %living entities% to (start sleeping|[go to] sleep) [%direction% %location%]",
        "make %players% (start sleeping|[go to] sleep) %direction% %location% (with force)",
        "force %players% to (start sleeping|[go to] sleep) %direction% %location% (with force)",
        "make %living entities% (stop sleeping|wake up)",
        "force %living entities% to (stop sleeping|wake up)",
        "make %players% (stop sleeping|wake up) (without spawn [location] update)",
        "force %players% to (stop sleeping|wake up) (without spawn [location] update)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make {_fox} go to sleep",
        "make {_bat} stop sleeping",
        "make {_villager} start sleeping at location(0, 0, 0)",
        "make player go to sleep at location(0, 0, 0) with force",
        "make player wake up without spawn location update"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffKnockback",
      "name": "Knockback",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Apply the same velocity as a knockback to living entities in a direction. Mechanics such as knockback resistance will be factored in."
      ],
      "patterns": [
        "(apply knockback to|knock[back]) %living entities% [%direction%] [with (strength|force) %number%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "knockback player north",
        "knock victim (vector from attacker to victim) with strength 10"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffTeleport",
      "name": "Teleport",
      "since": [
        "1.0, 2.10 (flags)"
      ],
      "deprecated": false,
      "description": [
        "Teleport an entity to a specific location.\nThis effect is delayed by default, as it waits for the chunk of the location to be loaded before teleporting.\nThe keyword 'force' may be used to bypass this behavior (preventing the delay), but note that it may cause lag spikes or other server performance issues when teleporting to unloaded chunks.\nTeleport flags are properties to retain during a teleport, such as direction, passengers, and velocities.\n"
      ],
      "patterns": [
        "[force] teleport %entities% (to|%direction%) %location% [[while] retaining %teleport flags%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "teleport the player to {home::%uuid of player%}",
        "teleport the attacker to the victim",
        "on dismount:\n\tcancel event\n\tteleport the player to {server::spawn} retaining vehicle and passengers\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffDancing",
      "name": "Dance",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Make an allay or piglin start or stop dancing.",
        "Providing a location only applies to allays. They will check to see if the the block at the location is a jukebox and playing music. If it isn't, they will stop dancing. If no location is provided, the allay will dance indefinitely.",
        "Providing a timespan only applies for piglins. It determines the length of time they will dance for. If no timespan is provided, they will dance indefinitely."
      ],
      "patterns": [
        "make %living entities% (start dancing|dance) [%direction% %location%] [for %time span%]",
        "make %living entities% (stop dancing|not dance)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if last spawned allay is not dancing:\n\tmake last spawned allay start dancing\n",
        "if block at location(0, 0, 0) is a jukebox:\n\tmake all allays dance at location(0, 0, 0)\n",
        "make last spawned piglin start dancing",
        "make all piglins dance for 5 hours"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffTree",
      "name": "Tree",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Creates a tree.",
        "This may require that there is enough space above the given location and that the block below is dirt/grass, but it is possible that the tree will just grow anyways, possibly replacing every block in its path."
      ],
      "patterns": [
        "(grow|create|generate) tree [of type %tree type%] %directions% %locations%",
        "(grow|create|generate) %tree type% %directions% %locations%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "grow a tall redwood tree above the clicked block"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffDrop",
      "name": "Drop",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Drops one or more items."
      ],
      "patterns": [
        "drop %item types/experience points% [%directions% %locations%] [without velocity]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on death of creeper:\n\tdrop 1 TNT\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffExplosion",
      "name": "Explosion",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Creates an explosion of a given force. The Minecraft Wiki has an <a href='https://www.minecraft.wiki/w/Explosion'>article on explosions</a> which lists the explosion forces of TNT, creepers, etc.",
        "Hint: use a force of 0 to create a fake explosion that does no damage whatsoever, or use the explosion effect introduced in Skript 2.0.",
        "Starting with Bukkit 1.4.5 and Skript 2.0 you can use safe explosions which will damage entities but won't destroy any blocks."
      ],
      "patterns": [
        "[(create|make)] [an] explosion (of|with) (force|strength|power) %number% [%directions% %locations%] [with fire]",
        "[(create|make)] [a] safe explosion (of|with) (force|strength|power) %number% [%directions% %locations%]",
        "[(create|make)] [a] fake explosion [%directions% %locations%]",
        "[(create|make)] [an] explosion[ ]effect [%directions% %locations%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "create an explosion of force 10 at the player",
        "create an explosion of force 0 at the victim"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffColorItems",
      "name": "Color Items",
      "since": [
        "2.0, 2.2-dev26 (maps and potions)"
      ],
      "deprecated": false,
      "description": [
        "Colors items in a given <a href='#color'>color</a>. You can also use RGB codes if you feel limited with the 16 default colors. RGB codes are three numbers from 0 to 255 in the order <code>(red, green, blue)</code>, where <code>(0,0,0)</code> is black and <code>(255,255,255)</code> is white. Armor is colorable for all Minecraft versions. With Minecraft 1.11 or newer you can also color potions and maps. Note that the colors might not look exactly how you'd expect."
      ],
      "patterns": [
        "(dye|colo[u]r|paint) %item types% %color%",
        "(dye|colo[u]r|paint) %item types% \\(%number%, %number%, %number%\\)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "dye player's helmet blue",
        "color the player's tool red"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffPlayEffect",
      "name": "Play or Draw an Effect",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Plays or draws a specific effect at a location, to a player, or on an entity.\nEffects can be:\n* Particles.\n* Game effects, which consist of combinations of particles and sounds, like the bone meal particles, the sound of footsteps on a specific block, or the particles and sound of breaking a splash potion.\n* Entity effects, which are particles or animations that are entity-specific and can only be played on a compatible entity. For example, the ravager attack animation can be played with this effect.\n\nAll effects vary significantly in availability from version to version, and some may simply not function on your version of Minecraft. Some effects, like the death animation entity effect, may cause client glitches and should be used carefully!\n"
      ],
      "patterns": [
        "[force] (play|show|draw) %game effects/particles% [%directions% %locations%] [as %player%]",
        "[force] (play|show|draw) %game effects/particles% [%directions% %locations%] (for|to) %players% [as %player%]",
        "(play|show|draw) %game effects% [%directions% %locations%] (in|with) [a] [view] (radius|range) [of] %number%",
        "(play|show|draw) %entity effects% on %entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "draw 2 smoke particles at player",
        "force draw 10 red dust particles of size 3 for player",
        "play blue instant splash potion break effect with a view radius of 10",
        "play ravager attack animation on player's target"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    }
  ],
  "expressions": [
    {
      "id": "ExprPathfindingLocation",
      "name": "Pathfinding Target Location",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "The location that the entity is pathfinding towards."
      ],
      "patterns": [
        "[the] path[ ]finding target location"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on pathfind:\n\tif the pathfinding target location is within radius 5 of {mylocation}:\n\t    broadcast \"A mob tried to pathfind near a forbidden location!\"\n\t    cancel event\n"
      ],
      "events": [
        {
          "id": "pathfind",
          "name": "On Pathfind"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprChatRecipients",
      "name": "Chat Recipients",
      "since": [
        "2.2-Fixes-v7, 2.2-dev35 (clearing recipients), 2.15 (returns Audience)"
      ],
      "deprecated": false,
      "description": [
        "The recipients of a chat event"
      ],
      "patterns": [
        "[the] [chat( | -)]recipients"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "chat recipients"
      ],
      "events": [
        {
          "id": "chat",
          "name": "On Chat"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "audience",
        "name": "Audience"
      }
    },
    {
      "id": "ExprBrewingResults",
      "name": "Brewing Results",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The resulting items in an 'on brew complete' event."
      ],
      "patterns": [
        "[the] brewing results"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on brew complete:\n\tset {_results::*} to the brewing results\n"
      ],
      "events": [
        {
          "id": "brewing_complete",
          "name": "On Brewing Complete"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "LitFloatMinValue",
      "name": "Minimum Float Value",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "A number representing the minimum value of a float number type."
      ],
      "patterns": [
        "[the] min[imum] float value"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} <= minimum float value:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprSecBlankEquipComp",
      "name": "Blank Equippable Component",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Gets a blank equippable component.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "a (blank|empty) equippable component"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_component} to a blank equippable component:\n\tset the camera overlay to \"custom_overlay\"\n\tset the allowed entities to a zombie and a skeleton\n\tset the equip sound to \"block.note_block.pling\"\n\tset the equipped model id to \"custom_model\"\n\tset the shear sound to \"ui.toast.in\"\n\tset the equipment slot to chest slot\n\tallow event-equippable component to be damage when hurt\n\tallow event-equippable component to be dispensed\n\tallow event-equippable component to be equipped onto entities\n\tallow event-equippable component to be sheared off\n\tallow event-equippable component to swap equipment\nset the equippable component of {_item} to {_component}\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "equippablecomponent",
        "name": "Equippable Components"
      }
    },
    {
      "id": "ExprPushedBlocks",
      "name": "Moved blocks",
      "since": [
        "2.2-dev27"
      ],
      "deprecated": false,
      "description": [
        "Blocks which are moved in a piston event. Cannot be used outside of piston events."
      ],
      "patterns": [
        "[the] moved blocks"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "the moved blocks"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprAttacked",
      "name": "Attacked",
      "since": [
        "1.3, 2.6.1 (projectile hit event)"
      ],
      "deprecated": false,
      "description": [
        "The victim of a damage event, e.g. when a player attacks a zombie this expression represents the zombie."
      ],
      "patterns": [
        "[the] (attacked|damaged|victim) [<(.+)>]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\tvictim is a creeper\n\tdamage the attacked by 1 heart\n"
      ],
      "events": [
        {
          "id": "damage",
          "name": "On Damage"
        },
        {
          "id": "death",
          "name": "On Death"
        },
        {
          "id": "projectile_hit",
          "name": "On Projectile Hit"
        },
        {
          "id": "attempt_attack",
          "name": "On Attempt Attack"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprMe",
      "name": "Me",
      "since": [
        "2.1.1"
      ],
      "deprecated": false,
      "description": [
        "A 'me' expression that can be used in players' effect commands only."
      ],
      "patterns": [
        "me",
        "my[self]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "!heal me",
        "!kick myself",
        "!give a diamond axe to me"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "player",
        "name": "Player"
      }
    },
    {
      "id": "ExprCommandExecutor",
      "name": "Command Executor",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "The executor of a command.\nThis differs from the command sender in that the executor may not be the thing that triggered/initiated the command.\nThe executor of a command is often changed to be different from the command sender by using a vanilla command such as \"/execute\".\n"
      ],
      "patterns": [
        "[the] [command['s]] executor"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /balance:\n\t# This works if you do \"/execute as <player> run balance\"\n\t# It will send the output to the command sender, but it will be as if \"<player>\" was the thing executing it.\n\tsend \"Your balance is %{balance::%uuid of the executor%}%\" to the sender\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "LitLongMinValue",
      "name": "Minimum Long Value",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "A number representing the minimum value of a long number type."
      ],
      "patterns": [
        "[the] min[imum] long value"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} <= minimum long value:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "LitIntMaxValue",
      "name": "Maximum Integer Value",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "A number representing the maximum value of an integer number type."
      ],
      "patterns": [
        "[the] max[imum] integer value"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} >= maximum integer value:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprParseError",
      "name": "Parse Error",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The error which caused the last <a href='#ExprParse'>parse operation</a> to fail, which might not be set if a pattern was used and the pattern didn't match the provided text at all."
      ],
      "patterns": [
        "[the] [last] [parse] error"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {var} to line 1 parsed as integer\nif {var} is not set:\n\tparse error is set:\n\t\tmessage \"<red>Line 1 is invalid: %last parse error%\"\n\telse:\n\t\tmessage \"<red>Please put an integer on line 1!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprNow",
      "name": "Now",
      "since": [
        "1.4"
      ],
      "deprecated": false,
      "description": [
        "The current <a href='#date'>system time</a> of the server. Use <a href='#ExprTime'>time</a> to get the <a href='#time'>Minecraft time</a> of a world."
      ],
      "patterns": [
        "now"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast \"Current server time: %now%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "date",
        "name": "Date"
      }
    },
    {
      "id": "ExprOfflinePlayers",
      "name": "Offline players",
      "since": [
        "2.2-dev35"
      ],
      "deprecated": false,
      "description": [
        "All players that have ever joined the server. This includes the players currently online."
      ],
      "patterns": [
        "[(all [[of] the]|the)] offline[ ]players"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"Size of all players who have joined the server: %size of all offline players%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "offlineplayer",
        "name": "Offline Player"
      }
    },
    {
      "id": "ExprHealAmount",
      "name": "Heal Amount",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "The amount of health healed in a <a href='/#heal'>heal event</a>."
      ],
      "patterns": [
        "[the] heal[ing] amount"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player healing:\n\tincrease the heal amount by 2\n\tremove 0.5 from the healing amount\n"
      ],
      "events": [
        {
          "id": "heal",
          "name": "On Heal"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprCmdCooldownInfo",
      "name": "Script Command Cooldown Information",
      "since": [
        "2.2-dev33"
      ],
      "deprecated": false,
      "description": [
        "Only usable in script commands.\nRepresents the cooldown time, the cooldown bypass permission, the remaining cooldown time, the elapsed cooldown time.\n"
      ],
      "patterns": [
        "[the] ((cooldown|wait) time|[wait] time of [the] (cooldown|wait) [(of|for) [the] [current] command])",
        "[the] [cooldown] bypass perm[ission] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]",
        "[the] remaining [time] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]",
        "[the] elapsed [time] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /home:\n\tcooldown: 10 seconds\n\tcooldown message: You last teleported home %elapsed time% ago, you may teleport home again in %remaining time%.\n\ttrigger:\n\t\tteleport player to {home::%player%}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        ""
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "LitNewLine",
      "name": "New Line",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Returns a line break separator."
      ],
      "patterns": [
        "nl",
        "new[ ]line",
        "line[ ]break"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"Hello%nl%Goodbye!\" to player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprReducedValue",
      "name": "Reduced Value",
      "since": [
        "2.15"
      ],
      "deprecated": false,
      "description": [
        "Returns the current accumulated/reduced value within a <a href='#ExprReduce'>reduce expression</a>.",
        "This represents the result of all previous reduction operations.",
        "Can only be used inside the reduce expression's operation block."
      ],
      "patterns": [
        "[the] reduced value",
        "[the] (accumulator|accumulated) [value]",
        "[the] folded value"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_sum} to {_numbers::*} reduced with [reduced value + input]",
        "set {_max} to {_values::*} reduced with [reduced value if reduced value > input else input]",
        "set {_combined} to {_items::*} reduced with (\"%reduced value%, %input%\")"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprAppliedEffect",
      "name": "Applied Beacon Effect",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The type of effect applied by a beacon."
      ],
      "patterns": [
        "[the] applied [beacon] effect"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on beacon effect:\n\tif the applied effect is primary beacon effect:\n\t\tbroadcast \"Is Primary\"\n\telse if applied effect = secondary effect:\n\t\tbroadcast \"Is Secondary\"\n"
      ],
      "events": [
        {
          "id": "beacon_effect",
          "name": "On Beacon Effect"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "potioneffecttype",
        "name": "Potion Effect Type"
      }
    },
    {
      "id": "ExprVersion",
      "name": "Version",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The version of Bukkit, Minecraft or Skript respectively."
      ],
      "patterns": [
        "([craft]bukkit|minecraft|skript)( |-)version"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message \"This server is running Minecraft %minecraft version% on Bukkit %bukkit version%\"",
        "message \"This server is powered by Skript %skript version%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprHatchingNumber",
      "name": "Hatching Number",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The number of entities that will be hatched in a Player Egg Throw event.",
        "Please note that no more than 127 entities can be hatched at once."
      ],
      "patterns": [
        "[the] hatching number"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player egg throw:\n\tset the hatching number to 10\n"
      ],
      "events": [
        {
          "id": "egg_throw",
          "name": "On Egg Throw"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprInventoryCloseReason",
      "name": "Inventory Close Reason",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "The <a href='/#inventoryclosereason'>inventory close reason</a> of an <a href='/#inventory_close'>inventory close event</a>."
      ],
      "patterns": [
        "[the] inventory clos(e|ing) (reason|cause)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on inventory close:\n\tinventory close reason is teleport\n\tsend \"Your inventory closed due to teleporting!\" to player\n"
      ],
      "events": [
        {
          "id": "inventory_close",
          "name": "On Inventory Close"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "inventoryclosereason",
        "name": "Inventory Close Reasons"
      }
    },
    {
      "id": "ExprScriptsOld",
      "name": "All Scripts",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Returns all of the scripts, or just the enabled or disabled ones."
      ],
      "patterns": [
        "[all [of the]|the] scripts [without ([subdirectory] paths|parents)]",
        "[all [of the]|the] (enabled|loaded) scripts [without ([subdirectory] paths|parents)]",
        "[all [of the]|the] (disabled|unloaded) scripts [without ([subdirectory] paths|parents)]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /scripts:\n\ttrigger:\n\t\tsend \"All Scripts: %scripts%\" to player\n\t\tsend \"Loaded Scripts: %enabled scripts%\" to player\n\t\tsend \"Unloaded Scripts: %disabled scripts%\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprCommandInput",
      "name": "Script Command Suggestion Input",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "Usable in a script command's \"suggestions\" entry.\nThis provides information including the full content of what the player has typed so far, what they have typed as part of the current argument, and at what position within the full content the current argument starts (starting from 1).\n"
      ],
      "patterns": [
        "[the] [command] [suggestion|tab completion] (full|complete) input",
        "[the] [command] [suggestion|tab completion] (current|arg[ument]) input",
        "[the] [command] [suggestion|tab completion] (current|arg[ument]) input [start[ing]] (position|index)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /message <player> <text>:\n\tsuggestions:\n\t\tplayer argument is set # they are writing the text argument\n\t\tif the current input contains \"frick\":\n\t\t\tset the suggestions for the text argument to \"Keep your messages nice please!\"\n\t\t\tdisable filtering for the text argument's suggestions\n\ttrigger:\n\t\tsend \"<grey><italic>%player% -> You: %text argument%\" to player argument\n\t\tsend \"<grey><italic>You -> %player argument%: %text argument%\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprHatchingType",
      "name": "Hatching Entity Type",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The type of the entity that will be hatched in a Player Egg Throw event."
      ],
      "patterns": [
        "[the] hatching entity [type]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player egg throw:\n\tset the hatching entity type to a primed tnt\n"
      ],
      "events": [
        {
          "id": "egg_throw",
          "name": "On Egg Throw"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entitydata",
        "name": "Entity Type"
      }
    },
    {
      "id": "ExprProjectileForce",
      "name": "Projectile Force",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Returns the force at which a projectile was shot within an entity shoot bow event."
      ],
      "patterns": [
        "[the] projectile force"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on entity shoot projectile:\n\tset the velocity of shooter to vector(0,1,0) * projectile force\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprMOTD",
      "name": "Message of the Day",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "The message of the day in the server list.",
        "This can be changed in a <a href='#server_list_ping'>server list ping</a> event only.",
        "Use 'default MOTD' to obtain the default MOTD set through the server configuration. This cannot be changed."
      ],
      "patterns": [
        "[the] [default|shown|displayed] (MOTD|message of [the] day)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on server ling ping:\n\tset the motd to \"<red>Join our server today!\"\n"
      ],
      "events": [
        {
          "id": "server_list_ping",
          "name": "On Server List Ping"
        }
      ],
      "requirements": null,
      "keywords": [
        "MOTD"
      ],
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprRespawnLocation",
      "name": "Respawn Location",
      "since": [
        "2.2-dev35"
      ],
      "deprecated": false,
      "description": [
        "The location that a player should respawn at. This is used within the respawn event.\n"
      ],
      "patterns": [
        "[the] respawn location"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on respawn:\n\tset respawn location to {example::spawn}\n"
      ],
      "events": [
        {
          "id": "respawn",
          "name": "On Respawn"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprHostname",
      "name": "Hostname",
      "since": [
        "2.6.1"
      ],
      "deprecated": false,
      "description": [
        "The hostname used by the connecting player to connect to the server in a <a href='#connect'>connect</a> event."
      ],
      "patterns": [
        "[the] (host|domain)[ ][name]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on connect:\n\thostname is \"testers.example.com\"\n\tsend \"Welcome back tester!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "LitEternity",
      "name": "An Eternity",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Represents a timespan with an infinite duration. An eternity is also created when arithmetic results in a timespan larger than about 292 million years.",
        "Infinite timespans generally follow the rules of infinity, where most math operations do nothing. However, operations that would return NaN with numbers will instead return a timespan of 0 seconds.",
        "Note that an eternity will often be treated as the longest duration something supports, rather than a true eternity."
      ],
      "patterns": [
        "[an] eternity",
        "forever",
        "[an] (indefinite|infinite) (duration|timespan)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set fire to the player for an eternity"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "LitLongMaxValue",
      "name": "Maximum Long Value",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "A number representing the maximum value of a long number type."
      ],
      "patterns": [
        "[the] max[imum] long value"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} >= maximum long value:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprMemory",
      "name": "Free / Max / Total Memory",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "The free, max or total memory of the server in Megabytes."
      ],
      "patterns": [
        "[the] [server] (free|max[imum]|total) (memory|ram)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "while player is online:\n\tsend action bar \"Memory left: %free memory%/%max memory%MB\" to player\n\twait 5 ticks\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprBarterInput",
      "name": "Barter Input",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The item picked up by the piglin in a piglin bartering event."
      ],
      "patterns": [
        "[the] [piglin] barter[ing] input"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on piglin barter:\n\tif the bartering input is a gold ingot:\n\t\tbroadcast \"my precious...\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprLastLoadedServerIcon",
      "name": "Last Loaded Server Icon",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Returns the last loaded server icon with the <a href='#EffLoadServerIcon'>load server icon</a> effect."
      ],
      "patterns": [
        "[the] [last[ly]] loaded server icon"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {server-icon} to the last loaded server icon"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "cachedservericon",
        "name": "Server Icon"
      }
    },
    {
      "id": "ExprBroadcastMessage",
      "name": "Broadcast Message",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The message broadcasted in a broadcast event."
      ],
      "patterns": [
        "[the] broadcast(-|[ed] )message"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on broadcast:\n\tset broadcast message to \"<light green>[BROADCAST] %broadcast message%\"\n"
      ],
      "events": [
        {
          "id": "broadcast",
          "name": "On Broadcast"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprOps",
      "name": "All Operators",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The list of operators on the server."
      ],
      "patterns": [
        "[all [[of] the]|the] [server] [non(-| )]op[erator]s"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_ops::*} to all operators"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "offlineplayer",
        "name": "Offline Player"
      }
    },
    {
      "id": "ExprPickedItem",
      "name": "Picked Item/Block/Entity",
      "since": [
        "2.15"
      ],
      "deprecated": false,
      "description": [
        "The item, block, or entity picked by a player using the pick block key (default middle mouse button)."
      ],
      "patterns": [
        "[the] picked (item|block|entity)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player pick item:\n\tsend \"You picked %the picked item%!\" to the player\n"
      ],
      "events": null,
      "requirements": [
        "1.21.5+"
      ],
      "keywords": [
        "pick",
        "picked",
        "picked item",
        "picked block",
        "picked entity"
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprEnchantmentHint",
      "name": "Enchantment Hint",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "The enchantment hint in an enchant event.\nThis is the enchantment that was shown to the player when they hovered over the enchantment offer that they eventually selected.\n"
      ],
      "patterns": [
        "[the] enchant[ment] hint"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on enchant:\n\tsend \"You got at least %the enchantment hint%!\"\n"
      ],
      "events": [
        {
          "id": "enchant",
          "name": "On Enchant"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "enchantment",
        "name": "Enchantment"
      }
    },
    {
      "id": "ExprUnleashReason",
      "name": "Unleash Reason",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The unleash reason in an unleash event."
      ],
      "patterns": [
        "[the] unleash[ing] reason"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the unleash reason is distance:\n\tbroadcast \"The leash was snapped in half.\"\n"
      ],
      "events": [
        {
          "id": "leash_unleash",
          "name": "On Leash / Unleash"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "unleashreason",
        "name": "Unleash Reason"
      }
    },
    {
      "id": "ExprMendingRepairAmount",
      "name": "Mending Repair Amount",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "The number of durability points an item is to be repaired in a mending event.",
        " Modifying the repair amount will affect how much experience is given to the player after mending."
      ],
      "patterns": [
        "[the] [mending] repair amount"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on item mend:\n\tset the mending repair amount to 100\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprUnknownCommandMessage",
      "name": "Unknown Command Message",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "The message sent to a player when executing an unknown command."
      ],
      "patterns": [
        "[the] (unknown|non-existent) command message"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "\ton unknown command execution:\n\t\tadd 1 to {-command_fails::%player%}\n\t\twait 30 seconds:\n\t\t\tremove 1 from {-command_fails::%player%}\n\t\tif {-command_fails::%player%} is greater than or equal to 5:\n\t\t\tpush the player upwards\n\t\t\tset the unknown command message to \"<red>You are executing too many unknown commands too fast!\"\n"
      ],
      "events": [
        {
          "id": "unknown_command_execution",
          "name": "On Unknown Command Execution"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprEnchantmentBonus",
      "name": "Enchantment Bonus",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The enchantment bonus in an enchant prepare event. This represents the number of bookshelves affecting/surrounding the enchantment table."
      ],
      "patterns": [
        "[the] enchant[ment] bonus"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on enchant:\n\tsend \"There are %enchantment bonus% bookshelves surrounding this enchantment table!\" to player\n"
      ],
      "events": [
        {
          "id": "enchant_prepare",
          "name": "On Enchant Prepare"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "LitDoubleMaxValue",
      "name": "Maximum Double Value",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "A number representing the maximum value of a double number type."
      ],
      "patterns": [
        "[the] max[imum] double value"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} >= maximum double value:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "LitPi",
      "name": "Pi",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Returns the mathematical constant pi. (approx. 3.1415926535)"
      ],
      "patterns": [
        "(pi|π)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_tau} to pi * 2"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprAllGroups",
      "name": "All Groups",
      "since": [
        "2.2-dev35"
      ],
      "deprecated": false,
      "description": [
        "All the groups a player can have. This expression requires Vault and a compatible permissions plugin to be installed."
      ],
      "patterns": [
        "all groups"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /group &lt;text&gt;:\n\ttrigger:\n\t\tif argument is \"list\":\n\t\t\tsend \"%all groups%\"\n"
      ],
      "events": null,
      "requirements": [
        "Vault",
        "a permission plugin that supports Vault"
      ],
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprAbsorbedBlocks",
      "name": "Absorbed blocks",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The blocks absorbed by a sponge block."
      ],
      "patterns": [
        "[the] absorbed blocks"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "the absorbed blocks"
      ],
      "events": [
        {
          "id": "sponge_absorb",
          "name": "On Sponge Absorb"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprLoot",
      "name": "Loot",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The loot that will be generated in a 'loot generate' event."
      ],
      "patterns": [
        "[the] loot"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on loot generate:\n\tchance of 10%\n\tadd 64 diamonds to loot\n\tsend \"You hit the jackpot!!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "ExprCommand",
      "name": "Command",
      "since": [
        "2.0, 2.7 (support for script commands)"
      ],
      "deprecated": false,
      "description": [
        "The command that caused an 'on command' event (excluding the leading slash and all arguments)"
      ],
      "patterns": [
        "[the] (full|complete|whole) command",
        "[the] command [label|alias]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# prevent any commands except for the /exit command during some game\non command:\n\tif {game::%player%::playing} is true:\n\t\tif the command is not \"exit\":\n\t\t\tmessage \"You're not allowed to use commands during the game\"\n\t\t\tcancel the event\n"
      ],
      "events": [
        {
          "id": "command",
          "name": "On Command"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprPortal",
      "name": "Portal",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "The blocks associated with a portal in the portal creation event."
      ],
      "patterns": [
        "[the] portal['s] blocks",
        "[the] blocks of [the] portal"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on portal creation:\n\tloop portal blocks:\n\t\tbroadcast \"%loop-block% is part of a portal!\"\n"
      ],
      "events": [
        {
          "id": "portal_create",
          "name": "On Portal Create"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprConsumedItem",
      "name": "Consumed Item",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Represents the item consumed within an entity shoot bow and item consume event."
      ],
      "patterns": [
        "[the] consumed item"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player or skeleton shoot projectile:\n\tif the consumed item is an arrow:\n\t\tcancel event\n\t\tsend \"You're now allowed to shoot your arrows.\" to shooter\n",
        "on player consume:\n\tif the consumed item is cooked porkchop:\n\t\tsend \"Well aren't you just a little piggy wiggly!\" to player\n\tif player has scoreboard tag \"vegetarian\":\n\t\tset the consumed item to a carrot\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "ExprTagsOfType",
      "name": "All Tags of a Type",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns all the tags.",
        "`minecraft tag` will return only the vanilla tags, `datapack tag` will return only datapack-provided tags, `paper tag` will return only Paper's custom tags (if you are running Paper), and `custom tag` will look in the \"skript\" namespace for custom tags you've registered.",
        "You can also filter by tag types using \"item\", \"block\", or \"entity\"."
      ],
      "patterns": [
        "[all [[of] the]|the] [minecraft|datapack|paper|(custom|skript)] [item|block|entity [type]] tags"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast minecraft tags",
        "send paper entity tags",
        "broadcast all block tags"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "blocks",
        "minecraft tag",
        "type",
        "category"
      ],
      "returns": {
        "id": "minecrafttag",
        "name": "Minecraft Tag"
      }
    },
    {
      "id": "ExprHanging",
      "name": "Hanging Entity/Remover",
      "since": [
        "2.6.2"
      ],
      "deprecated": false,
      "description": [
        "Returns the hanging entity or remover in hanging <a href='#break_mine'>break</a> and <a href='#place'>place</a> events."
      ],
      "patterns": [
        "[the] hanging (entity|remover)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on break of item frame:\n\tif item of hanging entity is diamond pickaxe:\n\t\tcancel event\n\t\tif hanging remover is a player:\n\t\t\tsend \"You can't break that item frame!\" to hanging remover\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprLocation",
      "name": "Location",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The location where an event happened (e.g. at an entity or block), or a location <a href='#ExprDirection'>relative</a> to another (e.g. 1 meter above another location)."
      ],
      "patterns": [
        "[the] [event-](location|position)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples'",
        "set {_loc} to the location 1 meter above the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprReadiedArrow",
      "name": "Readied Arrow/Bow",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "The bow or arrow in a <a href='#ready_arrow'>Ready Arrow event</a>."
      ],
      "patterns": [
        "[the] (readied|selected|drawn) (arrow|bow)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player ready arrow:\n\tselected bow's name is \"Spectral Bow\"\n\tif selected arrow is not a spectral arrow:\n\t\tcancel event\n"
      ],
      "events": [
        {
          "id": "ready_arrow",
          "name": "On Ready Arrow"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "ExprHotbarButton",
      "name": "Hotbar Button",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The hotbar button clicked in an <a href='#inventory_click'>inventory click</a> event."
      ],
      "patterns": [
        "[the] hotbar button"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on inventory click:\n\tsend \"You clicked the hotbar button %hotbar button%!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "LitInfinity",
      "name": "Infinity",
      "since": [
        "2.2-dev32d"
      ],
      "deprecated": false,
      "description": [
        "A number representing positive infinity."
      ],
      "patterns": [
        "positive (infinity|∞) [value]",
        "∞ [value]",
        "infinity value",
        "value of [positive] (infinity|∞)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} is infinity:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprFertilizedBlocks",
      "name": "Fertilized Blocks",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The blocks fertilized in block fertilize events."
      ],
      "patterns": [
        "[all] [the] fertilized blocks"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "the fertilized blocks"
      ],
      "events": [
        {
          "id": "block_fertilize",
          "name": "On Block Fertilize"
        }
      ],
      "requirements": [
        "Minecraft 1.13 or newer"
      ],
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprFinalDamage",
      "name": "Final Damage",
      "since": [
        "2.2-dev19"
      ],
      "deprecated": false,
      "description": [
        "How much damage is done in a damage event, considering all types of damage reduction. Can NOT be changed."
      ],
      "patterns": [
        "[the] final damage"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"%final damage%\" to victim"
      ],
      "events": [
        {
          "id": "damage",
          "name": "On Damage"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprHoverList",
      "name": "Hover List",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "The list when you hover on the player counts of the server in the server list.",
        "This can be changed using texts or players in a <a href='#server_list_ping'>server list ping</a> event only. Adding players to the list means adding the name of the players.",
        "And note that, for example if there are 5 online players (includes <a href='#ExprOnlinePlayersCount'>fake online count</a>) in the server and the hover list is set to 3 values, Minecraft will show \"... and 2 more ...\" at end of the list."
      ],
      "patterns": [
        "[the] [custom] [player|server] (hover|sample) ([message] list|message)",
        "[the] [custom] player [hover|sample] list"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on server list ping:\n\tclear the hover list\n\tadd \"&aWelcome to the &6Minecraft &aserver!\" to the hover list\n\tadd \"\" to the hover list # A blank line\n\tadd \"&cThere are &6%online player count% &conline players!\" to the hover list\n"
      ],
      "events": [
        {
          "id": "server_list_ping",
          "name": "On Server List Ping"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprEvtInitiator",
      "name": "Initiator Inventory",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Returns the initiator inventory in an on <a href=\"?search=#inventory_item_move\">inventory item move</a> event."
      ],
      "patterns": [
        "[the] [event-]initiator[( |-)inventory]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on inventory item move:\n\tholder of event-initiator-inventory is a chest\n\tbroadcast \"Item transport happening at %location at holder of event-initiator-inventory%!\"\n"
      ],
      "events": [
        {
          "id": "inventory_item_move",
          "name": "On Inventory Item Move"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "inventory",
        "name": "Inventory"
      }
    },
    {
      "id": "ExprSecCreateWorldBorder",
      "name": "Create WorldBorder",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Creates a new, unused world border. World borders can be assigned to either worlds or specific players.",
        "Borders assigned to worlds apply to all players in that world.",
        "Borders assigned to players apply only to those players, and different players can have different borders."
      ],
      "patterns": [
        "a [virtual] world[ ]border"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on join:\n\tset {_location} to location of player\n\tset worldborder of player to a virtual worldborder:\n\t\tset worldborder radius to 25\n\t\tset world border center of event-worldborder to {_location}\n",
        "on load:\n\tset worldborder of world \"world\" to a worldborder:\n\t\tset worldborder radius of event-worldborder to 200\n\t\tset worldborder center of event-worldborder to location(0, 64, 0)\n\t\tset worldborder warning distance of event-worldborder to 5\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "worldborder",
        "name": "World Border"
      }
    },
    {
      "id": "LitIntMinValue",
      "name": "Minimum Integer Value",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "A number representing the minimum value of an integer number type."
      ],
      "patterns": [
        "[the] min[imum] integer value"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} <= minimum integer value:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprVectorRandom",
      "name": "Vectors - Random Vector",
      "since": [
        "2.2-dev28, 2.7 (signed components)"
      ],
      "deprecated": false,
      "description": [
        "Creates a random unit vector."
      ],
      "patterns": [
        "[a] random vector"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_v} to a random vector"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprOnScreenKickMessage",
      "name": "On-Screen Kick Message",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "The kick message that is displayed on a player's screen when they are kicked."
      ],
      "patterns": [
        "[the] on-screen kick message"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on kick:\n\tset the on-screen kick message to \"You've been booted!\"\n"
      ],
      "events": [
        {
          "id": "kick",
          "name": "On Kick"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprProtocolVersion",
      "name": "Protocol Version",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "The protocol version that will be sent as the protocol version of the server in a server list ping event. For more information and list of protocol versions <a href='https://wiki.vg/Protocol_version_numbers'>visit wiki.vg</a>.",
        "If this protocol version doesn't match with the protocol version of the client, the client will see the <a href='#ExprVersionString'>version string</a>.",
        "But please note that, this expression has no visual effect over the version string. For example if the server uses PaperSpigot 1.12.2, and you make the protocol version 107 (1.9),",
        "the version string will not be \"Paper 1.9\", it will still be \"Paper 1.12.2\".",
        "But then you can customize the <a href='#ExprVersionString'>version string</a> as you wish.",
        "Also if the protocol version of the player is higher than protocol version of the server, it will say",
        "\"Server out of date!\", and if vice-versa \"Client out of date!\" when you hover on the ping bars.",
        "",
        "This can be set in a <a href='#server_list_ping'>server list ping</a> event only",
        "(increase and decrease effects cannot be used because that wouldn't make sense)."
      ],
      "patterns": [
        "[the] [server] [(sent|required|fake)] protocol version [number]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on server list ping:\n\tset the version string to \"<light green>Version: <orange>%minecraft version%\"\n\tset the protocol version to 0 # 13w41a (1.7) - so the player will see the custom version string almost always\n"
      ],
      "events": [
        {
          "id": "server_list_ping",
          "name": "On Server List Ping"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprBlock",
      "name": "Block",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The block involved in the event, e.g. the clicked block or the placed block.",
        "Can optionally include a direction as well, e.g. 'block above' or 'block in front of the player'."
      ],
      "patterns": [
        "[the] [event-]block"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "block is iron ore",
        "set block below to air",
        "spawn a creeper above the block",
        "loop blocks in radius 4:\n\tloop-block is obsidian\n\tset loop-block to water\n",
        "block is a chest:\n\tclear the inventory of the block\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprPlugins",
      "name": "Loaded Plugins",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "An expression to obtain a list of the names of the server's loaded plugins."
      ],
      "patterns": [
        "[(all [[of] the]|the)] [loaded] plugins"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the loaded plugins contains \"Vault\":\n\tbroadcast \"This server uses Vault plugin!\"\n",
        "send \"Plugins (%size of loaded plugins%): %plugins%\" to player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "LitNegativeInfinity",
      "name": "Negative Infinity",
      "since": [
        "2.2-dev32d"
      ],
      "deprecated": false,
      "description": [
        "A number representing negative infinity."
      ],
      "patterns": [
        "(-|minus |negative )(infinity|∞) [value]",
        "value of (-|minus |negative )(infinity|∞)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} is -infinity:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprRandomUUID",
      "name": "Random UUID",
      "since": [
        "2.5.1, 2.11 (return UUIDs)"
      ],
      "deprecated": false,
      "description": [
        "Returns a random UUID."
      ],
      "patterns": [
        "[a] random uuid"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_uuid} to random uuid"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "uuid",
        "name": "UUID"
      }
    },
    {
      "id": "ExprPathfindingTarget",
      "name": "Pathfinding Target Entity",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "The target entity that another entity is pathfinding towards in a pathfinding event."
      ],
      "patterns": [
        "[the] path[ ]finding target [entity]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on pathfind:\n\tif the pathfinding target entity is a villager:\n\t    broadcast \"I suspect a zombie is going towards a villager right now..\"\n"
      ],
      "events": [
        {
          "id": "pathfind",
          "name": "On Pathfind"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprChatMessage",
      "name": "Chat Message",
      "since": [
        "1.4.6, 2.15 (support for reset)"
      ],
      "deprecated": false,
      "description": [
        "The chat message in a chat event."
      ],
      "patterns": [
        "[the] [chat( |-)]message"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on chat:\n\tplayer has permission \"admin\"\n\tset the message to \"<light red>%message%\"\n"
      ],
      "events": [
        {
          "id": "chat",
          "name": "On Chat"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "LitFloatMaxValue",
      "name": "Maximum Float Value",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "A number representing the maximum value of a float number type."
      ],
      "patterns": [
        "[the] max[imum] float value"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} >= maximum float value:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprCaughtErrors",
      "name": "Last Caught Errors",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Gets the last caught runtime errors from a 'catch runtime errors' section."
      ],
      "patterns": [
        "[the] last caught [run[ ]time] errors"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "catch runtime errors:\n\tset worldborder center of {_border} to location(0, 0, NaN value)\nif last caught runtime errors contains \"Your location can't have a NaN value as one of its components\":\n\tset worldborder center of {_border} to location(0, 0, 0)\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprTPS",
      "name": "TPS (ticks per second)",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "Returns the 3 most recent TPS readings, like the /tps command. This expression is only supported on some server software (PaperSpigot)."
      ],
      "patterns": [
        "tps from [the] last ([1] minute|1[ ]m[inute])",
        "tps from [the] last 5[ ]m[inutes]",
        "tps from [the] last 15[ ]m[inutes]",
        "[the] tps"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast \"%tps%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLoopValue",
      "name": "Loop value",
      "since": [
        "1.0, 2.8.0 (loop-counter), 2.10 (previous, next)"
      ],
      "deprecated": false,
      "description": [
        "Returns the previous, current, or next looped value."
      ],
      "patterns": [
        "[the] [current] loop-<.+>",
        "[the] next loop-<.+>",
        "[the] previous loop-<.+>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# Countdown\nloop 10 times:\n\tmessage \"%11 - loop-number%\"\n\twait a second\n",
        "# Generate a 10x10 floor made of randomly colored wool below the player\nloop blocks from the block below the player to the block 10 east of the block below the player:\n\tloop blocks from the loop-block to the block 10 north of the loop-block:\n\t\tset loop-block-2 to any wool\n",
        "loop {top-balances::*}:\n\tloop-iteration <= 10\n\tsend \"#%loop-iteration% %loop-index% has $%loop-value%\"\n",
        "loop shuffled (integers between 0 and 8):\n\tif all:\n\t\tprevious loop-value = 1\n\t\tloop-value = 4\n\t\tnext loop-value = 8\n\tthen:\n\t\t kill all players\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprEnchantItem",
      "name": "Enchant Item",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The enchant item in an enchant prepare event or enchant event.\nIt can be modified, but enchantments will still be applied in the enchant event.\n"
      ],
      "patterns": [
        "[the] enchant[ed] item"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on enchant:\n\tset the enchanted item to a diamond chestplate\n",
        "on enchant prepare:\n\tset the enchant item to a wooden sword\n"
      ],
      "events": [
        {
          "id": "enchant_prepare",
          "name": "On Enchant Prepare"
        },
        {
          "id": "enchant",
          "name": "On Enchant"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprScripts",
      "name": "All Scripts",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns all of the scripts, or just the enabled or disabled ones."
      ],
      "patterns": [
        "[all [[of] the]|the] scripts",
        "[all [[of] the]|the] (enabled|loaded) scripts",
        "[all [[of] the]|the] (disabled|unloaded) scripts"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /scripts:\n\ttrigger:\n\t\tsend \"All Scripts: %scripts%\" to player\n\t\tsend \"Loaded Scripts: %enabled scripts%\" to player\n\t\tsend \"Unloaded Scripts: %disabled scripts%\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "script",
        "name": "Script"
      }
    },
    {
      "id": "ExprKickMessage",
      "name": "Kick Message",
      "since": [
        "2.0 beta 9"
      ],
      "deprecated": false,
      "description": [
        "The message sent to all online players when a player is kicked from server."
      ],
      "patterns": [
        "[the] kick( |-)message"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on kick:\n\tset the kick message to \"%player% was booted from the server! They won't be missed...\"\n"
      ],
      "events": [
        {
          "id": "kick",
          "name": "On Kick"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprJoinMessage",
      "name": "Join Message",
      "since": [
        "1.4.9"
      ],
      "deprecated": false,
      "description": [
        "The message sent to all online players when a player joins the server."
      ],
      "patterns": [
        "[the] (join|log[ ]in)( |-)message"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on first join:\n\tset the join message to \"Welcome %player% to our awesome server!\"\n",
        "on join:\n\tplayer has played before\n\tset the join message to \"Welcome back, %player%!\"\n"
      ],
      "events": [
        {
          "id": "join",
          "name": "On Join"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprAllBannedEntries",
      "name": "All Banned Players/IPs",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Obtains the list of all banned players or IP addresses."
      ],
      "patterns": [
        "[all [[of] the]|the] banned (players|(ips|ip addresses))"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /banlist:\n\ttrigger:\n\t\tsend all the banned players\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprDrops",
      "name": "Drops",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "This expression only works in death and harvest events.",
        "In a death event, will hold the drops of the dying creature.",
        "Drops can be prevented by removing them with \"remove ... from drops\", e.g. \"remove all pickaxes from the drops\", or \"clear drops\" if you don't want any drops at all."
      ],
      "patterns": [
        "[the] drops"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "clear drops",
        "remove 4 planks from the drops"
      ],
      "events": [
        {
          "id": "death",
          "name": "On Death"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprExperience",
      "name": "Experience",
      "since": [
        "2.1, 2.5.3 (block break event), 2.7 (experience change event), 2.10 (breeding, fishing)"
      ],
      "deprecated": false,
      "description": [
        "How much experience was spawned in an experience spawn or block break event. Can be changed."
      ],
      "patterns": [
        "[the] [(spawned|dropped)] [e]xp[erience] [orb[s]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on experience spawn:\n\tadd 5 to the spawned experience\n",
        "on break of coal ore:\n\tclear dropped experience\n",
        "on break of diamond ore:\n\tif tool of player = diamond pickaxe:\n\t\tadd 100 to dropped experience\n",
        "on breed:\n\tbreeding father is a cow\n\tset dropped experience to 10\n",
        "on fish catch:\n\tadd 70 to dropped experience\n"
      ],
      "events": [
        {
          "id": "experience_spawn",
          "name": "On Experience Spawn"
        },
        {
          "id": "break_mine",
          "name": "On Break / Mine"
        },
        {
          "id": "experience_change",
          "name": "On Experience Change"
        },
        {
          "id": "entity_breed",
          "name": "On Entity Breed"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "experience",
        "name": "Experience"
      }
    },
    {
      "id": "ExprVersionString",
      "name": "Version String",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "The text to show if the protocol version of the server doesn't match with protocol version of the client. You can check the <a href='#ExprProtocolVersion'>protocol version</a> expression for more information about this.",
        "This can only be set in a <a href='#server_list_ping'>server list ping</a> event."
      ],
      "patterns": [
        "[the] [shown|custom] version [string|text]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on server list ping:\n\tset the protocol version to 0 # 13w41a (1.7), so it will show the version string always\n\tset the version string to \"&lt;light green&gt;Version: &lt;orange&gt;%minecraft version%\"\n"
      ],
      "events": [
        {
          "id": "server_list_ping",
          "name": "On Server List Ping"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprChatFormat",
      "name": "Chat Format",
      "since": [
        "2.2-dev31"
      ],
      "deprecated": false,
      "description": [
        "Can be used to modify the chat format.\nThe sender of a message is represented by player.\nThe message is represented by message.\n"
      ],
      "patterns": [
        "[the] (message|chat) format[ting]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the chat format to \"<yellow>%player%<light gray>: <green>%message%\""
      ],
      "events": [
        {
          "id": "chat",
          "name": "On Chat"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "LitNaN",
      "name": "NaN",
      "since": [
        "2.2-dev32d"
      ],
      "deprecated": false,
      "description": [
        "A number representing an undefined value. NaN occurs as a result of illegal math, like dividing 0 by 0.",
        "NaN is deliberately not equal to any other number, including itself."
      ],
      "patterns": [
        "NaN [value]",
        "value of NaN"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} is not {_number}:",
        "if isNaN({_number}) is true:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprTransformReason",
      "name": "Transform Reason",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#transformreason'>transform reason</a> within an entity <a href='#entity transform'>entity transform</a> event."
      ],
      "patterns": [
        "[the] transform[ing] (cause|reason|type)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on entity transform:\n\ttransform reason is infection, drowned or frozen\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "transformreason",
        "name": "Transform Reason"
      }
    },
    {
      "id": "ExprDamage",
      "name": "Damage",
      "since": [
        "1.3.5, 2.8.0 (item damage event)"
      ],
      "deprecated": false,
      "description": [
        "How much damage is done in a entity/vehicle/item damage events.",
        "For entity damage events, possibly ignoring armour, criticals and/or enchantments (remember that in Skript '1' is one full heart, not half a heart).",
        "For items, it's the amount of durability damage the item will be taking."
      ],
      "patterns": [
        "[the] damage"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on item damage:\n\tevent-item is any tool\n\tclear damage # unbreakable tools as the damage will be 0\n",
        "on damage:\n\tincrease the damage by 2\n"
      ],
      "events": [
        {
          "id": "damage",
          "name": "On Damage"
        },
        {
          "id": "vehicle_damage",
          "name": "On Vehicle Damage"
        },
        {
          "id": "item_damage",
          "name": "On Item Damage"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "LitConsole",
      "name": "Console",
      "since": [
        "1.3.1"
      ],
      "deprecated": false,
      "description": [
        "Represents the server's console which can receive messages and execute commands"
      ],
      "patterns": [
        "[the] (console|server)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "execute console command \"/stop\"",
        "send \"message to console\" to the console"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "commandsender",
        "name": "Command Sender"
      }
    },
    {
      "id": "ExprEnchantingExpCost",
      "name": "Enchanting Experience Cost",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The cost of enchanting in an enchant event.\nThis is number that was displayed in the enchantment table, not the actual number of levels removed.\n"
      ],
      "patterns": [
        "[the] [displayed] ([e]xp[erience]|enchanting) cost"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on enchant:\n\tsend \"Cost: %the displayed enchanting cost%\" to player\n"
      ],
      "events": [
        {
          "id": "enchant",
          "name": "On Enchant"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprTamer",
      "name": "Tamer",
      "since": [
        "2.2-dev25"
      ],
      "deprecated": false,
      "description": [
        "The tamer of an entity. Can only be used in entity tame events. You can use 'event-entity' to refer tamed entity itself."
      ],
      "patterns": [
        "[the] tamer"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on tame:\n\tif the tamer is a player:\n\t\tsend \"someone tamed something!\" to console\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "player",
        "name": "Player"
      }
    },
    {
      "id": "ExprBreedingFamily",
      "name": "Breeding Family",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Represents family members within a breeding event."
      ],
      "patterns": [
        "[the] breeding mother",
        "[the] breeding father",
        "[the] [bred] (offspring|child)",
        "[the] breeder"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on breeding:\n\tsend \"When a %breeding mother% and %breeding father% love each other very much, they make a %bred offspring%\" to breeder\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "livingentity",
        "name": "Living Entity"
      }
    },
    {
      "id": "ExprBarterDrops",
      "name": "Barter Drops",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The items dropped by the piglin in a piglin bartering event."
      ],
      "patterns": [
        "[the] [piglin] barter[ing] drops"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on piglin barter:\n\tif the bartering drops contain a jack o lantern:\n\t\tremove jack o lantern from bartering output\n\t\tbroadcast \"it's not halloween yet!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprWorlds",
      "name": "Worlds",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "All worlds of the server, useful for looping."
      ],
      "patterns": [
        "[(all [[of] the]|the)] worlds"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop all worlds:\n\tbroadcast \"You're in %loop-world%\" to loop-world\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "world",
        "name": "World"
      }
    },
    {
      "id": "ExprQuitMessage",
      "name": "Quit Message",
      "since": [
        "1.4.9"
      ],
      "deprecated": false,
      "description": [
        "The message sent to all online players when a player quits the server."
      ],
      "patterns": [
        "[the] (quit|leave|log[ ]out)( |-)message"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on quit:\n\tif {vanish::%player's uuid%} is set:\n\t\tclear the quit message\n\telse:\n\t\tset the quit message to \"%player% left this server... they will be missed!\"\n"
      ],
      "events": [
        {
          "id": "quit",
          "name": "On Quit"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprSourceBlock",
      "name": "Source Block",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The source block in a spread event."
      ],
      "patterns": [
        "[the] source block"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spread:\n\tif the source block is a grass block:\n\t\tset the source block to dirt\n"
      ],
      "events": [
        {
          "id": "spread",
          "name": "On Spread"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprAppliedEnchantments",
      "name": "Applied Enchantments",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The applied enchantments in an enchant event.\nDeleting or removing the applied enchantments will prevent the item's enchantment.\n"
      ],
      "patterns": [
        "[the] applied enchant[ment]s"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on enchant:\n\tset the applied enchantments to sharpness 10 and fire aspect 5\n"
      ],
      "events": [
        {
          "id": "enchant",
          "name": "On Enchant"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "enchantmenttype",
        "name": "Enchantment Type"
      }
    },
    {
      "id": "ExprAllCommands",
      "name": "All Commands",
      "since": [
        "2.6"
      ],
      "deprecated": false,
      "description": [
        "Returns all registered commands or all script commands."
      ],
      "patterns": [
        "[all [[of] the]|the] [registered] [script] commands"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"Number of all commands: %size of all commands%\"",
        "send \"Number of all script commands: %size of all script commands%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprAffectedEntities",
      "name": "Affected Entities",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "The affected entities in the <a href='#aoe_cloud_effect'>area cloud effect</a> event."
      ],
      "patterns": [
        "[the] affected entities"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on area cloud effect:\n\tloop affected entities:\n\t\tif loop-value is a player:\n\t\t\tsend \"WARNING: you've step on an area effect cloud!\" to loop-value\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "livingentity",
        "name": "Living Entity"
      }
    },
    {
      "id": "ExprWhitelist",
      "name": "Whitelist",
      "since": [
        "2.5.2, 2.9.0 (delete)"
      ],
      "deprecated": false,
      "description": [
        "An expression for obtaining and modifying the server's whitelist.",
        "Players may be added and removed from the whitelist.",
        "The whitelist can be enabled or disabled by setting the whitelist to true or false respectively."
      ],
      "patterns": [
        "[the] white[ ]list"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the whitelist to false",
        "add all players to whitelist",
        "reset the whitelist"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "offlineplayer",
        "name": "Offline Player"
      }
    },
    {
      "id": "LitDoubleMinValue",
      "name": "Minimum Double Value",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "A number representing the minimum value of a double number type."
      ],
      "patterns": [
        "[the] min[imum] double value"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if {_number} <= minimum double value:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprExplosionYield",
      "name": "Explosion Yield",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The yield of the explosion in an explosion prime event. This is how big the explosion is.",
        " When changing the yield, values less than 0 will be ignored.",
        " Read <a href='https://minecraft.wiki/w/Explosion'>this wiki page</a> for more information"
      ],
      "patterns": [
        "[the] explosion (yield|radius|size)",
        "[the] (yield|radius|size) of [the] explosion"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on explosion prime:\n\tset the yield of the explosion to 10\n"
      ],
      "events": [
        {
          "id": "explosion_prime",
          "name": "On Explosion Prime"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprAttacker",
      "name": "Attacker",
      "since": [
        "1.3"
      ],
      "deprecated": false,
      "description": [
        "The attacker of a damage event, e.g. when a player attacks a zombie this expression represents the player.\",\nPlease note that the attacker can also be a block, e.g. a cactus or lava, but this expression will not be set in these cases.\n"
      ],
      "patterns": [
        "[the] (attacker|damager)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\tattacker is a player\n\thealth of attacker is less than or equal to 2\n\tdamage victim by 1 heart\n"
      ],
      "events": [
        {
          "id": "damage",
          "name": "On Damage"
        },
        {
          "id": "death",
          "name": "On Death"
        },
        {
          "id": "vehicle_destroy",
          "name": "On Vehicle Destroy"
        },
        {
          "id": "attempt_attack",
          "name": "On Attempt Attack"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprDeathMessage",
      "name": "Death Message",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The message sent to all online players when a player dies."
      ],
      "patterns": [
        "[the] death( |-)message"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on death of player:\n\tset the death message to \"%player% died!\"\n"
      ],
      "events": [
        {
          "id": "death",
          "name": "On Death"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprConfig",
      "name": "Config",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The Skript config.",
        "This can be reloaded, or navigated to retrieve options."
      ],
      "patterns": [
        "[the] [skript] config"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_node} to node \"language\" in the skript config\nif text value of {_node} is \"french\":\n\tbroadcast \"Bonjour!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "config",
        "name": "Config"
      }
    },
    {
      "id": "ExprSentCommands",
      "name": "Sent Command List",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "The commands that will be sent to the player in a <a href='#send_command_list'>send commands to player event</a>.",
        "Modifications will affect what commands show up for the player to tab complete. They will not affect what commands the player can actually run.",
        "Adding new commands to the list is illegal behavior and will be ignored."
      ],
      "patterns": [
        "[the] [sent] [server] command[s] list"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on send command list:\n\tset command list to command list where [input does not contain \":\"]\n\tremove \"help\" from command list\n"
      ],
      "events": [
        {
          "id": "send_command_list",
          "name": "On Send Command List"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprLastSpawnedEntity",
      "name": "Last Spawned Entity",
      "since": [
        "1.3 (spawned entity), 2.0 (shot entity), 2.2-dev26 (dropped item), 2.7 (struck lightning, firework)"
      ],
      "deprecated": false,
      "description": [
        "Holds the entity that was spawned most recently with the spawn effect (section), dropped with the <a href='../effects/#EffDrop'>drop effect</a>, shot with the <a href='../effects/#EffShoot'>shoot effect</a> or created with the <a href='../effects/#EffLightning'>lightning effect</a>. Please note that even though you can spawn multiple mobs simultaneously (e.g. with 'spawn 5 creepers'), only the last spawned mob is saved and can be used. If you spawn an entity, shoot a projectile and drop an item you can however access all them together."
      ],
      "patterns": [
        "[the] [last[ly]] (spawned|shot) %*entity type%",
        "[the] [last[ly]] dropped (item)",
        "[the] [last[ly]] (created|struck) (lightning)",
        "[the] [last[ly]] (launched|deployed) (firework)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "spawn a priest\nset {healer::%spawned priest%} to true\n",
        "shoot an arrow from the last spawned entity\nignite the shot projectile\n",
        "drop a diamond sword\npush last dropped item upwards\n",
        "teleport player to last struck lightning",
        "delete last launched firework"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprTimes",
      "name": "X Times",
      "since": [
        "1.4.6"
      ],
      "deprecated": false,
      "description": [
        "Integers between 1 and X, used in loops to loop X times."
      ],
      "patterns": [
        "%number% time[s]",
        "once",
        "twice",
        "thrice"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop 20 times:\n\tbroadcast \"%21 - loop-number% seconds left..\"\n\twait 1 second\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprWorldFromName",
      "name": "World from Name",
      "since": [
        "2.6.1"
      ],
      "deprecated": false,
      "description": [
        "Returns the world from a string."
      ],
      "patterns": [
        "[the] world [(named|with name)] %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "world named {game::world-name}",
        "the world \"world\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "world",
        "name": "World"
      }
    },
    {
      "id": "ExprAngle",
      "name": "Angle",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Represents the passed number value in degrees.",
        "If radians is specified, converts the passed value to degrees. This conversion may not be entirely accurate, due to floating point precision."
      ],
      "patterns": [
        "%number% [in] deg[ree][s]",
        "%number% [in] rad[ian][s]",
        "%numbers% in deg[ree][s]",
        "%numbers% in rad[ian][s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_angle} to 90 degrees",
        "{_angle} is 90 # true",
        "180 degrees is pi # true",
        "pi radians is 180 degrees # true"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprNumberOfCharacters",
      "name": "Number of Characters",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The number of uppercase, lowercase, or digit characters in a string."
      ],
      "patterns": [
        "number of upper[ ]case char(acters|s) in %text%",
        "number of lower[ ]case char(acters|s) in %text%",
        "number of digit char(acters|s) in %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "#Simple Chat Filter\non chat:\n\tif number of uppercase chars in message / length of message > 0.5\n\t\tcancel event\n\t\tsend \"&lt;red&gt;Your message has to many caps!\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprStringCase",
      "name": "Case Text",
      "since": [
        "2.2-dev16 (lowercase and uppercase), 2.5 (advanced cases)"
      ],
      "deprecated": false,
      "description": [
        "Copy of given text in Lowercase, Uppercase, Proper Case, camelCase, PascalCase, Snake_Case, and Kebab-Case"
      ],
      "patterns": [
        "%texts% in (upper|lower)[ ]case",
        "(upper|lower)[ ]case %texts%",
        "capitali(s|z)ed %texts%",
        "%texts% in [(lenient|strict) ](proper|title)[ ]case",
        "[(lenient|strict) ](proper|title)[ ]case %texts%",
        "%texts% in [(lenient|strict) ]camel[ ]case",
        "[(lenient|strict) ]camel[ ]case %texts%",
        "%texts% in [(lenient|strict) ]pascal[ ]case",
        "[(lenient|strict) ]pascal[ ]case %texts%",
        "%texts% in [(lower|upper|capital|screaming)[ ]]snake[ ]case",
        "[(lower|upper|capital|screaming)[ ]]snake[ ]case %texts%",
        "%texts% in [(lower|upper|capital)[ ]]kebab[ ]case",
        "[(lower|upper|capital)[ ]]kebab[ ]case %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "\"Oops!\" in lowercase # oops!",
        "\"oops!\" in uppercase # OOPS!",
        "\"hellO i'm steve!\" in proper case # HellO I'm Steve!",
        "\"hellO i'm steve!\" in strict proper case # Hello I'm Steve!",
        "\"spAwn neW boSs ()\" in camel case # spAwnNeWBoSs()",
        "\"spAwn neW boSs ()\" in strict camel case # spawnNewBoss()",
        "\"geneRate ranDom numBer ()\" in pascal case # GeneRateRanDomNumBer()",
        "\"geneRate ranDom numBer ()\" in strict pascal case # GenerateRandomNumber()",
        "\"Hello Player!\" in snake case # Hello_Player!",
        "\"Hello Player!\" in lower snake case # hello_player!",
        "\"Hello Player!\" in upper snake case # HELLO_PLAYER!",
        "\"What is your name?\" in kebab case # What-is-your-name?",
        "\"What is your name?\" in lower kebab case # what-is-your-name?",
        "\"What is your name?\" in upper kebab case # WHAT-IS-YOUR-NAME?"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprClicked",
      "name": "Clicked Block/Entity/Inventory/Slot",
      "since": [
        "1.0, 2.2-dev35 (more clickable things)"
      ],
      "deprecated": false,
      "description": [
        "The clicked block, entity, inventory, inventory slot, inventory click type or inventory action."
      ],
      "patterns": [
        "[the] (clicked [enchant[ment]] (button|option)|clicked (block|%*item type/entity type%)|clicked slot|clicked inventory|click (type|action)|inventory action)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message \"You clicked on a %type of clicked entity%!\"\nif the clicked block is a chest:\n\tshow the inventory of the clicked block to the player\n"
      ],
      "events": [
        {
          "id": "click",
          "name": "On Click"
        },
        {
          "id": "inventory_click",
          "name": "On Inventory Click"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprScript",
      "name": "Script",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The current script, or a script from its (file) name.",
        "If the script is enabled or disabled (or reloaded) this reference will become invalid.",
        "Therefore, it is recommended to obtain a script reference <em>when needed</em>."
      ],
      "patterns": [
        "[the] [current] script",
        "[the] script[s] [named] %texts%",
        "[the] scripts in [directory|folder] %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on script load:\n\tbroadcast \"Loaded %the current script%\"\n",
        "on script load:\n\tset {running::%script%} to true\n",
        "on script unload:\n\tset {running::%script%} to false\n",
        "set {script} to the script named \"weather.sk\"",
        "loop the scripts in directory \"quests/\":\n\tenable loop-value\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "script",
        "name": "Script"
      }
    },
    {
      "id": "ExprShooter",
      "name": "Shooter",
      "since": [
        "1.3.7, 2.11 (entity shoot bow event)"
      ],
      "deprecated": false,
      "description": [
        "The shooter of a projectile."
      ],
      "patterns": [
        "[the] shooter [of %projectile%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "shooter is a skeleton"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "livingentity",
        "name": "Living Entity"
      }
    },
    {
      "id": "ExprLoopIteration",
      "name": "Loop Iteration",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Returns the loop's current iteration count (for both normal and while loops)."
      ],
      "patterns": [
        "[the] loop(-| )(counter|iteration)[-%*number%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "while player is online:\n\tgive player 1 stone\n\twait 5 ticks\n\tif loop-counter > 30:\n\t\tstop loop\n",
        "loop {top-balances::*}:\n\tif loop-iteration <= 10:\n\t\tbroadcast \"#%loop-iteration% %loop-index% has $%loop-value%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprRawName",
      "name": "Raw Name",
      "since": [
        "unknown (2.2)"
      ],
      "deprecated": false,
      "description": [
        "The raw Minecraft material name of the given item. Note that this is not guaranteed to give same results on all servers."
      ],
      "patterns": [
        "(raw|minecraft|vanilla) name[s] of %item types%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "raw name of tool of player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprEnchantmentOffer",
      "name": "Enchantment Offer",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The enchantment offer in enchant prepare events."
      ],
      "patterns": [
        "[all [[of] the]|the] enchant[ment] offers",
        "enchant[ment] offer[s] %integers%",
        "[the] %integer%(st|nd|rd|th) enchant[ment] offer"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on enchant prepare:\n\tsend \"Your enchantment offers are: %the enchantment offers%\" to player\n"
      ],
      "events": [
        {
          "id": "enchant_prepare",
          "name": "On Enchant Prepare"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "enchantmentoffer",
        "name": "Enchantment Offer"
      }
    },
    {
      "id": "ExprVectorCylindrical",
      "name": "Vectors - Cylindrical Shape",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Forms a 'cylindrical shaped' vector using yaw to manipulate the current point."
      ],
      "patterns": [
        "[a] [new] cylindrical vector [from|with] [radius] %number%, [yaw] %number%(,[ and]| and) [height] %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop 360 times:\n\tset {_v} to cylindrical vector radius 1, yaw loop-value, height 2\n",
        "set {_v} to cylindrical vector radius 1, yaw 90, height 2"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprVectorSpherical",
      "name": "Vectors - Spherical Shape",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Forms a 'spherical shaped' vector using yaw and pitch to manipulate the current point."
      ],
      "patterns": [
        "[a] [new] spherical vector [(from|with)] [radius] %number%, [yaw] %number%(,[ and]| and) [pitch] %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop 360 times:\n\tset {_v} to spherical vector radius 1, yaw loop-value, pitch loop-value\n",
        "set {_v} to spherical vector radius 1, yaw 45, pitch 90"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprRegion",
      "name": "Region",
      "since": [
        "2.1"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#region'>region</a> involved in an event.",
        "This expression requires a supported regions plugin to be installed."
      ],
      "patterns": [
        "[the] [event-]region"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on region enter:\n\tregion is {forbidden region}\n\tcancel the event\n"
      ],
      "events": null,
      "requirements": [
        "Supported regions plugin"
      ],
      "keywords": null,
      "returns": {
        "id": "region",
        "name": "Region"
      }
    },
    {
      "id": "ExprFishingHookEntity",
      "name": "Fishing Hooked Entity",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the hooked entity in the hooked event."
      ],
      "patterns": [
        "[the] hook[ed] entity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on entity hooked:\n\tif hooked entity is a player:\n\t\tteleport hooked entity to player\n"
      ],
      "events": [
        {
          "id": "fishing",
          "name": "On Fishing"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprExperienceCooldownChangeReason",
      "name": "Experience Cooldown Change Reason",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#experiencechangereason'>experience change reason</a> within an <a href='#experience%20cooldown%20change%20event'>experience cooldown change event</a>."
      ],
      "patterns": [
        "[the] (experience|[e]xp) cooldown change (reason|cause|type)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player experience cooldown change:\n\tif xp cooldown change reason is plugin:\n\t\t#Changed by a plugin\n\telse if xp cooldown change reason is orb pickup:\n\t\t#Changed by picking up xp orb\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "experiencecooldownchangereason",
        "name": "Experience Cooldown Change Reason"
      }
    },
    {
      "id": "ExprSkriptPotionEffect",
      "name": "Created Potion Effect",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "An expression to obtain the potion effect being made in a potion effect creation section."
      ],
      "patterns": [
        "[the] [created] [potion] effect"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_potion} to a potion effect of speed 2 for 10 minutes:\n\thide the effect's icon\n\thide the effect's particles\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprDamageCause",
      "name": "Damage Cause",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#damagecause'>damage cause</a> of a damage event. Please click on the link for more information."
      ],
      "patterns": [
        "[the] damage cause"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "damage cause is lava, fire or burning"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "damagecause",
        "name": "Damage Cause"
      }
    },
    {
      "id": "ExprFishingHook",
      "name": "Fishing Hook",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#entity'>fishing hook</a> in a fishing event."
      ],
      "patterns": [
        "[the] fish[ing] (hook|bobber)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on fish line cast:\n\twait a second\n\tteleport player to fishing hook\n"
      ],
      "events": [
        {
          "id": "fishing",
          "name": "On Fishing"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprQuitReason",
      "name": "Quit Reason",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#quitreason'>quit reason</a> as to why a player disconnected in a <a href='#quit'>quit</a> event."
      ],
      "patterns": [
        "[the] (quit|disconnect) (cause|reason)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on quit:\n\tquit reason was kicked\n\tplayer is banned\n\tclear {server::player::%uuid of player%::*}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "quitreason",
        "name": "Quit Reason"
      }
    },
    {
      "id": "ExprFishingWaitTime",
      "name": "Fishing Wait Time",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the minimum and/or maximum waiting time of the fishing hook. ",
        "Default minimum value is 5 seconds and maximum is 30 seconds, before lure is applied."
      ],
      "patterns": [
        "(min[imum]|max[imum]) fish[ing] wait[ing] time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on fishing line cast:\n\tset min fish waiting time to 10 seconds\n\tset max fishing waiting time to 20 seconds\n"
      ],
      "events": [
        {
          "id": "fishing",
          "name": "On Fishing"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprFishingApproachAngle",
      "name": "Fishing Approach Angle",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the angle at which the fish will approach the fishing hook, after the wait time.",
        "The angle is in degrees, with 0 being positive Z, 90 being negative X, 180 being negative Z, and 270 being positive X.",
        "By default, returns a value between 0 and 360 degrees."
      ],
      "patterns": [
        "(min[imum]|max[imum]) fish[ing] approach[ing] angle"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on fish approach:\n\tif any:\n\t\tmaximum fishing approach angle is bigger than 300.5 degrees\n\t\tmin fishing approach angle is smaller than 59.5 degrees\n\tthen:\n\t\tcancel event\n"
      ],
      "events": [
        {
          "id": "fishing",
          "name": "On Fishing"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprSpawnReason",
      "name": "Spawn Reason",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#spawnreason'>spawn reason</a> in a <a href='#spawn'>spawn</a> event."
      ],
      "patterns": [
        "[the] spawn[ing] reason"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn:\n\tspawn reason is reinforcements or breeding\n\tcancel event\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "spawnreason",
        "name": "Spawn Reason"
      }
    },
    {
      "id": "ExprRespawnReason",
      "name": "Respawn Reason",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#respawnreason'>respawn reason</a> in a <a href='#respawn'>respawn</a> event."
      ],
      "patterns": [
        "[the] respawn[ing] reason"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on respawn:\n\tif respawn reason is end portal:\n\t\tbroadcast \"%player% took the end portal to the overworld!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "respawnreason",
        "name": "Respawn Reason"
      }
    },
    {
      "id": "ExprHealReason",
      "name": "Heal Reason",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#healreason'>heal reason</a> of a <a href='#heal'>heal event</a>."
      ],
      "patterns": [
        "[the] (regen|health regain|heal[ing]) (reason|cause)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on heal:\n\theal reason is satiated\n\tsend \"You ate enough food and gained full health back!\"\n"
      ],
      "events": [
        {
          "id": "heal",
          "name": "On Heal"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "healreason",
        "name": "Heal Reason"
      }
    },
    {
      "id": "ExprCommandSender",
      "name": "Command Sender",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The sender of a command. This differs from the command executor in that this is always the thing that originally triggered/initiated the command. It cannot be changed by commands like \"/execute\". "
      ],
      "patterns": [
        "[the] [command['s]] sender"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "make the command sender execute \"/say hi!\"",
        "on command:\n\tlog \"%sender% used command /%command% %arguments%\" to \"commands.log\"\n"
      ],
      "events": [
        {
          "id": "command",
          "name": "On Command"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "commandsender",
        "name": "Command Sender"
      }
    },
    {
      "id": "ExprLootContext",
      "name": "Loot Context",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The loot context involved in the context create section."
      ],
      "patterns": [
        "[the] loot[ ]context"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_context} to a new loot context at {_location}:\n\tbroadcast loot context\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "lootcontext",
        "name": "Loot Context"
      }
    },
    {
      "id": "ExprItem",
      "name": "Item",
      "since": [
        "unknown (before 2.1)"
      ],
      "deprecated": false,
      "description": [
        "The item involved in an event, e.g. in a drop, dispense, pickup or craft event."
      ],
      "patterns": [
        "[the] item"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on dispense:\n\titem is a clock\n\tset the time to 6:00\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "ExprEgg",
      "name": "The Egg",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The egg thrown in a Player Egg Throw event."
      ],
      "patterns": [
        "[the] [thrown] egg"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "spawn an egg at the egg"
      ],
      "events": [
        {
          "id": "egg_throw",
          "name": "On Egg Throw"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "projectile",
        "name": "Projectile"
      }
    },
    {
      "id": "ExprCreatedDamageSource",
      "name": "Created Damage Source",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Get the created damage source being created/modified in a 'custom damage source' section."
      ],
      "patterns": [
        "[the] created damage source"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_source} to a custom damage source:\n\tset the damage type of the created damage source to magic\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "damagesource",
        "name": "Damage Source"
      }
    },
    {
      "id": "ExprTeleportCause",
      "name": "Teleport Cause",
      "since": [
        "2.2-dev35"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#teleportcause'>teleport cause</a> within a player <a href='#teleport'>teleport</a> event."
      ],
      "patterns": [
        "[the] teleport (cause|reason|type)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on teleport:\n\tteleport cause is nether portal, end portal or end gateway\n\tcancel event\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "teleportcause",
        "name": "Teleport Cause"
      }
    },
    {
      "id": "ExprFishingBiteTime",
      "name": "Fishing Bite Time",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the time it takes a fish to bite the fishing hook, after it started approaching the hook.",
        "May return a timespan of 0 seconds. If modifying the value, it should be at least 1 tick."
      ],
      "patterns": [
        "fish[ing] bit(e|ing) [wait] time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on fish approach:\n\tset fishing bite time to 5 seconds\n"
      ],
      "events": [
        {
          "id": "fishing",
          "name": "On Fishing"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprInventoryAction",
      "name": "Inventory Action",
      "since": [
        "2.2-dev16"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#inventoryaction'>inventory action</a> of an inventory event. Please click on the link for more information."
      ],
      "patterns": [
        "[the] inventory action"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "inventory action is pickup all"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "inventoryaction",
        "name": "Inventory Action"
      }
    },
    {
      "id": "ExprArmorChangeItem",
      "name": "Armor Change Item",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Get the unequipped or equipped armor item from a 'armor change' event."
      ],
      "patterns": [
        "[the] (old|unequipped) armo[u]r item",
        "[the] (new|equipped) armo[u]r item"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on armor change\n\tbroadcast the old armor item\n"
      ],
      "events": [
        {
          "id": "armor_change",
          "name": "On Armor Change"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "ExprExplodedBlocks",
      "name": "Exploded Blocks",
      "since": [
        "2.5, 2.8.6 (modify blocks)"
      ],
      "deprecated": false,
      "description": [
        "Get all the blocks that were destroyed in an explode event. Supports add/remove/set/clear/delete blocks."
      ],
      "patterns": [
        "[the] exploded blocks"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on explode:\n\tloop exploded blocks:\n\t\tadd loop-block to {exploded::blocks::*}\n",
        "on explode:\n\tloop exploded blocks:\n\t\tif loop-block is grass:\n\t\t\tremove loop-block from exploded blocks\n",
        "on explode:\n\tclear exploded blocks\n",
        "on explode:\n\tset exploded blocks to blocks in radius 10 around event-entity\n",
        "on explode:\n\tadd blocks above event-entity to exploded blocks\n"
      ],
      "events": [
        {
          "id": "explode",
          "name": "On Explode"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprIndices",
      "name": "Indices of List",
      "since": [
        "2.4 (indices), 2.6.1 (sorting)"
      ],
      "deprecated": false,
      "description": [
        "Returns all the indices of a list variable, optionally sorted by their values.",
        "To sort the indices, all objects in the list must be comparable;",
        "Otherwise, this expression will just return the unsorted indices."
      ],
      "patterns": [
        "[(the|all [[of] the])] (indexes|indices) of %~objects%",
        "%~objects%'[s] (indexes|indices)",
        "[sorted] (indices|indexes) of %~objects% in (ascending|descending) order",
        "[sorted] %~objects%'[s] (indices|indexes) in (ascending|descending) order"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {l::*} to \"some\", \"cool\" and \"values\"\nbroadcast \"%indices of {l::*}%\" # result is 1, 2 and 3\", \"\nset {_leader-board::first} to 17\nset {_leader-board::third} to 30\nset {_leader-board::second} to 25\nset {_leader-board::fourth} to 42\nset {_ascending-indices::*} to sorted indices of {_leader-board::*} in ascending order\nbroadcast \"%{_ascending-indices::*}%\" #result is first, second, third, fourth\nset {_descending-indices::*} to sorted indices of {_leader-board::*} in descending order\nbroadcast \"%{_descending-indices::*}%\" #result is fourth, third, second, first\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprTargetedBlock",
      "name": "Targeted Block",
      "since": [
        "1.0, 2.9.0 (actual/exact)"
      ],
      "deprecated": false,
      "description": [
        "The block at the crosshair. This regards all blocks that are not air as fully solid, e.g. torches will be like a solid stone block for this expression.",
        "The actual target block will regard the actual hit box of the block."
      ],
      "patterns": [
        "[the] [(actual[ly]|exact)] target[ed] block[s] [of %living entities%]",
        "%living entities%'[s] [(actual[ly]|exact)] target[ed] block[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set target block of player to stone",
        "set target block of player to oak_stairs[waterlogged=true]",
        "break target block of player using player's tool",
        "give player 1 of type of target block",
        "teleport player to location above target block",
        "kill all entities in radius 3 around target block of player",
        "set {_block} to actual target block of player",
        "break actual target block of player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprDequeuedQueue",
      "name": "De-queue Queue (Experimental)",
      "since": [
        "2.10 (experimental)"
      ],
      "deprecated": false,
      "description": [
        "Requires the <code>using queues</code> experimental feature flag to be enabled.\n\nUnrolls a queue into a regular list of values, which can be stored in a list variable.\nThe order of the list will be the same as the order of the elements in the queue.\nIf a list variable is set to this, it will use numerical indices.\nThe original queue will not be changed."
      ],
      "patterns": [
        "(de|un)queued %queue%",
        "unrolled %queue%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {queue} to a new queue\nadd \"hello\" and \"there\" to {queue}\nset {list::*} to dequeued {queue}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprItemCompCopy",
      "name": "Item Component - Copy",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Grab a copy of an item component of an item. Any changes made to the copy will not be present on the item."
      ],
      "patterns": [
        "[the|a[n]] [item] component copy of %item components%",
        "[the] [item] component copies of %item components%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_component} to the item component copy of (the equippable component of {_item})"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "itemcomponent",
        "name": "Item Component"
      }
    },
    {
      "id": "ExprFilter",
      "name": "Filter",
      "since": [
        "2.2-dev36, 2.10 (parenthesis pattern)"
      ],
      "deprecated": false,
      "description": [
        "Filters a list based on a condition. ",
        "For example, if you ran 'broadcast \"something\" and \"something else\" where [string input is \"something\"]', ",
        "only \"something\" would be broadcast as it is the only string that matched the condition."
      ],
      "patterns": [
        "%objects% (where|that match) \\[<.+>\\]",
        "%objects% (where|that match) \\(<.+>\\)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"congrats on being staff!\" to all players where [player input has permission \"staff\"]",
        "loop (all blocks in radius 5 of player) where [block input is not air]:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprBrewingSlot",
      "name": "Brewing Stand Slot",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "A slot of a brewing stand, i.e. the first, second, or third bottle slot, the fuel slot or the ingredient slot."
      ],
      "patterns": [
        "[the] [brewing stand['s]] (first|1st) bottle slot[s] [of %blocks%]",
        "%blocks%'[s] [brewing stand['s]] (first|1st) bottle slot[s]",
        "[the] [brewing stand['s]] (second|2nd) bottle slot[s] [of %blocks%]",
        "%blocks%'[s] [brewing stand['s]] (second|2nd) bottle slot[s]",
        "[the] [brewing stand['s]] (third|3rd) bottle slot[s] [of %blocks%]",
        "%blocks%'[s] [brewing stand['s]] (third|3rd) bottle slot[s]",
        "[the] brewing [stand] ingredient slot[s] [of %blocks%]",
        "%blocks%'[s] brewing [stand] ingredient slot[s]",
        "[the] brewing [stand] fuel slot[s] [of %blocks%]",
        "%blocks%'[s] brewing [stand] fuel slot[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the 1st bottle slot of {_block} to potion of water",
        "clear the brewing stand second bottle slot of {_block}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "slot",
        "name": "Slot"
      }
    },
    {
      "id": "ExprAlphabetList",
      "name": "Alphabetical Sort",
      "since": [
        "2.2-dev18b, 2.14 (retain indices when looping)"
      ],
      "deprecated": false,
      "description": [
        "Sorts given strings in alphabetical order."
      ],
      "patterns": [
        "alphabetically sorted %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_list::*} to alphabetically sorted {_strings::*}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprShuffledList",
      "name": "Shuffled List",
      "since": [
        "2.2-dev32, 2.14 (retain indices when looping)"
      ],
      "deprecated": false,
      "description": [
        "Shuffles given list randomly."
      ],
      "patterns": [
        "shuffled %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_list::*} to shuffled {_list::*}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprKeyed",
      "name": "Keyed",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "This expression is used to explicitly pass the keys of an expression alongside its values.",
        "For example, when setting a list variable or passing an expression to a function."
      ],
      "patterns": [
        "(keyed|indexed) %~objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_first::foo} to \"value1\"\nset {_first::bar} to \"value2\"\nset {_second::*} to keyed {_first::*}\n# {_second::foo} is \"value1\" and {_second::bar} is \"value2\"\n",
        "function indices(objects: objects) returns strings:\n\treturn indices of {_objects::*}\n\non load:\n\tset {_list::foo} to \"value1\"\n\tset {_list::bar} to \"value2\"\n\tset {_list::baz} to \"value3\"\n\n\tbroadcast indices({_list::*}) # \"1\", \"2\", \"3\"\n\tbroadcast indices(keyed {_list::*}) # \"foo\", \"bar\", \"baz\"\n",
        "function plusOne(numbers: numbers) returns numbers:\n\tloop {_numbers::*}:\n\t\tset {_numbers::%loop-index%} to loop-value + 1\n\treturn {_numbers::*}\n\non load:\n\tset {_numbers::foo} to 1\n\tset {_numbers::bar} to 2\n\tset {_numbers::baz} to 3\n\n\tset {_result::*} to keyed plusOne(keyed {_numbers::*})\n\t# {_result::foo} is 2, {_result::bar} is 3, {_result::baz} is 4\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "indexed"
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprBannerItem",
      "name": "Banner Pattern Item",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Gets the item from a banner pattern type.",
        "Note that not all banner pattern types have an item."
      ],
      "patterns": [
        "[a[n]] %*banner pattern types% item[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_item} to creeper charged banner pattern item",
        "set {_item} to snout banner pattern item",
        "set {_item} to thing banner pattern item"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprHash",
      "name": "Hash",
      "since": [
        "2.0, 2.2-dev32 (SHA-256 algorithm), 2.12 (SHA-384, SHA-512)"
      ],
      "deprecated": false,
      "description": [
        "Hashes the given text using the MD5 or SHA algorithms. Each algorithm is suitable for different use cases.",
        "These hashing algorithms are not suitable for hashing passwords.",
        "If handling passwords, use a <a href='https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html#password-hashing-algorithms'>hashing algorithm specifically designed for passwords</a>.",
        "MD5 is deprecated and may be removed in a future release. It is provided mostly for backwards compatibility, as it is outdated and not secure. ",
        "SHA is more secure, but is not suitable for hashing passwords (even with salting). ",
        "When hashing data, you <strong>must</strong> specify algorithms that will be used for security reasons! ",
        "Please note that a hash cannot be reversed under normal circumstances. You will not be able to get original value from a hash with Skript."
      ],
      "patterns": [
        "%texts% hash[ed] with ((MD5|SHA-256|SHA-384|SHA-512))"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_hash} to \"hello world\" hashed with SHA-256"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprLastInteractionDate",
      "name": "Last Interaction Date",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Returns the date of the last attack (left click), or interaction (right click) on an interaction entity\nUsing 'clicked on' will return the latest attack or interaction, whichever was more recent.\n"
      ],
      "patterns": [
        "[the] last (date|time)[s] [that|when] %entities% (were|was) (attacked|interacted with|clicked [on])"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the last time {_interaction} was clicked < 5 seconds ago"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "date",
        "name": "Date"
      }
    },
    {
      "id": "ExprQueue",
      "name": "Queue (Experimental)",
      "since": [
        "2.10 (experimental)"
      ],
      "deprecated": false,
      "description": [
        "Requires the <code>using queues</code> experimental feature flag to be enabled.\n\nCreates a new queue.\nA queue is a set of elements that can have things removed from the start and added to the end.\n\nAny value can be added to a queue. Adding a non-existent value (e.g. `{variable that isn't set}`) will have no effect.\nThis means that removing an element from the queue will always return a value <i>unless the queue is empty</i>.\n\nRequesting an element from a queue (e.g. `the 1st element of {queue}`) also removes it from the queue."
      ],
      "patterns": [
        "[a] [new] queue [(of|with) %objects%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {queue} to a new queue\nadd \"hello\" and \"there\" to {queue}\nbroadcast the first element of {queue} # hello\nbroadcast the first element of {queue} # there\n# queue is now empty\n",
        "set {queue} to a new queue of \"hello\" and \"there\"\nbroadcast the last element of {queue} # removes 'there'\nadd \"world\" to {queue}\nbroadcast the first 2 elements of {queue} # removes 'hello', 'world'\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "queue",
        "name": "Queue"
      }
    },
    {
      "id": "ExprReversedList",
      "name": "Reversed List",
      "since": [
        "2.4, 2.14 (retain indices when looping)"
      ],
      "deprecated": false,
      "description": [
        "Reverses given list."
      ],
      "patterns": [
        "reversed %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_list::*} to reversed {_list::*}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprGameEffectWithData",
      "name": "Game Effects with Data",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Creates game effects that require some extra information, such as colors, particle counts, or block data.\nGame effects consist of combinations particles and/or sounds that are used in Minecraft, such as the bone meal particles, the sound of footsteps on a specific block, or the particles and sound of breaking a splash potion.\nGame effects not present here do not require data and can be found in the Game Effect type.\nData requirements vary from version to version, so these docs are only accurate for the most recent Minecraft version at time of release.\n"
      ],
      "patterns": [
        "[record] song (of|using) %item type%",
        "[dispenser] black smoke effect [(in|with|using) [the] direction] %direction%",
        "[dispenser] white smoke effect [(in|with|using) [the] direction] %direction%",
        "%item type/block data% [foot]step[s] sound [effect]",
        "%item type/block data% (break|destroy) effect",
        "%item type/block data% (break|destroy) effect with sound",
        "destroy progress effect on the %direction% [side|face]",
        "destroy progress effect on the %direction% [side|face] with sound",
        "%color% [splash] potion break effect",
        "%color% instant [splash] potion break effect",
        "compost[er] [fill[ing]] (succe(ss|ed)|fail[ure|ed]) sound [effect]",
        "villager plant grow[th] effect [(with|using) %number% particles]",
        "[fake] bone meal effect [(with|using) %number% particles]",
        "(electric|lightning[ rod]|copper) spark effect [(in|using|along) the (x|y|z) axis]",
        "sculk (charge|spread) effect [(with|using) data %integer%]",
        "ender dragon egg teleport[ing] [to %vector%] effect",
        "shulker teleport[ing] [to %vector%] effect",
        "consumable teleport[ing] [to %vector%] effect",
        "enderman teleport[ing] [to %vector%] effect",
        "[finish] brush[ing] %item type/block data% effect",
        "trial spawner detect[ing|s] [%number%] player[s] effect",
        "ominous trial spawner detect[ing|s] [%number%] player[s] effect",
        "[ominous] trial spawner spawn[ing] [mob] effect",
        "[ominous] trial spawner spawn[ing] [mob] effect with sound",
        "bee growth effect [(with|using) %number% particles]",
        "[ominous] [trial] vault activate effect",
        "[ominous] [trial] vault deactivate effect",
        "trial spawner become[ing] [not] ominous effect",
        "[ominous] trial spawner spawn[ing] item effect",
        "place turtle egg effect [(with|using) %number% particles]",
        "[mace] smash attack effect [(with|using) %number% particles]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "play compost success sound effect to player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "gameeffect",
        "name": "Game Effect"
      }
    },
    {
      "id": "ExprCommandInfo",
      "name": "Command Info",
      "since": [
        "2.6"
      ],
      "deprecated": false,
      "description": [
        "Get information about a command."
      ],
      "patterns": [
        "[the] main command [label|name] [of [[the] command[s]] %texts%]",
        "command[s] %texts%'[s] main command [label|name]",
        "[the] description [of [[the] command[s]] %texts%]",
        "command[s] %texts%'[s] description",
        "[the] label [of [[the] command[s]] %texts%]",
        "command[s] %texts%'[s] label",
        "[the] usage [of [[the] command[s]] %texts%]",
        "command[s] %texts%'[s] usage",
        "[all [[of] the]|the] aliases [of [[the] command[s]] %texts%]",
        "command[s] %texts%'[s] aliases",
        "[the] permission [of [[the] command[s]] %texts%]",
        "command[s] %texts%'[s] permission",
        "[the] permission message [of [[the] command[s]] %texts%]",
        "command[s] %texts%'[s] permission message",
        "[the] plugin [owner] [of [[the] command[s]] %texts%]",
        "command[s] %texts%'[s] plugin [owner]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "main command label of command \"skript\"",
        "description of command \"help\"",
        "label of command \"pl\"",
        "usage of command \"help\"",
        "aliases of command \"bukkit:help\"",
        "permission of command \"/op\"",
        "command \"sk\"'s plugin owner",
        "command /greet <player>:\n\tusage: /greet <target>\n\ttrigger:\n\t\tif arg-1 is sender:\n\t\t\tsend \"&cYou can't greet yourself! Usage: %the usage%\"\n\t\t\tstop\n\t\tsend \"%sender% greets you!\" to arg-1\n\t\tsend \"You greeted %arg-1%!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprSecDamageSource",
      "name": "Damage Source",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Create a custom damage source and change the attributes.",
        "When setting a 'causing entity' you must also set a 'direct entity'.",
        "Attributes of a damage source cannot be changed once created, only while within the 'custom damage source' section."
      ],
      "patterns": [
        "[a] custom damage source [(with|using) [the|a] [damage type [of]] %damage type%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_source} to a custom damage source:\n\tset the damage type to magic\n\tset the causing entity to {_player}\n\tset the direct entity to {_arrow}\n\tset the damage location to location(0, 0, 10)\ndamage all players by 5 using {_source}\n",
        "on damage:\n\tif the damage type of event-damage source is magic:\n\t\tset the damage to damage * 2\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "damagesource",
        "name": "Damage Source"
      }
    },
    {
      "id": "ExprVectorNormalize",
      "name": "Vectors - Normalized",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Returns the same vector but with length 1."
      ],
      "patterns": [
        "normali(z|s)e[d] %vector%",
        "%vector% normali(z|s)ed"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_v} to normalized {_v}",
        "set {_v} to normalised {_u}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprBossBarFromKey",
      "name": "Boss Bar From Key",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Obtains a keyed boss bar from the specified key."
      ],
      "patterns": [
        "[the] boss[ ]bar[s] (from|with) [the] (id|key)[s] %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_bar} to a keyed red boss bar with key \"example\":\n    set title of event-bossbar to \"My Test Title\"\n    set color of event-bossbar to red\n    set progress of event-bossbar to 86%\n    set style of event-bossbar to 6 notches\n\n// some structure later on and you need to access it\nset the title of the boss bar with the key \"example\" to \"My Updated Test Title\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "bossbar",
        "name": "BossBar"
      }
    },
    {
      "id": "ExprTag",
      "name": "Tag",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Represents a tag which can be used to classify items, blocks, or entities.",
        "Tags are composed of a value and an optional namespace: \"minecraft:oak_logs\".",
        "If you omit the namespace, one will be provided for you, depending on what kind of tag you're using. For example, `tag \"doors\"` will be the tag \"minecraft:doors\", while `paper tag \"doors\"` will be \"paper:doors\".",
        "`minecraft tag` will search through the vanilla tags, `datapack tag` will search for datapack-provided tags (a namespace is required here!), `paper tag` will search for Paper's custom tags if you are running Paper, and `custom tag` will look in the \"skript\" namespace for custom tags you've registered.",
        "You can also filter by tag types using \"item\", \"block\", or \"entity\"."
      ],
      "patterns": [
        "[minecraft|datapack|paper|(custom|skript)] [item|block|entity [type]] tag %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "minecraft tag \"dirt\" # minecraft:dirt",
        "paper tag \"doors\" # paper:doors",
        "tag \"skript:custom_dirt\" # skript:custom_dirt",
        "custom tag \"dirt\" # skript:dirt",
        "datapack block tag \"dirt\" # minecraft:dirt",
        "datapack tag \"my_pack:custom_dirt\" # my_pack:custom_dirt",
        "tag \"minecraft:mineable/pickaxe\" # minecraft:mineable/pickaxe",
        "custom item tag \"blood_magic_sk/can_sacrifice_with\" # skript:blood_magic_sk/can_sacrifice_with"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "blocks",
        "minecraft tag",
        "type",
        "category"
      ],
      "returns": {
        "id": "minecrafttag",
        "name": "Minecraft Tag"
      }
    },
    {
      "id": "ExprRawString",
      "name": "Raw String",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Returns the string without formatting (colors, decorations, etc.) and without stripping them from it.",
        "For example, <code>raw \"&aHello There!\"</code> would output <code>&aHello There!</code>"
      ],
      "patterns": [
        "raw %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send raw \"&aThis text is unformatted!\" to all players"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprLootTableFromString",
      "name": "Loot Table from Key",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the loot table from a namespaced key."
      ],
      "patterns": [
        "[the] loot[ ]table[s] %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_table} to loot table \"minecraft:chests/simple_dungeon\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "loottable",
        "name": "Loot Table"
      }
    },
    {
      "id": "ExprCommandSuggestions",
      "name": "Script Command Suggestions",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "Usable in a script command's \"suggestions\" entry.\nAllows modifying the suggestions displayed while a command is being typed.\n"
      ],
      "patterns": [
        "[the] [command] (suggestions|tab completions) (of|for) %objects%",
        "%objects%'[s] [command] (suggestions|tab completions)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /menu <text> <text>:\n\tsuggestions:\n\t\tif arg-1 is not set:\n\t\t\tset arg-1's suggestions to \"Appetizers\", \"Entrees\", and \"Desserts\"\n\t\telse if arg-1 is \"Appetizers\":\n\t\t\tset arg-2's suggestions to \"Salads\", \"Breads\", and \"Fried Delights\"\n\t\telse if arg-1 is \"Entrees\":\n\t\t\tset arg-2's suggestions to \"Pastas\", \"Handhelds\", and \"Pizzas\"\n\t\telse if arg-1 is \"Desserts\":\n\t\t\tset arg-2's suggestions to \"Cakes\", \"Ice Creams\", and \"Pies\"\n\ttrigger:\n\t\tsend \"Yum!\"\n",
        "command /home:\n\tsubcommand set <name: text>:\n\t\ttrigger:\n\t\t\tset {homes::%player%::%{_name}%} to the player's location\n\tsubcommand <name: text>:\n\t\tsuggestions:\n\t\t\tloop {homes::%player%::*}:\n\t\t\t\tadd formatted \"<ttp:'Location: %loop-value%'>%loop-index%\" to the suggestions for the text argument\n\t\ttrigger:\n\t\t\tteleport the player to {homes::%player%::%{_name}%}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprInverse",
      "name": "Inverse Boolean",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "An expression to obtain the inverse value of a boolean"
      ],
      "patterns": [
        "[the] (inverse|opposite)[s] of %booleans (yes/no)%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_gravity} to inverse of player's flight mode"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "boolean",
        "name": "Boolean"
      }
    },
    {
      "id": "ExprItems",
      "name": "Items",
      "since": [
        "1.0 pre-5"
      ],
      "deprecated": false,
      "description": [
        "Items or blocks of a specific type, useful for looping."
      ],
      "patterns": [
        "[all [[of] the]|the] block[[ ]type]s",
        "every block[[ ]type]",
        "[all [[of] the]|the|every] block[s] of type[s] %item types%",
        "[all [[of] the]|the|every] item[s] of type[s] %item types%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop tag values of tag \"diamond_ores\" and tag values of tag \"oak_logs\":\n\tblock contains loop-item\n\tmessage \"Theres at least one %loop-item% in this block\"\n",
        "drop all blocks at the player # drops one of every block at the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprTagsOf",
      "name": "Tags of X",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns all the tags of an item, block, or entity.",
        "`minecraft tag` will return only the vanilla tags, `datapack tag` will return only datapack-provided tags, `paper tag` will return only Paper's custom tags (if you are running Paper), and `custom tag` will look in the \"skript\" namespace for custom tags you've registered.",
        "You can also filter by tag types using \"item\", \"block\", or \"entity\"."
      ],
      "patterns": [
        "[all [[of] the]|the] [minecraft|datapack|paper|(custom|skript)] [item|block|entity [type]] tags of %item type/entity/entity type%",
        "%item type/entity/entity type%'[s] [minecraft|datapack|paper|(custom|skript)] [item|block|entity [type]] tags"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast minecraft tags of dirt",
        "send true if paper item tags of target block contains paper tag \"doors\"",
        "broadcast the block tags of player's tool"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "blocks",
        "minecraft tag",
        "type",
        "category"
      ],
      "returns": {
        "id": "minecrafttag",
        "name": "Minecraft Tag"
      }
    },
    {
      "id": "ExprRecursive",
      "name": "Recursive",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Returns all values of an expression, including those in nested structures such as lists of lists."
      ],
      "patterns": [
        "recursive %~objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on load:\n\tset {_data::a::b::c} to \"value1\"\n\tset {_data::a::b::d} to \"value2\"\n\tset {_data::a::e} to \"value3\"\n\tset {_data::f} to \"value4\"\n\n\tbroadcast recursive {_data::*}\n\t# broadcasts \"value1\", \"value2\", \"value3\", \"value4\"\n\n\tbroadcast recursive indices of {_data::*}\n\t# broadcasts \"a::b::c\", \"a::b::d\", \"a::e\", \"f\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "deep",
        "nested"
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprPlain",
      "name": "Plain Item",
      "since": [
        "2.6"
      ],
      "deprecated": false,
      "description": [
        "A plain item is an item with no modifications. It can be used to convert items to their default state or to match with other default items."
      ],
      "patterns": [
        "[a[n]] (plain|unmodified) %item type%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the player's tool is a plain diamond: # check if player's tool has no modifications\n\tsend \"You are holding a plain diamond!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprLastInteractionPlayer",
      "name": "Last Interaction Player",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Returns the last player to attack (left click), or interact (right click) with an interaction entity.\nIf 'click on' or 'clicked on' are used, this will return the last player to either attack or interact with the entity whichever was most recent.\n"
      ],
      "patterns": [
        "[the] last player[s] to (attack|interact with|click [on]) %entities%",
        "[the] last player[s] (who|that) (attacked|interacted with|clicked [on]) %entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "kill the last player that attacked the last spawned interaction",
        "feed the last player who interacted with {_i}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "offlineplayer",
        "name": "Offline Player"
      }
    },
    {
      "id": "ExprInput",
      "name": "Input",
      "since": [
        "2.2-dev36, 2.9.0 (input index)"
      ],
      "deprecated": false,
      "description": [
        "Represents the input in a filter expression or sort effect.",
        "For example, if you ran 'broadcast \"something\" and \"something else\" where [input is \"something\"]",
        "the condition would be checked twice, using \"something\" and \"something else\" as the inputs.",
        "The 'input index' pattern can be used when acting on a variable to access the index of the input."
      ],
      "patterns": [
        "input",
        "%*type% input",
        "input index"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"congrats on being staff!\" to all players where [input has permission \"staff\"]",
        "sort {_list::*} based on length of input index"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprBlocksInRegion",
      "name": "Blocks in Region",
      "since": [
        "2.1"
      ],
      "deprecated": false,
      "description": [
        "All blocks in a <a href='#region'>region</a>.",
        "This expression requires a supported regions plugin to be installed."
      ],
      "patterns": [
        "[(all|the)] blocks (in|of) [[the] region[s]] %regions%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop all blocks in the region {arena.%{faction.%player%}%}:\n\tclear the loop-block\n"
      ],
      "events": null,
      "requirements": [
        "Supported regions plugin"
      ],
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprVectorAngleBetween",
      "name": "Vectors - Angle Between",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Gets the angle between two vectors."
      ],
      "patterns": [
        "[the] angle between [[the] vectors] %vector% and %vector%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"%the angle between vector 1, 0, 0 and vector 0, 1, 1%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprDefaultValue",
      "name": "Default Value",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "A shorthand expression for giving things a default value. If the first thing isn't set, the second thing will be returned."
      ],
      "patterns": [
        "%objects% (otherwise|?) %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast {score::%player's uuid%} otherwise \"%player% has no score!\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprDirection",
      "name": "Direction",
      "since": [
        "1.0 (basic), 2.0 (extended)"
      ],
      "deprecated": false,
      "description": [
        "A helper expression for the <a href='#direction'>direction type</a>."
      ],
      "patterns": [
        "[%number% [(block|met(er|re))[s]] [to the]] (north[[(-| )](east|west)][(ward[(s|ly)]|er[(n|ly)])] [of]|south[[(-| )](east|west)][(ward[(s|ly)]|er[(n|ly)])] [of]|(east|west)[(ward[(s|ly)]|er[(n|ly)])] [of]|above|over|(up|down)[ward[(s|ly)]]|below|under[neath]|beneath) [%direction%]",
        "[%number% [(block|met(er|re))[s]]] in [the] (direction|horizontal direction|facing|horizontal facing) of %entity/block% [(of|from)]",
        "[%number% [(block|met(er|re))[s]]] in %entity/block%'[s] (direction|horizontal direction|facing|horizontal facing) [(of|from)]",
        "[%number% [(block|met(er|re))[s]]] (in[ ]front [of]|forward[s]|behind|backwards|[to the] (right|left) [of])",
        "[%number% [(block|met(er|re))[s]]] horizontal[ly] (in[ ]front [of]|forward[s]|behind|backwards|to the (right|left) [of])"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "thrust the player upwards",
        "set the block behind the player to water",
        "loop blocks above the player:\n\tset {_rand} to a random integer between 1 and 10\n\tset the block {_rand} meters south east of the loop-block to stone\n",
        "block in horizontal facing of the clicked entity from the player is air",
        "spawn a creeper 1.5 meters horizontally behind the player",
        "spawn a TNT 5 meters above and 2 meters horizontally behind the player",
        "thrust the last spawned TNT in the horizontal direction of the player with speed 0.2",
        "push the player upwards and horizontally forward at speed 0.5",
        "push the clicked entity in in the direction of the player at speed -0.5",
        "open the inventory of the block 2 blocks below the player to the player",
        "teleport the clicked entity behind the player",
        "grow a regular tree 2 meters horizontally behind the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "direction",
        "name": "Direction"
      }
    },
    {
      "id": "ExprEntitySound",
      "name": "Entity Sound",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Gets the sound that a given entity will make in a specific scenario."
      ],
      "patterns": [
        "[the] (damage|hurt) sound[s] of %living entities%",
        "%living entities%'[s] (damage|hurt) sound[s]",
        "[the] death sound[s] of %living entities%",
        "%living entities%'[s] death sound[s]",
        "[the] [(tall|high)|(low|normal)] fall damage sound[s] [from [[a] height [of]] %number%] of %living entities%",
        "%living entities%'[s] [(tall|high)|(low|normal)] fall [damage] sound[s] [from [[a] height [of]] %number%]",
        "[the] swim[ming] sound[s] of %living entities%",
        "%living entities%'[s] swim[ming] sound[s]",
        "[the] [(fast|speedy)] splash sound[s] of %living entities%",
        "%living entities%'[s] [(fast|speedy)] splash sound[s]",
        "[the] eat[ing] sound[s] of %living entities% [(with|using|[while] eating [a]) %item type%]",
        "%living entities%'[s] eat[ing] sound[s]",
        "[the] drink[ing] sound[s] of %living entities% [(with|using|[while] drinking [a]) %item type%]",
        "%living entities%'[s] drink[ing] sound[s]",
        "[the] ambient sound[s] of %living entities%",
        "%living entities%'[s] ambient sound[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "play sound (hurt sound of player) at player",
        "set {_sounds::*} to death sounds of (all mobs in radius 10 of player)"
      ],
      "events": null,
      "requirements": [
        "Spigot 1.19.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprParticleWithOffset",
      "name": "Particle with Offset/Distribution/Velocity",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Applies a specific offset to a particle.\nOffsets are treated as distributions if particle count is greater than 0.\nOffsets are treated as velocity or some other special behavior if particle count is 0.\nSetting distribution/velocity with this method may change the particle count to 1/0 respectively.\n\nMore detailed information on particle behavior can be found at <a href=\"https://docs.papermc.io/paper/dev/particles/#count-argument-behavior\">Paper's particle documentation</a>.\n"
      ],
      "patterns": [
        "%particles% with [an] offset [of] %vector%",
        "%particles% with [a] distribution [of] %vector%",
        "%directional particles% with [a] velocity [of] %vector%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "draw an electric spark particle with a velocity of vector(1,2,3) at player",
        "draw 12 red dust particles with a distribution of vector(1,2,1) at player's head location"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "particle",
        "name": "Particle"
      }
    },
    {
      "id": "ExprMidpoint",
      "name": "Midpoint",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Get the midpoint between two vectors or two locations in the same world."
      ],
      "patterns": [
        "[the] mid[-]point (of|between) %location/vector% and %location/vector%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_center} to the midpoint between location(0, 0, 0) and location(10, 10, 10)\nset {_centerBlock} to the block at {_center}\n",
        "set {_midpoint} to the mid-point of vector(20, 10, 5) and vector(3, 6, 9)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprResolvedComponent",
      "name": "Resolve Text Component",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Resolves a component with the context of a command sender or other entity.\nCertain kinds of components, such as NBT components, Score components, and Selector components, are required to be resolved to display a proper output.\nNote that the option to bypass required permissions only applies for players.\n"
      ],
      "patterns": [
        "%text components% resolved for %command sender% [(bypassing|ignoring) required permissions]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send formatted \"Hello <selector:@e[limit=5]>, I'm <selector:@s>!\" resolved for player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprBlockSphere",
      "name": "Block Sphere",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "All blocks in a sphere around a center, mostly useful for looping."
      ],
      "patterns": [
        "[(all [[of] the]|the)] blocks in radius %number% [(of|around) %location%]",
        "[(all [[of] the]|the)] blocks around %location% in radius %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop blocks in radius 5 around the player:\n\tset loop-block to air\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprEntityAttribute",
      "name": "Entity Attribute",
      "since": [
        "2.5, 2.6.1 (final attribute value)"
      ],
      "deprecated": false,
      "description": [
        "The numerical value of an entity's particular attribute.",
        "Note that the movement speed attribute cannot be reliably used for players. For that purpose, use the speed expression instead.",
        "Resetting an entity's attribute is only available in Minecraft 1.11 and above."
      ],
      "patterns": [
        "[the] %attribute type% [((total|final|modified))] attribute [value] of %entities%",
        "%entities%'[s] %attribute type% [((total|final|modified))] attribute [value]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage of player:\n\tsend \"You are wounded!\" to victim\n\tset victim's attack speed attribute to 2\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprDateAgoLater",
      "name": "Date Ago/Later",
      "since": [
        "2.2-dev33"
      ],
      "deprecated": false,
      "description": [
        "A date the specified timespan before/after another date."
      ],
      "patterns": [
        "%time span% (ago|in the past|before [the] [date] %date%)",
        "%time span% (later|(from|after) [the] [date] %date%)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_yesterday} to 1 day ago",
        "set {_hourAfter} to 1 hour after {someOtherDate}",
        "set {_hoursBefore} to 5 hours before {someOtherDate}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "date",
        "name": "Date"
      }
    },
    {
      "id": "ExprJoinSplit",
      "name": "Join & Split",
      "since": [
        "2.1, 2.5.2 (regex support), 2.7 (case sensitivity), 2.10 (without trailing string)"
      ],
      "deprecated": false,
      "description": [
        "Joins several texts with a common delimiter (e.g. \", \"), or splits a text into multiple texts at a given delimiter."
      ],
      "patterns": [
        "(concat[enate]|join) %texts% [(with|using|by) [[the] delimiter] %text%]",
        "split %text% (at|using|by) [[the] delimiter] %text% [with case sensitivity] [without [the] trailing [empty] (string|text)]",
        "%text% split (at|using|by) [[the] delimiter] %text% [with case sensitivity] [without [the] trailing [empty] (string|text)]",
        "regex split %text% (at|using|by) [[the] delimiter] %text% [without [the] trailing [empty] (string|text)]",
        "regex %text% split (at|using|by) [[the] delimiter] %text% [without [the] trailing [empty] (string|text)]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message \"Online players: %join all players' names with \"\" | \"\"%\" # %all players% would use the default \"x, y, and z\"",
        "set {_s::*} to the string argument split at \",\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprGameRule",
      "name": "Gamerule Value",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The gamerule value of a world."
      ],
      "patterns": [
        "[the] gamerule %gamerule% of %worlds%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the gamerule commandBlockOutput of world \"world\" to false"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "gamerulevalue",
        "name": "Gamerule Value"
      }
    },
    {
      "id": "ExprDifference",
      "name": "Difference",
      "since": [
        "1.4"
      ],
      "deprecated": false,
      "description": [
        "The difference between two values",
        "Supported types include <a href='#number'>numbers</a>, <a href='./classes/#date'>dates</a> and <a href='./classes/#time'>times</a>."
      ],
      "patterns": [
        "difference (between|of) %object% and %object%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if difference between {command::%player%::lastuse} and now is smaller than a minute:\n\tmessage \"You have to wait a minute before using this command again!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprInventorySlot",
      "name": "Inventory Slot",
      "since": [
        "2.2-dev24"
      ],
      "deprecated": false,
      "description": [
        "Represents a slot in an inventory. It can be used to change the item in an inventory too."
      ],
      "patterns": [
        "[the] slot[s] %numbers% of %inventory%",
        "%inventory%'[s] slot[s] %numbers%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if slot 0 of player is air:\n\tset slot 0 of player to 2 stones\n\tremove 1 stone from slot 0 of player\n\tadd 2 stones to slot 0 of player\n\tclear slot 1 of player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "slot",
        "name": "Slot"
      }
    },
    {
      "id": "ExprResult",
      "name": "Result",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Runs something (like a function) and returns its result.",
        "If the thing is expected to return multiple values, use 'results' instead of 'result'."
      ],
      "patterns": [
        "[the] result[s] of [running|executing] %executable% [with arg[ument]s %objects%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_function} to the function named \"myFunction\"",
        "set {_result} to the result of {_function}",
        "set {_list::*} to the results of {_function}",
        "set {_result} to the result of {_function} with arguments 13 and true"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "run",
        "result",
        "execute",
        "function",
        "reflection"
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprChestInventory",
      "name": "Custom Chest Inventory",
      "since": [
        "2.2-dev34, 2.8.0 (chat format)"
      ],
      "deprecated": false,
      "description": [
        "Returns a chest inventory with the given amount of rows and the name.",
        "Use the <a href=#EffOpenInventory>open inventory</a> effect to open it."
      ],
      "patterns": [
        "[a] [new] chest inventory (named|with name) %text component% [with %number% row[s]]",
        "[a] [new] chest inventory with %number% row[s] [(named|with name) %text component%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "open chest inventory with 1 row named \"test\" to player",
        "set {_inventory} to a chest inventory with 1 row\nset slot 4 of {_inventory} to a diamond named \"example\"\nopen {_inventory} to player\n",
        "open chest inventory named \"<#00ff00>hex coloured title!\" with 6 rows to player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "inventory",
        "name": "Inventory"
      }
    },
    {
      "id": "ExprRandom",
      "name": "Random",
      "since": [
        "1.4.9"
      ],
      "deprecated": false,
      "description": [
        "Gets a random item out of a set, e.g. a random player out of all players online."
      ],
      "patterns": [
        "[a] random %*type% [out] of %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "give a diamond to a random player out of all players",
        "give a random item out of all items to the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprLootItems",
      "name": "Loot of Loot Table",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the items of a loot table using a loot context. Not specifying a loot context will use a loot context with a location at the world's origin."
      ],
      "patterns": [
        "[the] loot of %loot tables% [(with|using) [[loot] context] %loot context%]",
        "%loot tables%'[s] loot [(with|using) [[loot] context] %loot context%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_items::*} to loot of the loot table \"minecraft:chests/simple_dungeon\" with loot context {_context}\n# this will set {_items::*} to the items that would be dropped from the simple dungeon loot table with the given loot context\n",
        "give player loot of entity's loot table with loot context {_context}\n# this will give the player the items that the entity would drop with the given loot context\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "ExprNewBannerPattern",
      "name": "Banner Pattern",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Creates a new banner pattern."
      ],
      "patterns": [
        "[a] %banner pattern type% colo[u]red %color%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_pattern} to a creeper banner pattern colored red",
        "add {_pattern} to banner patterns of {_banneritem}",
        "remove {_pattern} from banner patterns of {_banneritem}",
        "set the 1st banner pattern of block at location(0,0,0) to {_pattern}",
        "clear the 1st banner pattern of block at location(0,0,0)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "bannerpattern",
        "name": "Banner Pattern"
      }
    },
    {
      "id": "ExprFunction",
      "name": "Function",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Obtain a function by name, which can be executed."
      ],
      "patterns": [
        "[the|a] function [named] %text% [(in|from) %script%]",
        "[the] functions [named] %texts% [(in|from) %script%]",
        "[all [[of] the]|the] functions (in|from) %script%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_function} to the function named \"myFunction\"",
        "run {_function} with arguments 13 and true"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "function",
        "name": "Function"
      }
    },
    {
      "id": "ExprWardenEntityAnger",
      "name": "Warden Anger Level",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The anger level a warden feels towards an entity.",
        "A warden can be angry towards multiple entities with different anger levels.",
        "If an entity reaches an anger level of 80+, the warden will pursue it.",
        "Anger level maxes out at 150."
      ],
      "patterns": [
        "[the] anger level [of] %living entities% towards %living entities%",
        "%living entities%'[s] anger level towards %living entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the anger level of last spawned warden towards player to 20",
        "clear the last spawned warden's anger level towards player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprIndicesOfValue",
      "name": "Indices of Value",
      "since": [
        "2.1, 2.12 (indices, positions of list)"
      ],
      "deprecated": false,
      "description": [
        "Get the first, last or all positions of a character (or text) in another text using 'positions of %texts% in %text%'. Nothing is returned when the value does not occur in the text. Positions range from 1 to the <a href='#ExprIndicesOf'>length</a> of the text (inclusive).",
        "",
        "Using 'indices/positions of %objects% in %objects%', you can get the indices or positions of a list where the value at that index is the provided value. Indices are only supported for keyed expressions (e.g. variable lists) and will return the string indices of the given value. Positions can be used with any list and will return the numerical position of the value in the list, counting up from 1. Additionally, nothing is returned if the value is not found in the list.",
        "",
        "Whether string comparison is case-sensitive or not can be configured in Skript's config file."
      ],
      "patterns": [
        "[the] [first|last|all] (position[s]|indices|index[es]) of [[the] value] %texts% in %text%",
        "[the] [first|last|all] position[s] of [[the] value] %objects% in %~objects%",
        "[the] [first|last|all] (indices|index[es]) of [[the] value] %objects% in %~objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_first} to the first position of \"@\" in the text argument\nif {_s} contains \"abc\":\n\tset {_s} to the first (position of \"abc\" in {_s} + 3) characters of {_s}\n\t# removes everything after the first \"abc\" from {_s}\n",
        "set {_list::*} to 1, 2, 3, 1, 2, 3\nset {_indices::*} to indices of the value 1 in {_list::*}\n# {_indices::*} is now \"1\" and \"4\"\n\nset {_indices::*} to all indices of the value 2 in {_list::*}\n# {_indices::*} is now \"2\" and \"5\"\n\nset {_positions::*} to all positions of the value 3 in {_list::*}\n# {_positions::*} is now 3 and 6\n",
        "set {_otherlist::bar} to 100\nset {_otherlist::hello} to \"hi\"\nset {_otherlist::burb} to 100\nset {_otherlist::tud} to \"hi\"\nset {_otherlist::foo} to 100\n\nset {_indices::*} to the first index of the value 100 in {_otherlist::*}\n# {_indices::*} is now \"bar\"\n\nset {_indices::*} to the last index of the value 100 in {_otherlist::*}\n# {_indices::*} is now \"foo\"\n\nset {_positions::*} to all positions of the value 100 in {_otherlist::*}\n# {_positions::*} is now 1, 3 and 5\n\nset {_positions::*} to all positions of the value \"hi\" in {_otherlist::*}\n# {_positions::*} is now 2 and 4\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprBreakSpeed",
      "name": "Block Break Speed",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Gets the speed at which the given player would break this block, taking into account tools, potion effects, whether or not the player is in water, enchantments, etc. The returned value is the amount of progress made in breaking the block each tick. When the total breaking progress reaches 1.0, the block is broken. Note that the break speed can change in the course of breaking a block, e.g. if a potion effect is applied or expires, or the player jumps/enters water."
      ],
      "patterns": [
        "[the] break speed[s] [of %blocks%] [for %players%]",
        "%block%'[s] break speed[s] [for %players%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on left click using diamond pickaxe:\n\tevent-block is set\n\tsend \"Break Speed: %break speed for player%\" to player\n"
      ],
      "events": null,
      "requirements": [
        "1.17+"
      ],
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprRepeat",
      "name": "Repeat String",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Repeats inputted strings a given amount of times."
      ],
      "patterns": [
        "%texts% repeated %integer% time[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast nl and nl repeated 200 times\nbroadcast \"Hello World \" repeated 5 times\nif \"aa\" repeated 2 times is \"aaaa\":\n\tbroadcast \"Ahhhh\" repeated 100 times\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprVectorBetweenLocations",
      "name": "Vectors - Vector Between Locations",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Creates a vector between two locations."
      ],
      "patterns": [
        "[the] vector (from|between) %location% (to|and) %location%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_v} to vector between {_loc1} and {_loc2}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprParticleWithSpeed",
      "name": "Particle with Speed/Extra Value",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Applies a specific 'speed' or 'extra' value to a particle.\nThis value is used in different ways depending on the particle, but in general it:\n* acts as the speed at which the particle moves if the particle count is greater than 0.\n* acts as a multiplier to the particle's offset if the particle count is 0.\n\nMore detailed information on particle behavior can be found at <a href=\"https://docs.papermc.io/paper/dev/particles/#count-argument-behavior\">Paper's particle documentation</a>.\n"
      ],
      "patterns": [
        "%particles% with ([a] particle speed [value]|[an] extra value) [of] %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "draw an electric spark particle with a particle speed of 0 at player",
        "draw 12 red dust particles with an extra value of 0.4 at player's head location"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "particle",
        "name": "Particle"
      }
    },
    {
      "id": "ExprCharacters",
      "name": "Characters Between",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "All characters between two given characters, useful for generating random strings. This expression uses the Unicode numerical code of a character to determine which characters are between the two given characters. The <a href=\"https://www.asciitable.com/\">ASCII table linked here</a> shows this ordering for the first 256 characters.",
        "If you would like only alphanumeric characters you can use the 'alphanumeric' option in the expression.",
        "If strings of more than one character are given, only the first character of each is used."
      ],
      "patterns": [
        "[(all [[of] the]|the)] [alphanumeric] characters (between|from) %text% (and|to) %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop characters from \"a\" to \"f\":\n\tbroadcast \"%loop-value%\"\n",
        "# 0123456789:;<=>?@ABC... ...uvwxyz\nsend characters between \"0\" and \"z\"\n",
        "# 0123456789ABC... ...uvwxyz\nsend alphanumeric characters between \"0\" and \"z\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprTernary",
      "name": "Ternary",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "A shorthand expression for returning something based on a condition."
      ],
      "patterns": [
        "%objects% if <.+>[,] (otherwise|else) %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {points} to 500 if {admin::%player's uuid%} is set else 100"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprNumbers",
      "name": "Numbers",
      "since": [
        "1.4.6 (integers & numbers), 2.5.1 (decimals)"
      ],
      "deprecated": false,
      "description": [
        "All numbers between two given numbers, useful for looping.",
        "Use 'numbers' if your start is not an integer and you want to keep the fractional part of the start number constant, or use 'integers' if you only want to loop integers.",
        "You may also use 'decimals' if you want to use the decimal precision of the start number.",
        "You may want to use the 'times' expression instead, for instance 'loop 5 times:'"
      ],
      "patterns": [
        "[(all [[of] the]|the)] (numbers|integers|decimals) (between|from) %number% (and|to) %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop numbers from 2.5 to 5.5: # loops 2.5, 3.5, 4.5, 5.5",
        "loop integers from 2.9 to 5.1: # same as '3 to 5', i.e. loops 3, 4, 5",
        "loop decimals from 3.94 to 4: # loops 3.94, 3.95, 3.96, 3.97, 3.98, 3.99, 4"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprNearestEntity",
      "name": "Nearest Entity",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Gets the entity nearest to a location or another entity."
      ],
      "patterns": [
        "[the] (nearest|closest) %*entity types% [[relative] to %entity/location%]",
        "[the] %*entity types% (nearest|closest) [to %entity/location%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "kill the nearest pig and cow relative to player",
        "teleport player to the nearest cow relative to player",
        "teleport player to the nearest entity relative to player",
        "on click:\n\tkill nearest pig\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprExcept",
      "name": "Except",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Filter a list by providing objects to be excluded."
      ],
      "patterns": [
        "%objects% (except|excluding|not including) %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "spawn zombie at location(0, 0, 0):\n\thide entity from all players except {_player}\n",
        "set {_items::*} to a copper ingot, an iron ingot and a gold ingot\nset {_except::*} to {_items::*} excluding copper ingot\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprItemWithModel",
      "name": "Item With Model",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "Returns a copy of an item with a custom item model. Accepts a Namespaced Key which takes the form of \"namespace:key\", e.g. \"minecraft:dirt\". See <a href='https://minecraft.wiki/w/Identifier'> this article</a> for more detail. "
      ],
      "patterns": [
        "%item type% with [the] [item] model %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_item} to emerald with model \"minecraft:diamond\" named \"fake diamond\"'\ngive {_item} to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "item model"
      ],
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprVectorProjection",
      "name": "Vectors - Vector Projection",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "An expression to get the vector projection of two vectors."
      ],
      "patterns": [
        "[vector] projection [of] %vector% on[to] %vector%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_projection} to vector projection of vector(1, 2, 3) onto vector(4, 4, 4)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprWithItemFlags",
      "name": "Item with Item Flags",
      "since": [
        "2.10, 2.11 (all itemflags)"
      ],
      "deprecated": false,
      "description": [
        "Creates a new item with the specified item flags."
      ],
      "patterns": [
        "%item types% with [the] item flag[s] %item flags%",
        "%item types% with [the] %item flags% item flag[s]",
        "%item types% with all [the] item flags"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "give player diamond sword with item flags hide enchants and hide attributes",
        "set {_item} to player's tool with item flag hide additional tooltip",
        "give player torch with hide placed on item flag",
        "set {_item} to diamond sword with all item flags"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprItemCooldown",
      "name": "Item Cooldown",
      "since": [
        "2.8.0",
        "2.12 (cooldown group)"
      ],
      "deprecated": false,
      "description": [
        "Gets the current cooldown of a provided item for a player.\nIf the provided item has a cooldown group component specified the cooldown of the group will be prioritized.\nOtherwise the cooldown of the item material will be used.\n"
      ],
      "patterns": [
        "[the] [item] cooldown of %item types% for %players%",
        "%players%'[s] [item] cooldown for %item types%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click using stick:\n\tset item cooldown of player's tool for player to 1 minute\n\tset item cooldown of stone and grass for all players to 20 seconds\n\treset item cooldown of cobblestone and dirt for all players\n"
      ],
      "events": null,
      "requirements": [
        "MC 1.21.2 (cooldown group)"
      ],
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprDistance",
      "name": "Distance",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The distance between two points."
      ],
      "patterns": [
        "[the] distance between %location% and %location%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the distance between the player and {home::%uuid of player%} is smaller than 20:\n\tmessage \"You're very close to your home!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprDamagedItem",
      "name": "Damaged Item",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Directly damages an item. In MC versions 1.12.2 and lower, this can be used to apply data values to items/blocks"
      ],
      "patterns": [
        "%item type% with (damage|data) [value] %number%",
        "%item type% damaged by %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "give player diamond sword with damage value 100",
        "set player's tool to diamond hoe damaged by 250",
        "give player diamond sword with damage 700 named \"BROKEN SWORD\"",
        "set {_item} to diamond hoe with damage value 50 named \"SAD HOE\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprVectorDotProduct",
      "name": "Vectors - Dot Product",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Gets the dot product between two vectors."
      ],
      "patterns": [
        "%vector% dot %vector%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_dot} to {_v1} dot {_v2}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprVectorFromYawAndPitch",
      "name": "Vectors - Vector from Yaw and Pitch",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Creates a vector from a yaw and pitch value."
      ],
      "patterns": [
        "[a] [new] vector (from|with) yaw %number% and pitch %number%",
        "[a] [new] vector (from|with) pitch %number% and yaw %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_v} to vector from yaw 45 and pitch 45"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprVectorCrossProduct",
      "name": "Vectors - Cross Product",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Gets the cross product between two vectors."
      ],
      "patterns": [
        "%vector% cross %vector%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"%vector 1, 0, 0 cross vector 0, 1, 0%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprWithYawPitch",
      "name": "Location with Yaw/Pitch",
      "since": [
        "2.15"
      ],
      "deprecated": false,
      "description": [
        "Returns the given locations with the specified yaw and/or pitch."
      ],
      "patterns": [
        "%locations% with [a] (yaw|pitch) [of] %number%",
        "%locations% with [a] yaw [of] %number% and [a] pitch [of] %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_location} to player's location with yaw 0 and pitch 0"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprRandomNumber",
      "name": "Random Numbers",
      "since": [
        "1.4, 2.10 (Multiple random numbers)"
      ],
      "deprecated": false,
      "description": [
        "A given amount of random numbers or integers between two given numbers. Use 'number' if you want any number with decimal parts, or use use 'integer' if you only want whole numbers.",
        "Please note that the order of the numbers doesn't matter, i.e. <code>random number between 2 and 1</code> will work as well as <code>random number between 1 and 2</code>."
      ],
      "patterns": [
        "[a|%integer%] random (integer|number)[s] (from|between) %number% (to|and) %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the player's health to a random number between 5 and 10",
        "send \"You rolled a %random integer from 1 to 6%!\" to the player",
        "set {_chances::*} to 5 random integers between 5 and 96",
        "set {_decimals::*} to 3 random numbers between 2.7 and -1.5"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprRandomCharacter",
      "name": "Random Character",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "One or more random characters between two given characters. Use 'alphanumeric' if you want only alphanumeric characters.",
        "This expression uses the Unicode numerical code of a character to determine which characters are between the two given characters.",
        "If strings of more than one character are given, only the first character of each is used."
      ],
      "patterns": [
        "[a|%integer%] random [alphanumeric] character[s] (from|between) %text% (to|and) %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_captcha} to join (5 random characters between \"a\" and \"z\") with \"\"",
        "send 3 random alphanumeric characters between \"0\" and \"z\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprSecCreateBossBar",
      "name": "Create Boss Bar",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Creates a new boss bar.\nBoss bars can be pink/blue/red/green/yellow/purple/white, and will pick the closest valid color to the one you provide.\nBoss bars can have viewers removed or added to them.\nMaking the boss bar 'keyed' will add it to the persistent storage of the server and will be editable by commands and restored after restart.\n"
      ],
      "patterns": [
        "[a] [new] [%color%] boss[ ]bar [(with title|titled) %text component%]",
        "[a] [new] keyed [%color%] boss[ ]bar with (id|key) %text% [(with title|titled) %text component%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on join:\n\tset {_bar} to a boss bar:\n\t\tset color of event-bossbar to white\n\t\tset title of event-bossbar to \"<green>Welcome %player%!\"\n\t\tset progress of event-bossbar to 50%\n\t\tset style of event-bossbar to 6 notches\n\t\tmake event-bossbar darken the sky\n\tadd player to viewers of {_bar}\n\twait 5 seconds\n\tremove player from viewers of {_bar}\n",
        "command /createkeyedbar:\n\ttrigger:\n\t\tset {_bar} to a keyed red bossbar with title \"<red>My persistent red bar\":\n\t\t\tset progress of event-bossbar to 14%\n\t\t\tset style of event-bossbar to 20 notches\n\t\tloop all operators:\n\t\t\tadd loop-value to viewers of {_bar}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "bossbar",
        "name": "BossBar"
      }
    },
    {
      "id": "ExprVectorFromXYZ",
      "name": "Vectors - Create from XYZ",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Creates a vector from x, y and z values."
      ],
      "patterns": [
        "[a] [new] vector [(from|at|to)] %number%,[ ]%number%(,[ ]| and )%number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_v} to vector 0, 1, 0"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprSecPotionEffect",
      "name": "New Potion Effect",
      "since": [
        "2.5.2",
        "2.14 (syntax changes, infinite duration support)"
      ],
      "deprecated": false,
      "description": [
        "Create a new potion effect that can be applied to an entity or item type."
      ],
      "patterns": [
        "[a[n]] [ambient] potion effect of %potion effect type% [[of tier] %number%] [for %time span%]",
        "[an] (infinite|permanent) [ambient] potion effect of %potion effect type% [[of tier] %number%] ",
        "[an] (infinite|permanent) [ambient] %potion effect type% [[of tier] %number%] [potion [effect]] ",
        "[a] potion effect [of %potion effect type%] (from|using|based on) %potion effect%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_potion} to a potion effect of speed 2 for 10 minutes:\n\thide the effect's icon\n\thide the effect's particles\n",
        "add strength 5 to the potion effects of the player's tool",
        "apply invisibility to the player for 5 minutes:\n\thide the effect's particles\n",
        "add a potion effect of speed 1 to the potion effects of the player",
        "# creates a potion effect with the properties of an existing potion effect\nset {_potion} to a potion effect of slowness based on the player's speed effect\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprDropsOfBlock",
      "name": "Drops Of Block",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "A list of the items that will drop when a block is broken."
      ],
      "patterns": [
        "[(all|the|all [of] the)] drops of %blocks% [(using|with) %item type% [(as %entity%)]]",
        "%blocks%'s drops [(using|with) %item type% [(as %entity%)]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on break of block:\n\tgive drops of block using player's tool to player\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.15+ ('as %entity%')"
      ],
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprSubstring",
      "name": "Substring",
      "since": [
        "2.1, 2.5.2 (character at, multiple strings support)"
      ],
      "deprecated": false,
      "description": [
        "Extracts part of a text. You can either get the first &lt;x&gt; characters, the last &lt;x&gt; characters, the character at index &lt;x&gt;, or the characters between indices &lt;x&gt; and &lt;y&gt;. The indices &lt;x&gt; and &lt;y&gt; should be between 1 and the <a href='#ExprLength'>length</a> of the text (other values will be fit into this range)."
      ],
      "patterns": [
        "[the] (part|sub[ ](text|string)) of %texts% (between|from) [ind(ex|ices)|character[s]] %number% (and|to) [(index|character)] %number%",
        "[the] (first|last) [%number%] character[s] of %texts%",
        "[the] %number% (first|last) characters of %texts%",
        "[the] character[s] at [(index|position|indexes|indices|positions)] %numbers% (in|of) %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_s} to the first 5 characters of the text argument",
        "message \"%subtext of {_s} from characters 2 to (the length of {_s} - 1)%\" # removes the first and last character from {_s} and sends it to the player or console",
        "set {_characters::*} to characters at 1, 2 and 7 in player's display name",
        "send the last character of all players' names"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "substring",
        "subtext"
      ],
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprFireworkEffect",
      "name": "Firework Effect",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Represents a 'firework effect' which can be used in the <a href='#EffFireworkLaunch'>launch firework</a> effect."
      ],
      "patterns": [
        "[(flickering|trailing|flickering trailing|trailing flickering)] %firework type% [firework [effect]] colo[u]red %colors%",
        "[(flickering|trailing|flickering trailing|trailing flickering)] %firework type% [firework [effect]] colo[u]red %colors% fad(e|ing) [to] %colors%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "launch flickering trailing burst firework colored blue and green at player",
        "launch trailing flickering star colored purple, yellow, blue, green and red fading to pink at target entity",
        "launch ball large colored red, purple and white fading to light green and black at player's location with duration 1"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "fireworkeffect",
        "name": "Firework Effect"
      }
    },
    {
      "id": "ExprReplace",
      "name": "Text Replacement",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Performs a text replacement on a given value, returning the result. Supports regex and case sensitive replacement."
      ],
      "patterns": [
        "%texts% where [([the] first instance[s]|all instances) of] %texts% (is|are) replaced with %text% [using regex|with case sensitivity]",
        "%texts% where [([the] first instance[s]|all instances) of] regex [pattern[s]] %texts% (is|are) replaced with %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"Welcome [player]\" where \"[player]\" is replaced with \"%player%\" to player",
        "# Function for sanitizing user inputs\n# Strips the input of any non-alphanumeric characters using regex\nfunction sanitizeInput(input: string) :: string:\n\treturn {_input} where regex pattern \"\\W\" is replaced with \"\"\n",
        "# Function to convert &# hex color codes to <# > (mini message format)\nfunction colorFormat(input: string) :: string:\n\treturn {_input} where all instances of regex pattern \"&#([a-fA-F0-9]{6})\" are replaced with \"<#$1>\"\n",
        "# Very simple chat censor\non chat:\n\tset message to message where all instances of \"idiot\", \"noob\" are replaced with \"****\"\n\tset message to message where regex \"\\b(idiot|noob)\\b\" is replaced with \"****\" # Regex version using word boundaries for better results\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprLocationFromVector",
      "name": "Vectors - Create Location from Vector",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Creates a location from a vector in a world."
      ],
      "patterns": [
        "%vector% to location in %world%",
        "location (from|of) %vector% in %world%",
        "%vector% [to location] in %world% with yaw %number% and pitch %number%",
        "location (from|of) %vector% in %world% with yaw %number% and pitch %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_loc} to {_v} to location in world \"world\"",
        "set {_loc} to {_v} to location in world \"world\" with yaw 45 and pitch 90",
        "set {_loc} to location of {_v} in \"world\" with yaw 45 and pitch 90"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprRotate",
      "name": "Rotated Quaternion/Vector",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Rotates a quaternion or vector around an axis a set amount of degrees, or around all 3 axes at once.",
        "Vectors can only be rotated around the global X/Y/Z axes, or an arbitrary vector axis.",
        "Quaternions are more flexible, allowing rotation around the global or local X/Y/Z axes, arbitrary vectors, or all 3 local axes at once.",
        "Global axes are the ones in the Minecraft world. Local axes are relative to how the quaternion is already oriented.",
        "",
        "Note that rotating a quaternion around a vector results in a rotation around the local vector, so results may not be what you expect. For example, rotating around vector(1, 0, 0) is the same as rotating around the local X axis.",
        "The same applies to rotations by all three axes at once. In addition, rotating around all three axes of a quaternion/display at once will rotate in ZYX order, meaning the Z rotation will be applied first and the X rotation last."
      ],
      "patterns": [
        "%quaternions/vectors% rotated around [the] [global] (x|y|z)(-| )axis by %number%",
        "%quaternions% rotated around [the|its|their] local (x|y|z)(-| )ax(i|e)s by %number%",
        "%quaternions/vectors% rotated around [the] %vector% by %number%",
        "%quaternions% rotated by x %number%, y %number%(, [and]| and) z %number%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_new} to {_quaternion} rotated around x axis by 10 degrees",
        "set {_new} to {_vector} rotated around vector(1, 1, 1) by 45",
        "set {_new} to {_quaternion} rotated by x 45, y 90, z 135"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprLocationAt",
      "name": "Location At",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "Allows to create a <a href='#location'>location</a> from three coordinates and a world."
      ],
      "patterns": [
        "[the] (location|position) [at] [\\(][x[ ][=[ ]]]%number%, [y[ ][=[ ]]]%number%, [and] [z[ ][=[ ]]]%number%[\\)] [[(in|of) [[the] world]] %world%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_loc} to the location at arg-1, arg-2, arg-3 of the world arg-4",
        "distance between the player and the location (0, 0, 0) is less than 200"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprParticleWithData",
      "name": "Particles with Data",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Creates particles that require some extra information, such as colors, locations, or block data.\nParticles not present here do not require data and can be found in the Particle type.\nData requirements vary from version to version, so these docs are only accurate for the most recent Minecraft version at time of release.\nFor example, between 1.21.8 and 1.21.9, the 'flash' particle became colourable and now requires a colour data.\n"
      ],
      "patterns": [
        "[%*number%|a[n]] %color% effect particle[s] (of|with) power %number%",
        "[%*number%|a[n]] %color% instant effect particle[s] (of|with) power %number%",
        "[%*number%|a[n]] %color% flash particle[s]",
        "[%*number%|a[n]] %color% (potion|entity) effect particle[s]",
        "[%*number%|a[n]] %color% tinted leaves particle[s]",
        "[%*number%|a[n]] %color% dust particle[s] [of size %number%]",
        "[%*number%|a[n]] %color% dust particle[s] [of size %number%] that transitions to %color%",
        "[%*number%|a[n]] %item type/block data% block particle[s]",
        "[%*number%|a[n]] %item type/block data% [block] crumble particle[s]",
        "[%*number%|a[n]] %item type/block data% [block] marker particle[s]",
        "[%*number%|a[n]] %item type/block data% dust pillar particle[s]",
        "[%*number%|a[n]] falling %item type/block data% dust particle[s]",
        "[%*number%|a[n]] %item type% item particle[s]",
        "[%*number%|a[n]] sculk charge particle[s] [with [a] roll angle [of] %number%]",
        "[%*number%|a[n]] shriek particle[s] [delayed by %time span%]",
        "[%*number%|a[n]] vibration particle[s] moving to[wards] %entity/location% [over [a duration of] %time span%]",
        "[%*number%|a[n]] %color% trail particle[s] moving to[wards] %location% [over [a duration of] %time span%]",
        "[%*number%|a[n]] dragon breath particle[s] [of power %number%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {blood-effect} to a red dust particle of size 1",
        "draw 3 blue trail particles moving to player's target over 3 seconds at player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "particle",
        "name": "Particle"
      }
    },
    {
      "id": "ExprBlock-2",
      "name": "Block",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The block involved in the event, e.g. the clicked block or the placed block.",
        "Can optionally include a direction as well, e.g. 'block above' or 'block in front of the player'."
      ],
      "patterns": [
        "[the] block %direction% [%location%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "block is iron ore",
        "set block below to air",
        "spawn a creeper above the block",
        "loop blocks in radius 4:\n\tloop-block is obsidian\n\tset loop-block to water\n",
        "block is a chest:\n\tclear the inventory of the block\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprLocation-2",
      "name": "Location",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The location where an event happened (e.g. at an entity or block), or a location <a href='#ExprDirection'>relative</a> to another (e.g. 1 meter above another location)."
      ],
      "patterns": [
        "[the] (location|position) %directions% [%location%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples'",
        "set {_loc} to the location 1 meter above the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprBlocks",
      "name": "Blocks",
      "since": [
        "1.0, 2.5.1 (within/cuboid/chunk)"
      ],
      "deprecated": false,
      "description": [
        "Blocks relative to other blocks or between other blocks.",
        "Can be used to get blocks relative to other blocks or for looping.",
        "Blocks from/to and between will return a straight line whereas blocks within will return a cuboid."
      ],
      "patterns": [
        "[(all [[of] the]|the)] blocks %direction% [%locations%]",
        "[(all [[of] the]|the)] blocks from %location% [on] %direction%",
        "[(all [[of] the]|the)] blocks from %location% to %location%",
        "[(all [[of] the]|the)] blocks between %location% and %location%",
        "[(all [[of] the]|the)] blocks within %location% and %location%",
        "[(all [[of] the]|the)] blocks (in|within) %chunk%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop blocks above the player:",
        "loop blocks between the block below the player and the targeted block:",
        "set the blocks below the player, the victim and the targeted block to air",
        "set all blocks within {loc1} and {loc2} to stone",
        "set all blocks within chunk at player to air"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprChunk",
      "name": "Chunk",
      "since": [
        "2.0, 2.8.0 (loaded chunks)"
      ],
      "deprecated": false,
      "description": [
        "Returns the <a href='#chunk'>chunk</a> of a block, location or entity is in, or a list of the loaded chunks of a world."
      ],
      "patterns": [
        "[(all [[of] the]|the)] chunk[s] (of|%directions%) %locations%",
        "%locations%'[s] chunk[s]",
        "[(all [[of] the]|the)] loaded chunks (of|in) %worlds%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "add the chunk at the player to {protected chunks::*}",
        "set {_chunks::*} to the loaded chunks of the player's world"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "chunk",
        "name": "Chunk"
      }
    },
    {
      "id": "ExprPercent",
      "name": "Percent of",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Returns a percentage of one or more numbers."
      ],
      "patterns": [
        "%number%(\\%| percent) of %numbers%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set damage to 10% of victim's health",
        "set damage to 125 percent of damage",
        "set {_result} to {_percent} percent of 999",
        "set {_result::*} to 10% of {_numbers::*}",
        "set experience to 50% of player's total experience"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprMaxPlayers",
      "name": "Max Players",
      "since": [
        "2.3, 2.7 (modify max real players)"
      ],
      "deprecated": false,
      "description": [
        "The count of max players. This can be changed in a <a href='#server_list_ping'>server list ping</a> event only.",
        "'real max players' returns the real count of max players of the server and can be modified on Paper 1.16 or later."
      ],
      "patterns": [
        "[the] [(real|default)|(fake|shown|displayed)] max[imum] player[s] [count|amount|number|size]",
        "[the] [(real|default)|(fake|shown|displayed)] max[imum] (count|amount|number|size) of players"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on server list ping:\n\tset the max players count to (online players count + 1)\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprServerIcon",
      "name": "Server Icon",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Icon of the server in the server list. Can be set to an icon that loaded using the",
        "<a href='#EffLoadServerIcon'>load server icon</a> effect,",
        "or can be reset to the default icon in a <a href='#server_list_ping'>server list ping</a>.",
        "'default server icon' returns the default server icon (server-icon.png) always and cannot be changed."
      ],
      "patterns": [
        "[the] [((default)|(shown|sent))] [server] icon"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on script load:\n\tset {server-icons::default} to the default server icon\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "cachedservericon",
        "name": "Server Icon"
      }
    },
    {
      "id": "ExprOnlinePlayersCount",
      "name": "Online Player Count",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "The amount of online players. This can be changed in a <a href='#server_list_ping'>server list ping</a> event only to show fake online player amount.",
        "<code>real online player count</code> always return the real count of online players and can't be changed."
      ],
      "patterns": [
        "[the] [((real|default)|(fake|shown|displayed))] [online] player (count|amount|number)",
        "[the] [((real|default)|(fake|shown|displayed))] (count|amount|number|size) of online players"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on server list ping:\n\t# This will make the max players count 5 if there are 4 players online.\n\tset the fake max players count to (online player count + 1)\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprExplosionBlockYield",
      "name": "Explosion Block Yield",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The percentage of exploded blocks dropped in an explosion event.",
        "When changing the yield, a value greater than 1 will function the same as using 1.",
        "Attempting to change the yield to a value less than 0 will have no effect."
      ],
      "patterns": [
        "[the] [explosion['s]] block (yield|amount)",
        "[the] percentage of blocks dropped"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on explode:\n\tset the explosion's block yield to 10%\n"
      ],
      "events": [
        {
          "id": "explode",
          "name": "On Explode"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprFurnaceEventItems",
      "name": "Furnace Event Items",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Represents the different items in furnace events.",
        "Only 'smelting item' can be changed."
      ],
      "patterns": [
        "[the] (smelted item|result[ item])",
        "[the] extracted item[s]",
        "[the] smelting item",
        "[the] burned (fuel|item)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on furnace smelt:\n\tbroadcast smelted item\n\t# Or 'result'\n",
        "on furnace extract:\n\tbroadcast extracted item\n",
        "on fuel burn:\n\tbroadcast burned fuel\n",
        "on smelting start:\n\tbroadcast smelting item\n\tclear smelting item\n"
      ],
      "events": [
        {
          "id": "smelt",
          "name": "On Smelt"
        },
        {
          "id": "fuel_burn",
          "name": "On Fuel Burn"
        },
        {
          "id": "start_smelt",
          "name": "On Start Smelt"
        },
        {
          "id": "furnace_item_extract",
          "name": "On Furnace Item Extract"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "ExprPlayerChatCompletions",
      "name": "Player Chat Completions",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The custom chat completion suggestions. You can add, set, remove, and clear them. Removing the names of online players with this expression is ineffective.",
        "This expression will not return anything due to Bukkit limitations."
      ],
      "patterns": [
        "[the] [custom] chat completion[s] of %players%",
        "%players%'[s] [custom] chat completion[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "add \"Skript\" and \"Njol\" to chat completions of all players",
        "remove \"text\" from {_p}'s chat completions",
        "clear player's chat completions"
      ],
      "events": null,
      "requirements": [
        "Spigot 1.19+"
      ],
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprSpectatorTarget",
      "name": "Spectator Target",
      "since": [
        "2.4-alpha4, 2.7 (Paper Spectator Event)"
      ],
      "deprecated": false,
      "description": [
        "Grabs the spectator target entity of the players."
      ],
      "patterns": [
        "spectator target [of %players%]",
        "%players%'[s] spectator target"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on player start spectating of player:\n\tmessage \"&c%spectator target% currently has %{game::kills::%spectator target%}% kills!\" to the player\n",
        "on player stop spectating:\n\tpast spectator target was a zombie\n\tset spectator target to the nearest skeleton\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprTemperature",
      "name": "Temperature",
      "since": [
        "2.2-dev35"
      ],
      "deprecated": false,
      "description": [
        "Temperature at given block."
      ],
      "patterns": [
        "[the] temperature[s] of %blocks%",
        "%blocks%'[s] temperature[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message \"%temperature of the targeted block%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprFromUUID",
      "name": "Entity/Player/World from UUID",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Get an entity, player, offline player or world from a UUID.",
        "Unloaded entities or players that are offline (when using 'player from %uuid%') will return nothing."
      ],
      "patterns": [
        "[offline[ ]]player[s] from %uuids%",
        "entit(y|ies) from %uuids%",
        "world[s] from %uuids%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_player} to player from \"a0789aeb-7b46-43f6-86fb-cb671fed5775\" parsed as uuid",
        "set {_offline player} to offline player from {_some uuid}",
        "set {_entity} to entity from {_some uuid}",
        "set {_world} to world from {_some uuid}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprEntityOwner",
      "name": "Entity Owner",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The owner of a tameable entity (i.e. horse or wolf)."
      ],
      "patterns": [
        "[the] (owner|tamer) of %living entities%",
        "%living entities%'[s] (owner|tamer)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "\tset owner of last spawned wolf to player\n\tif the owner of last spawned wolf is player:\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "offlineplayer",
        "name": "Offline Player"
      }
    },
    {
      "id": "ExprTypeOf",
      "name": "Type of",
      "since": [
        "1.4, 2.5.2 (potion effect), 2.7 (block datas), 2.10 (enchantment type)"
      ],
      "deprecated": false,
      "description": [
        "Type of a block, item, entity, inventory, potion effect or enchantment type.",
        "Types of items, blocks and block datas are item types similar to them but have amounts",
        "of one, no display names and, on Minecraft 1.13 and newer versions, are undamaged.",
        "Types of entities and inventories are entity types and inventory types known to Skript.",
        "Types of potion effects are potion effect types.",
        "Types of enchantment types are enchantments."
      ],
      "patterns": [
        "[the] type of %entity types/item types/inventories/potion effects/block datas/enchantment types%",
        "%entity types/item types/inventories/potion effects/block datas/enchantment types%'[s] type"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on rightclick on an entity:\n\tmessage \"This is a %type of clicked entity%!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprHumidity",
      "name": "Humidity",
      "since": [
        "2.2-dev35"
      ],
      "deprecated": false,
      "description": [
        "Humidity of given blocks."
      ],
      "patterns": [
        "[the] humidit(y|ies) of %blocks%",
        "%blocks%'[s] humidit(y|ies)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_humidity} to event-block's humidity"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprParticleCount",
      "name": "Particle Count",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Sets how many particles to draw.\nParticle count has an influence on how the 'offset' and 'extra' values of a particle apply.\nOffsets are treated as distributions if particle count is greater than 0.\nOffsets are treated as velocity or some other special behavior if particle count is 0.\n\nThis means that setting the particle count may change how your particle behaves. Be careful!\n\nMore detailed information on particle behavior can be found at <a href=\"https://docs.papermc.io/paper/dev/particles/#count-argument-behavior\">Paper's particle documentation</a>.\n"
      ],
      "patterns": [
        "[the] particle count of %particles%",
        "%particles%'[s] particle count"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "draw 7 blue dust particles at player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprWorldBorderCenter",
      "name": "Center of World Border",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The center of a world border."
      ],
      "patterns": [
        "[the] world[ ]border (center|middle) [of %worldborders%]",
        "%worldborders%'[s] world[ ]border (center|middle)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set world border center of {_worldborder} to location(10, 0, 20)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprItemWithTooltip",
      "name": "Item with Tooltip",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Get an item with or without entire/additional tooltip.",
        "If changing the 'entire' tooltip of an item, nothing will show up when a player hovers over it.",
        "If changing the 'additional' tooltip, only specific parts (which change per item) will be hidden."
      ],
      "patterns": [
        "%item types% with[out] [entire|additional] tool[ ]tip[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_item with additional tooltip} to diamond with additional tooltip",
        "set {_item without entire tooltip} to diamond without entire tooltip"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.20.5+"
      ],
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprTimespanDetails",
      "name": "Timespan Details",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Retrieve specific information of a <a href=\"/#timespan\">timespan</a> such as hours/minutes/etc."
      ],
      "patterns": [
        "[the] ((tick|second|minute|hour|day|week|month|year))s of %time spans%",
        "%time spans%'[s] ((tick|second|minute|hour|day|week|month|year))s"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_t} to difference between now and {Payouts::players::%uuid of player%::last-date}",
        "send \"It has been %days of {_t}% day(s) since last payout.\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprQueueStartEnd",
      "name": "Queue Start/End (Experimental)",
      "since": [
        "2.10 (experimental)"
      ],
      "deprecated": false,
      "description": [
        "Requires the <code>using queues</code> experimental feature flag to be enabled.\n\nThe first or last element in a queue. Asking for this does <b>not</b> remove the element from the queue.\n\nThis is designed for use with the <code>add</code> changer: to add or remove elements from the start or the end of the queue.\n"
      ],
      "patterns": [
        "[the] (start|end) of %queue%",
        "%queue%'[s] (start|end)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {queue} to a new queue\nadd \"hello\" to {queue}\nadd \"foo\" to the start of {queue}\nbroadcast the first element of {queue} # foo\nbroadcast the first element of {queue} # hello\n# queue is now empty"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprKeyOfBossBar",
      "name": "Key Of Boss Bar",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Returns the key of a keyed boss bar.\nDoes not return anything for normal boss bars.\n"
      ],
      "patterns": [
        "[the] boss[ ]bar (key|id) of %boss bars%",
        "%boss bars%'[s] boss[ ]bar (key|id)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast the boss bar key of {_mybar}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprAltitude",
      "name": "Altitude",
      "since": [
        "1.4.3"
      ],
      "deprecated": false,
      "description": [
        "Effectively an alias of 'y-<a href='#ExprCoordinate'>coordinate</a> of …', it represents the height of some location within the world."
      ],
      "patterns": [
        "[the] altitude[s] of %locations%",
        "%locations%'[s] altitude[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\taltitude of the attacker is higher than the altitude of the victim\n\tset damage to damage * 1.2\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprTotalExperience",
      "name": "Total Experience",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The total experience, in points, of players or experience orbs.",
        "Adding to a player's experience will trigger Mending, but setting their experience will not."
      ],
      "patterns": [
        "[the] [total] experience of %entities%",
        "%entities%'[s] [total] experience"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set total experience of player to 100",
        "add 100 to player's experience",
        "if player's total experience is greater than 100:\n\tset player's total experience to 0\n\tgive player 1 diamond\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprSeed",
      "name": "World Seed",
      "since": [
        "2.2-dev35"
      ],
      "deprecated": false,
      "description": [
        "The seed of given world. Note that it will be returned as Minecraft internally treats seeds, not as you specified it in world configuration."
      ],
      "patterns": [
        "[the] seed[s] (from|of) %worlds%",
        "%worlds%'[s] seed[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast \"Seed: %seed of player's world%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprFreezeTicks",
      "name": "Freeze Time",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "How much time an entity has been in powdered snow for."
      ],
      "patterns": [
        "[the] freeze time of %entities%",
        "%entities%'[s] freeze time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player's freeze time is less than 3 seconds:\n\tsend \"you're about to freeze!\" to the player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprTagContents",
      "name": "Tags Contents",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns all the values that a tag contains.",
        "For item and block tags, this will return items. For entity tags, it will return entity datas (a creeper, a zombie)."
      ],
      "patterns": [
        "[the] tag (contents|values) of %minecraft tag%",
        "%minecraft tag%'[s] tag (contents|values)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast tag values of minecraft tag \"dirt\"",
        "broadcast (first element of player's tool's block tags)'s tag contents"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "blocks",
        "minecraft tag",
        "type",
        "category"
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprCharges",
      "name": "Respawn Anchor Charges",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The charges of a respawn anchor."
      ],
      "patterns": [
        "[the] [max[imum]] charge[s] of %blocks%",
        "%blocks%'[s] [max[imum]] charge[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the charges of event-block to 3"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.16+"
      ],
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprParticleDistribution",
      "name": "Particle Distribution",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Determines the normal distribution that particles may be drawn within.\nThe distribution is defined by a vector of x, y, and z standard deviations.\n\nParticles will be randomly drawn based on these values, clustering towards the center. 68% of particles will be within 1 standard deviation, 95% within 2, and 99.7% within three.\nThe area the particles will spawn in can be roughly estimated as being within 2 times the standard deviation in each axis.\n\nFor example, a distribution of 1, 2, and 1 would spawn particles within roughly 2 blocks on the x and z axes, and within 4 blocks on the y axis.\n\nPlease note that distributions only take effect if the particle count is greater than 0!\nParticles with counts of 0 do not have distributions.\nIf the particle count is 0, the offset is treated differently depending on the particle.\n\nMore detailed information on particle behavior can be found at <a href=\"https://docs.papermc.io/paper/dev/particles/#count-argument-behavior\">Paper's particle documentation</a>.\n"
      ],
      "patterns": [
        "[the] particle distribution of %particles%",
        "%particles%'[s] particle distribution"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the particle distribution of {_my-particle} to vector(1, 2, 1)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprBlockHardness",
      "name": "Block Hardness",
      "since": [
        "2.6"
      ],
      "deprecated": false,
      "description": [
        "Obtains the block's hardness level (also known as \"strength\"). This number is used to calculate the time required to break each block."
      ],
      "patterns": [
        "[the] [block] hardness of %item types%",
        "%item types%'[s] [block] hardness"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_hard} to block hardness of target block",
        "if block hardness of target block > 5:"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.13+"
      ],
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLootContextLuck",
      "name": "Luck of Loot Context",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the luck of a loot context as a float. This represents the luck potion effect that an entity can have."
      ],
      "patterns": [
        "[the] loot[ing] [context] luck [value|factor] [of %loot contexts%]",
        "%loot contexts%'[s] loot[ing] [context] luck [value|factor]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_luck} to loot luck value of {_context}",
        "set {_context} to a loot context at player:\n\tset loot luck value to 10\n\tset looter to player\n\tset looted entity to last spawned pig\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprItemFlags",
      "name": "Item Flags",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The item flags of an item. Can be modified."
      ],
      "patterns": [
        "[the] item flags of %item types%",
        "%item types%'[s] item flags"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set item flags of player's tool to hide enchants and hide attributes",
        "add hide potion effects to item flags of player's held item",
        "remove hide enchants from item flags of {legendary sword}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemflag",
        "name": "Item Flag"
      }
    },
    {
      "id": "ExprParticleOffset",
      "name": "Particle Offset",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Determines the offset value for a particle.\nOffsets are treated as distributions if particle count is greater than 0.\nOffsets are treated as velocity or some other special behavior if particle count is 0.\nSetting distribution/velocity with this method may change the particle count to 1/0 respectively.\n\nMore detailed information on particle behavior can be found at <a href=\"https://docs.papermc.io/paper/dev/particles/#count-argument-behavior\">Paper's particle documentation</a>.\n"
      ],
      "patterns": [
        "[the] particle offset of %particles%",
        "%particles%'[s] particle offset"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the particle offset of {_my-particle} to vector(1, 2, 1)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprBrewingFuelLevel",
      "name": "Brewing Stand Fuel Level",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The fuel level of a brewing stand. The fuel level is decreased by one at the start of brewing each potion."
      ],
      "patterns": [
        "[the] brewing [stand] fuel (level|amount) [of %blocks%]",
        "%blocks%'[s] brewing [stand] fuel (level|amount)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the brewing stand fuel level of {_block} to 10\nclear the brewing stand fuel level of {_block}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprEyeLocation",
      "name": "Head location",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The location of an entity's head, mostly useful for players and e.g. looping blocks in the player's line of sight.",
        "Please note that this location is only accurate for entities whose head is exactly above their center, i.e. players, endermen, zombies, skeletons, etc., but not sheep, pigs or cows."
      ],
      "patterns": [
        "[the] (head|eye[s]) [location[s]] of %living entities%",
        "%living entities%'[s] (head|eye[s]) [location[s]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the block at the player's head to air",
        "set the block in front of the player's eyes to glass",
        "loop blocks in front of the player's head:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprAnvilRepairCost",
      "name": "Anvil Repair Cost",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Returns the experience cost (in levels) to complete the current repair or the maximum experience cost (in levels) to be allowed by the current repair.",
        "The default value of max cost set by vanilla Minecraft is 40."
      ],
      "patterns": [
        "[the] [anvil] [item] [max[imum]] repair cost [of %inventories%]",
        "%inventories%'[s] [anvil] [item] [max[imum]] repair cost"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on inventory click:\n\tif {AnvilRepairSaleActive} = true:\n\t\twait a tick # recommended, to avoid client bugs\n\t\tset anvil repair cost to anvil repair cost * 50%\n\t\tsend \"Anvil repair sale is ON!\" to player\n",
        "on inventory click:\n\tplayer have permission \"anvil.repair.max.bypass\"\n\tset max repair cost of event-inventory to 99999\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprAnvilText",
      "name": "Anvil Text Input",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "An expression to get the name to be applied to an item in an anvil inventory."
      ],
      "patterns": [
        "[the] anvil [inventory] (rename|text) input of %inventories%",
        "%inventories%'[s] anvil [inventory] (rename|text) input"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on inventory click:\n\ttype of event-inventory is anvil inventory\n\tif the anvil text input of the event-inventory is \"FREE OP\":\n\t\tban player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprTextOf",
      "name": "Text Of",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the <a href='#string'>text/string</a> of <a href='#display'>displays</a>.",
        "Note that currently you can only use Skript chat codes when running Paper."
      ],
      "patterns": [
        "[the] text[s] of %displays%",
        "%displays%'[s] text[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set text of the last spawned text display to \"example\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprTagKey",
      "name": "Tag Namespaced Key",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The namespaced key of a minecraft tag. This takes the form of \"namespace:key\", e.g. \"minecraft:dirt\"."
      ],
      "patterns": [
        "[the] [namespace[d]] key[s] of %minecraft tags%",
        "%minecraft tags%'[s] [namespace[d]] key[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast namespaced keys of the tags of player's tool",
        "if the key of {_my-tag} is \"minecraft:stone\":\n\treturn true\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "minecraft tag",
        "type",
        "key",
        "namespace"
      ],
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprDifficulty",
      "name": "Difficulty",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "The difficulty of a world."
      ],
      "patterns": [
        "[the] difficult(y|ies) of %worlds%",
        "%worlds%'[s] difficult(y|ies)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the difficulty of \"world\" to hard"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "difficulty",
        "name": "Difficulty"
      }
    },
    {
      "id": "ExprAllPersistentDataKeys",
      "name": "All Persistent Data Keys",
      "since": [
        "2.15"
      ],
      "deprecated": false,
      "description": [
        "Returns all persistent data keys stored in the specified objects.\nThis is not limited to tags set by Skript, but includes all keys regardless of their origin.\n"
      ],
      "patterns": [
        "[all [[of] the]] [persistent] data [tag] keys of %objects%",
        "[all of] %objects%'[s] [persistent] data [tag] keys"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_keys::*} to persistent data keys of player's tool\nif size of {_keys::*} > 0:\n    broadcast \"The tool has the following persistent data keys: %{_keys::*}%\"\nelse:\n    broadcast \"The tool has no persistent data keys.\"\n",
        "for each {_key} in persistent data keys of player's tool:\n    broadcast \"Persistent data tag %{_key}%: %data tag {_key} of player's tool%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "pdc",
        "persistent data container",
        "custom data",
        "nbt"
      ],
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprMoonPhase",
      "name": "Moon Phase",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The current moon phase of a world."
      ],
      "patterns": [
        "[the] (lunar|moon) phase[s] of %worlds%",
        "%worlds%'[s] (lunar|moon) phase[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if moon phase of player's world is full moon:\n\tsend \"Watch for the wolves!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "moonphase",
        "name": "Moon Phase"
      }
    },
    {
      "id": "ExprDamageType",
      "name": "Damage Source - Damage Type",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "The type of damage of a damage source.",
        "Attributes of a damage source cannot be changed once created, only while within the 'custom damage source' section."
      ],
      "patterns": [
        "[the] damage type [of %damage sources%]",
        "%damage sources%'[s] damage type"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_source} to a custom damage source:\n\tset the damage type to magic\n\tset the causing entity to {_player}\n\tset the direct entity to {_arrow}\n\tset the damage location to location(0, 0, 10)\ndamage all players by 5 using {_source}\n",
        "on death:\n\tset {_type} to the damage type of event-damage source\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "damagetype",
        "name": "Damage Type"
      }
    },
    {
      "id": "ExprSpawnerType",
      "name": "Spawner Type",
      "since": [
        "2.4, 2.9.2 (trial spawner), 2.12 (delete)"
      ],
      "deprecated": false,
      "description": [
        "The entity type of a spawner (mob spawner).\nChange the entity type, reset it (pig) or clear it (Minecraft 1.20.0+).\n"
      ],
      "patterns": [
        "[the] (spawner|entity|creature) type[s] of %blocks%",
        "%blocks%'[s] (spawner|entity|creature) type[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click:\n\tif event-block is a spawner:\n\t\tsend \"Spawner's type if %spawner type of event-block%\" to player\n",
        "set the creature type of {_spawner} to a trader llama",
        "reset {_spawner}'s entity type # Pig",
        "clear the spawner type of {_spawner} # Minecraft 1.20.0+"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.20.0+ (delete)"
      ],
      "keywords": null,
      "returns": {
        "id": "entitydata",
        "name": "Entity Type"
      }
    },
    {
      "id": "ExprRemainingAir",
      "name": "Remaining Air",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "How much time a player has left underwater before starting to drown."
      ],
      "patterns": [
        "[the] remaining air of %living entities%",
        "%living entities%'[s] remaining air"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the player's remaining air is less than 3 seconds:\n\tsend \"hurry, get to the surface!\" to the player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprTimeLived",
      "name": "Time Lived of Entity",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Returns the total amount of time the entity has lived.\nNote: This does not reset when a player dies.\n"
      ],
      "patterns": [
        "[the] time (alive|lived) of %entities%",
        "%entities%'[s] time (alive|lived)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "clear all entities where [input's time lived > 1 hour]",
        "on right click on entity:\n\tsend \"%entity% has lived for %time lived of entity%\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprLastDamage",
      "name": "Last Damage",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "The last damage that was done to an entity. Note that changing it doesn't deal more/less damage."
      ],
      "patterns": [
        "[the] last damage of %living entities%",
        "%living entities%'[s] last damage"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set last damage of event-entity to 2"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprVectorSquaredLength",
      "name": "Vectors - Squared Length",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Gets the squared length of a vector."
      ],
      "patterns": [
        "[the] squared length[s] of %vectors%",
        "%vectors%'[s] squared length[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"%squared length of vector 1, 2, 3%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprDomestication",
      "name": "Horse Domestication",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Gets and/or sets the (max) domestication of a horse.",
        "The domestication of a horse is how close a horse is to becoming tame - the higher the domestication, the closer they are to becoming tame (must be between 1 and the max domestication level of the horse).",
        "The max domestication of a horse is how long it will take for a horse to become tame (must be greater than 0)."
      ],
      "patterns": [
        "[the] [max[imum]] domestication level of %living entities%",
        "%living entities%'[s] [max[imum]] domestication level"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "function domesticateAndTame(horse: entity, p: offline player, i: int = 10):\n\tadd {_i} to domestication level of {_horse}\n\tif domestication level of {_horse} >= max domestication level of {_horse}:\n\t\ttame {_horse}\n\t\tset tamer of {_horse} to {_p}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLastDeathLocation",
      "name": "Last Death Location",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Gets the last death location of a player, or offline player, if available.",
        "Can also be set, reset, and deleted if the player is online."
      ],
      "patterns": [
        "[the] [last] death location[s] of %offline players%",
        "%offline players%'[s] [last] death location[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_loc} to the last death location of player",
        "teleport player to last death location of (random element out of all players)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprActiveItem",
      "name": "Active Item",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Returns the item the entities are currently using (ie: the food they're eating, the bow they're drawing back, etc.). This cannot be changed. If an entity is not using any item, this will return null."
      ],
      "patterns": [
        "[the] (raised|active) (tool|item|weapon) of %living entities%",
        "%living entities%'[s] (raised|active) (tool|item|weapon)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage of player:\n\tif victim's active tool is a bow:\n\t\tinterrupt player's active item use\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "ExprWorldEnvironment",
      "name": "World Environment",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The environment of a world"
      ],
      "patterns": [
        "[the] [world] environment of %worlds%",
        "%worlds%'[s] [world] environment"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if environment of player's world is nether:\n\tapply fire resistance to player for 10 minutes\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "environment",
        "name": "World Environment"
      }
    },
    {
      "id": "ExprWorldBorderDamageAmount",
      "name": "Damage Amount of World Border",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The amount of damage a player takes per second for each block they are outside the border plus the border buffer.",
        "Players only take damage when outside of the world's world border, and the damage value cannot be less than 0."
      ],
      "patterns": [
        "[the] world[ ]border damage amount [of %worldborders%]",
        "%worldborders%'[s] world[ ]border damage amount"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set world border damage amount of {_worldborder} to 1"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLootTableSeed",
      "name": "Seed of Loot Table",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the seed of a loot table. Setting the seed of a block or entity that does not have a loot table will not do anything."
      ],
      "patterns": [
        "[the] loot[[ ]table] seed[s] of %entities/blocks%",
        "%entities/blocks%'[s] loot[[ ]table] seed[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_seed} loot table seed of block",
        "set loot table seed of entity to 123456789"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprCompassTarget",
      "name": "Compass Target",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The location a player's compass is pointing at.",
        "As of Minecraft 1.21.4, the compass is controlled by the resource pack and by default will not point to this compass target when used outside of the overworld dimension."
      ],
      "patterns": [
        "[the] compass target of %players%",
        "%players%'[s] compass target"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# make all player's compasses target a player stored in {compass::target::%player%}\nevery 5 seconds:\n\tloop all players:\n\t\tset the loop-player's compass target to location of {compass::target::%%loop-player%}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprDuplicateCooldown",
      "name": "Allay Duplication Cooldown",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The cooldown time until an allay can duplicate again naturally.",
        "Resetting the cooldown time will set the cooldown time to the same amount of time after an allay has duplicated."
      ],
      "patterns": [
        "[the] (duplicat(e|ing|ion)|clon(e|ing)) cool[ ]down [time] [of %living entities%]",
        "%living entities%'[s] (duplicat(e|ing|ion)|clon(e|ing)) cool[ ]down [time]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_time} to the duplicate cooldown of last spawned allay",
        "add 5 seconds to the duplication cool down time of last spawned allay",
        "remove 3 seconds from the duplicating cooldown time of last spawned allay",
        "clear the clone cool down of last spawned allay",
        "reset the cloning cool down time of last spawned allay"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprVectorLength",
      "name": "Vectors - Length",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Gets or sets the length of a vector."
      ],
      "patterns": [
        "[the] (vector|standard|normal) length[s] of %vectors%",
        "%vectors%'[s] (vector|standard|normal) length[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"%standard length of vector 1, 2, 3%\"",
        "set {_v} to vector 1, 2, 3",
        "set standard length of {_v} to 2",
        "send \"%standard length of {_v}%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprItemModel",
      "name": "Item Model",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "The item model of an item. Accepts a Namespaced Key which takes the form of \"namespace:key\", e.g. \"minecraft:dirt\". See <a href='https://minecraft.wiki/w/Identifier'> this article</a> for more detail. "
      ],
      "patterns": [
        "[the] item model [of %item types%]",
        "%item types%'[s] item model"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the item model of player's held item to \"diamond\"",
        "set the item model of {_item} to \"minecraft:dirt\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprTime",
      "name": "Time",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#time'>time</a> of a world.",
        "Use the \"minecraft <a href='#timespan'>timespan</a>\" syntax to change the time according to Minecraft's time intervals.",
        "Since Minecraft uses discrete intervals for time (ticks), changing the time by real-world minutes or real-world seconds only changes it approximately.",
        "Removing an amount of time from a world's time will move the clock forward a day."
      ],
      "patterns": [
        "[the] time[s] [([with]in|of) %worlds%]",
        "%worlds%'[s] time[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set time of world \"world\" to 2:00",
        "add 2 minecraft hours to time of world \"world\"",
        "add 54 real seconds to time of world \"world\" # approximately 1 minecraft hour"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "time",
        "name": "Time"
      }
    },
    {
      "id": "ExprPlayerProtocolVersion",
      "name": "Player Protocol Version",
      "since": [
        "2.6.2"
      ],
      "deprecated": false,
      "description": [
        "Player's protocol version. For more information and list of protocol versions <a href='https://wiki.vg/Protocol_version_numbers'>visit wiki.vg</a>."
      ],
      "patterns": [
        "[the] protocol version of %players%",
        "%players%'[s] protocol version"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /protocolversion <player>:\n\ttrigger:\n\t\tsend \"Protocol version of %arg-1%: %protocol version of arg-1%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprExperienceCooldown",
      "name": "Experience Pickup Cooldown",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The experience cooldown of a player.",
        "Experience cooldown is how long until a player can pick up another orb of experience.",
        "The cooldown of a player must be 0 to pick up another orb of experience."
      ],
      "patterns": [
        "[the] (experience|[e]xp) [pickup|collection] cooldown of %players%",
        "%players%'[s] (experience|[e]xp) [pickup|collection] cooldown"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send experience cooldown of player",
        "set the xp pickup cooldown of player to 1 hour",
        "if exp collection cooldown of player >= 10 minutes:\n\tclear the experience pickup cooldown of player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprDurability",
      "name": "Damage Value/Durability",
      "since": [
        "1.2, 2.7 (durability reversed)"
      ],
      "deprecated": false,
      "description": [
        "The damage value/durability of an item."
      ],
      "patterns": [
        "[the] (damage[s] [value[s]]|durabilit(y|ies)) of %item types/item stacks/slots%",
        "%item types/item stacks/slots%'[s] (damage[s] [value[s]]|durabilit(y|ies))"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set damage value of player's tool to 10",
        "reset the durability of {_item}",
        "set durability of player's held item to 0"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "PropExprAmount",
      "name": "Amount",
      "since": [
        "1.0",
        "2.13 (amounts of)"
      ],
      "deprecated": false,
      "description": [
        "The amount of something.\nUsing 'amount of {list::*}' will return the length of the list, so if you want the amounts of the things inside the lists, use 'amounts of {list::*}'.\n"
      ],
      "patterns": [
        "[the] amount[s] of %objects%",
        "%objects%'[s] amount[s]"
      ],
      "property": {
        "id": "amount",
        "name": "amount",
        "description": "The amount of something, say the number of items in a stack or in a queue.",
        "provider": "Skript",
        "since": [
          "2.13"
        ]
      },
      "propertyTypes": [
        {
          "id": "itemstack",
          "name": "Item"
        },
        {
          "id": "slot",
          "name": "Slot"
        },
        {
          "id": "itemtype",
          "name": "Item Type"
        },
        {
          "id": "numbered",
          "name": "Any Numbered/Sized Thing"
        },
        {
          "id": "queue",
          "name": "Queue"
        }
      ],
      "examples": [
        "message \"There are %amount of all players% players online!\"",
        "if amount of player's tool > 5:",
        "if amounts of player's tool and player's offhand tool > 5:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprTimePlayed",
      "name": "Time Played",
      "since": [
        "2.5, 2.7 (offline players)"
      ],
      "deprecated": false,
      "description": [
        "The amount of time a player has played for on the server. This info is stored in the player's statistics in the main world's data folder. Changing this will also change the player's stats which can be views in the client's statistics menu.",
        "Using this expression on offline players on Minecraft 1.14 and below will return nothing <code>&lt;none&gt;</code>."
      ],
      "patterns": [
        "[the] (time played|play[ ]time) of %offline players%",
        "%offline players%'[s] (time played|play[ ]time)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_t} to time played of player",
        "if player's time played is greater than 10 minutes:\n\tgive player a diamond sword\n",
        "set player's time played to 0 seconds"
      ],
      "events": null,
      "requirements": [
        "MC 1.15+ (offline players)"
      ],
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprGlowing",
      "name": "Glowing",
      "since": [
        "2.2-dev18"
      ],
      "deprecated": false,
      "description": [
        "Indicates if targeted entity is glowing (new 1.9 effect) or not. Glowing entities can be seen through walls."
      ],
      "patterns": [
        "[the] glowing of %entities%",
        "%entities%'[s] glowing"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set glowing of player to true"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "boolean",
        "name": "Boolean"
      }
    },
    {
      "id": "ExprPotionDuration",
      "name": "Potion Effect - Duration",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "An expression to obtain the duration of a potion effect."
      ],
      "patterns": [
        "[the] ([potion] duration|potion length)[s] [of %skriptpotioneffects%]",
        "%skriptpotioneffects%'[s] ([potion] duration|potion length)[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the duration of {_potion} to 10 seconds",
        "add 10 seconds to the duration of the player's speed effect"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprEntityItemUseTime",
      "name": "Active Item Use Time",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Returns the time that the entities have either spent using an item, or the time left for them to finish using an item.",
        "If an entity is not using any item, this will return 0 seconds."
      ],
      "patterns": [
        "[the] [elapsed|remaining] (item|tool) us[ag]e time of %living entities%",
        "%living entities%'[s] [elapsed|remaining] (item|tool) us[ag]e time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click:\n\tbroadcast player's remaining item use time\n\twait 1 second\n\tbroadcast player's item use time\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprRound",
      "name": "Rounding",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "Rounds numbers normally, up (ceiling) or down (floor) respectively."
      ],
      "patterns": [
        "[a|the] (round[ed] down|floored) %numbers%",
        "%numbers% (round[ed] down|floored)",
        "[a|the] round[ed] %numbers%",
        "%numbers% round[ed]",
        "[a|the] (round[ed] up|ceil[ing]ed) %numbers%",
        "%numbers% (round[ed] up|ceil[ing]ed)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {var} to rounded health of player",
        "set line 1 of the block to \"%rounded (1.5 * player's level)%\"",
        "add rounded down argument to the player's health"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprPotionAmplifier",
      "name": "Potion Effect - Amplifier",
      "since": [
        "2.7",
        "2.14 (support for potion effect objects, changing)"
      ],
      "deprecated": false,
      "description": [
        "An expression to obtain the amplifier of a potion effect."
      ],
      "patterns": [
        "[the] ([potion] amplifier|potion tier|potion level)[s] [of %skriptpotioneffects%]",
        "%skriptpotioneffects%'[s] ([potion] amplifier|potion tier|potion level)[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the amplifier of {_potion} to 10",
        "add 10 to the amplifier of the player's speed effect"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprVillagerLevel",
      "name": "Villager Level/Experience",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Represents the level/experience of a villager.",
        "The level will determine which trades are available to players (value between 1 and 5, defaults to 1).",
        "When a villager's level is 1, they may lose their profession if they don't have a workstation.",
        "Experience works along with the leveling system, determining which level the villager will move to.",
        "Experience must be greater than or equal to 0.",
        "Learn more about villager levels on <a href='https://minecraft.wiki/w/Trading#Level'>Minecraft Wiki</a>"
      ],
      "patterns": [
        "[the] villager (level|experience) of %living entities%",
        "%living entities%'[s] villager (level|experience)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_level} to villager level of {_villager}",
        "set villager level of last spawned villager to 2",
        "add 1 to villager level of target entity",
        "remove 1 from villager level of event-entity",
        "reset villager level of event-entity",
        "set villager experience of last spawned entity to 100"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLocationOf",
      "name": "Location",
      "since": [
        ""
      ],
      "deprecated": false,
      "description": [
        "The location of a block or entity. This not only represents the x, y and z coordinates of the location but also includes the world and the direction an entity is looking (e.g. teleporting to a saved location will make the teleported entity face the same saved direction every time).",
        "Please note that the location of an entity is at it's feet, use <a href='#ExprEyeLocation'>head location</a> to get the location of the head."
      ],
      "patterns": [
        "(location|position) of %location%",
        "%location%'[s] (location|position)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {home::%uuid of player%} to the location of the player",
        "message \"You home was set to %player's location% in %player's world%.\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprIP",
      "name": "IP",
      "since": [
        "1.4, 2.2-dev26 (when used in connect event), 2.3 (when used in server list ping event)"
      ],
      "deprecated": false,
      "description": [
        "The IP address of a player, or the connected player in a <a href='#connect'>connect</a> event, or the pinger in a <a href='#server_list_ping'>server list ping</a> event."
      ],
      "patterns": [
        "IP[s][( |-)address[es]] of %players%",
        "%players%'[s] IP[s][( |-)address[es]]",
        "IP[( |-)address]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "ban the IP address of the player\")\nbroadcast \"Banned the IP %IP of player%\"\n",
        "on connect:\n\tlog \"[%now%] %player% (%ip%) is connected to the server.\"\n",
        "on server list ping:\n\tsend \"%IP-address%\" to the console\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprRingingTime",
      "name": "Ringing Time",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Returns the ringing time of a bell.",
        "A bell typically rings for 50 game ticks."
      ],
      "patterns": [
        "[the] ring[ing] time of %block%",
        "%block%'[s] ring[ing] time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast \"The bell has been ringing for %ringing time of target block%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprAttackCooldown",
      "name": "Attack Cooldown",
      "since": [
        "2.6.1"
      ],
      "deprecated": false,
      "description": [
        "Returns the current cooldown for a player's attack. This is used to calculate damage, with 1.0 representing a fully charged attack and 0.0 representing a non-charged attack.",
        "NOTE: Currently this can not be set to anything."
      ],
      "patterns": [
        "[the] attack cooldown of %players%",
        "%players%'[s] attack cooldown"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\tif attack cooldown of attacker < 1:\n\t\tset damage to 0\n\t\tsend \"Your hit was too weak! wait until your weapon is fully charged next time.\" to attacker\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.15+"
      ],
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprFurnaceTime",
      "name": "Furnace Times",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The cook time, total cook time, and burn time of a furnace. Can be changed.",
        "<ul>",
        "<li>cook time: The amount of time an item has been smelting for.</li>",
        "<li>total cook time: The amount of time required to finish smelting an item.</li>",
        "<li>burn time: The amount of time left for the current fuel until consumption of another fuel item.</li>",
        "</ul>"
      ],
      "patterns": [
        "[the] [furnace] cook[ing] time [of %blocks%]",
        "%blocks%'[s]cook[ing] time",
        "[the] [furnace] total cook[ing] time [of %blocks%]",
        "%blocks%'[s]total cook[ing] time",
        "[the] [furnace] fuel burn[ing] time [of %blocks%]",
        "%blocks%'[s]fuel burn[ing] time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the cooking time of {_block} to 10",
        "set the total cooking time of {_block} to 50",
        "set the fuel burning time of {_block} to 100",
        "on smelt:\n\tif the fuel slot is charcoal:\n\t\tadd 5 seconds to the fuel burn time\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprBrewingTime",
      "name": "Brewing Time",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The remaining brewing time of a brewing stand."
      ],
      "patterns": [
        "[the] [current|remaining] brewing time [of %blocks%]",
        "%blocks%'[s] [current|remaining] brewing time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the brewing time of {_block} to 10 seconds",
        "clear the remaining brewing time of {_block}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprArrowsStuck",
      "name": "Arrows Stuck",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The number of arrows stuck in a living entity."
      ],
      "patterns": [
        "[number of] arrow[s] stuck in %living entities%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set arrows stuck in player to 5"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprAge",
      "name": "Age of Block/Entity",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Returns the age or maximum age of blocks and age for entities (there in no maximum age for entities).",
        "For blocks, 'Age' represents the different growth stages that a crop-like block can go through. A value of 0 indicates that the crop was freshly planted, whilst a value equal to 'maximum age' indicates that the crop is ripe and ready to be harvested.",
        "For entities, 'Age' represents the time left for them to become adults and it's in minus increasing to be 0 which means they're adults, e.g. A baby cow needs 20 minutes to become an adult which equals to 24,000 ticks so their age will be -24000 once spawned."
      ],
      "patterns": [
        "[the] [max[imum]] age of %blocks/entities%",
        "%blocks/entities%'[s] [max[imum]] age"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# Set targeted crop to fully grown crop\nset age of targeted block to maximum age of targeted block\n",
        "# Spawn a baby cow that will only need 1 minute to become an adult\nspawn a baby cow at player\nset age of last spawned entity to -1200 # in ticks = 60 seconds\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLastResourcePackResponse",
      "name": "Last Resource Pack Response",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "Returns the last resource pack response received from a player."
      ],
      "patterns": [
        "[the] [last] resource pack response[s] of %players%",
        "%players%'[s] [last] resource pack response[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player's last resource pack response is deny or download fail:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "resourcepackstate",
        "name": "Resource Pack State"
      }
    },
    {
      "id": "ExprARGB",
      "name": "Alpha/Red/Green/Blue Color Value",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The alpha, red, green, or blue value of colors. Ranges from 0 to 255.",
        "Alpha represents opacity."
      ],
      "patterns": [
        "[the] (alpha|red|green|blue) (value|component) of %colors%",
        "%colors%'[s] (alpha|red|green|blue) (value|component)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast red value of rgb(100, 0, 50) # sends '100'",
        "set {_red} to red's red value + 10"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "ARGB",
        "RGB",
        "color",
        "colour"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprDisplayHeightWidth",
      "name": "Display Height/Width",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the height or width of <a href='#display'>displays</a>.",
        "The rendering culling bounding box spans horizontally width/2 from entity position, which determines the point at which the display will be frustum culled (no longer rendered because the game determines you are no longer able to see it).",
        "If set to 0, no culling will occur on both the vertical and horizontal directions. Default is 0.0."
      ],
      "patterns": [
        "[the] display (height|width) [of %displays%]",
        "%displays%'[s] display (height|width)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set display height of the last spawned text display to 2.5"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprHexCode",
      "name": "Hex Code",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Returns the hexadecimal value representing the given color(s).\nThe hex value of a colour does not contain a leading #, just the RRGGBB value.\nFor those looking for hex values of numbers, see the asBase and fromBase functions.\n"
      ],
      "patterns": [
        "[the] hex[adecimal] code of %colors%",
        "%colors%'[s] hex[adecimal] code"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send formatted \"<#%hex code of rgb(100, 10, 10)%>darker red\" to all players"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprWorldBorderWarningDistance",
      "name": "Warning Distance of World Border",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The warning distance of a world border. The player's screen will be tinted red when they are within this distance of the border.",
        "Players only see a red tint when approaching a world's worldborder and the warning distance has to be an integer greater than or equal to 0."
      ],
      "patterns": [
        "[the] world[ ]border warning distance [of %worldborders%]",
        "%worldborders%'[s] world[ ]border warning distance"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set world border warning distance of {_worldborder} to 1"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprSortedList",
      "name": "Sorted List",
      "since": [
        "2.2-dev19, 2.14 (retain indices when looping)"
      ],
      "deprecated": false,
      "description": [
        "Sorts given list in natural order. All objects in list must be comparable; if they're not, this expression will return nothing."
      ],
      "patterns": [
        "sorted %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_sorted::*} to sorted {_players::*}",
        "command /leaderboard:\n\ttrigger:\n\t\tloop reversed sorted {most-kills::*}:\n\t\t\tsend \"%loop-counter%. %loop-index% with %loop-value% kills\" to sender\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "PropExprTitle",
      "name": "Title",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Represents the title of something.\n"
      ],
      "patterns": [
        "[the] title[s] of %objects%",
        "%objects%'[s] title[s]"
      ],
      "property": {
        "id": "title",
        "name": "title",
        "description": "The title of something.",
        "provider": "Skript",
        "since": [
          "2.16"
        ]
      },
      "propertyTypes": [
        {
          "id": "bossbar",
          "name": "BossBar"
        },
        {
          "id": "itemtype",
          "name": "Item Type"
        }
      ],
      "examples": [
        "set title of event-bossbar to \"<red>hello!\"\n",
        "on inventory click:\n\tif type of event-item is written book:\n\t\tset title of event-item to formatted \"<obf>%random uuid%\"\n\t\tsend \"Your book's title is now forever forgotten..\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprLootContextEntity",
      "name": "Looted Entity of Loot Context",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the looted entity of a loot context."
      ],
      "patterns": [
        "[the] looted entity [of %loot contexts%]",
        "%loot contexts%'[s] looted entity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_entity} to looted entity of {_context}",
        "set {_context} to a loot context at player:\n\tset loot luck value to 10\n\tset looter to player\n\tset looted entity to last spawned pig\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprNoDamageTicks",
      "name": "No Damage Ticks",
      "since": [
        "2.5, 2.11 (deprecated)"
      ],
      "deprecated": true,
      "description": [
        "The number of ticks that an entity is invulnerable to damage for."
      ],
      "patterns": [
        "[the] (invulnerability|invincibility|no damage) tick[s] [of %living entities%]",
        "%living entities%'[s] (invulnerability|invincibility|no damage) tick[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\tset victim's invulnerability ticks to 20 #Victim will not take damage for the next second\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprResonatingTime",
      "name": "Resonating Time",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Returns the resonating time of a bell.",
        "A bell will start resonating five game ticks after being rung, and will continue to resonate for 40 game ticks."
      ],
      "patterns": [
        "[the] resonat(e|ing) time of %block%",
        "%block%'[s] resonat(e|ing) time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast \"The bell has been resonating for %resonating time of target block%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprBeaconEffects",
      "name": "Beacon Effects",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The active effects of a beacon.",
        "The secondary effect can be set to anything, but the icon in the GUI will not display correctly.",
        "The secondary effect can only be set when the beacon is at max tier.",
        "The primary and secondary effect can not be the same, primary will always retain the potion type and secondary will be cleared."
      ],
      "patterns": [
        "[the] (primary|secondary) [beacon] effect [of %blocks%]",
        "%blocks%'[s] (primary|secondary) [beacon] effect"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set primary beacon effect of {_block} to haste\nset secondary effect of {_block} to resistance\n"
      ],
      "events": [
        {
          "id": "beacon_effect",
          "name": "On Beacon Effect"
        },
        {
          "id": "beacon_toggle",
          "name": "On Beacon Toggle"
        },
        {
          "id": "beacon_change_effect",
          "name": "On Beacon Change Effect"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "potioneffecttype",
        "name": "Potion Effect Type"
      }
    },
    {
      "id": "ExprMaxHealth",
      "name": "Max Health",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The maximum health of an entity, e.g. 10 for a player."
      ],
      "patterns": [
        "[the] max[imum] health of %living entities%",
        "%living entities%'[s] max[imum] health"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on join:\n\tset the maximum health of the player to 100\n",
        "spawn a giant\nset the last spawned entity's max health to 1000\n"
      ],
      "events": [
        {
          "id": "damage",
          "name": "On Damage"
        },
        {
          "id": "death",
          "name": "On Death"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLastDamageCause",
      "name": "Last Damage Cause",
      "since": [
        "2.2-Fixes-V10"
      ],
      "deprecated": false,
      "description": [
        "Cause of last damage done to an entity"
      ],
      "patterns": [
        "[the] last damage (cause|reason|type) of %living entities%",
        "%living entities%'[s] last damage (cause|reason|type)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set last damage cause of event-entity to fire tick"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "damagecause",
        "name": "Damage Cause"
      }
    },
    {
      "id": "ExprItemThrower",
      "name": "Dropped Item Thrower",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The uuid of the entity or player that threw/dropped the dropped item."
      ],
      "patterns": [
        "[the] uuid of [the] [dropped] item thrower [of %itementities%]",
        "[the] [dropped] item thrower's uuid [of %itementities%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the uuid of the dropped item thrower of {_dropped item} to player\nif the uuid of the dropped item thrower of {_dropped item} is uuid of player:\n",
        "clear the item thrower of {_dropped item}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "uuid",
        "name": "UUID"
      }
    },
    {
      "id": "ExprFireTicks",
      "name": "Entity Fire Burn Duration",
      "since": [
        "2.7, 2.10 (maximum)"
      ],
      "deprecated": false,
      "description": [
        "How much time an entity will be burning for."
      ],
      "patterns": [
        "[the] [max[imum]] (burn[ing]|fire) (time|duration) of %entities%",
        "%entities%'[s] [max[imum]] (burn[ing]|fire) (time|duration)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"You will stop burning in %fire time of player%\"",
        "send the max burn time of target"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprGlidingState",
      "name": "Gliding State",
      "since": [
        "2.2-dev21"
      ],
      "deprecated": false,
      "description": [
        "Sets of gets gliding state of player. It allows you to set gliding state of entity even if they do not have an <a href=\"https://minecraft.wiki/w/Elytra\">Elytra</a> equipped."
      ],
      "patterns": [
        "[the] (gliding|glider) [state] of %living entities%",
        "%living entities%'[s] (gliding|glider) [state]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set gliding of player to off"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "boolean",
        "name": "Boolean"
      }
    },
    {
      "id": "ExprEnderChest",
      "name": "Ender Chest",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The ender chest of a player."
      ],
      "patterns": [
        "[the] ender[ ]chest[s] of %players%",
        "%players%'[s] ender[ ]chest[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "open the player's ender chest to the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "inventory",
        "name": "Inventory"
      }
    },
    {
      "id": "ExprMiddleOfLocation",
      "name": "Middle of Location",
      "since": [
        "2.6.1"
      ],
      "deprecated": false,
      "description": [
        "Returns the middle/center of a location. In other words, returns the middle of the X, Z coordinates and the floor value of the Y coordinate of a location."
      ],
      "patterns": [
        "[the] (middle|center) [point] of %location%",
        "%location%'[s] (middle|center) [point]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /stuck:\n\texecutable by: players\n\ttrigger:\n\t\tteleport player to the center of player's location\n\t\tsend \"You're no longer stuck.\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprDisplayViewRange",
      "name": "Display View Range",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the view range of <a href='#display'>displays</a>.",
        "Default value is 1.0. This value is then multiplied by 64 and the player's entity view distance setting to determine the actual range.",
        "For example, a player with 150% entity view distance will see a block display with a view range of 1.2 at 1.2 * 64 * 150% = 115.2 blocks away."
      ],
      "patterns": [
        "[the] [display] view (range|radius) [of %displays%]",
        "%displays%'[s] [display] view (range|radius)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set view range of the last spawned text display to 2.9"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLootContextLooter",
      "name": "Looter of Loot Context",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the looter of a loot context. Note that setting the looter will read the looter's tool enchantments (e.g. looting) when generating loot."
      ],
      "patterns": [
        "[the] (looter|looting player) [of %loot contexts%]",
        "%loot contexts%'[s] (looter|looting player)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_killer} to looter of {_context}",
        "set {_context} to a loot context at player:\n\tset loot luck value to 10\n\tset looter to player\n\tset looted entity to last spawned pig\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "player",
        "name": "Player"
      }
    },
    {
      "id": "ExprVectorOfLocation",
      "name": "Vectors - Vector from Location",
      "since": [
        "2.2-dev28"
      ],
      "deprecated": false,
      "description": [
        "Creates a vector from a location."
      ],
      "patterns": [
        "[the] vector (of|from|to) %location%",
        "%location%'s vector"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_v} to vector of {_loc}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprBookAuthor",
      "name": "Book Author",
      "since": [
        "2.2-dev31"
      ],
      "deprecated": false,
      "description": [
        "The author of a book."
      ],
      "patterns": [
        "[the] [book] (author|writer|publisher) of %item types%",
        "%item types%'[s] [book] (author|writer|publisher)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on book sign:\n\tbroadcast \"A new book has been created by %author of event-item%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprBed",
      "name": "Bed",
      "since": [
        "2.0, 2.7 (offlineplayers, safe bed)"
      ],
      "deprecated": false,
      "description": [
        "Returns the bed location of a player, i.e. the spawn point of a player if they ever slept in a bed and the bed still exists and is unobstructed however, you can set the unsafe bed location of players and they will respawn there even if it has been obstructed or doesn't exist anymore and that's the default behavior of this expression otherwise you will need to be specific i.e. <code>safe bed location</code>.",
        "",
        "NOTE: Offline players can not have their bed location changed, only online players."
      ],
      "patterns": [
        "[the] [((safe|valid)|(unsafe|invalid))] bed[s] [location[s]] of %offline players%",
        "%offline players%'[s] [((safe|valid)|(unsafe|invalid))] bed[s] [location[s]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if bed of player exists:\n\tteleport player the the player's bed\nelse:\n\tteleport the player to the world's spawn point\n",
        "set the bed location of player to spawn location of world(\"world\") # unsafe/invalid bed location\nset the safe bed location of player to spawn location of world(\"world\") # safe/valid bed location\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprWorld",
      "name": "World",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The world the event occurred in."
      ],
      "patterns": [
        "[the] world [of %locations/entities/chunk%]",
        "%locations/entities/chunk%'[s] world"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "world is \"world_nether\"",
        "teleport the player to the world's spawn",
        "set the weather in the player's world to rain",
        "set {_world} to world of event-chunk"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "world",
        "name": "World"
      }
    },
    {
      "id": "ExprEquipCompSlot",
      "name": "Equippable Component - Equipment Slot",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The equipment slot an item can be equipped to.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "[the] equipment slot [of %equippable components%]",
        "%equippable components%'[s] equipment slot"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the equipment slot of {_item} to chest slot",
        "set {_component} to the equippable component of {_item}\nset the equipment slot of {_component} to boots slot\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "equipmentslot",
        "name": "Equipment Slot"
      }
    },
    {
      "id": "ExprEntitySize",
      "name": "Entity Size",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Changes the entity size of slimes and phantoms. This is not the same as changing the scale attribute of an entity.",
        "When changing the size of a slime, its health is fully resorted and will have changes done to its max health, movement speed and attack damage.",
        "The default minecraft size of a slime is anywhere between 0 and 2, with a maximum of 126.",
        "The default minecraft size of a phantom is 0 with a maximum size of 64."
      ],
      "patterns": [
        "[the] entity size of %living entities%",
        "%living entities%'[s] entity size"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "spawn a slime at player:\n\tset entity size of event-entity to 5\n\tset name of event-entity to \"King Slime Jorg\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprGroup",
      "name": "Group",
      "since": [
        "2.2-dev35"
      ],
      "deprecated": false,
      "description": [
        "The primary group or all groups of a player. This expression requires Vault and a compatible permissions plugin to be installed.",
        "If you have LuckPerms, ensure you have vault integration enabled in the luck perms configurations."
      ],
      "patterns": [
        "[the] group[s] of %offline players%",
        "%offline players%'[s] group[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on join:\n\tbroadcast \"%group of player%\" # this is the player's primary group\n\tbroadcast \"%groups of player%\" # this is all of the player's groups\n"
      ],
      "events": null,
      "requirements": [
        "Vault",
        "a permission plugin that supports Vault"
      ],
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprCarryingBlockData",
      "name": "Enderman Carrying BlockData",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The block data an enderman is carrying.",
        "Custom attributes such as NBT or names do not transfer over.",
        "Blocks, blockdatas and items are acceptable objects to change the carrying block."
      ],
      "patterns": [
        "[the] carr(ied|ying) block[[ ]data] of %living entities%",
        "%living entities%'[s] carr(ied|ying) block[[ ]data]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast the carrying blockdata of last spawned enderman",
        "set the carried block of last spawned enderman to an oak log",
        "set the carrying block data of {_enderman} to oak stairs[facing=north]",
        "set the carried blockdata of {_enderman} to {_item}",
        "clear the carried blockdata of {_enderman}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "blockdata",
        "name": "Block Data"
      }
    },
    {
      "id": "ExprPotionEffects",
      "name": "Potion Effects of Entity/Item",
      "since": [
        "2.5.2, 2.14 (active/hidden support, more change modes)"
      ],
      "deprecated": false,
      "description": [
        "An expression to obtain the active or hidden potion effects of an entity or item.",
        "When an entity is affected by a potion effect but already has a weaker version of that effect type, the weaker version becomes hidden. If the weaker version has a longer duration, it returns after the stronger version expires.",
        "NOTE: Hidden effects are not able to be changed.",
        "NOTE: Clearing the base potion effects of a potion item is not possible. If you wish to do so, just set the item to a water bottle."
      ],
      "patterns": [
        "[the] [active|hidden|(active and hidden|hidden and active)] potion effects of %entities/item types%",
        "%entities/item types%'[s] [active|hidden|(active and hidden|hidden and active)] potion effects"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_effects::*} to the active potion effects of the player",
        "clear the player's hidden potion effects",
        "add the potion effects of the player to the potion effects of the player's tool",
        "reset the potion effects of the player's tool",
        "remove speed and night vision from the potion effects of the player"
      ],
      "events": null,
      "requirements": [
        "Paper 1.20.4+ for hidden effects"
      ],
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprSkullOwner",
      "name": "Skull Owner",
      "since": [
        "2.9.0, 2.10 (of items)"
      ],
      "deprecated": false,
      "description": [
        "The skull owner of a player skull."
      ],
      "patterns": [
        "[the] (head|skull) owner of %slots/item types/item stacks/blocks%",
        "%slots/item types/item stacks/blocks%'[s] (head|skull) owner"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_owner} to the skull owner of event-block",
        "set skull owner of {_block} to \"Njol\" parsed as offlineplayer",
        "set head owner of player's tool to {_player}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "offlineplayer",
        "name": "Offline Player"
      }
    },
    {
      "id": "ExprBookTitle",
      "name": "Book Title",
      "since": [
        "2.2-dev31"
      ],
      "deprecated": true,
      "description": [
        "The title of a book."
      ],
      "patterns": [
        "[the] book (name|title) of %item types%",
        "%item types%'[s] book (name|title)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on book sign:\n\tmessage \"You finished your book titled %title of event-item%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprScoreboardTags",
      "name": "Scoreboard Tags",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Scoreboard tags are simple list of texts stored directly in the data of an <a href='#entity'>entity</a>.",
        "So this is a Minecraft related thing, not Bukkit, so the tags will not get removed when the server stops. You can visit <a href='https://minecraft.wiki/w/Scoreboard#Tags'>visit Minecraft Wiki</a> for more info.",
        "This is changeable and valid for any type of entity. Also you can use use the <a href='#CondHasScoreboardTag'>Has Scoreboard Tag</a> condition to check whether an entity has the given tags.",
        "",
        "Requires Minecraft 1.11+ (actually added in 1.9 to the game, but added in 1.11 to Spigot)."
      ],
      "patterns": [
        "[(all [[of] the]|the)] scoreboard tags of %entities%",
        "%entities%'[s] scoreboard tags"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn of a monster:\n\tif the spawn reason is mob spawner:\n\t\tadd \"spawned by a spawner\" to the scoreboard tags of event-entity\n\non death of a monster:\n\tif the attacker is a player:\n\t\tif the victim doesn't have the scoreboard tag \"spawned by a spawner\":\n\t\t\tadd 1$ to attacker's balance\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprTool",
      "name": "Tool",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The item an entity is holding in their main or off hand."
      ],
      "patterns": [
        "[the] (tool|held item|weapon) [of %living entities%]",
        "%living entities%'[s] (tool|held item|weapon)",
        "[the] off[ ]hand (tool|item) [of %living entities%]",
        "%living entities%'[s] off[ ]hand (tool|item)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player's tool is tagged with minecraft tag \"pickaxes\"",
        "player's off hand tool is a shield",
        "set tool of all players to a diamond sword",
        "set offhand tool of target entity to a bow"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "slot",
        "name": "Slot"
      }
    },
    {
      "id": "ExprPing",
      "name": "Ping",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "Pings of players, as Minecraft server knows them. Note that they will almost certainly be different from the ones you'd get from using ICMP echo requests. This expression is only supported on some server software (PaperSpigot)."
      ],
      "patterns": [
        "[the] ping of %players%",
        "%players%'[s] ping"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /ping <player=%player%>:\n\ttrigger:\n\t\tsend \"%arg-1%'s ping is %arg-1's ping%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprItemRarity",
      "name": "Item Rarity",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "The item rarity of an item."
      ],
      "patterns": [
        "[the] item rarity [of %item types%]",
        "%item types%'[s] item rarity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the item rarity of player's tool to epic",
        "set the item rarity of {_item} to uncommon",
        "set {_rarity} to item rarity of player's held item"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemrarity",
        "name": "Item Rarity"
      }
    },
    {
      "id": "ExprMinMaxEnchantmentLevel",
      "name": "Minimum/Maximum Enchantment Level",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "The minimum or maximum allowed level in Minecraft of a particular <a href='#enchantment'>enchantment</a>.\n\nThe minimum starting level is 1 for all existing enchantments as of 26.1.2.\n"
      ],
      "patterns": [
        "[the] ((max|min)[imum]|starting) enchant[ment] level [of %enchantments%]",
        "%enchantments%'[s] ((max|min)[imum]|starting) enchant[ment] level"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_maximum} to the maximum enchantment level of sharpness\nif the level of sharpness of the player's tool is greater than {_maximum}:\n\tsend \"<gold>Your tool's sharpness level was capped out at the maximum allowed level.</gold>\"\n\tset the level of sharpness of the player's tool to {_maximum}\n",
        "set {_min} to the minimum enchantment level of sharpness\nset {_max} to the maximum enchantment level of sharpness\nloop integers between {_min} and {_max}:\n\tset slot loop-counter of {_gui} to enchanted book named \"Sharpness %loop-value%\" with lore \"<reset>Click to enchant!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprCustomModelData",
      "name": "Custom Model Data",
      "since": [
        "2.5",
        "2.12 (floats/flags/strings/colours/full model data)"
      ],
      "deprecated": false,
      "description": [
        "Get/set the custom model data of an item. Using just `custom model data` will return an integer. Items without model data will return 0.",
        "Since 1.21.4, custom model data instead consists of a list of numbers (floats), a list of booleans (flags), a list of strings, and a list of colours. Accessing and modifying these lists can be done type-by-type, or all at once with `complete custom model data`. This is the more accurate and recommended method of using custom model data."
      ],
      "patterns": [
        "[the] [custom] model data of %item types%",
        "%item types%'[s] [custom] model data",
        "[the] [custom] model data (floats|flags|strings|colo[u]rs) of %item type%",
        "%item type%'[s] [custom] model data (floats|flags|strings|colo[u]rs)",
        "[the] ((complete|full)) [custom] model data of %item type%",
        "%item type%'[s] ((complete|full)) [custom] model data"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set custom model data of player's tool to 3\nset {_model} to custom model data of player's tool\n",
        "set custom model data colours of {_flag} to red, white, and blue\nadd 10.5 to the model data floats of {_flag}\n",
        "set the full custom model data of {_item} to 10, \"sword\", and rgb(100, 200, 30)\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.4+ (floats/flags/strings/colours/full model data)"
      ],
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprEntitySnapshot",
      "name": "Entity Snapshot",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the entity snapshot of a provided entity, which includes all the data associated with it (name, health, attributes, etc.) at the time this expression is used.",
        "Individual attributes of a snapshot cannot be modified or retrieved."
      ],
      "patterns": [
        "[the] entity snapshot of %entities/entity types%",
        "%entities/entity types%'[s] entity snapshot"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "spawn a pig at location(0, 0, 0):\n\tset the max health of entity to 20\n\tset the health of entity to 20\n\tset {_snapshot} to the entity snapshot of entity\n\tclear entity\nspawn {_snapshot} at location(0, 0, 0)\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.20.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "entitysnapshot",
        "name": "Entity Snapshot"
      }
    },
    {
      "id": "ExprDisplayTeleportDuration",
      "name": "Display Teleport Duration",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The teleport duration of displays is the amount of time it takes to get between locations.",
        "0 means that updates are applied immediately.",
        "1 means that the display entity will move from current position to the updated one over one tick.",
        "Higher values spread the movement over multiple ticks. Max of 59 ticks."
      ],
      "patterns": [
        "[the] teleport[ation] duration[s] [of %displays%]",
        "%displays%'[s] teleport[ation] duration[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set teleport duration of the last spawned text display to 2 ticks\nteleport last spawned text display to {_location}\nwait 2 ticks\nmessage \"display entity has arrived at %{_location}%\"\n"
      ],
      "events": null,
      "requirements": [
        "Spigot 1.20.4+"
      ],
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprEnchantments",
      "name": "Item Enchantments",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "All the enchantments an <a href='#itemtype'>item type</a> has."
      ],
      "patterns": [
        "[the] enchantments of %item types%",
        "%item types%'[s] enchantments"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "clear enchantments of event-item"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "enchantmenttype",
        "name": "Enchantment Type"
      }
    },
    {
      "id": "ExprUnixDate",
      "name": "Unix Date",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Converts given Unix timestamp to a date. The Unix timespan represents the number of seconds elapsed since 1 January 1970."
      ],
      "patterns": [
        "[the] unix date of %numbers%",
        "%numbers%'[s] unix date"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "unix date of 946684800 #1 January 2000 12:00 AM (UTC Time)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "date",
        "name": "Date"
      }
    },
    {
      "id": "ExprColorOf",
      "name": "Color of",
      "since": [
        "1.2, 2.10 (displays), 2.16 (boss bars)"
      ],
      "deprecated": false,
      "description": [
        "The <a href='#color'>color</a> of an item, entity, block, firework effect, or text display.",
        "This can also be used to color chat messages with \"&lt;%color of ...%&gt;this text is colored!\".",
        "Do note that firework effects support setting, adding, removing, resetting, and deleting; text displays support setting and resetting; and items, entities, and blocks only support setting, and only for very few items/blocks."
      ],
      "patterns": [
        "[the] colo[u]r[s] of %blocks/item types/entities/firework effects/potion effect types/displays/boss bars%",
        "%blocks/item types/entities/firework effects/potion effect types/displays/boss bars%'[s] colo[u]r[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on click on wool:\n\tif event-block is tagged with minecraft tag \"wool\":\n\t\tmessage \"This wool block is <%color of block%>%color of block%<reset>!\"\n\t\tset the color of the block to black\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "color",
        "name": "Color"
      }
    },
    {
      "id": "ExprLowestHighestSolidBlock",
      "name": "Lowest/Highest Solid Block",
      "since": [
        "2.2-dev34, 2.9.0 (lowest solid block, 'non-air' option removed, additional syntax option)"
      ],
      "deprecated": false,
      "description": [
        "An expression to obtain the lowest or highest solid (impassable) block at a location.",
        "Note that the y-coordinate of the location is not taken into account for this expression."
      ],
      "patterns": [
        "[the] (highest|lowest) [solid] block (at|of) %locations%",
        "%locations%'[s] (highest|lowest) [solid] block"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "teleport the player to the block above the highest block at the player",
        "set the highest solid block at the player's location to the lowest solid block at the player's location"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprMaxDurability",
      "name": "Max Durability",
      "since": [
        "2.5, 2.9.0 (change)"
      ],
      "deprecated": false,
      "description": [
        "The maximum durability of an item. Changing requires Minecraft 1.20.5+",
        "Note: 'delete' will remove the max durability from the item (making it a non-damageable item). Delete requires Paper 1.21+"
      ],
      "patterns": [
        "[the] max[imum] (durabilit(y|ies)|damage) of %item types/item stacks/slots%",
        "%item types/item stacks/slots%'[s] max[imum] (durabilit(y|ies)|damage)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "maximum durability of diamond sword",
        "if max durability of player's tool is not 0: # Item is damageable",
        "set max durability of player's tool to 5000",
        "add 5 to max durability of player's tool",
        "reset max durability of player's tool",
        "delete max durability of player's tool"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.20.5+ (custom amount)"
      ],
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprPrefixSuffix",
      "name": "Prefix/Suffix",
      "since": [
        "2.0, 2.10 (delete)"
      ],
      "deprecated": false,
      "description": [
        "The prefix or suffix as defined in the server's chat plugin."
      ],
      "patterns": [
        "[the] [chat] (prefix|suffix) of %players%",
        "%players%'[s] [chat] (prefix|suffix)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on chat:\n\tcancel event\n\tbroadcast \"%player's prefix%%player's display name%%player's suffix%: %message%\" to the player's world\n",
        "set the player's prefix to \"[<red>Admin<reset>] \"",
        "clear player's prefix"
      ],
      "events": null,
      "requirements": [
        "Vault",
        "a chat plugin that supports Vault"
      ],
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprEnchantmentOfferCost",
      "name": "Enchantment Offer Cost",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The cost of an enchantment offer. This is displayed to the right of an enchantment offer.",
        "If the cost is changed, it will always be at least 1.",
        "This changes how many levels are required to enchant, but does not change the number of levels removed.",
        "To change the number of levels removed, use the enchant event."
      ],
      "patterns": [
        "[the] [enchant[ment]] cost of %enchantment offers%",
        "%enchantment offers%'[s] [enchant[ment]] cost"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set cost of enchantment offer 1 to 50"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprCursorSlot",
      "name": "Cursor Slot",
      "since": [
        "2.2-dev17"
      ],
      "deprecated": false,
      "description": [
        "The item which the player has on their inventory cursor. This slot is always empty if player has no inventory open."
      ],
      "patterns": [
        "[the] cursor slot of %players%",
        "%players%'[s] cursor slot"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "cursor slot of player is dirt",
        "set cursor slot of player to 64 diamonds"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "slot",
        "name": "Slot"
      }
    },
    {
      "id": "ExprMaxItemUseTime",
      "name": "Max Item Use Time",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Returns the max duration an item can be used for before the action completes. E.g. it takes 1.6 seconds to drink a potion, or 1.4 seconds to load an unenchanted crossbow.",
        "Some items, like bows and shields, do not have a limit to their use. They will return 1 hour."
      ],
      "patterns": [
        "[the] max[imum] [item] us(e|age) (time|duration) of %item stacks%",
        "%item stacks%'[s] max[imum] [item] us(e|age) (time|duration)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click:\n\tbroadcast max usage duration of player's tool\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprVillagerProfession",
      "name": "Villager Profession",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Represents the profession of a villager/zombie villager."
      ],
      "patterns": [
        "[the] villager profession of %living entities%",
        "%living entities%'[s] villager profession"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_p} to villager profession of event-entity",
        "villager profession of event-entity = nitwit profession",
        "set villager profession of {_villager} to librarian profession",
        "delete villager profession of event-entity"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "villagerprofession",
        "name": "Villager Profession"
      }
    },
    {
      "id": "ExprVehicle",
      "name": "Vehicle",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The vehicle an entity is in, if any.",
        "This can actually be any entity, e.g. spider jockeys are skeletons that ride on a spider, so the spider is the 'vehicle' of the skeleton.",
        "See also: <a href='#ExprPassenger'>passenger</a>"
      ],
      "patterns": [
        "[the] vehicle[s] [of %entities%]",
        "%entities%'[s] vehicle[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the vehicle of {game::players::*} to a saddled pig\ngive {game::players::*} a carrot on a stick\n",
        "on vehicle enter:\n\tvehicle is a horse\n\tadd 1 to {statistics::horseMounting::%uuid of player%}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprPassenger",
      "name": "Passenger",
      "since": [
        "2.0, 2.2-dev26 (Multiple passengers for 1.11.2+)"
      ],
      "deprecated": false,
      "description": [
        "The passenger of a vehicle, or the rider of a mob.",
        "For 1.11.2 and above, it returns a list of passengers and you can use all changers in it.",
        "See also: <a href='#ExprVehicle'>vehicle</a>"
      ],
      "patterns": [
        "[the] passenger[s] of %entities%",
        "%entities%'[s] passenger[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "passengers of the minecart contains a creeper or a cow\nthe boat's passenger contains a pig\nadd a cow and a zombie to passengers of last spawned boat\nset passengers of player's vehicle to a pig and a horse\nremove all pigs from player's vehicle\nclear passengers of boat\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "PropExprWXYZ",
      "name": "WXYZ Component/Coordinate",
      "since": [
        "2.2-dev28, 2.10 (quaternions)"
      ],
      "deprecated": false,
      "description": [
        "Gets or changes the W, X, Y or Z component of anything with these components/coordinates, like locations, vectors, or quaternions.",
        "The W axis is only used for quaternions, currently."
      ],
      "patterns": [
        "[the] (x|y|z|w)( |-)[component[s]|coord[inate][s]|(pos[ition[s]]|loc[ation][s])] of %objects%",
        "%objects%'[s] (x|y|z|w)( |-)[component[s]|coord[inate][s]|(pos[ition[s]]|loc[ation][s])]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_v} to vector(1, 2, 3)\nsend \"%x of {_v}%, %y of {_v}%, %z of {_v}%\"\nadd 1 to x of {_v}\nadd 2 to y of {_v}\nadd 3 to z of {_v}\nsend \"%x of {_v}%, %y of {_v}%, %z of {_v}%\"\nset x component of {_v} to 1\nset y component of {_v} to 2\nset z component of {_v} to 3\nsend \"%x component of {_v}%, %y component of {_v}%, %z component of {_v}%\"\n",
        "set {_x} to x of player\nset {_z} to z of player\nif:\n\t{_x} is between 0 and 100\n\t{_z} is between 0 and 100\nthen:\n\tset y component of player's velocity to 10\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "component",
        "coord",
        "coordinate",
        "x",
        "y",
        "z",
        "xyz"
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprInventoryInfo",
      "name": "Inventory Holder/Viewers/Rows/Slots",
      "since": [
        "2.2-dev34, 2.5 (slots)"
      ],
      "deprecated": false,
      "description": [
        "Gets the amount of rows/slots, viewers and holder of an inventory.",
        "",
        "NOTE: 'Viewers' expression returns a list of players viewing the inventory. Note that a player is considered to be viewing their own inventory and internal crafting screen even when said inventory is not open."
      ],
      "patterns": [
        "(holder[s]|[amount of] rows|[amount of] slots) of %inventories%",
        "%inventories%'[s] (holder[s]|[amount of] rows|[amount of] slots)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "event-inventory's amount of rows",
        "holder of player's top inventory",
        "{_inventory}'s viewers"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "PropExprProgress",
      "name": "Progress",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Represents the progress of something.\n"
      ],
      "patterns": [
        "[the] progress of %objects%",
        "%objects%'[s] progress"
      ],
      "property": {
        "id": "progress",
        "name": "progress",
        "description": "The progress of something.",
        "provider": "Skript",
        "since": [
          "2.16"
        ]
      },
      "propertyTypes": [
        {
          "id": "bossbar",
          "name": "BossBar"
        }
      ],
      "examples": [
        "set progress of event-bossbar to 75%\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprPotionEffectTypeCategory",
      "name": "Potion Effect Type Category",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "An expression to obtain the category of a potion effect type.",
        "That is, whether the potion effect type is beneficial, harmful, or neutral."
      ],
      "patterns": [
        "[the] potion [effect [type]] category of %potion effect types%",
        "%potion effect types%'[s] potion [effect [type]] category"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on entity potion effect modification:\n\tif the potion effect type category is harmful:\n\t\t message \"You have been afflicted with %potion effect type%\"\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21+"
      ],
      "keywords": null,
      "returns": {
        "id": "potioneffecttypecategory",
        "name": "Potion Effect Type Category"
      }
    },
    {
      "id": "ExprVectorFromDirection",
      "name": "Vectors - Create from Direction",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "Creates vectors from given directions.",
        "Relative directions are relative to the origin, (0, 0, 0). Therefore, the vector from the direction 'forwards' is (0, 0, 1)."
      ],
      "patterns": [
        "vector[s] [from] %directions%",
        "%directions% vector[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_v} to vector from direction upwards",
        "set {_v} to vector in direction of player",
        "set {_v} to vector in horizontal direction of player",
        "set {_v} to vector from facing of player",
        "set {_v::*} to vectors from north, south, east, and west"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprUUID",
      "name": "UUID",
      "since": [
        "2.1.2, 2.2 (offline players' uuids), 2.2-dev24 (other entities' uuids)"
      ],
      "deprecated": false,
      "description": [
        "The UUID of a player, entity or world."
      ],
      "patterns": [
        "[the] uuid[s] of %offline players/worlds/entities%",
        "%offline players/worlds/entities%'[s] uuid[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# prevents people from joining the server if they use the name of a player\n# who has played on this server at least once since this script has been added\non login:\n\tif {uuid::%name of player%} exists:\n\t\t{uuid::%name of player%} is not uuid of player\n\t\tkick player due to \"Someone with your name has played on this server before\"\n\telse:\n\t\tset {uuid::%name of player%} to uuid of player\n",
        "command /what-is-my-uuid:\n\ttrigger:\n\t\tset {_uuid} to uuid of player\n\t\tsend \"Your UUID is '%string within {_uuid}%'\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "uuid",
        "name": "UUID"
      }
    },
    {
      "id": "PropExprName",
      "name": "Name",
      "since": [
        "before 2.1",
        "2.2-dev20 (inventory name)",
        "2.4 (non-living entity support, changeable inventory name)",
        "2.7 (worlds)"
      ],
      "deprecated": false,
      "description": [
        "Represents the Minecraft account name of a player, or the custom name of an item, entity, block, inventory, gamerule, world, script or function.",
        "",
        "<strong>Players:</strong> The Minecraft account name of the player. Can't be changed.",
        "",
        "<strong>Entities:</strong> The custom name of the entity. Can be changed. But for living entities, the players will have to target the entity to see its name tag. For non-living entities, the name will not be visible at all. To prevent this, use 'display name'.",
        "",
        "<strong>Items:</strong> The <em>custom</em> name of the item (not the Minecraft locale name). Can be changed.",
        "",
        "<strong>Inventories:</strong> The name/title of the inventory. Changing name of an inventory means opening the same inventory with the same contents but with a different name to its current viewers.",
        "",
        "<strong>Gamerules:</strong> The name of the gamerule. Cannot be changed.",
        "",
        "<strong>Worlds:</strong> The name of the world. Cannot be changed.",
        "",
        "<strong>Scripts:</strong> The name of a script, excluding its file extension."
      ],
      "patterns": [
        "[the] name[s] of %objects%",
        "%objects%'[s] name[s]"
      ],
      "property": {
        "id": "name",
        "name": "name",
        "description": "A name, such as a script's name or a player's account name.",
        "provider": "Skript",
        "since": [
          "2.13"
        ]
      },
      "propertyTypes": [
        {
          "id": "gamerule",
          "name": "Gamerule"
        },
        {
          "id": "slot",
          "name": "Slot"
        },
        {
          "id": "bossbar",
          "name": "BossBar"
        },
        {
          "id": "script",
          "name": "Script"
        },
        {
          "id": "itemtype",
          "name": "Item Type"
        },
        {
          "id": "offlineplayer",
          "name": "Offline Player"
        },
        {
          "id": "entity",
          "name": "Entity"
        },
        {
          "id": "world",
          "name": "World"
        },
        {
          "id": "block",
          "name": "Block"
        },
        {
          "id": "nameable",
          "name": "Nameable"
        },
        {
          "id": "named",
          "name": "Any Named Thing"
        },
        {
          "id": "inventory",
          "name": "Inventory"
        },
        {
          "id": "player",
          "name": "Player"
        },
        {
          "id": "node",
          "name": "Node"
        },
        {
          "id": "function",
          "name": "Function"
        },
        {
          "id": "config",
          "name": "Config"
        },
        {
          "id": "commandsender",
          "name": "Command Sender"
        }
      ],
      "examples": [
        "on join:",
        "\tplayer has permission \"name.red\"",
        "\tset the player's display name to \"&lt;red&gt;[admin] &lt;gold&gt;%name of player%\"",
        "set the name of the player's tool to \"Legendary Sword of Awesomeness\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprMaxMinecartSpeed",
      "name": "Max Minecart Speed",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "The maximum speed of a minecart."
      ],
      "patterns": [
        "[the] max[imum] minecart (speed|velocity) of %entities%",
        "%entities%'[s] max[imum] minecart (speed|velocity)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click on minecart:\n\tset max minecart speed of event-entity to 1\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "PropExprScale",
      "name": "Scale",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Represents the physical size/scale of something.",
        "For example, the scale of a display entity would be a vector containing multipliers on its size in the x, y, and z axis.",
        "For a particle effect like the sweeping edge particle, scale is a number determining how large the particle should be."
      ],
      "patterns": [
        "[the] scale[s] of %objects%",
        "%objects%'[s] scale[s]"
      ],
      "property": {
        "id": "scale",
        "name": "scale",
        "description": "The scale of something, say the x/y/z scales of a display entity.",
        "provider": "Skript",
        "since": [
          "2.14"
        ]
      },
      "propertyTypes": [
        {
          "id": "scalableparticle",
          "name": "Scalable Particle Effect"
        },
        {
          "id": "display",
          "name": "Display Entity"
        }
      ],
      "examples": [
        "set the scale of {_display} to vector(0,2,0)",
        "set the scale of {_particle} to 1.5"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprBalance",
      "name": "Money",
      "since": [
        "2.0, 2.5 (offline players)"
      ],
      "deprecated": false,
      "description": [
        "How much virtual money a player has (can be changed)."
      ],
      "patterns": [
        "[the] (money|balance|[bank] account) of %offline players%",
        "%offline players%'[s] (money|balance|[bank] account)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message \"You have %player's money%\" # the currency name will be added automatically",
        "remove 20$ from the player's balance # replace '$' by whatever currency you use",
        "add 200 to the player's account # or omit the currency altogether"
      ],
      "events": null,
      "requirements": [
        "Vault",
        "an economy plugin that supports Vault"
      ],
      "keywords": null,
      "returns": {
        "id": "money",
        "name": "Money"
      }
    },
    {
      "id": "ExprRecursiveSize",
      "name": "Recursive Size",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The recursive size of list.",
        "Returns the recursive size of the list with sublists included, e.g.",
        "",
        "<pre>",
        "{list::*} Structure<br>",
        "  ├──── {list::1}: 1<br>",
        "  ├──── {list::2}: 2<br>",
        "  │     ├──── {list::2::1}: 3<br>",
        "  │     │    └──── {list::2::1::1}: 4<br>",
        "  │     └──── {list::2::2}: 5<br>",
        "  └──── {list::3}: 6",
        "</pre>",
        "",
        "Where using %size of {list::*}% will only return 3 (the first layer of indices only), while %recursive size of {list::*}% will return 6 (the entire list)",
        "Please note that getting a list's recursive size can cause lag if the list is large, so only use this expression if you need to!"
      ],
      "patterns": [
        "[the] recursive (amount|number|size) of %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if recursive size of {player-data::*} > 1000:"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprTimeSince",
      "name": "Time Since/Until",
      "since": [
        "2.5, 2.10 (time until)"
      ],
      "deprecated": false,
      "description": [
        "The time since a date has passed or the time until a date will pass.",
        "This expression will return 0 seconds if the time since or time until would be negative, e.g. if one tries to get the time since a future date."
      ],
      "patterns": [
        "[the] time since %dates%",
        "[the] (time [remaining]|remaining time) until %dates%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"%time since 5 minecraft days ago% has passed since 5 minecraft days ago!\" to player",
        "send \"%time until {countdown::end}% until the game begins!\" to player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprTextDisplayAlignment",
      "name": "Text Display Alignment",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the <a href='#textalignment'>alignment</a> setting of <a href='#display'>text displays</a>."
      ],
      "patterns": [
        "[the] text alignment[s] [of %displays%]",
        "%displays%'[s] text alignment[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set text alignment of the last spawned text display to left aligned"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textalignment",
        "name": "Display Text Alignment"
      }
    },
    {
      "id": "ExprTablistedPlayers",
      "name": "Tablisted Players",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The players shown in the tab lists of the specified players.",
        "`delete` will remove all the online players from the tab list.",
        "`reset` will reset the tab list to the default state, which makes all players visible again."
      ],
      "patterns": [
        "[the] (tablist[ed]|listed) players [of %players%]",
        "%players%'[s] (tablist[ed]|listed) players"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "tablist players of player"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "tablist"
      ],
      "returns": {
        "id": "player",
        "name": "Player"
      }
    },
    {
      "id": "ExprSkull",
      "name": "Player Skull",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "Gets a skull item representing a player. Skulls for other entities are provided by the aliases."
      ],
      "patterns": [
        "[the] skull of %offline players%",
        "%offline players%'[s] skull"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "give the victim's skull to the attacker",
        "set the block at the entity to the entity's skull"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprLootTable",
      "name": "Loot Table",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the loot table of an entity or block.",
        "Setting the loot table of a block will update the block state, and once opened will generate loot of the specified loot table. Please note that doing so may cause warnings in the console due to over-filling the chest.",
        "Please note that resetting/deleting the loot table of an ENTITY will reset the entity's loot table to its default."
      ],
      "patterns": [
        "[the] loot[ ]table[s] of %entities/blocks%",
        "%entities/blocks%'[s] loot[ ]table[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set loot table of event-entity to \"minecraft:entities/ghast\"\n# this will set the loot table of the entity to a ghast's loot table, thus dropping ghast tears and gunpowder\n",
        "set loot table of event-block to \"minecraft:chests/simple_dungeon\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "loottable",
        "name": "Loot Table"
      }
    },
    {
      "id": "ExprExplosiveYield",
      "name": "Explosive Yield",
      "since": [
        "2.5, 2.11 (ghasts)"
      ],
      "deprecated": false,
      "description": [
        "The yield of an explosive (creeper, ghast, primed tnt, fireball, etc.). This is how big of an explosion is caused by the entity.",
        "Read <a href='https://minecraft.wiki/w/Explosion'>this wiki page</a> for more information.",
        "The yield of ghasts can only be set to between 0 and 127."
      ],
      "patterns": [
        "[the] explosive (yield|radius|size|power) of %entities%",
        "%entities%'[s] explosive (yield|radius|size|power)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn of a creeper:\n\tset the explosive yield of the event-entity to 10\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprSkullTexture",
      "name": "Skull Texture",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "The skull texture of a player head. This allows you to give a skull a custom texture (e.g. instead of it being a Steve head, it's Notch's head).\nThe texture input is a base64 string containing the texture data to use (https://minecraft-heads.com is one site that provides easy access to base64 texture strings).\nResetting the texture of a skull will make it look like a Steve/Alex head.\n"
      ],
      "patterns": [
        "[the] (skull|head) texture of %item types%",
        "%item types%'[s] (skull|head) texture"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the skull texture of {_i} to \"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTM4NmRmZDc0Y2JhZmJkMWRiZTQ3OWY1ZTAzNzRjMDliZjJlYjRlMzg2NjExZmM0ZmM2OTlmMDJlY2E0ZGQyYyJ9fX0=\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprUnbreakable",
      "name": "Unbreakable Items",
      "since": [
        "2.2-dev13b, 2.9.0 (breakable)"
      ],
      "deprecated": false,
      "description": [
        "Creates breakable or unbreakable copies of given items."
      ],
      "patterns": [
        "[un]breakable %item types%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_item} to unbreakable iron sword",
        "give breakable {_weapon} to all players"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprDebugInfo",
      "name": "Debug Info",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Returns a string version of the given objects, but with their type attached:\n\tdebug info of 1, \"a\", 0.5 -> 1 (long), \"a\" (string), 0.5 (double)\nThis is intended to make debugging easier, not as a reliable method of getting the type of a value.\n"
      ],
      "patterns": [
        "[the] debug info[rmation] of %objects%",
        "%objects%'[s] debug info[rmation]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast debug info of {list::*}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprSourceLocation",
      "name": "Damage Source - Source Location",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "The final location where the damage was originated from.",
        "The 'source location' for vanilla damage sources will retrieve the 'damage location' if set. If 'damage location' is not set, will attempt to grab the location of the 'causing entity', otherwise, null."
      ],
      "patterns": [
        "[the] source location [of %damage sources%]",
        "%damage sources%'[s] source location"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on death:\n\tset {_location} to the source location of event-damage source\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "PropExprSize",
      "name": "Size",
      "since": [
        "1.0",
        "2.13 (sizes of)"
      ],
      "deprecated": false,
      "description": [
        "The size of something.\nUsing 'size of {list::*}' will return the length of the list, so if you want the sizes of the things inside the lists, use 'sizes of {list::*}'.\n"
      ],
      "patterns": [
        "[the] size[s] of %objects%",
        "%objects%'[s] size[s]"
      ],
      "property": {
        "id": "size",
        "name": "size",
        "description": "The size of something, say the number of elements in a queue.",
        "provider": "Skript",
        "since": [
          "2.13"
        ]
      },
      "propertyTypes": [
        {
          "id": "numbered",
          "name": "Any Numbered/Sized Thing"
        },
        {
          "id": "queue",
          "name": "Queue"
        }
      ],
      "examples": [
        "message \"There are %size of all players% players online!\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprBrushableItem",
      "name": "Buried Item",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Represents the item that is uncovered when dusting.",
        "The only blocks that can currently be \"dusted\" are Suspicious Gravel and Suspicious Sand."
      ],
      "patterns": [
        "[the] (brushable|buried) item of %blocks%",
        "%blocks%'[s] (brushable|buried) item"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send target block's brushable item",
        "set {_gravel}'s brushable item to emerald"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.20+"
      ],
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "ExprRedstoneBlockPower",
      "name": "Redstone Block Power",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Power of a redstone block"
      ],
      "patterns": [
        "[the] redstone power of %blocks%",
        "%blocks%'[s] redstone power"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if redstone power of targeted block is 15:\n\tsend \"This block is very powerful!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprCodepoint",
      "name": "Character Codepoint",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Returns the Unicode codepoint of a character"
      ],
      "patterns": [
        "[the] [unicode|character] code([ ]point| position) of %texts%",
        "%texts%'[s] [unicode|character] code([ ]point| position)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "function is_in_order(letters: strings) :: boolean:\n\tloop {_letters::*}:\n\t\tset {_codepoint} to codepoint of lowercase loop-value\n\n\t\treturn false if {_codepoint} is not set # 'loop-value is not a single character'\n\n\t\tif:\n\t\t\t{_previous-codepoint} is set\n\t\t\t# if the codepoint of the current character is not\n\t\t\t#  1 more than the codepoint of the previous character\n\t\t\t#  then the letters are not in order\n\t\t\t{_codepoint} - {_previous-codepoint} is not 1\n\t\tthen:\n\t\t\treturn false\n\n\t\tset {_previous-codepoint} to {_codepoint}\n\treturn true\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprBlockSound",
      "name": "Block Sound",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Gets the sound that a given block, blockdata, or itemtype will use in a specific scenario.",
        "This will return a string in the form of \"SOUND_EXAMPLE\", which can be used in the play sound syntax.",
        "",
        "Check out <a href=\"https://minecraft.wiki/w/Sounds.json\">this website</a> for a list of sounds in Minecraft, or <a href=\"https://minecraft.wiki/w/Sound\">this one</a> to go to the Sounds wiki page."
      ],
      "patterns": [
        "[the] (break|fall|hit|place|step) sound[s] of %blocks/block datas/item types%",
        "%blocks/block datas/item types%'[s] (break|fall|hit|place|step) sound[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "play sound (break sound of dirt) at all players",
        "set {_sounds::*} to place sounds of dirt, grass block, blue wool and stone"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprLastAttacker",
      "name": "Last Attacker",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "The last block or entity that attacked an entity."
      ],
      "patterns": [
        "[the] last attacker of %entity%",
        "%entity%'[s] last attacker"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"%last attacker of event-entity%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprLevelProgress",
      "name": "Level Progress",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The player's progress in reaching the next level, this represents the experience bar in the game. Please note that this value is between 0 and 1 (e.g. 0.5 = half experience bar).",
        "Changing this value can cause the player's level to change if the resulting level progess is negative or larger than 1, e.g. <code>increase the player's level progress by 0.5</code> will make the player gain a level if their progress was more than 50%."
      ],
      "patterns": [
        "[the] level progress of %players%",
        "%players%'[s] level progress"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# use the exp bar as mana\non rightclick with a blaze rod:\n\tplayer's level progress is larger than 0.2\n\tshoot a fireball from the player\n\treduce the player's level progress by 0.2\nevery 2 seconds:\n\tloop all players:\n\t\tlevel progress of loop-player is smaller than 0.9:\n\t\t\tincrease level progress of the loop-player by 0.1\n\t\telse:\n\t\t\tset level progress of the loop-player to 0.99\non xp spawn:\n\tcancel event\n"
      ],
      "events": [
        {
          "id": "level_change",
          "name": "On Level Change"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprBeehiveFlower",
      "name": "Beehive Target Flower",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The flower a beehive has selected to pollinate from."
      ],
      "patterns": [
        "[the] target flower [of %blocks%]",
        "%blocks%'[s] target flower"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the target flower of {_beehive} to location(0, 0, 0)",
        "clear the target flower of {_beehive}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprTimeState",
      "name": "Former/Future State",
      "since": [
        "1.1"
      ],
      "deprecated": false,
      "description": [
        "Represents the value of an expression before an event happened or the value it will have directly after the event, e.g. the old or new level respectively in a <a href='#level_change'>level change event</a>.",
        "Note: The past, future and present states of an expression are sometimes called 'time states' of an expression.",
        "Note 2: If you don't specify whether to use the past or future state of an expression that has different values, its default value will be used which is usually the value after the event."
      ],
      "patterns": [
        "[the] (former|past|old) [state] [of] %~objects%",
        "%~objects% before [the event]",
        "[the] (future|to-be|new) [state] [of] %~objects%",
        "%~objects%(-to-be| after[(wards| the event)])"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on teleport:\n\tformer world was \"world_nether\" # or 'world was'\n\tworld will be \"world\" # or 'world after the event is'\n",
        "on tool change:\n\tpast tool is an axe\n\tthe tool after the event will be air\n",
        "on weather change:\n\tset {weather::%world%::old} to past weather\n\tset {weather::%world%::current} to the new weather\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprCausingEntity",
      "name": "Damage Source - Causing Entity",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "The causing entity of a damage source.",
        "The causing entity is the entity that ultimately caused the damage. (e.g. the entity that shot an arrow)",
        "When setting a 'causing entity' you must also set a 'direct entity'.",
        "Attributes of a damage source cannot be changed once created, only while within the 'custom damage source' section."
      ],
      "patterns": [
        "[the] (causing|responsible) entity [of %damage sources%]",
        "%damage sources%'[s] (causing|responsible) entity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_source} to a custom damage source:\n\tset the damage type to magic\n\tset the causing entity to {_player}\n\tset the direct entity to {_arrow}\n\tset the damage location to location(0, 0, 10)\n",
        "on damage:\n\tset {_causing} to the causing entity of event-damage source\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprWeather",
      "name": "Weather",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The weather of a world or player.",
        "Clearing or resetting the weather of a player will make the player's weather match the weather of the world.",
        "Clearing or resetting the weather of a world will make the weather clear."
      ],
      "patterns": [
        "[the] weather [(in|of) %players/worlds%]",
        "[the] (custom|client) weather [of %players%]",
        "%players/worlds%'[s] weather",
        "%players%'[s] (custom|client) weather"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set weather to clear",
        "weather in \"world\" is rainy",
        "reset custom weather of player",
        "set weather of player to clear"
      ],
      "events": [
        {
          "id": "weather_change",
          "name": "On Weather Change"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "weathertype",
        "name": "Weather Type"
      }
    },
    {
      "id": "ExprVillagerType",
      "name": "Villager Type",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Represents the type of a villager/zombie villager. This usually represents the biome the villager is from."
      ],
      "patterns": [
        "[the] villager type of %living entities%",
        "%living entities%'[s] villager type"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_type} to villager type of {_villager}",
        "villager type of {_villager} = plains",
        "set villager type of event-entity to plains"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "villagertype",
        "name": "Villager Type"
      }
    },
    {
      "id": "ExprSeaLevel",
      "name": "Sea Level",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "Gets the sea level of a world."
      ],
      "patterns": [
        "[the] sea level of %worlds%",
        "%worlds%'[s] sea level"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"The sea level in your world is %sea level in player's world%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprWorldBorder",
      "name": "World Border",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Get the border of a world or a player.",
        "A player's world border is not persistent. Restarts, quitting, death or changing worlds will reset the border."
      ],
      "patterns": [
        "[the] world[ ]border [of %worlds/players%]",
        "%worlds/players%'[s] world[ ]border"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_border} to world border of player's world"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "worldborder",
        "name": "World Border"
      }
    },
    {
      "id": "ExprAllayJukebox",
      "name": "Allay Target Jukebox",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The location of the jukebox an allay is set to."
      ],
      "patterns": [
        "[the] target jukebox [of %living entities%]",
        "%living entities%'[s] target jukebox"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_loc} to the target jukebox of last spawned allay"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "PropExprViewers",
      "name": "Viewers",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Represents something that is viewing something.\n"
      ],
      "patterns": [
        "[the] viewer[s] of %objects%",
        "%objects%'[s] viewer[s]"
      ],
      "property": {
        "id": "viewers",
        "name": "viewers",
        "description": "The viewers of something.",
        "provider": "Skript",
        "since": [
          "2.16"
        ]
      },
      "propertyTypes": [
        {
          "id": "bossbar",
          "name": "BossBar"
        },
        {
          "id": "inventory",
          "name": "Inventory"
        }
      ],
      "examples": [
        "add {_player} to viewers of event-bossbar\n",
        "on inventory open:\n\tset {_mylist::*} to viewers of event-inventory\n\tsend \"%size of {_list::*}% other players are viewing this inventory!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprWorldBorderWarningTime",
      "name": "Warning Time of World Border",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The warning time of a world border. If the border is shrinking, the player's screen will be tinted red once the border will catch the player within this time period."
      ],
      "patterns": [
        "[the] world[ ]border warning time [of %worldborders%]",
        "%worldborders%'[s] world[ ]border warning time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set world border warning time of {_worldborder} to 1 second"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprFirstEmptySlot",
      "name": "First Empty Slot in Inventory",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Returns the first empty slot in an inventory. If no empty slot is found, it returns nothing."
      ],
      "patterns": [
        "[the] first empty slot[s] of %inventories%",
        "%inventories%'[s] first empty slot[s]",
        "[the] first empty slot[s] in %inventories%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the first empty slot in player's inventory to 5 diamonds",
        "if the first empty slot in player's inventory is not set:\n\tmessage \"No empty slot available in your inventory!\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "full",
        "inventory",
        "empty",
        "air",
        "slot"
      ],
      "returns": {
        "id": "slot",
        "name": "Slot"
      }
    },
    {
      "id": "ExprFoodLevel",
      "name": "Food Level",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The food level of a player from 0 to 10. Has several aliases: food/hunger level/meter/bar. "
      ],
      "patterns": [
        "[the] (food|hunger)[[ ](level|met(er|re)|bar)] [of %players%]",
        "%players%'[s] (food|hunger)[[ ](level|met(er|re)|bar)]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the player's food level to 10"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprParticleSpeed",
      "name": "Particle Speed/Extra Value",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Determines the specific 'speed' or 'extra' value of a particle.\nThis value is used in different ways depending on the particle, but in general it:\n* acts as the speed at which the particle moves if the particle count is greater than 0.\n* acts as a multiplier to the particle's offset if the particle count is 0.\n\nMore detailed information on particle behavior can be found at <a href=\"https://docs.papermc.io/paper/dev/particles/#count-argument-behavior\">Paper's particle documentation</a>.\n"
      ],
      "patterns": [
        "[the] (particle speed [value]|extra value) of %particles%",
        "%particles%'[s] (particle speed [value]|extra value)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the extra value of {_my-flame-particle} to 2",
        "set the particle speed of {_my-flame-particle} to 0"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprBeaconTier",
      "name": "Beacon Tier",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The tier of a beacon. Ranges from 0 to 4."
      ],
      "patterns": [
        "[the] beacon tier of %blocks%",
        "%blocks%'[s] beacon tier"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the beacon tier of the clicked block is 4:\n\tsend \"This is a max tier beacon!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprInteractionDimensions",
      "name": "Interaction Height/Width",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Returns the height or width of an interaction entity's hitbox. Both default to 1.\nThe width of the hitbox determines the x/z widths\n"
      ],
      "patterns": [
        "[the] interaction (height|width)[s] [of %entities%]",
        "%entities%'[s] interaction (height|width)[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set interaction height of last spawned interaction to 5.3",
        "set interaction width of last spawned interaction to 2"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprItemOfEntity",
      "name": "Item of an Entity",
      "since": [
        "2.2-dev35, 2.2-dev36 (improved), 2.5.2 (throwable projectiles), 2.10 (item displays), 2.14.1 (arrows)"
      ],
      "deprecated": false,
      "description": [
        "An item associated with an entity. For dropped item entities, it gets the item that was dropped.",
        "For item frames, the item inside the frame is returned.",
        "For throwable projectiles (snowballs, enderpearls etc.) or item displays, it gets the displayed item.",
        "For arrows, it gets the item that will be picked up when retrieving the arrow. Note that setting the item may not change the displayed model, and that setting a spectral arrow to a non-spectral arrow or vice-versa will not affect the effects of the projectile.",
        "Other entities do not have items associated with them."
      ],
      "patterns": [
        "[the] item [inside] of %entities%",
        "%entities%'[s] item [inside]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "item of event-entity",
        "set the item inside of event-entity to a diamond sword named \"Example\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "slot",
        "name": "Slot"
      }
    },
    {
      "id": "ExprProjectileCriticalState",
      "name": "Projectile Critical State",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "A projectile's critical state. The only currently accepted projectiles are arrows and tridents."
      ],
      "patterns": [
        "[the] (projectile|arrow) critical (state|ability|mode) of %projectiles%",
        "%projectiles%'[s] (projectile|arrow) critical (state|ability|mode)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on shoot:\n\tevent-projectile is an arrow\n\tset projectile critical mode of event-projectile to true\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "boolean",
        "name": "Boolean"
      }
    },
    {
      "id": "ExprDustedStage",
      "name": "Brushing Stage",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Represents how far the block has been uncovered.\nThe only blocks that can currently be \"brushed\" are Suspicious Gravel and Suspicious Sand.\n0 means the block is untouched, the max (usually 3) means nearly fulled brushed.\nResetting this value will set it to 0.\n"
      ],
      "patterns": [
        "[the] [max[imum]] (dust|brush)[ed|ing] (value|stage|progress[ion]) of %blocks/block datas%",
        "%blocks/block datas%'[s] [max[imum]] (dust|brush)[ed|ing] (value|stage|progress[ion])"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# prevent dusting past level 1\non player change block:\n\tif dusting progress of future event-blockdata > 1:\n\t\tcancel event\n",
        "# draw particles when dusting is complete!\non player change block:\n\tif brushing progress of event-block is max brushing stage of event-block:\n\t\tdraw 20 totem of undying particles at event-block\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "brush",
        "brushing",
        "dusting"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLootContextLocation",
      "name": "Loot Location of Loot Context",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the loot location of a loot context."
      ],
      "patterns": [
        "[the] loot[ing] [context] location [of %loot contexts%]",
        "%loot contexts%'[s] loot[ing] [context] location"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_player} to player\nset {_context} to a loot context at player:\n\tif {_player} is in \"world_nether\":\n\t\tset loot location to location of last spawned pig\nsend loot location of {_context} to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprEquipCompShearSound",
      "name": "Equippable Component - Shear Sound",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The sound to be played when the item is sheared off of an entity.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "[the] shear[ed [off]] sound [of %equippable components%]",
        "%equippable components%'[s] shear[ed [off]] sound"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the shear sound of {_item} to \"entity.experience_orb.pickup\"",
        "set {_component} to the equippable component of {_item}\nset the shear sound of {_component} to \"block.note_block.pling\"\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.6+"
      ],
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprItemOwner",
      "name": "Dropped Item Owner",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The uuid of the owner of the dropped item.\nSetting the owner of a dropped item means only that entity or player can pick it up.\nDropping an item does not automatically make the entity or player the owner.\n"
      ],
      "patterns": [
        "[the] uuid of [the] [dropped] item owner [of %itementities%]",
        "[the] [dropped] item owner's uuid [of %itementities%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "\tset the uuid of the dropped item owner of last dropped item to player\n\tif the uuid of the dropped item owner of last dropped item is uuid of player:\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "uuid",
        "name": "UUID"
      }
    },
    {
      "id": "ExprPlayerListName",
      "name": "Player List Name",
      "since": [
        "Before 2.1"
      ],
      "deprecated": false,
      "description": [
        "The name of a player in the player list in the tab menu."
      ],
      "patterns": [
        "[the] (player|tab)[ ]list name[s] of %players%",
        "%players%'[s] (player|tab)[ ]list name[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on join:\n\tplayer has permission \"name.red\"\n\tset the player's tab list name to \"<red>%player's name%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "tablist",
        "tab list"
      ],
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprEquipCompEquipSound",
      "name": "Equippable Component - Equip Sound",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The sound to be played when the item is equipped.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "[the] equip sound [of %equippable components%]",
        "%equippable components%'[s] equip sound"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the equip sound of {_item} to \"entity.experience_orb.pickup\"",
        "set {_component} to the equippable component of {_item}\nset the equip sound of {_component} to \"block.note_block.pling\"\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprWorldBorderDamageBuffer",
      "name": "Damage Buffer of World Border",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The amount of blocks a player may safely be outside the border before taking damage.",
        "Players only take damage when outside of the world's world border, and the damage buffer distance cannot be less than 0."
      ],
      "patterns": [
        "[the] world[ ]border damage buffer [of %worldborders%]",
        "%worldborders%'[s] world[ ]border damage buffer"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set world border damage buffer of {_worldborder} to 10"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprBlockData",
      "name": "Block Data",
      "since": [
        "2.5, 2.5.2 (set), 2.10 (block displays)"
      ],
      "deprecated": false,
      "description": [
        "Get the <a href='#blockdata'>block data</a> associated with a block.",
        "This data can also be used to set blocks."
      ],
      "patterns": [
        "[the] block[ ]data of %blocks/displays/entities%",
        "%blocks/displays/entities%'[s] block[ ]data"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_data} to block data of target block",
        "set block at player to {_data}",
        "set block data of target block to oak_stairs[facing=south;waterlogged=true]"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "blockdata",
        "name": "Block Data"
      }
    },
    {
      "id": "ExprItemWithEnchantmentGlint",
      "name": "Item with Enchantment Glint",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Get an item with or without enchantment glint."
      ],
      "patterns": [
        "%item types% with[out] [enchant[ment]] glint"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_item with glint} to diamond with enchantment glint",
        "set {_item without glint} to diamond without enchantment glint"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprGravity",
      "name": "Gravity",
      "since": [
        "2.2-dev21"
      ],
      "deprecated": false,
      "description": [
        "If entity is affected by gravity or not, i.e. if it has Minecraft 1.10+ NoGravity flag."
      ],
      "patterns": [
        "[the] gravity of %entities%",
        "%entities%'[s] gravity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set gravity of player off"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "boolean",
        "name": "Boolean"
      }
    },
    {
      "id": "ExprDamageLocation",
      "name": "Damage Source - Damage Location",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "The location where the damage was originated from.",
        "The 'damage location' on vanilla damage sources will be set if an entity did not cause the damage.",
        "Attributes of a damage source cannot be changed once created, only while within the 'custom damage source' section."
      ],
      "patterns": [
        "[the] damage location [of %damage sources%]",
        "%damage sources%'[s] damage location"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "damage all players by 5 using a custom damage source:\n\tset the damage type to magic\n\tset the causing entity to {_player}\n\tset the direct entity to {_arrow}\n\tset the damage location to location(0, 0, 10)\n",
        "on death:\n\tset {_location} to the damage location of event-damage source\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprHiddenPlayers",
      "name": "Hidden Players",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "The players hidden from a player that were hidden using the <a href='#EffEntityVisibility'>entity visibility</a> effect."
      ],
      "patterns": [
        "[(all [[of] the]|the)] hidden players (of|for) %players%",
        "[(all [[of] the]|the)] players hidden (from|for|by) %players%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message \"&lt;light red&gt;You are currently hiding: &lt;light gray&gt;%hidden players of the player%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "player",
        "name": "Player"
      }
    },
    {
      "id": "ExprLoveTime",
      "name": "Love Time",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The amount of time the animals have been in love for. Using a value of 30 seconds is equivalent to using an item to breed them.",
        "Only works on animals that can be bred and returns '0 seconds' for animals that can't be bred."
      ],
      "patterns": [
        "[the] love[d] time of %living entities%",
        "%living entities%'[s] love[d] time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click:\n\tsend \"%event-entity% has been in love for %love time of event-entity% more than you!\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprCharacterFromCodepoint",
      "name": "Character from Codepoint",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Returns the character at the specified codepoint"
      ],
      "patterns": [
        "character (from|at|with) code([ ]point| position) %integer%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "function chars_between(lower: string, upper: string) :: strings:\n\tset {_lower} to codepoint of {_lower}\n\treturn {_none} if {_lower} is not set\n\n\tset {_upper} to codepoint of {_upper}\n\treturn {_none} if {_upper} is not set\n\n\tloop integers between {_lower} and {_upper}:\n\t\tadd character from codepoint loop-value to {_chars::*}\n\treturn {_chars::*}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprHealth",
      "name": "Health",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The health of a creature, e.g. a player, mob, villager, etc. The minimum value is 0, and the maximum is the creature's max health (e.g. 10 for players)."
      ],
      "patterns": [
        "[the] health of %living entities%",
        "%living entities%'[s] health"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message \"You have %health% HP left.\""
      ],
      "events": [
        {
          "id": "damage",
          "name": "On Damage"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprPermissions",
      "name": "All Permissions",
      "since": [
        "2.2-dev33"
      ],
      "deprecated": false,
      "description": [
        "Returns all permissions of the defined player(s). Note that the modifications to resulting list do not actually change permissions."
      ],
      "patterns": [
        "[(all [[of] the]|the)] permissions (from|of) %players%",
        "[(all [[of] the]|the)] %players%'[s] permissions"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_permissions::*} to all permissions of the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprBossBarFromEntity",
      "name": "Boss Bar From Boss",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Returns a boss bar from one or more bosses.\n"
      ],
      "patterns": [
        "[the] boss[ ]bar of %entities%",
        "%entities%'[s] boss[ ]bar"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on spawn of wither:\n    set title of boss bar of event-entity to \"<red>Angry Wither\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "bossbar",
        "name": "BossBar"
      }
    },
    {
      "id": "ExprEquipCompCameraOverlay",
      "name": "Equippable Component - Camera Overlay",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The camera overlay for the player when the item is equipped.\nExample: The jack-o'-lantern view when having a jack-o'-lantern equipped as a helmet.\nThe camera overlay is represented as a namespaced key.\nA namespaced key can be formatted as 'namespace:id' or 'id'. It can only contain one ':' to separate the namespace and the id. Only alphanumeric characters, periods, underscores, and dashes can be used.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "[the] camera overlay [of %equippable components%]",
        "%equippable components%'[s] camera overlay"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the camera overlay of {_item} to \"custom_overlay\"",
        "set {_component} to the equippable component of {_item}\nset the camera overlay of {_component} to \"custom_overlay\"\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprExactItem",
      "name": "Exact Item",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Get an exact item representation of a block, carrying over any data. For example, using this expression on a chest block with items stored inside will return a chest item with the exact same items in its inventory as the chest block."
      ],
      "patterns": [
        "[the] exact item[s] of %blocks%",
        "%blocks%'[s] exact item[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_item} to exact item of block at location(0, 0, 0)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemstack",
        "name": "Item"
      }
    },
    {
      "id": "ExprDirectEntity",
      "name": "Damage Source - Direct Entity",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "The direct entity of a damage source.",
        "The direct entity is the entity that directly caused the damage. (e.g. the arrow that was shot)",
        "Attributes of a damage source cannot be changed once created, only while within the 'custom damage source' section."
      ],
      "patterns": [
        "[the] direct entity [of %damage sources%]",
        "%damage sources%'[s] direct entity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_source} to a custom damage source:\n\tset the damage type to magic\n\tset the causing entity to {_player}\n\tset the direct entity to {_arrow}\n\tset the damage location to location(0, 0, 10)\ndamage all players by 5 using {_source}\n",
        "on death:\n\tset {_direct} to the direct entity of event-damage source\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprLevel",
      "name": "Level",
      "since": [
        "unknown (before 2.1), 2.13.2 (allow player default)"
      ],
      "deprecated": false,
      "description": [
        "The experience level of a player."
      ],
      "patterns": [
        "[the] [xp|exp[erience]] level [of %players%]",
        "%players%'[s] [xp|exp[erience]] level"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "reduce the victim's level by 1",
        "set the player's level to 0",
        "on level change:\n\tset {_diff} to future xp level - past exp level\n\tbroadcast \"%player%'s level changed by %{_diff}%!\"\n"
      ],
      "events": [
        {
          "id": "level_change",
          "name": "On Level Change"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprNoDamageTime",
      "name": "No Damage Time",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The amount of time an entity is invulnerable to any damage."
      ],
      "patterns": [
        "[the] (invulnerability|invincibility|no damage) time[[ ]span] [of %living entities%]",
        "%living entities%'[s] (invulnerability|invincibility|no damage) time[[ ]span]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\tset victim's invulnerability time to 20 ticks #Victim will not take damage for the next second\n",
        "if the no damage timespan of {_entity} is 0 seconds:\n\tset the invincibility time span of {_entity} to 1 minute\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprSpawn",
      "name": "Spawn",
      "since": [
        "1.4.2"
      ],
      "deprecated": false,
      "description": [
        "The spawn point of a world."
      ],
      "patterns": [
        "[the] spawn[s] [(point|location)[s]] [of %worlds%]",
        "%worlds%'[s] spawn[s] [(point|location)[s]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "teleport all players to spawn",
        "set the spawn point of \"world\" to the player's location"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprEquipCompModel",
      "name": "Equippable Component - Model",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The model of the item when equipped.\nThe model key is represented as a namespaced key.\nA namespaced key can be formatted as 'namespace:id' or 'id'. It can only contain one ':' to separate the namespace and the id. Only alphanumeric characters, periods, underscores, and dashes can be used.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "[the] equipped (model|asset) (key|id) [of %equippable components%]",
        "%equippable components%'[s] equipped (model|asset) (key|id)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the equipped model key of {_item} to \"custom_model\"",
        "set {_component} to the equippable component of {_item}\nset the equipped model id of {_component} to \"custom_model\"\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprDisplayBrightness",
      "name": "Display Brightness",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the brightness override of <a href='#display'>displays</a>.",
        "Unmodified displays will not have a brightness override value set. Resetting or deleting this value will remove the override.",
        "Use the 'block' or 'sky' options to get/change specific values or get both values as a list by using neither option.",
        "NOTE: setting only one of the sky/block light overrides of a display without an existing override will set both sky and block light to the given value. Make sure to set both block and sky levels to your desired values for the best results. Likewise, you can only clear the brightness override, you cannot clear/reset the sky/block values individually."
      ],
      "patterns": [
        "[the] [block|sky] (light [level]|brightness) override[s] of %displays%",
        "%displays%'[s] [block|sky] (light [level]|brightness) override[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set sky light override of the last spawned text display to 7",
        "subtract 3 from the block light level override of the last spawned text display",
        "if sky light level override of {_display} is 5:\n\tclear brightness override of {_display}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "PropExprStyle",
      "name": "Style",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "Represents the style of something.\n"
      ],
      "patterns": [
        "[the] style[s] of %objects%",
        "%objects%'[s] style[s]"
      ],
      "property": {
        "id": "style",
        "name": "style",
        "description": "The style of something.",
        "provider": "Skript",
        "since": [
          "2.16"
        ]
      },
      "propertyTypes": [
        {
          "id": "bossbar",
          "name": "BossBar"
        }
      ],
      "examples": [
        "set style of event-bossbar to 6 notches\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprEntityStorageEntityCount",
      "name": "Entity Storage Entity Count",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The current number of entities stored inside an entity block storage (i.e. beehive).",
        "The maximum amount of entities an entity block storage can hold."
      ],
      "patterns": [
        "[the] [max[imum]] [stored] entity count [of %blocks%]",
        "%blocks%'[s] [max[imum]] [stored] entity count"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast the stored entity count of {_beehive}",
        "set the maximum entity count of {_beehive} to 20"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprSpeed",
      "name": "Speed",
      "since": [
        "unknown (before 2.1)"
      ],
      "deprecated": false,
      "description": [
        "A player's walking or flying speed. Both can be changed, but values must be between -1 and 1 (excessive values will be changed to -1 or 1 respectively). Negative values reverse directions.",
        "Please note that changing a player's speed will change their FOV just like potions do."
      ],
      "patterns": [
        "[the] (walk[ing]|fl(y[ing]|ight))[( |-)]speed of %players%",
        "%players%'[s] (walk[ing]|fl(y[ing]|ight))[( |-)]speed"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the player's walk speed to 1",
        "increase the argument's fly speed by 0.1"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "PropExprNumber",
      "name": "Number Of",
      "since": [
        "1.0",
        "2.13 (numbers of)"
      ],
      "deprecated": false,
      "description": [
        "The number of something.\nUsing 'number of {list::*}' will return the length of the list, so if you want the numbers of the things inside the lists, use 'numbers of {list::*}'.\n"
      ],
      "patterns": [
        "[the] number[s] of %objects%",
        "%objects%'[s] number[s]"
      ],
      "property": {
        "id": "number",
        "name": "number",
        "description": "The number of something, say the number of elements in a queue.",
        "provider": "Skript",
        "since": [
          "2.13"
        ]
      },
      "propertyTypes": [
        {
          "id": "numbered",
          "name": "Any Numbered/Sized Thing"
        }
      ],
      "examples": [
        "message \"There are %number of all players% players online!\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprWardenAngryAt",
      "name": "Warden Most Angered At",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The entity a warden is most angry at.",
        "A warden can be angry towards multiple entities with different anger levels."
      ],
      "patterns": [
        "[the] most angered entity of %living entities%",
        "%living entities%'[s] most angered entity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the most angered entity of last spawned warden is not player:\n\tset the most angered entity of last spawned warden to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "livingentity",
        "name": "Living Entity"
      }
    },
    {
      "id": "ExprSimulationDistance",
      "name": "Simulation Distance",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The simulation distance of a world or a player.",
        "Simulation distance is the minimum distance in chunks for entities to tick.",
        "Simulation distance is capped to the current view distance of the world or player.",
        "The view distance is capped between 2 and 32 chunks."
      ],
      "patterns": [
        "[the] simulation distance[s] of %worlds/players%",
        "%worlds/players%'[s] simulation distance[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set simulation distance of player to 10",
        "add 50 to the simulation distance of world \"world\"",
        "reset the simulation distance of player",
        "clear the simulation distance of world \"world\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprFacing",
      "name": "Facing",
      "since": [
        "1.4"
      ],
      "deprecated": false,
      "description": [
        "The facing of an entity or block, i.e. exactly north, south, east, west, up or down (unlike <a href='#ExprDirection'>direction</a> which is the exact direction, e.g. '0.5 south and 0.7 east')"
      ],
      "patterns": [
        "[the] [(horizontal)] facing of %living entities/blocks%",
        "%living entities/blocks%'[s] [(horizontal)] facing"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# makes a bridge\nloop blocks from the block below the player in the horizontal facing of the player:\n\tset loop-block to cobblestone\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "direction",
        "name": "Direction"
      }
    },
    {
      "id": "ExprExhaustion",
      "name": "Exhaustion",
      "since": [
        "2.2-dev35"
      ],
      "deprecated": false,
      "description": [
        "The exhaustion of a player. This is mainly used to determine the rate of hunger depletion."
      ],
      "patterns": [
        "[the] exhaustion of %players%",
        "%players%'[s] exhaustion"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set exhaustion of all players to 1"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprStoredEnchantments",
      "name": "Stored Enchantments",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "The enchantments stored inside an enchanted book. This is different from enchanting the book, as for example a book\nof sharpness does not deal more damage when used as a weapon. Corresponds to the <code>minecraft:stored_enchantments</code> data component.\nNote that for example resetting the stored enchantments of an enchanted book of Sharpness III removes the sharpness enchantment, since\nit is impossible to know what the original enchantments of the item were. Note also that only one entry can exist per enchantment type;\nadding Sharpness III to a book with Sharpness V will convert it to a book of Sharpness III.\n"
      ],
      "patterns": [
        "[the] stored enchant[ment]s of %item types%",
        "%item types%'[s] stored enchant[ment]s"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /godbook:\n\ttrigger:\n\t\tset {_item} to minecraft:enchanted_book\n\t\tadd mending to stored enchants of {_item} # adds mending 1\n\t\tadd knockback 12 to stored enchants of {_item}\n\t\tadd fire aspect 3 to stored enchants of {_item}\n\t\tgive {_item} to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "enchantmenttype",
        "name": "Enchantment Type"
      }
    },
    {
      "id": "ExprLanguage",
      "name": "Language",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Currently selected game language of a player. The value of the language is not defined properly.",
        "The vanilla Minecraft client will use lowercase language / country pairs separated by an underscore, but custom resource packs may use any format they wish."
      ],
      "patterns": [
        "[the] [([currently] selected|current)] [game] (language|locale) [setting] of %players%",
        "%players%'[s] [([currently] selected|current)] [game] (language|locale) [setting]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message player's current language"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprMaxFreezeTicks",
      "name": "Maximum Freeze Time",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The maximum amount of time an entity can spend in powdered snow before taking damage."
      ],
      "patterns": [
        "[the] max[imum] freeze time of %entities%",
        "%entities%'[s] max[imum] freeze time"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "difference between player's freeze time and player's max freeze time is less than 1 second:\n\tsend \"you're about to freeze!\" to the player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprColorFromHexCode",
      "name": "Color from Hex Code",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "Returns a proper argb color from a hex code string. The hex code must contain RRGGBB values, but can also contain a leading # or AARRGGBB format. Invalid codes will cause runtime errors."
      ],
      "patterns": [
        "[the] colo[u]r[s] (from|of) hex[adecimal] code[s] %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send color from hex code \"#FFBBA7\"",
        "send color from hex code \"FFBBA7\"",
        "send color from hex code \"#AAFFBBA7\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "color",
        "name": "Color"
      }
    },
    {
      "id": "ExprOpenedInventory",
      "name": "Opened Inventory",
      "since": [
        "2.2-dev24, 2.2-dev35 (Just 'current inventory' works in player events)"
      ],
      "deprecated": false,
      "description": [
        "Return the currently opened inventory of a player.",
        "If no inventory is open, it returns the own player's crafting inventory."
      ],
      "patterns": [
        "[the] (current|open|top) inventory [of %players%]",
        "%players%'[s] (current|open|top) inventory"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set slot 1 of player's current inventory to diamond sword"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "inventory",
        "name": "Inventory"
      }
    },
    {
      "id": "ExprGameMode",
      "name": "Game Mode",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The gamemode of a player. See <a href=\"#gamemode\">Gamemodes</a>\n"
      ],
      "patterns": [
        "[the] game[ ]mode of %players%",
        "%players%'[s] game[ ]mode"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player's gamemode is survival",
        "set the player's gamemode to creative",
        "set gamemode of player to adventure"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "gamemode",
        "name": "Game Mode"
      }
    },
    {
      "id": "ExprAttachedBlock",
      "name": "Arrow Attached Block",
      "since": [
        "2.8.0, 2.12 (multiple blocks)"
      ],
      "deprecated": false,
      "description": [
        "Returns the attached block of an arrow.",
        "If running Paper 1.21.4+, the plural version of the expression should be used as it is more reliable compared to the single version."
      ],
      "patterns": [
        "[the] (attached|hit) block[s] of %projectiles%",
        "%projectiles%'[s] (attached|hit) block[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set hit block of last shot arrow to diamond block",
        "on projectile hit:\n\twait 1 tick\n\tbreak attached blocks of event-projectile\n\tkill event-projectile\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.4+ (multiple blocks)"
      ],
      "keywords": null,
      "returns": {
        "id": "block",
        "name": "Block"
      }
    },
    {
      "id": "ExprYawPitch",
      "name": "Yaw / Pitch",
      "since": [
        "2.0, 2.2-dev28 (vector yaw/pitch), 2.9.0 (entity changers)"
      ],
      "deprecated": false,
      "description": [
        "The yaw or pitch of a location or vector.",
        "A yaw of 0 or 360 represents the positive z direction. Adding a positive number to the yaw of a player will rotate it clockwise.",
        "A pitch of 90 represents the negative y direction, or downward facing. A pitch of -90 represents upward facing. Adding a positive number to the pitch will rotate the direction downwards.",
        "Only Paper 1.19+ users may directly change the yaw/pitch of players."
      ],
      "patterns": [
        "[the] (yaw|pitch) of %entities/locations/vectors%",
        "%entities/locations/vectors%'[s] (yaw|pitch)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "log \"%player%: %location of player%, %player's yaw%, %player's pitch%\" to \"playerlocs.log\"",
        "set {_yaw} to yaw of player",
        "set {_p} to pitch of target entity",
        "set pitch of player to -90 # Makes the player look upwards, Paper 1.19+ only",
        "add 180 to yaw of target of player # Makes the target look behind themselves"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprItemAmount",
      "name": "Item Amount",
      "since": [
        "2.2-dev24"
      ],
      "deprecated": false,
      "description": [
        "The amount of an <a href='#itemstack'>item stack</a>."
      ],
      "patterns": [
        "[the] item[[ ]stack] (amount|size|number) of %slots/item types/item stacks%",
        "%slots/item types/item stacks%'[s] item[[ ]stack] (amount|size|number)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"You have got %item amount of player's tool% %player's tool% in your hand!\" to player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprCommandBlockCommand",
      "name": "Command Block Command",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Gets or sets the command associated with a command block or minecart with command block."
      ],
      "patterns": [
        "[the] [command[ ]block] command of %blocks/entities%",
        "%blocks/entities%'[s] [command[ ]block] command"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send command of {_block}",
        "set command of {_cmdMinecart} to \"say asdf\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprDisplayInterpolation",
      "name": "Display Interpolation Delay/Duration",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the interpolation delay/duration of <a href='#display'>displays</a>.",
        "Interpolation duration is the amount of time a display will take to interpolate, or shift, between its current state and a new state.",
        "Interpolation delay is the amount of ticks before client-side interpolation will commence.Setting to 0 seconds will make it immediate.",
        "Resetting either value will return that value to 0."
      ],
      "patterns": [
        "[the] interpolation (delay|duration)[s] [of %displays%]",
        "%displays%'[s] interpolation (delay|duration)[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set interpolation delay of the last spawned text display to 2 ticks"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprPickupDelay",
      "name": "Pickup Delay",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "The amount of time before a dropped item can be picked up by an entity."
      ],
      "patterns": [
        "[the] pick[ ]up delay of %entities%",
        "%entities%'[s] pick[ ]up delay"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "drop diamond sword at {_location} without velocity",
        "set pickup delay of last dropped item to 5 seconds"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprPlayerListPriority",
      "name": "Player List Priority",
      "since": [
        "2.16"
      ],
      "deprecated": false,
      "description": [
        "The priority of the player in the player list in the tab menu.\nUsed to sort players on the tab list. Lowest priority is at the bottom of tab and highest priority is at the top.\nIf 2 players have same priority then they will be sorted A-Z (but still be above those with lower priority).\n"
      ],
      "patterns": [
        "[the] (player|tab)[ ]list priority of %players%",
        "%players%'[s] (player|tab)[ ]list priority"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on join:\n\tplayer has permission \"group.mod\"\n\tset the player's tab list priority to 5\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "tablist",
        "tab list"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprDisplayShadow",
      "name": "Display Shadow Radius/Strength",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the shadow radius/strength of <a href='#display'>displays</a>."
      ],
      "patterns": [
        "[the] shadow (radius|strength) [of %displays%]",
        "%displays%'[s] shadow (radius|strength)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set shadow radius of the last spawned text display to 1.75"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprPortalCooldown",
      "name": "Portal Cooldown",
      "since": [
        "2.8.0"
      ],
      "deprecated": false,
      "description": [
        "The amount of time before an entity can use a portal. By default, it is 15 seconds after exiting a nether portal or end gateway.",
        "Players in survival/adventure get a cooldown of 0.5 seconds, while those in creative get no cooldown.",
        "Resetting will set the cooldown back to the default 15 seconds for non-player entities and 0.5 seconds for players."
      ],
      "patterns": [
        "[the] portal cooldown of %entities%",
        "%entities%'[s] portal cooldown"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on portal:\n\twait 1 tick\n\tset portal cooldown of event-entity to 5 seconds\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "timespan",
        "name": "Timespan"
      }
    },
    {
      "id": "ExprViewDistance",
      "name": "View Distance",
      "since": [
        "2.4, 2.11 (worlds)"
      ],
      "deprecated": false,
      "description": [
        "The view distance of a world or a player.",
        "The view distance of a player is the distance in chunks sent by the server to the player. This has nothing to do with client side view distance settings.",
        "View distance is capped between 2 to 32 chunks."
      ],
      "patterns": [
        "[the] view distance[s] of %players/worlds%",
        "%players/worlds%'[s] view distance[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set view distance of player to 10",
        "add 50 to the view distance of world \"world\"",
        "reset the view distance of player",
        "clear the view distance of world \"world\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprFallDistance",
      "name": "Fall Distance",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The distance an entity has fallen for."
      ],
      "patterns": [
        "[the] fall[en] (distance|height) of %entities%",
        "%entities%'[s] fall[en] (distance|height)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set all entities' fall distance to 10",
        "on damage:\n\tsend \"%victim's fall distance%\" to victim\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "PropExprCustomName",
      "name": "Display Name",
      "since": [
        "before 2.1",
        "2.2-dev20 (inventory name)",
        "2.4 (non-living entity support, changeable inventory name)"
      ],
      "deprecated": false,
      "description": [
        "Represents the display name of a player, or the custom name of an item, entity, block, or inventory.",
        "",
        "<strong>Players:</strong> The name of the player that is displayed in messages. This name can be changed freely and can include color codes, and is shared among all plugins (e.g. chat plugins will use the display name).",
        "",
        "<strong>Entities:</strong> The custom name of the entity. Can be changed, which will also enable <em>custom name visibility</em> of the entity so name tag of the entity will be visible always.",
        "",
        "<strong>Items:</strong> The <em>custom</em> name of the item (not the Minecraft locale name). Can be changed.",
        "",
        "<strong>Inventories:</strong> The name/title of the inventory. Changing name of an inventory means opening the same inventory with the same contents but with a different name to its current viewers."
      ],
      "patterns": [
        "[the] (display|nick|chat|custom)[ ]name[s] of %objects%",
        "%objects%'[s] (display|nick|chat|custom)[ ]name[s]"
      ],
      "property": {
        "id": "display-name",
        "name": "display name",
        "description": "A more prominently displayed name, such as a player's display name or an entity's custom name. Often more easily changed than the regular name.",
        "provider": "Skript",
        "since": [
          "2.13"
        ]
      },
      "propertyTypes": [
        {
          "id": "slot",
          "name": "Slot"
        },
        {
          "id": "itemtype",
          "name": "Item Type"
        },
        {
          "id": "inventory",
          "name": "Inventory"
        },
        {
          "id": "entity",
          "name": "Entity"
        },
        {
          "id": "player",
          "name": "Player"
        },
        {
          "id": "nameable",
          "name": "Nameable"
        }
      ],
      "examples": [
        "on join:\n\tplayer has permission \"name.red\"\n\tset the player's display name to \"&lt;red&gt;[admin] &lt;gold&gt;%name of player%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprBeaconRange",
      "name": "Beacon Range",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "The range of a beacon's effects, in blocks."
      ],
      "patterns": [
        "[the] beacon [effect] range of %blocks%",
        "%blocks%'[s] beacon [effect] range"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the beacon tier of the clicked block is 4:\n\tset the beacon effect range of the clicked block to 100\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprSaturation",
      "name": "Saturation",
      "since": [
        "2.2-Fixes-v10, 2.2-dev35 (fully modifiable), 2.6.2 (syntax pattern changed)"
      ],
      "deprecated": false,
      "description": [
        "The saturation of a player. If used in a player event, it can be omitted and will default to event-player."
      ],
      "patterns": [
        "[the] saturation of %players%",
        "%players%'[s] saturation"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set saturation of player to 20"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLeashHolder",
      "name": "Leash Holder",
      "since": [
        "2.3, 2.16 (all leashable entities)"
      ],
      "deprecated": false,
      "description": [
        "The leash holder of an entity."
      ],
      "patterns": [
        "[the] leash holder[s] of %entities%",
        "%entities%'[s] leash holder[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_example} to the leash holder of the target mob"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprItemDisplayTransform",
      "name": "Item Display Transform",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the <a href='#itemdisplaytransform'>item display transform</a> of <a href='#display'>item displays</a>."
      ],
      "patterns": [
        "[the] item [display] transform [of %displays%]",
        "%displays%'[s] item [display] transform"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the item transform of the last spawned item display to first person left handed",
        "set the item transform of the last spawned item display to no transform # Reset to default"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemdisplaytransform",
        "name": "Item Display Transforms"
      }
    },
    {
      "id": "ExprLength",
      "name": "Length",
      "since": [
        "2.1"
      ],
      "deprecated": false,
      "description": [
        "The length of a text, in number of characters."
      ],
      "patterns": [
        "[the] length of %texts%",
        "%texts%'[s] length"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_l} to length of the string argument"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprFurnaceSlot",
      "name": "Furnace Slot",
      "since": [
        "1.0, 2.8.0 (syntax rework)"
      ],
      "deprecated": false,
      "description": [
        "A slot of a furnace, i.e. either the ore, fuel or result slot."
      ],
      "patterns": [
        "[the] (ore|input) slot[s] [of %blocks%]",
        "%blocks%'[s] (ore|input) slot[s]",
        "[the] fuel slot[s] [of %blocks%]",
        "%blocks%'[s] fuel slot[s]",
        "[the] (result|output) slot[s] [of %blocks%]",
        "%blocks%'[s] (result|output) slot[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the fuel slot of the clicked block to a lava bucket",
        "set the block's ore slot to 64 iron ore",
        "clear the result slot of the block",
        "on smelt:\n\tif the fuel slot is charcoal:\n\t\tadd 5 seconds to the burn time\n"
      ],
      "events": [
        {
          "id": "smelt",
          "name": "On Smelt"
        },
        {
          "id": "fuel_burn",
          "name": "On Fuel Burn"
        }
      ],
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "slot",
        "name": "Slot"
      }
    },
    {
      "id": "ExprInventory",
      "name": "Inventory",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The inventory of a block or player. You can usually omit this expression and can directly add or remove items to/from blocks or players."
      ],
      "patterns": [
        "[the] inventor(y|ies) of %inventoryholders/item types%",
        "%inventoryholders/item types%'[s] inventor(y|ies)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "add a plank to the player's inventory",
        "clear the player's inventory",
        "remove 5 wool from the inventory of the clicked block"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprQuaternionAxisAngle",
      "name": "Rotation Axis/Angle",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the axis or angle that a quaternion will rotate by/around.",
        "All quaternions can be represented by a rotation of some amount around some axis, so this expression provides the ability to get that angle/axis."
      ],
      "patterns": [
        "[the] rotation (angle|axis) of %quaternions%",
        "%quaternions%'[s] rotation (angle|axis)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_quaternion} to axisAngle(45, vector(1, 2, 3))",
        "send rotation axis of {_quaternion} # 1, 2, 3",
        "send rotation angle of {_quaternion} # 45",
        "set rotation angle of {_quaternion} to 135",
        "set rotation axis of {_quaternion} to vector(0, 1, 0)"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprFlightMode",
      "name": "Flight Mode",
      "since": [
        "2.2-dev34"
      ],
      "deprecated": false,
      "description": [
        "Whether the player(s) are allowed to fly. Use <a href=#EffMakeFly>Make Fly</a> effect to force player(s) to fly."
      ],
      "patterns": [
        "[the] fl(y[ing]|ight) (mode|state) of %players%",
        "%players%'[s] fl(y[ing]|ight) (mode|state)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set flight mode of player to true",
        "send \"%flying state of all players%\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "boolean",
        "name": "Boolean"
      }
    },
    {
      "id": "ExprHotbarSlot",
      "name": "Hotbar Slot",
      "since": [
        "2.2-dev36"
      ],
      "deprecated": false,
      "description": [
        "The currently selected hotbar <a href='#slot'>slot</a>.",
        "To retrieve its number use <a href='#ExprSlotIndex'>Slot Index</a> expression.",
        "Use future and past tense to grab the previous slot in an item change event, see example."
      ],
      "patterns": [
        "[the] [([currently] selected|current)] hotbar slot[s] [of %players%]",
        "%players%'[s] [([currently] selected|current)] hotbar slot[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message \"%player's current hotbar slot%\"",
        "set player's selected hotbar slot to slot 4 of player",
        "send \"index of player's current hotbar slot = 1\" # second slot from the left",
        "on item held change:\n\tif the selected hotbar slot was a diamond:\n\t\tset the currently selected hotbar slot to slot 5 of player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "slot",
        "name": "Slot"
      }
    },
    {
      "id": "ExprDisplayGlowOverride",
      "name": "Display Glow Color Override",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the glowing color override of <a href='#display'>displays</a>.",
        "This overrides whatever color is already set for the scoreboard team of the displays."
      ],
      "patterns": [
        "[the] glow[ing] colo[u]r[s] override[s] [of %displays%]",
        "%displays%'[s] glow[ing] colo[u]r[s] override[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set glow color override of the last spawned text display to blue"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "color",
        "name": "Color"
      }
    },
    {
      "id": "ExprMaxStack",
      "name": "Maximum Stack Size",
      "since": [
        "2.1, 2.10 (changeable, inventories)"
      ],
      "deprecated": false,
      "description": [
        "The maximum stack size of an item (e.g. 64 for torches, 16 for buckets, 1 for swords, etc.) or inventory.",
        "In 1.20.5+, the maximum stack size of items can be changed to any integer from 1 to 99, and stacked up to the maximum stack size of the inventory they're in."
      ],
      "patterns": [
        "[the] max[imum] stack[[ ]size] of %item types/inventories%",
        "%item types/inventories%'[s] max[imum] stack[[ ]size]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "send \"You can hold %max stack size of player's tool% of %type of player's tool% in a slot.\" to player",
        "set the maximum stack size of inventory of all players to 16",
        "add 8 to the maximum stack size of player's tool",
        "reset the maximum stack size of {_gui}"
      ],
      "events": null,
      "requirements": [
        "Spigot 1.20.5+ (changeable)"
      ],
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprLastLoginTime",
      "name": "Last/First Login Time",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "When a player last/first logged in the server. 'last login' requires paper to get the last login, otherwise it will get the last time they were seen on the server."
      ],
      "patterns": [
        "[the] (last|first) login of %offline players%",
        "%offline players%'[s] (last|first) login"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /onlinefor:\n\ttrigger:\n\t\tsend \"You have been online for %difference between player's last login and now%.\"\n\t\tsend \"You first joined the server %difference between player's first login and now% ago.\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "date",
        "name": "Date"
      }
    },
    {
      "id": "ExprEquipCompEntities",
      "name": "Equippable Component - Allowed Entities",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The entities allowed to wear the item.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "[the] allowed entities [of %equippable components%]",
        "%equippable components%'[s] allowed entities"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the allowed entities of {_item} to a zombie and a skeleton",
        "set {_component} to the equippable component of {_item}\nclear the allowed entities of {_component}\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "entitydata",
        "name": "Entity Type"
      }
    },
    {
      "id": "ExprDisplayBillboard",
      "name": "Display Billboard",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the <a href='#billboard'>billboard</a> setting of <a href='#display'>displays</a>.",
        "This describes the axes/points around which the display can pivot.",
        "Displays spawn with the 'fixed' billboard by default. Resetting this expression will also set it to 'fixed'."
      ],
      "patterns": [
        "[the] bill[ |-]board[ing] [setting] [of %displays%]",
        "%displays%'[s] bill[ |-]board[ing] [setting]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set billboard of the last spawned text display to center"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "billboard",
        "name": "Display Billboard"
      }
    },
    {
      "id": "ExprPlayerListHeaderFooter",
      "name": "Player List Header and Footer",
      "since": [
        "2.4"
      ],
      "deprecated": false,
      "description": [
        "The message above and below the player list in the tab menu."
      ],
      "patterns": [
        "[the] (player|tab)[ ]list (header|footer) [text|message] of %players%",
        "%players%'[s] (player|tab)[ ]list (header|footer) [text|message]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set all players' tab list header to \"Welcome to the Server!\"",
        "send \"%the player's tab list header%\" to player",
        "reset all players' tab list header"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "tablist",
        "tab list"
      ],
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprTextDisplayLineWidth",
      "name": "Text Display Line Width",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the line width of <a href='#display'>text displays</a>. Default is 200."
      ],
      "patterns": [
        "[the] line width [of %displays%]",
        "%displays%'[s] line width"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the line width of the last spawned text display to 300"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprCurrentInputKeys",
      "name": "Player Input Keys",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Get the current input keys of a player."
      ],
      "patterns": [
        "[the] [current] (inputs|input keys) of %players%",
        "%players%'[s] [current] (inputs|input keys)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast \"%player% is pressing %current input keys of player%\""
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "inputkey",
        "name": "Input Key"
      }
    },
    {
      "id": "ExprDisplayTransformationScaleTranslation",
      "name": "Display Transformation Scale/Translation",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the transformation scale or translation of <a href='#display'>displays</a>."
      ],
      "patterns": [
        "[the] (display|[display] transformation) (scale|translation) [of %displays%]",
        "%displays%'[s] (display|[display] transformation) (scale|translation)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set transformation translation of display to vector from -0.5, -0.5, -0.5 # Center the display in the same position as a block"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprMembersOfRegion",
      "name": "Region Members & Owners",
      "since": [
        "2.1"
      ],
      "deprecated": false,
      "description": [
        "A list of members or owners of a <a href='#region'>region</a>.",
        "This expression requires a supported regions plugin to be installed."
      ],
      "patterns": [
        "[(all|the)] (members|owner[s]) of [[the] region[s]] %regions%",
        "[[the] region[s]] %regions%'[s] (members|owner[s])"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on entering of a region:\n\tmessage \"You're entering %region% whose owners are %owners of region%\"\n"
      ],
      "events": null,
      "requirements": [
        "Supported regions plugin"
      ],
      "keywords": null,
      "returns": {
        "id": "offlineplayer",
        "name": "Offline Player"
      }
    },
    {
      "id": "ExprSeaPickles",
      "name": "Sea Pickles",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "An expression to obtain or modify data relating to the pickles of a sea pickle block."
      ],
      "patterns": [
        "[the] [(min|max)[imum]] [sea] pickle(s| (count|amount)) of %blocks%",
        "%blocks%'[s] [(min|max)[imum]] [sea] pickle(s| (count|amount))"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on block break:\n\ttype of block is sea pickle\n\tsend \"Wow! This stack of sea pickles contained %event-block's sea pickle count% pickles!\"\n\tsend \"It could've contained a maximum of %event-block's maximum sea pickle count% pickles!\"\n\tsend \"It had to have contained at least %event-block's minimum sea pickle count% pickles!\"\n\tcancel event\n\tset event-block's sea pickle count to event-block's maximum sea pickle count\n\tsend \"This bad boy is going to hold so many pickles now!!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprAI",
      "name": "Entity AI",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "Returns whether an entity has AI."
      ],
      "patterns": [
        "[the] (ai|artificial intelligence) of %living entities%",
        "%living entities%'[s] (ai|artificial intelligence)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set artificial intelligence of target entity to false"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "boolean",
        "name": "Boolean"
      }
    },
    {
      "id": "ExprVelocity",
      "name": "Velocity",
      "since": [
        "2.2-dev31"
      ],
      "deprecated": false,
      "description": [
        "Gets or changes velocity of an entity or particle.",
        "Setting the velocity of a particle will remove its random dispersion and force it to be a single particle."
      ],
      "patterns": [
        "[the] velocit(y|ies) of %entities/directional particles%",
        "%entities/directional particles%'[s] velocit(y|ies)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set player's velocity to {_v}",
        "set the velocity of {_particle} to vector(0, 1, 0)",
        "if the vector length of the player's velocity is greater than 5:\n    send \"You're moving fast!\" to the player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprArrowKnockbackStrength",
      "name": "Arrow Knockback Strength",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "An arrow's knockback strength."
      ],
      "patterns": [
        "[the] arrow knockback strength of %projectiles%",
        "%projectiles%'[s] arrow knockback strength"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on shoot:\n\tevent-projectile is an arrow\n\tset arrow knockback strength of event-projectile to 10\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprEquippableComponent",
      "name": "Equippable Component",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "The equippable component of an item. Any changes made to the equippable component will be present on the item.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "patterns": [
        "[the] equippable component[s] of %slots/item types%",
        "%slots/item types%'[s] equippable component[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_component} to the equippable component of {_item}\nset the equipment slot of {_component} to helmet slot\n",
        "clear the equippable component of {_item}",
        "reset the equippable component of {_item}"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "equippablecomponent",
        "name": "Equippable Components"
      }
    },
    {
      "id": "ExprWorldBorderSize",
      "name": "Size of World Border",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The size of a world border.",
        "The size can not be smaller than 1."
      ],
      "patterns": [
        "[the] world[ ]border (size|diameter|radius) [of %worldborders%]",
        "%worldborders%'[s] world[ ]border (size|diameter|radius)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set world border radius of {_worldborder} to 10"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprUnixTicks",
      "name": "Unix Timestamp",
      "since": [
        "2.2-dev31"
      ],
      "deprecated": false,
      "description": [
        "Converts given date to Unix timestamp. This is roughly how many seconds have elapsed since 1 January 1970."
      ],
      "patterns": [
        "[the] unix timestamp of %dates%",
        "%dates%'[s] unix timestamp"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "unix timestamp of now"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprSlotIndex",
      "name": "Slot Index",
      "since": [
        "2.2-dev35, 2.8.0 (raw index)"
      ],
      "deprecated": false,
      "description": [
        "Index of an an inventory slot. Other types of slots may or may not have indices. Note that comparing slots with numbers is also possible; if index of slot is same as the number, comparisonsucceeds. This expression is mainly for the cases where you must for some reason save the slot numbers.",
        "",
        "Raw index of slot is unique for the view, see <a href=\"https://wiki.vg/Inventory\">Minecraft Wiki</a>"
      ],
      "patterns": [
        "[the] [(raw|unique)] index of %slots%",
        "%slots%'[s] [(raw|unique)] index"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if index of event-slot is 10:\n\tsend \"You bought a pie!\"\n",
        "if display name of player's top inventory is \"Custom Menu\": # 3 rows inventory\n\tif raw index of event-slot > 27: # outside custom inventory\n\t\tcancel event\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprFoodExhaustion",
      "name": "Damage Source - Food Exhaustion",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "The amount of hunger exhaustion caused by a damage source."
      ],
      "patterns": [
        "[the] food exhaustion [of %damage sources%]",
        "%damage sources%'[s] food exhaustion"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on damage:\n\tif the food exhaustion of event-damage source is 10:\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprBeehiveHoneyLevel",
      "name": "Beehive Honey Level",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The current or max honey level of a beehive.",
        "The max level is 5, which cannot be changed."
      ],
      "patterns": [
        "[the] [max[imum]] honey level [of %blocks%]",
        "%blocks%'[s] [max[imum]] honey level"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the honey level of {_beehive} to the max honey level of {_beehive}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprColored",
      "name": "Colored/Formatted/Uncolored",
      "since": [
        "2.0",
        "2.15 ('uncolored' vs 'unformatted' distinction)"
      ],
      "deprecated": false,
      "description": [
        "Parses or removes colors and, optionally, chat styles in/from a message."
      ],
      "patterns": [
        "[(un|non)[-]](colo[u]r-|colo[u]red )%texts%",
        "[(un|non)[-]](format-|formatted )%texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on chat:\n\tset message to colored message # only safe tags, such as colors, will be parsed\n",
        "command /fade <player>:\n\ttrigger:\n\t\tset the display name of the player-argument to the uncolored display name of the player-argument\n",
        "command /format <text>:\n\ttrigger:\n\t\tmessage formatted text-argument # parses all tags, but this is okay as the output is sent back to the executor\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprMinecartDerailedFlyingVelocity",
      "name": "Minecart Derailed / Flying Velocity",
      "since": [
        "2.5.1"
      ],
      "deprecated": false,
      "description": [
        "The velocity of a minecart as soon as it has been derailed or as soon as it starts flying."
      ],
      "patterns": [
        "[the] [minecart] (derailed|flying) velocity of %entities%",
        "%entities%'[s] [minecart] (derailed|flying) velocity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click on minecart:\n\tset derailed velocity of event-entity to vector 2, 10, 2\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "vector",
        "name": "Vector"
      }
    },
    {
      "id": "ExprPandaGene",
      "name": "Panda Gene",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "The main or hidden gene of a panda."
      ],
      "patterns": [
        "[the] (main|hidden) gene[s] of %living entities%",
        "%living entities%'[s] (main|hidden) gene[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if the main gene of last spawned panda is lazy:\n\tset the main gene of last spawned panda to playful\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "gene",
        "name": "Gene"
      }
    },
    {
      "id": "ExprTextDisplayOpacity",
      "name": "Text Display Opacity",
      "since": [
        "2.10, 2.14 (0-255)"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the text opacity of <a href='#display'>text displays</a>. The default is 255, fully opaque.\nValues are between 0 and 255. 0 to 3 are treated the same as 255, meaning fully opaque.\nValues from 4 to 26 are fully transparent, and opacity increases linearly from there up to 255.\nFor backwards compatability, setting negative values between -1 and -128 wrap around, so -1 is the same as 255 and -128 is the same as 128.\nAdding or subtracting values will adjust the opacity within the bounds of 0-255, so subtracting 300 wil always result in an opacity of 0.\n"
      ],
      "patterns": [
        "[the] [display] [text] opacity [of %displays%]",
        "%displays%'[s] [display] [text] opacity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the text opacity of the last spawned text display to 0 # fully opaque",
        "set text opacity of all text displays to 255 # fully opaque",
        "set text opacity of all text displays to 128 # semi-transparent",
        "set text opacity of all text displays to 4 # fully transparent"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprClientViewDistance",
      "name": "View Distance of Client",
      "since": [
        "2.5"
      ],
      "deprecated": false,
      "description": [
        "The view distance of the client. Can not be changed. This differs from the server side view distance of player as this will retrieve the view distance the player has set on their client."
      ],
      "patterns": [
        "[the] client view distance[s] of %players%",
        "%players%'[s] client view distance[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_clientView} to the client view distance of player",
        "set view distance of player to client view distance of player"
      ],
      "events": null,
      "requirements": [
        "1.13.2+"
      ],
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprDisplayTransformationRotation",
      "name": "Display Transformation Rotation",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns or changes the transformation rotation of <a href='#display'>displays</a>.",
        "The left rotation is applied first, with the right rotation then being applied based on the rotated axis."
      ],
      "patterns": [
        "[the] (left|right) [transformation] rotation [of %displays%]",
        "%displays%'[s] (left|right) [transformation] rotation"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set left transformation rotation of last spawned block display to quaternion(1, 0, 0, 0) # reset block display"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "quaternion",
        "name": "Quaternion"
      }
    },
    {
      "id": "ExprSpawnEggEntity",
      "name": "Spawn Egg Entity",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Gets or sets the entity snapshot that the provided spawn eggs will spawn when used."
      ],
      "patterns": [
        "[the] spawn egg entity of %item stacks/item types/slots%",
        "%item stacks/item types/slots%'[s] spawn egg entity"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_item} to a zombie spawn egg",
        "broadcast the spawn egg entity of {_item}",
        "spawn a pig at location(0,0,0):\n\tset the max health of entity to 20\n\tset the health of entity to 20\n\tset {_snapshot} to the entity snapshot of entity\n\tclear entity\nset the spawn egg entity of {_item} to {_snapshot}\n",
        "if the spawn egg entity of {_item} is {_snapshot}: # Minecraft 1.20.5+\n\tset the spawn egg entity of {_item} to (random element out of all entities)\n",
        "set the spawn egg entity of {_item} to a zombie"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.20.2+, Minecraft 1.20.5+ (comparisons)"
      ],
      "keywords": null,
      "returns": {
        "id": "entitysnapshot",
        "name": "Entity Snapshot"
      }
    },
    {
      "id": "ExprStringColor",
      "name": "String Colors",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Retrieve the first, the last, or all of the color objects or color codes of a string.",
        "The retrieved color codes of the string will be formatted with the color symbol."
      ],
      "patterns": [
        "[all [[of] the]|the] string colo[u]r[s] [code[s]] of %texts%",
        "[the] first string colo[u]r[s] [code[s]] of %texts%",
        "[the] last string colo[u]r[s] [code[s]] of %texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_colors::*} to the string colors of \"<red>hey<blue>yo\"",
        "set {_color} to the first string color code of \"&aGoodbye!\"\nsend \"%{_color}%Howdy!\" to all players\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprWithFireResistance",
      "name": "With Fire Resistance",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Creates a copy of an item with (or without) fire resistance."
      ],
      "patterns": [
        "%item type% with[out] fire[ ]resistance",
        "fire resistant %item type%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_x} to diamond sword with fire resistance",
        "equip player with netherite helmet without fire resistance",
        "drop fire resistant stone at player"
      ],
      "events": null,
      "requirements": [
        "Spigot 1.20.5+"
      ],
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprValueWithin",
      "name": "Value Within",
      "since": [
        "2.7"
      ],
      "deprecated": false,
      "description": [
        "Gets the value within objects. Usually used with variables to get the value they store rather than the variable itself, or with lists to get the values of a type."
      ],
      "patterns": [
        "[the] (%*type%|value[s]) (within|in) %~objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_entity} to a random entity out of all entities\ndelete entity within {_entity} # This deletes the entity itself and not the value stored in the variable\n",
        "set {_list::*} to \"something\", 10, \"test\" and a zombie\nbroadcast the strings within {_list::*} # \"something\", \"test\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprNode",
      "name": "Node",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns a node inside a config (or another section-node).",
        "Nodes in Skript configs are written in the format `key: value`.",
        "Section nodes can contain other nodes."
      ],
      "patterns": [
        "[the] node %text% (of|in) %node%",
        "%node%'[s] node %text%",
        "[the] nodes (of|in) %nodes%",
        "%node%'[s] nodes"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_node} to node \"language\" in the skript config\nif text value of {_node} is \"french\":\n\tbroadcast \"Bonjour!\"\n",
        "set {_script} to the current script\nloop nodes of the current script:\n\tbroadcast name of loop-value\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "node",
        "name": "Node"
      }
    },
    {
      "id": "ExprBannerPatterns",
      "name": "Banner Patterns",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Gets or sets the banner patterns of a banner.",
        "In order to set a specific position of a banner, there needs to be that many patterns already on the banner.",
        "This expression will add filler patterns to the banner to allow the specified position to be set.",
        "For Example, setting the 3rd banner pattern of a banner that has no patterns on it, will internally add 3 base patterns, allowing the 3rd banner pattern to be set."
      ],
      "patterns": [
        "[all [[of] the]|the] banner pattern[s] of %item stacks/item types/slots/blocks%",
        "%item stacks/item types/slots/blocks%'[s] banner pattern[s]",
        "[the] %integer%[st|nd|rd|th] [banner] pattern of %item stacks/item types/slots/blocks%",
        "%item stacks/item types/slots/blocks%'[s] %integer%[st|nd|rd|th] [banner] pattern"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast banner patterns of {_banneritem}",
        "broadcast 1st banner pattern of block at location(0,0,0)",
        "clear banner patterns of {_banneritem}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "bannerpattern",
        "name": "Banner Pattern"
      }
    },
    {
      "id": "ExprItemsIn",
      "name": "Items In",
      "since": [
        "2.0, 2.8.0 (specific types of items)"
      ],
      "deprecated": false,
      "description": [
        "All items or specific type(s) of items in an inventory. Useful for looping or storing in a list variable.",
        "Please note that the positions of the items in the inventory are not saved, only their order is preserved."
      ],
      "patterns": [
        "[all [[of] the]] items ([with]in|of|contained in|out of) [inventor(y|ies)] %inventories%",
        "all [[of] the] %item types% ([with]in|of|contained in|out of) [inventor(y|ies)] %inventories%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop all items in the player's inventory:\n\tloop-item is enchanted\n\tremove loop-item from the player\n",
        "set {inventory::%uuid of player%::*} to items in the player's inventory"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "slot",
        "name": "Slot"
      }
    },
    {
      "id": "ExprAmountOfItems",
      "name": "Amount of Items",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "Counts how many of a particular <a href='#itemtype'>item type</a> are in a given inventory."
      ],
      "patterns": [
        "[the] (amount|number) of %item types% (in|of) %inventories%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "message \"You have %number of tag values of minecraft tag \"diamond_ores\" in the player's inventory% diamond ores in your inventory.\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprNamed",
      "name": "Named Item/Inventory",
      "since": [
        "2.0, 2.2-dev34 (inventories)"
      ],
      "deprecated": false,
      "description": [
        "Directly names an item/inventory, useful for defining a named item/inventory in a script. If you want to (re)name existing items/inventories you can either use this expression or use <code>set <a href='#PropExprName'>name of &lt;item/inventory&gt;</a> to &lt;text&gt;</code>."
      ],
      "patterns": [
        "%item type/inventory type% (named|with name[s]) %text component%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "give a diamond sword of sharpness 100 named \"<gold>Excalibur\" to the player",
        "set tool of player to the player's tool named \"<gold>Wand\"",
        "set the name of the player's tool to \"<gold>Wand\"",
        "open hopper inventory named \"Magic Hopper\" to player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprEnchantmentLevel",
      "name": "Enchantment Level",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "The level of a particular <a href='#enchantment'>enchantment</a> on an item."
      ],
      "patterns": [
        "[the] [enchant[ment]] level[s] of %enchantments% (on|of) %item types%",
        "[the] %enchantments% [enchant[ment]] level[s] (on|of) %item types%",
        "%item types%'[s] %enchantments% [enchant[ment]] level[s]",
        "%item types%'[s] [enchant[ment]] level[s] of %enchantments%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "player's tool is a sword of sharpness:\n\tmessage \"You have a sword of sharpness %level of sharpness of the player's tool% equipped\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprFormatDate",
      "name": "Formatted Date",
      "since": [
        "2.2-dev31, 2.7 (support variables in format)"
      ],
      "deprecated": false,
      "description": [
        "Converts date to human-readable text format. By default, 'yyyy-MM-dd HH:mm:ss z' (e.g. '2018-03-30 16:03:12 +01') will be used. For reference, see this <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">Wikipedia article</a>."
      ],
      "patterns": [
        "%dates% formatted [human-readable] [(with|as) %text%]",
        "[human-readable] formatted %dates% [(with|as) %text%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /date:\n\ttrigger:\n\t\tsend \"Full date: %now formatted human-readable%\" to sender\n\t\tsend \"Short date: %now formatted as \"yyyy-MM-dd\"%\" to sender\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprItemWithLore",
      "name": "Item with Lore",
      "since": [
        "2.3"
      ],
      "deprecated": false,
      "description": [
        "Returns a copy of an item with with new lore.",
        "If passing multiple components, each with be a line of lore."
      ],
      "patterns": [
        "%item type% with [a|the] lore %text components/texts%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_item} to stone with lore \"line 1\" and \"line 2\"\ngive {_item} to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "PropExprValueOf",
      "name": "Value",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the value of something that has a value, e.g. a node in a config.",
        "The value is automatically converted to the specified type (e.g. text, number) where possible."
      ],
      "patterns": [
        "[the] [%*type%] value of %objects%",
        "%objects%'[s] [%*type%] value"
      ],
      "property": {
        "id": "typed-value",
        "name": "typed value",
        "description": "A value of a specific type, e.g. 'string value of x'.",
        "provider": "Skript",
        "since": [
          "2.13"
        ]
      },
      "propertyTypes": [
        {
          "id": "valued",
          "name": "Any Valued Thing"
        },
        {
          "id": "node",
          "name": "Node"
        }
      ],
      "examples": [
        "set {_node} to node \"update check interval\" in the skript config\n\nbroadcast text value of {_node}\n# text value of {_node} = \"12 hours\" (text)\n\nwait for {_node}'s timespan value\n# timespan value of {_node} = 12 hours (duration)\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprArmorSlot",
      "name": "Armor Slot",
      "since": [
        "1.0, 2.8.0 (armor), 2.10 (body armor), 2.12 (saddle)",
        "2.12.1 (happy ghast)"
      ],
      "deprecated": false,
      "description": [
        "Equipment of living entities, i.e. the boots, leggings, chestplate or helmet.",
        "Body armor is a special slot that can only be used for:",
        "<ul>",
        "<li>Horses: Horse armour (doesn't work on zombie or skeleton horses)</li>",
        "<li>Wolves: Wolf Armor</li>",
        "<li>Llamas (regular or trader): Carpet</li>",
        "<li>Happy Ghasts: Harness</li>",
        "</ul>",
        "Saddle is a special slot that can only be used for: pigs, striders and horse types (horse, camel, llama, mule, donkey)."
      ],
      "patterns": [
        "[the] (%*equipment slots%|[the] armo[u]r[s]) [item[s]] of %living entities%",
        "%living entities%'[s] (%*equipment slots%|[the] armo[u]r[s]) [item[s]]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set chestplate of the player to a diamond chestplate",
        "helmet of player is neither tag values of tag \"paper:helmets\" nor air # player is wearing a block, e.g. from another plugin"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "armor"
      ],
      "returns": {
        "id": "slot",
        "name": "Slot"
      }
    },
    {
      "id": "ExprSignText",
      "name": "Sign Text",
      "since": [
        "1.3",
        "2.17 (sign side support)"
      ],
      "deprecated": false,
      "description": [
        "A line of text on a sign. Can be changed, but note that there is a 16 character limit per line. If a sign side is not specified, the front side will be used by default, unless in a sign change event and a block is not explicitly specified.\n"
      ],
      "patterns": [
        "line %integer% [of [the] (front|back) [side]] [of %block%]",
        "[the] (1st|first|2nd|second|3rd|third|4th|fourth) line [of [the] (front|back) [side]] [of %block%]",
        "[all [[of] the]|the] lines [of [the] (front|back) [side]] [of %block%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on right click:\n\tclicked block is tagged as \"minecraft:all_signs\"\n\tif line 2 of the clicked block is \"[Heal]\":\n\t\theal the player\n",
        "on sign change:\n\tany of the lines contain \"bad word\"\n\tcancel the event\n\tsend \"<red>You may not write profanity on signs!\" to the player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprLore",
      "name": "Lore",
      "since": [
        "2.1"
      ],
      "deprecated": false,
      "description": [
        "Returns the lore of an item."
      ],
      "patterns": [
        "[the] lore of %item type%",
        "%item type%'[s] lore",
        "[the] line %number% of [the] lore of %item type%",
        "[the] line %number% of %item type%'[s] lore",
        "[the] %number%(st|nd|rd|th) line of [the] lore of %item type%",
        "[the] %number%(st|nd|rd|th) line of %item type%'[s] lore"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the 1st line of the item's lore to \"<orange>Excalibur 2.0\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprMetadata",
      "name": "Metadata",
      "since": [
        "2.2-dev36, 2.10 (add, remove)"
      ],
      "deprecated": false,
      "description": [
        "Metadata is a way to store temporary data on entities, blocks and more that disappears after a server restart."
      ],
      "patterns": [
        "metadata [(value|tag)[s]] %texts% of %metadata holders%",
        "%metadata holders%'[s] metadata [(value|tag)[s]] %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set metadata value \"healer\" of player to true",
        "broadcast \"%metadata value \"healer\" of player%\"",
        "clear metadata value \"healer\" of player"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprLocationVectorOffset",
      "name": "Vectors - Location Vector Offset",
      "since": [
        "2.2-dev28, 2.14 (local axes)"
      ],
      "deprecated": false,
      "description": [
        "Returns the location offset by vectors. Supports both global and local axes. When using local axes, the vector is applied relative to the direction the location is facing."
      ],
      "patterns": [
        "%location% offset by [[the] vectors] %vectors% [using local axes]",
        "%location%[ ]~[~][ ]%vectors%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_loc} to {_loc} ~ {_v}",
        "# spawn a tnt 5 blocks in front of player\nset {_l} to player's location offset by vector(0, 1, 5) using local axes\nspawn tnt at {_l}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "location",
        "name": "Location"
      }
    },
    {
      "id": "ExprItemWithCustomModelData",
      "name": "Item with Custom Model Data",
      "since": [
        "2.5",
        "2.12 (boolean/string/color support)"
      ],
      "deprecated": false,
      "description": [
        "Get an item with custom model data."
      ],
      "patterns": [
        "%item type% with [custom] model data %numbers/booleans (yes/no)/texts/colors%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "give player a diamond sword with custom model data 2",
        "set slot 1 of inventory of player to wooden hoe with custom model data 357",
        "give player a diamond hoe with custom model data 2, true, true, \"scythe\", and rgb(0,0,100)"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.21.4+ (boolean/string/color support)"
      ],
      "keywords": null,
      "returns": {
        "id": "itemtype",
        "name": "Item Type"
      }
    },
    {
      "id": "ExprPotionEffect",
      "name": "Potion Effect of Entity/Item",
      "since": [
        "2.14"
      ],
      "deprecated": false,
      "description": [
        "An expression to obtain a specific potion effect type of an entity or item.",
        "When an entity is affected by a potion effect but already has a weaker version of that effect type, the weaker version becomes hidden. If the weaker version has a longer duration, it returns after the stronger version expires.",
        "NOTE: Hidden effects are not able to be changed."
      ],
      "patterns": [
        "[the] [active|hidden|(active and hidden|hidden and active)] %potion effect types% [potion] effect[s] of %entities/item types%",
        "%entities/item types%'[s] [active|hidden|(active and hidden|hidden and active)] %potion effect types% [potion] effect[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_effect} to the player's active speed effect",
        "add 10 seconds to the player's slowness effect",
        "clear the player's hidden strength effects",
        "reset the player's weakness effects",
        "delete the player's active jump boost effect"
      ],
      "events": null,
      "requirements": [
        "Paper 1.20.4+ for hidden effects"
      ],
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprBookPages",
      "name": "Book Pages",
      "since": [
        "2.2-dev31, 2.7 (changers)"
      ],
      "deprecated": false,
      "description": [
        "The pages of a book (Supports Skript's chat format)",
        "Note: In order to modify the pages of a new written book, you must have the title and author",
        "of the book set. Skript will do this for you, but if you want your own, please set those values."
      ],
      "patterns": [
        "[all [[of] the]|the] [book] (pages|content) of %item types%",
        "%item types%'[s] [book] (pages|content)",
        "[book] page %integer% of %item types%",
        "%item types%'[s] [book] page %integer%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on book sign:\n\tif the number of pages of event-item is greater than 1:\n\t\tmessage \"The second page of the authored book is: %page 2 of event-item%\"\n",
        "set page 1 of the player's held item to \"This page was written with Skript!\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "textcomponent",
        "name": "Text Component"
      }
    },
    {
      "id": "ExprPersistentData",
      "name": "Persistent Data Value",
      "since": [
        "2.15"
      ],
      "deprecated": false,
      "description": [
        "Provides access to the 'persistent data container' Bukkit provides on many objects. These values are stored on the chunk/world/item/entity directly, like custom NBT, but are much faster and reliable to access.\nPersistent values natively support numbers and text, but any Skript type that can be saved in a variable can also be stored in PDC via this expression. Lists of objects can also be saved.\nIf you attempt to save invalid types, runtime errors will be thrown.\n\nThe names of tags must be valid namespaced keys, i.e. a-z, 0-9, '_', '.', '/', and '-' are the allowed characters. If no namespace is provided, it will default to 'minecraft'.\n"
      ],
      "patterns": [
        "[the] [persistent] [%*type%] [list] data (value|tag) %text% of %chunks/worlds/entities/blocks/item types/offline players%",
        "%chunks/worlds/entities/blocks/item types/offline players%'[s] [persistent] [%*type%] [list] data (value|tag) %text%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set persistent data tag \"custom_damage\" of player's tool to 10",
        "on jump:\n\tif data tag \"boost\" of player's boots is set:\n\t\tpush player upwards\n",
        "on shoot:\n\tset {_strength} to number data tag \"strength\" of shooter's tool\n\tif {_strength} is set:\n\t\tset number data tag \"damage\" of projectile to {_strength}\n\non damage:\n\tset {_damage} to data tag \"damage\" of projectile\n\tif {_damage} is set:\n\t\tset damage to {_damage}\n",
        "set {_pet-uuids::*} to list data tag \"pets\" of player"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "pdc",
        "persistent data container",
        "custom data",
        "nbt"
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprElement",
      "name": "Elements",
      "since": [
        "2.0, 2.7 (relative to last element), 2.8.0 (range of elements)"
      ],
      "deprecated": false,
      "description": [
        "The first, last, range or a random element of a set, e.g. a list variable, or a queue.",
        "Asking for elements from a queue will also remove them from the queue, see the new queue expression for more information.",
        "See also: <a href='#ExprRandom'>random expression</a>"
      ],
      "patterns": [
        "[the] (first|last) element [out] (of|in) %objects%",
        "[the] (first|last) %integer% elements [out] (of|in) %objects%",
        "[a] random element [out] (of|in) %objects%",
        "%integer% random [distinct] elements [out] (of|in) %objects%",
        "[the] %integer%(st|nd|rd|th) [[to] last] element [out] (of|in) %objects%",
        "[the] elements (from|between) %integer% (to|and) %integer% [out] (of|in) %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "broadcast the first 3 elements of {top players::*}",
        "set {_last} to last element of {top players::*}",
        "set {_random player} to random element out of all players",
        "send 2nd last element of {top players::*} to player",
        "set {page2::*} to elements from 11 to 20 of {top players::*}",
        "broadcast the 1st element in {queue}",
        "broadcast the first 3 elements in {queue}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprTarget",
      "name": "Target",
      "since": [
        "1.4.2, 2.7 (Reset), 2.8.0 (ignore blocks, ray size)"
      ],
      "deprecated": false,
      "description": [
        "For players this is the entity at the crosshair.",
        "For mobs and experience orbs this is the entity they are attacking/following (if any).",
        "The 'ray size' and 'ignoring blocks' options are only valid for players' targets.",
        "The 'ray size' option effectively increases the area around the crosshair an entity can be in. It does so by expanding the hitboxes of entities by the given amount. Display entities have a hit box of 0, so using the 'ray size' option can be helpful when targeting them.",
        "May grab entities in unloaded chunks."
      ],
      "patterns": [
        "[the] target[[ed] %*entity type%] [of %living entities%] [ignoring blocks] [[with|at] [a] ray[ ]size [of] %number%]",
        "%living entities%'[s] target[[ed] %*entity type%] [ignoring blocks] [[with|at] [a] ray[ ]size [of] %number%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on entity target:\n\tif entity's target is a player:\n\t\tsend \"You're being followed by an %entity%!\" to target of entity\n",
        "reset target of entity # Makes the entity target-less",
        "delete targeted entity of player # for players it will delete the target",
        "delete target of last spawned zombie # for entities it will make them target-less"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprSubnodeValue",
      "name": "Value of Subnode",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Returns the value of an sub-node of the given node, following the provided path.",
        "The value is automatically converted to the specified type (e.g. text, number) where possible."
      ],
      "patterns": [
        "[the] %*type% value [at] %text% (from|in) %node%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_node} to node \"language\" in the skript config\nbroadcast the text value of {_node}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprRegionsAt",
      "name": "Regions At",
      "since": [
        "2.1"
      ],
      "deprecated": false,
      "description": [
        "All <a href='#region'>regions</a> at a particular <a href='./classes/#location'>location</a>.",
        "This expression requires a supported regions plugin to be installed."
      ],
      "patterns": [
        "[the] region[(s)] %direction% %locations%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "On click on a sign:\n\tline 1 of the clicked block is \"[region info]\"\n\tset {_regions::*} to regions at the clicked block\n\tif {_regions::*} is empty:\n\t\tmessage \"No regions exist at this sign.\"\n\telse:\n\t\tmessage \"Regions containing this sign: <gold>%{_regions::*}%<r>.\"\n"
      ],
      "events": null,
      "requirements": [
        "Supported regions plugin"
      ],
      "keywords": null,
      "returns": {
        "id": "region",
        "name": "Region"
      }
    },
    {
      "id": "ExprLightLevel",
      "name": "Light Level",
      "since": [
        "1.3.4"
      ],
      "deprecated": false,
      "description": [
        "Gets the light level at a certain location which ranges from 0 to 15.",
        "It can be separated into sunlight (15 = direct sunlight, 1-14 = indirect) and block light (torches, glowstone, etc.). The total light level of a block is the maximum of the two different light types."
      ],
      "patterns": [
        "[(sky|sun|block)[ ]]light[ ]level [(of|%direction%) %location%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# set vampire players standing in bright sunlight on fire\nevery 5 seconds:\n\tloop all players:\n\t\t{vampire::%uuid of loop-player%} is true\n\t\tsunlight level at the loop-player is greater than 10\n\t\tignite the loop-player for 5 seconds\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "number",
        "name": "Number"
      }
    },
    {
      "id": "ExprBiome",
      "name": "Biome",
      "since": [
        "1.4.4, 2.6.1 (3D biomes)"
      ],
      "deprecated": false,
      "description": [
        "The biome at a certain location. Please note that biomes are only defined for x/z-columns",
        "(i.e. the <a href='#ExprAltitude'>altitude</a> (y-coordinate) doesn't matter), up until Minecraft 1.15.x.",
        "As of Minecraft 1.16, biomes are now 3D (per block vs column)."
      ],
      "patterns": [
        "[the] biome [(of|%direction%) %locations%]",
        "%locations%'[s] biome"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# damage player in deserts constantly\nevery real minute:\n\tloop all players:\n\t\tbiome at loop-player is desert\n\t\tdamage the loop-player by 1\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "biome",
        "name": "Biome"
      }
    },
    {
      "id": "ExprChoiceArgument",
      "name": "Choice Argument",
      "since": [
        "2.17"
      ],
      "deprecated": false,
      "description": [
        "Represents the literal argument out of a choice group selected by the command sender.\nChoice arguments, just like regular arguments, are numbered in order of occurrence (left to right).\nThis expression also supports optional literal arguments.\n"
      ],
      "patterns": [
        "[the] choice arg[ument] <(\\d+)>",
        "[the] (first|second|third|<(\\d*1)st|(\\d*2)nd|(\\d*3)rd|(\\d*[4-90])th>) choice arg[ument][s]",
        "[the] [last] choice arg[ument]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /alert (restart|giveaway):\n\ttrigger:\n\t\tif the choice argument is \"restart\":\n\t\t\tbroadcast \"<red>The server is restarting in 5 minutes!\"\n\t\telse: # must be giveaway\n\t\t\tbroadcast \"<aqua>A giveaway is starting soon at spawn!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "string",
        "name": "Text"
      }
    },
    {
      "id": "ExprWhether",
      "name": "Whether",
      "since": [
        "2.9.0",
        "2.17 (changing)"
      ],
      "deprecated": false,
      "description": [
        "A shorthand for returning the result of a condition (true or false). This is functionally identical to using 'true if <condition> else false'.\nMany conditions also support being changed through this expression, typically using 'set'.\n"
      ],
      "patterns": [
        "whether <.+>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {fly} to whether player can fly",
        "broadcast \"Flying: %whether player is flying%\"",
        "set whether the player can fly to true",
        "toggle whether the player can pick up items"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "boolean",
        "name": "Boolean"
      }
    },
    {
      "id": "ExprEntity",
      "name": "Creature/Entity/Player/Projectile/Villager/Powered Creeper/etc.",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "The entity involved in an event (an entity is a player, a creature or an inanimate object like ignited TNT, a dropped item or an arrow).",
        "You can use the specific type of the entity that's involved in the event, e.g. in a 'death of a creeper' event you can use 'the creeper' instead of 'the entity'."
      ],
      "patterns": [
        "[the] [event-]<.+>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "give a diamond sword of sharpness 3 to the player",
        "kill the creeper",
        "kill all powered creepers in the wolf's world",
        "projectile is an arrow"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprSets",
      "name": "Sets",
      "since": [
        "1.0 pre-5, 2.7 (classinfo)"
      ],
      "deprecated": false,
      "description": [
        "Returns a list of all the values of a type. Useful for looping."
      ],
      "patterns": [
        "[all [[of] the]|the|every] %*type%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop all attribute types:\n\tset loop-value attribute of player to 10\n\tmessage \"Set attribute %loop-value% to 10!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprSecPotionEffect-2",
      "name": "New Potion Effect",
      "since": [
        "2.5.2",
        "2.14 (syntax changes, infinite duration support)"
      ],
      "deprecated": false,
      "description": [
        "Create a new potion effect that can be applied to an entity or item type."
      ],
      "patterns": [
        "%*potion effect type% <-?\\d+(_\\d+)*>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_potion} to a potion effect of speed 2 for 10 minutes:\n\thide the effect's icon\n\thide the effect's particles\n",
        "add strength 5 to the potion effects of the player's tool",
        "apply invisibility to the player for 5 minutes:\n\thide the effect's particles\n",
        "add a potion effect of speed 1 to the potion effects of the player",
        "# creates a potion effect with the properties of an existing potion effect\nset {_potion} to a potion effect of slowness based on the player's speed effect\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprReduce",
      "name": "Reduce",
      "since": [
        "2.15"
      ],
      "deprecated": false,
      "description": [
        "Reduces lists to single values by repeatedly applying an operation.",
        "The reduce expression takes each element and combines it with an accumulator value.",
        "Use 'reduced value' to access the current accumulated value and 'input' for the current element."
      ],
      "patterns": [
        "%objects% (reduced|folded) (to|with|by) \\[<.+>\\]",
        "%objects% (reduced|folded) (to|with|by) \\(<.+>\\)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_sum} to {_numbers::*} reduced with [reduced value + input]",
        "set {_product} to {_values::*} reduced with [reduced value * input]",
        "set {_concatenated} to {_strings::*} reduced with [\"%reduced value%%input%\"]"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "input",
        "reduced value",
        "accumulator"
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprTransform",
      "name": "Transformed List",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Transforms (or 'maps') a list's values using a given expression. This is akin to looping over the list and getting a modified version of each value.",
        "If the given expression returns a single value, the indices of the list will not change. If the expression returns multiple values, then then indices will be reset as a single index cannot contain multiple values."
      ],
      "patterns": [
        "%objects% (transformed|mapped) (using|with) \\[<.+>\\]",
        "%objects% (transformed|mapped) (using|with) \\(<.+>\\)"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_a::*} to (1, 2, and 3) transformed using (input * 2 - 1, input * 2)\n# {_a::*} is now 1, 2, 3, 4, 5, and 6\n",
        "# get a list of the sizes of all clans without manually looping\nset {_clan-sizes::*} to keyed {clans::*} transformed using [{clans::%input index%::size}]\n# using the 'keyed' expression retains the indices of the clans list\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "input"
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprArgument",
      "name": "Argument",
      "since": [
        "1.0",
        "2.7 (support for command events)"
      ],
      "deprecated": false,
      "description": [
        "A user provided value in a command execution.\nFor example, if the command \"/tell <player> <text>\" is used like \"/tell Njol Hello Njol!\", 'argument 1' is the player named \"Njol\" and 'argument 2' is the text \"Hello Njol!\".\nOne can also use the type of the argument instead of its index to address the argument.\nFor example, in the command example above, 'player-argument' is the same as 'argument 1'.\nUsable in script commands and command events.\nPlease note that specifying the argument type is only supported in script commands.\n"
      ],
      "patterns": [
        "[the] last arg[ument]",
        "[the] arg[ument](-| )<(\\d+)>",
        "[the] (first|second|third|<(\\d*1)st|(\\d*2)nd|(\\d*3)rd|(\\d*[4-90])th>) arg[ument][s]",
        "[all [[of] the]|the] arg[ument][s]",
        "[the] %*type%( |-)arg[ument][( |-)<\\d+>]",
        "[the] arg[ument]( |-)%*type%[( |-)<\\d+>]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "give the item-argument to the player-argument",
        "damage the player-argument by the number-argument",
        "give a diamond pickaxe to the argument",
        "add argument 1 to argument 2",
        "heal the last argument"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprAnyOf",
      "name": "Any Of",
      "since": [
        "2.11"
      ],
      "deprecated": false,
      "description": [
        "Returns an 'or list' composed of the given objects. For example, `any of (1, 2, and 3)` is equivalent to `1, 2, or 3`",
        "Useful when doing comparisons with variable lists."
      ],
      "patterns": [
        "(any [one]|one) of [the] %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if any of {_numbers::*} are 1:",
        "if any of {teamA::*} are within location(0, 0, 0) and location(10, 10, 10):"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprArithmetic",
      "name": "Arithmetic",
      "since": [
        "1.4.2"
      ],
      "deprecated": false,
      "description": [
        "Arithmetic expressions, e.g. 1 + 2, (health of player - 2) / 3, etc."
      ],
      "patterns": [
        "\\(%object%\\)[ ]^[ ]\\(%object%\\)",
        "\\(%object%\\)[ ]^[ ]%object%",
        "%object%[ ]^[ ]\\(%object%\\)",
        "%object%[ ]^[ ]%object%",
        "\\(%object%\\)[ ]*[ ]\\(%object%\\)",
        "\\(%object%\\)[ ]*[ ]%object%",
        "%object%[ ]*[ ]\\(%object%\\)",
        "%object%[ ]*[ ]%object%",
        "\\(%object%\\)[ ]/[ ]\\(%object%\\)",
        "\\(%object%\\)[ ]/[ ]%object%",
        "%object%[ ]/[ ]\\(%object%\\)",
        "%object%[ ]/[ ]%object%",
        "\\(%object%\\)[ ]+[ ]\\(%object%\\)",
        "\\(%object%\\)[ ]+[ ]%object%",
        "%object%[ ]+[ ]\\(%object%\\)",
        "%object%[ ]+[ ]%object%",
        "\\(%object%\\)[ ]-[ ]\\(%object%\\)",
        "\\(%object%\\)[ ]-[ ]%object%",
        "%object%[ ]-[ ]\\(%object%\\)",
        "%object%[ ]-[ ]%object%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set the player's health to 10 - the player's health",
        "loop (argument + 2) / 5 times:\n\tmessage \"Two useless numbers: %loop-num * 2 - 5%, %2^loop-num - 1%\"\n",
        "message \"You have %health of player * 2% half hearts of HP!\""
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprXOf",
      "name": "X of Item/Entity Type",
      "since": [
        "1.2"
      ],
      "deprecated": false,
      "description": [
        "An expression for using an item or entity type with a different amount."
      ],
      "patterns": [
        "%number% of %item stacks/item types/entity types/particles%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "give level of player of iron pickaxes to the player"
      ],
      "events": null,
      "requirements": null,
      "keywords": [
        "amount"
      ],
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprParse",
      "name": "Parse",
      "since": [
        "2.0"
      ],
      "deprecated": false,
      "description": [
        "Parses text as a given type, or as a given pattern.",
        "This expression can be used in two different ways: One which parses the entire text as a single instance of a type, e.g. as a number, and one that parses the text according to a pattern.",
        "If the given text could not be parsed, this expression will return nothing and the <a href='#ExprParseError'>parse error</a> will be set if some information is available.",
        "Some notes about parsing with a pattern:",
        "- The pattern must be a <a href='./patterns/'>Skript pattern</a>, e.g. percent signs are used to define where to parse which types, e.g. put a %number% or %items% in the pattern if you expect a number or some items there.",
        "- You <i>have to</i> save the expression's value in a list variable, e.g. <code>set {parsed::*} to message parsed as \"...\"</code>.",
        "- The list variable will contain the parsed values from all %types% in the pattern in order. If a type was plural, e.g. %items%, the variable's value at the respective index will be a list variable, e.g. the values will be stored in {parsed::1::*}, not {parsed::1}."
      ],
      "patterns": [
        "%text% parsed as (%*type%|\"<.*>\")"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {var} to line 1 parsed as number",
        "on chat:\n\tset {var::*} to message parsed as \"buying %items% for %money%\"\n\tif parse error is set:\n\t\tmessage \"%parse error%\"\n\telse if {var::*} is set:\n\t\tcancel event\n\t\tremove {var::2} from the player's balance\n\t\tgive {var::1::*} to the player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "object",
        "name": "Object"
      }
    },
    {
      "id": "ExprEntities",
      "name": "Entities",
      "since": [
        "1.2.1, 2.5 (chunks), 2.10 (within)"
      ],
      "deprecated": false,
      "description": [
        "All entities in all worlds, in a specific world, in a chunk, in a radius around a certain location or within two locations. e.g. <code>all players</code>, <code>all creepers in the player's world</code>, or <code>players in radius 100 of the player</code>."
      ],
      "patterns": [
        "[(all [[of] the]|the)] %*entity types% [(in|of) (world[s] %worlds%|%worlds/chunks%)]",
        "[(all [[of] the]|the)] entities of type[s] %entity types% [(in|of) (world[s] %worlds%|%worlds/chunks%)]",
        "[(all [[of] the]|the)] %*entity types% (within|[with]in radius) %number% [(block[s]|met(er|re)[s])] (of|around) %location%",
        "[(all [[of] the]|the)] entities of type[s] %entity types% in radius %number% (of|around) %location%",
        "[(all [[of] the]|the)] %*entity types% within %location% and %location%",
        "[(all [[of] the]|the)] entities of type[s] %entity types% within %location% and %location%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "kill all creepers in the player's world",
        "send \"Psst!\" to all players within 100 meters of the player",
        "give a diamond to all ops",
        "heal all tamed wolves in radius 2000 around {town center}",
        "delete all monsters in chunk at player",
        "size of all players within {_corner::1} and {_corner::2}}"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "entity",
        "name": "Entity"
      }
    },
    {
      "id": "ExprSecCreateLootContext",
      "name": "Create Loot Context",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Create a loot context."
      ],
      "patterns": [
        "[a] loot context %direction% %location%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_player} to player\nset {_context} to a loot context at player:\n    set loot luck value to 10\n    set looter to {_player}\n    set looted entity to last spawned pig\ngive player loot items of loot table \"minecraft:entities/iron_golem\" with loot context {_context}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null,
      "returns": {
        "id": "lootcontext",
        "name": "Loot Context"
      }
    }
  ],
  "events": [
    {
      "id": "loot_generate",
      "name": "On Loot Generate",
      "cancellable": true,
      "since": [
        "2.7"
      ],
      "patterns": [
        "loot generat(e|ing)"
      ],
      "description": [
        "Called when a loot table of an inventory is generated in the world.",
        "For example, when opening a shipwreck chest."
      ],
      "requirements": null,
      "examples": [
        "on loot generate:\n\tchance of 10%\n\tadd 64 diamonds to the loot\n\tsend \"You hit the jackpot at %event-location%!\"\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "lootcontext",
          "name": "loot context"
        },
        {
          "id": "loottable",
          "name": "loot table"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "unknown_command_execution",
      "name": "On Unknown Command Execution",
      "cancellable": false,
      "since": [
        "2.17"
      ],
      "patterns": [
        "(unknown|non-existent) command [execution]"
      ],
      "description": [
        "Called when a player executes an unknown command.\n"
      ],
      "requirements": null,
      "examples": [
        "on unknown command execution:\n\tadd 1 to {-command_fails::%player%}\n\twait 30 seconds:\n\t\tremove 1 from {-command_fails::%player%}\n\tif {-command_fails::%player%} is greater than or equal to 5:\n\t\tpush the player upwards\n\t\tset the unknown command message to \"<red>You are executing too many unknown commands too fast!\"\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        }
      ],
      "keywords": null
    },
    {
      "id": "chat",
      "name": "On Chat",
      "cancellable": true,
      "since": [
        "1.4.1"
      ],
      "patterns": [
        "chat"
      ],
      "description": [
        "Called whenever a player chats.",
        "Use <a href='#ExprChatFormat'>chat format</a> to change message format.",
        "Use <a href='#ExprChatRecipients'>chat recipients</a> to edit chat recipients."
      ],
      "requirements": null,
      "examples": [
        "on chat:\n\tif the player has permission \"owner\":\n\t\tset the chat format to \"<red>[player]<light gray>: <light red>[message]\"\n\telse if the player has permission \"admin\":\n\t\tset the chat format to \"<light red>[player]<light gray>: <orange>[message]\"\n\telse: # default message format\n\t\tset the chat format to \"<orange>[player]<light gray>: <white>[message]\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "pathfind",
      "name": "On Pathfind",
      "cancellable": true,
      "since": [
        "2.16"
      ],
      "patterns": [
        "[entity] [start[s]] pathfind[ing]"
      ],
      "description": [
        "Called whenever an entity tries to pathfind to a location or another entity."
      ],
      "requirements": null,
      "examples": [
        "on pathfind:\n    \tbroadcast \"%event-entity% is about to move to %event-location%!\"\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "world_border_center_change",
      "name": "On World Border Center Change",
      "cancellable": true,
      "since": [
        "2.11"
      ],
      "patterns": [
        "world[ ]border center chang(e|ing)"
      ],
      "description": [
        "Called when a world border's center has changed.\nThis event does not get called for virtual borders.\n"
      ],
      "requirements": null,
      "examples": [
        "on worldborder center change:\n\tbroadcast \"The center of %event-worldborder% has moved from %past event-location% to %event-location%\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "location",
          "name": "past location"
        },
        {
          "id": "worldborder",
          "name": "worldborder"
        }
      ],
      "keywords": null
    },
    {
      "id": "world_border_bounds_change",
      "name": "On World Border Bounds Change",
      "cancellable": true,
      "since": [
        "2.11"
      ],
      "patterns": [
        "world[ ]border [bounds] chang(e|ing)"
      ],
      "description": [
        "Called when a world border changes its bounds, either over time, or instantly.",
        "This event does not get called for virtual borders."
      ],
      "requirements": null,
      "examples": [
        "on worldborder bounds change:\n\tbroadcast \"The diameter of %event-worldborder% is changing from %past event-number% to %event-number% over the next %event-timespan%\n"
      ],
      "eventValues": [
        {
          "id": "number",
          "name": "number"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "timespan",
          "name": "time span"
        },
        {
          "id": "worldborder",
          "name": "worldborder"
        },
        {
          "id": "number",
          "name": "past number"
        }
      ],
      "keywords": null
    },
    {
      "id": "world_border_bounds_finish_change",
      "name": "On World Border Bounds Finish Change",
      "cancellable": false,
      "since": [
        "2.11"
      ],
      "patterns": [
        "world[ ]border [bounds] finish chang(e|ing)"
      ],
      "description": [
        "Called when a moving world border has finished its move.\nThis event does not get called for virtual borders.\n"
      ],
      "requirements": null,
      "examples": [
        "on worldborder bounds finish change:\n\tbroadcast \"Over the past %event-timespan%, the diameter of %event-worldborder% went from %past event-number% to %event-number%\"\n"
      ],
      "eventValues": [
        {
          "id": "number",
          "name": "number"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "timespan",
          "name": "time span"
        },
        {
          "id": "worldborder",
          "name": "worldborder"
        },
        {
          "id": "number",
          "name": "past number"
        }
      ],
      "keywords": null
    },
    {
      "id": "brewing_start",
      "name": "On Brewing Start",
      "cancellable": false,
      "since": [
        "2.13"
      ],
      "patterns": [
        "brew[ing] start[ed|ing]"
      ],
      "description": [
        "Called when a brewing stand starts brewing."
      ],
      "requirements": null,
      "examples": [
        "on brewing start:\n\tset the brewing time to 1 second\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "sign_change",
      "name": "On Sign Change",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "sign (chang[e]|edit)[ing]",
        "[player] (chang[e]|edit)[ing] [a] sign"
      ],
      "description": [
        "As signs are placed empty, this event is called when a player is done editing a sign."
      ],
      "requirements": null,
      "examples": [
        "on sign change:\n\tline 2 is empty\n\tset line 1 to \"<red>%line 1%\"\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "textcomponent",
          "name": "text components"
        }
      ],
      "keywords": null
    },
    {
      "id": "fishing",
      "name": "On Fishing",
      "cancellable": true,
      "since": [
        "2.10",
        "2.11 (state change)"
      ],
      "patterns": [
        "[fishing] (line|rod) cast",
        "fish (caught|catch)",
        "entity (hook[ed]|caught|catch)",
        "(bobber|hook) (in|hit) ground",
        "fish (escape|get away)",
        "[fishing] (rod|line) reel in",
        "fish bit(e|ing)",
        "(fish approach[ing]|(bobber|hook) lure[d])",
        "fishing state change[d]"
      ],
      "description": [
        "Called when a player triggers a fishing event.",
        "An entity hooked event is triggered when an entity gets caught by a fishing rod.",
        "A fish escape event is called when the player fails to click on time, and the fish escapes.",
        "A fish approaching event is when the bobber is waiting to be hooked, and a fish is approaching.",
        "A fishing state change event is triggered whenever the fishing state changes."
      ],
      "requirements": null,
      "examples": [
        "on fishing line cast:\n\tsend \"You caught a fish!\" to player\n",
        "on entity caught:\n\tpush event-entity vector from entity to player\n",
        "on fishing state change:\n\tif event-fishing state is fish caught:\n\t\tbroadcast \"A fish has been caught!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "fishingstate",
          "name": "fishing state"
        },
        {
          "id": "projectile",
          "name": "projectile"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "love_mode_enter",
      "name": "On Love Mode Enter",
      "cancellable": true,
      "since": [
        "2.10"
      ],
      "patterns": [
        "[entity] enter[s] love mode",
        "[entity] love mode [enter]"
      ],
      "description": [
        "Called whenever an entity enters a state of being in love."
      ],
      "requirements": null,
      "examples": [
        "on love mode enter:\n\tcancel event # No one is allowed love here\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "livingentity",
          "name": "living entity"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "enchant_prepare",
      "name": "On Enchant Prepare",
      "cancellable": true,
      "since": [
        "2.5"
      ],
      "patterns": [
        "[item] enchant prepare"
      ],
      "description": [
        "Called when a player puts an item into enchantment table. This event may be called multiple times.",
        " To get the enchant item, see the <a href='#ExprEnchantEventsEnchantItem'>enchant item expression</a>"
      ],
      "requirements": null,
      "examples": [
        "on enchant prepare:\n\tset enchant offer 1 to sharpness 1\n\tset the cost of enchant offer 1 to 10 levels\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "inventory",
          "name": "inventory"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "experience_cooldown_change",
      "name": "On Experience Cooldown Change",
      "cancellable": false,
      "since": [
        "2.10"
      ],
      "patterns": [
        "player (experience|[e]xp) cooldown change"
      ],
      "description": [
        "Called when a player's experience cooldown changes.",
        "Experience cooldown is how long until a player can pick up another orb of experience."
      ],
      "requirements": null,
      "examples": [
        "on player experience cooldown change:\n\tbroadcast event-player\n\tbroadcast event-timespan\n\tbroadcast past event-timespan\n\tbroadcast xp cooldown change reason\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "timespan",
          "name": "time span"
        },
        {
          "id": "experiencecooldownchangereason",
          "name": "experience cooldown change reason"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "timespan",
          "name": "past time span"
        }
      ],
      "keywords": null
    },
    {
      "id": "hand_item_swap",
      "name": "On Hand Item Swap",
      "cancellable": true,
      "since": [
        "2.3"
      ],
      "patterns": [
        "swap[ping of] [(hand|held)] item[s]"
      ],
      "description": [
        "Called whenever a player swaps the items in their main- and offhand slots.",
        "Works also when one or both of the slots are empty.",
        "The event is called before the items are actually swapped,",
        "so when you use the player's tool or player's offtool expressions,",
        "they will return the values before the swap -",
        "this enables you to cancel the event before anything happens."
      ],
      "requirements": null,
      "examples": [
        "on swap hand items:\n\tevent-player's tool is a diamond sword\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "aoe_cloud_effect",
      "name": "On AoE Cloud Effect",
      "cancellable": true,
      "since": [
        "2.2-dev21"
      ],
      "patterns": [
        "(area|AoE) [cloud] effect"
      ],
      "description": [
        "Called when area effect cloud applies its potion effect. This happens every 5 ticks by default."
      ],
      "requirements": null,
      "examples": [
        "on area cloud effect:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "livingentity",
          "name": "living entities"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "potioneffecttype",
          "name": "potion effect type"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "entity_jump",
      "name": "On Entity Jump",
      "cancellable": true,
      "since": [
        "2.7"
      ],
      "patterns": [
        "entity jump[ing]"
      ],
      "description": [
        "Called when an entity jumps."
      ],
      "requirements": null,
      "examples": [
        "on entity jump:\n\tif entity is a wither skeleton:\n\t\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "chunk_unload",
      "name": "On Chunk Unload",
      "cancellable": false,
      "since": [
        "1.0"
      ],
      "patterns": [
        "chunk unload[ing]"
      ],
      "description": [
        "Called when a chunk is unloaded due to not being near any player."
      ],
      "requirements": null,
      "examples": [
        "on chunk unload:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "chunk",
          "name": "chunk"
        }
      ],
      "keywords": null
    },
    {
      "id": "experience_change",
      "name": "On Experience Change",
      "cancellable": false,
      "since": [
        "2.7"
      ],
      "patterns": [
        "[player] (level progress|[e]xp|experience) (change|update|increase|decrease)"
      ],
      "description": [
        "Called when a player's experience changes."
      ],
      "requirements": null,
      "examples": [
        "on level progress change:\n\tset {_xp} to event-experience\n\tbroadcast \"%{_xp}%\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "experience",
          "name": "experience point"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "beacon_change_effect",
      "name": "On Beacon Change Effect",
      "cancellable": true,
      "since": [
        "2.10"
      ],
      "patterns": [
        "beacon change effect",
        "beacon effect change",
        "player chang(e[s]|ing) [of] beacon effect"
      ],
      "description": [
        "Called when a player changes the effects of a beacon."
      ],
      "requirements": null,
      "examples": [
        "on beacon effect change:\n\tbroadcast event-player\n\tbroadcast event-block\n\tbroadcast primary beacon effect\n\tbroadcast secondary beacon effect\n",
        "on beacon change effect:\n",
        "on player change beacon effect:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "combust",
      "name": "On Combust",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "combust[ing]"
      ],
      "description": [
        "Called when an entity is set on fire, e.g. by fire or lava, a fireball, or by standing in direct sunlight (zombies, skeletons)."
      ],
      "requirements": null,
      "examples": [
        "on combust:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "respawn",
      "name": "On Respawn",
      "cancellable": false,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[player] respawn[ing]"
      ],
      "description": [
        "Called when a player respawns via death or entering the end portal in the end. You should prefer this event over the <a href='#death'>death event</a> as the player is technically alive when this event is called."
      ],
      "requirements": null,
      "examples": [
        "on respawn:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "respawnreason",
          "name": "respawn reason"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "physics",
      "name": "On Physics",
      "cancellable": true,
      "since": [
        "1.4.6"
      ],
      "patterns": [
        "[block] physics"
      ],
      "description": [
        "Called when a physics check is done on a block. By cancelling this event you can prevent some things from happening, e.g. sand falling, dirt turning into grass, torches dropping if their supporting block is destroyed, etc.Please note that using this event might cause quite some lag since it gets called extremely often."
      ],
      "requirements": null,
      "examples": [
        "# prevents sand from falling\n",
        "on block physics:\n\tblock is sand\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "lightning_strike",
      "name": "On Lightning Strike",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "lightning [strike]"
      ],
      "description": [
        "Called when lightning strikes."
      ],
      "requirements": null,
      "examples": [
        "on lightning:\n\tspawn a zombie at location of event-entity\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "sponge_absorb",
      "name": "On Sponge Absorb",
      "cancellable": true,
      "since": [
        "2.5"
      ],
      "patterns": [
        "sponge absorb"
      ],
      "description": [
        "Called when a sponge absorbs blocks."
      ],
      "requirements": [
        "Minecraft 1.13 or newer"
      ],
      "examples": [
        "on sponge absorb:\n\tloop absorbed blocks:\n\t\tbroadcast \"%loop-block% was absorbed by a sponge\"!\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "enchant",
      "name": "On Enchant",
      "cancellable": true,
      "since": [
        "2.5"
      ],
      "patterns": [
        "[item] enchant"
      ],
      "description": [
        "Called when a player successfully enchants an item.",
        " To get the enchanted item, see the <a href='#ExprEnchantEventsEnchantItem'>enchant item expression</a>"
      ],
      "requirements": null,
      "examples": [
        "on enchant:\n\tif the clicked button is 1: # offer 1\n\t\tset the applied enchantments to sharpness 10 and unbreaking 10\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "enchantmenttype",
          "name": "enchantment types"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "inventory",
          "name": "inventory"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "piston_retract",
      "name": "On Piston Retract",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "piston retract[ing]"
      ],
      "description": [
        "Called when a piston is about to retract."
      ],
      "requirements": null,
      "examples": [
        "on piston retract:\n\tbroadcast \"A piston is retracting!\"\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "bed_enter",
      "name": "On Bed Enter",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "bed enter[ing]",
        "[player] enter[ing] [a] bed"
      ],
      "description": [
        "Called when a player starts sleeping."
      ],
      "requirements": null,
      "examples": [
        "on bed enter:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "player_trade",
      "name": "On Player Trade",
      "cancellable": true,
      "since": [
        "2.7"
      ],
      "patterns": [
        "player trad(e|ing)"
      ],
      "description": [
        "Called when a player has traded with a villager."
      ],
      "requirements": null,
      "examples": [
        "on player trade:\n\tchance of 50%:\n\t\tcancel event\n\t\tsend \"The trade was somehow denied!\" to player\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "livingentity",
          "name": "living entity"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "vehicle_exit",
      "name": "On Vehicle Exit",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "vehicle exit",
        "exit[ing] [a] vehicle"
      ],
      "description": [
        "Called when an entity exits a vehicle."
      ],
      "requirements": null,
      "examples": [
        "on vehicle exit:\n\tif event-entity is a spider:\n\t\tkill event-entity\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "livingentity",
          "name": "living entity"
        },
        {
          "id": "vehicle",
          "name": "vehicle"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "piglin_barter",
      "name": "On Piglin Barter",
      "cancellable": true,
      "since": [
        "2.10"
      ],
      "patterns": [
        "piglin (barter[ing]|trad(e|ing))"
      ],
      "description": [
        "Called when a piglin finishes bartering. A piglin may start bartering after picking up an item on its bartering list.",
        "Cancelling will prevent piglins from dropping items, but will still make them pick up the input."
      ],
      "requirements": null,
      "examples": [
        "on piglin barter:\n\tif barter drops contain diamond:\n\t\tsend \"Diamonds belong in the money pit!\" to player\n\t\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "redstone",
      "name": "On Redstone",
      "cancellable": false,
      "since": [
        "1.0"
      ],
      "patterns": [
        "redstone [current] [chang(e|ing)]"
      ],
      "description": [
        "Called when the redstone current of a block changes. This event is of not much use yet."
      ],
      "requirements": null,
      "examples": [
        "on redstone change:\n\tsend \"someone is using redstone\" to console\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "vault_display_item",
      "name": "On Vault Display Item",
      "cancellable": true,
      "since": [
        "2.12"
      ],
      "patterns": [
        "vault display[ing] item"
      ],
      "description": [
        "Called when a vault in a trial chamber is about to display an item."
      ],
      "requirements": [
        "Minecraft 1.21.1+"
      ],
      "examples": [
        "on vault display item:\n\tset event-item to a netherite ingot\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "horse_jump",
      "name": "On Horse Jump",
      "cancellable": true,
      "since": [
        "2.5.1"
      ],
      "patterns": [
        "horse jump"
      ],
      "description": [
        "Called when a horse jumps."
      ],
      "requirements": null,
      "examples": [
        "on horse jump:\n\tpush event-entity upwards at speed 2\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "first_join",
      "name": "On First Join",
      "cancellable": false,
      "since": [
        "1.3.7"
      ],
      "patterns": [
        "first (join|login)"
      ],
      "description": [
        "Called when a player joins the server for the first time."
      ],
      "requirements": null,
      "examples": [
        "on first join:\n\tbroadcast \"Welcome %player% to the server!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "portal_create",
      "name": "On Portal Create",
      "cancellable": true,
      "since": [
        "1.0, 2.5.3 (event-entity support)"
      ],
      "patterns": [
        "portal creat(e|ion)"
      ],
      "description": [
        "Called when a portal is created, either by a player or mob lighting an obsidian frame on fire, or by a nether portal creating its teleportation target in the nether/overworld.",
        "In Minecraft 1.14+, you can use <a href='#ExprEntity'>the player</a> in this event.",
        "Please note that there may not always be a player (or other entity) in this event."
      ],
      "requirements": [
        "Minecraft 1.14+ (event-entity support)"
      ],
      "examples": [
        "on portal create:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "block",
          "name": "blocks"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "sheep_regrow_wool",
      "name": "On Sheep Regrow Wool",
      "cancellable": true,
      "since": [
        "2.2-dev21"
      ],
      "patterns": [
        "sheep [re]grow[ing] wool"
      ],
      "description": [
        "Called when sheep regrows its sheared wool back."
      ],
      "requirements": null,
      "examples": [
        "on sheep grow wool:\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "villager_career_change",
      "name": "On Villager Career Change",
      "cancellable": true,
      "since": [
        "2.12"
      ],
      "patterns": [
        "villager career chang(e[d]|ing)"
      ],
      "description": [
        "Called when a villager changes its career. Can be caused by being employed or losing their job."
      ],
      "requirements": null,
      "examples": [
        "on villager career change:\n\tif all:\n\t\tevent-career change reason is employment\n\t\tevent-villager profession is armorer profession\n\tthen:\n\t\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "villagerprofession",
          "name": "villager profession"
        },
        {
          "id": "villagerprofession",
          "name": "past villager profession"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "villagercareerchangereason",
          "name": "villager career change reason"
        }
      ],
      "keywords": null
    },
    {
      "id": "inventory_open",
      "name": "On Inventory Open",
      "cancellable": true,
      "since": [
        "2.2-dev21"
      ],
      "patterns": [
        "inventory open[ed]"
      ],
      "description": [
        "Called when an inventory is opened for player."
      ],
      "requirements": null,
      "examples": [
        "on inventory open:\n\tclose player's inventory\n"
      ],
      "eventValues": [
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "inventory",
          "name": "inventory"
        }
      ],
      "keywords": null
    },
    {
      "id": "send_command_list",
      "name": "On Send Command List",
      "cancellable": false,
      "since": [
        "2.8.0"
      ],
      "patterns": [
        "send[ing] [of [the]] [server] command[s] list",
        "[server] command list send"
      ],
      "description": [
        "Called when the server sends a list of commands to the player. This usually happens on join. The sent commands can be modified via the <a href='#ExprSentCommands'>sent commands expression</a>.",
        "Modifications will affect what commands show up for the player to tab complete. They will not affect what commands the player can actually run.",
        "Adding new commands to the list is illegal behavior and will be ignored."
      ],
      "requirements": null,
      "examples": [
        "on send command list:\n\tset command list to command list where [input does not contain \":\"]\n\tremove \"help\" from command list\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "can_build_check",
      "name": "On Can Build Check",
      "cancellable": true,
      "since": [
        "1.0 (basic), 2.0 ([un]cancellable)"
      ],
      "patterns": [
        "[block] can build check"
      ],
      "description": [
        "Called when a player rightclicks on a block while holding a block or a placeable item. You can either cancel the event to prevent the block from being built, or uncancel it to allow it.",
        "Please note that the <a href='#ExprDurability'>data value</a> of the block to be placed is not available in this event, only its <a href='#ExprIdOf'>ID</a>."
      ],
      "requirements": null,
      "examples": [
        "on block can build check:\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "block",
          "name": "past block"
        }
      ],
      "keywords": null
    },
    {
      "id": "bucket_fill",
      "name": "On Bucket fill",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "bucket fill[ing]",
        "[player] fill[ing] [a] bucket"
      ],
      "description": [
        "Called when a player fills a bucket."
      ],
      "requirements": null,
      "examples": [
        "on player filling a bucket:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "block",
          "name": "future block"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "pressure_plate_trip",
      "name": "On Pressure Plate / Trip",
      "cancellable": true,
      "since": [
        "1.0 (pressure plate), 1.4.4 (tripwire)"
      ],
      "patterns": [
        "[step[ping] on] [a] [pressure] plate",
        "(trip|[step[ping] on] [a] tripwire)"
      ],
      "description": [
        "Called when a <i>player</i> steps on a pressure plate or tripwire respectively."
      ],
      "requirements": null,
      "examples": [
        "on step on pressure plate:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "direction",
          "name": "direction"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "explode",
      "name": "On Explode",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "explo(d(e|ing)|sion)"
      ],
      "description": [
        "Called when an entity (a primed TNT or a creeper) explodes. When the mob griefing gamerule is false, this is not called for entities."
      ],
      "requirements": null,
      "examples": [
        "on explosion:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "spawn_change",
      "name": "On Spawn Change",
      "cancellable": false,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[world] spawn change"
      ],
      "description": [
        "Called when the spawn point of a world changes."
      ],
      "requirements": null,
      "examples": [
        "on spawn change:\n\tbroadcast \"someone changed the spawn!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "portal_enter",
      "name": "On Portal Enter",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "portal enter[ing]",
        "entering [a] portal"
      ],
      "description": [
        "Called when an entity enters a nether portal or an end portal. Please note that this event will be fired many times for a nether portal."
      ],
      "requirements": null,
      "examples": [
        "on portal enter:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "resurrect_attempt",
      "name": "On Resurrect Attempt",
      "cancellable": true,
      "since": [
        "2.2-dev28"
      ],
      "patterns": [
        "[entity] resurrect[ion] [attempt]"
      ],
      "description": [
        "Called when an entity dies, always. If they are not holding a totem, this is cancelled - you can, however, uncancel it."
      ],
      "requirements": null,
      "examples": [
        "on resurrect attempt:\n\tentity is player\n\tentity has permission \"admin.undying\"\n\tuncancel the event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "slot",
          "name": "slot"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "target",
      "name": "On Target",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[entity] target",
        "[entity] un[-]target"
      ],
      "description": [
        "Called when a mob starts/stops following/attacking another entity, usually a player."
      ],
      "requirements": null,
      "examples": [
        "on entity target:\n\ttarget is a player\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "kick",
      "name": "On Kick",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[player] (kick|being kicked)"
      ],
      "description": [
        "Called when a player is kicked from the server. You can change the <a href='#ExprMessage'>kick message</a> or <a href='#EffCancelEvent'>cancel the event</a> entirely."
      ],
      "requirements": null,
      "examples": [
        "on kick:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "vehicle_damage",
      "name": "On Vehicle Damage",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "vehicle damage",
        "damag(e|ing) [a] vehicle"
      ],
      "description": [
        "Called when a vehicle gets damage. Too much damage will <a href='#vehicle_destroy'>destroy</a> the vehicle."
      ],
      "requirements": null,
      "examples": [
        "on vehicle damage:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "vehicle",
          "name": "vehicle"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "player_deep_sleep",
      "name": "On Player Deep Sleep",
      "cancellable": true,
      "since": [
        "2.7"
      ],
      "patterns": [
        "[player] deep sleep[ing]"
      ],
      "description": [
        "Called when a player has slept long enough to count as passing the night/storm.",
        "Cancelling this event will prevent the player from being counted as deeply sleeping unless they exit and re-enter the bed."
      ],
      "requirements": null,
      "examples": [
        "on player deep sleeping:\n\tsend \"Zzzz..\" to player\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "block_damage",
      "name": "On Block Damage",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "block damag(ing|e)"
      ],
      "description": [
        "Called when a player starts to break a block. You can usually just use the leftclick event for this."
      ],
      "requirements": null,
      "examples": [
        "on block damaging:\n\tif block is tagged with minecraft tag \"logs\":\n\t\tsend \"You can't break the holy log!\"\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "chunk_generate",
      "name": "On Chunk Generate",
      "cancellable": false,
      "since": [
        "1.0"
      ],
      "patterns": [
        "chunk (generat|populat)(e|ing)"
      ],
      "description": [
        "Called after a new chunk was generated."
      ],
      "requirements": null,
      "examples": [
        "on chunk generate:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "chunk",
          "name": "chunk"
        }
      ],
      "keywords": null
    },
    {
      "id": "bed_leave",
      "name": "On Bed Leave",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "bed leav(e|ing)",
        "[player] leav(e|ing) [a] bed"
      ],
      "description": [
        "Called when a player leaves a bed."
      ],
      "requirements": null,
      "examples": [
        "on player leaving a bed:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "ignition",
      "name": "On Ignition",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[block] ignit(e|ion)"
      ],
      "description": [
        "Called when a block starts burning, i.e. a fire block is placed next to it and this block is flammable.",
        "The <a href='#burn'>burn event</a> will be called when the block is about do be destroyed by the fire."
      ],
      "requirements": null,
      "examples": [
        "on block ignite:\n\tif event-block is a ladder:\n\t\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "vehicle_move",
      "name": "On Vehicle Move",
      "cancellable": false,
      "since": [
        "2.10"
      ],
      "patterns": [
        "vehicle move"
      ],
      "description": [
        "Called when a vehicle moves.",
        "Please note that using this event can cause lag if there are multiple vehicle entities, i.e. Horse, Pig, Boat, Minecart"
      ],
      "requirements": null,
      "examples": [
        "on vehicle move:\n\tbroadcast past event-location\n\tbroadcast event-location\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "location",
          "name": "past location"
        },
        {
          "id": "vehicle",
          "name": "vehicle"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "projectile_collide",
      "name": "On Projectile Collide",
      "cancellable": true,
      "since": [
        "2.5"
      ],
      "patterns": [
        "projectile collide"
      ],
      "description": [
        "Called when a projectile collides with an entity."
      ],
      "requirements": null,
      "examples": [
        "on projectile collide:\n\tteleport shooter of event-projectile to event-entity\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "projectile",
          "name": "projectile"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "anvil_prepare",
      "name": "On Anvil Prepare",
      "cancellable": false,
      "since": [
        "2.7"
      ],
      "patterns": [
        "anvil prepar(e|ing)"
      ],
      "description": [
        "Called when an item is put in a slot for repair by an anvil. Please note that this event is called multiple times in a single item slot move."
      ],
      "requirements": null,
      "examples": [
        "on anvil prepare:\n\tevent-item is set # result item\n\tchance of 5%:\n\t\tset repair cost to repair cost * 50%\n\t\tsend \"You're LUCKY! You got 50% discount.\" to player\n"
      ],
      "eventValues": [
        {
          "id": "inventory",
          "name": "inventory"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "script_loadunload",
      "name": "On Script Load/Unload",
      "cancellable": false,
      "since": [
        "2.0"
      ],
      "patterns": [
        "[async] [script] (load|init|enable)",
        "[async] [script] (unload|stop|disable)"
      ],
      "description": [
        "Called directly after the trigger is loaded, or directly before the whole script is unloaded.",
        "The keyword 'async' indicates the trigger can be ran asynchronously, "
      ],
      "requirements": null,
      "examples": [
        "on load:\n\tset {running::%script%} to true\n",
        "on unload:\n\tset {running::%script%} to false\n"
      ],
      "eventValues": [
        {
          "id": "commandsender",
          "name": "command sender"
        }
      ],
      "keywords": null
    },
    {
      "id": "bat_toggle_sleep",
      "name": "On Bat Toggle Sleep",
      "cancellable": true,
      "since": [
        "2.11"
      ],
      "patterns": [
        "bat toggle sleep"
      ],
      "description": [
        "Called when a bat attempts to go to sleep or wakes up."
      ],
      "requirements": null,
      "examples": [
        "on bat toggle sleep:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "egg_throw",
      "name": "On Egg Throw",
      "cancellable": false,
      "since": [
        "1.0"
      ],
      "patterns": [
        "throw[ing] [of] [an] egg",
        "[player] egg throw"
      ],
      "description": [
        "Called when a player throws an egg and it lands. You can just use the <a href='#shoot'>shoot event</a> in most cases. However, this event allows modification of properties like the hatched entity type and the number of entities to hatch."
      ],
      "requirements": null,
      "examples": [
        "on throw of an egg:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "projectile",
          "name": "projectile"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "player_pickup_arrow",
      "name": "On Player Pickup Arrow",
      "cancellable": true,
      "since": [
        "2.8.0"
      ],
      "patterns": [
        "[player] (pick[ing| ]up [an] arrow|arrow pick[ing| ]up)"
      ],
      "description": [
        "Called when a player picks up an arrow from the ground."
      ],
      "requirements": null,
      "examples": [
        "on arrow pickup:\n\tcancel the event\n\tteleport event-projectile to block 5 above event-projectile\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "itementity",
          "name": "dropped item"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "projectile",
          "name": "projectile"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "vehicle_create",
      "name": "On Vehicle Create",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "vehicle create",
        "creat(e|ing|ion of) [a] vehicle"
      ],
      "description": [
        "Called when a new vehicle is created, e.g. when a player places a boat or minecart."
      ],
      "requirements": null,
      "examples": [
        "on vehicle create:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "vehicle",
          "name": "vehicle"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "item_break",
      "name": "On Item Break",
      "cancellable": false,
      "since": [
        "2.1.1"
      ],
      "patterns": [
        "[player] tool break[ing]",
        "[player] break[ing] [(a|the)] tool"
      ],
      "description": [
        "Called when a player breaks their tool because its damage reached the maximum value.",
        "This event cannot be cancelled."
      ],
      "requirements": null,
      "examples": [
        "on tool break:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "language_change",
      "name": "On Language Change",
      "cancellable": false,
      "since": [
        "2.3"
      ],
      "patterns": [
        "[player] (language|locale) chang(e|ing)",
        "[player] chang(e|ing) (language|locale)"
      ],
      "description": [
        "Called after a player changed their language in the game settings. You can use the <a href='#ExprLanguage'>language</a> expression to get the current language of the player."
      ],
      "requirements": null,
      "examples": [
        "on language change:\n\tif player's language starts with \"en\":\n\t\tsend \"Hello!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "inventory_item_move",
      "name": "On Inventory Item Move",
      "cancellable": true,
      "since": [
        "2.8.0"
      ],
      "patterns": [
        "inventory item (move|transport)",
        "inventory (mov(e|ing)|transport[ing]) [an] item"
      ],
      "description": [
        "Called when an entity or block (e.g. hopper) tries to move items directly from one inventory to another.",
        "When this event is called, the initiator may have already removed the item from the source inventory and is ready to move it into the destination inventory.",
        "If this event is cancelled, the items will be returned to the source inventory."
      ],
      "requirements": null,
      "examples": [
        "on inventory item move:\n\tbroadcast \"%holder of past event-inventory% is transporting %event-item% to %holder of event-inventory%!\"\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "block",
          "name": "future block"
        },
        {
          "id": "inventory",
          "name": "future inventory"
        },
        {
          "id": "inventory",
          "name": "inventory"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "pig_zap",
      "name": "On Pig Zap",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "pig[ ]zap"
      ],
      "description": [
        "Called when a pig is stroke by lightning and transformed into a zombie pigman. Cancel the event to prevent the transformation."
      ],
      "requirements": null,
      "examples": [
        "on pig zap:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entities"
        },
        {
          "id": "transformreason",
          "name": "transform reason"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "bell_ring",
      "name": "On Bell Ring",
      "cancellable": true,
      "since": [
        "2.9.0"
      ],
      "patterns": [
        "bell ring[ing]"
      ],
      "description": [
        "Called when a bell is rung."
      ],
      "requirements": null,
      "examples": [
        "on bell ring:\n\tsend \"<gold>Ding-dong!<reset>\" to all players in radius 10 of event-block\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "direction",
          "name": "direction"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "item_damage",
      "name": "On Item Damage",
      "cancellable": true,
      "since": [
        "2.5"
      ],
      "patterns": [
        "item damag(e|ing)"
      ],
      "description": [
        "Called when an item is damaged. Most tools are damaged by using them; armor is damaged when the wearer takes damage."
      ],
      "requirements": null,
      "examples": [
        "on item damage:\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "projectile_hit",
      "name": "On Projectile Hit",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "projectile hit"
      ],
      "description": [
        "Called when a projectile hits an entity or a block."
      ],
      "requirements": null,
      "examples": [
        "on projectile hit:\n\tif victim's health <= 3:\n\t\tdelete event-projectile\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "projectile",
          "name": "projectile"
        },
        {
          "id": "direction",
          "name": "direction"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "book_edit",
      "name": "On Book Edit",
      "cancellable": true,
      "since": [
        "2.2-dev31"
      ],
      "patterns": [
        "book (edit|change|write)"
      ],
      "description": [
        "Called when a player edits a book."
      ],
      "requirements": null,
      "examples": [
        "on book edit:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "past item stack"
        },
        {
          "id": "textcomponent",
          "name": "past text components"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        },
        {
          "id": "textcomponent",
          "name": "text components"
        }
      ],
      "keywords": null
    },
    {
      "id": "anvil_damage",
      "name": "On Anvil Damage",
      "cancellable": true,
      "since": [
        "2.7"
      ],
      "patterns": [
        "anvil damag(e|ing)"
      ],
      "description": [
        "Called when an anvil is damaged/broken from being used to repair/rename items.",
        "Note: this does not include anvil damage from falling."
      ],
      "requirements": null,
      "examples": [
        "on anvil damage:\n\tcancel the event\n"
      ],
      "eventValues": [
        {
          "id": "inventory",
          "name": "inventory"
        }
      ],
      "keywords": null
    },
    {
      "id": "shoot",
      "name": "On Shoot",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[projectile] (shoot|launch)"
      ],
      "description": [
        "Called whenever a <a href='#projectile'>projectile</a> is shot. Use the <a href='#ExprShooter'>shooter expression</a> to get who shot the projectile."
      ],
      "requirements": null,
      "examples": [
        "on shoot:\n\tif projectile is an arrow:\n\t\tsend \"you shot an arrow!\" to shooter\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "projectile",
          "name": "projectile"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "gliding_state_change",
      "name": "On Gliding State Change",
      "cancellable": true,
      "since": [
        "2.2-dev21"
      ],
      "patterns": [
        "(gliding state change|toggl(e|ing) gliding)"
      ],
      "description": [
        "Called when an entity toggles glider on or off, or when server toggles gliding state of an entity forcibly."
      ],
      "requirements": null,
      "examples": [
        "on toggling gliding:\n\tcancel the event # bad idea, but you CAN do it!\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "sprint_toggle",
      "name": "On Sprint Toggle",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[player] toggl(e|ing) sprint",
        "[player] sprint toggl(e|ing)"
      ],
      "description": [
        "Called when a player starts or stops sprinting. Use <a href='#CondIsSprinting'>is sprinting</a> to get whether the player was sprinting before the event was called."
      ],
      "requirements": null,
      "examples": [
        "on sprint toggle:\n\tplayer is not sprinting\n\tsend \"Run!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "inventory_slot_change",
      "name": "On Inventory Slot Change",
      "cancellable": false,
      "since": [
        "2.7"
      ],
      "patterns": [
        "[player] inventory slot chang(e|ing)"
      ],
      "description": [
        "Called when a slot in a player's inventory is changed.",
        "Warning: setting the event-slot to a new item can result in an infinite loop."
      ],
      "requirements": null,
      "examples": [
        "on inventory slot change:\n\tif event-item is a diamond:\n\t\tsend \"You obtained a diamond!\" to player\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "slot",
          "name": "slot"
        },
        {
          "id": "itemstack",
          "name": "past item stack"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "entity_dismount",
      "name": "On Entity Dismount",
      "cancellable": true,
      "since": [
        "2.2-dev13b"
      ],
      "patterns": [
        "dismount[ing]"
      ],
      "description": [
        "Called when an entity dismounts."
      ],
      "requirements": null,
      "examples": [
        "on dismount:\n\tkill event-entity\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "broadcast",
      "name": "On Broadcast",
      "cancellable": true,
      "since": [
        "2.10"
      ],
      "patterns": [
        "broadcast"
      ],
      "description": [
        "Called when a message is broadcasted."
      ],
      "requirements": null,
      "examples": [
        "on broadcast:\n\tset broadcast-message to \"&c[BROADCAST] %broadcasted message%\"\n"
      ],
      "eventValues": null,
      "keywords": null
    },
    {
      "id": "elytra_boost",
      "name": "On Elytra Boost",
      "cancellable": true,
      "since": [
        "2.10"
      ],
      "patterns": [
        "elytra boost"
      ],
      "description": [
        "Called when a player uses a firework to boost their fly speed when flying with an elytra."
      ],
      "requirements": null,
      "examples": [
        "on elytra boost:\n\tif the used firework will be consumed:\n\t\tprevent the used firework from being consume\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "block_fertilize",
      "name": "On Block Fertilize",
      "cancellable": true,
      "since": [
        "2.5"
      ],
      "patterns": [
        "[block] fertilize"
      ],
      "description": [
        "Called when a player fertilizes blocks."
      ],
      "requirements": [
        "Minecraft 1.13 or newer"
      ],
      "examples": [
        "on block fertilize:\n\tsend \"Fertilized %size of fertilized blocks% blocks got fertilized.\"\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "block",
          "name": "blocks"
        }
      ],
      "keywords": null
    },
    {
      "id": "beacon_toggle",
      "name": "On Beacon Toggle",
      "cancellable": false,
      "since": [
        "2.10"
      ],
      "patterns": [
        "beacon toggle",
        "beacon activat(e|ion)",
        "beacon deactivat(e|ion)"
      ],
      "description": [
        "Called when a beacon is activated or deactivated."
      ],
      "requirements": null,
      "examples": [
        "on beacon toggle:\n",
        "on beacon activate:\n",
        "on beacon deactivate:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "hunger_meter_change",
      "name": "On Hunger Meter Change",
      "cancellable": true,
      "since": [
        "1.4.4"
      ],
      "patterns": [
        "(food|hunger) (level|met(er|re)|bar) chang(e|ing)"
      ],
      "description": [
        "Called when the hunger bar of a player changes, i.e. either increases by eating or decreases over time."
      ],
      "requirements": null,
      "examples": [
        "on food bar change:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "piston_extend",
      "name": "On Piston Extend",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "piston extend[ing]"
      ],
      "description": [
        "Called when a piston is about to extend."
      ],
      "requirements": null,
      "examples": [
        "on piston extend:\n\tbroadcast \"A piston is extending!\"\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "item_mend",
      "name": "On Item Mend",
      "cancellable": true,
      "since": [
        "2.5.1"
      ],
      "patterns": [
        "item mend[ing]"
      ],
      "description": [
        "Called when a player has an item repaired via the Mending enchantment."
      ],
      "requirements": [
        "Minecraft 1.13 or newer"
      ],
      "examples": [
        "on item mend:\n\tchance of 50%:\n\t\tcancel the event\n\t\tsend \"Oops! Mending failed!\" to player\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "ready_arrow",
      "name": "On Ready Arrow",
      "cancellable": true,
      "since": [
        "2.8.0"
      ],
      "patterns": [
        "[player] ((ready|choose|draw|load) arrow|arrow (choose|draw|load))"
      ],
      "description": [
        "Called when a player is firing a bow and the server is choosing an arrow to use.",
        "Cancelling this event will skip the current arrow item and fire a new event for the next arrow item.",
        "The arrow and bow in the event can be accessed with the Readied Arrow/Bow expression."
      ],
      "requirements": null,
      "examples": [
        "on player ready arrow:\n\tselected bow's name is \"Spectral Bow\"\n\tif selected arrow is not a spectral arrow:\n\t\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "tool_change",
      "name": "On Tool Change",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[player['s]] (tool|item held|held item) chang(e|ing)"
      ],
      "description": [
        "Called whenever a player changes their held item by selecting a different slot (e.g. the keys 1-9 or the mouse wheel), <i>not</i> by dropping or replacing the item in the current slot."
      ],
      "requirements": null,
      "examples": [
        "on player's held item change:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "slot",
          "name": "past slot"
        },
        {
          "id": "slot",
          "name": "slot"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "vehicle_enter",
      "name": "On Vehicle Enter",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "vehicle enter",
        "enter[ing] [a] vehicle"
      ],
      "description": [
        "Called when an <a href='#entity'>entity</a> enters a vehicle, either deliberately (players) or by falling into them (mobs)."
      ],
      "requirements": null,
      "examples": [
        "on vehicle enter:\n\tentity is a player\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "vehicle",
          "name": "vehicle"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "server_list_ping",
      "name": "On Server List Ping",
      "cancellable": true,
      "since": [
        "2.3"
      ],
      "patterns": [
        "server [list] ping"
      ],
      "description": [
        "Called when a server list ping is coming in, generally when a Minecraft client pings the server to show its information in the server list.",
        "The <a href='#ExprIP'>IP</a> expression can be used to get the IP adress of the pinger.",
        "This event can be cancelled on PaperSpigot 1.12.2+ only and this means the player will see the server as offline (but still can join).",
        "",
        "Also you can use <a href='#ExprMOTD'>MOTD</a>, <a href='#ExprMaxPlayers'>Max Players</a>, <a href='#ExprOnlinePlayersCount'>Online Players Count</a>, <a href='#ExprProtocolVersion'>Protocol Version</a>, <a href='#ExprVersionString'>Version String</a>, <a href='#ExprHoverList'>Hover List</a> and <a href='#ExprServerIcon'>Server Icon</a> expressions, and <a href='#EffPlayerInfoVisibility'>Player Info Visibility</a> and <a href='#EffHidePlayerFromServerList'>Hide Player from Server List</a> effects to modify the server list."
      ],
      "requirements": null,
      "examples": [
        "on server list ping:\n\tset the motd to \"Welcome %{player-by-IP::%ip%}%! Join now!\" if {player-by-IP::%ip%} is set, else \"Join now!\"\n\tset the fake max players count to (online players count + 1)\n\tset the shown icon to a random server icon out of {server-icons::*}\n"
      ],
      "eventValues": null,
      "keywords": null
    },
    {
      "id": "server_startstop",
      "name": "On Server Start/Stop",
      "cancellable": false,
      "since": [
        "2.0"
      ],
      "patterns": [
        "(server|skript) (start|load|enable)",
        "(server|skript) (stop|unload|disable)"
      ],
      "description": [
        "Called when the server starts or stops (actually, when Skript starts or stops, so a /reload will trigger these events as well)."
      ],
      "requirements": null,
      "examples": [
        "on skript start:\n",
        "on server stop:\n"
      ],
      "eventValues": [
        {
          "id": "commandsender",
          "name": "command sender"
        }
      ],
      "keywords": null
    },
    {
      "id": "riptide",
      "name": "On Riptide",
      "cancellable": true,
      "since": [
        "2.5"
      ],
      "patterns": [
        "[use of] riptide [enchant[ment]]"
      ],
      "description": [
        "Called when the player activates the riptide enchantment, using their trident to propel them through the air.",
        "Note: the riptide action is performed client side, so manipulating the player in this event may have undesired effects."
      ],
      "requirements": null,
      "examples": [
        "on riptide:\n\tsend \"You are riptiding!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "swim_toggle",
      "name": "On Swim Toggle",
      "cancellable": true,
      "since": [
        "2.3"
      ],
      "patterns": [
        "[entity] toggl(e|ing) swim",
        "[entity] swim toggl(e|ing)"
      ],
      "description": [
        "Called when an entity swims or stops swimming."
      ],
      "requirements": [
        "1.13 or newer"
      ],
      "examples": [
        "on swim toggle:\n\tevent-entity does not have permission \"swim\"\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "sneak_toggle",
      "name": "On Sneak Toggle",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[player] toggl(e|ing) sneak",
        "[player] sneak toggl(e|ing)"
      ],
      "description": [
        "Called when a player starts or stops sneaking. Use <a href='#CondIsSneaking'>is sneaking</a> to get whether the player was sneaking before the event was called."
      ],
      "requirements": null,
      "examples": [
        "# make players that stop sneaking jump\n",
        "on sneak toggle:\n\tplayer is sneaking\n\tpush the player upwards at speed 0.5\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "inventory_close",
      "name": "On Inventory Close",
      "cancellable": false,
      "since": [
        "2.2-dev21"
      ],
      "patterns": [
        "inventory clos(ing|e[d])"
      ],
      "description": [
        "Called when player's currently viewed inventory is closed."
      ],
      "requirements": null,
      "examples": [
        "on inventory close:\n\tif player's location is {location}:\n\t\tsend \"You exited the shop!\"\n"
      ],
      "eventValues": [
        {
          "id": "inventoryclosereason",
          "name": "inventory close reason"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "inventory",
          "name": "inventory"
        }
      ],
      "keywords": null
    },
    {
      "id": "quit",
      "name": "On Quit",
      "cancellable": false,
      "since": [
        "1.0 (simple disconnection)"
      ],
      "patterns": [
        "(quit[ting]|disconnect[ing]|log[ ]out|logging out|leav(e|ing))"
      ],
      "description": [
        "Called when a player leaves the server."
      ],
      "requirements": null,
      "examples": [
        "on quit:\n",
        "on disconnect:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "quitreason",
          "name": "quit reason"
        }
      ],
      "keywords": null
    },
    {
      "id": "flow",
      "name": "On Flow",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[block] flow[ing]",
        "block mov(e|ing)"
      ],
      "description": [
        "Called when a blocks flows or teleports to another block. This not only applies to water and lava, but teleporting dragon eggs as well."
      ],
      "requirements": null,
      "examples": [
        "on block flow:\n\tif event-block is water:\n\t\tbroadcast \"Build more dams! It's starting to get wet in here\"\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "block",
          "name": "future block"
        }
      ],
      "keywords": null
    },
    {
      "id": "jump",
      "name": "On Jump",
      "cancellable": true,
      "since": [
        "2.3"
      ],
      "patterns": [
        "[player] jump[ing]"
      ],
      "description": [
        "Called whenever a player jumps.",
        "This event requires PaperSpigot."
      ],
      "requirements": null,
      "examples": [
        "on jump:\n\tevent-player does not have permission \"jump\"\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "explosion_prime",
      "name": "On Explosion Prime",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "explosion prime"
      ],
      "description": [
        "Called when an explosive is primed, i.e. an entity will explode shortly. Creepers can abort the explosion if the player gets too far away, while TNT will explode for sure after a short time."
      ],
      "requirements": null,
      "examples": [
        "on explosion prime:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "spread",
      "name": "On Spread",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "spread[ing]"
      ],
      "description": [
        "Called when a new block <a href='#form'>forms</a> as a result of a block that can spread, e.g. water or mushrooms."
      ],
      "requirements": null,
      "examples": [
        "on spread:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "block",
          "name": "past block"
        }
      ],
      "keywords": null
    },
    {
      "id": "bell_resonate",
      "name": "On Bell Resonate",
      "cancellable": false,
      "since": [
        "2.9.0"
      ],
      "patterns": [
        "bell resonat(e|ing)"
      ],
      "description": [
        "Called when a bell resonates, highlighting nearby raiders."
      ],
      "requirements": null,
      "examples": [
        "on bell resonate:\n\tsend \"<red>Raiders are nearby!\" to all players in radius 32 around event-block\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entity",
          "name": "entities"
        }
      ],
      "keywords": null
    },
    {
      "id": "arm_swing",
      "name": "On Arm Swing",
      "cancellable": true,
      "since": [
        "2.5.1"
      ],
      "patterns": [
        "[player] arm swing"
      ],
      "description": [
        "Called when a player swings their arm."
      ],
      "requirements": null,
      "examples": [
        "on arm swing:\n\tsend \"You swung your arm!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "experience_spawn",
      "name": "On Experience Spawn",
      "cancellable": true,
      "since": [
        "2.0"
      ],
      "patterns": [
        "[e]xp[erience] [orb] spawn",
        "spawn of [a[n]] [e]xp[erience] [orb]"
      ],
      "description": [
        "Called whenever experience is about to spawn.",
        "Please note that this event will not fire for xp orbs spawned by plugins (including Skript) with Bukkit."
      ],
      "requirements": null,
      "examples": [
        "on xp spawn:\n\tworld is \"minigame_world\"\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "experience",
          "name": "experience point"
        }
      ],
      "keywords": null
    },
    {
      "id": "vehicle_destroy",
      "name": "On Vehicle Destroy",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "vehicle destroy",
        "destr(oy[ing]|uction of) [a] vehicle"
      ],
      "description": [
        "Called when a vehicle is destroyed. Any <a href='#ExprPassenger'>passenger</a> will be ejected and the vehicle might drop some item(s)."
      ],
      "requirements": null,
      "examples": [
        "on vehicle destroy:\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "vehicle",
          "name": "vehicle"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "portal",
      "name": "On Portal",
      "cancellable": true,
      "since": [
        "1.0, 2.5.3 (entities), 2.13 (location changers)"
      ],
      "patterns": [
        "[player] portal",
        "entity portal"
      ],
      "description": [
        "Called when a player or an entity uses a nether or end portal. Note that 'on entity portal' event does not apply to players.",
        "<a href='#EffCancelEvent'>Cancel the event</a> to prevent the entity from teleporting."
      ],
      "requirements": null,
      "examples": [
        "on portal:\n\tbroadcast \"%player% has entered a portal!\"\n",
        "on player portal:\n\tplayer's world is world(\"wilderness\")\n\tset world of event-location to player's world\n\tadd 9000 to x-pos of event-location\n",
        "on entity portal:\n\tbroadcast \"A %type of event-entity% has entered a portal!\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "chunk",
          "name": "past chunk"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "location",
          "name": "past location"
        },
        {
          "id": "chunk",
          "name": "chunk"
        },
        {
          "id": "teleportcause",
          "name": "teleport cause"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": [
        "player",
        "entity"
      ]
    },
    {
      "id": "inventory_pickup",
      "name": "On Inventory Pickup",
      "cancellable": true,
      "since": [
        "2.5.1"
      ],
      "patterns": [
        "inventory pick[ ]up"
      ],
      "description": [
        "Called when an inventory (a hopper, a hopper minecart, etc.) picks up an item"
      ],
      "requirements": null,
      "examples": [
        "on inventory pickup:\n"
      ],
      "eventValues": [
        {
          "id": "itementity",
          "name": "dropped item"
        },
        {
          "id": "inventory",
          "name": "inventory"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "book_sign",
      "name": "On Book Sign",
      "cancellable": true,
      "since": [
        "2.2-dev31"
      ],
      "patterns": [
        "book sign[ing]"
      ],
      "description": [
        "Called when a player signs a book."
      ],
      "requirements": null,
      "examples": [
        "on book sign:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "past item stack"
        },
        {
          "id": "textcomponent",
          "name": "past text components"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        },
        {
          "id": "textcomponent",
          "name": "text components"
        }
      ],
      "keywords": null
    },
    {
      "id": "stop_using_item",
      "name": "On Stop Using Item",
      "cancellable": false,
      "since": [
        "2.8.0"
      ],
      "patterns": [
        "[player] (stop|end) (using item|item use)"
      ],
      "description": [
        "Called when a player stops using an item. For example, when the player releases the interact button when holding a bow, an edible item, or a spyglass.",
        "Note that event-timespan will return the time the item was used for."
      ],
      "requirements": null,
      "examples": [
        "on player stop using item:\n\tbroadcast \"%player% used %event-item% for %event-timespan%.\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "timespan",
          "name": "time span"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemtype",
          "name": "item type"
        }
      ],
      "keywords": null
    },
    {
      "id": "level_change",
      "name": "On Level Change",
      "cancellable": false,
      "since": [
        "1.0, 2.4 (level up/down)"
      ],
      "patterns": [
        "[player] level (change|up|down)"
      ],
      "description": [
        "Called when a player's <a href='#ExprLevel'>level</a> changes, e.g. by gathering experience or by enchanting something."
      ],
      "requirements": null,
      "examples": [
        "on level change:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "bucket_empty",
      "name": "On Bucket Empty",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "bucket empty[ing]",
        "[player] empty[ing] [a] bucket"
      ],
      "description": [
        "Called when a player empties a bucket. You can also use the <a href='#place'>place event</a> with a check for water or lava."
      ],
      "requirements": null,
      "examples": [
        "on bucket empty:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "block",
          "name": "past block"
        }
      ],
      "keywords": null
    },
    {
      "id": "leaves_decay",
      "name": "On Leaves Decay",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "leaves decay[ing]"
      ],
      "description": [
        "Called when a leaf block decays due to not being connected to a tree."
      ],
      "requirements": null,
      "examples": [
        "on leaves decay:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "player_world_change",
      "name": "On Player World Change",
      "cancellable": false,
      "since": [
        "2.2-dev28"
      ],
      "patterns": [
        "[player] world chang(ing|e[d])"
      ],
      "description": [
        "Called when a player enters a world. Does not work with other entities!"
      ],
      "requirements": null,
      "examples": [
        "on player world change:\n\tworld is \"city\"\n\tsend \"Welcome to the City!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "world",
          "name": "past world"
        }
      ],
      "keywords": null
    },
    {
      "id": "tame",
      "name": "On Tame",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[entity] tam(e|ing)"
      ],
      "description": [
        "Called when a player tames a wolf or ocelot. Can be cancelled to prevent the entity from being tamed."
      ],
      "requirements": null,
      "examples": [
        "on tame:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "connect",
      "name": "On Connect",
      "cancellable": false,
      "since": [
        "2.0"
      ],
      "patterns": [
        "[player] connect[ing]"
      ],
      "description": [
        "Called when the player connects to the server. This event is called before the player actually joins the server, so if you want to prevent players from joining you should prefer this event over <a href='#join'>on join</a>."
      ],
      "requirements": null,
      "examples": [
        "on connect:\n\tplayer doesn't have permission \"VIP\"\n\tnumber of players is greater than 15\n\tkick the player due to \"The last 5 slots are reserved for VIP players.\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "entity_mount",
      "name": "On Entity Mount",
      "cancellable": true,
      "since": [
        "2.2-dev13b"
      ],
      "patterns": [
        "mount[ing]"
      ],
      "description": [
        "Called when entity starts riding another."
      ],
      "requirements": null,
      "examples": [
        "on mount:\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "chunk_load",
      "name": "On Chunk Load",
      "cancellable": false,
      "since": [
        "1.0"
      ],
      "patterns": [
        "chunk load[ing]"
      ],
      "description": [
        "Called when a chunk loads. The chunk might or might not contain mobs when it's loaded."
      ],
      "requirements": null,
      "examples": [
        "on chunk load:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "chunk",
          "name": "chunk"
        }
      ],
      "keywords": null
    },
    {
      "id": "slime_split",
      "name": "On Slime Split",
      "cancellable": true,
      "since": [
        "2.2-dev26"
      ],
      "patterns": [
        "slime split[ting]"
      ],
      "description": [
        "Called when a slime splits. Usually this happens when a big slime dies."
      ],
      "requirements": null,
      "examples": [
        "on slime split:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "join",
      "name": "On Join",
      "cancellable": false,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[player] (login|logging in|join[ing])"
      ],
      "description": [
        "Called when the player joins the server. The player is already in a world when this event is called, so if you want to prevent players from joining you should prefer <a href='#connect'>on connect</a> over this event."
      ],
      "requirements": null,
      "examples": [
        "on join:\n\tmessage \"Welcome on our awesome server!\"\n\tbroadcast \"%player% just joined the server!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "creeper_power",
      "name": "On Creeper Power",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "creeper power"
      ],
      "description": [
        "Called when a creeper is struck by lighting and gets powered. Cancel the event to prevent the creeper from being powered."
      ],
      "requirements": null,
      "examples": [
        "on creeper power:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "zombie_break_door",
      "name": "On Zombie Break Door",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "zombie break[ing] [a] [wood[en]] door"
      ],
      "description": [
        "Called when a zombie is done breaking a wooden door. Can be cancelled to prevent the zombie from breaking the door."
      ],
      "requirements": null,
      "examples": [
        "on zombie breaking a wood door:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "blockdata",
          "name": "future block data"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "blockdata",
          "name": "block data"
        },
        {
          "id": "block",
          "name": "past block"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "flight_toggle",
      "name": "On Flight Toggle",
      "cancellable": true,
      "since": [
        "2.2-dev36"
      ],
      "patterns": [
        "[player] flight toggl(e|ing)",
        "[player] toggl(e|ing) flight"
      ],
      "description": [
        "Called when a players stops/starts flying."
      ],
      "requirements": null,
      "examples": [
        "on flight toggle:\n\tif {game::%player%::playing} exists:\n\t\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "enderman_enrage",
      "name": "On Enderman Enrage",
      "cancellable": true,
      "since": [
        "2.9.0"
      ],
      "patterns": [
        "enderman (enrage|anger)"
      ],
      "description": [
        "Called when an enderman gets mad because a player looked at them.",
        "Note: This does not stop enderman from targeting the player as a result of getting damaged."
      ],
      "requirements": null,
      "examples": [
        "# Stops endermen from getting angry players with the permission \"safeFrom.enderman\"\n",
        "on enderman enrage:\n\tif player has permission \"safeFrom.enderman\":\n\t\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "player_chunk_enter",
      "name": "On Player Chunk Enter",
      "cancellable": true,
      "since": [
        "2.7"
      ],
      "patterns": [
        "[player] (enter[s] [a] chunk|chunk enter[ing])"
      ],
      "description": [
        "Called when a player enters a chunk. Note that this event is based on 'player move' event, and may be called frequent internally."
      ],
      "requirements": null,
      "examples": [
        "on player enters a chunk:\n\tsend \"You entered a chunk: %past event-chunk% -> %event-chunk%!\" to player\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "chunk",
          "name": "past chunk"
        },
        {
          "id": "location",
          "name": "past location"
        },
        {
          "id": "chunk",
          "name": "chunk"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "inventory_drag",
      "name": "On Inventory Drag",
      "cancellable": true,
      "since": [
        "2.7"
      ],
      "patterns": [
        "inventory drag[ging]"
      ],
      "description": [
        "Called when a player drags an item in their cursor across the inventory."
      ],
      "requirements": null,
      "examples": [
        "on inventory drag:\n\tif player's current inventory is {_gui}:\n\t\tsend \"You can't drag your items here!\" to player\n\t\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "inventory",
          "name": "inventories"
        },
        {
          "id": "itemstack",
          "name": "item stacks"
        },
        {
          "id": "itemstack",
          "name": "past item stack"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "slot",
          "name": "slots"
        },
        {
          "id": "clicktype",
          "name": "click type"
        },
        {
          "id": "inventory",
          "name": "inventory"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "start_smelt",
      "name": "On Start Smelt",
      "cancellable": false,
      "since": [
        "2.10"
      ],
      "patterns": [
        "[furnace] start [of] smelt[ing] [[of] %item types%]",
        "[furnace] smelt[ing] start [of %item types%]"
      ],
      "description": [
        "Called when a furnace starts smelting an item in its ore slot."
      ],
      "requirements": null,
      "examples": [
        "on smelting start:\n\tif the smelting item is raw iron:\n\t\tset total cook time to 1 second\n",
        "on smelting start of raw iron:\n\tadd 20 seconds to total cook time\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "brewing_fuel",
      "name": "On Brewing Fuel",
      "cancellable": true,
      "since": [
        "2.13"
      ],
      "patterns": [
        "brew[ing [stand]] consum(e|ing) fuel [of %item types%]",
        "brew[ing [stand]] fuel consumption [of %item types%]"
      ],
      "description": [
        "Called when a brewing stand is about to use an item to increase its fuel level."
      ],
      "requirements": null,
      "examples": [
        "on brewing consume fuel:\n\tprevent the brewing stand from consuming fuel\non brewing fuel consumption of blaze powder:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "form",
      "name": "On Form",
      "cancellable": true,
      "since": [
        "1.0, 2.6 (BlockData support)"
      ],
      "patterns": [
        "[block] form[ing] [[of] %item types/block datas%]"
      ],
      "description": [
        "Called when a block is created, but not by a player, e.g. snow forms due to snowfall, water freezes in cold biomes. This isn't called when block spreads (mushroom growth, water physics etc.), as it has its own event (see <a href='#spread'>spread event</a>)."
      ],
      "requirements": null,
      "examples": [
        "on form of snow:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "block",
          "name": "past block"
        }
      ],
      "keywords": null
    },
    {
      "id": "firework_explode",
      "name": "On Firework Explode",
      "cancellable": true,
      "since": [
        "2.4"
      ],
      "patterns": [
        "[a] firework explo(d(e|ing)|sion) [colo[u]red %colors%]"
      ],
      "description": [
        "Called when a firework explodes."
      ],
      "requirements": null,
      "examples": [
        "on firework explode:\n\tif event-colors contains red:\n",
        "on firework exploding colored red, light green and black:\n",
        "on firework explosion colored rgb 0, 255, 0:\n\tbroadcast \"A firework colored %colors% was exploded at %location%!\"\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "fireworkeffect",
          "name": "firework effect"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "color",
          "name": "colors"
        },
        {
          "id": "projectile",
          "name": "projectile"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "region_enterleave",
      "name": "On Region Enter/Leave",
      "cancellable": true,
      "since": [
        "2.1"
      ],
      "patterns": [
        "(enter[ing]|leav(e|ing)|exit[ing]) [of] ([a] region|[[the] region] %regions%)",
        "region (enter[ing]|leav(e|ing)|exit[ing])"
      ],
      "description": [
        "Called when a player enters or leaves a <a href='#region'>region</a>.",
        "This event requires a supported regions plugin to be installed."
      ],
      "requirements": [
        "Supported regions plugin"
      ],
      "examples": [
        "on region exit:\n\tmessage \"Leaving %region%.\"\n"
      ],
      "eventValues": [
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "region",
          "name": "region"
        }
      ],
      "keywords": null
    },
    {
      "id": "brewing_complete",
      "name": "On Brewing Complete",
      "cancellable": true,
      "since": [
        "2.13"
      ],
      "patterns": [
        "brew[ing] [complet(e[d]|ion)|finish[ed]] [(of|for) %item types/potion effect types%]"
      ],
      "description": [
        "Called when a brewing stand finishes brewing an ingredient and changes the potions."
      ],
      "requirements": null,
      "examples": [
        "on brew:\n\tbroadcast event-item\non brewing of speed potion:\non brew finished for speed 2 potion:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "consume",
      "name": "On Consume",
      "cancellable": true,
      "since": [
        "2.0"
      ],
      "patterns": [
        "[player] ((eat|drink)[ing]|consum(e|ing)) [[of] %item types%]"
      ],
      "description": [
        "Called when a player is done eating/drinking something, e.g. an apple, bread, meat, milk or a potion."
      ],
      "requirements": null,
      "examples": [
        "on consume:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "item_merge",
      "name": "On Item Merge",
      "cancellable": true,
      "since": [
        "2.2-dev35"
      ],
      "patterns": [
        "(item[ ][stack]|[item] %item types%) merg(e|ing)",
        "item[ ][stack] merg(e|ing) [[of] %item types%]"
      ],
      "description": [
        "Called when dropped items merge into a single stack. event-entity will be the entity which is trying to merge, and future event-entity will be the entity which is being merged into."
      ],
      "requirements": null,
      "examples": [
        "on item merge of gold blocks:\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "itementity",
          "name": "future dropped item"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "itementity",
          "name": "dropped item"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "fade",
      "name": "On Fade",
      "cancellable": true,
      "since": [
        "1.0, 2.6 (BlockData support)"
      ],
      "patterns": [
        "[block] fad(e|ing) [[of] %item types/block datas%]"
      ],
      "description": [
        "Called when a block 'fades away', e.g. ice or snow melts."
      ],
      "requirements": null,
      "examples": [
        "on fade of snow or blue ice:\n",
        "on fade of snow[layers=2]\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "block",
          "name": "future block"
        },
        {
          "id": "block",
          "name": "past block"
        }
      ],
      "keywords": null
    },
    {
      "id": "fuel_burn",
      "name": "On Fuel Burn",
      "cancellable": true,
      "since": [
        "1.0, 2.10 (specific item)"
      ],
      "patterns": [
        "[furnace] fuel burn[ing] [of %item types%]"
      ],
      "description": [
        "Called when a furnace burns an item from its <a href='#ExprFurnaceSlot'>fuel slot</a>."
      ],
      "requirements": null,
      "examples": [
        "on fuel burning:\n\tbroadcast fuel burned\n\tif burned fuel is coal:\n\t\tadd 20 seconds to burn time\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "inventory_click",
      "name": "On Inventory Click",
      "cancellable": true,
      "since": [
        "2.2-Fixes-V10"
      ],
      "patterns": [
        "[player] inventory(-| )click[ing] [[at] %item types%]"
      ],
      "description": [
        "Called when clicking on inventory slot."
      ],
      "requirements": null,
      "examples": [
        "on inventory click:\n\tif event-item is stone:\n\t\tgive player 1 stone\n\t\tremove 20$ from player's balance\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "slot",
          "name": "slot"
        },
        {
          "id": "inventoryaction",
          "name": "inventory action"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "clicktype",
          "name": "click type"
        },
        {
          "id": "inventory",
          "name": "inventory"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "resource_pack_request_response",
      "name": "On Resource Pack Request Response",
      "cancellable": false,
      "since": [
        "2.4"
      ],
      "patterns": [
        "resource pack [request] response",
        "resource pack [request] %resource pack states%"
      ],
      "description": [
        "Called when a player takes action on a resource pack request sent via the ",
        "<a href='#EffSendResourcePack'>send resource pack</a> effect. ",
        "The <a href='#CondResourcePack'>resource pack</a> condition can be used ",
        "to check the resource pack state.",
        "",
        "This event will be triggered once when the player accepts or declines the resource pack request, ",
        "and once when the resource pack is successfully installed or failed to download."
      ],
      "requirements": null,
      "examples": [
        "on resource pack request response:\n\tif the resource pack was declined or failed to download:\n",
        "on resource pack deny:\n\tkick the player due to \"You have to install the resource pack to play in this server!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "periodical",
      "name": "Periodical",
      "cancellable": false,
      "since": [
        "1.0"
      ],
      "patterns": [
        "every %time span%"
      ],
      "description": [
        "An event that is called periodically."
      ],
      "requirements": null,
      "examples": [
        "every 2 seconds:\n",
        "every minecraft hour:\n",
        "every tick: # can cause lag depending on the code inside the event\n",
        "every minecraft days:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "player_pick_item",
      "name": "On Player Pick Item",
      "cancellable": true,
      "since": [
        "2.15"
      ],
      "patterns": [
        "[player] pick[ing] [of] [an|any] item",
        "[player] pick[ing] [of] [a|any] block",
        "[player] pick[ing] [of] [an|any] entity",
        "[player] pick[ing] [of] %entity type/item type/block data%"
      ],
      "description": [
        "Called when a player picks an item, block or an entity using the pick block key (default middle mouse button).",
        "The past event-slot represents the slot containing the item that will be put into the players hotbar, or nothing, if the item is not in the inventory.",
        "The event-slot represents the slot in the hotbar where the picked item will be placed.",
        "Both event-slots may be set to new slots."
      ],
      "requirements": [
        "1.21.5+"
      ],
      "examples": [
        "on player picking a diamond block:\n\tcancel event\n\tsend \"You cannot pick diamond blocks!\" to the player\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "slot",
          "name": "past slot"
        },
        {
          "id": "slot",
          "name": "slot"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "entity_shoot_bow",
      "name": "On Entity Shoot Bow",
      "cancellable": true,
      "since": [
        "2.11"
      ],
      "patterns": [
        "%entity types% shoot[ing] (bow|projectile)"
      ],
      "description": [
        "Called when an entity shoots a bow.\nevent-entity refers to the shot projectile/entity.\n"
      ],
      "requirements": null,
      "examples": [
        "on player shoot bow:\n\tchance of 30%:\n\t\tdamage event-slot by 10\n\t\tsend \"Your bow has taken increased damage!\" to shooter\n\non stray shooting bow:\n\tset {_e} to event-entity\n\tspawn a cow at {_e}:\n\t\tset velocity of entity to velocity of {_e}\n\tset event-entity to last spawned entity\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "slot",
          "name": "slot"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "teleport",
      "name": "On Teleport",
      "cancellable": true,
      "since": [
        "1.0, 2.9.0 (entity teleport)"
      ],
      "patterns": [
        "[%entity types%] teleport[ing]"
      ],
      "description": [
        "This event can be used to listen to teleports from non-players or player entities respectively.",
        "When teleporting entities, the event may also be called due to a result of natural causes, such as an enderman or shulker teleporting, or wolves teleporting to players.",
        "When teleporting players, the event can be called by teleporting through a nether/end portal, or by other means (e.g. plugins)."
      ],
      "requirements": null,
      "examples": [
        "on teleport:\n",
        "on player teleport:\n",
        "on creeper teleport:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "chunk",
          "name": "past chunk"
        },
        {
          "id": "location",
          "name": "past location"
        },
        {
          "id": "chunk",
          "name": "chunk"
        },
        {
          "id": "teleportcause",
          "name": "teleport cause"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "drop",
      "name": "On Drop",
      "cancellable": true,
      "since": [
        "unknown (before 2.1), 2.7 (entity)"
      ],
      "patterns": [
        "[player|entity] drop[ping] [[of] %item types%]"
      ],
      "description": [
        "Called when a player drops an item from their inventory, or an entity drops an item, such as a chicken laying an egg."
      ],
      "requirements": null,
      "examples": [
        "on drop:\n\tif event-item is compass:\n\t\tcancel event\n",
        "on entity drop of an egg:\n\tif event-entity is a chicken:\n\t\tset item of event-dropped item to a diamond\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "itementity",
          "name": "dropped item"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "player_input",
      "name": "On Player Input",
      "cancellable": false,
      "since": [
        "2.10"
      ],
      "patterns": [
        "[player] (toggle|toggling|press[ing]|release|releasing) of (%input keys%|(an|any) input key)",
        "([player] %input keys%|[an|player] input key) (toggle|toggling|press[ing]|release|releasing)"
      ],
      "description": [
        "Called when a player sends an updated input to the server.",
        "Note: The input keys event value is the set of keys the player is currently pressing, not the keys that were pressed or released."
      ],
      "requirements": [
        "Minecraft 1.21.3+"
      ],
      "examples": [
        "on input key press:\n\tsend \"You are pressing: %event-inputkeys%\" to player\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "inputkey",
          "name": "past input keys"
        },
        {
          "id": "inputkey",
          "name": "input keys"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "furnace_item_extract",
      "name": "On Furnace Item Extract",
      "cancellable": false,
      "since": [
        "2.10"
      ],
      "patterns": [
        "furnace [item] extract[ion] [of %item types%]"
      ],
      "description": [
        "Called when a player takes any item out of the furnace."
      ],
      "requirements": null,
      "examples": [
        "on furnace extract:\n\tif event-items is an iron ingot:\n\t\tremove event-items from event-player's inventory\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "itemstack",
          "name": "item stacks"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "beacon_effect",
      "name": "On Beacon Effect",
      "cancellable": true,
      "since": [
        "2.10"
      ],
      "patterns": [
        "[primary|secondary] beacon effect [of %potion effect types%]",
        "application of [primary|secondary] beacon effect [of %potion effect types%]",
        "[primary|secondary] beacon effect apply [of %potion effect types%]"
      ],
      "description": [
        "Called when a player gets an effect from a beacon."
      ],
      "requirements": null,
      "examples": [
        "on beacon effect:\n\tbroadcast applied effect\n\tbroadcast event-player\n\tbroadcast event-block\n",
        "on primary beacon effect apply of haste:\n",
        "on application of secondary beacon effect:\n",
        "on beacon effect of speed:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "command",
      "name": "On Command",
      "cancellable": true,
      "since": [
        "2.0"
      ],
      "patterns": [
        "command [%texts%]"
      ],
      "description": [
        "Called when a player enters a command. You can check whether the command is a script command using the '<a href='#CondIsScriptCommand'>Is a Script Command</a>' condition.\n"
      ],
      "requirements": null,
      "examples": [
        "on command:\n\tthe player is in water\n\tcancel the event\n\tsend \"<red>Commands cannot be executed in water!\" to the player\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "move_rotate",
      "name": "On Move / Rotate",
      "cancellable": true,
      "since": [
        "2.6, 2.8.0 (turn around)"
      ],
      "patterns": [
        "%entity type% (move|walk|step|(turn[ing] around|rotate))",
        "%entity type% (move|walk|step) or (turn[ing] around|rotate)",
        "%entity type% (turn[ing] around|rotate) or (move|walk|step)"
      ],
      "description": [
        "Called when a player or entity moves or rotates their head.",
        "NOTE: Move event will only be called when the entity/player moves position, keyword 'turn around' is for orientation (ie: looking around), and the combined syntax listens for both.",
        "NOTE: These events can be performance heavy as they are called quite often."
      ],
      "requirements": null,
      "examples": [
        "on player move:\n\tif player does not have permission \"player.can.move\":\n\t\tcancel event\n",
        "on skeleton move:\n\tif event-entity is not in world \"world\":\n\t\tkill event-entity\n",
        "on player turning around:\n\tsend action bar \"You are currently turning your head around!\" to player\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "location",
          "name": "future location"
        },
        {
          "id": "chunk",
          "name": "past chunk"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "location",
          "name": "past location"
        },
        {
          "id": "chunk",
          "name": "chunk"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "smelt",
      "name": "On Smelt",
      "cancellable": true,
      "since": [
        "1.0, 2.10 (specific item)"
      ],
      "patterns": [
        "[furnace] [ore] smelt[ed|ing] [of %item types%]",
        "[furnace] smelt[ed|ing] of ore"
      ],
      "description": [
        "Called when a furnace smelts an item in its <a href='#ExprFurnaceSlot'>input slot</a>."
      ],
      "requirements": null,
      "examples": [
        "on smelt:\n\tclear the smelted item\n",
        "on smelt of raw iron:\n\tbroadcast smelted item\n\tset the smelted item to iron block\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "system_time",
      "name": "On System Time",
      "cancellable": false,
      "since": [
        "2.11"
      ],
      "patterns": [
        "at %times% [in] real time"
      ],
      "description": [
        "Called when the local time of the system the server is running on reaches the provided real-life time."
      ],
      "requirements": null,
      "examples": [
        "at 14:20 in real time:\n",
        "at 2:30am real time:\n",
        "at 6:10 pm in real time:\n",
        "at 5:00 am and 5:00 pm in real time:\n",
        "at 5:00 and 17:00 in real time:\n"
      ],
      "eventValues": null,
      "keywords": null
    },
    {
      "id": "leash_unleash",
      "name": "On Leash / Unleash",
      "cancellable": true,
      "since": [
        "2.10"
      ],
      "patterns": [
        "[player] [un]leash[ing] [of %entity types%]"
      ],
      "description": [
        "Called when an entity is leashed or unleashed. Cancelling these events will prevent the leashing or unleashing from occurring."
      ],
      "requirements": null,
      "examples": [
        "on player leash of a sheep:\n\tsend \"Baaaaa--\" to player\n",
        "on player leash:\n\tsend \"<%event-entity%> Let me go!\" to player\n",
        "on unleash:\n\tbroadcast \"<%event-entity%> I'm free\"\n",
        "on player unleash:\n\tsend \"<%event-entity%> Thanks for freeing me!\" to player\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "unleashreason",
          "name": "unleash reason"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "item_spawn",
      "name": "On Item Spawn",
      "cancellable": true,
      "since": [
        "unknown (before 2.1)"
      ],
      "patterns": [
        "item spawn[ing] [[of] %item types%]"
      ],
      "description": [
        "Called whenever an item stack is spawned in a world, e.g. as drop of a block or mob, a player throwing items out of their inventory, or a dispenser dispensing an item (not shooting it)."
      ],
      "requirements": null,
      "examples": [
        "on item spawn of iron sword:\n\tbroadcast \"Someone dropped an iron sword!\"\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "move_on",
      "name": "On Move On",
      "cancellable": true,
      "since": [
        "2.0"
      ],
      "patterns": [
        "(step|walk)[ing] (on|over) %*item types%"
      ],
      "description": [
        "Called when a player moves onto a certain type of block.",
        "Please note that using this event can cause lag if there are many players online."
      ],
      "requirements": null,
      "examples": [
        "on walking on dirt or grass:\n",
        "on stepping on stone:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "chunk",
          "name": "past chunk"
        },
        {
          "id": "location",
          "name": "past location"
        },
        {
          "id": "chunk",
          "name": "chunk"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "world_load",
      "name": "On World Load",
      "cancellable": false,
      "since": [
        "1.0, 2.8.0 (defining worlds)"
      ],
      "patterns": [
        "world load[ing] [of %worlds%]"
      ],
      "description": [
        "Called when a world is loaded. As with the world init event, this event will not be called for the server's default world(s)."
      ],
      "requirements": null,
      "examples": [
        "on world load of \"world_nether\":\n\tbroadcast \"The world %event-world% has been loaded!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "spectate",
      "name": "On Spectate",
      "cancellable": true,
      "since": [
        "2.7"
      ],
      "patterns": [
        "[player] stop spectating [(of|from) %*entity types%]",
        "[player] (swap|switch) spectating [(of|from) %*entity types%]",
        "[player] start spectating [of %*entity types%]"
      ],
      "description": [
        "Called with a player starts, stops or swaps spectating an entity."
      ],
      "requirements": null,
      "examples": [
        "on player start spectating of a zombie:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "world_save",
      "name": "On World Save",
      "cancellable": false,
      "since": [
        "1.0, 2.8.0 (defining worlds)"
      ],
      "patterns": [
        "world sav(e|ing) [of %worlds%]"
      ],
      "description": [
        "Called when a world is saved to disk. Usually all worlds are saved simultaneously, but world management plugins could change this."
      ],
      "requirements": null,
      "examples": [
        "on world save of \"world\":\n\tbroadcast \"The world %event-world% has been saved\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "pick_up",
      "name": "On Pick Up",
      "cancellable": true,
      "since": [
        "unknown (before 2.1), 2.5 (entity)"
      ],
      "patterns": [
        "[(player|entity)] (pick[ ]up|picking up) [[of] %item types%]"
      ],
      "description": [
        "Called when a player/entity picks up an item. Please note that the item is still on the ground when this event is called."
      ],
      "requirements": null,
      "examples": [
        "on pick up:\n",
        "on entity pickup of wheat:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "itementity",
          "name": "dropped item"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemtype",
          "name": "item type"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": [
        "pickup"
      ]
    },
    {
      "id": "armor_change",
      "name": "On Armor Change",
      "cancellable": false,
      "since": [
        "2.5, 2.11 (equipment slots)"
      ],
      "patterns": [
        "[player] armo[u]r change[d]",
        "[player] %equipment slot% change[d]"
      ],
      "description": [
        "Called when armor pieces of a player are changed."
      ],
      "requirements": null,
      "examples": [
        "on armor change:\n\tbroadcast the old armor item\n",
        "on helmet change:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "slot",
          "name": "slot"
        },
        {
          "id": "itemstack",
          "name": "past item stack"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "future item stack"
        },
        {
          "id": "equipmentslot",
          "name": "equipment slot"
        }
      ],
      "keywords": [
        "armor",
        "armour"
      ]
    },
    {
      "id": "bucket_catch_entity",
      "name": "On Bucket Catch Entity",
      "cancellable": true,
      "since": null,
      "patterns": [
        "bucket (catch[ing]|captur(e|ing)) [[of] %entity types%]"
      ],
      "description": null,
      "requirements": null,
      "examples": null,
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "future item stack"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "prepare_craft",
      "name": "On Prepare Craft",
      "cancellable": false,
      "since": [
        "2.2-Fixes-V10"
      ],
      "patterns": [
        "[player] (preparing|beginning) craft[ing] [[of] %item types%]"
      ],
      "description": [
        "Called just before displaying crafting result to player. Note that setting the result item might or might not work due to Bukkit bugs."
      ],
      "requirements": null,
      "examples": [
        "on preparing craft of torch:\n"
      ],
      "eventValues": [
        {
          "id": "slot",
          "name": "slot"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "string",
          "name": "text"
        },
        {
          "id": "inventory",
          "name": "inventory"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "entity_breed",
      "name": "On Entity Breed",
      "cancellable": true,
      "since": [
        "2.10"
      ],
      "patterns": [
        "[entity] breed[ing] [of %entity types%]"
      ],
      "description": [
        "Called whenever two animals begin to conceive a child. The type can be specified."
      ],
      "requirements": null,
      "examples": [
        "on breeding of llamas:\n\tsend \"When a %breeding mother% and %breeding father% love each other very much they make %offspring%\" to breeder\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "weather_change",
      "name": "On Weather Change",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "weather change [to %weather types%]"
      ],
      "description": [
        "Called when a world's weather changes."
      ],
      "requirements": null,
      "examples": [
        "on weather change:\n",
        "on weather change to sunny:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "spawn",
      "name": "On Spawn",
      "cancellable": true,
      "since": [
        "1.0, 2.5.1 (non-living entities)"
      ],
      "patterns": [
        "spawn[ing] [of %entity types%]"
      ],
      "description": [
        "Called when an entity spawns (excluding players)."
      ],
      "requirements": null,
      "examples": [
        "on spawn of a zombie:\n",
        "on spawn of an ender dragon:\n\tbroadcast \"A dragon has been sighted in %world%!\"\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "death",
      "name": "On Death",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "death [of %entity types%]"
      ],
      "description": [
        "Called when a living entity (including players) dies."
      ],
      "requirements": null,
      "examples": [
        "on death:\n",
        "on death of player:\n",
        "on death of a wither or ender dragon:\n\tbroadcast \"A %entity% has been slain in %world%!\"\n"
      ],
      "eventValues": [
        {
          "id": "damagecause",
          "name": "damage cause"
        },
        {
          "id": "damagesource",
          "name": "damage source"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "itemstack",
          "name": "item stacks"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "projectile",
          "name": "projectile"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "player_gamemode_change",
      "name": "On Player GameMode Change",
      "cancellable": true,
      "since": [
        "1.0"
      ],
      "patterns": [
        "[player] game[ ]mode change [to %gamemodes%]"
      ],
      "description": [
        "Called when a player's gamemode is changed. See <a href='#gamemode'>gamemode</a>.\n"
      ],
      "requirements": null,
      "examples": [
        "on game mode change:\n\tif event-gamemode is creative:\n\t\tsend \"Your gamemode is now creative! Totally don't go spawning items in..\"\n",
        "on game mode change:\n\tsend \"Wow! Your gamemode changed!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "gamemode",
          "name": "gamemode"
        }
      ],
      "keywords": null
    },
    {
      "id": "burn",
      "name": "On Burn",
      "cancellable": true,
      "since": [
        "1.0, 2.6 (BlockData support)"
      ],
      "patterns": [
        "[block] burn[ing] [[of] %item types/block datas%]"
      ],
      "description": [
        "Called when a block is destroyed by fire."
      ],
      "requirements": null,
      "examples": [
        "on burn:\n",
        "on burn of oak wood, oak fences, or chests:\n",
        "on burn of oak_log[axis=y]:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "stonecutter_recipe_select",
      "name": "On Stonecutter Recipe Select",
      "cancellable": true,
      "since": [
        "2.8.0"
      ],
      "patterns": [
        "stonecutting [[of] %item types%]"
      ],
      "description": [
        "Called when a player selects a recipe in a stonecutter."
      ],
      "requirements": null,
      "examples": [
        "on stonecutting stone slabs\n\tcancel the event\n",
        "on stonecutting:\n\tbroadcast \"%player% is using stonecutter to craft %event-item%!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "dispense",
      "name": "On Dispense",
      "cancellable": true,
      "since": [
        "unknown (before 2.1)"
      ],
      "patterns": [
        "dispens(e|ing) [[of] %item types%]"
      ],
      "description": [
        "Called when a dispenser dispenses an item."
      ],
      "requirements": null,
      "examples": [
        "on dispense of iron block:\n\tsend \"that'd be 19.99 please!\"\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "block_growth",
      "name": "On Block Growth",
      "cancellable": true,
      "since": [
        "2.2-Fixes-V10"
      ],
      "patterns": [
        "(plant|crop|block) grow[(th|ing)] [[of] %item types%]"
      ],
      "description": [
        "Called when a crop grows. Alternative to new form of generic grow event."
      ],
      "requirements": null,
      "examples": [
        "on crop growth:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "block",
          "name": "past block"
        }
      ],
      "keywords": null
    },
    {
      "id": "place",
      "name": "On Place",
      "cancellable": true,
      "since": [
        "1.0, 2.6 (BlockData support)"
      ],
      "patterns": [
        "[block] (plac(e|ing)|build[ing]) [[of] %item types/block datas%]"
      ],
      "description": [
        "Called when a player places a block."
      ],
      "requirements": null,
      "examples": [
        "on place:\n",
        "on place of a furnace, crafting table or chest:\n",
        "on break of chest[type=right] or chest[type=left]\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "itemstack",
          "name": "past item stack"
        },
        {
          "id": "itemstack",
          "name": "future item stack"
        },
        {
          "id": "direction",
          "name": "direction"
        },
        {
          "id": "block",
          "name": "past block"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "craft",
      "name": "On Craft",
      "cancellable": true,
      "since": [
        "unknown (before 2.1)"
      ],
      "patterns": [
        "[player] craft[ing] [[of] %item types%]"
      ],
      "description": [
        "Called when a player crafts an item."
      ],
      "requirements": null,
      "examples": [
        "on craft:\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "slot",
          "name": "slot"
        },
        {
          "id": "inventoryaction",
          "name": "inventory action"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "string",
          "name": "text"
        },
        {
          "id": "clicktype",
          "name": "click type"
        },
        {
          "id": "inventory",
          "name": "inventory"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "endermansheepsilverfishfalling_block",
      "name": "On Enderman/Sheep/Silverfish/Falling Block",
      "cancellable": true,
      "since": [
        "unknown, 2.5.2 (falling block), 2.8.0 (any entity support)"
      ],
      "patterns": [
        "enderman place",
        "enderman pickup",
        "sheep eat",
        "silverfish enter",
        "silverfish exit",
        "falling block fall[ing]",
        "falling block land[ing]",
        "(entity|%*-entitydatas%) chang(e|ing) block[s]"
      ],
      "description": [
        "Called when an enderman places or picks up a block, a sheep eats grass, a silverfish boops into/out of a block or a falling block lands and turns into a block respectively.",
        "event-block represents the old block and event-blockdata represents the new replacement that'll be applied to the block."
      ],
      "requirements": null,
      "examples": [
        "on sheep eat:\n\tkill event-entity\n\tbroadcast \"A sheep stole some grass!\"\n",
        "on falling block land:\n\tevent-entity is a falling dirt\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "blockdata",
          "name": "future block data"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "blockdata",
          "name": "block data"
        },
        {
          "id": "block",
          "name": "past block"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "harvest_block",
      "name": "On Harvest Block",
      "cancellable": true,
      "since": [
        "2.12"
      ],
      "patterns": [
        "[player] [block|crop] harvest[ing] [of %item types/block datas%]"
      ],
      "description": [
        "Called when a player harvests a block.\nA block being harvested is when a block drops items and the state of the block is changed, but the block is not broken.\nAn example is harvesting berries from a berry bush.\n"
      ],
      "requirements": null,
      "examples": [
        "on player block harvest:\n\tsend \"You have harvested %event-block% that dropped %event-items% using your %item of event-slot% in your %event-equipment slot%\"\n\non crop harvesting of sweet berry bush:\n\tchance 5%:\n\t\tset drops to a diamond\n\tchance 1%\n\t\tcancel the drops\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "itemstack",
          "name": "item stacks"
        },
        {
          "id": "slot",
          "name": "slot"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "equipmentslot",
          "name": "equipment slot"
        }
      ],
      "keywords": null
    },
    {
      "id": "attempt_attack",
      "name": "On Attempt Attack",
      "cancellable": true,
      "since": [
        "2.15"
      ],
      "patterns": [
        "attack attempt",
        "attempt[ing] to attack %entity types%"
      ],
      "description": [
        "Called when a player attempts to attack an entity.\nThe event will be cancelled as soon as it is fired for non-living entities.\nCancelling this event will prevent the attack and any sounds from being played when attacking.\nAny damage events will not be called if this is cancelled.\n"
      ],
      "requirements": null,
      "examples": [
        "on attack attempt:\n    if event is cancelled:\n        broadcast \"%attacker% failed to attack %victim%!\"\n    else:\n        broadcast \"%attacker% damaged %victim%!\"\n",
        "on attempt to attack an animal:\n    cancel event\n",
        "on attempting to attack an entity:\n    if victim is a creeper:\n        cancel event\n",
        "on attempt to attack a zombie or creeper:\n    attacker isn't holding a diamond sword\n    cancel event\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        }
      ],
      "keywords": null
    },
    {
      "id": "block_drop",
      "name": "On Block Drop",
      "cancellable": true,
      "since": [
        "2.10"
      ],
      "patterns": [
        "block drop[ping] [[of] %item types/block datas%]"
      ],
      "description": [
        "Called when a block broken by a player drops something.",
        "<ul>",
        "<li>event-player: The player that broke the block</li>",
        "<li>past event-block: The block that was broken</li>",
        "<li>event-block: The block after being broken</li>",
        "<li>event-items (or drops): The drops of the block</li>",
        "<li>event-entities: The entities of the dropped items</li>",
        "</ul>",
        "",
        "If the breaking of the block leads to others being broken, such as torches, they will appearin \"event-items\" and \"event-entities\"."
      ],
      "requirements": null,
      "examples": [
        "on block drop:\n\tbroadcast event-player\n\tbroadcast past event-block\n\tbroadcast event-block\n\tbroadcast event-items\n\tbroadcast event-entities\n",
        "on block drop of oak log:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "itemstack",
          "name": "item stacks"
        },
        {
          "id": "entity",
          "name": "entities"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "block",
          "name": "past block"
        }
      ],
      "keywords": null
    },
    {
      "id": "item_despawn",
      "name": "On Item Despawn",
      "cancellable": true,
      "since": [
        "2.2-dev35"
      ],
      "patterns": [
        "(item[ ][stack]|[item] %item types%) despawn[ing]",
        "[item[ ][stack]] despawn[ing] [[of] %item types%]"
      ],
      "description": [
        "Called when an item is about to be despawned from the world, usually 5 minutes after it was dropped."
      ],
      "requirements": null,
      "examples": [
        "on item despawn of diamond:\n\tsend \"Not my precious!\"\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "itementity",
          "name": "dropped item"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "world_init",
      "name": "On World Init",
      "cancellable": false,
      "since": [
        "1.0, 2.8.0 (defining worlds)"
      ],
      "patterns": [
        "world init[ialization] [of %worlds%]"
      ],
      "description": [
        "Called when a world is initialized. As all default worlds are initialized before",
        "any scripts are loaded, this event is only called for newly created worlds.",
        "World management plugins might change the behaviour of this event though."
      ],
      "requirements": null,
      "examples": [
        "on world init of \"world_the_end\":\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "break_mine",
      "name": "On Break / Mine",
      "cancellable": true,
      "since": [
        "1.0 (break), unknown (mine), 2.6 (BlockData support)"
      ],
      "patterns": [
        "[block] (break[ing]|min(e|ing)) [[of] %item types/block datas%]"
      ],
      "description": [
        "Called when a block is broken by a player. If you use 'on mine', only events where the broken block dropped something will call the trigger."
      ],
      "requirements": null,
      "examples": [
        "on mine:\n",
        "on break of stone:\n",
        "on break of chest[facing=north]:\n",
        "on break of potatoes[age=7]:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "block",
          "name": "future block"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "block",
          "name": "past block"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "world_unload",
      "name": "On World Unload",
      "cancellable": true,
      "since": [
        "1.0, 2.8.0 (defining worlds)"
      ],
      "patterns": [
        "world unload[ing] [of %worlds%]"
      ],
      "description": [
        "Called when a world is unloaded. This event will never be called if you don't have a world management plugin."
      ],
      "requirements": null,
      "examples": [
        "on world unload:\n\tbroadcast \"the %event-world% has been unloaded!\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "vehicle_collision",
      "name": "On Vehicle Collision",
      "cancellable": true,
      "since": [
        "2.10"
      ],
      "patterns": [
        "vehicle collision [(with|of) [a[n]] %item types/block datas/entity types%]",
        "vehicle block collision [(with|of) [a[n]] %item types/block datas%]",
        "vehicle entity collision [(with|of) [a[n]] %entity types%]"
      ],
      "description": [
        "Called when a vehicle collides with a block or entity."
      ],
      "requirements": null,
      "examples": [
        "on vehicle collision:\n",
        "on vehicle collision with obsidian:\n",
        "on vehicle collision with a zombie:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "vehicle",
          "name": "vehicle"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "click",
      "name": "On Click",
      "cancellable": true,
      "since": [
        "1.0, 2.10 (blockdata)"
      ],
      "patterns": [
        "[(right|left)[( |-)]][mouse[( |-)]]click[ing] [on %entity type/item type/block data%] [(with|using|holding) %item type%]",
        "[(right|left)[( |-)]][mouse[( |-)]]click[ing] (with|using|holding) %item type% on %entity type/item type/block data%"
      ],
      "description": [
        "Called when a user clicks on a block, an entity or air with or without an item in their hand.",
        "Please note that rightclick events with an empty hand while not looking at a block are not sent to the server, so there's no way to detect them.",
        "Also note that a leftclick on an entity is an attack and thus not covered by the 'click' event, but the 'damage' event."
      ],
      "requirements": null,
      "examples": [
        "on click:\n",
        "on rightclick holding a fishing rod:\n",
        "on leftclick on a stone or obsidian:\n",
        "on rightclick on a creeper:\n",
        "on click with a sword:\n",
        "on click on chest[facing=north]:\n",
        "on click on campfire[lit=true]:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "player",
          "name": "player"
        },
        {
          "id": "direction",
          "name": "direction"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "itemstack",
          "name": "item stack"
        }
      ],
      "keywords": null
    },
    {
      "id": "heal",
      "name": "On Heal",
      "cancellable": true,
      "since": [
        "1.0, 2.9.0 (by reason)"
      ],
      "patterns": [
        "heal[ing] [of %entity types%] [(from|due to|by) %heal reasons%]",
        "%entity types% heal[ing] [(from|due to|by) %heal reasons%]"
      ],
      "description": [
        "Called when an entity is healed, e.g. by eating (players), being fed (pets), or by the effect of a potion of healing (overworld mobs) or harm (nether mobs)."
      ],
      "requirements": null,
      "examples": [
        "on heal:\n",
        "on player healing from a regeneration potion:\n",
        "on healing of a zombie, cow or a wither:\n\theal reason is healing potion\n\tcancel event\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "healreason",
          "name": "heal reason"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "eventperiodical",
      "name": "Periodical",
      "cancellable": false,
      "since": [
        "1.0"
      ],
      "patterns": [
        "every %time span% in [world[s]] %worlds%"
      ],
      "description": [
        "An event that is called periodically."
      ],
      "requirements": null,
      "examples": [
        "every 2 seconds in \"world\":\n",
        "every minecraft hour in \"flatworld\":\n",
        "every tick in \"world\": # can cause lag depending on the code inside the event\n",
        "every minecraft days in \"plots\":\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "damage",
      "name": "On Damage",
      "cancellable": true,
      "since": [
        "1.0, 2.7 (by entity)"
      ],
      "patterns": [
        "damag(e|ing) [of %entity type%] [by %entity type%]"
      ],
      "description": [
        "Called when an entity receives damage, e.g. by an attack from another entity, lava, fire, drowning, fall, suffocation, etc."
      ],
      "requirements": null,
      "examples": [
        "on damage:\n",
        "on damage of a player:\n",
        "on damage of player by zombie:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "damagecause",
          "name": "damage cause"
        },
        {
          "id": "damagesource",
          "name": "damage source"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": null
    },
    {
      "id": "at_time",
      "name": "At Time",
      "cancellable": false,
      "since": [
        "1.3.4"
      ],
      "patterns": [
        "at %time% [in %worlds%]"
      ],
      "description": [
        "An event that occurs at a given <a href='#time'>minecraft time</a> in every world or only in specific worlds."
      ],
      "requirements": null,
      "examples": [
        "at 18:00\n",
        "at 7am in \"world\"\n"
      ],
      "eventValues": [
        {
          "id": "world",
          "name": "world"
        }
      ],
      "keywords": null
    },
    {
      "id": "entity_transform",
      "name": "On Entity Transform",
      "cancellable": true,
      "since": [
        "2.8.0"
      ],
      "patterns": [
        "(entit(y|ies)|%*-entitydatas%) transform[ing] [due to %transform reasons%]"
      ],
      "description": [
        "Called when an entity is about to be replaced by another entity.",
        "Examples when it's called include; when a zombie gets cured and a villager spawns, an entity drowns in water like a zombie that turns to a drown, an entity that gets frozen in powder snow, a mooshroom that when sheared, spawns a new cow."
      ],
      "requirements": null,
      "examples": [
        "on a zombie transforming due to curing:\n",
        "on mooshroom transforming:\n",
        "on zombie, skeleton or slime transform:\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "entity",
          "name": "entities"
        },
        {
          "id": "transformreason",
          "name": "transform reason"
        },
        {
          "id": "entity",
          "name": "entity"
        }
      ],
      "keywords": [
        "entity transform"
      ]
    },
    {
      "id": "grow",
      "name": "On Grow",
      "cancellable": true,
      "since": [
        "1.0, 2.2-dev20 (plants), 2.8.0 (from, into, blockdata)"
      ],
      "patterns": [
        "grow[th] [of (%tree types%|%item types/block datas%)]",
        "grow[th] from %item types/block datas%",
        "grow[th] [in]to (%tree types%|%item types/block datas%)",
        "grow[th] from %item types/block datas% [in]to (%tree types%|%item types/block datas%)"
      ],
      "description": [
        "Called when a tree, giant mushroom or plant grows to next stage.",
        "\"of\" matches any grow event, \"from\" matches only the old state, \"into\" matches only the new state,and \"from into\" requires matching both the old and new states.",
        "Using \"and\" lists in this event is equivalent to using \"or\" lists. The event will trigger if any one of the elements is what grew."
      ],
      "requirements": null,
      "examples": [
        "on grow:\n",
        "on grow of tree:\n",
        "on grow of wheat[age=7]:\n",
        "on grow from a sapling:\n",
        "on grow into tree:\n",
        "on grow from a sapling into tree:\n",
        "on grow of wheat, carrots, or potatoes:\n",
        "on grow into tree, giant mushroom, cactus:\n",
        "on grow from wheat[age=0] to wheat[age=1] or wheat[age=2]:\n"
      ],
      "eventValues": [
        {
          "id": "block",
          "name": "block"
        },
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "block",
          "name": "future block"
        },
        {
          "id": "block",
          "name": "blocks"
        },
        {
          "id": "block",
          "name": "future blocks"
        },
        {
          "id": "block",
          "name": "past block"
        }
      ],
      "keywords": null
    },
    {
      "id": "entity_potion_effect",
      "name": "On Entity Potion Effect",
      "cancellable": true,
      "since": [
        "2.10",
        "2.14 (action support)"
      ],
      "patterns": [
        "entity potion effect [modif[y|ication]] [[of] %potion effect types%] [%potion actions%] [due to %potion causes%]"
      ],
      "description": [
        "Called when an entity's potion effect is modified."
      ],
      "requirements": null,
      "examples": [
        "on entity potion effect modification:\n\tbroadcast \"A potion effect was added to %event-entity%!\"\n",
        "on entity potion effect of night vision added:\n\tmessage \"You can now see in the dark!\"\n",
        "on entity potion effect of strength removed:\n\tmessage \"You're now weaker!\"\n"
      ],
      "eventValues": [
        {
          "id": "location",
          "name": "location"
        },
        {
          "id": "world",
          "name": "world"
        },
        {
          "id": "potioneffect",
          "name": "potion effect"
        },
        {
          "id": "entitydata",
          "name": "entity type"
        },
        {
          "id": "potioneffecttype",
          "name": "potion effect type"
        },
        {
          "id": "commandsender",
          "name": "command sender"
        },
        {
          "id": "potioncause",
          "name": "potion cause"
        },
        {
          "id": "entity",
          "name": "entity"
        },
        {
          "id": "potionaction",
          "name": "potion action"
        },
        {
          "id": "potioneffect",
          "name": "past potion effect"
        }
      ],
      "keywords": null
    }
  ],
  "structures": [
    {
      "id": "StructAliases",
      "name": "Aliases",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Used for registering custom aliases for a script."
      ],
      "patterns": [
        "aliases"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "# Example aliases for a script\naliases:\n\tblacklisted items = TNT, bedrock, obsidian, mob spawner, lava, lava bucket\n\tshiny swords = golden sword, iron sword, diamond sword\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "StructAutoReload",
      "name": "Auto Reload",
      "since": [
        "2.13"
      ],
      "deprecated": false,
      "description": [
        "Place at the top of a script file to enable and configure automatic reloading of the script.\nWhen the script is saved, Skript will automatically reload the script.\nThe config.sk node 'script loader thread size' must be set to a positive number (async or parallel loading) for this to be enabled.\n\navailable optional nodes:\n\trecipients: The players to send reload messages to. Defaults to console.\n\tpermission: The permission required to receive reload messages. 'recipients' will override this node.\n"
      ],
      "patterns": [
        "auto[matically] reload [(this|the) script]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "auto reload",
        "auto reload:\n\trecipients: \"SkriptDev\",  \"61699b2e-d327-4a01-9f1e-0ea8c3f06bc6\" and \"Njol\"\n\tpermission: \"skript.reloadnotify\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "StructVariables",
      "name": "Variables",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Used for defining variables present within a script.",
        "This section is not required, but it ensures that a variable has a value if it doesn't exist when the script is loaded."
      ],
      "patterns": [
        "variables"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "variables:\n\t{joins} = 0\n\t{balance::%player%} = 0\n",
        "on join:\n\tadd 1 to {joins}\n\tmessage \"Your balance is %{balance::%player%}%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "StructOptions",
      "name": "Options",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Options are used for replacing parts of a script with something else.",
        "For example, an option may represent a message that appears in multiple locations.",
        "Take a look at the example below that showcases this."
      ],
      "patterns": [
        "options"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "options:\n\tno_permission: You're missing the required permission to execute this command!\n\ncommand /ping:\n\tpermission: command.ping\n\tpermission message: {@no_permission}\n\ttrigger:\n\t\tmessage \"Pong!\"\n\ncommand /pong:\n\tpermission: command.pong\n\tpermission message: {@no_permission}\n\ttrigger:\n\t\tmessage \"Ping!\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "StructEvent",
      "name": "Event",
      "since": [
        "1.0",
        "2.6 (per-event priority)",
        "2.9 (listening to cancellable events)"
      ],
      "deprecated": false,
      "description": [
        "The structure used for listening to events.\n\nOptionally allows specifying whether to listen to events that have been cancelled, and allows specifying with which priority to listen to events. Events are called in the following order of priorities.\n\n```\nlowest -> low -> normal -> high -> highest -> monitor\n```\n\nModifying event-values or cancelling events is not supported when using the 'monitor' priority. It should only be used for monitoring the outcome of an event.\n"
      ],
      "patterns": [
        "[on] [uncancelled|cancelled|(any|all)] <.+> [with priority ((lowest|low|normal|high|highest|monitor))]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "on load:\n\tbroadcast \"loading!\"\n",
        "on join:\n\tif {first-join::%player's uuid%} is not set:\n\t\tset {first-join::%player's uuid%} to now\n",
        "cancelled block break:\n\tsend \"<red>You can't break that here\" to player\n",
        "on join with priority lowest:\n\t# called first\n\non join:\n\t# called second\n\non join with priority highest:\n\t# called last\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "StructFunction",
      "name": "Function",
      "since": [
        "2.2, 2.7 (local functions)"
      ],
      "deprecated": false,
      "description": [
        "Functions are structures that can be executed with arguments/parameters to run code.",
        "They can also return a value to the trigger that is executing the function.",
        "Note that local functions come before global functions execution"
      ],
      "patterns": [
        "[local] function <.+>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "function sayMessage(message: text):\n\tbroadcast {_message} # our message argument is available in '{_message}'\n",
        "local function giveApple(amount: number) :: item:\n\treturn {_amount} of apple\n",
        "function getPoints(p: player) returns number:\n\treturn {points::%{_p}%}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "StructUsing",
      "name": "Using Experimental Feature",
      "since": [
        "2.9.0"
      ],
      "deprecated": false,
      "description": [
        "Place at the top of a script file to enable an optional experimental feature.",
        "Experimental features may change behavior in Skript and may contain bugs. Use at your own discretion.",
        "A list of the available experimental features can be found in the changelog for your version of Skript."
      ],
      "patterns": [
        "using [[the] experiment] <.+>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "using 1.21",
        "using the experiment my-cool-addon-feature"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "StructCommand",
      "name": "Command",
      "since": [
        "1.0",
        "2.17 (subcommands, suggestions, etc.)"
      ],
      "deprecated": false,
      "description": [
        "Used for registering custom commands."
      ],
      "patterns": [
        "command <.+>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "command /broadcast <string>:\n\taliases: /bc\n\texecutable by: players and console\n\tusage: A command for broadcasting a message to all players.\n\tpermission: skript.command.broadcast\n\tcooldown: 15 seconds\n\tcooldown message: You last broadcast a message %elapsed time% ago. You can broadcast another message in %remaining time%.\n\tcooldown bypass: skript.command.broadcast.admin\n\tcooldown storage: {cooldown::%player%}\n\ttrigger:\n\t\tbroadcast the argument\n",
        "command /home:\n\tsubcommand set <name: text>:\n\t\ttrigger:\n\t\t\tset {homes::%player%::%{_name}%} to the player's location\n\tsubcommand <name: text>:\n\t\tsuggestions:\n\t\t\tloop {homes::%player%::*}:\n\t\t\t\tadd formatted \"<ttp:'Location: %loop-value%'>%loop-index%\" to the suggestions for the text argument\n\t\ttrigger:\n\t\t\tteleport the player to {homes::%player%::%{_name}%}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    }
  ],
  "sections": [
    {
      "id": "EffSecSuppressTypeHints",
      "name": "Suppress Type Hints (Experimental)",
      "since": [
        "2.12",
        "2.17 (suppressing in a section)"
      ],
      "deprecated": false,
      "description": [
        "An effect to suppress local variable type hint errors for the syntax lines that follow this effect.\nNOTE: Suppressing type hints also prevents syntax from providing new type hints. For example, with type hints suppressed, 'set {_x} to true' would not provide 'boolean' as a type hint for '{_x}'\n"
      ],
      "patterns": [
        "[un]suppress [local variable] type hints",
        "(start|stop) suppressing [local variable] type hints"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "start suppressing local variable type hints\n# potentially unsafe code goes here\nstop suppressing local variable type hints\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffSecSuppressWarnings",
      "name": "Locally Suppress Warning",
      "since": [
        "2.3",
        "2.17 (suppressing in a section)"
      ],
      "deprecated": false,
      "description": [
        "Suppresses target warnings from the current script."
      ],
      "patterns": [
        "[local[ly]] [un]suppress [the] (conflict|variable save|[missing] conjunction|starting [with] expression[s]|variable[ name][s] contain[s|ing] colon[s]|deprecated syntax|unreachable code|constant condition[s]) warning[s]",
        "[start|stop] [local[ly]] suppressing [the] (conflict|variable save|[missing] conjunction|starting [with] expression[s]|variable[ name][s] contain[s|ing] colon[s]|deprecated syntax|unreachable code|constant condition[s]) warning[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "locally suppress missing conjunction warnings",
        "suppress the variable save warnings"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "SecCatchErrors",
      "name": "Catch Runtime Errors",
      "since": [
        "2.12"
      ],
      "deprecated": false,
      "description": [
        "Catch any runtime errors produced by code within the section. This is an in progress feature."
      ],
      "patterns": [
        "catch [run[ ]time] error[s]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "catch runtime errors:\n\tset worldborder center of {_border} to location(0, 0, NaN value)\nif last caught runtime errors contains \"Your location can't have a NaN value as one of its components\":\n\tset worldborder center of {_border} to location(0, 0, 0)\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "SecLoop",
      "name": "Loop",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Loop sections repeat their code with multiple values.",
        "",
        "A loop will loop through all elements of the given expression, e.g. all players, worlds, items, etc. The conditions & effects inside the loop will be executed for every of those elements, which can be accessed with ‘loop-<what>’, e.g. <code>send \"hello\" to loop-player</code>. When a condition inside a loop is not fulfilled the loop will start over with the next element of the loop. You can however use <code>stop loop</code> to exit the loop completely and resume code execution after the end of the loop.",
        "",
        "<b>Loopable Values</b>",
        "All expressions that represent more than one value, e.g. ‘all players’, ‘worlds’, etc., as well as list variables, can be looped. You can also use a list of expressions, e.g. <code>loop the victim and the attacker</code>, to execute the same code for only a few values.",
        "",
        "<b>List Variables</b>",
        "When looping list variables, you can also use <code>loop-index</code> in addition to <code>loop-value</code> inside the loop. <code>loop-value</code> is the value of the currently looped variable, and <code>loop-index</code> is the last part of the variable's name (the part where the list variable has its asterisk *)."
      ],
      "patterns": [
        "loop %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "loop all players:\n\tsend \"Hello %loop-player%!\" to loop-player\n",
        "loop items in player's inventory:\n\tif loop-item is dirt:\n\t\tset loop-item to air\n",
        "loop 10 times:\n\tsend title \"%11 - loop-value%\" and subtitle \"seconds left until the game begins\" to player for 1 second # 10, 9, 8 etc.\n\twait 1 second\n",
        "loop {Coins::*}:\n\tset {Coins::%loop-index%} to loop-value + 5 # Same as \"add 5 to {Coins::%loop-index%}\" where loop-index is the uuid of \" +\n\t\"the player and loop-value is the number of coins for the player\n",
        "loop shuffled (integers between 0 and 8):\n\tif all:\n\t\tprevious loop-value = 1\n\t\tloop-value = 4\n\t\tnext loop-value = 8\n\tthen:\n\t\tkill all players\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "SecFilter",
      "name": "Filter",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Filters a variable list based on the supplied conditions. Unlike the filter expression, this effect maintains the indices of the filtered list.",
        "It also supports filtering based on meeting any of the given criteria, rather than all, like multi-line if statements."
      ],
      "patterns": [
        "filter %~objects% to match [any|all]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "set {_a::*} to integers between -10 and 10",
        "filter {_a::*} to match:\n\tinput is a number\n\tmod(input, 2) = 0\n\tinput > 0\nsend {_a::*} # sends 2, 4, 6, 8, and 10\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "Delay",
      "name": "Delay",
      "since": [
        "1.4, 2.16 (Delayed Sections)"
      ],
      "deprecated": false,
      "description": [
        "Delays the script's execution by a given timespan.",
        "When used as an effect, all code after the <code>wait</code> runs once the delay elapses. The whole trigger pauses until the wait finishes.",
        "When used as a section, only the code within the section is deferred. Code after the section continues immediately, and the body runs on the same event once the delay elapses. This is useful for scheduling follow-up work without blocking the rest of the trigger.",
        "Note that delays are not persistent. For example, <code>ban player → wait 7 days → unban player</code> will not resume if the server restarts during the delay.",
        "Inside a section body, outer <code>loop-value</code>s are not available because the body is parsed as a separate trigger. Event values (like <code>player</code>) still work. If you need a value from before the delay, copy it to a local variable. Local variables are snapshotted when the section is scheduled, so subsequent changes aren't reflected."
      ],
      "patterns": [
        "(wait|halt) [for] %time span%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "wait 2 minutes",
        "halt for 5 minecraft hours",
        "wait a tick",
        "# Section form: outer continues immediately, body runs 3 seconds later.\nsend \"hello\" to player\nwait 3 seconds:\n\tsend \"...and goodbye\" to player\n",
        "send \"This runs first!\" to player\nwait 1 seconds:\n\tsend \"This runs third! (one second later)\" to player\nsend \"This runs second!\" to player\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "SecFor",
      "name": "For Each Loop",
      "since": [
        "2.10, 2.14 (stable release)"
      ],
      "deprecated": false,
      "description": [
        "A specialised loop section run for each element in a list.\nUnlike the basic loop, this is designed for extracting the key & value from pairs.\nThe loop element's key/index and value can be stored in a variable for convenience.\n\nWhen looping a simple (non-indexed) set of values, e.g. all players, the index will be the loop counter number."
      ],
      "patterns": [
        "(for [each]|loop) [value] %~object% in %objects%",
        "(for [each]|loop) (key|index) %~object% in %objects%",
        "(for [each]|loop) [key|index] %~object%(,| and) [value] %~object% in %objects%"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "for each {_player} in players:\n\tsend \"Hello %{_player}%!\" to {_player}\n",
        "loop {_item} in {list of items::*}:\n\tbroadcast {_item}'s name\n",
        "for each key {_index} in {list of items::*}:\n\tbroadcast {_index}\n",
        "loop key {_index} and value {_value} in {list of items::*}:\n\tbroadcast \"%{_index}% = %{_value}%\"\n",
        "for each {_index}, {_value} in {my list::*}:\n\tbroadcast \"%{_index}% = %{_value}%\"\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffSecShoot",
      "name": "Shoot",
      "since": [
        "2.10"
      ],
      "deprecated": false,
      "description": [
        "Shoots a projectile (or any other entity) from a given entity or location."
      ],
      "patterns": [
        "shoot %entity types% [from %living entities/locations%] [(at|with) (speed|velocity) %number%] [%direction%]",
        "(make|let) %living entities/locations% shoot %entity types% [(at|with) (speed|velocity) %number%] [%direction%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "shoot arrow from all players at speed 2",
        "shoot a pig from all players:\n\tadd event-entity to {_projectiles::*}\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "SecConditional",
      "name": "Conditionals",
      "since": [
        "1.0"
      ],
      "deprecated": false,
      "description": [
        "Conditional sections",
        "if: executed when its condition is true",
        "else if: executed if all previous chained conditionals weren't executed, and its condition is true",
        "else: executed if all previous chained conditionals weren't executed",
        "",
        "parse if: a special case of 'if' condition that its code will not be parsed if the condition is not true",
        "else parse if: another special case of 'else if' condition that its code will not be parsed if all previous chained conditionals weren't executed, and its condition is true"
      ],
      "patterns": [
        "else",
        "else [parse] if <.+>",
        "else [parse] if (any|at least one [of])",
        "else [parse] if [all]",
        "[parse] if (any|at least one [of])",
        "[parse] if [all]",
        "[parse] if <.+>",
        "then [run]",
        "implicit:<.+>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "if player's health is greater than or equal to 4:\n\tsend \"Your health is okay so far but be careful!\"\nelse if player's health is greater than 2:\n\tsend \"You need to heal ASAP, your health is very low!\"\nelse: # Less than 2 hearts\n\tsend \"You are about to DIE if you don't heal NOW. You have only %player's health% heart(s)!\"\n",
        "parse if plugin \"SomePluginName\" is enabled: # parse if %condition%\n\t# This code will only be executed if the condition used is met otherwise Skript will not parse this section therefore will not give any errors/info about this section\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "SecWhile",
      "name": "While Loop",
      "since": [
        "2.0, 2.6 (do while)"
      ],
      "deprecated": false,
      "description": [
        "While Loop sections are loops that will just keep repeating as long as a condition is met."
      ],
      "patterns": [
        "[do] while <.+>"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "while size of all players < 5:\n\tsend \"More players are needed to begin the adventure\" to all players\n\twait 5 seconds\n",
        "set {_counter} to 1\ndo while {_counter} > 1: # false but will increase {_counter} by 1 then get out\n\tadd 1 to {_counter}\n",
        "# Be careful when using while loops with conditions that are almost\n# always true for a long time without using 'wait %timespan%' inside it,\n# otherwise it will probably hang and crash your server.\nwhile player is online:\n\tgive player 1 dirt\n\twait 1 second # without using a delay effect the server will crash\n"
      ],
      "events": null,
      "requirements": null,
      "keywords": null
    },
    {
      "id": "EffSecSpawn",
      "name": "Spawn",
      "since": [
        "1.0, 2.6.1 (with section), 2.8.6 (dropped items), 2.10 (entity snapshots)"
      ],
      "deprecated": false,
      "description": [
        "Spawns entities. This can be used as an effect and as a section.",
        "",
        "If it is used as a section, the section is run before the entity is added to the world.",
        "You can modify the entity in this section, using for example 'event-entity' or 'cow'. ",
        "Do note that other event values, such as 'player', won't work in this section.",
        "",
        "If you're spawning a display and want it to be empty on initialization, like not having a block display be stone, set hidden config node 'spawn empty displays' to true.",
        "",
        "Note that when spawning an entity via entity snapshots, the code within the section will not run instantaneously as compared to spawning normally (via 'a zombie')."
      ],
      "patterns": [
        "(spawn|summon) %entity types/entity snapshots% [%directions% %locations%]",
        "(spawn|summon) %number% of %entity types/entity snapshots% [%directions% %locations%]"
      ],
      "property": null,
      "propertyTypes": null,
      "examples": [
        "spawn 3 creepers at the targeted block",
        "spawn a ghast 5 meters above the player",
        "spawn a zombie at the player:\n\tset name of the zombie to \"\"\n",
        "spawn a block display of a ladder[waterlogged=true] at location above player:\n\tset billboard of event-display to center # allows the display to rotate around the center axis\n"
      ],
      "events": null,
      "requirements": [
        "Minecraft 1.20.2+ (entity snapshots)"
      ],
      "keywords": null
    }
  ],
  "types": [
    {
      "id": "boolean",
      "name": "Boolean",
      "since": "1.0",
      "patterns": [
        "true/yes/on or false/no/off"
      ],
      "description": [
        "A boolean is a value that is either true or false. Other accepted names are 'on' and 'yes' for true, and 'off' and 'no' for false."
      ],
      "requirements": null,
      "examples": [
        "set {config.%player%.use mod} to false"
      ],
      "properties": []
    },
    {
      "id": "string",
      "name": "Text",
      "since": "1.0",
      "patterns": [
        "simple: \"...\"",
        "quotes: \"...\"\"...\"",
        "expressions: \"...%expression%...\"",
        "percent  \"...%%...\""
      ],
      "description": [
        "Text is simply text, i.e. a sequence of characters, which can optionally contain expressions which will be replaced with a meaningful representation (e.g. %player% will be replaced with the player's name).",
        "Because scripts are also text, you have to put text into double quotes to tell Skript which part of the line is an effect/expression and which part is the text.",
        "Please read the article on <a href='./text.html'>Texts and Variable Names</a> to learn more."
      ],
      "requirements": null,
      "examples": [
        "broadcast \"Hello World!\"",
        "message \"Hello %player%\"",
        "message \"The id of \"\"%type of tool%\"\" is %id of tool%.\""
      ],
      "properties": [
        {
          "id": "contains",
          "name": "contains",
          "description": "Strings can contain other strings.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropCondContains",
              "name": "Contains (Property)"
            }
          ]
        },
        {
          "id": "empty",
          "name": "empty",
          "description": "Whether the string is empty, i.e. has no characters.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropCondIsEmpty",
              "name": "Is Empty"
            }
          ]
        }
      ]
    },
    {
      "id": "uuid",
      "name": "UUID",
      "since": "2.11",
      "patterns": null,
      "description": [
        "UUIDs are unique identifiers that ensure things can be reliably distinguished from each other. They are generated in a way that makes it practically impossible for duplicates to occur.",
        "Read more about UUIDs and how they are used in Minecraft in <a href='https://minecraft.wiki/w/UUID'>the wiki entry about UUIDs</a>."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "weathertype",
      "name": "Weather Type",
      "since": "1.0",
      "patterns": [
        "clear/sun/sunny, rain/rainy/raining, and thunder/thundering/thunderstorm"
      ],
      "description": [
        "The weather types sunny, rainy, and thundering."
      ],
      "requirements": null,
      "examples": [
        "is raining",
        "is sunny in the player's world",
        "message \"It is %weather in the argument's world% in %world of the argument%\""
      ],
      "properties": []
    },
    {
      "id": "time",
      "name": "Time",
      "since": "1.0",
      "patterns": [
        "##:##",
        "##[##][ ]am/pm"
      ],
      "description": [
        "A time is a point in a minecraft day's time (i.e. ranges from 0:00 to 23:59), which can vary per world.",
        "See <a href='#date'>date</a> and <a href='#timespan'>timespan</a> for the other time types of Skript."
      ],
      "requirements": null,
      "examples": [
        "at 20:00:",
        "\ttime is 8 pm",
        "\tbroadcast \"It's %time%\""
      ],
      "properties": []
    },
    {
      "id": "timeperiod",
      "name": "Timeperiod",
      "since": "1.0",
      "patterns": [
        "##:## - ##",
        "dusk/day/dawn/night"
      ],
      "description": [
        "A period of time between two <a href='#time'>times</a>. Mostly useful since you can use this to test for whether it's day, night, dusk or dawn in a specific world.",
        "This type might be removed in the future as you can use 'time of world is between x and y' as a replacement."
      ],
      "requirements": null,
      "examples": [
        "time in world is night"
      ],
      "properties": []
    },
    {
      "id": "date",
      "name": "Date",
      "since": "1.4",
      "patterns": null,
      "description": [
        "A date is a certain point in the real world's time which can be obtained with <a href='#ExprNow'>now expression</a>, <a href='#ExprUnixDate'>unix date expression</a> and <a href='#date'>date function</a>.",
        "See <a href='#time'>time</a> and <a href='#timespan'>timespan</a> for the other time types of Skript."
      ],
      "requirements": null,
      "examples": [
        "set {_yesterday} to now",
        "subtract a day from {_yesterday}",
        "# now {_yesterday} represents the date 24 hours before now"
      ],
      "properties": []
    },
    {
      "id": "direction",
      "name": "Direction",
      "since": "2.0",
      "patterns": [
        "see <a href='#ExprDirection'>direction (expression)</a>"
      ],
      "description": [
        "A direction, e.g. north, east, behind, 5 south east, 1.3 meters to the right, etc.",
        "<a href='#location'>Locations</a> and some <a href='#block'>blocks</a> also have a direction, but without a length.",
        "Please note that directions have changed extensively in the betas and might not work perfectly. They can also not be used as command arguments."
      ],
      "requirements": null,
      "examples": [
        "set the block below the victim to a chest",
        "loop blocks from the block infront of the player to the block 10 below the player:",
        "\tset the block behind the loop-block to water"
      ],
      "properties": []
    },
    {
      "id": "color",
      "name": "Color",
      "since": "",
      "patterns": [
        "black, dark grey/dark gray, grey/light grey/gray/light gray/silver, white, blue/dark blue, cyan/aqua/dark cyan/dark aqua, light blue/light cyan/light aqua, green/dark green, light green/lime/lime green, yellow/light yellow, orange/gold/dark yellow, red/dark red, pink/light red, purple/dark purple, magenta/light purple, brown/indigo"
      ],
      "description": [
        "Wool, dye and chat colors."
      ],
      "requirements": null,
      "examples": [
        "color of the sheep is red or black",
        "set the color of the block to green",
        "message \"You're holding a <%color of tool%>%color of tool%<reset> wool block\""
      ],
      "properties": []
    },
    {
      "id": "treetype",
      "name": "Tree Type",
      "since": "1.0",
      "patterns": [
        "poplar tree, crimson fungus, any normal tree, any pale oak tree, cocoa jungle tree, small normal tree, any birch tree, small regular tree, huge mushroom, big mangrove tree, swamp oak tree, small spruce tree, jungle tree, azalea tree, big jungle tree, normal pale oak tree, big regular tree, acacia tree, mangrove tree, spruce tree, giant jungle tree, any jungle tree, any spruce tree, tree, crimson fungus tree, tall spruce tree, giant spruce tree, cocoa tree, pale oak tree, jungle bush tree, huge brown mushroom, warped fungus tree, any mangrove tree, cherry tree, jungle bush, crimson tree, chorus plant, any huge mushroom, big normal tree, small oak tree, mega spruce tree, tall jungle tree, tall birch tree, creaking pale oak tree, small jungle tree, small mangrove tree, warped fungus, swamp tree, any tree, birch tree, big spruce tree, warped tree, jungle cocoa tree, oak tree, dark oak tree, big oak tree, huge red mushroom, any poplar tree, swamp oak, small birch tree, any oak tree, any regular tree"
      ],
      "description": [
        "A tree type represents a tree species or a huge mushroom species. These can be generated in a world with the <a href='#EffTree'>generate tree</a> effect."
      ],
      "requirements": null,
      "examples": [
        "grow any regular tree at the block",
        "grow a huge red mushroom above the block"
      ],
      "properties": []
    },
    {
      "id": "experience",
      "name": "Experience",
      "since": "2.0",
      "patterns": [
        "[<number>] ([e]xp|experience [point[s]])"
      ],
      "description": [
        "Experience points. Please note that Bukkit only allows to give XP, but not remove XP from players. You can however change a player's <a href='#ExprLevel'>level</a> and <a href='./expressions/#ExprLevelProgress'>level progress</a> freely."
      ],
      "requirements": null,
      "examples": [
        "give 10 xp to the player"
      ],
      "properties": []
    },
    {
      "id": "gamerulevalue",
      "name": "Gamerule Value",
      "since": "2.5",
      "patterns": null,
      "description": [
        "A wrapper for the value of a gamerule for a world."
      ],
      "requirements": null,
      "examples": [
        ""
      ],
      "properties": []
    },
    {
      "id": "config",
      "name": "Config",
      "since": "2.10",
      "patterns": null,
      "description": [
        "A configuration (or code) loaded by Skript, such as the config.sk or aliases.",
        "Configs can be reloaded or navigated to find options."
      ],
      "requirements": null,
      "examples": [
        "the skript config"
      ],
      "properties": [
        {
          "id": "name",
          "name": "name",
          "description": "The filename of the Config, as text.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "node",
      "name": "Node",
      "since": "2.10",
      "patterns": null,
      "description": [
        "A node (entry) from a script config file.",
        "This may have navigable children."
      ],
      "requirements": null,
      "examples": [
        "the current script"
      ],
      "properties": [
        {
          "id": "typed-value",
          "name": "typed value",
          "description": "The value of the node, if it is an entry node, as text.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprValueOf",
              "name": "Value"
            }
          ]
        },
        {
          "id": "name",
          "name": "name",
          "description": "The key of the node, as text.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "function",
      "name": "Function",
      "since": "2.10",
      "patterns": null,
      "description": [
        "A function loaded by Skript.",
        "This can be executed (with arguments) and may return a result."
      ],
      "requirements": null,
      "examples": [
        "run {_function} with arguments 1 and true",
        "set {_result} to the result of {_function}"
      ],
      "properties": [
        {
          "id": "name",
          "name": "name",
          "description": "The function's name, as text.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "valued",
      "name": "Any Valued Thing",
      "since": "2.10",
      "patterns": null,
      "description": [
        "Something that has a value."
      ],
      "requirements": null,
      "examples": [
        "the text of {node}"
      ],
      "properties": [
        {
          "id": "typed-value",
          "name": "typed value",
          "description": "The value of something. Can be set.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprValueOf",
              "name": "Value"
            }
          ]
        }
      ]
    },
    {
      "id": "containing",
      "name": "Anything with Contents",
      "since": "2.10",
      "patterns": null,
      "description": [
        "Something that contains other things."
      ],
      "requirements": null,
      "examples": [
        "{a} contains {b}"
      ],
      "properties": [
        {
          "id": "contains",
          "name": "contains",
          "description": "AnyContains can contain other things depending on its type.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropCondContains",
              "name": "Contains (Property)"
            }
          ]
        }
      ]
    },
    {
      "id": "projectile",
      "name": "Projectile",
      "since": "1.0",
      "patterns": [
        "arrow, fireball, snowball, thrown potion, etc."
      ],
      "description": [
        "A projectile, e.g. an arrow, snowball or thrown potion."
      ],
      "requirements": null,
      "examples": [
        "projectile is a snowball",
        "shoot an arrow at speed 5 from the player"
      ],
      "properties": []
    },
    {
      "id": "world",
      "name": "World",
      "since": "1.0, 2.2 (alternate syntax)",
      "patterns": [
        "<code>\"world_name\"</code>, e.g. \"world\""
      ],
      "description": [
        "One of the server's worlds. Worlds can be put into scripts by surrounding their name with double quotes, e.g. \"world_nether\", but this might not work reliably as <a href='#string'>text</a> uses the same syntax."
      ],
      "requirements": null,
      "examples": [
        "broadcast \"Hello!\" to the world \"world_nether\""
      ],
      "properties": [
        {
          "id": "name",
          "name": "name",
          "description": "A world's name, as text. Cannot be changed.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "inventoryaction",
      "name": "Inventory Action",
      "since": "2.2-dev16",
      "patterns": [
        "drop stack from slot, swap items with hotbar, pickup all into bundle, place items from bundle, swap cursor stack, pickup single item, pickup some, drop all from cursor, move to other inventory, drop cursor stack, pickup all items into bundle, pickup from bundle, pickup all, place some into bundle, swap with hotbar, nothing, drop all from slot, swap cursor, drop cursor, place from bundle, pickup all items, drop slot item, place all, drop cursor item, drop slot stack, drop single item from slot, swap with cursor, place some, pickup one item, drop single item from cursor, pickup some items into bundle, collect items to cursor, unknown, clone stack, drop stack from cursor, drop one item from slot, pickup some into bundle, drop one item from cursor, unsupported, do nothing, place some items into bundle, drop one from cursor, pickup half, drop items from slot, swap stack with cursor, place all items, place all items into bundle, collect to cursor, pickup some items, drop slot, drop items from cursor, hotbar move and readd, shift move, custom, place all into bundle, pickup single, pickup items from bundle, place one item, hotbar swap items, drop one from slot, place some items, place one, pickup half stack, instant move, hotbar swap"
      ],
      "description": [
        "What player just did in inventory event. Note that when in creative game mode, most actions do not work correctly."
      ],
      "requirements": null,
      "examples": [
        ""
      ],
      "properties": []
    },
    {
      "id": "clicktype",
      "name": "Click Type",
      "since": "2.2-dev16b, 2.2-dev35 (renamed to click type)",
      "patterns": [
        "lmb, number key, mmb, rmb, drop item, drop key, window border using left mouse button, unknown, window border using right mouse, shift+rmb, unsupported, shift+lmb, ctrl+q, swap shield, left mouse button, left mouse with shift, left mouse, 0-9, double click, double click using mouse, border using rmb, right mouse button, right mouse button with shift, border using lmb, middle mouse, drop key with control, window border using right mouse button, swap offhand, custom, q, right mouse with shift, middle mouse button, drop stack, left mouse button with shift, right mouse, creative action"
      ],
      "description": [
        "Click type, mostly for inventory events. Tells exactly which keys/buttons player pressed, assuming that default keybindings are used in client side."
      ],
      "requirements": null,
      "examples": [
        ""
      ],
      "properties": []
    },
    {
      "id": "inventorytype",
      "name": "Inventory Type",
      "since": "2.2-dev32",
      "patterns": [
        "barrel inventory, a loom inventory, a blast furnace inventory, workbench inventory, ender chest inventory, loom inventory, bookshelf inventory, a workbench inventory, hopper inventory, decorated pot inventory, a merchant inventory, a hopper inventory, an ender chest inventory, new smithing table, a jukebox, beacon inventory, shulker box inventory, a barrel inventory, a shulker box inventory, lectern inventory, chest inventory, a villager inventory, a smoker inventory, a brewing stand inventory, a smithing inventory, chiseled bookshelf inventory, grindstone inventory, a crafter inventory, a crafting table inventory, a player inventory, furnace inventory, a creative inventory, blast furnace inventory, upgrade gear, a composter inventory, an enchanting table inventory, jukebox, shelf inventory, a dropper inventory, a cartography table inventory, a upgrade gear, smoker inventory, composter inventory, a chest inventory, upgrade gear table, a upgrade gear table, dispenser inventory, player inventory, stonecutter inventory, a stonecutter inventory, a lectern inventory, merchant inventory, cartography table inventory, a new smithing table, a chiseled bookshelf inventory, a furnace inventory, anvil inventory, a shelf inventory, a bookshelf inventory, a dispenser inventory, a grindstone inventory, a decorated pot inventory, smithing inventory, dropper inventory, brewing stand inventory, villager inventory, enchanting table inventory, a beacon inventory, crafter inventory, creative inventory, crafting table inventory, an anvil inventory"
      ],
      "description": [
        "Minecraft has several different inventory types with their own use cases."
      ],
      "requirements": null,
      "examples": [
        ""
      ],
      "properties": []
    },
    {
      "id": "gamemode",
      "name": "Game Mode",
      "since": "1.0",
      "patterns": [
        "adventure, survival, spectator, creative"
      ],
      "description": [
        "The game modes survival, creative, adventure and spectator."
      ],
      "requirements": null,
      "examples": [
        "player's gamemode is survival",
        "set the player argument's game mode to creative"
      ],
      "properties": []
    },
    {
      "id": "teleportcause",
      "name": "Teleport Cause",
      "since": "2.2-dev35",
      "patterns": [
        "bed exit, nether portal, ender gateway, exiting bed, consumable effect, ender portal, command, unknown, plugin, dismounted, ender pearl, spectator, spectate, end gateway, exit bed, gateway, dismount, end portal"
      ],
      "description": [
        "The teleport cause in a <a href='#teleport'>teleport</a> event."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "spawnreason",
      "name": "Spawn Reason",
      "since": "2.3",
      "patterns": [
        "dispense egg, egg, village defense, ocelot baby, silverfish trap, village invading, trap, dispensing egg, shoulder, drowned, metamorphosis, lightning, silverfish reveal, spell, built iron golem, natural, trial mob spawner, village invasion, frozen, mount, rehydration, build wither, built wither, iron golem defense, ender pearl, creature spawner, reinforcements, build snowman, build iron golem, rehydrated, breeding, raid, ominous item spawner, built copper golem, infection, customized, potion effect, spawn egg, jockey, beehive, default, release from bucket, golem defense, patrol, slime split, infected, sheared, mob spawner, nether portal, trial spawner, shear, perching, custom, built snowman, chunk generation, breed, command, duplication, explosion, spawner, reanimate, cured, enchantment, trial creature spawner, customised, piglin zombification, build copper golem"
      ],
      "description": [
        "The spawn reason in a <a href='#spawn'>spawn</a> event."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "respawnreason",
      "name": "Respawn Reason",
      "since": "2.14",
      "patterns": [
        "death, plugin, end portal"
      ],
      "description": [
        "The respawn reason in a <a href='#respawn'>respawn</a> event."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "cachedservericon",
      "name": "Server Icon",
      "since": "2.3",
      "patterns": null,
      "description": [
        "A server icon that was loaded using the <a href='#EffLoadServerIcon'>load server icon</a> effect."
      ],
      "requirements": null,
      "examples": [
        ""
      ],
      "properties": []
    },
    {
      "id": "FireworkType",
      "name": "Firework Type",
      "since": "2.4",
      "patterns": [
        "small, ball, star shaped, large, star, creeper face, small ball, large ball, burst, ball large, creeper"
      ],
      "description": [
        "The type of a <a href='#fireworkeffect'>fireworkeffect</a>."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "fireworkeffect",
      "name": "Firework Effect",
      "since": "2.4",
      "patterns": [
        "See <a href='/#FireworkType'>Firework Types</a>"
      ],
      "description": [
        "A configuration of effects that defines the firework when exploded",
        "which can be used in the <a href='#EffFireworkLaunch'>launch firework</a> effect.",
        "See the <a href='#ExprFireworkEffect'>firework effect</a> expression for detailed patterns."
      ],
      "requirements": null,
      "examples": [
        "launch flickering trailing burst firework colored blue and green at player",
        "launch trailing flickering star colored purple, yellow, blue, green and red fading to pink at target entity",
        "launch ball large colored red, purple and white fading to light green and black at player's location with duration 1"
      ],
      "properties": []
    },
    {
      "id": "difficulty",
      "name": "Difficulty",
      "since": "2.3",
      "patterns": [
        "normal, medium, hard, easy, peaceful"
      ],
      "description": [
        "The difficulty of a <a href='#world'>world</a>."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "resourcepackstate",
      "name": "Resource Pack State",
      "since": "2.4",
      "patterns": [
        "discarded, refused, rejected, failed reload, accepted, failed, failed to reload, failed to download, downloaded, successfully loaded, accept, fail, successfully load, refuse, declined, successfully install, success, reject, decline, successfully installed, download fail, invalid url"
      ],
      "description": [
        "The state in a <a href='#resource_pack_request_action'>resource pack request response</a> event."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "soundcategory",
      "name": "Sound Category",
      "since": "2.4",
      "patterns": [
        "hostile creatures category, speech category, records category, friendly creature category, noteblock category, hostile creature category, note block category, voice category, ambient category, ui, noteblocks category, note blocks category, weather category, block category, friendly mob category, jukebox category, hostile mob category, master category, master volume category, hostile category, record category, user interface, blocks category, environment category, jukeboxes category, player category, players category, hostile mobs category, friendly mobs category, music category, friendly creatures category, neutral category"
      ],
      "description": [
        "The category of a sound, they are used for sound options of Minecraft. See the <a href='#EffPlaySound'>play sound</a> and <a href='#EffStopSound'>stop sound</a> effects."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "healreason",
      "name": "Heal Reason",
      "since": "2.5",
      "patterns": [
        "an ender crystal, magic, a magic regeneration, magic regeneration, fed, sated, a magic regen, regen potion, a wither spawn, peaceful, unknown, a regeneration potion, consuming, a wither effect, peaceful regeneration, wither summoning, healing potion, wither potion, an end crystal, satiated, regeneration potion, potion, satisfied, ingesting, withered, custom, a wither spawning, end crystal, eating, wither spawning, a wither summoning, wither effect, a plugin, a regen potion, plugin, withering, a potion, wither spawn, a healing potion, ender crystal, magic regen, wither, peaceful regen"
      ],
      "description": [
        "The health regain reason in a <a href='#heal'>heal</a> event."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "gamerule",
      "name": "Gamerule",
      "since": "2.5",
      "patterns": [
        "minecraft:entity_drops, universal_anger, spawn_patrols, log_admin_commands, keep_inventory, raids, fire_damage, respawn_radius, advance_time, immediate_respawn, block_drops, projectiles_can_break_blocks, elytra_movement_check, block_explosion_drop_decay, command_blocks_work, spawn_phantoms, natural_health_regeneration, pvp, mob_explosion_drop_decay, player_movement_check, fire_spread_radius_around_player, max_command_sequence_length, random_tick_speed, spread_vines, lava_source_conversion, spawn_mobs, fall_damage, limited_crafting, max_command_forks, drowning_damage, spawn_wardens, send_command_feedback, forgive_dead_players, freeze_damage, ender_pearls_vanish_on_death, max_snow_accumulation_height, players_sleeping_percentage, mob_drops, mob_griefing, tnt_explosion_drop_decay, water_source_conversion, global_sound_events, spectators_generate_chunks, advance_weather, show_death_messages, allow_entering_nether_using_portals, spawn_monsters, spawner_blocks_work, max_block_modifications, show_advancement_messages, command_block_output, locator_bar, players_nether_portal_creative_delay, players_nether_portal_default_delay, max_entity_cramming, reduced_debug_info, spawn_wandering_traders, tnt_explodes, max_minecart_speed"
      ],
      "description": [
        "A gamerule"
      ],
      "requirements": [
        "Minecraft 1.13 or newer"
      ],
      "examples": null,
      "properties": [
        {
          "id": "name",
          "name": "name",
          "description": "A gamerule's name, as text. Cannot be changed.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "attributetype",
      "name": "Attribute Type",
      "since": "2.5",
      "patterns": [
        "air drag modifier, armor, armor toughness, armour, armour toughness, attack damage, attack knockback, attack speed, below name distance, block break speed, block interaction range, bounciness, burning time, camera distance, entity interaction range, explosion knockback resistance, fall damage multiplier, flying speed, follow range, friction modifier, generic armor, generic armor toughness, generic armour, generic armour toughness, generic attack damage, generic attack knockback, generic attack speed, generic burning time, generic explosion knockback resistance, generic fall damage multiplier, generic flying speed, generic follow range, generic gravity, generic jump strength, generic knockback resistance, generic luck, generic max absorption, generic max health, generic movement efficiency, generic movement speed, generic oxygen bonus, generic safe fall distance, generic scale, generic step height, generic tempt range, generic water movement efficiency, gravity, horse jump strength, jump strength, knockback resistance, luck, max absorption, max health, mining efficiency, movement efficiency, movement speed, name tag distance, name tag score visibility distance, name tag visibility distance, nameplate score visibility distance, nameplate visibility distance, oxygen bonus, player block break speed, player block interaction range, player entity interaction range, player mining efficiency, player sneaking speed, player submerged mining speed, player sweeping damage ratio, safe fall distance, scale, sneaking speed, spawn reinforcements, step height, submerged mining speed, sweeping damage ratio, tempt range, water movement efficiency, waypoint receive range, waypoint transmit range, zombie spawn reinforcements"
      ],
      "description": [
        "Represents the type of an attribute. Note that this type does not contain any numerical values.See <a href='https://minecraft.wiki/w/Attribute#Attributes'>attribute types</a> for more info.",
        "NOTE: Minecraft namespaces are supported, ex: 'minecraft:generic.attack_damage'."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "environment",
      "name": "World Environment",
      "since": "2.7",
      "patterns": [
        "normal, nether, the end, the overworld, custom, the nether, end, overworld"
      ],
      "description": [
        "Represents the environment of a world."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "moonphase",
      "name": "Moon Phase",
      "since": "2.7",
      "patterns": [
        "last quarter, waning crescent, waxing gibbous, full moon, waning gibbous, waxing crescent, new moon, first quarter"
      ],
      "description": [
        "Represents the phase of a moon."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "quitreason",
      "name": "Quit Reason",
      "since": "2.8.0",
      "patterns": [
        "disconnected, erroneous state, kicked, quit, timed out, erroneous"
      ],
      "description": [
        "Represents a quit reason from a <a href='/#quit'>player quit server event</a>."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "inventoryclosereason",
      "name": "Inventory Close Reasons",
      "since": "2.8.0",
      "patterns": [
        "disconnect, death, teleport, cannot use, new opened, unknown, can't use, unloaded, disconnected, plugin, can not use, open new, player"
      ],
      "description": [
        "The inventory close reason in an <a href='/#inventory_close'>inventory close event</a>."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "transformreason",
      "name": "Transform Reason",
      "since": "2.8.0",
      "patterns": [
        "infection, magma slime split, villager infection, tadpole metamorphosis, drowning, creeper super charge, unknown, split, tadpole converting, metamorphosis, skeleton converting to stray, lightning, slime split, entity drowning, slime splitting, zombie drowning, zombie curing, skeleton freeze, entity freezing, zombie converting to drowned, curing, entity freeze, skeleton freezing, mooshroom shear, zombie cure, tadpole converting to frog, mooshroom shearing, magma slime splitting, piglin zombification"
      ],
      "description": [
        "Represents a transform reason of an <a href='#entity transform'>entity transform event</a>."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "unleashreason",
      "name": "Unleash Reason",
      "since": "2.10",
      "patterns": [
        "player unleashed, leashed (gone|disappeared), distance, unleashed by player, player unleash, holder (gone|disappeared), unknown"
      ],
      "description": [
        "Represents an unleash reason of an unleash event."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "itemflag",
      "name": "Item Flag",
      "since": "2.10",
      "patterns": [
        "hide unbreakable, hide unbreakable status, hide destroys, hide additional tooltip, destroys hidden, hide enchants, stored enchantments hidden, hidden destroys, hidden stored enchants, dye hidden, stored enchants hidden, hidden enchants, hidden unbreakable status, hide armour trim, hidden stored enchantments, hide stored enchants, hide stored enchantments, hide attributes, hidden additional tooltip, hidden armor trim, hidden placed on, additional tooltip hidden, enchants hidden, enchantments hidden, attributes hidden, unbreakable status hidden, hidden dye color, hidden armour trim, unbreakable hidden, dye color hidden, hide enchantments, armour trim hidden, hidden unbreakable, hide dye color, hidden attributes, armor trim hidden, hide destroyable blocks, hide placed on, hidden dye, hide armor trim, hide breakable blocks, placed on hidden, hide dye"
      ],
      "description": [
        "Represents flags that may be applied to hide certain attributes of an item."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "experiencecooldownchangereason",
      "name": "Experience Cooldown Change Reason",
      "since": "2.10",
      "patterns": [
        "plugin, pickup orb, orb pickup"
      ],
      "description": [
        "Represents a change reason of an <a href='#experience cooldown change event'>experience cooldown change event</a>."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "villagerprofession",
      "name": "Villager Profession",
      "since": "2.10",
      "patterns": [
        "armorer, armorer profession, armourer, armourer profession, butcher, butcher profession, cartographer, cartographer profession, cleric, cleric profession, farmer, farmer profession, fisherman, fisherman profession, fletcher, fletcher profession, leatherworker, leatherworker profession, librarian, librarian profession, mason, mason profession, nitwit, nitwit profession, no profession, none, none profession, shepherd, shepherd profession, toolsmith, toolsmith profession, unemployed, weaponsmith, weaponsmith profession"
      ],
      "description": [
        "Represents the different professions of villagers."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "entitysnapshot",
      "name": "Entity Snapshot",
      "since": "2.10",
      "patterns": null,
      "description": [
        "Represents a snapshot of an entity's data.",
        "This includes all of the data associated with an entity (its name, health, attributes, etc.), at the time this expression is used. Essentially, these are a way to create templates for entities.",
        "Individual attributes of a snapshot cannot be modified or retrieved."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "bannerpattern",
      "name": "Banner Pattern",
      "since": "2.10",
      "patterns": null,
      "description": [
        "Represents a banner pattern."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "bannerpatterntype",
      "name": "Banner Pattern Type",
      "since": "2.10",
      "patterns": [
        "base, base banner pattern, border, border banner pattern, bordure banner pattern, bordure indented banner pattern, bottom left square banner pattern, bottom right square banner pattern, bottom stripe banner pattern, bottom triangle banner pattern, bricks, bricks banner pattern, center stripe banner pattern, circle, circle banner pattern, creeper, creeper banner pattern, creeper charged banner pattern, cross, cross banner pattern, curly border, curly border banner pattern, diagonal left, diagonal right, diagonal up left, diagonal up left banner pattern, diagonal up right, diagonal up right banner pattern, down left stripe banner pattern, down right stripe banner pattern, field masoned banner pattern, flow, flow banner pattern, flower, flower banner pattern, globe, globe banner pattern, gradient, gradient banner pattern, gradient up, gradient up banner pattern, guster, guster banner pattern, half horizontal, half horizontal bottom, half vertical, half vertical right, horizontal bottom half banner pattern, horizontal half banner pattern, left diagonal banner pattern, left stripe banner pattern, middle stripe banner pattern, mojang, mojang banner pattern, piglin, piglin banner pattern, rhombus, rhombus banner pattern, right diagonal banner pattern, right stripe banner pattern, right vertical half banner pattern, skull, skull banner pattern, small stripes, small stripes banner pattern, snout banner pattern, square bottom left, square bottom right, square top left, square top right, straight cross, straight cross banner pattern, stripe bottom, stripe center, stripe downleft, stripe downright, stripe left, stripe middle, stripe right, stripe top, tbottom triangles banner pattern, thing banner pattern, top left square banner pattern, top right square banner pattern, top stripe banner pattern, top triangle banner pattern, top triangles banner pattern, triangle bottom, triangle top, triangles bottom, triangles top, vertical half banner pattern"
      ],
      "description": [
        "Represents the various banner patterns that can be applied to a banner."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "vehicle",
      "name": "Vehicle",
      "since": "2.10.2",
      "patterns": null,
      "description": [
        "Represents a vehicle."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "equipmentslot",
      "name": "Equipment Slot",
      "since": "2.11",
      "patterns": [
        "feet, chestplate slot, saddle slot, body slots, body armors, boots slot, body slot, leggings slots, off hand slot, helmet slots, legs slot, legs, body armour slots, body armor slot, body armor slots, leggings, helmets, chestplates, hand slot, body armour slot, helmet slot, boots slots, chest slots, tool slot, main hand slots, off hand slots, main hands, head slot, saddle slots, head slots, feet slots, shoes slot, hand slots, chestplate slots, helmet, body armours, boots, legs slots, off haands, chest slot, off hand, main hand slot, feet slot, leggings slot, shoes, chestplate, tool slots, body armor, main hand, body armour"
      ],
      "description": [
        "Represents an equipment slot of an entity."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "villagercareerchangereason",
      "name": "Villager Career Change Reason",
      "since": "2.12",
      "patterns": [
        "losing job, employment"
      ],
      "description": [
        "Represents a reason why a villager changed its career."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "script",
      "name": "Script",
      "since": "2.10",
      "patterns": null,
      "description": [
        "A script loaded by Skript.",
        "Disabled scripts will report as being empty since their content has not been loaded."
      ],
      "requirements": null,
      "examples": [
        "the current script"
      ],
      "properties": [
        {
          "id": "name",
          "name": "name",
          "description": "A script's name, as text. If the experiment 'Script Reflection' is enabled, this will return the resolved name of the script, otherwise it returns the file name with path relative to the scripts folder. Cannot be changed.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "quaternion",
      "name": "Quaternion",
      "since": "2.10",
      "patterns": null,
      "description": [
        "Quaternions are four dimensional vectors, often used for representing rotations."
      ],
      "requirements": null,
      "examples": null,
      "properties": [
        {
          "id": "wxyz-component",
          "name": "wxyz component",
          "description": "W, X, Y, or Z component of the quaternion.",
          "provider": "Skript",
          "relatedSyntax": null
        }
      ]
    },
    {
      "id": "queue",
      "name": "Queue",
      "since": "2.10",
      "patterns": null,
      "description": [
        "A queued list of values. Entries are removed from a queue when they are queried."
      ],
      "requirements": null,
      "examples": [
        "set {queue} to a new queue",
        "add \"hello\" to {queue}",
        "broadcast the 1st element of {queue}"
      ],
      "properties": [
        {
          "id": "amount",
          "name": "amount",
          "description": "The amount of elements in the queue.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprAmount",
              "name": "Amount"
            }
          ]
        },
        {
          "id": "empty",
          "name": "empty",
          "description": "Whether a queue is empty, i.e. whether there are no elements in the queue.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropCondIsEmpty",
              "name": "Is Empty"
            }
          ]
        },
        {
          "id": "size",
          "name": "size",
          "description": "The size of the queue, in element count.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprSize",
              "name": "Size"
            }
          ]
        }
      ]
    },
    {
      "id": "block",
      "name": "Block",
      "since": "1.0",
      "patterns": null,
      "description": [
        "A block in a <a href='#world'>world</a>. It has a <a href='#location'>location</a> and a <a href='#itemstack'>type</a>, and can also have a <a href='#direction'>direction</a> (mostly a <a href='#ExprFacing'>facing</a>), an <a href='#inventory'>inventory</a>, or other special properties."
      ],
      "requirements": null,
      "examples": [
        ""
      ],
      "properties": [
        {
          "id": "name",
          "name": "name",
          "description": "The custom name of the block, if it has one. Only TileEntities like chests and furnaces can have names. Can be set or reset.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "chunk",
      "name": "Chunk",
      "since": "2.0",
      "patterns": null,
      "description": [
        "A chunk is a 16 by 16 segment of a world, stretching from the world's bottom to its top. Chunks are spread on a fixed rectangular grid in their world."
      ],
      "requirements": null,
      "examples": null,
      "properties": [
        {
          "id": "wxyz-component",
          "name": "wxyz component",
          "description": "The X or Z coordinate of the chunk. Added in 2.17.",
          "provider": "Skript",
          "relatedSyntax": null
        }
      ]
    },
    {
      "id": "inventory",
      "name": "Inventory",
      "since": "1.0",
      "patterns": null,
      "description": [
        "An inventory of a <a href='#player'>player</a> or <a href='#block'>block</a>. Inventories have many effects and conditions regarding the items contained.",
        "An inventory has a fixed amount of <a href='#slot'>slots</a> which represent a specific place in the inventory, e.g. the <a href='#ExprArmorSlot'>helmet slot</a> for players (Please note that slot support is still very limited but will be improved eventually)."
      ],
      "requirements": null,
      "examples": [
        ""
      ],
      "properties": [
        {
          "id": "display-name",
          "name": "display name",
          "description": "The name of the inventory. Can be set or reset.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprCustomName",
              "name": "Display Name"
            }
          ]
        },
        {
          "id": "contains",
          "name": "contains",
          "description": "Inventories can contain items.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropCondContains",
              "name": "Contains (Property)"
            }
          ]
        },
        {
          "id": "viewers",
          "name": "viewers",
          "description": "The viewers of the inventory.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprViewers",
              "name": "Viewers"
            }
          ]
        },
        {
          "id": "empty",
          "name": "empty",
          "description": "Whether the inventory contains no items (all slots contain air).",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropCondIsEmpty",
              "name": "Is Empty"
            }
          ]
        },
        {
          "id": "name",
          "name": "name",
          "description": "The name of the inventory. Can be set or reset.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "location",
      "name": "Location",
      "since": "1.0",
      "patterns": null,
      "description": [
        "A location in a <a href='#world'>world</a>. Locations are world-specific and even store a <a href='#direction'>direction</a>, e.g. if you save a location and later teleport to it you will face the exact same direction you did when you saved the location."
      ],
      "requirements": null,
      "examples": [
        "teleport player to location at 0, 69, 0",
        "set {home::%uuid of player%} to location of the player"
      ],
      "properties": [
        {
          "id": "wxyz-component",
          "name": "wxyz component",
          "description": "The X, Y, or Z coordinate of the location.",
          "provider": "Skript",
          "relatedSyntax": null
        }
      ]
    },
    {
      "id": "player",
      "name": "Player",
      "since": "1.0",
      "patterns": [
        "Parsing an offline player as a player (online) will return nothing (none), for that case you would need to parse as offlineplayer which only returns nothing (none) if player doesn't exist in Minecraft databases (name not taken) otherwise it will return the player regardless of their online status."
      ],
      "description": [
        "A player. Depending on whether a player is online or offline several actions can be performed with them, though you won't get any errors when using effects that only work if the player is online (e.g. changing their inventory) on an offline player.",
        "You have two possibilities to use players as command arguments: <player> and <offline player>. The first requires that the player is online and also accepts only part of the name, while the latter doesn't require that the player is online, but the player's name has to be entered exactly."
      ],
      "requirements": null,
      "examples": [
        "set {_p} to \"Notch\" parsed as a player # returns <none> unless Notch is actually online or starts with Notch like Notchan",
        "set {_p} to \"N\" parsed as a player # returns Notch if Notch is online because their name starts with 'N' (case insensitive) however, it would return nothing if no player whose name starts with 'N' is online."
      ],
      "properties": [
        {
          "id": "display-name",
          "name": "display name",
          "description": "The player's display name, as text. Can be set or reset.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprCustomName",
              "name": "Display Name"
            }
          ]
        },
        {
          "id": "name",
          "name": "name",
          "description": "A player's account/true name, as text. Cannot be changed.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "slot",
      "name": "Slot",
      "since": "",
      "patterns": null,
      "description": [
        "Represents a single slot of an <a href='#inventory'>inventory</a>. Notable slots are the <a href='#ExprArmorSlot'>armour slots</a> and <a href='./expressions/#ExprFurnaceSlot'>furnace slots</a>. ",
        "The most important property that distinguishes a slot from an <a href='#itemstack'>item</a> is its ability to be changed, e.g. it can be set, deleted, enchanted, etc. (Some item expressions can be changed as well, e.g. items stored in variables. For that matter: slots are never saved to variables, only the items they represent at the time when the variable is set).",
        "Please note that <a href='#ExprTool'>tool</a> can be regarded a slot, but it can actually change it's position, i.e. doesn't represent always the same slot."
      ],
      "requirements": null,
      "examples": [
        "set tool of player to dirt",
        "delete helmet of the victim",
        "set the color of the player's tool to green",
        "enchant the player's chestplate with projectile protection 5"
      ],
      "properties": [
        {
          "id": "amount",
          "name": "amount",
          "description": "The amount of items in the slot's stack. Can be set.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprAmount",
              "name": "Amount"
            }
          ]
        },
        {
          "id": "display-name",
          "name": "display name",
          "description": "The custom name of the item in the slot, if it has one. Can be set or reset.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprCustomName",
              "name": "Display Name"
            }
          ]
        },
        {
          "id": "empty",
          "name": "empty",
          "description": "Whether this slot does not contain a (non-air) item.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropCondIsEmpty",
              "name": "Is Empty"
            }
          ]
        },
        {
          "id": "name",
          "name": "name",
          "description": "The custom name of the item in the slot, if it has one. Can be set or reset.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "vector",
      "name": "Vector",
      "since": "2.2-dev23",
      "patterns": [
        "vector(x, y, z)"
      ],
      "description": [
        "Vector is a collection of numbers. In Minecraft, 3D vectors are used to express velocities of entities."
      ],
      "requirements": null,
      "examples": [
        ""
      ],
      "properties": [
        {
          "id": "wxyz-component",
          "name": "wxyz component",
          "description": "X, Y, or Z component of the vector.",
          "provider": "Skript",
          "relatedSyntax": null
        }
      ]
    },
    {
      "id": "bossbarstyle",
      "name": "Boss Bar Style",
      "since": "2.16",
      "patterns": [
        "6 notches, notched with 6 segments, ten segments, twenty notches, notched with ten segments, 10 segments, twelve segments, no notches, twenty segments, 10 notches, six notches, notched with 20 segments, six segments, 12 notches, solid, 12 segments, 20 segments, notched with 10 segments, 6 segments, notched with six segments, ten notches, progress, notched with twelve segments, notched with 12 segments, notched with twenty segments, twelve notches, 20 notches"
      ],
      "description": [
        "The style of a boss bar."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "damagesource",
      "name": "Damage Source",
      "since": "2.12",
      "patterns": null,
      "description": [
        "Represents the source from which an entity was damaged.",
        "Cannot change any attributes of the damage source from an 'on damage' or 'on death' event."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "damagetype",
      "name": "Damage Type",
      "since": "2.12",
      "patterns": [
        "arrow, bad respawn point, cactus, campfire, cramming, dragon breath, drown, drowning, dry out, ender pearl, entity cramming, explosion, fall, falling anvil, falling block, falling stalactite, fireball, fireworks, fly into wall, freeze, generic, generic kill, hot floor, hot sulfur cube, in fire, in wall, indirect magic, lava, lightning, lightning bolt, llama spit, mace smash, magic, magma sulfur cube, mob attack, mob attack no aggro, mob projectile, on fire, out of world, outside border, player attack, player explosion, sonic boom, spear, spit, stalagmite, starve, sting, suffocation, sulfur cube hot, sweet berry bush, thorns, thrown, trident, unattributed fireball, void, wind charge, wither, wither skull"
      ],
      "description": [
        "References a damage type of a damage source."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "enchantment",
      "name": "Enchantment",
      "since": "1.4.6",
      "patterns": [
        "aqua affinity, bane of arthropods, binding curse, blast protection, breach, channeling, channelling, curse of binding, curse of vanishing, density, depth strider, efficiency, feather falling, fire aspect, fire protection, flame, fortune, frost walker, impaling, infinity, knockback, looting, loyalty, luck of the sea, lunge, lure, mending, multi-shot, multishot, piercing, power, projectile protection, protection, punch, quick charge, respiration, riptide, sharpness, silk touch, smite, soul speed, sweeping edge, swift sneak, thorns, unbreaking, vanishing curse, wind burst"
      ],
      "description": [
        "An enchantment, e.g. 'sharpness' or 'fortune'. Unlike <a href='#enchantmenttype'>enchantment type</a> this type has no level, but you usually don't need to use this type anyway.",
        "NOTE: Minecraft namespaces are supported, ex: 'minecraft:basalt_deltas'.",
        "This also supports custom enchantments using namespaces, ex: 'myenchants:explosive'."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "enchantmenttype",
      "name": "Enchantment Type",
      "since": "1.4.6",
      "patterns": [
        "<enchantment> [<level>]"
      ],
      "description": [
        "An enchantment with an optional level, e.g. 'sharpness 2' or 'fortune'."
      ],
      "requirements": null,
      "examples": [
        "enchant the player's tool with sharpness 5",
        "helmet is enchanted with waterbreathing"
      ],
      "properties": []
    },
    {
      "id": "enchantmentoffer",
      "name": "Enchantment Offer",
      "since": "2.5",
      "patterns": null,
      "description": [
        "The enchantmentoffer in an enchant prepare event."
      ],
      "requirements": null,
      "examples": [
        "on enchant prepare:\n\tset enchant offer 1 to sharpness 1\n\tset the cost of enchant offer 1 to 10 levels\n"
      ],
      "properties": []
    },
    {
      "id": "teleportflag",
      "name": "Teleport Flag",
      "since": "2.10",
      "patterns": [
        "passengers, xyz velocity, z velocity, yaw velocity, inventory, pitch velocity, vehicle, opened inventory, open inventory, x velocity, passenger, pitch and yaw velocity, yaw and pitch velocity, directional velocity, y velocity"
      ],
      "description": [
        "Teleport Flags are settings to retain during a teleport."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "display",
      "name": "Display Entity",
      "since": "2.10",
      "patterns": null,
      "description": [
        "A text, block or item display entity."
      ],
      "requirements": null,
      "examples": null,
      "properties": [
        {
          "id": "scale",
          "name": "scale",
          "description": "The scale multipliers to use for a displays. The x, y, and z scales of the display will be multiplied by the respective components of the vector.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprScale",
              "name": "Scale"
            }
          ]
        }
      ]
    },
    {
      "id": "billboard",
      "name": "Display Billboard",
      "since": "2.10",
      "patterns": [
        "vertical pivot, horizontal, middle, horizontal pivot, center pivot, center, fixed, vertical"
      ],
      "description": [
        "Represents the billboard setting of a display."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "textalignment",
      "name": "Display Text Alignment",
      "since": "2.10",
      "patterns": [
        "middle aligned, centered, right aligned, center aligned, left aligned"
      ],
      "description": [
        "Represents the text alignment setting of a text display."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "itemdisplaytransform",
      "name": "Item Display Transforms",
      "since": "2.10",
      "patterns": [
        "first person left handed, left handed in first person, right handed in third person, first person left hand, no transform, the ground, third person right hand, third person right handed, right handed in first person, menu, head, third person left hand, first person right handed, first person right hand, fixed position, left handed in third person, gui, ground, fixed, third person left handed"
      ],
      "description": [
        "Represents the transform setting of an item display."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "fishingstate",
      "name": "Fishing State",
      "since": "2.11",
      "patterns": [
        "lured, bobber in ground, fish escaped, entity caught, fishing, fish lured, fishing rod cast, reel in, caught fish, caught entity, fishing line cast, fish escape, fish bite, bite, rod cast, in ground, failed attempt, fish caught"
      ],
      "description": [
        "Represents the different states of a fishing event."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "inputkey",
      "name": "Input Key",
      "since": "2.10",
      "patterns": [
        "left movement key, forward movement key, right movement key, backward key, left key, sprint key, forward key, right key, jumping key, sneaking key, jump key, sneak key, sprinting key, backward movement key"
      ],
      "description": [
        "Represents a movement input key that is pressed by a player."
      ],
      "requirements": [
        "Minecraft 1.21.3+"
      ],
      "examples": null,
      "properties": []
    },
    {
      "id": "itemrarity",
      "name": "Item Rarity",
      "since": "2.17",
      "patterns": [
        "common rarity, uncommon, uncommon rarity, common, rare, epic rarity, epic, rare rarity"
      ],
      "description": [
        "Represents the item rarity of an item."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "loottable",
      "name": "Loot Table",
      "since": "2.10",
      "patterns": null,
      "description": [
        "Loot tables represent what items should be in naturally generated containers, what items should be dropped when killing a mob, or what items can be fished.",
        "You can find more information about this in https://minecraft.wiki/w/Loot_table"
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "lootcontext",
      "name": "Loot Context",
      "since": "2.10",
      "patterns": null,
      "description": [
        "Represents additional information a loot table can use to modify its generated loot.",
        "",
        "Some loot tables will require some values (i.e. looter, location, looted entity) in a loot context when generating loot whereas others may not.",
        "For example, the loot table of a simple dungeon chest will only require a location, whereas the loot table of a cow will require a looting player, looted entity, and location.",
        "You can find more information about this in https://minecraft.wiki/w/Loot_context"
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "gameeffect",
      "name": "Game Effect",
      "since": "2.14",
      "patterns": [
        "close door sound effect",
        "zombie infection sound effect",
        "lava dripping into cauldron sound effect",
        "spell potion splash sound effect",
        "ender dragon growl effect",
        "zombie chewing on wooden door sound effect",
        "use grindstone sound effect",
        "complete end portal sound effect",
        "ender eye launch sound effect",
        "eye of ender launch sound effect",
        "dispenser fail effect",
        "gust dust effect",
        "zombie attacking wooden door sound effect",
        "dispenser projectile launch effect",
        "sponge dry out effect",
        "close iron trapdoor sound effect",
        "end gateway spawn effect",
        "lava dripping sound effect",
        "turn page sound effect",
        "dragon death sound effect",
        "wither shoot sound effect",
        "dispenser failure to dispense effect",
        "dispenser fail to dispense effect",
        "music disc stop effect",
        "zombie chewing on iron door sound effect",
        "water dripping into cauldron sound effect",
        "close trapdoor sound effect",
        "eye of ender break effect",
        "apply wax effect",
        "sculk shriek effect",
        "spawner flames effect",
        "dragon breaking block effect",
        "crafter craft sound effect",
        "vault eject item effect",
        "redstone torch burnout effect",
        "scrape oxidised copper effect",
        "chorus flower growing sound effect",
        "water dripping sound effect",
        "toggle fence gate sound effect",
        "zombie converted to villager effect",
        "zombie destroying door sound effect",
        "remove wax effect",
        "ender dragon shoot effect",
        "close fence gate sound effect",
        "ender dragon growling effect",
        "ender dragon death sound effect",
        "zombie villager cured effect",
        "dispenser shoot sound effect",
        "blaze shoot sound effect",
        "crafter fail sound effect",
        "egg crack effect",
        "brewing sound effect",
        "bat take off sound effect",
        "ender dragon shoots fireball effect",
        "ghast shriek sound effect",
        "fill end portal frame effect",
        "wither breaking block sound effect",
        "use smithing table sound effect",
        "toggle iron door sound effect",
        "toggle iron trapdoor sound effect",
        "ender eye break effect",
        "husk converting to zombie sound effect",
        "ender dragon breaking block effect",
        "create end portal sound effect",
        "spawn wither sound effect",
        "toggle trapdoor sound effect",
        "sulfur spike land effect",
        "instant potion splash sound effect",
        "ghast shoot sound effect",
        "chorus flower death sound effect",
        "pointed dripstone land effect",
        "zombie attacking iron door sound effect",
        "break anvil sound effect",
        "mob spawner flames effect",
        "nether portal travel sound effect",
        "anvil land sound effect",
        "zombie destroy door sound effect",
        "wind charge shoot effect",
        "close iron door sound effect",
        "phantom bite sound effect",
        "toggle door sound effect",
        "trial spawner eject item effect",
        "skeleton converting to stray sound effect",
        "spawn cobweb effect",
        "zombie converting to drowned sound effect",
        "record stop effect",
        "use anvil sound effect",
        "lava interaction effect",
        "dispenser dispense effect"
      ],
      "description": [
        "Various game effects that can be played for players, like record disc songs, splash potions breaking, or fake bone meal effects."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "entityeffect",
      "name": "Entity Effect",
      "since": "2.14",
      "patterns": [
        "drown damage effect, break chestplate effect, villager angry effect, ravager attack animation, squid rotation reset, firework explode animation, break boots effect, love hearts effect, ocelot distrust effect, reset spawner minecart delay effect, break saddle effect, protected from death effect, hurt berry bush effect (non-functional), ignite tnt minecart animation, boat sink animation, fed dolphin effect, zoglin attack animation, iron golem rose animation, cat tame fail effect (non-functional), player bad omen raid effect, sheep eating grass animation, hoglin attack animation, taming succeeded effect, zombie transform sound effect, wolf shake animation, totem resurrection effect, rabbit jump animation, ocelot trust effect, drowning damage effect, ravager roared effect, egg break effect, iron golem attack animation, break body armour effect, ender teleport effect, tipped arrow particles effect, break helmet effect, iron golem sheath animation, honey block fall effect, boat launching animation, villager happy effect, snowball break effect, cat tame success effect (non-functional), evoker fang attack animation, fox chew effect, death animation, kinetic weapon hit effect, stop wolf shake animation, witch magic effect, warden sonic attack animation, break body armor effect, honey block slide effect, break main hand effect, damage animation (non-functional), shield break sound effect, armadillo peek animation, projectile crack effect, sniffer dig sound effect, totem resurrect effect, goat lowering head animation, villager sweat effect, break off hand effect, entity attack animation, boat launch animation, swap hands effect, entity poof effect, explosion damage effect (non-functional), guardian target sound effect (non-functional), boat sinking animation, thorns hurt effect (non-functional), warden attack animation, armor stand hit effect, break leggings effect, shield block sound effect, goat raising head animation, spawn in smoke effect, warden tendril shake animation, taming failed effect, stunned ravager effect, creaking shake animation, villager heart effect"
      ],
      "description": [
        "Various entity effects that can be played for entities, like wolf howling, or villager happy."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "convergingparticle",
      "name": "Converging Particle Effect",
      "since": "2.14",
      "patterns": null,
      "description": [
        "A particle effect where particles converge towards a point."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "directionalparticle",
      "name": "Directional Particle Effect",
      "since": "2.14",
      "patterns": null,
      "description": [
        "A particle effect which can be given a directional velocity."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "scalableparticle",
      "name": "Scalable Particle Effect",
      "since": "2.14",
      "patterns": null,
      "description": [
        "A particle effect which can be scaled up or down."
      ],
      "requirements": null,
      "examples": null,
      "properties": [
        {
          "id": "scale",
          "name": "scale",
          "description": "The scale multiplier to use for a particle. Generally larger numbers will result in larger particles.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprScale",
              "name": "Scale"
            }
          ]
        }
      ]
    },
    {
      "id": "potioneffect",
      "name": "Potion Effect",
      "since": "2.5.2",
      "patterns": [
        "speed of tier 1 for 10 seconds"
      ],
      "description": [
        "A potion effect, including the potion effect type, tier and duration."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "potioneffecttype",
      "name": "Potion Effect Type",
      "since": "2.0 beta 3",
      "patterns": [
        "absorption, bad luck, bad omen, blindness, breath of the nautilus, conduit power, confusion, damage, damage resistance, darkness, dolphin's grace, dolphins grace, fast digging, fast mining, fire immunity, fire resistance, floating, glowing, haste, health, health boost, hero of the village, hunger, increase damage, increased damage, infested, instant damage, instant health, invisibility, jump, jump boost, levitation, luck, max health boost, maximum health boost, mining fatigue, nausea, night vision, oozing, poison, raid omen, reduce damage, reduced damage, regeneration, resistance, saturation, slow, slow digging, slow fall, slow falling, slow mining, slowness, speed, strength, swiftness, trial omen, unluck, water breathing, weakness, weaving, wind charged, wither, wither effect, wither potion effect"
      ],
      "description": [
        "A potion effect type, e.g. 'strength' or 'swiftness'."
      ],
      "requirements": null,
      "examples": [
        "apply swiftness 5 to the player",
        "apply potion of speed 2 to the player for 60 seconds",
        "remove invisibility from the victim"
      ],
      "properties": []
    },
    {
      "id": "potioncause",
      "name": "Potion Effect Event Cause",
      "since": "2.10",
      "patterns": [
        "patrol captain, axolotl, death, removal by resurrection, beacon effect, potion drunk, illusion, unknown, drinking potion, expired, pillager captain, attack, villager trade, spawned spider, wither rose infliction, conversion, enter area effect cloud, conduit effect, nautilus, command, food, drinking milk, plugin, converted, spider spawn, splash potion, warden, expiration, potion splash, dolphin boost, arrow infliction, turtle helmet effect"
      ],
      "description": [
        "Represents the cause of an 'entity potion effect' event. For example, an arrow hitting an entity or a command being executed."
      ],
      "requirements": null,
      "examples": [
        "on entity potion effect:\n\tif the event-potion effect cause is arrow affliction:\n\t\tmessage \"You were hit by a tipped arrow!\"\n"
      ],
      "properties": []
    },
    {
      "id": "potionaction",
      "name": "Potion Effect Event Action",
      "since": "2.14",
      "patterns": [
        "add, removed, added, change, clear, removal, cleared, remove, changed"
      ],
      "description": [
        "Represents the action being performed in an 'entity potion effect' event.",
        "'added' indicates the entity does not already have a potion effect of the event potion effect type.",
        "'changed' indicates the entity already has a potion effect of the event potion effect type, but some property about the potion effect is changing.",
        "'cleared' indicates that the effect is being removed because all of the entity's effects are being removed.",
        "'removed' indicates that the event potion effect type has been specifically removed from the entity."
      ],
      "requirements": null,
      "examples": [
        "on entity potion effect:\n\tif the event-potion effect action is removal:\n\t\tmessage \"One of your existing potion effects was removed!\"\n"
      ],
      "properties": []
    },
    {
      "id": "potioneffecttypecategory",
      "name": "Potion Effect Type Category",
      "since": "2.14",
      "patterns": [
        "beneficial, neutral, harmful"
      ],
      "description": [
        "Represents the type of effect a potion effect type has on an entity."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "minecrafttag",
      "name": "Minecraft Tag",
      "since": "2.10",
      "patterns": null,
      "description": [
        "A tag that classifies a material, or entity."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "textcomponent",
      "name": "Text Component",
      "since": "2.15",
      "patterns": null,
      "description": [
        "Text components are used to represent how text is displayed in Minecraft.",
        "This includes colors, decorations, and more."
      ],
      "requirements": null,
      "examples": [
        "\"<red><bold>This text is red and bold!\""
      ],
      "properties": [
        {
          "id": "contains",
          "name": "contains",
          "description": "Components can contain other components.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropCondContains",
              "name": "Contains (Property)"
            }
          ]
        }
      ]
    },
    {
      "id": "worldborder",
      "name": "World Border",
      "since": "2.11",
      "patterns": null,
      "description": [
        "Represents the border of a world or player."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "CatType",
      "name": "Cat Type",
      "since": "2.4",
      "patterns": [
        "all black, black, british shorthair, calico, jellie, persian, ragdoll, red, siamese, tabby, white"
      ],
      "description": [
        "Represents the race/type of a cat entity.",
        "NOTE: Minecraft namespaces are supported, ex: 'minecraft:british_shorthair'."
      ],
      "requirements": [
        "Minecraft 1.14 or newer"
      ],
      "examples": null,
      "properties": []
    },
    {
      "id": "ChickenVariant",
      "name": "Chicken Variant",
      "since": "2.12",
      "patterns": [
        "cold, temperate, warm"
      ],
      "description": [
        "Represents the variant of a chicken entity.",
        "NOTE: Minecraft namespaces are supported, ex: 'minecraft:warm'."
      ],
      "requirements": [
        "Minecraft 1.21.5+"
      ],
      "examples": null,
      "properties": []
    },
    {
      "id": "CowVariant",
      "name": "Cow Variant",
      "since": "2.12",
      "patterns": [
        "cold, temperate, warm"
      ],
      "description": [
        "Represents the variant of a cow entity.",
        "NOTE: Minecraft namespaces are supported, ex: 'minecraft:warm'."
      ],
      "requirements": [
        "Minecraft 1.21.5+"
      ],
      "examples": null,
      "properties": []
    },
    {
      "id": "FrogVariant",
      "name": "Frog Variant",
      "since": "2.13",
      "patterns": [
        "cold, temperate, warm"
      ],
      "description": [
        "Represents the variant of a frog entity.",
        "NOTE: Minecraft namespaces are supported, ex: 'minecraft:warm'."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "gene",
      "name": "Gene",
      "since": "2.4",
      "patterns": [
        "normal, lazy, happy, worried, worrisome, aggressive, brown, brownish, savage, playful, wild, weak"
      ],
      "description": [
        "Represents a Panda's main or hidden gene. See <a href='https://minecraft.wiki/w/Panda#Genetics'>genetics</a> for more info."
      ],
      "requirements": [
        "Minecraft 1.14 or newer"
      ],
      "examples": null,
      "properties": []
    },
    {
      "id": "PigVariant",
      "name": "Pig Variant",
      "since": "2.12",
      "patterns": [
        "cold, temperate, warm"
      ],
      "description": [
        "Represents the variant of a pig entity.",
        "NOTE: Minecraft namespaces are supported, ex: 'minecraft:warm'."
      ],
      "requirements": [
        "Minecraft 1.21.5+"
      ],
      "examples": null,
      "properties": []
    },
    {
      "id": "WolfVariant",
      "name": "Wolf Variant",
      "since": "2.10",
      "patterns": [
        "ashen, black, chestnut, pale, rusty, snowy, spotted, striped, woods"
      ],
      "description": [
        "Represents the variant of a wolf entity.",
        "NOTE: Minecraft namespaces are supported, ex: 'minecraft:ashen'."
      ],
      "requirements": [
        "Minecraft 1.21+"
      ],
      "examples": null,
      "properties": []
    },
    {
      "id": "ZombieNautilusVariant",
      "name": "Zombie Nautilus Variant",
      "since": "2.14",
      "patterns": [
        "temperate, warm"
      ],
      "description": [
        "Represents the variant of a zombie nautilus."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "money",
      "name": "Money",
      "since": "2.0",
      "patterns": [
        "&lt;number&gt; $ or $ &lt;number&gt;, where '$' is your server's currency, e.g. '10 rupees' or '£5.00'"
      ],
      "description": [
        "A certain amount of money. Please note that this differs from <a href='#number'>numbers</a> as it includes a currency symbol or name, but usually the two are interchangeable, e.g. you can both <code>add 100$ to the player's balance</code> and <code>add 100 to the player's balance</code>."
      ],
      "requirements": [
        "Vault",
        "an economy plugin that supports Vault"
      ],
      "examples": [
        "add 10£ to the player's account",
        "remove Fr. 9.95 from the player's money",
        "set the victim's money to 0",
        "increase the attacker's balance by the level of the victim * 100"
      ],
      "properties": []
    },
    {
      "id": "timespan",
      "name": "Timespan",
      "since": "1.0, 2.6.1 (weeks, months, years)",
      "patterns": [
        "<number> [minecraft/mc/real/rl/irl] ticks/seconds/minutes/hours/days/weeks/months/years [[,/and] <more...>]",
        "[]##:##[.####] ([]minutes:seconds[.milliseconds])"
      ],
      "description": [
        "A timespan is a difference of two different dates or times, e.g '10 minutes'. Timespans are always displayed as real life time, but can be defined as minecraft time, e.g. '5 minecraft days and 12 hours'.",
        "NOTE: Months always have the value of 30 days, and years of 365 days.",
        "See <a href='#date'>date</a> and <a href='#time'>time</a> for the other time types of Skript."
      ],
      "requirements": null,
      "examples": [
        "every 5 minecraft days:",
        "\twait a minecraft second and 5 ticks",
        "every 10 mc days and 12 hours:",
        "\thalt for 12.7 irl minutes, 12 hours and 120.5 seconds"
      ],
      "properties": []
    },
    {
      "id": "executable",
      "name": "Executable",
      "since": "2.10",
      "patterns": null,
      "description": [
        "Something that can be executed (run) and may accept arguments, e.g. a function.",
        "This may also return a result."
      ],
      "requirements": null,
      "examples": [
        "run {_function} with arguments 1 and true"
      ],
      "properties": []
    },
    {
      "id": "livingentity",
      "name": "Living Entity",
      "since": "1.0",
      "patterns": [
        "see <a href='#entity'>entity</a>, but ignore inanimate objects"
      ],
      "description": [
        "A living <a href='#entity'>entity</a>, i.e. a mob or <a href='#player'>player</a>, not inanimate entities like <a href='#projectile'>projectiles</a> or dropped items."
      ],
      "requirements": null,
      "examples": [
        "spawn 5 powered creepers",
        "shoot a zombie from the creeper"
      ],
      "properties": []
    },
    {
      "id": "entity",
      "name": "Entity",
      "since": "1.0",
      "patterns": [
        "player, op, wolf, tamed ocelot, powered creeper, zombie, unsaddled pig, fireball, arrow, dropped item, item frame, etc."
      ],
      "description": [
        "An entity is something in a <a href='#world'>world</a> that's not a <a href='#block'>block</a>, e.g. a <a href='#player'>player</a>, a skeleton, or a zombie, but also <a href='#projectile'>projectiles</a> like arrows, fireballs or thrown potions, or special entities like dropped items, falling blocks or paintings."
      ],
      "requirements": null,
      "examples": [
        "entity is a zombie or creeper",
        "player is an op",
        "projectile is an arrow",
        "shoot a fireball from the player"
      ],
      "properties": [
        {
          "id": "display-name",
          "name": "display name",
          "description": "The entity's custom name, if it has one, as text. Can be set or reset.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprCustomName",
              "name": "Display Name"
            }
          ]
        },
        {
          "id": "name",
          "name": "name",
          "description": "The entity's name, if it has one, as text.Note that the regular name cannot be changed, meaning the entity's custom (display) name will be changed instead.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "offlineplayer",
      "name": "Offline Player",
      "since": "2.0 beta 8",
      "patterns": [
        "Parsing an offline player as a player (online) will return nothing (none), for that case you would need to parse as offlineplayer which only returns nothing (none) if player doesn't exist in Minecraft databases (name not taken) otherwise it will return the player regardless of their online status."
      ],
      "description": [
        "A player that is possibly offline. See <a href='#player'>player</a> for more information. Please note that while all effects and conditions that require a player can be used with an offline player as well, they will not work if the player is not actually online."
      ],
      "requirements": null,
      "examples": [
        "set {_p} to \"Notch\" parsed as an offlineplayer # returns Notch even if they're offline"
      ],
      "properties": [
        {
          "id": "name",
          "name": "name",
          "description": "The name of an offline player, as text. Cannot be changed.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "bossbar",
      "name": "BossBar",
      "since": "2.16",
      "patterns": null,
      "description": [
        "Represents a boss bar.\nA boss bar is displayed at the top of a players screen and can have its title, progress, style, color, and viewers changed.\n"
      ],
      "requirements": null,
      "examples": null,
      "properties": [
        {
          "id": "title",
          "name": "title",
          "description": "The title of a boss bar.\nNote that due to Bukkit limitations formatting like shadow, sprites or fonts will not work.\n",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprTitle",
              "name": "Title"
            }
          ]
        },
        {
          "id": "viewers",
          "name": "viewers",
          "description": "The viewers of a boss bar.\nIf you remove a player from viewers of a boss bar they will no longer see the bossbar or be affected by its flags.\n",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprViewers",
              "name": "Viewers"
            }
          ]
        },
        {
          "id": "progress",
          "name": "progress",
          "description": "The progress of a boss bar. Ranges from 0 to 1.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprProgress",
              "name": "Progress"
            }
          ]
        },
        {
          "id": "style",
          "name": "style",
          "description": "The style of a boss bar.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprStyle",
              "name": "Style"
            }
          ]
        },
        {
          "id": "name",
          "name": "name",
          "description": "The name of a boss bar.\nNote that due to Bukkit limitations formatting like shadow, sprites or fonts will not work.\n",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "particle",
      "name": "Particle",
      "since": "2.14",
      "patterns": [
        "crimson spore particle",
        "a glow particle",
        "a orange poplar leaves particle",
        "sweep attack particle",
        "sculk soul particle",
        "a gust particle",
        "a sweep attack particle",
        "noxious gas clouds",
        "enchanting particle",
        "damage indicator particle",
        "a dripping honey particle",
        "bubble pop particle",
        "campfire cosy smoke particle",
        "dust plume particles",
        "splash particle",
        "dripstone dripping lava particle",
        "warped spore particle",
        "sculk charge pop particle",
        "a pause mob growth particle",
        "an enchanted hit particle",
        "enchanted hit particle",
        "a warped spore particle",
        "infested particles",
        "firefly particle",
        "explosion particles",
        "pause mob growth particles",
        "a vault connection particle",
        "a sulfur cube jump particle",
        "small gust particles",
        "enchanting particles",
        "ominous spawning particles",
        "white smoke particle",
        "an explosion emitter particle",
        "sulfur cube goo particle",
        "composter particle",
        "ominous trial spawner detection particle",
        "a raid omen particle",
        "a dripstone dripping lava particle",
        "underwater particles",
        "a nausea gas particle",
        "a portal particle",
        "a lava particle",
        "a downward current particle",
        "poof particle",
        "damage indicator particles",
        "an explosion particle",
        "a yellow poplar leaves particle",
        "nausea gas particle",
        "falling honey particle",
        "a falling water particle",
        "crimson spore particles",
        "pale oak leaves particles",
        "a white ash particle",
        "bubble column particles",
        "smoke particle",
        "dolphin particle",
        "nausea gas cloud particle",
        "falling dripstone water particle",
        "a trial omen particle",
        "a falling dripstone lava particle",
        "a dripping obsidian tear particle",
        "trial spawner detection particle",
        "a sculk soul particle",
        "a bubble pop particle",
        "a falling honey particle",
        "falling dripstone water particles",
        "a falling lava particle",
        "explosion particle",
        "a splash particle",
        "a falling dripstone water particle",
        "snowball item particles",
        "a happy villager particle",
        "note particle",
        "a large smoke particle",
        "a crit particle",
        "fishing particles",
        "portal particle",
        "heart particles",
        "noxious gas particles",
        "a reset mob growth particle",
        "a dripping water particle",
        "an end rod particle",
        "lava particles",
        "a ominous trial spawner detection particle",
        "spore blossom air particle",
        "nautilus particle",
        "a landing lava particle",
        "falling water particles",
        "a noxious gas particle",
        "campfire signal smoke particles",
        "sulfur cube goo particles",
        "happy villager particle",
        "wax on particles",
        "sonic boom particles",
        "a trial spawner detection particle",
        "landing honey particle",
        "trial omen particle",
        "rain particle",
        "small gust emitter particles",
        "scrape particle",
        "dripstone dripping water particles",
        "an enchanting particle",
        "falling obsidian tear particles",
        "spore blossom air particles",
        "dripstone dripping lava particles",
        "firefly particles",
        "cloud particles",
        "an snowball item particle",
        "a spit particle",
        "landing obsidian tear particle",
        "yellow poplar leaves particles",
        "an infested particle",
        "portal particles",
        "a soul particle",
        "raid omen particles",
        "a sulfur cube jumping particle",
        "witch particles",
        "egg crack particles",
        "glow squid ink particles",
        "red poplar leaves particles",
        "rain particles",
        "fishing particle",
        "enchanted hit particles",
        "a falling nectar particle",
        "a dripping lava particle",
        "a pale oak leaves particle",
        "a rain particle",
        "egg crack particle",
        "reset mob growth particle",
        "pale oak leaves particle",
        "slime item particles",
        "a landing honey particle",
        "splash particles",
        "falling honey particles",
        "dripping honey particle",
        "noxious gas cloud",
        "a copper flame particle",
        "copper flame particle",
        "flame particle",
        "cobweb item particles",
        "landing obsidian tear particles",
        "white smoke particles",
        "large gust emitter particles",
        "heart particle",
        "spit particles",
        "dolphin particles",
        "falling dripstone lava particles",
        "trial omen particles",
        "sulfur bubble column particle",
        "bubble column particle",
        "explosion emitter particle",
        "firework particle",
        "landing honey particles",
        "a smoke particle",
        "mycelium particles",
        "sulfur cube jump particles",
        "a cherry leaves particle",
        "end rod particles",
        "ominous trial spawner detection particles",
        "an electric spark particle",
        "sweep attack particles",
        "an slime item particle",
        "warped spore particles",
        "an angry villager particle",
        "small flame particle",
        "a sulfur cube goo particle",
        "end rod particle",
        "a wax on particle",
        "firework particles",
        "elder guardian particle",
        "landing lava particle",
        "glow particle",
        "mycelium particle",
        "trial spawner detection particles",
        "gust particle",
        "falling spore blossom particle",
        "cherry leaves particles",
        "a crimson spore particle",
        "wax off particles",
        "sulfur bubble column particles",
        "lava particle",
        "sulfur cube jumping particles",
        "poof particles",
        "dripping obsidian tear particles",
        "dripping water particle",
        "a falling obsidian tear particle",
        "a nautilus particle",
        "a damage indicator particle",
        "dripstone dripping water particle",
        "white ash particles",
        "campfire cosy smoke particles",
        "reverse portal particles",
        "elder guardian particles",
        "smoke particles",
        "nausea gas cloud particles",
        "large smoke particle",
        "small flame particles",
        "dripping honey particles",
        "an ash particle",
        "pause mob growth particle",
        "composter particles",
        "a bubble particle",
        "snowflake particle",
        "infested particle",
        "angry villager particle",
        "an elder guardian particle",
        "a small gust particle",
        "crit particle",
        "spit particle",
        "nautilus particles",
        "falling obsidian tear particle",
        "cherry leaves particle",
        "sulfur bubbles particle",
        "a campfire signal smoke particle",
        "downward current particle",
        "glow particles",
        "vault connection particle",
        "totem of undying particles",
        "sneeze particles",
        "small gust particle",
        "ominous spawning particle",
        "dripping water particles",
        "a dripstone dripping water particle",
        "a wax off particle",
        "sulfur cube jump particle",
        "sculk charge pop particles",
        "large gust emitter particle",
        "underwater particle",
        "reset mob growth particles",
        "falling nectar particle",
        "a sonic boom particle",
        "an cobweb item particle",
        "a sneeze particle",
        "campfire signal smoke particle",
        "landing lava particles",
        "cloud particle",
        "yellow poplar leaves particle",
        "happy villager particles",
        "a spore blossom air particle",
        "orange poplar leaves particle",
        "witch particle",
        "ash particles",
        "a scrape particle",
        "ash particle",
        "a landing obsidian tear particle",
        "wax on particle",
        "cobweb item particle",
        "small gust emitter particle",
        "bubble pop particles",
        "copper flame particles",
        "falling lava particles",
        "a sculk charge pop particle",
        "noxious gas particle",
        "sulfur cube jumping particle",
        "a poof particle",
        "scrape particles",
        "a snowflake particle",
        "a falling spore blossom particle",
        "a dust plume particle",
        "a nausea gas cloud particle",
        "a heart particle",
        "a small gust emitter particle",
        "dust plume particle",
        "a underwater particle",
        "bubble particle",
        "angry villager particles",
        "snowball item particle",
        "red poplar leaves particle",
        "sonic boom particle",
        "falling dripstone lava particle",
        "a dolphin particle",
        "nausea gas particles",
        "dripping lava particles",
        "wax off particle",
        "falling nectar particles",
        "a flame particle",
        "dripping obsidian tear particle",
        "electric spark particle",
        "a sulfur bubbles particle",
        "electric spark particles",
        "bubble particles",
        "orange poplar leaves particles",
        "a large gust emitter particle",
        "a firework particle",
        "falling spore blossom particles",
        "soul particles",
        "a white smoke particle",
        "dripping lava particle",
        "a note particle",
        "a glow squid ink particle",
        "a red poplar leaves particle",
        "note particles",
        "raid omen particle",
        "flame particles",
        "explosion emitter particles",
        "downward current particles",
        "soul fire flame particle",
        "an ominous spawning particle",
        "large smoke particles",
        "glow squid ink particle",
        "sulfur bubbles particles",
        "reverse portal particle",
        "crit particles",
        "falling lava particle",
        "a noxious gas cloud",
        "a soul fire flame particle",
        "a bubble column particle",
        "soul fire flame particles",
        "a fishing particle",
        "an egg crack particle",
        "sculk soul particles",
        "squid ink particle",
        "a squid ink particle",
        "totem of undying particle",
        "a small flame particle",
        "falling water particle",
        "sneeze particle",
        "white ash particle",
        "a firefly particle",
        "a cloud particle",
        "a reverse portal particle",
        "slime item particle",
        "squid ink particles",
        "a sulfur bubble column particle",
        "vault connection particles",
        "a totem of undying particle",
        "soul particle",
        "a composter particle",
        "a mycelium particle",
        "a witch particle",
        "a campfire cosy smoke particle",
        "snowflake particles",
        "gust particles"
      ],
      "description": [
        "Various particles."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "region",
      "name": "Region",
      "since": "2.1",
      "patterns": [
        "\"region name\""
      ],
      "description": [
        "A region of a regions plugin. Skript currently supports WorldGuard, Factions, GriefPrevention and PreciousStones.",
        "Please note that some regions plugins do not have named regions, some use numerical ids to identify regions, and some may have regions with the same name in different worlds, thus using regions like \"region name\" in scripts may or may not work."
      ],
      "requirements": [
        "Supported regions plugin"
      ],
      "examples": [
        ""
      ],
      "properties": []
    },
    {
      "id": "number",
      "name": "Number",
      "since": "1.0",
      "patterns": [
        "[-]###[.###] [e[+|-]###] [[in ](rad[ian][s]|deg[ree][s])]"
      ],
      "description": [
        "A number, e.g. 2.5, 3, -9812454, 30 degrees or 3.14 radians.",
        "Please note that many expressions only need integers, i.e. will discard any fractional parts of any numbers without producing an error.",
        "Radians will be converted to degrees."
      ],
      "requirements": null,
      "examples": [
        "set the player's health to 5.5",
        "set {_temp} to 2*{_temp} - 2.5",
        "set {_angle} to 3.14 in radians # will be converted to degrees"
      ],
      "properties": []
    },
    {
      "id": "commandsender",
      "name": "Command Sender",
      "since": "1.0",
      "patterns": [
        "use <a href='#LitConsole'>the console</a> for the console",
        "see <a href='#player'>player</a> for players."
      ],
      "description": [
        "A player or the console."
      ],
      "requirements": null,
      "examples": [
        "command /push [<player>]:",
        "\ttrigger:",
        "\t\tif arg-1 is not set:",
        "\t\t\tif command sender is console:",
        "\t\t\t\tsend \"You can't push yourself as a console :\\\" to sender",
        "\t\t\t\tstop",
        "\t\t\tpush sender upwards with force 2",
        "\t\t\tsend \"Yay!\"",
        "\t\telse:",
        "\t\t\tpush arg-1 upwards with force 2",
        "\t\t\tsend \"Yay!\" to sender and arg-1"
      ],
      "properties": [
        {
          "id": "name",
          "name": "name",
          "description": "A command sender's name, as text. Cannot be changed.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "metadataholder",
      "name": "Metadata Holder",
      "since": "2.2-dev36",
      "patterns": null,
      "description": [
        "Something that can hold metadata (e.g. an entity or block)"
      ],
      "requirements": null,
      "examples": [
        "set metadata value \"super cool\" of player to true"
      ],
      "properties": []
    },
    {
      "id": "itemtype",
      "name": "Item Type",
      "since": "1.0",
      "patterns": [
        "[<number> [of]] [all/every] <alias> [of <enchantment> [<level>] [,/and <more enchantments...>]]"
      ],
      "description": [
        "An item type is an alias that can result in different items when added to an inventory, and unlike <a href='#itemstack'>items</a> they are well suited for checking whether an inventory contains a certain item or whether a certain item is of a certain type.",
        "An item type can also have one or more <a href='#enchantmenttype'>enchantments</a> with or without a specific level defined, and can optionally start with 'all' or 'every' to make this item type represent <i>all</i> types that the alias represents, including data ranges."
      ],
      "requirements": null,
      "examples": [
        "give 4 torches to the player",
        "add oak slab to the inventory of the block",
        "player's tool is a diamond sword of sharpness",
        "block is dirt or farmland"
      ],
      "properties": [
        {
          "id": "amount",
          "name": "amount",
          "description": "The amount of items in the stack this type represents. E.g. 5 for '5 stone swords'. Can be set.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprAmount",
              "name": "Amount"
            }
          ]
        },
        {
          "id": "display-name",
          "name": "display name",
          "description": "An item type's custom name, if set. Can be set or reset.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprCustomName",
              "name": "Display Name"
            }
          ]
        },
        {
          "id": "title",
          "name": "title",
          "description": "An item's title. This currently only applies to signed books.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprTitle",
              "name": "Title"
            }
          ]
        },
        {
          "id": "name",
          "name": "name",
          "description": "An item type's custom name, if set. Can be set or reset.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "nameable",
      "name": "Nameable",
      "since": "2.13",
      "patterns": null,
      "description": [
        "A variety of Bukkit types that can have names, such as entities and some blocks."
      ],
      "requirements": null,
      "examples": null,
      "properties": [
        {
          "id": "display-name",
          "name": "display name",
          "description": "The custom name of the nameable, if it has one, as text. Can be set or reset.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprCustomName",
              "name": "Display Name"
            }
          ]
        },
        {
          "id": "name",
          "name": "name",
          "description": "The name of the nameable, if it has one, as text. Use 'display name' if you need a changeable name.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "audience",
      "name": "Audience",
      "since": "2.15",
      "patterns": null,
      "description": [
        "An audience is a receiver of media, such as individual players, the console, or groups of players (such as those on a team or in a world)."
      ],
      "requirements": null,
      "examples": [
        "send \"Hello world!\" to the player",
        "send action bar \"ALERT! A horde of zombies has overrun the central village.\" to the world"
      ],
      "properties": []
    },
    {
      "id": "entitydata",
      "name": "Entity Type",
      "since": "1.3",
      "patterns": null,
      "description": [
        "The type of an <a href='#entity'>entity</a>, e.g. player, wolf, powered creeper, etc."
      ],
      "requirements": null,
      "examples": [
        "victim is a cow",
        "spawn a creeper"
      ],
      "properties": []
    },
    {
      "id": "entitytype",
      "name": "Entity Type with Amount",
      "since": "1.3",
      "patterns": [
        "<number> <entity type>"
      ],
      "description": [
        "An <a href='#entitydata'>entity type</a> with an amount, e.g. '2 zombies'."
      ],
      "requirements": null,
      "examples": [
        "spawn 5 creepers behind the player"
      ],
      "properties": []
    },
    {
      "id": "classinfo",
      "name": "Type",
      "since": "2.0",
      "patterns": [
        "See the type name patterns of all types - including this one"
      ],
      "description": [
        "Represents a type, e.g. number, object, item type, location, block, world, entity type, etc.",
        "This is mostly used for expressions like 'event-<type>', '<type>-argument', 'loop-<type>', etc., e.g. event-world, number-argument and loop-player."
      ],
      "requirements": null,
      "examples": [
        "{variable} is a number # check whether the variable contains a number, e.g. -1 or 5.5",
        "{variable} is a type # check whether the variable contains a type, e.g. number or player",
        "{variable} is an object # will always succeed if the variable is set as everything is an object, even types.",
        "disable PvP in the event-world",
        "kill the loop-entity"
      ],
      "properties": []
    },
    {
      "id": "named",
      "name": "Any Named Thing",
      "since": "2.10",
      "patterns": null,
      "description": [
        "Something that has a name (e.g. an item)."
      ],
      "requirements": null,
      "examples": [
        "{thing}'s name"
      ],
      "properties": [
        {
          "id": "name",
          "name": "name",
          "description": "The name of the thing, as text. Can be set if supported.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprName",
              "name": "Name"
            }
          ]
        }
      ]
    },
    {
      "id": "numbered",
      "name": "Any Numbered/Sized Thing",
      "since": "2.10",
      "patterns": null,
      "description": [
        "Something that has an amount or size."
      ],
      "requirements": null,
      "examples": [
        "the size of {thing}",
        "the amount of {thing}"
      ],
      "properties": [
        {
          "id": "amount",
          "name": "amount",
          "description": "The amount of a thing",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprAmount",
              "name": "Amount"
            }
          ]
        },
        {
          "id": "number",
          "name": "number",
          "description": "The number of a thing",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprNumber",
              "name": "Number Of"
            }
          ]
        },
        {
          "id": "empty",
          "name": "empty",
          "description": "Whether this thing is empty, i.e. has an amount of 0.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropCondIsEmpty",
              "name": "Is Empty"
            }
          ]
        },
        {
          "id": "size",
          "name": "size",
          "description": "The size of a thing",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprSize",
              "name": "Size"
            }
          ]
        }
      ]
    },
    {
      "id": "blockdata",
      "name": "Block Data",
      "since": "2.5",
      "patterns": null,
      "description": [
        "Block data is the detailed information about a block, referred to in Minecraft as BlockStates, allowing for the manipulation of different aspects of the block, including shape, waterlogging, direction the block is facing, and so much more. Information regarding each block's optional data can be found on Minecraft's Wiki. Find the block you're looking for and scroll down to 'Block States'. Different states must be separated by a semicolon (see examples). The 'minecraft:' namespace is optional, as well as are underscores."
      ],
      "requirements": null,
      "examples": [
        "set block at player to campfire[lit=false]",
        "set target block of player to oak stairs[facing=north;waterlogged=true]",
        "set block at player to grass_block[snowy=true]",
        "set loop-block to minecraft:chest[facing=north]",
        "set block above player to oak_log[axis=y]",
        "set target block of player to minecraft:oak_leaves[distance=2;persistent=false]"
      ],
      "properties": []
    },
    {
      "id": "itemstack",
      "name": "Item",
      "since": "1.0",
      "patterns": [
        "<code>[<number> [of]] <alias> [of <enchantment> <level>]</code>, Where <alias> must be an alias that represents exactly one item (i.e cannot be a general alias like 'sword' or 'plant')"
      ],
      "description": [
        "An item, e.g. a stack of torches, a furnace, or a wooden sword of sharpness 2. Unlike <a href='#itemtype'>item type</a> an item can only represent exactly one item (e.g. an upside-down cobblestone stair facing west), while an item type can represent a whole range of items (e.g. any cobble stone stairs regardless of direction).",
        "You don't usually need this type except when you want to make a command that only accepts an exact item.",
        "Please note that currently 'material' is exactly the same as 'item', i.e. can have an amount & enchantments."
      ],
      "requirements": null,
      "examples": [
        "set {_item} to type of the targeted block",
        "{_item} is a torch"
      ],
      "properties": [
        {
          "id": "amount",
          "name": "amount",
          "description": "The number of items in this stack. Can be set.",
          "provider": "Skript",
          "relatedSyntax": [
            {
              "id": "PropExprAmount",
              "name": "Amount"
            }
          ]
        }
      ]
    },
    {
      "id": "equippablecomponent",
      "name": "Equippable Components",
      "since": "2.13",
      "patterns": null,
      "description": [
        "Represents an equippable component used for items.\nNOTE: Equippable component elements are experimental. Thus, they are subject to change and may not work as intended.\n"
      ],
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "examples": null,
      "properties": []
    },
    {
      "id": "damagecause",
      "name": "Damage Cause",
      "since": "2.0",
      "patterns": [
        "sweep attack, thorns, the void, magma, a lightning, drowning, dragonfire, an attack, drown, an entity attack, melt, freeze, falling block, contact, fire, campfire, an entity explosion, lightning, a fall, entity explosion, void, a lightning strike, suffocation, suicide, wither effect, a plugin, lightning strike, entity attack, a potion, a wither, sweeping, melting, a falling block, unknown, starvation, lava, fall, hot floor, attack, a block explosion, dryout, burn, hitting wall while flying, potion, world border, flying into a wall, cramming, poison, sonic boom, suffocate, custom, kill, killed, a fire, burning, a projectile, plugin, wither potion effect, block explosion, projectile, wither, dragon's breath"
      ],
      "description": [
        "The cause/type of a <a href='#damage'>damage event</a>, e.g. lava, fall, fire, drowning, explosion, poison, etc.",
        "Please note that support for this type is very rudimentary, e.g. lava, fire and burning, as well as projectile and attack are considered different types."
      ],
      "requirements": null,
      "examples": [
        ""
      ],
      "properties": []
    },
    {
      "id": "itemcomponent",
      "name": "Item Component",
      "since": "2.13",
      "patterns": null,
      "description": [
        "Represents an item component for items. i.e. equippable components."
      ],
      "requirements": [
        "Minecraft 1.21.2+"
      ],
      "examples": null,
      "properties": []
    },
    {
      "id": "biome",
      "name": "Biome",
      "since": "1.4.4",
      "patterns": [
        "badlands, badlands forest, bamboo jungle, basalt deltas, beach, birch forest, black forest, cherry grove, cold beach, cold ocean, cold taiga, crimson forest, dappled forest, dark forest, deep cold ocean, deep dark, deep frozen ocean, deep lukewarm ocean, deep ocean, desert, dripstone caves, end barrens, end highlands, end midlands, eroded badlands, eroded mesa, flower forest, forest, frozen ocean, frozen peaks, frozen river, giant spruce taiga, giant tree taiga, gravelly mountains, grove, hell, ice plains spikes, ice plains with spikes, ice spikes, jagged peaks, jungle, jungle edge, lukewarm ocean, lush caves, mangrove swamp, marsh, meadow, mesa, mesa forest, mountains, mushroom fields, mushroom island, nether, nether wastes, ocean, old growth birch forest, old growth pine taiga, old growth spruce taiga, pale garden, plains, river, roofed forest, savanna, savanna plateau, sea, shattered savanna, sky, small end islands, snowy beach, snowy plains, snowy slopes, snowy taiga, snowy tundra, soul sand valley, sparse jungle, spiked ice plains, stone shore, stony peaks, stony shore, sulfur caves, sunflower plains, swamp, swampland, taiga, tall birch forest, the end, the void, void, warm ocean, warped forest, windswept forest, windswept gravelly hills, windswept hills, windswept savanna, wooded badlands, wooded mesa, wooded mountains"
      ],
      "description": [
        "All possible biomes Minecraft uses to generate a world.",
        "NOTE: Minecraft namespaces are supported, ex: 'minecraft:basalt_deltas'."
      ],
      "requirements": null,
      "examples": [
        "biome at the player is desert"
      ],
      "properties": []
    },
    {
      "id": "villagertype",
      "name": "Villager Type",
      "since": "2.10",
      "patterns": [
        "desert, jungle, plains, savanna, snow, swamp, taiga"
      ],
      "description": [
        "Represents the different types of villagers. These are usually the biomes a villager can be from."
      ],
      "requirements": null,
      "examples": null,
      "properties": []
    },
    {
      "id": "object",
      "name": "Object",
      "since": "1.0",
      "patterns": null,
      "description": [
        "The supertype of all types, meaning that if %object% is used in e.g. a condition it will accept all kinds of expressions."
      ],
      "requirements": null,
      "examples": [
        ""
      ],
      "properties": []
    }
  ],
  "functions": [
    {
      "id": "floor",
      "name": "floor",
      "since": "2.2",
      "description": [
        "Rounds a number down, i.e. returns the closest integer smaller than or equal to the argument."
      ],
      "examples": [
        "floor(2.34) = 2",
        "floor(2) = 2",
        "floor(2.99) = 2"
      ],
      "returns": {
        "id": "long",
        "name": ""
      },
      "patterns": [
        "floor(n: number)"
      ]
    },
    {
      "id": "uuid",
      "name": "uuid",
      "since": "2.11",
      "description": [
        "Returns a UUID from the given string. The string must be in the format of a UUID."
      ],
      "examples": [
        "uuid(\"069a79f4-44e9-4726-a5be-fca90e38aaf5\")"
      ],
      "returns": {
        "id": "uuid",
        "name": "UUID"
      },
      "patterns": [
        "uuid(uuid: string)"
      ]
    },
    {
      "id": "factorial",
      "name": "factorial",
      "since": "2.11",
      "description": [
        "Get the factorial of a number.",
        "Getting the factorial of any number above 21 will return an approximation, not an exact value.",
        "Any number after 170 will always return Infinity.",
        "Should not be used to calculate permutations or combinations manually."
      ],
      "examples": [
        "factorial(0) = 1",
        "factorial(3) = 3*2*1 = 6",
        "factorial(5) = 5*4*3*2*1 = 120",
        "factorial(171) = Infinity"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "factorial(number: number)"
      ]
    },
    {
      "id": "concat",
      "name": "concat",
      "since": "2.9.0",
      "description": [
        "Joins the provided texts (and other things) into a single text."
      ],
      "examples": [
        "concat(\"hello \", \"there\") # hello there",
        "concat(\"foo \", 100, \" bar\") # foo 100 bar"
      ],
      "returns": {
        "id": "string",
        "name": "Text"
      },
      "patterns": [
        "concat(texts: objects)"
      ]
    },
    {
      "id": "asin",
      "name": "asin",
      "since": "2.2",
      "description": [
        "The inverse of the <a href='#sin'>sine</a>, also called arcsin. Returns result in degrees, not radians. Only returns values from -90 to 90."
      ],
      "examples": [
        "asin(0) = 0",
        "asin(1) = 90",
        "asin(0.5) = 30"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "asin(n: number)"
      ]
    },
    {
      "id": "tan",
      "name": "tan",
      "since": "2.2",
      "description": [
        "The tangent function. This is basically <code><a href='#sin'>sin</a>(arg)/<a href='#cos'>cos</a>(arg)</code>. Uses degrees, not radians."
      ],
      "examples": [
        "tan(0) = 0",
        "tan(45) = 1",
        "tan(89.99) = 5729.5779"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "tan(n: number)"
      ]
    },
    {
      "id": "isNaN",
      "name": "isNaN",
      "since": "2.8.0",
      "description": [
        "Returns true if the input is NaN (not a number)."
      ],
      "examples": [
        "isNaN(0) # false",
        "isNaN(0/0) # true",
        "isNaN(sqrt(-1)) # true"
      ],
      "returns": {
        "id": "boolean",
        "name": "Boolean"
      },
      "patterns": [
        "isNaN(n: number)"
      ]
    },
    {
      "id": "world",
      "name": "world",
      "since": "2.2",
      "description": [
        "Gets a world from its name."
      ],
      "examples": [
        "set {_nether} to world(\"%{_world}%_nether\")"
      ],
      "returns": {
        "id": "world",
        "name": "World"
      },
      "patterns": [
        "world(name: string)"
      ]
    },
    {
      "id": "permutations",
      "name": "permutations",
      "since": "2.11",
      "description": [
        "Get the number of possible ordered arrangements from 1 to 'options' with each arrangement having a size equal to 'selected'",
        "For example, permutations with 3 options and an arrangement size of 1, returns 3: (1), (2), (3)",
        "Permutations with 3 options and an arrangement size of 2 returns 6: (1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)",
        "Note that the bigger the 'options' and lower the 'selected' may result in approximations or even infinity values.",
        "Permutations differ from combinations in that permutations account for the arrangement of elements within the set, whereas combinations focus on unique sets and ignore the order of elements.",
        "Example: (1, 2) and (2, 1) are two distinct permutations because the positions of '1' and '2' are different, but they represent a single combination since order doesn't matter in combinations."
      ],
      "examples": [
        "permutations(10, 2) = 90",
        "permutations(10, 4) = 5040",
        "permutations(size of {some list::*}, 2)"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "permutations(options: number, selected: number)"
      ]
    },
    {
      "id": "mod",
      "name": "mod",
      "since": "2.2",
      "description": [
        "Returns the modulo of the given arguments, i.e. the remainder of the division <code>d/m</code>, where d and m are the arguments of this function.",
        "The returned value is always positive. Returns NaN (not a number) if the second argument is zero."
      ],
      "examples": [
        "mod(3, 2) = 1",
        "mod(256436, 100) = 36",
        "mod(-1, 10) = 9"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "mod(d: number, m: number)"
      ]
    },
    {
      "id": "log",
      "name": "log",
      "since": "2.2",
      "description": [
        "A logarithm, with base 10 if none is specified. This is the inverse operation to exponentiation (for positive bases only), i.e. <code>log(base ^ exponent, base) = exponent</code> for any positive number 'base' and any number 'exponent'.",
        "Another useful equation is <code>base ^ log(a, base) = a</code> for any numbers 'base' and 'a'.",
        "Please note that due to how numbers are represented in computers, these equations do not hold for all numbers, as the computed values may slightly differ from the correct value.",
        "Returns NaN (not a number) if any of the arguments are negative."
      ],
      "examples": [
        "log(100) = 2 # 10^2 = 100",
        "log(16, 2) = 4 # 2^4 = 16"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "log(n: number, base: number = [[integer:10]])"
      ]
    },
    {
      "id": "location",
      "name": "location",
      "since": "2.2",
      "description": [
        "Creates a location from a world and 3 coordinates, with an optional yaw and pitch.",
        "If for whatever reason the world is not found, it will fallback to the server's main world."
      ],
      "examples": [
        "# TELEPORTING\nteleport player to location(1,1,1, world \"world\")\nteleport player to location(1,1,1, world \"world\", 100, 0)\nteleport player to location(1,1,1, world \"world\", yaw of player, pitch of player)\nteleport player to location(1,1,1, world of player)\nteleport player to location(1,1,1, world(\"world\"))\nteleport player to location({_x}, {_y}, {_z}, {_w}, {_yaw}, {_pitch})\n\n# SETTING BLOCKS\nset block at location(1,1,1, world \"world\") to stone\nset block at location(1,1,1, world \"world\", 100, 0) to stone\nset block at location(1,1,1, world of player) to stone\nset block at location(1,1,1, world(\"world\")) to stone\nset block at location({_x}, {_y}, {_z}, {_w}) to stone\n\n# USING VARIABLES\nset {_l1} to location(1,1,1)\nset {_l2} to location(10,10,10)\nset blocks within {_l1} and {_l2} to stone\nif player is within {_l1} and {_l2}:\n\n# OTHER\nkill all entities in radius 50 around location(1,65,1, world \"world\")\ndelete all entities in radius 25 around location(50,50,50, world \"world_nether\")\nignite all entities in radius 25 around location(1,1,1, world of player)\n"
      ],
      "returns": {
        "id": "location",
        "name": "Location"
      },
      "patterns": [
        "location(x: number, y: number, z: number, world: optional world, yaw: optional number, pitch: optional number)"
      ]
    },
    {
      "id": "combinations",
      "name": "combinations",
      "since": "2.11",
      "description": [
        "Get the number of possible sets from 1 to 'options' with each set having a size equal to 'selected'",
        "For example, a combination with 3 options and a set size of 1, returns 3: (1), (2), (3)",
        "A combination of 3 options with a set size of 2 returns 3: (1, 2), (1, 3), (2, 3)",
        "Note that the bigger the 'options' and lower the 'selected' may result in approximations or even infinity values.",
        "Combinations differ from permutations in that combinations focus on unique sets, ignoring the order of elements, whereas permutations account for the arrangement of elements within the set.",
        "Example: (1, 2) and (2, 1) represent a single combination since order doesn't matter in combinations, but they are two distinct permutations because permutations consider the order."
      ],
      "examples": [
        "combinations(10, 8) = 45",
        "combinations(5, 3) = 10",
        "combinations(size of {some list::*}, 2)"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "combinations(options: number, selected: number)"
      ]
    },
    {
      "id": "axisAngle",
      "name": "axisAngle",
      "since": "2.10",
      "description": [
        "Returns a quaternion from the given angle (in degrees) and axis (as a vector). This represents a rotation around the given axis by the given angle."
      ],
      "examples": [
        "axisangle(90, (vector from player's facing))"
      ],
      "returns": {
        "id": "quaternion",
        "name": "Quaternion"
      },
      "patterns": [
        "axisAngle(angle: number, axis: vector)"
      ]
    },
    {
      "id": "toBase",
      "name": "toBase",
      "since": "2.14",
      "description": [
        "Turns a number in a string using a specific base (decimal, hexadecimal, octal).\nFor example, converting 32 to hexadecimal (base 16) would be 'toBase(32, 16)', which would return \"20\".\nYou can use any base between 2 and 36.\n"
      ],
      "examples": [
        "send \"Decode this binary number for a prize! %toBase({_guess}, 2)%\""
      ],
      "returns": {
        "id": "string",
        "name": "Text"
      },
      "patterns": [
        "toBase(n: objects, base: integer between 2 and 36)"
      ]
    },
    {
      "id": "ceiling",
      "name": "ceiling",
      "since": "2.2",
      "description": [
        "Alias of <a href='#ceil'>ceil</a>."
      ],
      "examples": [
        "ceiling(2.34) = 3",
        "ceiling(2) = 2",
        "ceiling(2.99) = 3"
      ],
      "returns": {
        "id": "long",
        "name": ""
      },
      "patterns": [
        "ceiling(n: number)"
      ]
    },
    {
      "id": "product",
      "name": "product",
      "since": "2.2",
      "description": [
        "Calculates the product of a list of numbers."
      ],
      "examples": [
        "product(1) = 1",
        "product(2, 3, 4) = 24",
        "product({some list variable::*})",
        "product(2, {_v::*}, and the player's y-coordinate)"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "product(ns: numbers)"
      ]
    },
    {
      "id": "sin",
      "name": "sin",
      "since": "2.2",
      "description": [
        "The sine function. It starts at 0° with a value of 0, goes to 1 at 90°, back to 0 at 180°, to -1 at 270° and then repeats every 360°. Uses degrees, not radians."
      ],
      "examples": [
        "sin(90) = 1",
        "sin(60) = 0.866"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "sin(n: number)"
      ]
    },
    {
      "id": "min",
      "name": "min",
      "since": "2.2",
      "description": [
        "Returns the minimum number from a list of numbers."
      ],
      "examples": [
        "min(1) = 1",
        "min(1, 2, 3, 4) = 1",
        "min({some list variable::*})"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "min(ns: numbers)"
      ]
    },
    {
      "id": "abs",
      "name": "abs",
      "since": "2.2",
      "description": [
        "Returns the absolute value of the argument, i.e. makes the argument positive."
      ],
      "examples": [
        "abs(3) = 3",
        "abs(-2) = 2"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "abs(n: number)"
      ]
    },
    {
      "id": "sum",
      "name": "sum",
      "since": "2.2",
      "description": [
        "Sums a list of numbers."
      ],
      "examples": [
        "sum(1) = 1",
        "sum(2, 3, 4) = 9",
        "sum({some list variable::*})",
        "sum(2, {_v::*}, and the player's y-coordinate)"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "sum(ns: numbers)"
      ]
    },
    {
      "id": "entity",
      "name": "entity",
      "since": "2.16",
      "description": [
        "Returns an entity from a given UUID.",
        "If the entity is unloaded or an offline player, the function will return nothing."
      ],
      "examples": [
        "set {_entity} to entity({uuid})",
        "kill entity({uuid})",
        "set {_type} to type of entity({uuid})"
      ],
      "returns": {
        "id": "entity",
        "name": "Entity"
      },
      "patterns": [
        "entity(uuid: uuid)"
      ]
    },
    {
      "id": "root",
      "name": "root",
      "since": "2.11",
      "description": [
        "Calculates the <i>n</i>th root of a number."
      ],
      "examples": [
        "root(2, 4) = 2 # same as sqrt(4)",
        "root(4, 16) = 2",
        "root(-4, 16) = 0.5 # same as 16^(-1/4)"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "root(n: number, number: number)"
      ]
    },
    {
      "id": "median",
      "name": "median",
      "since": "2.11",
      "description": [
        "Get the middle value of a sorted list of numbers. If the list has an even number of values, the median is the average of the two middle numbers.",
        "You cannot get the median of a set of numbers that includes NaN."
      ],
      "examples": [
        "median(1, 2, 3, 4, 5) = 3",
        "median(1, 2, 3, 4, 5, 6) = 3.5",
        "median(0, 123, 456, 789) = 289.5"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "median(numbers: numbers)"
      ]
    },
    {
      "id": "rgb",
      "name": "rgb",
      "since": "2.5, 2.10 (alpha)",
      "description": [
        "Returns a RGB color from the given red, green and blue parameters.\nAlpha values can be added optionally but these only take affect in certain situations, like text display backgrounds."
      ],
      "examples": [
        "dye player's leggings rgb(120, 30, 45)",
        "set the colour of a text display to rgb(10, 50, 100, 50)"
      ],
      "returns": {
        "id": "color",
        "name": "Color"
      },
      "patterns": [
        "rgb(red: integer between 0 and 255, green: integer between 0 and 255, blue: integer between 0 and 255, alpha: optional integer between 0 and 255)"
      ]
    },
    {
      "id": "offlineplayer",
      "name": "offlineplayer",
      "since": "2.8.0, 2.9.0 (prevent lookups)",
      "description": [
        "Returns a offline player from their name or UUID. This function will still return the player if they're online. If Paper 1.16.5+ is used, the 'allowLookup' parameter can be set to false to prevent this function from doing a web lookup for players who have not joined before. Lookups can cause lag spikes of up to multiple seconds, so use offline players with caution."
      ],
      "examples": [
        "set {_p} to offlineplayer(\"Notch\")",
        "set {_p} to offlineplayer(\"069a79f4-44e9-4726-a5be-fca90e38aaf5\")",
        "set {_p} to offlineplayer(\"Notch\", false)"
      ],
      "returns": {
        "id": "offlineplayer",
        "name": "Offline Player"
      },
      "patterns": [
        "offlineplayer(nameOrUUID: string, allowLookups: boolean = [[boolean:true]])"
      ]
    },
    {
      "id": "round",
      "name": "round",
      "since": "2.2, 2.7 (decimal placement)",
      "description": [
        "Rounds a number, i.e. returns the closest integer to the argument. Place a second argument to define the decimal placement."
      ],
      "examples": [
        "round(2.34) = 2",
        "round(2) = 2",
        "round(2.99) = 3",
        "round(2.5) = 3"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "round(n: number, d: number = [[integer:0]])"
      ]
    },
    {
      "id": "sqrt",
      "name": "sqrt",
      "since": "2.2",
      "description": [
        "The square root, which is the inverse operation to squaring a number (for positive numbers only). This is the same as <code>(argument) ^ (1/2)</code> – other roots can be calculated via <code>number ^ (1/root)</code>, e.g. <code>set {_l} to {_volume}^(1/3)</code>.",
        "Returns NaN (not a number) if the argument is negative."
      ],
      "examples": [
        "sqrt(4) = 2",
        "sqrt(2) = 1.4142",
        "sqrt(-1) = NaN"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "sqrt(n: number)"
      ]
    },
    {
      "id": "formatNumber",
      "name": "formatNumber",
      "since": "2.10",
      "description": [
        "Converts numbers to human-readable format. By default, '###,###' (e.g. '123,456,789') will be used for whole numbers and '###,###.##' (e.g. '123,456,789.00) will be used for decimal numbers. A hashtag '#' represents a digit, a comma ',' is used to separate numbers, and a period '.' is used for decimals. ",
        "Will return none if the format is invalid.",
        "For further reference, see this <a href=\"https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html\" target=\"_blank\">article</a>."
      ],
      "examples": [
        "command /balance:",
        "\taliases: bal",
        "\texecutable by: players",
        "\ttrigger:",
        "\t\tset {_money} to formatNumber({money::%sender's uuid%})",
        "\t\tsend \"Your balance: %{_money}%\" to sender"
      ],
      "returns": {
        "id": "string",
        "name": "Text"
      },
      "patterns": [
        "formatNumber(number: number, format: string = [[string:\"\"]])"
      ]
    },
    {
      "id": "clamp",
      "name": "clamp",
      "since": "2.8.0",
      "description": [
        "Clamps one or more values between two numbers.",
        "This function retains indices"
      ],
      "examples": [
        "clamp(5, 0, 10) = 5",
        "clamp(5.5, 0, 5) = 5",
        "clamp(0.25, 0, 0.5) = 0.25",
        "clamp(5, 7, 10) = 7",
        "clamp((5, 0, 10, 9, 13), 7, 10) = (7, 7, 10, 9, 10)",
        "set {_clamped::*} to clamp({_values::*}, 0, 10)"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "clamp(values: numbers, min: number, max: number)"
      ]
    },
    {
      "id": "calcExperience",
      "name": "calcExperience",
      "since": "2.2-dev32",
      "description": [
        "Calculates the total amount of experience needed to achieve given level from scratch in Minecraft."
      ],
      "examples": null,
      "returns": {
        "id": "long",
        "name": ""
      },
      "patterns": [
        "calcExperience(level: long)"
      ]
    },
    {
      "id": "fromBase",
      "name": "fromBase",
      "since": "2.14",
      "description": [
        "Turns a text version of a number in a specific base (decimal, hexadecimal, octal) into an actual number.\nFor example, converting \"20\" in hexadecimal (base 16) would be 'fromBase(\"20\", 16)', which would return 32.\nYou can use any base between 2 and 36.\n"
      ],
      "examples": [
        "# /binaryText 01110011 01101011 01110010 01101001 01110000 01110100 00100001\n# sends \"skript!\"\ncommand binaryText <text>:\n\ttrigger:\n\tset {_characters::*} to argument split at \" \" without trailing empty string\n\t\ttransform {_characters::*} with fromBase(input, 2) # convert to codepoints\n\t\ttransform {_characters::*} with character from codepoint input # convert to characters\n\t\tsend join {_characters::*}\n"
      ],
      "returns": {
        "id": "long",
        "name": ""
      },
      "patterns": [
        "fromBase(string value: objects, base: integer between 2 and 36)"
      ]
    },
    {
      "id": "player",
      "name": "player",
      "since": "2.8.0",
      "description": [
        "Returns an online player from their name or UUID, if player is offline function will return nothing.",
        "Setting 'getExactPlayer' parameter to true will return the player whose name is exactly equal to the provided name instead of returning a player that their name starts with the provided name."
      ],
      "examples": [
        "set {_p} to player(\"Notch\") # will return an online player whose name is or starts with 'Notch'",
        "set {_p} to player(\"Notch\", true) # will return the only online player whose name is 'Notch'",
        "set {_p} to player(\"069a79f4-44e9-4726-a5be-fca90e38aaf5\") # <none> if player is offline"
      ],
      "returns": {
        "id": "player",
        "name": "Player"
      },
      "patterns": [
        "player(nameOrUUID: text, getExactPlayer: optional boolean (yes/no))"
      ]
    },
    {
      "id": "exp",
      "name": "exp",
      "since": "2.2",
      "description": [
        "The exponential function. You probably don't need this if you don't know what this is."
      ],
      "examples": [
        "exp(0) = 1",
        "exp(1) = 2.7183"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "exp(n: number)"
      ]
    },
    {
      "id": "atan",
      "name": "atan",
      "since": "2.2",
      "description": [
        "The inverse of the <a href='#tan'>tangent</a>, also called arctan. Returns result in degrees, not radians. Only returns values from -90 to 90."
      ],
      "examples": [
        "atan(0) = 0",
        "atan(1) = 45",
        "atan(10000) = 89.9943"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "atan(n: number)"
      ]
    },
    {
      "id": "max",
      "name": "max",
      "since": "2.2",
      "description": [
        "Returns the maximum number from a list of numbers."
      ],
      "examples": [
        "max(1) = 1",
        "max(1, 2, 3, 4) = 4",
        "max({some list variable::*})"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "max(ns: numbers)"
      ]
    },
    {
      "id": "mean",
      "name": "mean",
      "since": "2.11",
      "description": [
        "Get the mean (average) of a list of numbers.",
        "You cannot get the mean of a set of numbers that includes infinity or NaN."
      ],
      "examples": [
        "mean(1, 2, 3) = 2",
        "mean(0, 5, 10) = 5",
        "mean(13, 97, 376, 709) = 298.75"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "mean(numbers: numbers)"
      ]
    },
    {
      "id": "quaternion",
      "name": "quaternion",
      "since": "2.10",
      "description": [
        "Returns a quaternion from the given W, X, Y and Z parameters. "
      ],
      "examples": [
        "quaternion(1, 5.6, 45.21, 10)"
      ],
      "returns": {
        "id": "quaternion",
        "name": "Quaternion"
      },
      "patterns": [
        "quaternion(w: number, x: number, y: number, z: number)"
      ]
    },
    {
      "id": "cos",
      "name": "cos",
      "since": "2.2",
      "description": [
        "The cosine function. This is basically the <a href='#sin'>sine</a> shifted by 90°, i.e. <code>cos(a) = sin(a + 90°)</code>, for any number a. Uses degrees, not radians."
      ],
      "examples": [
        "cos(0) = 1",
        "cos(90) = 0"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "cos(n: number)"
      ]
    },
    {
      "id": "atan2",
      "name": "atan2",
      "since": "2.2",
      "description": [
        "Similar to <a href='#atan'>atan</a>, but requires two coordinates and returns values from -180 to 180.",
        "The returned angle is measured counterclockwise in a standard mathematical coordinate system (x to the right, y to the top)."
      ],
      "examples": [
        "atan2(0, 1) = 0",
        "atan2(10, 0) = 90",
        "atan2(-10, 5) = -63.4349"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "atan2(x: number, y: number)"
      ]
    },
    {
      "id": "ceil",
      "name": "ceil",
      "since": "2.2",
      "description": [
        "Rounds a number up, i.e. returns the closest integer larger than or equal to the argument."
      ],
      "examples": [
        "ceil(2.34) = 3",
        "ceil(2) = 2",
        "ceil(2.99) = 3"
      ],
      "returns": {
        "id": "long",
        "name": ""
      },
      "patterns": [
        "ceil(n: number)"
      ]
    },
    {
      "id": "date",
      "name": "date",
      "since": "2.2",
      "description": [
        "Creates a date from a year, month, and day, and optionally also from hour, minute, second and millisecond.",
        "A time zone and DST offset can be specified as well (in minutes), if they are left out the server's time zone and DST offset are used (the created date will not retain this information)."
      ],
      "examples": [
        "date(2014, 10, 1) # 0:00, 1st October 2014",
        "date(1990, 3, 5, 14, 30) # 14:30, 5th May 1990",
        "date(1999, 12, 31, 23, 59, 59, 999, -3*60, 0) # almost year 2000 in parts of Brazil (-3 hours offset, no DST)"
      ],
      "returns": {
        "id": "date",
        "name": "Date"
      },
      "patterns": [
        "date(year: number, month: number, day: number, hour: number = [[integer:0]], minute: number = [[integer:0]], second: number = [[integer:0]], millisecond: number = [[integer:0]], zone_offset: number = [[double:NaN]], dst_offset: number = [[double:NaN]])"
      ]
    },
    {
      "id": "ln",
      "name": "ln",
      "since": "2.2",
      "description": [
        "The natural logarithm. You probably don't need this if you don't know what this is.",
        "Returns NaN (not a number) if the argument is negative."
      ],
      "examples": [
        "ln(1) = 0",
        "ln(exp(5)) = 5",
        "ln(2) = 0.6931"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "ln(n: number)"
      ]
    },
    {
      "id": "acos",
      "name": "acos",
      "since": "2.2",
      "description": [
        "The inverse of the <a href='#cos'>cosine</a>, also called arccos. Returns result in degrees, not radians. Only returns values from 0 to 180."
      ],
      "examples": [
        "acos(0) = 90",
        "acos(1) = 0",
        "acos(0.5) = 30"
      ],
      "returns": {
        "id": "number",
        "name": "Number"
      },
      "patterns": [
        "acos(n: number)"
      ]
    },
    {
      "id": "vector",
      "name": "vector",
      "since": "2.15",
      "description": [
        "Creates a vector from a single argument. Equivalent to vector(n, n, n)."
      ],
      "examples": [
        "vector(1) # = vector(1, 1, 1)"
      ],
      "returns": {
        "id": "vector",
        "name": "Vector"
      },
      "patterns": [
        "vector(n: number)"
      ]
    }
  ],
  "experiments": [
    {
      "id": "examples",
      "name": "Examples",
      "description": [
        "A section used to provide examples inside code.\n\n```\nexample:\n\tkick the player due to \"you are not allowed here!\"\n```"
      ],
      "pattern": "examples",
      "phase": "stable"
    },
    {
      "id": "queues",
      "name": "Queues",
      "description": [
        "A collection that removes elements whenever they are requested.\n\nThis is useful for processing tasks or keeping track of things that need to happen only once.\n\n```\nset {queue} to a new queue of \"hello\" and \"world\"\n\nbroadcast the first element of {queue}\n# \"hello\" is now removed\n\nbroadcast the first element of {queue}\n# \"world\" is now removed\n\n# queue is empty\n```\n\n```\nset {queue} to a new queue of all players\n\nset {player 1} to a random element out of {queue} \nset {player 2} to a random element out of {queue}\n# players 1 and 2 are guaranteed to be distinct\n```\n\nQueues can be looped over like a regular list."
      ],
      "pattern": "queues",
      "phase": "experimental"
    },
    {
      "id": "for loop",
      "name": "For Loops",
      "description": [
        "A new kind of loop syntax that stores the loop index and value in variables for convenience.\n\nThis can be used to avoid confusion when nesting multiple loops inside each other.\n\n```\nfor {_index}, {_value} in {my list::*}:\n\tbroadcast \"%{_index}%: %{_value}%\"\n```\n\n```\nfor each {_player} in all players:\n\tsend \"Hello %{_player}%!\" to {_player}\n```\n\nAll existing loop features are also available in this section."
      ],
      "pattern": "for [each] loop[s]",
      "phase": "mainstream"
    },
    {
      "id": "reflection",
      "name": "Script Reflection",
      "description": [
        "This feature includes:\n\n- The ability to reference a script in code.\n- Finding and running functions by name.\n- Reading configuration files and values."
      ],
      "pattern": "[script] reflection",
      "phase": "stable"
    },
    {
      "id": "catch runtime errors",
      "name": "Runtime Error Catching",
      "description": [
        "A new catch runtime errors section allows you to catch and suppress runtime errors within it and access them later with the last caught runtime errors.\n\n```\ncatch runtime errors:\n\t...\n\tset worldborder center of {_border} to {_my unsafe location}\n\t...\nif last caught runtime errors contains \"Your location can't have a NaN value as one of its components\":\n\tset worldborder center of {_border} to location(0, 0, 0)\n```"
      ],
      "pattern": "error catching [section]",
      "phase": "experimental"
    },
    {
      "id": "type hints",
      "name": "Type Hints",
      "description": [
        "Local variable type hints enable Skript to understand what kind of values your local variables will hold at parse time. Consider the following example:\n\n```\nset {_a} to 5\nset {_b} to \"some string\"\n... do stuff ...\nset {_c} to {_a} in lowercase # oops i used the wrong variable\n```\n\nPreviously, the code above would parse without issue. However, Skript now understands that when it is used, {_a} could only be a number (and not a text). Thus, the code above would now error with a message about mismatched types.\n\nPlease note that this feature is currently only supported by simple local variables. A simple local variable is one whose name does not contain any expressions:\n\n```\n{_var} # can use type hints\n{_var::%player's name%} # can't use type hints\n```"
      ],
      "pattern": "[local variable] type hints",
      "phase": "experimental"
    },
    {
      "id": "damage source",
      "name": "Damage Sources",
      "description": [
        "Damage sources are a more advanced and detailed version of damage causes. Damage sources include information such as the type of damage, the location where the damage originated from, the entity that directly caused the damage, and more.\n\nBelow is an example of what damaging using custom damage sources looks like:\n\n```\ndamage all players by 5 using a custom damage source:\n\tset the damage type to magic\n\tset the causing entity to {_player}\n\tset the direct entity to {_arrow}\n\tset the damage location to location(0, 0, 10)\n```\n\nFor more details about the syntax, visit damage source on our documentation website."
      ],
      "pattern": "damage source[s]",
      "phase": "mainstream"
    },
    {
      "id": "equippable components",
      "name": "Equippable Components",
      "description": [
        "Equippable components allow retrieving and changing the data of an item in the usage as equipment/armor.\n\nBelow is an example of creating a blank equippable component, modifying it, and applying it to an item:\n\n```\nset {_component} to a blank equippable component:\n\tset the camera overlay to \"custom_overlay\"\n\tset the allowed entities to a zombie and a skeleton\n\tset the equip sound to \"block.note_block.pling\"\n\tset the equipped model id to \"custom_model\"\n\tset the shear sound to \"ui.toast.in\"\n\tset the equipment slot to chest slot\n\tallow event-equippable component to be damage when hurt\n\tallow event-equippable component to be dispensed\n\tallow event-equippable component to be equipped onto entities\n\tallow event-equippable component to be sheared off\n\tallow event-equippable component to swap equipment\nset the equippable component of {_item} to {_component}\n```"
      ],
      "pattern": "equippable components",
      "phase": "experimental"
    }
  ],
  "properties": [
    {
      "id": "amount",
      "name": "amount",
      "description": "The amount of something, say the number of items in a stack or in a queue.",
      "provider": "Skript",
      "since": [
        "2.13"
      ],
      "relatedTypes": [
        {
          "id": "itemstack",
          "name": "Item"
        },
        {
          "id": "slot",
          "name": "Slot"
        },
        {
          "id": "itemtype",
          "name": "Item Type"
        },
        {
          "id": "numbered",
          "name": "Any Numbered/Sized Thing"
        },
        {
          "id": "queue",
          "name": "Queue"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprAmount",
          "name": "Amount"
        }
      ]
    },
    {
      "id": "display-name",
      "name": "display name",
      "description": "A more prominently displayed name, such as a player's display name or an entity's custom name. Often more easily changed than the regular name.",
      "provider": "Skript",
      "since": [
        "2.13"
      ],
      "relatedTypes": [
        {
          "id": "slot",
          "name": "Slot"
        },
        {
          "id": "itemtype",
          "name": "Item Type"
        },
        {
          "id": "inventory",
          "name": "Inventory"
        },
        {
          "id": "entity",
          "name": "Entity"
        },
        {
          "id": "player",
          "name": "Player"
        },
        {
          "id": "nameable",
          "name": "Nameable"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprCustomName",
          "name": "Display Name"
        }
      ]
    },
    {
      "id": "scale",
      "name": "scale",
      "description": "The scale of something, say the x/y/z scales of a display entity.",
      "provider": "Skript",
      "since": [
        "2.14"
      ],
      "relatedTypes": [
        {
          "id": "scalableparticle",
          "name": "Scalable Particle Effect"
        },
        {
          "id": "display",
          "name": "Display Entity"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprScale",
          "name": "Scale"
        }
      ]
    },
    {
      "id": "title",
      "name": "title",
      "description": "The title of something.",
      "provider": "Skript",
      "since": [
        "2.16"
      ],
      "relatedTypes": [
        {
          "id": "bossbar",
          "name": "BossBar"
        },
        {
          "id": "itemtype",
          "name": "Item Type"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprTitle",
          "name": "Title"
        }
      ]
    },
    {
      "id": "speed",
      "name": "speed",
      "description": "The speed at which something is moving.",
      "provider": "Skript",
      "since": [
        "2.14"
      ],
      "relatedTypes": [],
      "relatedSyntaxes": null
    },
    {
      "id": "typed-value",
      "name": "typed value",
      "description": "A value of a specific type, e.g. 'string value of x'.",
      "provider": "Skript",
      "since": [
        "2.13"
      ],
      "relatedTypes": [
        {
          "id": "valued",
          "name": "Any Valued Thing"
        },
        {
          "id": "node",
          "name": "Node"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprValueOf",
          "name": "Value"
        }
      ]
    },
    {
      "id": "empty",
      "name": "empty",
      "description": "Whether something is empty or not.",
      "provider": "Skript",
      "since": [
        "2.13"
      ],
      "relatedTypes": [
        {
          "id": "slot",
          "name": "Slot"
        },
        {
          "id": "inventory",
          "name": "Inventory"
        },
        {
          "id": "numbered",
          "name": "Any Numbered/Sized Thing"
        },
        {
          "id": "string",
          "name": "Text"
        },
        {
          "id": "queue",
          "name": "Queue"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropCondIsEmpty",
          "name": "Is Empty"
        }
      ]
    },
    {
      "id": "number",
      "name": "number",
      "description": "The number of something, say the number of elements in a queue.",
      "provider": "Skript",
      "since": [
        "2.13"
      ],
      "relatedTypes": [
        {
          "id": "numbered",
          "name": "Any Numbered/Sized Thing"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprNumber",
          "name": "Number Of"
        }
      ]
    },
    {
      "id": "contains",
      "name": "contains",
      "description": "Something that can contain other things, such as an inventory or a string.",
      "provider": "Skript",
      "since": [
        "2.13"
      ],
      "relatedTypes": [
        {
          "id": "inventory",
          "name": "Inventory"
        },
        {
          "id": "containing",
          "name": "Anything with Contents"
        },
        {
          "id": "textcomponent",
          "name": "Text Component"
        },
        {
          "id": "string",
          "name": "Text"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropCondContains",
          "name": "Contains (Property)"
        }
      ]
    },
    {
      "id": "viewers",
      "name": "viewers",
      "description": "The viewers of something.",
      "provider": "Skript",
      "since": [
        "2.16"
      ],
      "relatedTypes": [
        {
          "id": "bossbar",
          "name": "BossBar"
        },
        {
          "id": "inventory",
          "name": "Inventory"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprViewers",
          "name": "Viewers"
        }
      ]
    },
    {
      "id": "size",
      "name": "size",
      "description": "The size of something, say the number of elements in a queue.",
      "provider": "Skript",
      "since": [
        "2.13"
      ],
      "relatedTypes": [
        {
          "id": "numbered",
          "name": "Any Numbered/Sized Thing"
        },
        {
          "id": "queue",
          "name": "Queue"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprSize",
          "name": "Size"
        }
      ]
    },
    {
      "id": "name",
      "name": "name",
      "description": "A name, such as a script's name or a player's account name.",
      "provider": "Skript",
      "since": [
        "2.13"
      ],
      "relatedTypes": [
        {
          "id": "gamerule",
          "name": "Gamerule"
        },
        {
          "id": "slot",
          "name": "Slot"
        },
        {
          "id": "bossbar",
          "name": "BossBar"
        },
        {
          "id": "script",
          "name": "Script"
        },
        {
          "id": "itemtype",
          "name": "Item Type"
        },
        {
          "id": "offlineplayer",
          "name": "Offline Player"
        },
        {
          "id": "entity",
          "name": "Entity"
        },
        {
          "id": "world",
          "name": "World"
        },
        {
          "id": "block",
          "name": "Block"
        },
        {
          "id": "nameable",
          "name": "Nameable"
        },
        {
          "id": "named",
          "name": "Any Named Thing"
        },
        {
          "id": "inventory",
          "name": "Inventory"
        },
        {
          "id": "player",
          "name": "Player"
        },
        {
          "id": "node",
          "name": "Node"
        },
        {
          "id": "function",
          "name": "Function"
        },
        {
          "id": "config",
          "name": "Config"
        },
        {
          "id": "commandsender",
          "name": "Command Sender"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprName",
          "name": "Name"
        }
      ]
    },
    {
      "id": "progress",
      "name": "progress",
      "description": "The progress of something.",
      "provider": "Skript",
      "since": [
        "2.16"
      ],
      "relatedTypes": [
        {
          "id": "bossbar",
          "name": "BossBar"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprProgress",
          "name": "Progress"
        }
      ]
    },
    {
      "id": "style",
      "name": "style",
      "description": "The style of something.",
      "provider": "Skript",
      "since": [
        "2.16"
      ],
      "relatedTypes": [
        {
          "id": "bossbar",
          "name": "BossBar"
        }
      ],
      "relatedSyntaxes": [
        {
          "id": "PropExprStyle",
          "name": "Style"
        }
      ]
    }
  ]
}