Versions
Every Minecraft version from 1.8 to 26.3
21 version lines. Pick yours when you create a plugin and the code is written and compiled for it.
A plugin compiled for one version also loads on the other patch versions of the same line, because the Bukkit API does not change inside a line. The table shows what each build covers.
1.17 to 26.3: modern API
Compiled against the Paper API. Java 16 for 1.17, Java 17 for 1.18 to 1.20.4, Java 21 for 1.20.5 to 1.21.x and Java 25 for the 26.x versions.
| Version line | Covers | API | Java |
|---|---|---|---|
| 26.3 | 26.3 | Paper API | 25 |
| 26.2 | 26.2 | Paper API | 25 |
| 26.1 to 26.1.2 | 26.1, 26.1.1, 26.1.2 | Paper API | 25 |
| 1.21.9 to 1.21.11 | 1.21.9 to 1.21.11 | Paper API | 21 |
| 1.21.5 to 1.21.8 | 1.21.5 to 1.21.8 | Paper API | 21 |
| 1.21.2 to 1.21.4 | 1.21.2 to 1.21.4 | Paper API | 21 |
| 1.21 to 1.21.1 | 1.21, 1.21.1 | Paper API | 21 |
| 1.20.5 to 1.20.6 | 1.20.5, 1.20.6 | Paper API | 21 |
| 1.20 to 1.20.4 | 1.20 to 1.20.4 | Paper API | 17 |
| 1.19.x | 1.19 to 1.19.4 | Paper API | 17 |
| 1.18.x | 1.18 to 1.18.2 | Paper API | 17 |
| 1.17.x | 1.17, 1.17.1 | Paper API | 16 |
1.13 to 1.16: flattened API
Modern material names such as OAK_LOG and GRASS_BLOCK, with api-version in plugin.yml. Java 8 is enough for compiling.
| Version line | Covers | API | Java |
|---|---|---|---|
| 1.16.x | 1.16 to 1.16.5 | Spigot API | 8 |
| 1.15.x | 1.15 to 1.15.2 | Spigot API | 8 |
| 1.14.x | 1.14 to 1.14.4 | Spigot API | 8 |
| 1.13.x | 1.13 to 1.13.2 | Spigot API | 8 |
1.8 to 1.12: legacy API
Before the 1.13 "flattening". Items use the old names with data values, and plugin.yml has no api-version. Newer helpers such as action bar messages and some boss bar features do not exist, so the AI uses simpler alternatives.
| Version line | Covers | API | Java |
|---|---|---|---|
| 1.12.x | 1.12 to 1.12.2 | Spigot API | 8 |
| 1.11.x | 1.11 to 1.11.2 | Spigot API | 8 |
| 1.10.x | 1.10 to 1.10.2 | Spigot API | 8 |
| 1.9.x | 1.9 to 1.9.4 | Spigot API | 8 |
| 1.8 to 1.8.9 | 1.8 to 1.8.9 | Spigot API | 8 |
How to choose a version
Pick the version your server runs, not the newest one. A plugin has to match the Bukkit API of your server, and the version you choose decides which API the code is written against, which Java level it is compiled for and which items and blocks it may use. If you are unsure, start the server, type /version in the console and read the Minecraft version it prints.
- You run a recent production server: 1.21.x is the safest choice, with the widest plugin support and Java 21.
- You want the newest release: the 26.x lines work, but they need Java 25 and many public plugins are still catching up.
- You keep an older world alive: 1.16.5, 1.12.2 or 1.8.8 are the classic long-lived targets, each with its own item names and limits.
- You run PvP or minigames: many communities stay on 1.8 for its combat, and the generator writes plugins for it with the simpler API that exists there.
Why one build covers a whole line
Minecraft publishes many small patch versions inside a line, such as 1.20.1, 1.20.2, 1.20.3 and 1.20.4. The Bukkit API that plugins use stays the same through those patches, so a plugin compiled for 1.20.4 loads on all of them. Between lines the API can change: items get new names, methods are removed and Java requirements rise. That is why the table has one row per line and each row names the versions it covers.
The rows are also grouped by era. Before 1.13 the game used numeric data values for colors and variants, so wool, stained glass and similar blocks are written differently. From 1.13 on every item has its own name. From 1.17 the server needs a newer Java, and from 1.20.5 items store their data as components. The generator knows these differences and writes the code for the era you pick.
Java by Minecraft version
| Minecraft | Java | Class file version |
|---|---|---|
| 1.8 to 1.16 | 8 | 52 |
| 1.17 | 16 | 60 |
| 1.18 to 1.20.4 | 17 | 61 |
| 1.20.5 to 1.21.x | 21 | 65 |
| 26.x | 25 | 69 |
If your server shows an error about a class file version, the plugin needs a newer Java than the server runs. Our Java guide explains how to read it.
Version questions
Can I switch a plugin to another version later?
Yes, with the Maker pack or bigger the same plugin can be rebuilt for another version. The code is not rewritten, so a plugin that uses newer features than the target version may need a change through the chat.
Why is 26.x listed with Java 25?
The Paper API for the 26.x lines is built for Java 25, so the plugin has to be compiled with it and the server must run it.
Do you support Bedrock?
No. Plugins here are for Java Edition servers based on Bukkit, Spigot, Paper or Purpur.
What if my version is not listed?
Use the line it belongs to. Patch versions inside a line share the same API.
Runs on Paper, Spigot, Purpur and other Bukkit-based servers. Fabric, Forge, Velocity and Bungee are not supported yet.
Create a plugin for your version