Skript Plugin: Script Your Minecraft Server in Plain English

Skript is a free, open-source plugin for Paper servers that turns readable lines such as on join: into working commands, events and game mechanics. This site is an independent guide to getting it safely, installing it, and writing scripts that hold up on a live server.

Latest 2.16.2 Paper 1.21.4 to 26.2 Licence GPL-3.0 Updated 3 October 2026 Source: SkriptLang on GitHub

What is Skript?

A scripting language for Minecraft servers that reads close to English. You describe what should happen and when, and Skript turns it into server behaviour.

Start with the beginner guide

Why it was created

Writing a Bukkit or Paper plugin normally means learning Java, setting up a build tool, compiling a jar and restarting the server for every change. Skript was started by Njol to remove that barrier, was carried forward by Mirreski, and is now maintained by the SkriptLang team on GitHub. The goal has stayed the same: let server owners add their own features without becoming Java developers first.

How it works

You write plain text files ending in .sk and place them in plugins/Skript/scripts/. When the server starts, or when you run /sk reload, Skript parses each file, matches every line against its library of known syntax, and registers the result as event listeners, commands and timed tasks. If a line cannot be understood, Skript tells you the file and line number instead of silently failing.

Who should use it

Server owners who want custom commands, join messages, rewards, small economies or minigame rules; staff who need quick tools; and learners who want a gentle first step into programming logic. It also suits Java developers who want to sketch an idea in minutes before committing to a full plugin.

Who should not

If you are building a large network feature with heavy per-tick logic, complex data models or strict performance budgets, a compiled Java plugin will usually serve you better. Skript is not a replacement for well-designed plugins that already solve a problem; it is the glue and the custom layer around them.

Skript vs a traditional Java plugin

The same /heal command, written both ways. The Java version is not hard for a developer, but it needs a project, a build and a server restart. The Skript version is edited and reloaded live.

heal.sk
command /heal:
    permission: demo.heal
    trigger:
        heal player
        send "&aHealed!"
HealPlugin.java
getCommand("heal").setExecutor((s, c, l, a) -> {
    if (!(s instanceof Player p)) return false;
    if (!p.hasPermission("demo.heal")) return true;
    p.setHealth(p.getAttribute(Attribute.MAX_HEALTH).getValue());
    p.sendMessage("Healed!");
    return true;
}); // plus plugin.yml, a build and a restart

Expert take

Treat Skript as the fastest way to get a server idea into players' hands, then measure. Most community servers never outgrow it for commands, messages and light game rules. When a script starts running on every tick or every movement, that is the signal to optimise it or move that one piece to Java.

What Skript lets you build

Nine capabilities that cover most of what server owners reach for, and the practical benefit of each.

Human-readable scripting

Lines like "give player 1 diamond" do exactly what they say. Indentation groups the steps, so a script reads top to bottom like a checklist.

starter-kit.sk
on first join:
    give player 16 bread
    give player a stone sword
    send "&aThanks for joining, %player%!"

on break of diamond ore:
    send "&bLucky find!" to player

Staff can read and adjust scripts without a developer on call.

Minecraft event automation

React to joins, deaths, block breaks, chat, damage, respawns and dozens more events with a single header line.

Server rules happen automatically, every time.

Custom commands

Define commands with arguments, permissions, aliases and cooldowns in the command header.

Replace small single-purpose plugins with a few lines.

Variables that persist

Global variables save to disk by default, so balances and stats survive restarts.

Track coins, kills or homes without a database.

Conditions and logic

if, else if, else, loops and functions cover the logic most server features need.

Build real rules, not just fixed messages.

Scheduled tasks

Run code every few minutes, after a delay, or at a set time with every and wait.

Broadcasts, rewards and resets on a timer.

Addon ecosystem

Addons such as SkBee and skript-gui add syntax for menus, NBT, scoreboards and more.

Grow into advanced features when you need them.

Rapid prototyping

Edit a file, run /sk reload, test in game. No compiler, no restart.

Try an idea with players the same afternoon.

Custom gameplay mechanics

Combine events, items and variables into bounties, kits, parkour checkpoints or arena rules.

Give your server features players cannot find elsewhere.

How Skript works, start to finish

The path every script takes from your text editor to a player's screen.

  1. Write a script

    Plain text in any editor

  2. Save as .sk

    In plugins/Skript/scripts

  3. Skript parses it

    Errors list the line number

  4. An event fires

    A join, a command, a timer

  5. Server runs it

    Through the Paper API

  6. Player sees it

    Message, item, teleport

System requirements

Skript itself is light. What matters is the server it runs on. These are practical guidelines for 2.16.2; the release notes are the final word for each version.

