Supported versions
| Platform | Versions |
|---|---|
| Spigot | 1.8 - 26.3, every NMS revision |
| Paper / Purpur | 1.8.8 - 26.3, every NMS revision |
| Bedrock players | Geyser / Floodgate on any of the above |
| Forge | 1.21.11, 26.1.2, 26.3 |
| Fabric | 1.21.11, 26.1.2, 26.3 |
| Minecraft | Java |
|---|---|
| 26.1+ | 25 |
| 1.20.5 - 1.21.11 | 21 |
| 1.17 - 1.20.4 | 17 |
| 1.8 - 1.16.5 | 8 |
How one jar runs everywhere
- A feature is an interface in the core module. What the Bukkit API can do is done there; what it can't is done in a module per NMS revision, registered as a service. Paper patches the server code differently, so every revision has a Paper version too, picked on Paper and Purpur.
- Each implementation declares the versions it covers; the most specific one for the running server is picked.
- Classes of newer APIs load only after a version check, so the same jar starts on 1.8 and on 26.x.
- Names that changed between versions are generated tables, not hand-written code.