Create Minecraft plugins without Java

Using Skript to create a unique user experience

The most powerful way to build a successful server is to provide a user experience that is unique to your server. An incredible way to achieve this is through developing custom plugins for your server. However, hiring a Java developer is not always affordable and programming languages such as Java have a very steep learning curve.

The good news is, Java programming experience is no longer required to create Minecraft plugins. In this article, we will teach you how to develop scripts to alter the gameplay experience of your server.

How do I create plugins without Java?

Skript is a plugin that allows you to customize your Minecraft server with scripts written in plain English sentences. It’s essentially a custom programming language that translates English input into Java code.

It works by allowing you to create scripts (.sk files), which are placed inside the ‘scripts’ subdirectory of Skript. These are the files that contain the code that modify the game, in the same way that regular Java plugins would.

Getting started with Skript is easier than Java — it has fewer entry requirements and a smaller learning curve. There’s no compiling or software you need to install; all you need is a text editor and the Skript plugin installed on your server.

There’s really only two steps to working with Skript; Installing it and Learning how to write scripts.

Installing Skript

Skript is no longer maintained by the original author, so the official release you’ll find on the BukkitDev website is out of date.

To download Skript, you will need to get the latest release from bensku’s GitHub page for Skript. From the following page, you will need to download ‘Skript.jar’ for the latest release: https://github.com/bensku/Skript/releases

Once you’ve got the latest plugin file, be sure you’re running the latest Spigot version, then upload it to your server’s /plugins directory and restart your server.

Skript is very easy to install on servers at Shockbyte and our support team is always available to support you with anything Skript related — from installation to development.

Learning Skript

By default, Skript comes with some example scripts. We recommend looking through these first to get an idea of what Skript is capable of and how to go about it. By default these will be disabled — to enable them, just remove the dash at the beginning. If you wish to disable any of your own scripts, you can simply add a dash/hyphen to the beginning — there’s no need to delete the file entirely!

When editing your scripts, you will need to load the changes by reloading the script. The easiest way to do this is by executing the /sk reload <skript name> command which will reload specific script. Alternatively, you can use /sk reload all to reload all scripts on your server. This is a very useful command as it will also tell you if there are any errors in your Skript and where to find them. If you do have any errors, don’t worry — that’s part of development! You’ll just need to work through them and resolve them to ensure your script works correctly.

While developing in Skript, the documentation for Skript and any Skript addons will be your most valuable resource. This is where you can learn about all the functionality available to you and see code samples for every type of code you can write.

Skript Documentation (SkUnity Website): https://www.skunity.com/doc?addon=Skript

Zombie Survival: A custom minigame developed entirely in Skript.

Skript Code Samples

Let’s give you some quick examples to show you how simple Skript is, as well as the power it truly has.

You could create a ban hammer that bans players you hit with the following code:

on leftclick with a iron axe:
if player has the permission “moderator”
ban targeted player due to “The ban hammer has spoken!”

Or every 10 minutes, broadcast a message:

every 10 minutes:
broadcast "This server is proudly hosted by Shockbyte!"

In Java, both of these examples would typically take several lines of code, not to mention the hassle to compile the plugin, write a plugin.yml file and import the APIs necessary to interact with the server.

“Pokemon” adds Pokemon to your server — developed entirely in Skript by roei11.

What benefits does Skript have over Java?

Skript has many benefits over Java, beyond just being easier to learn. Some of these benefits even make Skript a powerful tool for Java developers.

Skript is bootstrapped in Java on the Craftbukkit/Spigot API — it’s built in a way that allows a single line of Skript code to execute what normally could be several lines of Java code. This bootstrapping means once you’ve developed a script it will continue to work even when Minecraft updates. This is because the only dependency is Skript itself — as long as Skript is kept updated, you won’t need to make any changes to your scripts.

Additionally, Skript does not require recompiling on every change — you can simply run the /sk reload <script name> command and the changes will be updated live on the server. This means it’s incredibly fast to develop and edit Skript code, which in the case of a large scale project could save hundreds of hours. For this reason, Skript is also an effective prototyping tool for Java developers.

Error handling in is also very useful in Skript. On top of telling you where your error is and piece of code caused it, Skript will often provide even further insight to help you understand why the error occurred. For some errors, such as indentation and other syntax errors, it will even tell you what code it was expecting.

ParticleText by LimeGlass allows you to create particle text in Skript.

Is Skript really as powerful as Java?

Although scripts are confined to code Skript actually supports, it technically has no more limitations than a Java plugin would. Skript has an open API which allows Java developers to create add-ons for Skript, which are developed in Java. This means it’s possible to add any functionality to Skript that could be in a regular Java Minecraft plugin.

Skript is certainly viable for projects of any size. In fact, entire networks have been developed in Skript. Many of our own staff at Shockbyte have experience in Skript and have developed minigames and network backends for servers that handle hundreds to thousands of players at any one time.

If you’d like to extend the functionality of Skript, here are some popular addons you can try: SkQuery, Skellett, MundoSK, TuSKe.

Guardian Anti Cheat is a fully fledged anti-hack solution developed entirely in Skript by Xenons.

What if I want to switch to Java in the future?

Skript doesn’t interfere with Java or any of your other plugins at all. Skript is essentially just another plugin, so creating additional plugins won’t have any impact. If you decide you’d like to make the switch to Java at any point, you can simply begin creating new Java plugins.

Skript is a great introduction to programming because it follows the same concepts and logic as any other programming language. If you are an aspiring Java developer, it certainly is a good pathway to begin on.

Race for the Wool minigame, developed entirely in Skript.

Where can I get help?

Skript has a great community that provides help to each other and even includes many people who share scripts they have created for you to use.

SkUnity is a project we sponsor that includes documentation for Skript, as well as many of it’s addons. Additionally, it includes a forum where you can ask questions and share your scripts.

Many of our team at Shockbyte also have experience with Skript, so you are also welcome to contact our support for any Skript related questions. Members from our own team have developed widely used Skript addons which further extend the functionality of Skript.

If you’d like to use scripts developed by others, Spigot is a great resource for these. Spigot has a dedicated downloads section for Skript that you can access here: https://www.spigotmc.org/resources/categories/skript.25/


Hit the ❤ button if you found this article helpful to help others find it!

Find us on: Twitter, Facebook, Instagram