# LuckPerms: group-based permission control for 7 Minecraft server platforms

> LuckPerms is a permissions plugin for Minecraft servers, covering Bukkit, BungeeCord, Fabric, Forge, Nukkit, Sponge and Velocity through a modular architecture with a single shared implementation module. A public Java API, published to Maven Central, lets other plugins query and modify permission data without bundling the plugin itself.

**LuckPerms/LuckPerms** — A permissions plugin for Minecraft servers.

- Repository: https://github.com/LuckPerms/LuckPerms
- Website: https://luckperms.net
- Stars: 2,330 · Forks: 700
- Language: Java
- License: MIT
- Published: 2026-10-11 · Updated: 2026-10-11 · Language: en
- Canonical page: https://hysenlabs.com/projects/luckperms-luckperms

## What Minecraft server admins get from group-based permission assignment

LuckPerms solves a specific administrative problem for Minecraft server operators: controlling which actions players are allowed to perform. The plugin lets admins define named groups, assign permissions to those groups, and then place players into groups so they inherit the appropriate permissions. A player in a moderator group picks up every permission that group carries, without the admin setting individual permissions per player.

The platform list covers 7 server types: Bukkit, BungeeCord, Fabric, Forge, Nukkit, Sponge and Velocity. Each platform module is separate in the repository, but all 7 draw from a shared Common module that holds the main implementation. A feature change in Common propagates across all platform builds rather than requiring 7 separate commits.

Installation steps are not included in the README itself; the homepage at luckperms.net hosts downloads, the wiki and other reference links.

## Building from source: Java 21, Gradle, and 2 possible output paths for the jars

Building LuckPerms from source requires Java 21 JDK or newer and Git. The build system is Gradle, invoked through the bundled wrapper script.

```sh
git clone https://github.com/LuckPerms/LuckPerms.git
cd LuckPerms/
./gradlew build
```

After the build completes, output jars land in either `loader/build/libs` or `build/libs`. The README lists both paths without specifying which applies to which configuration, so checking both directories is the practical approach.

Automated tests run as part of each build. Unit tests are in `common/src/test` and integration tests are in `standalone/src/test`. Both suites execute automatically during `./gradlew build` without any extra step.

## The API module: semantically versioned, published to Maven Central, separate from implementation

LuckPerms exposes a public API module that is versioned independently from the plugin binary. The module is published to Maven Central under the artifact `net.luckperms/api`, and a badge in the README links directly to the Maven Central listing for the current version.

Plugin developers who need to read or modify LuckPerms permission data can declare a dependency on `net.luckperms/api` rather than bundling or shading the full plugin. Because the API carries its own semantic version, a plugin built against that artifact has a stable contract that internal LuckPerms refactors do not break, as long as the API version remains compatible.

The javadoc badge in the README links to the generated API documentation at javadoc.io, which provides the full public interface for integration.

## 3 configuration surfaces: commands, config files, and the web editor

LuckPerms provides 3 distinct surfaces for managing permissions. The first is in-game commands, which suit admins making changes while the server is running. The second is direct config file editing, which fits automated provisioning workflows or version-controlled server setups where permissions are tracked in source control. The third is the web editor, a graphical interface for admins who prefer not to work with commands or raw files.

All 3 approaches manage the same underlying permission data, so admins can mix them across different workflows.

LuckPerms supports multiple data storage options, though specific backends are not named in the project documentation. Storage configuration is covered on the wiki at luckperms.net.

## A hytale/ directory in the repository that the README does not document

The repository's top-level entries include a `hytale/` directory alongside the 7 platform directories listed in the README. The README's platform list names Bukkit, BungeeCord, Fabric, Forge, Nukkit, Sponge and Velocity; Hytale does not appear in that list, in the repository topics or anywhere else in the README text. The `hytale/` directory exists in the source tree without any documentation describing it as a supported or planned platform.

No documentation in the README, the repository topics or the project description explains what Hytale support covers or whether it is complete. The directory exists in the source tree without any note describing its status, which makes it a detail a surface-level read would miss entirely.

Contributing guidelines ask that pull requests follow the Google Java Style Guide loosely and match the style of the file being edited. Bug fix contributions are specifically mentioned as welcome.

## Java 21 as the build minimum, and why downloads are served from the homepage

The Java 21 JDK requirement sets the floor for both building and running LuckPerms. Any hosting environment on an older JDK cannot use the current source. For managed hosting environments where the JDK version is fixed by the provider, this is the first constraint to verify before attempting a build.

The last push to master was on 2026-09-19, and the project is MIT-licensed; no version tags appear in the GitHub repository, so downloads are listed on the homepage at luckperms.net. Tools that monitor GitHub repositories for new plugin versions will not detect LuckPerms updates through that channel, since distributions are served from the project site.

## Where LuckPerms is not the right fit

LuckPerms is purpose-built for Minecraft server environments. It has no use case outside Minecraft server software and cannot be adapted to serve as a general application permission layer.

Admins running Minecraft server software not in the supported platform list face a gap. Minestom, for example, is not mentioned in the README. Using the public API module at `net.luckperms/api` provides a way to write an integration if the underlying LuckPerms plugin can be loaded in the environment, but the README does not document this path.

For small single-server setups with a simple permission structure, flat per-player permission files handled by a lighter plugin may be easier to manage than LuckPerms' group model. LuckPerms' multi-platform support and web editor add the most value on larger networks where consistent permissions must span multiple connected servers.

## Conclusion

Server admins who run Bukkit, BungeeCord, Fabric, Forge, Nukkit, Sponge or Velocity servers and need group-based permission control will find LuckPerms covers most scenarios. Plugin developers can depend on the versioned API at net.luckperms/api on Maven Central rather than the full binary. The hard constraint is Java 21: any hosting environment on an older JDK cannot use the current build. Before adopting, confirm your JDK version meets the Java 21 minimum and check luckperms.net for the current download, since distributions are served from the homepage rather than the GitHub repository.

## FAQ

### What server platforms does LuckPerms support?

LuckPerms supports 7 platforms: Bukkit, BungeeCord, Fabric, Forge, Nukkit, Sponge and Velocity. Each platform has its own module in the repository, all sharing a common implementation module.

### How do I build LuckPerms from source?

Clone the repository with Git, enter the directory, and run ./gradlew build. Java 21 JDK or newer is required. Output jars land in loader/build/libs or build/libs after the build completes.

### Does LuckPerms have a public API for plugin developers?

Yes. The net.luckperms/api artifact is published to Maven Central with its own semantic version, separate from the plugin binary. Plugins that depend on this artifact can read and modify LuckPerms permission data.

### What Java version does LuckPerms require?

LuckPerms requires Java 21 JDK or newer to build and run. Any server environment on an older JDK cannot use the current source.

### How do I download LuckPerms?

Downloads are available through the project homepage at luckperms.net. The GitHub repository has no release tags, so the homepage is the correct place to find the current plugin files.

## Sources

- [Issues](https://github.com/LuckPerms/LuckPerms/issues)
- [License: MIT](https://github.com/LuckPerms/LuckPerms/blob/master/LICENSE)
- [LuckPerms/LuckPerms on GitHub](https://github.com/LuckPerms/LuckPerms)
- [Project website](https://luckperms.net)
- [README](https://github.com/LuckPerms/LuckPerms/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/luckperms-luckperms