ComponentMinimumRecommended
Server softwarePaper 1.21.4 to 26.2Latest stable Paper build for your Minecraft version
JavaJava 21 for Paper 1.21.xJava 25 required by Paper 26.x
RAMWhatever your server already needs Skript adds little on its ownHeadroom for variables and addons large variable files load into memory
CPUAny CPU that runs Paper wellStrong single-thread speed most script work runs on the main thread
DiskA few MB for the jar and scriptsRoom for variable backups over time
NetworkNone beyond the server itselfOptional: update checks reach GitHub

Recommended production setup

  • A separate test server with the same Paper and Skript versions
  • Scripts kept in version control or regular backups
  • Addons updated together with Skript, never ahead of it
  • A profiler such as spark installed before you need it

Spigot and CraftBukkit are not supported by current Skript releases. If you run Spigot, either switch to Paper or check the release notes for the last version that supported it.

Download Skript safely

Skript is free. The only place you need is the official SkriptLang releases page on GitHub, where every version is published with its changelog.

We do not host or mirror the jar. Files from re-upload sites can be outdated or modified, so always take Skript from the project itself. More detail on the download page.

Latest version
2.16.2
Release date
1 September 2026
Developer
SkriptLang team
Licence
GPL-3.0
Supported server
Paper 1.21.4 to 26.2
Java
21+ (25 for Paper 26.x)
File type
.jar plugin
Official source
github.com/SkriptLang

Install Skript in eight steps

The same process works on a home PC, a VPS or a hosting panel. Budget about ten minutes.

  1. Download Skript

    Get Skript-2.16.2.jar (or the newest file) from the official releases page.

  2. Stop the server

    Shut the server down cleanly with stop so worlds and data save.

  3. Open the plugins folder

    It sits next to your Paper jar. On a host panel, use the file manager or SFTP.

  4. Upload the jar

    Place the Skript jar directly in plugins/, not in a subfolder. Remove any older Skript jar first.

  5. Start the server

    Skript creates plugins/Skript/ with its config, language files and a scripts folder.

  6. Confirm it loaded

    Run /sk info or /plugins. Skript should be listed in green.

  7. Create your first script

    Make plugins/Skript/scripts/hello.sk with this content:

    hello.sk
    command /hello:
        trigger:
            send "&aSkript is working!" to player
  8. Reload and test

    Run /sk reload hello, then type /hello in game.

How to use Skript

Real snippets at three levels. Copy one into a .sk file, reload, and try it.

All guides
Skript
on join:
    send "&aWelcome, %player%!" to player

Events

A trigger line ends in a colon; everything indented under it runs when the event happens.

Skript
command /discord:
    trigger:
        send "&bJoin us: discord.gg/yourserver"

Commands

Commands can carry permissions and cooldowns right in the header.

Compatibility

Skript follows a release model that supports roughly the last 18 months of Minecraft versions. Statuses below describe Skript 2.16.2.

PlatformStatusNotes
Paper 1.21.4 to 26.2SupportedThe platform Skript is built and tested for.
Older Paper versionsCheck documentationUse an older Skript release that lists your version in its notes.
Paper forks (e.g. Purpur)PartialOften work because they keep Paper's API, but are not the tested target.
Spigot / CraftBukkitNot supportedCurrent releases require Paper.
FoliaCheck documentationFolia's threading model differs from Paper; confirm support before relying on it.
Java 21 / 25SupportedMatch the Java version your Paper build needs.
Menus, NBT, databasesRequires addonCovered by addons such as skript-gui, SkBee and skript-db.
Velocity / BungeeCord proxyNot applicableInstall Skript on each backend server, not on the proxy.

Pros and cons

An honest view, so you can decide whether Skript fits your server.

Where it shines

  • Fast developmentEdit, reload and test in under a minute.
  • Beginner friendlyReads like instructions, with clear error messages.
  • Low barrier to entryNo IDE, build tools or Java knowledge needed.
  • Large addon ecosystemExtra syntax for menus, NBT, files and SQL.
  • Great for prototypesTest an idea with real players before investing in Java.

Where it struggles

  • Performance ceilingHeavy per-tick or per-move logic costs more than equivalent Java.
  • Addon dependency riskAbandoned addons can block a Skript or Minecraft update.
  • Syntax changes between versionsMajor releases sometimes rename or remove syntax; read the changelog.
  • Large systemsBig codebases are easier to test and maintain as Java plugins.

Who uses Skript, and for what

Six common situations where Skript earns its place.

Server owners

Replace three small plugins with one readable file you control.

Scenario: A survival server adds /spawn, a join kit and a daily reward without new jars.

Developers

Prototype a mechanic before writing the Java version.

Scenario: A dev tests a bounty system with players for a week, then ports the parts that need speed.

Students

Learn events, variables, conditions and loops with instant feedback.

Scenario: A student builds a quiz command and sees each change in game seconds later.

Gamers

Add personal touches to a server for friends.

Scenario: A group adds death counters and a /rules command to their private world.

Content creators

Build challenge rules for videos and streams.

Scenario: A creator scripts "every 5 minutes, a random item" for a challenge series.

