Skript: create your own Minecraft commands without Java
24 September 2026 · 2 min read
Skript is a plugin that lets you add commands and mechanics to a Paper or Spigot server with a language close to English, without writing a line of Java. For a /discord command, a welcome message or a daily reward, it's often the quickest solution.
Install Skript
- Download the version of Skript compatible with your server version, from its official page (SkriptLang on GitHub).
- Drop the
.jarintoplugins/, restart. - Scripts go in
plugins/Skript/scripts/, with the.skextension.
After a change, no need to restart:
/sk reload myscript
Skript shows errors with their line. As in YAML, indentation matters: always use the same number of spaces (or tabs everywhere, never a mix).
First script: a command
command /discord:
description: The link to our Discord
trigger:
send "&9Join our Discord: &fdiscord.gg/your-link" to player
The command exists as soon as you reload. The &9, &f codes are chat colours; the gradient text tool generates gradient usernames and titles to paste into your messages.
React to an event
on join:
if {first::%player's uuid%} is not set:
set {first::%player's uuid%} to now
broadcast "&aWelcome &f%player% &ato the server!"
give player 16 bread
on join runs on every login. The {first::…} variable remembers who has already been here: the message and the gift are only given once. Variables in braces are saved automatically, even after a restart.
A regular announcement
every 30 minutes:
broadcast "&eOne vote a day pushes the server up: &f/vote"
For richer messages (clickable, with hover text), the /tellraw generator produces the command to put in the script:
every 30 minutes:
execute console command "tellraw @a [...]"
Replace [...] with the generated text. In a Skript string, a quote is written doubled: "". The JSON {"text":"Vote"} therefore becomes {""text"":""Vote""}.
Add-ons
Skript alone covers the essentials. Add-ons bring extra functions:
- SkBee: scoreboards, advanced text, structures, and much more;
- skript-reflect: direct access to the Java API, for cases Skript doesn't cover.
Install as few as possible: each add-on has to follow Skript's and the server's updates.
Good practices
- One file per feature (
welcome.sk,discord.sk): an error in one file doesn't stop the others from loading. - No loop over all players every tick:
every 1 tickwith calculations on each player slows down any server. Prefer events. - Permissions on sensitive commands:
permission: myserver.adminunder the command. The LuckPerms guide explains how to grant them. - Test on a test server, especially scripts that give items or money: a one-line mistake can hand out a thousand diamonds.
When to switch to a Java plugin
Skript is perfect for small mechanics. It becomes a problem when:
- scripts go past a few hundred lines and nobody can find their way around any more;
- a script runs constantly and shows up in a Spark profile;
- an existing plugin already does the same thing, better and maintained.
Before writing a script, check whether a plugin already exists: the guide The essential plugins covers the most common needs. And if your project needs real development, CubeVote recruitment helps you find a developer for your team.