LuckPerms — kompletny przewodnik po systemie uprawnień Minecraft
Grupy, dziedziczenie, wagi, prefiksy, czasowe permisje, web-editor i konteksty per świat. Pokazujemy, jak ustawić LuckPerms tak, by nigdy więcej nie wracać do tematu uprawnień na serwerze.
LuckPerms to plugin, który stoi za systemem uprawnień praktycznie na każdym poważnym serwerze Minecraft. Wyparł starsze PEX, GroupManager i bPermissions dzięki sensownemu API, web-edytorowi i wsparciu dla wszystkich nowoczesnych platform — Bukkit, Paper, Velocity, BungeeCord, Sponge, Fabric. Jeśli prowadzisz serwer dłużej niż tydzień, prędzej czy później staniesz przed pytaniem: jak ustawić, żeby tylko VIP-y mogły używać /fly, jak nadać moderatorowi prawo banowania, ale nie wyłączania serwera. Ten przewodnik prowadzi przez wszystko, co naprawdę trzeba wiedzieć.
Czym jest LuckPerms — i czemu właśnie on?
LuckPerms to system permisji oparty o grupy i uprawnienia. Każdy gracz należy do jednej lub więcej grup, każda grupa ma zestaw permisji (np. essentials.fly, worldedit.region.set). Plugin sprawdza w runtime'ie, czy gracz ma daną permisję, gdy próbuje wykonać akcję.
Dlaczego LuckPerms wygrał?
- Szybki — wszystkie operacje asynchroniczne, cache w pamięci, brak blokowania głównego wątku,
- Wieloplatformowy — ten sam plugin działa na Paperze, Velocity i Fabric,
- Web-editor — graficzny edytor permisji w przeglądarce, ogromna oszczędność czasu,
- Solidny storage — pliki YAML, JSON, MySQL, MariaDB, PostgreSQL, MongoDB, SQLite,
- Synchronizacja przez sieć — w trybie proxy zmiany od razu trafiają na wszystkie podserwery,
- Aktywny rozwój — Lukasz „lucko" Pomelaza wciąż wypuszcza patche i pomaga na Discordzie.
Instalacja krok po kroku
- Pobierz wersję dla swojej platformy z
luckperms.net(uważaj — osobne pliki dla Bukkit, Velocity, BungeeCord), - Wrzuć JAR do folderu
plugins/, - Zrestartuj serwer — przy pierwszym uruchomieniu utworzy się struktura plików w
plugins/LuckPerms/, - Wejdź na serwer jako OP i sprawdź wersję:
/lp info, - Nadaj sobie grupę
admin(lub stworzoną przez Ciebie):/lp user TwojNick parent set admin.
Komenda /lp ma alias /luckperms i /perms — używaj tej, która jest dla Ciebie wygodniejsza.
Grupy — fundament systemu
Domyślnie istnieje jedna grupa: default. Każdy nowy gracz do niej trafia. To w niej trzymasz najmniej restrykcyjne permisje („zwykły gracz").
Typowa hierarchia na serwerze SMP:
default → vip → vip+ → premium
↓
support → mod → admin → owner
Tworzenie grupy:
/lp creategroup vip
/lp creategroup mod
/lp creategroup admin
Każda grupa to osobny plik w plugins/LuckPerms/yaml-storage/groups/ albo wiersz w tabeli SQL.
Nadawanie uprawnień
Najczęstsza operacja w codziennej obsłudze serwera. Składnia:
/lp group nazwa permission set permisja true
/lp group nazwa permission unset permisja
/lp user nick permission set permisja true
Przykład — VIP-y mogą używać /fly i mają więcej domów w EssentialsX:
/lp group vip permission set essentials.fly true
/lp group vip permission set essentials.sethome.multiple.vip true
Permisje negatywne (ujemne) blokują akcję, nawet jeśli nadrzędna grupa pozwala:
/lp group mod permission set essentials.kick.exempt false
To bardzo przydatne, gdy chcesz dać moderatorowi większość uprawnień admina, ale zabronić paru konkretnych komend.
Dziedziczenie grup (inheritance)
Tutaj kryje się prawdziwa moc LuckPerms. Grupa może dziedziczyć po innej grupie, a wszystkie permisje rodzica są automatycznie aktywne dla dziecka.
/lp group vip parent add default
/lp group vip+ parent add vip
/lp group premium parent add vip+
Po takim ustawieniu premium ma wszystko, co ma vip+, który ma wszystko, co ma vip, który ma wszystko, co ma default. Wystarczy raz dodać essentials.fly do vip — wszystkie wyższe grupy też je dostaną.
Sprawdzenie hierarchii: /lp group premium info.
Wagi grup (weight)
Gdy gracz jest w kilku grupach (np. vip i support), LuckPerms musi wybrać, którą wziąć pod uwagę jako primary group (do prefiksu na czacie, do tablistu). Decyduje o tym weight:
/lp group default weight 0
/lp group vip weight 10
/lp group vip+ weight 20
/lp group premium weight 30
/lp group support weight 100
/lp group mod weight 200
/lp group admin weight 500
/lp group owner weight 1000
Im wyższa waga, tym wyższy priorytet. Konwencja: zostaw spore odstępy (np. co 10), żeby móc wcisnąć nowe grupy bez przerabiania wszystkiego.
Czasowe uprawnienia i grupy
VIP na miesiąc po zakupie w sklepie? Bez problemu:
/lp user Marcin parent add vip 30d
/lp user Marcin permission settemp essentials.fly true 7d
Po wskazanym czasie LuckPerms automatycznie zdejmie uprawnienie i grupę. Działa to także z sekundami, minutami, godzinami, dniami i miesiącami: 30s, 15m, 3h, 7d, 1mo.
Plugin pamięta moment przyznania permisji w bazie — restart serwera nie zeruje licznika.
Prefiksy, suffixy i meta
Kolorowy prefix na czacie i przed nickiem na tablistcie nadaje się komendą:
/lp group vip meta setprefix "&6[VIP] "
/lp group mod meta setprefix "&c[Mod] "
/lp group admin meta setprefix "&4[Admin] "
Plugin nie wyświetla prefiksów sam z siebie — potrzebny jest EssentialsXChat, VentureChat albo dowolny inny plugin do czatu, który czyta metadane z LuckPerms.
Format wiadomości w chat.yml EssentialsXChat:
format: '{prefix}&7{DISPLAYNAME}{suffix}&8: &f{MESSAGE}'
Dla tablistu sprawdza się TAB by NEZNAMY (czyta prefixy z LuckPerms automatycznie).
Konteksty — permisje per świat, per serwer
Czasem chcesz, by gracz miał essentials.fly tylko na lobby, ale nie w survival. Albo by admin miał kreatywę tylko na podserwerze build. LuckPerms używa do tego kontekstów:
/lp user Marcin permission set essentials.fly true world=lobby
/lp group builder permission set worldedit.* true server=build
Standardowe konteksty:
server=nazwa— odnosi się do nazwy serwera (zconfig.ymlLuckPerms),world=nazwa— konkretny świat,gamemode=survival— tryb gry,- dowolny customowy kontekst dostarczany przez inne pluginy (region, tryb, sezon).
Web-editor — życie staje się łatwiejsze
Komendy są dobre do szybkich poprawek, ale przy ustawianiu dużej hierarchii grup szybko przestają wystarczać. LuckPerms ma wbudowany web-editor — komenda /lp editor generuje jednorazowy link.
- graficzne dodawanie/usuwanie permisji,
- drag & drop przy zarządzaniu hierarchią,
- masowe operacje (zaznacz 30 permisji, zmień wartość),
- po zapisie wracasz na serwer komendą
/lp applyedits KOD.
Edytor jest hostowany przez Lukko, ale dane są zaszyfrowane i dostępne tylko z kodem. Można też postawić własną instancję na własnym serwerze (oficjalny repozytorium na GitHubie).
Backup, eksport i synchronizacja
Konfigurację LuckPerms warto regularnie backupować — pomyłkowy /lp group default permission set * false potrafi zablokować wszystkich graczy.
- Eksport:
/lp export plik.json.gz, - Import:
/lp import plik.json.gz, - Synchronizacja po zmianach z innej maszyny:
/lp sync(przydatne, gdy zmieniasz dane bezpośrednio w bazie).
Przy sieci serwerów z proxy ustaw messagingService w config.yml na redis lub plugin-messaging — wtedy zmiany propagują się natychmiast na wszystkich instancjach.
YAML czy baza danych?
LuckPerms domyślnie zapisuje dane do plików YAML. To wystarczy dla małego serwera. Dla większych projektów lepsza jest baza:
- YAML/JSON — proste, łatwe do backupu, ale wolne przy 10 000+ użytkownikach,
- SQLite — single-file, dobra na pojedynczy serwer,
- MySQL/MariaDB/PostgreSQL — niezbędne, gdy masz proxy + wiele podserwerów dzielących tę samą bazę graczy.
Konfiguracja w config.yml:
storage-method: mariadb
data:
address: 127.0.0.1:3306
database: luckperms
username: lp_user
password: ******
Po zmianie metody trzeba zrobić import z poprzedniej: /lp migration.
Typowy setup dla małego SMP — gotowy skrypt
Kopiuj-wklej i dostosuj nicki:
/lp creategroup vip
/lp creategroup mod
/lp creategroup admin
/lp creategroup owner
/lp group vip weight 10
/lp group mod weight 100
/lp group admin weight 500
/lp group owner weight 1000
/lp group vip meta setprefix "&6[VIP] "
/lp group mod meta setprefix "&c[Mod] "
/lp group admin meta setprefix "&4[Admin] "
/lp group owner meta setprefix "&5[Owner] "
/lp group mod parent add vip
/lp group admin parent add mod
/lp group owner parent add admin
/lp group vip permission set essentials.fly true
/lp group vip permission set essentials.sethome.multiple.vip true
/lp group mod permission set essentials.kick true
/lp group mod permission set essentials.ban true
/lp group mod permission set essentials.mute true
/lp group admin permission set worldedit.* true
/lp group admin permission set worldguard.* true
/lp user TwojNick parent set owner
Po wklejeniu masz działającą hierarchię w 30 sekund. Wszystko inne dosypiesz w miarę potrzeb przez /lp editor.
Najczęstsze błędy początkujących
- Nadawanie
*jako permisji — wygląda wygodnie, ale wpuszcza gracza wszędzie, łącznie z permisjami innych pluginów, które nie powinny być w grupie, - Brak wagi grup — wszyscy mają weight=0 i prefixy losowo się zmieniają,
- Konfiguracja per-świat zamiast grupy — utrzymujesz to ręcznie dla każdego gracza, zamiast użyć grupy z kontekstem
world=, - Bezpośrednia edycja YAML-i przy włączonym serwerze — LuckPerms ma własny cache, zmiany się nie wczytają. Używaj komend albo
/lp sync, - Brak backupów — eksport raz w tygodniu zajmuje sekundę, a ratuje przed katastrofami.
Podsumowanie
LuckPerms to nie kolejny plugin „nice to have", tylko fundament każdego dobrze prowadzonego serwera Minecraft. Solidna hierarchia grup, sensownie ustawione wagi, kontekstowe permisje per świat i regularne backupy — to wszystko, czego potrzebujesz, by przez lata nie wracać do tematu uprawnień.
Zacznij od prostego setupu (default → vip → mod → admin → owner), rozbuduj go zgodnie z potrzebami serwera i korzystaj z /lp editor za każdym razem, gdy operacja wymaga więcej niż dwóch komend. Im wcześniej posprzątasz w permisjach, tym mniej problemów ze spoofingiem uprawnień i frustracji moderatorów Cię czeka.