There are a lot of tools, libraries and frameworks for Bukkit-based plugin development. This file lists an unexhaustive selection.
Full-blown frameworks that operate on top of Bukkit and define how you write your plugins.
-
helper is another all-in-one framework that aims to reduce most boilerplate code in bukkit but also other stuff like lilypad, redis and database management.
Main features:
- Events
- Scheduler
- Promise
- Metadata
- Messenger
- Commands
- Scoreboard
- GUI
- Menu Scheming
- Random
- Bucket
- Profiles
- Plugin & Maven- Annotations
- Terminables
- Serialization
- Bungee Messaging
- JavaScript Plugins
-
kelp is an all-in-one framework that aims to avoid version-depended code.
Core features:
- Sidebar system
- Inventory system
- NPC system:
- Command system
- Config system
-
SpigotLib is a collection of several useful libraries and APIs for Spigot plugin development.
Features:
- Animations
- BungeeCord Communication
- Chat API
- Command API
- Config management
- EconomyAPI
- Gui API
- Json API
- Language management
- Map API
- Mojang API
- MySQL API
- NBT API
- Packet API
- PlayerFile
- RomanNums API
- Scoreboard API
- Time API
- Title API
- TPS meter and crashreporter
- Variable API
Tools that help you with compatibility, interopability, and workflow.
-
docker-minecraft-server by @itzg
Dockerize minecraft servers by providing customizable images.
-
MinecraftDev by @minecraft-dev
An IntelliJ plugin that helps you with plugin projects, among others.
-
paperspigot-docker by @FelixKlauke
Easy to use and clean Docker image for running Paper Spigot servers in Docker containers using OpenJDK.
-
compatre replaces version-specific nms and craftbukkit types at runtime using bytecode manipulation.
Main features:
- Version compatibility with only a single annotation
- Java agent/Custom class loader
-
ProtocolSupport by @ProtocolSupport
ProtocolSupport exists to solve the age-old problem of "What do I do if my users refuse to update their client?" in the most effective way possible.
-
XSeries provides abstraction for several version-depended classes.
Main features:
- potions, materials, sounds, particles, ...
- blocks, entities, bioms
-
libby lets you add your external dependencies to the classpath without shading.
Main features:
- Dependency relocation
-
pdm by @knightzmc
pdm lets you add your external dependencies to the classpath without shading.
Main features:
- Declarative dependency notation
- Reuse of shared dependencies (including transitive ones)
- Plugin to integrate with Gradle
-
PlaceholderAPI by @extendedclip
PlaceholderAPI provides a uniform way to share information with and use information from other plugins.
Main features:
- Developer API
- External expansions
-
Vault provides bridge APIs for common plugin systems on Bukkit servers.
Main features:
- Economy API
- Chat API
- Permissions API
-
A GitHub action that allows you to easily compile Minecraft Spigot and install it in your runners local maven repository.
High-level alternatives and extensions for Bukkit's rusty command system. They all aim to reduce the boilerplate involved in writing commands the traditional way.
- Annotation Command Framework by @aikar
- Brigadier by @Mojang
- cloud by @Incendo
- CommandAPI by @JorelAli
- CommandFlow by @unnamed
- Commands-Plus by @Paulanerus
- Commodore by @lucko
- kaesk by @DRSchlaubi
- Matt's framework by @ipsk
- simple-commands by @Paul2708
Templates are repositories which you can use to reduce the work on creating a new project with all that boilerplate stuff.
-
spigot-gradle-java-template by @NyCodeGHG
Template for creating a Spigot Plugin with Gradle.
-
spigot-gradle-kotlin-template by @NyCodeGHG
Template for creating a Spigot Plugin with Gradle and the Kotlin programming language.
-
spigot-plugin-template by @Silthus
Quickstart template to create new Spigot Minecraft plugins.
Libraries are projects that focus on a specific aspect of plugins.
-
A simple yet powerful framework which simplifies the use of Plugin Messaging Channels.
-
A lightweight BungeeCord protocol framework supporting items.
-
Adventure is a library for server-controllable user interface elements in Minecraft: Java Edition.
-
adventure-text-minimessage by @KyoriPowered
Simple library that implements an easy to use textual format to send rich json messages with Adventure.
-
better-components by @RealCerus
A very small Spigot library for text components.
-
This project contains more APIs that help the developer in using the books.
-
Add click and hover events to chat messages!
-
IridiumColorAPI by @Iridium-Development
Add gradients and rainbow effects to your messages.
-
An easy to use, fast and lightweight Minecraft chat component library, written in Kotlin.
-
A Discord like markdown implementation for Spigot supporting colors and gradients.
-
A library that adds the ability to use a MarkDown inspired markup to write Minecraft chat components!
-
simple-message-system by @Amejonah1200
A simple message system for Spigot.
-
SimplixStorage by @Simplix Softworks
A library to store data in a better way independently from Bukkit or BungeeCord
-
spigot-lite-repositories by @ExpDev07
An easy way to store objects in spigot plugins, supporting the JSON format.
-
Utilitites to avoide boilerplate code when working with SQL, contains QueryBuilder, DataSource helper functions and more
-
EventAwaiter.java by @Paul2708
A class that allows to wait (non-blocking) for an event.
-
AnvilGUI provides an API to open an anvil inventory that reacts on renaming.
Main features:
- support of nearly every version
- easy-to-use builder
- set title, items, closing listener and completion listener
-
Yet another bukkit inventory gui library
-
IF by @stefvanschie
An inventory framework for managing GUIs
-
A Java user-interface library with support for Minecraft.
-
SmartInvs provides an interface for creating inventories by setting clickable items.
Main features:
- Iterator for inventory slots
- Page system
- Util methods to fill an inventory's row/column/borders/...
- Actions when player clicks on an item
More features and examples can be found here.
-
A simple to use graphical interface system for spigot.
-
Simple lib to create inventory GUIs for Bukkit platforms.
-
yet another minecraft inventory framework
Main features:
- intuitive and abstract component API
- easy to use
- minimal
-
HolographicDisplays by @filoghost
Plugin and API to create holograms.
-
AnimatedFrames by @InventivetalentDev
Play GIFs and display images in Minecraft
-
EzMediaCore by @MinecraftMediaLibrary
A professional media playback library and plugin that allows you to play videos in Minecraft!
-
Streaming OBS video into maps on item frames at a high frame rate
-
Easy-to-use API for creating clientside Spigot maps
-
menu-framework by @heroslender
Innovating the way you make menus in minecraft java edition by using maps to render a custom UI and allowing the player to interact with it.
-
MinecraftMaps by @Redstonneur1256
MinecraftMaps is a plugin and API used to create interactive in game displays.
-
Library for doing cool stuff (screenshots, videos, 3D rendering, gifs, ...) with Minecraft maps using packets
-
Library to render custom images, gifs and text on Minecraft map items
Main features:
- Lots of customisation (how often to render, to whom to render, ...)
- Tools to resize/crop/divide images and gifs to better fit maps
- Persistence API
-
Java API wrapper for the most commonly used parts of the Mojang API.
-
NMS-free NBT api with yaml, json, SQL and Redis serialization.
-
Named Binary Tag (NBT) library for Kotlin Multiplatform
-
simple-nbt by @cerus
Very simple implementation of the NBT (Named Binary Tag) format, including reading and writing.
-
Play custom
.nbs
files ingame as noteblock sound.
-
API to create and manage NPCs using the Citizens plugin
-
Create fake players with additonal settings by using a clean interface.
-
Asynchronous, high-performance Minecraft NPC library for 1.8-1.16 servers.
-
Library that allows developers to create NPCs with an easy-to-use API.
-
Modern and easy to use packet listener library for modifying packets
-
ProtocolLib by @aadnk/@dmulloy2
ProtocolLib provides read and write access to the Minecraft server protocol in combination with Bukkit.
-
Allows constructing of complex effects.
-
A spigot library supporting all particles from 1.8 to 1.16.5.
-
Library to help organize tasks.
-
Library for easier usage of Bukkit Schedulers with the [Kotlin](https://kotlinlang.org programming language.
-
A Scoreboard API for Bukkit with 1.7-1.16 support.
-
JScoreboards by @JordanOsterberg
An API with global and per-player scoreboard support.
-
This API adds custom lines of text below a players name.
-
Netherboard provides a simple-to-use wrapper for scoreboards.
Main features:
- simple syntax for creation
BPlayerBoard board = Netherboard.instance().createBoard(player, scoreboard, "My Scoreboard");
- simple syntax for adding/removing scores:
board.set("Test Score", 5);
,board.remove(5)
- simple syntax for creation
-
simple-scoreboard by @einfachBlu
This library was made to handle easier the scoreboard components, especially tablist and the sidebar.
-
Spigot Socket API and Bungeecord Skript Addon.
-
MockBukkit is a framework that makes the unit testing of Bukkit plugins a whole lot easier. It aims to be provide complete mock implementation of CraftBukkit that can be completely controlled from a unit test.
-
Hides entities and tiles(mainly chests) that players are not able to see due to blocks in the way(occlusion culling), and then blocks packets for these entities.
-
FastAsyncWorldEdit by @boy0001
Fork of WorldEdit that operates asynchronously for higher performance.
-
Iris is a full-featured terrain generator including multiple dimensions and configuration opportunities.
-
Slime-World-Manager by @Grinderwolf
Implementation of the Slime Region Format, developed by the Hypixel Dev Team.
-
Plugin and API to manipulate Minecraft worlds.
-
WorldGeneratorAPI by @rutgerkok
API to create custom world generators easily.
-
WorldGuard by @sk89q
Plugin and API to manage and protect custom areas of Minecraft worlds.
Who says that you can only use Java to write plugins?
-
VisualBukkit by @OfficialDonut
VisualBukkit is a visual programming language for Bukkit plugins.
-
Skript is a domain specific language for Bukkit with the aim to enable non-programmers to be able to write their own plugins.
-
NPC and general Spigot scripting, using the Denizen Scripting Language.
-
spiglin is a collection of extensions and utilities for plugins written in the Kotlin programming language.
-
KotlinBukkitAPI by @DevSrSouza
KotlinBukkitAPI is an API for Bukkit/SpigotAPI using the cool and nifty features Kotlin has to make your life more easier.
-
KSpigot adds functionality missing in spigot and makes it possible to do things the kotlin way.
-
spigot-clj-template by @JohnnyJayJay
spigot-clj-template is a Leiningen template to write plugins using the Clojure programming language.
-
spigot-gradle-kotlin-template by @NyCodeGHG
Template for creating a Spigot Plugin with Gradle and the Kotlin programming language.
-
minecraft-python is an interpreter system leveraging Jython to write Spigot plugins in Python.
-
Lukkit allows you to write Spigot plugins in LUA.