LuckPerms: Vollständiger Leitfaden zur Rechteverwaltung auf dem Minecraft-Server

LuckPerms: Vollständiger Leitfaden zur Rechteverwaltung auf dem Minecraft-Server

LuckPerms ist der De-facto-Standard für die Rechteverwaltung auf Minecraft-Servern. Wer Paper, Spigot, Velocity, BungeeCord, Fabric oder Forge betreibt und den Zugriff zwischen Spielern, Moderatoren und Admins trennen will, landet fast immer bei diesem Plugin. Seit 2016 aktiv entwickelt, läuft es auf zehntausenden Servern und verarbeitet Milliarden von Permission-Checks.

Wir gehen alles Schritt für Schritt durch: Installation, erste Befehle, Gruppen, Vererbung, Präfixe, Tracks, Kontexte, Web-Editor, Storage-Backends, Synchronisation im BungeeCord-Netzwerk, PlaceholderAPI-Integration und die üblichen Stolperfallen.

Warum LuckPerms und nicht PEX oder GroupManager

PermissionsEx (PEX) ist tot, offiziell nicht mehr gepflegt, hat kritische Bugs mit Datenverlust und läuft schlecht mit aktuellen Paper-Versionen. GroupManager aus EssentialsX gilt als veraltet und bietet nur einen Bruchteil der Features. LuckPerms hat sich aus mehreren Gründen durchgesetzt:

  • Speicherung in jeder Datenbank: YAML, SQLite, H2, MySQL, MariaDB, PostgreSQL, MongoDB
  • Web-Editor unter luckperms.net/editor mit Admin-Panel-Feeling
  • Kontexte (Welt, Server, Gamemode, Dimension) out of the box
  • Tracks für Promotions: default nach vip nach moderator nach admin per Befehl
  • Stabile API für Plugin-Entwickler
  • Rechte-Synchronisation im BungeeCord / Velocity-Netzwerk per MySQL + Messaging

Wer noch PEX nutzt, sollte jetzt migrieren. Der Befehl ist eingebaut: /lp import pex.

Installation

Paper / Spigot / Purpur

  1. Neueste Version von luckperms.net/download herunterladen, Datei LuckPerms-Bukkit-5.x.x.jar
  2. In den Ordner plugins/ legen
  3. Server neu starten (nicht /reload, das zerschießt oft Plugins)
  4. Prüfen:
/plugins

LuckPerms muss grün erscheinen. Rot heißt Problem: meist Java-Versionsmismatch oder Kollision mit einem anderen Permission-Plugin.

Velocity (Proxy)

  1. LuckPerms-Velocity-5.x.x.jar herunterladen
  2. In den plugins/-Ordner von Velocity legen
  3. Proxy neu starten

Auf Velocity steuert LuckPerms die Rechte für Proxy-Befehle (Serverwechsel, globale Kommandos). Backend-Gameserver brauchen eine eigene Installation.

BungeeCord / Waterfall

Analog zu Velocity, LuckPerms-Bungee-5.x.x.jar herunterladen, in plugins/ von BungeeCord legen, neu starten.

Fabric

  1. Fabric Loader und Fabric API müssen installiert sein
  2. LuckPerms-Fabric-5.x.x.jar herunterladen
  3. In mods/ ablegen
  4. Neu starten

Bei Fabric muss der Client kein LuckPerms haben, nur der Server.

Forge / NeoForge

LuckPerms-Forge-5.x.x.jar oder LuckPerms-NeoForge-5.x.x.jar herunterladen, in mods/ ablegen, Server neu starten.

Plattform-Kompatibilität

PlattformUnterstütztHinweise
Paper 1.16+JaEmpfohlen
Spigot 1.8-1.20JaFür Legacy-Server
VelocityJaProxy
BungeeCordJaProxy, Legacy
Fabric 1.17+JaBenötigt Fabric API
Forge 1.16+Ja
NeoForgeJa1.20.1+
SpongeJaAPI 7/8
NukkitJaBedrock-Server

Erste Schritte

Nach der Installation erstellt LuckPerms automatisch die Gruppe default. Jeder Spieler ohne anderweitige Zuweisung landet dort. Man kann die Gruppe nicht löschen.

Funktionstest:

/lp info

Zeigt Plugin-Version, aktives Storage-Backend, Messaging-Dienst und Zählerstände für Spieler und Gruppen in der Datenbank.

