How To Code Minecraft Plugins

Reported Effects On Spigotcourse

How to code a Minecraft plugin in 10 minutes
Testing code TAKES TIME. Must restart each time.Testing code is EFFORTLESS. No reload needed!
Code becomes HARDER over time.Code stays BEAUTIFUL and CLEAN over time.
Solving errors is PAINFUL and TIRESOME.You UNDERSTAND errors and IMPROVE after solving each one…
Your plugins ARE NOT SELLING& you don’t understand WHY.Your plugins SELLING & you understand WHY.
You are trying, but NOT GETTING RESULTS.Results are CONTINUOUS.

Finding Developers And Building A Team

If you have a large budget, you can opt in for this. However, dont think that money will save you out of trouble. We have seen enough servers struggle with communication with their developer team. Even if you succeed at finding talented developers , you still need to be in contact with them and explain everything you need.

This can create misunderstandings and communication is often painfully complicated and slow. Besides, every developer has their own likings and may or may not comply to your requests in the exact way as you outlined it. If you dont need a ground-up built server like Mineplex, chances are you can do it quicker and for free instead of finding and building a developer team.

Scheduling Tasks And Background Tasks

Currently, Minecraft servers operate nearly all of the game logic in one thread, so each individual task that happens in the game needs to be kept very short. A complicated piece of code in your plugin has the potential to cause huge delays and lag spikes to the game logic, if not handled properly.

Luckily, Bukkit has support for scheduling code in your plugin. You can submit a Runnable task to occur once in the future, or on a recurring basis, or you can spin off a whole new independent thread that can perform lengthy tasks in parallel with the game logic.

There is a separate Scheduler Programming tutorial which introduces the Scheduler, and gives more information on using it to schedule synchronous tasks, and on kicking off asynchronous tasks in Bukkit.

Recommended Reading: Minecraft Sky Factory 4 Server

Introduction: Creating A Minecraft Plugin

Creating a Minecraft Plugin

1. You need to be proficient in Java

2. You need to know about general programming concepts


· Create an eclipse Java project.

· Create a plugin.yml.

· Learn some bukkit advanced topics.

Go to and download your minecraft server version.

Go to and download the current version of eclipse if you do not already have it installed.

Go to and download the corresponding version of bukkit/spigot to your server version.

Create an Eclipse Java Project

Set up a new Java Project by clicking create java project in the top corner

Now, find your bukkit/spigot file and select it in the list.

Create a plugin.yml

In the project path, create a file called plugin.yml

Follow this format, and insert information about your plugin and your name and other details.

name: Inferno

version: 1.4.1

description: This plugin is so 31337. You can set yourself on fire.

# We could place every author in the authors list, but chose not to for illustrative purposes

# Also, having an author distinguishes that person as the project lead, and ensures their

# name is displayed first

description: Set yourself on fire.


usage: Syntax error! Simply type /< command> to ignite yourself.


description: List how many times you have died by fire.


Example: /< command> – see how many times you have burned to death

Example: /< command> CaptainIce – see how many times CaptainIce has burned to death


description: Gives access to all Inferno commands

Writing A Safe Oncommand

Bukkit Coding

When writing an onCommand, it’s important that you don’t assume any information, such as the sender being a Player. Things to keep in mind:

Make sure the sender is a Player before casting

Using simple code like this makes it possible:

Check the arguments length

Don’t always assume the sender typed the correct amount of arguments.

Check if a Player is online before getting them

Sometimes you want to get another player by the name entered by the player. Always make sure the player is online!

If you need to modify a Player currently not online, the OfflinePlayer class provides basic manipulation methods.

Read Also: Free 24 Hour Minecraft Server Hosting

Launch A Debug Server

One of the perks of the CustomRealms IDE is the debug server. Click the create a testing server button on the bottom-left corner of the page to launch your very own, 100% free, Minecraft server.

It can take a few minutes to launch your debug server, so we recommend that you create it right away when you start working.

Start A Development Server

You can load your plugin in a development server. There are two servers that you can use one for the desktop Java client, and the other for the mobile Pocket Edition client.

Start the desktop server

Run this to start a desktop server:

