Skript

Please note that this is the old documentation on the last version of Skript I released.
If you use a fork of Skript, please refer to that fork's documentation to find all new & updated information.

Skript is a plugin for Bukkit, a popular Minecraft server mod. It allows server admins to easily modify how Minecraft works without programming anything. This is achieved with triggers, whereof each is a collection of conditions and effects. Each time a trigger is called all conditions are checked, and if all are met, the effects are executed. The basic idea behind Skript is the customisability:

Everyone can make their server unique even without custom plugins

It's much faster to modify some scripts yourself than to have to ask plugin developers to write some features you want

Also there's no need to have dozens of small plugins if you can do the same with this one plugin

You can download the latest stable version of Skript here (refer to the BukkitDev page for changelogs and more information).

As already mentioned, Skript works with triggers which add functionality to this plugin. Triggers can be very basic and only consist of some conditions and effects, like this simple drop fix:

on break of glass:
drop glass

Skript can also be used to create custom commands. These are basically triggers which are executed once a specific command has been typed.
The following defines a simple command which allows to get the ID of an item by holding it in the hand and typing /id:

Skript also comes with an option to directly execute effects from the chat, by interpreting chat messages that start with a configurable character (‘!’ by default) as effects. This essentially allows to use effects as ‘commands’, e.g. !repair tool will do what it implies. Because these commands are very powerful (and can thus be abused) only players with the permission skript.effectcommands can use them if they are enabled at all (this does not default to OPs!).

Skript's syntax is not limited to such simple examples as above, but has several other features like loops, conditionals, etc. The following is an example of a more advanced trigger which refuels furnaces using fuel from surrounding chests:

on burn of fuel:
fuel slot of the block is empty
loop blocks in radius 1:
loop-block is chest
loop items of type fuel:
loop-block contains loop-item
remove loop-item from loop-block
set fuel of the event-block to loop-item
stop trigger

More information on this plugin can be found on Skript's BukkitDev page, and please also read the tutorial and documentation linked below.

Tutorial

If you're new to Skript you should read the basic tutorial. It explains how to write a new script with all required steps. There is also another tutorial at BukkitDev.

Documentation

If you are already using this plugin, you should take a look at the documentation. It is helpful if you want to know whether a certain event exists or what arguments a specific condition takes. And of course it's also useful if you just want to find out what can be done with this plugin.
The documentation also contains a lot of examples to demonstrate the usage of the different conditions, effects, expressions, etc.