Communities

Give staff tools without handing out console access.

Scenario: Moderators get /report and a staff chat, all in one script.

Skript in pictures

What working with Skript actually looks like, from the file tree to the console.

Troubleshooting the usual problems

Each fix follows the same pattern: likely cause, the change to make, and how to confirm it worked.

Skript does not appear in /plugins
Likely cause
Server is Spigot, Java is too old, or two Skript jars are present.
Fix
Run Paper, match the Java version, keep one jar in plugins/.
Verify
Restart and look for Skript in green in /plugins.
Can't understand this condition/effect
Likely cause
A typo, a missing addon, or syntax from another Skript version.
Fix
Compare the line with the docs for your exact version.
Verify
Run /sk reload on the script and confirm zero errors.
Indentation error
Likely cause
Mixed tabs and spaces, or a line indented to the wrong level.
Fix
Use 4 spaces per level and set your editor to show whitespace.
Verify
Reload and check that the line number in the error is gone.
Script loads but nothing happens
Likely cause
The event never fires, a condition fails, or the file starts with a hyphen.
Fix
Add a temporary broadcast at the top of the trigger to confirm it runs.
Verify
Trigger the event and watch chat for the test message.
Server lag after adding a script
Likely cause
Work on every tick or every move event.
Fix
Move logic to specific events, cache results, use longer intervals.
Verify
Profile again and compare tick times.

Security and safe use

Skript runs with the same access as any plugin, so a script can do anything a plugin can. That is useful, and it is why sources matter.

Only download Skript from the official GitHub releases. Read every script you install from a forum or Discord before it goes on a live server, looking for commands that op players, run console commands, or send data to outside services. Addons extend what scripts can reach, so install the ones you actually use, from their official pages.

Keep permissions explicit on every command, test changes on a copy of your server, and back up plugins/Skript/ including variables.csv before updates. We cannot vouch for any third-party file, and we never claim a download is malware-free.

Before a script goes live

  1. Source is the official project or a script you have read in full
  2. Every command has a permission: line
  3. No unexplained execute console command lines
  4. Tested on a staging server with the same versions
  5. Backup of the Skript folder taken today
  6. Addon versions match the Skript version they list

Skript alternatives

Other ways to customise a server, and when each makes more sense.

Full comparison
SolutionDifficultyProgramming knowledgeBest for
SkriptLowNone to startCommands, events and light game rules, written fast
Java plugin (Paper API)HighJava, build toolsLarge systems and performance-critical features
DenizenMediumSome scriptingComplex NPC behaviour and scripted interactions
Vanilla datapacksMediummcfunction commandsChanges that must work without plugins
Kotlin pluginHighKotlin, build toolsDevelopers who prefer Kotlin over Java

What server owners weigh up

The points that come up again and again when people decide whether to adopt Skript. These are recurring themes, not quoted reviews.

Usually praised

Speed of iteration

Being able to change a line and reload without restarting is the reason many owners start with Skript and stay.

Usually praised

Readable for staff

Non-developers on a team can follow a script and make small changes safely.

Mixed

Performance at scale

Fine for most servers; busy networks report needing care with per-tick logic and huge variable sets.

Frequently asked questions

Quick answers. The full FAQ covers installation, compatibility, security and development.

All questions
Is Skript free?

Yes. Skript is open source under the GPL-3.0 licence and every release is free on the SkriptLang GitHub page. Some addons and paid script packs exist, but Skript itself costs nothing. Be wary of any site asking you to pay for or unlock the core plugin.

Do I need to know Java to use Skript?

No. Skript was created so server owners could add features without Java. You write readable lines in .sk files. Knowing basic logic such as conditions and loops helps, and you pick that up quickly by editing working examples.

Does Skript work on Spigot?

Current releases require Paper. Skript 2.16.2 supports Paper 1.21.4 to 26.2. If you run Spigot, the simplest path is switching to Paper, which can usually load your existing worlds and plugins.

Where do Skript scripts go?

Save scripts as .sk files inside plugins/Skript/scripts/. Subfolders are allowed. Files whose names start with a hyphen are ignored, which is a handy way to disable a script without deleting it.

How do I reload a script?

Run /sk reload followed by the script name, for example /sk reload welcome. Use /sk reload scripts to reload every script. Avoid the server-wide /reload command, which can break plugins.

Is Skript bad for performance?

Not by default. Most lag comes from scripts that do heavy work on every tick or every player movement. Event-driven scripts with sensible timers run comfortably on busy servers. Profile first, then optimise the hot spots.

Latest guides

Step-by-step articles for every stage, from first install to performance tuning.

All articles
Tutorials

Skript Variables Explained

Global, local, list and memory-only variables, how they are saved, and how to store player data that survives name changes.

Your first script is ten minutes away

Download Skript from the official source, follow the install guide, and have a working command before your coffee cools.