Gruppenliste:

/lp listgroups

Zu sehen ist nur default mit Weight 0.

Basis-Hierarchie aufbauen

Für die meisten Server reichen fünf Gruppen: default, vip, moderator, admin, owner. Erstellen:

/lp creategroup vip
/lp creategroup moderator
/lp creategroup admin
/lp creategroup owner

Gewichte setzen. Das Weight bestimmt die Priorität bei Konflikten (wer mutet wen, welcher Präfix gewinnt) und die Sortierreihenfolge. Höher = wichtiger.

/lp group default permission set weight.1 true
/lp group vip permission set weight.10 true
/lp group moderator permission set weight.50 true
/lp group admin permission set weight.100 true
/lp group owner permission set weight.1000 true

Alternativ per meta:

/lp group vip meta setweight 10
/lp group moderator meta setweight 50
/lp group admin meta setweight 100
/lp group owner meta setweight 1000

Vererbung einrichten

Damit admin automatisch alle Rechte von moderator erbt und moderator von vip, Parents setzen:

/lp group vip parent set default
/lp group moderator parent set vip
/lp group admin parent set moderator
/lp group owner parent set admin

Baumstruktur: default nach vip nach moderator nach admin nach owner. Jedes Recht für default gilt automatisch für alle darüber.

Prüfen:

/lp group admin info

Unter Parents erscheint moderator, unter Inherited Permissions alle Nodes der darunterliegenden Gruppen.

Rechte vergeben

Gruppe ein Recht geben

/lp group default permission set essentials.help true
/lp group default permission set essentials.spawn true
/lp group vip permission set essentials.fly true
/lp group vip permission set essentials.hat true
/lp group moderator permission set essentials.ban true
/lp group moderator permission set essentials.kick true

Recht entziehen

/lp group vip permission unset essentials.fly

Unset entfernt die Node komplett. Wer explizit verbieten will (die Gruppe hat einen Wildcard essentials.*, aber ein einzelner Befehl soll blockiert sein), setzt false:

/lp group vip permission set essentials.nuke false

Recht an einen einzelnen Spieler geben

/lp user Steve permission set worldedit.limit.unrestricted true
/lp user Steve parent set vip

Zeile eins gibt Steve ein persönliches Recht. Zeile zwei packt ihn in die vip-Gruppe.

Temporäre Rechte

LuckPerms kann Rechte mit Ablaufdatum vergeben:

/lp user Steve parent add vip 30d
/lp group vip permission set essentials.fly true 7d

Erste Zeile: Steve ist 30 Tage in vip. Zweite: Gruppe bekommt Flug für 7 Tage.

Einheiten: s (Sekunden), m (Minuten), h (Stunden), d (Tage), w (Wochen), mo (Monate), y (Jahre).

Syntax der Permission Nodes

Jedes Plugin definiert eigene Nodes. Üblich ist hierarchisch per Punkt:

essentials.fly
essentials.home
essentials.home.multiple
worldedit.region.copy
worldedit.region.paste

Wildcards

Sternchen * gibt alles unter einem Zweig:

/lp group admin permission set essentials.* true
/lp group moderator permission set worldedit.region.* true

Bequem, aber gefährlich. essentials.* schaltet Befehle wie /fly, /heal, /god frei, die Moderatoren vielleicht nicht haben sollten.

Negative Rechte

False verbietet explizit:

/lp group vip permission set essentials.* true
/lp group vip permission set essentials.nuke false
/lp group vip permission set essentials.burn false

VIP bekommt fast alle EssentialsX-Befehle, außer den beiden riskanten.

Globale und Root-Nodes

Manche Nodes haben Sonderbedeutung:

  • * ist der absolute Wildcard, vergibt alles Mögliche. Nur für Owner.
  • luckperms.* öffnet alle LuckPerms-Befehle. Gefährlich, der Spieler kann dann selbst Rechte verteilen.
  • -bukkit.command.plugins blockiert /plugins, damit die Pluginliste nicht sichtbar ist.

Kontexte: Welt, Server, Gamemode

Kontexte erlauben Rechte nur unter bestimmten Bedingungen. Klassiker: /fly im lobby, aber nicht im survival.

/lp group vip permission set essentials.fly true world=lobby
/lp group vip permission set essentials.fly false world=survival

