A LuckPerms platform adapter for PumpkinMC via PatchBukkit.
Important
This adapter is currently under active development and tracks PatchBukkit compatibility as it evolves.
LuckPerms-Pumpkin brings the full LuckPerms permissions system to PumpkinMC servers. It is not a rewrite — it's a platform adapter that preserves LuckPerms' mature architecture while adapting it for Pumpkin's multi-threaded, async-oriented runtime.
- Plugin loading via PatchBukkit
-
/luckpermscommand and all subcommands - Web editor integration
- Storage backends — H2, SQLite, MySQL, PostgreSQL, MongoDB
- Permission resolution — inheritance, wildcards, negation, cached calculations
- Per-player
LuckPermsPermissibleinjection (1:1 Bukkit parity) - Server-level
PermissionMap/DefaultsMap/SubscriptionMapinjection - Child-permission resolution via
PumpkinPermissionMap - Contexts — gamemode, world
- Groups, tracks, meta, prefixes, suffixes
- Multi-language translations
- Cross-server messaging (
luckperms:updatechannel) - Diagnostics & benchmarks (
pumpkin-diag,pumpkin-benchmark) - Native
BukkitScheduler(merged upstream — PatchBukkit#15) -
ServicesManager/LuckPermsAPI registration (merged upstream — PatchBukkit#15) - Vault integration (
PermissionandChatvia VaultUnlocked) - Plugin messaging (
MessengerAPI — channel registration and dispatch)
- Requirements: PumpkinMC with PatchBukkit installed, Java 21+
- Download: Grab
LuckPerms-Pumpkin-*.jarfrom the releases - Deploy: Place the JAR into
patchbukkit/patchbukkit-plugins/ - Start: Start your Pumpkin server — config generates on first run
patchbukkit/
└── patchbukkit-plugins/
└── LuckPerms-Pumpkin-*.jar
Note
Requires Java 21 JDK or newer and Git.
git clone https://github.com/Sqrilizz/LuckPerms.git
cd LuckPerms/
./gradlew :pumpkin:loader:shadowJarOutput: pumpkin/loader/build/libs/LuckPerms-Pumpkin-*.jar
/luckperms user <name> # Manage user permissions
/luckperms group <name> # Manage group permissions
/luckperms track <name> # Manage tracks
/luckperms editor # Open web editor
/luckperms sync # Sync data from storage
/luckperms verbose # Verbose permission checking
/luckperms tree # Permission tree viewer
/luckperms log # View action log
/luckperms info # Plugin info
/luckperms pumpkin-diag # Thread & cache diagnostics (requires luckperms.admin)
/luckperms pumpkin-benchmark # Permission benchmarks (requires luckperms.admin)
Note
Aliases lp, perm, perms are also registered.
| API | Status |
|---|---|
| Commands | ✅ Supported |
| Player events (login/quit/gamemode/world) | ✅ Supported |
PermissibleBase injection |
✅ Supported |
PluginManager map injection |
✅ Supported |
ServicesManager |
✅ Merged upstream — LP API registered on startup |
BukkitScheduler |
✅ Merged upstream — native async scheduling |
Vault (Permission / Chat) |
✅ Implemented via VaultUnlocked |
getMessenger() |
✅ Implemented — channel registration and message dispatch |
getWorlds() |
✅ Implemented — world context supported |
- Phase 1 — Initial port (plugin loading, commands, permissions, storage)
- Phase 2 — Compatibility fixes (threading, player lifecycle, events)
- Phase 3 — Performance layer (caches, concurrent reads, benchmarks, diagnostics)
- Phase 3.5 — Full server-level permission infrastructure (1:1 Bukkit parity)
- Phase 4 — Pumpkin-native improvements (native scheduler, Vault integration)
- Phase 5 — Plugin messaging & World API
Contributions are welcome! Please follow the Google Java Style Guide and try to match the style of the file you're editing.
LuckPerms is licensed under the permissive MIT License.