Spigot and Minecraft Plugins: What They Are, How to Install and Configure Your Server

  • /
  • /
Author: Rocket Tech School
Publication Date: 26.08.2026 | Review Date: 26.08.2026
According to the official SpigotMC website, thousands of public and private Minecraft servers run on Spigot or its forks — it's the most widely used server engine in the Java Edition ecosystem. The reason is straightforward: Spigot makes it possible to install plugins that add anything you can imagine to the game, from an economy system to custom minigames. This article covers what Spigot is, how it differs from Bukkit and a Vanilla server, how to install it, and which plugins to install first.

Contents

What Is Spigot and Why Do You Need It in Minecraft?

Spigot is a server core for Minecraft Java Edition that enables plugins to run and gives you fine-grained control over how the server behaves. Unlike a standard Vanilla server — which runs strictly according to Mojang's rules with no support for third-party extensions — Spigot provides a programming interface (the Bukkit API) through which developers write plugins in Java.

Think of it this way: a Vanilla server is the game as Mojang shipped it, while Spigot is that same game with the ability to install any extension, the same way you install apps on a phone. Want territory protection, a rank system, your own currency, quests, or automated announcements? All of it is done through plugins on Spigot.

Spigot also improves performance compared to plain Vanilla: it uses less RAM with the same number of players and lets you configure chunk loading distance, entity ticks, and other parameters that aren't available in the original. These settings give a server owner real control over how their world runs — how far chunks load, how often mobs update, and how many players the server can handle without losing performance.

How Spigot Differs from Bukkit and a Vanilla Server

To understand the ecosystem, it helps to see the hierarchy of server cores:
  • Vanilla — Mojang's official server. No plugins, no modifications API. Good for small private servers that don't need extra features.
  • Bukkit — the first major server core with plugin support, created long before Mojang had an official API. Bukkit is now history: the project is effectively frozen, but its API remains the standard.
  • CraftBukkit — an implementation of the Bukkit API on top of the Vanilla server. Also outdated as a standalone option.
  • Spigot — a fork of CraftBukkit with performance optimizations and extended configuration options. It became the industry standard for years.
  • Paper — a fork of Spigot with even deeper optimizations. For new servers in 2026, the official SpigotMC site recommends Paper as the primary choice: it's fully compatible with all Spigot plugins and runs 2–3 times faster under load.
If you're creating a server for the first time, Paper is the better pick. If you need compatibility with specific plugins or tutorials written for Spigot specifically, use Spigot. Either way, all plugins written for the Bukkit API run on both cores without modification.

How to Install a Spigot Server: A Step-by-Step Guide

Due to Mojang's licensing restrictions, Spigot can't be downloaded directly as a ready-made JAR file. To get it, you use a utility called BuildTools, which downloads the Vanilla server source and compiles Spigot directly on your computer. Since January 2024, BuildTools has a graphical interface, which makes the process much more approachable for beginners.
What you'll need before starting:
  • Java 21 — required for Minecraft 1.20.5 and above. Download from Adoptium or Oracle. Older versions of Minecraft (1.17–1.20.4) run on Java 17.
  • Git — a version control system that BuildTools depends on. Download from git-scm.com. Without Git, BuildTools will refuse to start.
  • Around 500 MB of free space and a stable internet connection: BuildTools downloads several repositories and compiles the JAR locally on your computer.
Installation steps:
  1. Download BuildTools.jar from the official SpigotMC page.
  2. Create a separate folder — for example spigot-server — and place BuildTools.jar inside it.
  3. Open BuildTools by double-clicking it or running java -jar BuildTools.jar. A graphical interface will appear.
  4. From the dropdown menu, select the Minecraft version you want (for example, 1.21.5) and click Compile.
  5. Wait for the compilation to finish: BuildTools will download everything it needs and produce spigot-1.21.5.jar.
  6. Create a server startup file next to it: java -Xmx2G -jar spigot-1.21.5.jar nogui. The 2G value can be increased if you have more RAM available.
  7. Start the server for the first time, accept the license agreement (change eula=false to eula=true in eula.txt), and restart.
After a successful launch, the server folder will contain configuration files: server.properties, spigot.yml, and bukkit.yml. Most server parameters are configured there.

What Is the Bukkit API and Why Does a Plugin Developer Need It?

The Bukkit API is the programming interface through which plugins interact with the Minecraft server. A developer writes a plugin in Java using Bukkit API classes and methods: subscribing to events (a player joins, a player breaks a block), handling commands, modifying the world, managing inventories.

The API's main advantage is stability. A plugin written for the Bukkit API keeps working on Spigot and Paper without changes, because all three cores implement the same interface. That's why plugins created years ago often still run on modern servers.

Plugin development starts with creating a Java project, adding the spigot-api dependency, and writing a main class that extends JavaPlugin. The plugin then subscribes to the events it needs via Bukkit.getPluginManager().registerEvents() and responds to them with its own logic.

Bukkit API documentation is available at hub.spigotmc.org/javadocs/spigot/. To develop a plugin, add the spigot-api dependency via Maven or Gradle and the full set of tools becomes available in any Java IDE.

Which Plugins Are Essential on a Spigot Server?