Kontexte gelten auch für Gruppen:

/lp user Steve parent add builder world=creative

Steve bekommt die Rechte der builder-Gruppe nur in der Welt creative.

Server-Kontexte

Wer mehrere Server unter einer LuckPerms-Instanz (per MySQL + BungeeCord) laufen lässt, trennt Rechte per server-Kontext:

/lp user Steve permission set essentials.fly true server=survival
/lp user Steve permission set essentials.gamemode true server=creative

Servername in der config.yml von LuckPerms auf jedem Backend:

server: survival

Eingebaute Kontexte

Ab Werk: world, server, dimension (Forge), gamemode. Addons liefern region (WorldGuard), faction (Factions) und mehr.

Präfixe und Suffixe

LuckPerms zeichnet keine Präfixe in Chat oder Tab, es speichert sie nur. Das Rendern übernehmen EssentialsX Chat, VentureChat, DeluxeChat oder TAB.

Präfix für eine Gruppe setzen:

/lp group vip meta setprefix "&a[VIP] "
/lp group moderator meta setprefix "&9[MOD] "
/lp group admin meta setprefix "&c[ADMIN] "
/lp group owner meta setprefix "&4[OWNER] "

Suffix:

/lp group admin meta setsuffix " &7*"

Präfixe werden vererbt. Hat ein Spieler keinen eigenen Präfix, wird der der höchsten Gruppe nach Weight genommen.

Mehrere Präfixe mit Priorität

/lp user Steve meta addprefix 100 "&6[DEV] "
/lp user Steve meta addprefix 50 "&a[VIP] "

Höhere Zahl, höhere Priorität. Der erste Präfix wird zuerst angezeigt.

EssentialsX Chat Konfiguration

In plugins/EssentialsChat/config.yml (in neueren Versionen gemeinsame Config) Format setzen:

chat:
  format: '{PREFIX}&f{DISPLAYNAME}&7: &f{MESSAGE}'

Je Gruppe eigenes Format:

chat:
  format: '{PREFIX}&f{DISPLAYNAME}&7: &f{MESSAGE}'
  group-formats:
    Default: '{PREFIX}&7{DISPLAYNAME}&7: &f{MESSAGE}'
    admin: '{PREFIX}&c{DISPLAYNAME}&7: &f{MESSAGE}'

Tracks: Aufstieg und Abstieg

Ein Track ist eine geordnete Kette von Gruppen. Praktisch für Rang-Systeme.

/lp createtrack staff
/lp track staff append vip
/lp track staff append moderator
/lp track staff append admin
/lp track staff append owner

Prüfen:

/lp track staff info

Spieler auf nächste Gruppe im Track befördern:

/lp user Steve promote staff

War Steve vip, ist er jetzt moderator. Nächste Promo: admin.

Zurückstufen:

/lp user Steve demote staff

Server-spezifische Tracks

Tracks funktionieren mit Kontexten. Promotion nur auf einem bestimmten Server:

/lp user Steve promote staff server=survival

Web-Editor

Das Killer-Feature. Auf dem Server:

/lp editor

Man erhält eine URL der Form https://luckperms.net/editor/abc123. Im Browser öffnen und man hat ein volles UI: Gruppenbaum, Rechteliste, Kontexte, Präfixe. Massen-Edits, Drag & Drop, Sortierung.

Nach Änderungen auf Save klicken, Code erscheint. Auf dem Server anwenden:

/lp applyedits abc123

Sicher by design: Der Editor speichert keine Serverdaten, nur den Snapshot, den man sendet.

Editor nur für eine Gruppe öffnen:

/lp editor group vip

Nur für einen Spieler:

/lp editor user Steve

Speicherung

Standardmäßig nutzt LuckPerms H2, eine eingebettete Datei-DB. Für einen Einzelserver reicht das. Bei BungeeCord- oder Velocity-Netzwerken mit mehreren Backends ist MySQL für die Synchronisation Pflicht.

Konfiguration in plugins/LuckPerms/config.yml:

storage-method: h2

Optionen: h2, sqlite, yaml, json, hocon, mysql, mariadb, postgresql, mongodb.

MySQL für ein Netzwerk

storage-method: mysql