npm run start:bukkit
  • Pull the Bukkit server image from Docker Hub.
  • Start the Bukkit server with your plugin loaded.
  • Start the TypeScript transpiler to transpile your code to ES5.
  • You can now connect to the server with your desktop client. Click on Multiplayer then Direct Connect, then use the server address

    Start the mobile server

    Run this command to start a mobile server:

    npm run start:nukkit
  • Pull the Nukkit server image from Docker Hub.
  • Start the Nukkit server with your plugin loaded.
  • Start the TypeScript transpiler to transpile your code to ES5.
  • You can now connect to the server with your pocket edition client. Click on Play then Servers, then add a server with the address

    You May Like: Free Minecraft Bedrock Server Hosting 24 7

    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 its 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 youve 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 wont 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 its 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.

    Creating Your First Project In Eclipse

    Fastest way to code Minecraft plugins (without experience)

    Create the project itself

  • Choose File -> New -> Java Project
  • Enter the name of your plugin
  • Choose Next
  • Click the Libraries tab.
  • Click Add External JARs
  • Choose the shaded version of the Spigot-API JAR file from the Spigot directory that you compiled above. Within the directory with BuildTools.jar the API file will be in Spigot/Spigot-API/target and will probably be named something like spigot-api-1.14.2-R0-SNAPSHOT-shaded.jar
  • Toggle the triangle to the left of spigot-api
  • Choose Javadoc Location
  • Click Edit
  • In Javadoc location path, enter: . This will allow the autocomplete in Eclipse to autocomplete Spigot API objects and methods.
  • Click OK
  • Create a package

  • Choose File -> New -> Package
  • Enter the name of your package. This is usually structured like a domain name, but in reverse. It should start with something that identifies you, and then have the name of the project at the end, and be all lower-case. Minecraft itself is net.minecraft.server for example, Spigot is org.spigotmc, and the Bukkit plugin API is org.bukkit.plugin. Ill use tld.example.myplugin in the examples.
  • Click Finish
  • Create the Main class

  • Choose File -> New -> Class
  • Enter the name of the class which will be loaded by Spigot when it loads the plugin. You can really name this anything you want , but for simplicity Ill call it Main in the examples.
  • Next to Superclass, click Browse
  • In the search box, type JavaPlugin, and choose what should be the only match
  • Click OK
  • You May Like: Xbox One Minecraft Seeds 2017

    Creating The Plugin’s Class

    Now that we have our project set up we can start to add class files and begin making our plugin. The plugin’s main class is the class that extends JavaPlugin. There should only ever be one class in your plugin that extends JavaPlugin either directly or indirectly. It’s always good practice to create your main class first and give it the same name as your plugin. Right click on the package you created before, and select New > Class.You should have a new class similar to the following

    package. publicfinalclassextendsJavaPlugin
    Warning: Plugins should never invoke their constructors and create new instances

    Introduction To Onenable And Ondisable

    Create the methods onEnable and onDisable inside the main class created in the previous section. It will look something like the following

    The methods now exist, but they don’t do anything yet.Note: There is no reason to print a message such as ” has been enabled!” as bukkit will do this automatically.For more information about events, click here.

    You May Like: Skyblock 2.5 Server

    What’s The Catch Seriously

    Alright, I get it.

    You are about to invest in yourself, you want to know that it is a worthy investment.

    Here Is the Truth

    1. You only get as much out of this course as you put in.

    You have to push updates, fix bugs, be there for your players etc. If there would be a secret “hit it and quit it” strategy, everyone would be rich years ago…

    2. The first months will be hard.

    This is not a “get rich quick” scam bullshit.

    Not as hard in terms of how much you need to work, but you probably will experience setbacks and to release your server 2.0 will probably take longer than you think. That’s fine, as I discussed above, it took me time to get to the point where I am now.

    However, with SpigotCourse, you have our Facebook group and email support available AT ALL TIMES. I am on there as well and will gladly help you if you reach any difficulties!

    3. If you want to sell premium resources, Spigot has requirements before you can start doing so.

    They are there to prevent scammers, and keep the market high quality. All members of that forum must have 8 weeks old account, 20 posts and released 3 free plugins before they can start to sell.

    That is not difficult at all, but enough to separate the winners from the rest.

    See this link for exact information.

    PS: If you have any pre-purchase questions, don’t hesitate and send an email to and I get back to you ASAP.

    How Do I Make A Minecraft 1164 Plugin On Visual Studio Code

    Bukkit Coding

    You cannot do that in Visual Studio Code. You must have a IDE and the jar of spigot / bukkit / paper.Spigot / Bukkit: papermc.ioIDE: Select community edition NOT ULTIMATE you must pay for that. Intellij IDEA is the best ideEclipse the worst IDE:

    You cannot do that in Visual Studio Code. You must have a IDE and the jar of spigot / bukkit / paper.Spigot / Bukkit: papermc.ioIDE: Select community edition NOT ULTIMATE you must pay for that. Intellij IDEA is the best ideEclipse the worst IDE:

    tf are you talking aboutyou can do java development in vscode

    You May Like: Minecraft Sky Factory 4 Server

    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 its 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 youd 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:

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

    I Never Thought This Was Possible

    I loved it.

    I had all of these great ideas in my head when I realized that the plugins on the market could not fulfill them.

    in order for my server to truly differentiate itself, I had to code own in features myselfHiring various developers turned out not only to be expensive and risky, but the constant need of fine-tuning, delays in communication, testing and innovating features become too complicated and slow.

    It seemed impossible at first. I tried to learn from various sources, including videos, articles and even self-teaching as I decompiled others’ products and tried to mess around with their source.This turned out to be a disaster…

    Don’t Miss: How To Play Minecraft On Laptop

    If You Are Coding Or Selling Already You’ll

    • Skyrocket the quality of your plugins.
    • Expand your coding knowledge so everything becomes possible…
    • Cut your testing time in half while maximizing efficiency.
    • Increase your sales and understand how the market works!
    • Eliminate bugs that are impossible to fix due to poor programming strategies…
    • Get skills to promote any product successfully!

    Building And Running The Plugin

    • Use “Ctrl + Alt + Shift + S” to open the “Project Structure” window. Then navigate to “Artifacts” under the “Project Settings” section on the right side.
    • Make sure the Module is the same as your project name, then click “Ok”.
    • At the top of the Intellij window, go to “Build” and then “Build Artifacts”, then click “Build” again on the window that appears.
    • Navigate to the output folder for your project . Yours should be similar, unless changed. You can check this by going to the “Project Structure” window using “Ctrl + Alt + Shift + S” and clicking on “Project”.
    • Once your have the compilied .jar file from your project, copy it into the “plugins” folder in your test servers directory, and start your test server up.
    • Open up Minecraft, connect to your test server, and execute the /hello command to see the “Hello world!” output.
    • Congratulations! You just sucessfully created your first spigot plugin!

    You May Like: Minecraft Sky Factory 4 Server

    Spigotcourse Contains Over 24 Hours Of Footage

    As such, I decided to split the course into two series:

    • This prevents you from watching 24 hours long course of which half you don’t need.
    • It makes the price lower for each one to make it more affordable.

    PS: If you are a hardcore dude and you go for both packages, I have a special offer for you, too!

    Reference The Bukkit Api

    Before you begin developing your plugin you will need to add the Bukkit API library to your project as a dependency, you can also add any other API’s you may want to use.

    Double-click pom.xml, which is at the bottom of your project’s folder. Click the pom.xml tab at the bottom, and you should see something like this:

    If you wish to use Java 6+ language features, you must specify the Java version that the project should be built on. Copy and paste this before < /project> :

    < build> < plugins> < plugin> < groupId> org.apache.maven.plugins< /groupId> < artifactId> maven-compiler-plugin< /artifactId> < configuration> < source> 1.7< /source> < target> 1.7< /target> < /configuration> < /plugin> < /plugins> < /build> 

    You may use other levels, such as 1.8 for Java 8 or 11 for Java 11. Please note that according to BStats, a sizeable number of servers run Java 8 , so compiling for Java 11 will result in many server owners being unable to run your plugin. If you do use Java 1.8 or 11 features, Eclipse will suggest changing the language level when you hover over the code “error”. Do so.

    Before the < /project> at the bottom, copy and paste this block :

    < repositories> < repository> < id> spigot-repo< /id> < url> < /url> < /repository> < /repositories> 

    The spigot repository is the only working repository as the former repository “bukkit-repo” is down.

    Next, before the < /project> at the bottom, copy and paste this block :

    Also Check: Set Up Sky Factory 3 Server

    Importing An Existing Project

    If youâve already started with your project and want to import it again at a later point you need to import it insteadof re-creating it inside your IDE:

    • Gradle: Navigate to the projectâs build.gradle file and select it.

    • Maven: Navigate to the projectâs pom.xml file and select it.

    • Make sure the settings are as you desire and click Ok.

    What Do I Need To Learn To Code Minecraft Plugins

    Bukkit Coding

    I want to code plugins for my minecraft server but i dont know what to learn and what do i need to learn firt?send me som links of where i can start learning it plsor ADD me on DISCORD if you are a good MINECRAFT PLUGIN CODER: Elite_CraftMC#5981

    Minecraft and Minecraft servers are Java. Thats what youll need for a plugin . All plugins require a .jar file to run, and optional configuration files, so youll need to think about that .

    How much experience do you have with:

  • Coding Java?
  • Coding plugins in Java
  • Running a bukkit/spigot server ?
  • I dont have any expirience whit Java Or coding plugins I only work on my own Minecraft server in the config fileCould you pls Send me the links I need to follow to learn iT?

    Recommended Reading: How To Customize Banners In Minecraft

    Popular Articles

    Related Stories

    Stay on op - Ge the daily news in your inbox