For most servers, there's a core set of plugins without which managing the game and moderating players is genuinely difficult:
  • EssentialsX — the administrator's Swiss army knife: teleportation commands, kit sets, home points, warp points, basic economy. Install this first on any server.
  • WorldGuard — territory protection against griefing. Lets you create zones where players can't build, break blocks, or kill other players.
  • LuckPerms — a permissions and rank system. Flexibly controls what players with different roles can do, from guest to administrator.
  • Vault — a bridging plugin between economy plugins and permissions plugins. Doesn't do anything on its own but is required as a dependency for many others.
  • CoreProtect — a server activity log. Records every broken block and lets you roll back changes after griefing.
All of these are free and available at spigotmc.org/resources. To install a plugin, copy its JAR file into the server's plugins/ folder and restart. Most plugins create their own configuration folder on first launch — that's where you adjust messages, set permissions, and configure behavior for your specific server.

How to Optimize a Spigot Server

Server performance is measured in TPS (Ticks Per Second). The normal value is 20 TPS. When TPS drops below 15, players experience lag: stuttering animations, delays when interacting with blocks, and rubber-banding movement. Check current TPS with the /tps command in the server console, or use the Spark plugin.
Key optimization settings in spigot.yml:
  • view-distance — chunk loading distance for players. A value of 6–8 instead of the default 10 significantly reduces load with barely noticeable impact on player experience.
  • mob-spawn-range — mob spawn radius. Reducing to 4–5 cuts down the number of entities being processed.
  • entity-tracking-range — the distance at which the server sends entity data to clients. Lowering this saves both bandwidth and CPU time.
Additional recommendations:
  • Use the Chunky plugin to pre-generate the world: a server handles load much more smoothly when chunks are already generated before players arrive.
  • Avoid plugins with constant per-tick timers (interval: 1). A badly written plugin can drop TPS more than a hundred players.
  • Monitor the output of /timings report or use Spark to identify performance bottlenecks.
It's also worth configuring the simulation-distance parameter in server.properties: it determines how far from a player game mechanics are actually processed (crop growth, mob behavior, redstone). A value of 4–6 with view-distance at 10 is a reasonable balance between performance and gameplay experience.

Where to Start If Your Child Wants to Build Minecraft Plugins

Plugin development for Minecraft is one of the best ways to get into real programming in a context a child already cares about. Plugins are written in Java, so the path starts with learning the language: variables, conditions, loops, classes. These are the same concepts that appear in every other programming language — the difference is that the result shows up directly inside the game.

The optimal starting age is 12–14, when a child is comfortable with a computer and can read English documentation, at least with a translator. Before that, programming in visual environments or Python makes excellent preparation: it builds logical thinking and an understanding of algorithms that transfer directly to plugin development.

The good news: the basic structure of a Minecraft plugin is no more complex than a typical Java tutorial project. Register an event handler, check a condition, perform an action. That logic is the same in any other programming context — the difference is that the result is visible instantly in the game world, which is a powerful motivation to keep going.

At Rocket Tech School, children learn programming through game projects: starting with visual tools, then moving to Python and game development in Unity. The skills built in those courses apply directly to Minecraft plugin development: object-oriented thinking, working with events, and structuring code cleanly.
What else is useful to read:
Programming, game development, digital creativity, and AI — choose an IT track that fits your child's age and interests!
9 courses to choose from: from animation to neural networks
We’ll find what truly sparks your child’s interest
Ages 12-17
Ages 7-11
Ages 5–6
Your child learns to work in basic visual editors: creating animations and building their first projects. By the end of the course, they confidently use a computer, while developing creativity and a programmer’s mindset.
We will create music
Will create pixel art animation
We’ll find what truly sparks your child’s interest
Ages 12-17
Ages 7-11
Ages 5-6
Ages 7-17
Math
Your child trains logic and learns to analyze data. By the end of the course, they fill gaps in the school curriculum and solve non-standard problems without memorization.
Ages 9-12
Creating game worlds. Your child programs characters, landscapes, and visual effects. By the end of the course, they can design complete games and bring entire game universes to life.
Ages 8-12
Programming through a favorite game. Your child will learn coordinates, loops, conditions, and functions, and by the end of the course will already be programming and building complex structures.
Ages 7-11
First steps in game development. Your child develops logical thinking and creativity, creating games and animations they can be proud of.
Ages 10-14
Your child learns to use neural networks for working with text, video, and audio. By the end of the course, they will be able to use them as a personal assistant: preparing presentations, checking facts, and completing school assignments more effectively.
Ages 7-17
Your child will learn to create images in a professional graphic editor, design a game scene, invent their own universe, and produce their own merchandise.
We’ll find what truly sparks your child’s interest
Ages 12-17
Ages 7-11
Ages 5-6
Ages 7-17
Maths
Your child develops logical thinking and learns to analyze data. By the end of the course, they fill gaps in the school curriculum and solve non-standard problems without memorization.
Ages 7-17
Your child will learn to create images in a professional graphic editor, design a game scene, invent their own universe, and create their own merchandise.
Ages 12+
Will introduce the basics of the C# programming language and the Unity game engine. By the end of the course, the student will have 3 complete game projects in their game designer portfolio.
Ages 12+
The first real programming language. Your child develops analytical and creative thinking, and by the end of the course creates web applications and websites.
Take the first step to unlock your child’s potential
Запишитесь на бесплатный урок. На занятии мы определим интересы ребенка, создадим первый проект и дадим план развития
© 2026
Rocket tech school LLC (USA)
401 Ryland Street, STE 200-A Reno, NV 89502 USA
IE Ivan Pavliunin
+1 (424) 208-02-11