data:
  address: 127.0.0.1:3306
  database: luckperms
  username: luckperms
  password: DEIN_PASSWORT
  pool-settings:
    maximum-pool-size: 10
    minimum-idle: 10
    maximum-lifetime: 1800000
    connection-timeout: 5000
  table-prefix: 'luckperms_'

Datenbank und User anlegen (MySQL 8):

CREATE DATABASE luckperms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'luckperms'@'localhost' IDENTIFIED BY 'DEIN_PASSWORT';
GRANT ALL PRIVILEGES ON luckperms.* TO 'luckperms'@'localhost';
FLUSH PRIVILEGES;

Die Tabellen erstellt LuckPerms beim ersten Start selbst.

Messaging für Echtzeit-Sync

MySQL allein reicht nicht. Änderung auf Server A, Server B merkt das erst beim Neustart oder per Hand-Sync. Abhilfe schafft Messaging:

messaging-service: pluginmsg

Optionen:

  • pluginmsg über den Minecraft-Plugin-Kanal, gratis, braucht Proxy (BungeeCord/Velocity)
  • redis braucht Redis-Server
  • rabbitmq braucht RabbitMQ
  • sql fragt MySQL regelmäßig ab, nicht sofort

Für die meisten Netzwerke reicht pluginmsg.

Backups

Export aller Daten:

/lp export backup.json.gz

Datei landet in plugins/LuckPerms/. Import:

/lp import backup.json.gz

Vor großen Änderungen (Migrationen, Masseneditings) Backup machen.

Migration von anderen Plugins

Von PermissionsEx

/lp import pex

Der Befehl liest PEX-Daten und legt passende Gruppen und Rechte in LuckPerms an.

Von GroupManager

/lp import groupmanager

Von PermissionsBukkit

/lp import permissionsbukkit

Nach Import Weights und Vererbung prüfen, diese werden oft nicht perfekt übertragen.

PlaceholderAPI-Integration

PlaceholderAPI installieren, Expansion herunterladen:

/papi ecloud download luckperms
/papi reload

Verfügbare Placeholder:

PlaceholderRückgabe
%luckperms_prefix%Präfix des Spielers
%luckperms_suffix%Suffix des Spielers
%luckperms_primary_group_name%Name der Primärgruppe
%luckperms_groups%Komma-getrennte Gruppenliste
%luckperms_meta_<key>%Beliebiger meta-Schlüssel
%luckperms_has_permission_<node>%true/false für die Node
%luckperms_expiry_time_<group>%Ablaufzeit einer temporären Gruppe

Im TAB-Plugin:

tablist-name-format: '%luckperms_prefix%%player_name%%luckperms_suffix%'

Im Scoreboard:

lines:
  - '&7Gruppe: %luckperms_primary_group_name%'
  - '&7Rang: %luckperms_prefix%'

Typische Aufgaben

VIP darf fliegen

/lp group vip permission set essentials.fly true
/lp group vip permission set essentials.fly.others false

Default darf kein TNT zünden

/lp group default permission set worldguard.region.bypass.* false

Dazu in WorldGuard auf der mainworld-Region:

/region flag __global__ tnt deny

Moderator darf bannen, aber nicht oppen

/lp group moderator permission set essentials.ban true
/lp group moderator permission set essentials.kick true
/lp group moderator permission set essentials.tempban true
/lp group moderator permission set essentials.op false
/lp group moderator permission set minecraft.command.op false

Build-Zone für VIP-Bauer

/lp creategroup builder
/lp group builder parent set vip
/lp group builder permission set worldedit.* true world=build
/lp group builder permission set worldedit.* false world=survival

AFK-Recht nur für eine Gruppe

/lp group afkers permission set essentials.afk true
/lp user Steve parent add afkers 1h

Debugging der Rechte

Verbose-Modus

Wenn unklar ist, warum ein Befehl für den Spieler nicht funktioniert:

/lp verbose on

LuckPerms loggt dann jede Rechteprüfung. Spieler versuchen lassen, in der Konsole Zeilen wie:

[LP] Steve - essentials.fly - true (from group.vip)
[LP] Steve - worldguard.region.bypass.spawn - undefined

Ausschalten:

/lp verbose off

In Datei speichern:

/lp verbose record

Log dann über den Web-Editor runterladen, Link erscheint in der Konsole.

/lp user info

Alle Infos zu einem Spieler:

/lp user Steve info

