Please note that this is the old documentation on the last version of Skript I released in 2014.
For up-to-date documentation, please visit the SkriptLang docs, the Skript Hub docs, or the skUnity docs.
Table of Contents

Can Build

patterns[?]:
cannot be used directly
since:
2.0
Tests whether a player is allowed to build at a certain location. This condition requires that a supported regions plugin is installed.
examples:
command /setblock <material>:
	description: set the block at your crosshair to a different type
	trigger:
		player cannot build at the targeted block:
			message "You do not have permission to change blocks there!"
			stop
		set the targeted block to argument

Can Hold

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%
since:
1.0
Tests whether a player or a chest has enough free space to hold the given item. This includes trying to fill existing stacks of the tested item(s).
examples:
block can hold 200 cobblestone
player has enough space for 64 feathers

Chance

patterns[?]:
chance of %number%[\%]
since:
1.0
A condition that randomly succeeds or fails.
Valid values are between 0% and 100%, or if the percent sign is omitted between 0 and 1.
examples:
chance of 50%:
	drop a diamond
chance of {var}% # {var} between 0 and 100
chance of {var} # {var} between 0 and 1

Comparison

patterns[?]:
[neither] %objects% ((is|are) ((greater|more|higher|bigger|larger) than|above)|>) %objects%
[neither](neither)|isn't|aren't) ((less|smaller) than|below)|>=) %objects%
[neither] %objects% ((is|are) ((less|smaller) than|below)|<) %objects%
[neither](neither)|isn't|aren't) ((greater|more|higher|bigger|larger) than|above)|<=) %objects%
[neither](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](is not|are not|isn't|aren't) between %objects% and %objects%
since:
1.0
A very general condition, it simply compares two values. Usually you can only compare for equality (e.g. block is/isn't of <type>), 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 (was|were) or will be instead of (is|are) respectively, which check different time states of the first expression.
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

Contains

patterns[?]:
%inventories% ha(s|ve) %item types% [in [(the[ir]|his|her|its)] inventory]
%inventories/texts/objects% contain[s] %item types/texts/objects%
%inventories% do[es](n't| not) have %item types% [in [(the[ir]|his|her|its)] inventory]
%inventories/texts/objects% do[es](n't| not) contain %item types/texts/objects%
since:
1.0
Checks whether an inventory contains the given item, a text contains another piece of text, or a list of objects (e.g. a {list variable::*}) contains another object.
examples:
block contains 20 cobblestone
player has 4 flint and 2 iron ingots

Damage Cause

patterns[?]:
[the] damage [(n('|o)]t) [been] (caused|done|made) by %damage cause%
since:
2.0
Tests what kind of damage caused a damage event. Refer to the Damage Cause type for a list of all possible causes.
examples:
# make players use their potions of fire resistance whenever they take any kind of fire damage
on damage:
	damage was caused by lava, fire or burning
	victim is a player
	victim has a potion of fire resistance
	cancel event
	apply fire resistance to the victim for 30 seconds
	remove 1 potion of fire resistance from the victim
# prevent mobs from dropping items under certain circumstances
on death;
	entity is not a player
	damage wasn't caused by a block explosion, an attack, a projectile, a potion, fire, burning, thorns or poison
	clear drops

Exists/Is Set

patterns[?]:
%~objects% (exist[s]|(is|are) set)
%~objects% (do[es](n't| not) exist|(is|are)(n't| not) set)
since:
1.2
Checks whether a given expression or variable is set.
examples:
{teamscript.%player%.preferred team} is not set
on damage:
	projectile exists
	broadcast "%attacker% used a %projectile% to attack %victim%!"

Has Permission

patterns[?]:
[%players/console%] (do[es]n't|don't|do[es] not) have [the] permission[s] %texts%
[%players/console%] ha(s|ve) [the] permission[s] %texts%
since:
1.0
Test whether a player has a certain permission.
examples:
player has permission "skript.tree"
victim has the permission "admin":
	send "You're attacking an admin!" to attacker

Has Played Before

patterns[?]:
%offline player% [(has|did)] [already] play[ed] [on (this|the) server] (before|already)
%offline player% (has not|hasn't|did not|didn't) [(already|yet)] play[ed] [on (this|the) server] (before|already|yet)
since:
1.4
Checks whether a player has played on this server before. You can also use on first join if you want to make triggers for new players.
examples:
player has played on this server before
player hasn't played before

Is Alive

patterns[?]:
%living entities% (alive|dead)
%living entities% (alive|dead)
since:
2.0
Checks whetehr an entity is alive. This is mostly useful to check whether an entity stored in a variable does still exist
examples:
{villagerbuddy.%player%} is dead

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
since:
1.4
Checks whether a player or IP is banned.
examples:
player is banned
victim is not IP-banned
"127.0.0.1" is banned

Is Blocking

patterns[?]:
%players% (is|are) (blocking|defending)
%players% (isn't|is not|aren't|are not) (blocking|defending)
since:
unknown
Checks whether a player is blocking with his sword.
examples:
victim is blocking

Is Burning

patterns[?]:
%entities% (is|are) (burning|ignited|on fire)
%entities% (isn't|is not|aren't|are not) (burning|ignited|on fire)
since:
1.4.4
Checks whether an entity is on fire, e.g. a zombie due to being in sunlight, or any entity after falling into lava.
examples:
# increased attack against buring targets
victim is burning:
	increase damage by 2

Is Empty

patterns[?]:
%inventories/slots/texts% (is|are) empty
%inventories/slots/texts% (isn't|is not|aren't|are not) empty
since:
unknown
Checks whether an inventory, an inventory slot, or a text is empty.
examples:
player's inventory is empty

Is Enchanted

patterns[?]:
%item types% (is|are) enchanted [with %enchantment type%]
%item types% (isn't|is not|aren't|are not) enchanted [with %enchantment type%]
since:
1.4.6
Checks whether an item is enchanted.
examples:
tool of the player is enchanted with efficiency 2
helm, chestplate, leggings or boots are enchanted

Is Flying

patterns[?]:
%players% (is|are) flying
%players% (isn't|is not|aren't|are not) flying
since:
1.4.4
Checks whether a player is flying
examples:
player is not flying

Is Holding

patterns[?]:
[%living entities%] ha(s|ve) %item types% in hand
[%living entities%] (is|are) holding %item types%
[%living entities%] (ha(s|ve) not|do[es]n't have) %item types% in hand
[%living entities%] (is not|isn't) holding %item types%
since:
1.0
Checks whether a player is holdign a specific item. Cannot be used with endermen, use 'entity is [not] an enderman holding <item type>' instead.
examples:
player is holding a stick
victim isn't holding a sword of sharpness

Is in World

patterns[?]:
%entities% (is|are) in [[the] world[s]] %worlds%
%entities% (is not|isn't|are not|aren't) in [[the] world[s]] %worlds%
since:
1.4
Checks whether an entity is in a specific world
examples:
player is in "world"
argument isn't in world "world_nether"
the attacker is in the world of the victim

Is Member/Owner of Region

patterns[?]:
cannot be used directly
since:
2.1
Checks whetehr a player is a member or owner of a particular region.
This condition requires a supported regions plugin to be installed.
examples:
on region enter:
	player is the owner of the region
	message "Welcome back to %region%!"
	send "%player% just entered %region%!" to all members of the region

Is of Type

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%
since:
1.4
Checks whether an item of 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').
examples:
tool is of type {*selected type}
victim is of type {villager type}

Is Online

patterns[?]:
%offline players% ((is|are) online|(is not|isn't|are not|aren't) offline)
%offline players% ((is|are) offline|(is not|isn't|are not|aren't) online)
since:
1.4
Checks whether a player is online.
examples:
player is online
player-argument is offline

Is Poisoned

patterns[?]:
%living entities% (is|are) poisoned
%living entities% (isn't|is not|aren't|are not) poisoned
since:
1.4.4
Checks whether an entity is poisoned.
examples:
player is poisoned:
	cure the player from posion
	message "You have been cured!"

Is Riding

patterns[?]:
%entities% (is|are) riding [%entity types%]
%entities% (isn't|is not|aren't|are not) riding [%entity types%]
since:
2.0
Tests whether an entity is riding another or is in a vehicle.
examples:
player is riding a saddled pig

Is Sleeping

patterns[?]:
%players% (is|are) sleeping
%players% (isn't|is not|aren't|are not) sleeping
since:
1.4.4
Checks whether a player is sleeping.
examples:
# cut your enemies' throats in their sleep >=)
on attack:
	attacker is holding a sword
	victim is sleeping
	increase the damage by 1000

Is Sneaking

patterns[?]:
%players% (is|are) sneaking
%players% (isn't|is not|aren't|are not) sneaking
since:
1.4.4
Checks whether a player is sneaking
examples:
# prevent mobs from seeing sneaking players if they are at least 4 meters apart
on target:
	target is sneaking
	distance of target and the entity is bigger than 4
	cancel the event

Is Sprinting

patterns[?]:
%players% (is|are) sprinting
%players% (isn't|is not|aren't|are not) sprinting
since:
1.4.4
Checks whether a player is sprinting
examples:
player is not sprinting

Is Wearing

patterns[?]:
%living entities% (is|are) wearing %item types%
%living entities% (isn't|is not|aren't|are not) wearing %item types%
since:
1.0
Checks whether a player is wearing some armour.
examples:
player is wearing an iron chestplate and iron leggings
player is wearing all diamond armour

PvP

patterns[?]:
(is PvP|PvP is) enabled [in %worlds%]
(is PvP|PvP is) disabled [in %worlds%]
since:
1.3.4
Checks the PvP status of a world.
examples:
PvP is enabled
PvP is disabled in "world"

Region Contains

patterns[?]:
cannot be used directly
since:
2.1
Checks whether a location is contained in a particular region.
This condition requires a supported regions plugin to be installed.
examples:
player is in the region {regions::3}
on region enter:
	region contains {flags.%world%.red}
	message "The red flag is near!"

Time

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]
since:
2.0
Tests whether a given real time was more or less than some time span ago.
examples:
command /command_with_cooldown:
	trigger:
		{command.%player%.lastused} was less than a minute ago:
			message "Please wait a minute between uses of this command."
			stop
		set {command.%player%.lastused} to now
		# ... actual command trigger here ...

Weather

patterns[?]:
is %weather types% [in %worlds%]
since:
1.0
Checks whether the weather in a world is of a specific type.
I welcome any ideas how to write this condition differently.
examples:
is thundering
is raining in "world" or "world2"