Zeigt Primärgruppe, Weights, Präfixe, Suffixe, Kontexte, komplette Rechteliste.

/lp check

Schneller Einzeltest:

/lp user Steve permission check essentials.fly
/lp user Steve permission check essentials.fly world=survival

Gibt true oder false aus und verrät, woher das Recht kommt (inherited from vip, explicit set, default node).

Häufige Fehler

Änderungen greifen nicht

Meistens Cache. Nach großem Edit:

/lp sync

Oder mit Messaging: ein paar Sekunden warten.

Spieler versehentlich in zwei Gruppen

Wer /lp user Steve parent set vip und dann /lp user Steve parent add moderator macht, hat zwei Parents. set ersetzt, add ergänzt. Kontrolle per /lp user Steve info.

Präfix erscheint nicht im Chat

LuckPerms speichert nur. Das Rendern macht EssentialsX Chat, VentureChat, DeluxeChat, TAB, HuskChat, dort Format mit {PREFIX} oder %luckperms_prefix% setzen.

Wildcard funktioniert nicht

Manche Plugins (alte WorldEdit-Versionen zum Beispiel) registrieren ihre Nodes nicht bei Bukkit, worldedit.* fängt sie nicht ab. Nodes explizit setzen.

Konflikt mit anderen Permission-Plugins

PEX und LuckPerms zusammen geht nicht. PermissionsEx.jar aus plugins/ entfernen, bevor LuckPerms installiert wird. Prüfen:

/plugins

Nur LuckPerms darf dort erscheinen.

Rechteverlust nach Neustart

Bei YAML-Storage kann ein Crash während des Schreibens Daten zerstören. Ernsthafte Server meiden YAML: H2, SQLite oder MySQL nutzen.

SQLSTATE 28000 bei MySQL-Verbindung

Falsche Credentials oder User ohne DB-Rechte. Prüfen:

SELECT user, host FROM mysql.user WHERE user = 'luckperms';
SHOW GRANTS FOR 'luckperms'@'localhost';

Der User braucht ALL PRIVILEGES ON luckperms.*.

Sicherheit

luckperms.* gehört ausschließlich dem Owner. Diese Node erlaubt das Vergeben und Entziehen beliebiger Rechte, faktisch ein Vollzugang. Moderatoren reichen luckperms.user.info und luckperms.user.parent.add ohne luckperms.user.parent.set.

Op-Befehl außer für Owner blockieren:

/lp group default permission set minecraft.command.op false
/lp group admin permission set minecraft.command.op false
/lp group owner permission set minecraft.command.op true

In server.properties:

enable-command-block=false
op-permission-level=4

OP-Spieler haben sämtliche Rechte, unabhängig von LuckPerms. Produktionsserver verzichten daher auf /op, alles läuft über LuckPerms-Gruppen.

Performance

LuckPerms ist sauber geschrieben und hat praktisch keinen TPS-Impact. Auf riesigen Servern (500+ Spieler, Tausende Nodes) lohnen ein paar Optimierungen:

  • MySQL statt YAML, schnellerer Lookup
  • Rechte nicht mit einer Million Negativen aufblähen, stattdessen saubere Vererbung
  • Cache ist standardmäßig 60 Sekunden, für die meisten Workloads passend

Statistiken:

/lp info

Unten stehen letzte Sync-Zeit und Cache-Größe.

Fazit

LuckPerms gehört auf jeden ernsthaften Minecraft-Server. Fünf Minuten Installation, eine halbe Stunde für Gruppen und Vererbung, danach kommen neue Rechte einfach dazu, wenn neue Plugins installiert werden. Der Web-Editor spart bei Großumbauten Stunden, Kontexte ermöglichen komplexe Pro-Welt- und Pro-Server-Regeln, Tracks halten Rang- und Donor-Leitern sauber.

Grundregel: erst den Gruppenbaum mit Vererbung aufbauen, dann individuelle Spielerrechte hinzufügen. Wer zehn Leuten das gleiche Recht per Hand gibt, hält inne und erstellt dafür eine Gruppe. So bleibt das System wartbar, auch wenn der Server auf hunderte Spieler wächst.


Schützen Sie Ihren Server vor DDoS-Angriffen

Kostenloser Schutz mit 5-Minuten-Einrichtung. 1 TB Traffic inklusive.

Kostenlos testen


Weitere Artikel