LuckPerms is een plugin voor het beheren van rechten. Hij bepaalt wie welk commando en welke functie mag gebruiken, en kent spelers groepen toe zoals VIP, Moderator of Admin, inclusief een prefix in de chat. We lopen door hoe rechten werken en bouwen daarna stap voor stap een complete groepsstructuur voor een gewone server.
Wat je nodig hebt
- Een Minecraft-server van het type Paper of Purpur (LuckPerms bestaat ook voor Fabric, Forge en NeoForge, de verschillen staan verderop)
- Toegang tot de tabbladen Console en Plugins (de eigenaar, of een lid met de rechten Console en Bestanden)
- Voor prefixen in de chat: Vault en een plugin voor de chatopmaak (bijvoorbeeld EssentialsX Chat), zie Aanbevolen plugins
- Ongeveer 30 minuten
Hoe rechten werken#
| Begrip | Wat het is | Voorbeeld |
|---|---|---|
| Recht (permission, node) | Tekst met punten ertussen die één commando of functie vrijgeeft. Elke plugin heeft zijn eigen rechten. | essentials.home staat het commando /home toe |
| Waarde | true geeft het recht, false neemt het uitdrukkelijk af. Een recht dat niet is ingesteld, gedraagt zich meestal als false. | essentials.fly = false |
Wildcard * | Geeft alle rechten die hetzelfde beginnen. | essentials.* = alle rechten van EssentialsX |
| Groep (group) | Een set rechten die je in één keer aan spelers toekent. | vip, moderator, admin |
De groep default | Hier hoort elke speler automatisch bij. Verwijderen of hernoemen kan niet. | Basiscommando's voor iedereen |
| Overerving (parent) | Een groep neemt de rechten van een andere groep over. Een speler erft van zijn groepen. | moderator erft van helper |
| Gewicht (weight) | Het prioriteitsgetal van een groep. Stellen twee groepen van een speler hetzelfde recht verschillend in, dan wint de groep met het hoogste gewicht. Een prefix heeft een eigen prioriteit (zie Prefixen in de chat). | admin 400 wint van vip 100 |
| Context (context) | Een voorwaarde voor waar een recht geldt. | world=world_nether, gamemode=creative |
De namen van rechten vind je in de documentatie van elke plugin. De rechten voor de commando's van Minecraft zelf hebben op Paper de vorm minecraft., bijvoorbeeld minecraft.command.kick of minecraft. (het commando /tp). Ken je een recht niet, dan kan LuckPerms het zelf opsporen, zie Controleren en fouten opsporen.
Installatie en gegevensopslag#
- Zoek op het tabblad Plugins › Bladeren naar
LuckPermsen klik op Installeren (of upload het bestand van luckperms.net/download (opent in een nieuw venster) naar de mapplugins, zie Plugins installeren). - Herstart de server.
- Controleer in de console of LuckPerms is ingeschakeld (de regel
[LuckPerms] Enabling LuckPerms …zonder fouten). Bij de eerste start downloadt de plugin zijn bibliotheken, daardoor kan het starten iets langer duren.
LuckPerms maakt de map plugins/LuckPerms aan, met de instellingen in het bestand config.yml. Waar de gegevens worden opgeslagen, bepaalt de optie storage-method:
Waarde van storage-method | Waar de gegevens staan | Wanneer kiezen |
|---|---|---|
h2 (standaard) | Het bestand plugins/ (bij oudere versies luckperms-h2.mv.db) | Eén server. Je hoeft niets in te stellen. |
yaml of json | Leesbare bestanden in de map yaml-storage of json-storage | Als je de gegevens in bestanden wilt lezen of bewerken |
mariadb of mysql | Een database van het tabblad Databases | Meerdere servers met gedeelde groepen (een netwerk via Velocity), of veel spelers |
Laat het voor één server op h2 staan. Het instellen van MySQL staat in het artikel MySQL voor plugins. Wijzig je de opslag later, dan gaan de gegevens niet vanzelf mee:
- Exporteer ze met het commando
lp export prevod. Er ontstaat een bestandplugins/.LuckPerms/ prevod. json. gz - Stop de server en wijzig in
plugins/de waardeLuckPerms/ config. yml storage-method(bij MySQL ook de inloggegevens). - Start de server en laad de gegevens met het commando
lp import prevod.json.gz. Typ de bestandsnaam inclusief de extensie.json.gz.
In plaats van prevod kun je elke naam zonder spaties en accenten gebruiken.
Back-up van de rechten
Het commando lp export zaloha-opravneni slaat alle groepen en spelers op in het bestand plugins/. Voer het uit vóór elke grotere wijziging. Terugzetten doe je met het commando lp import zaloha-opravneni.json.gz (met de optie --replace aan het einde worden de huidige gegevens vervangen, zonder die optie worden de gegevens samengevoegd).
Volledige rechten voor jezelf#
Na de installatie heeft niemand toegang tot de commando's van LuckPerms, behalve de console en operators. Operators mogen de commando's van LuckPerms standaard gebruiken (de optie commands-allow-op: true in plugins/).
Verbind met de server, zodat LuckPerms je account kent.
Voer op het tabblad Console in:
Consoletext lp user <NICK> permission set luckperms.* truelp– de afkorting van het LuckPerms-commando (de lange vorm isluckperms).user <NICK>– we bewerken een speler. Vervang<NICK>door je naam in het spel, bijvoorbeeldSteve.permission set– we stellen een recht in.luckperms.*– alle rechten van LuckPerms, dus toegang tot al zijn commando's.true– het recht geven (falsezou het uitdrukkelijk verbieden).
In het spel gebruik je de commando's daarna met een slash (/lp …), in de console zonder slash.
Geef jezelf niet het recht `*`
Het recht * (werkelijk alles) lijkt handig, maar zet ook rechten aan die het gedrag van plugins veranderen: het omzeilen van gebiedsbescherming, immuniteit voor bans, het meelezen van privéberichten en dergelijke. De bescherming van WorldGuard lijkt dan niet te werken, omdat je die ongemerkt omzeilt. Gebruik voor jezelf de groep owner met geselecteerde rechten (verderop) en daarnaast operatorrechten.
Groepen en overerving aanmaken#
We bouwen een structuur die bij de meeste servers past:
default
├── vip
└── helper
└── moderator
└── admin
└── ownerElke groep erft alles van de groep erboven. Een admin kan dus alles wat een moderator kan, een moderator alles wat een helper kan en iedereen alles wat default kan. VIP is een aparte tak, dus een VIP krijgt niet de rechten van het team.
Maak de groepen aan, meteen met hun gewicht. Voer de regels een voor een in de console in:
Consoletext lp creategroup vip 100 lp creategroup helper 200 lp creategroup moderator 300 lp creategroup admin 400 lp creategroup owner 500creategroup <groep>– maakt een lege groep aan. Schrijf namen in kleine letters, zonder accenten en spaties.- Het getal na de naam is het gewicht. Een hoger gewicht gaat voor. De stappen van honderd laten ruimte voor latere groepen (bijvoorbeeld
vip-plusmet gewicht 150).
Stel de overerving in:
Consoletext lp group vip parent add default lp group helper parent add default lp group moderator parent add helper lp group admin parent add moderator lp group owner parent add admingroup <groep>– we bewerken een groep.parent add <oudergroep>– de groep gaat de rechten van de oudergroep erven. Overerving werkt door in een keten, zo krijgtownerde rechten van alle groepen eronder.
Geef de groepen de naam die spelers te zien krijgen (optioneel):
Consoletext lp group moderator setdisplayname ModeratorDe weergavenaam mag accenten bevatten. Zo kun je de groep
defaultook “Speler” noemen zonder dat de echte naam verandert.
Rechten voor groepen#
Een recht voeg je toe met het commando lp group <groep> permission set <recht> [true|false] [context…]. Laat je de waarde weg, dan wordt true gebruikt.
De basis voor alle spelers (de groep
default), een voorbeeld voor EssentialsX:Consoletext lp group default permission set essentials.home lp group default permission set essentials.sethome lp group default permission set essentials.delhome lp group default permission set essentials.spawn lp group default permission set essentials.tpa lp group default permission set essentials.tpaccept lp group default permission set essentials.tpdeny lp group default permission set essentials.back lp group default permission set essentials.msg lp group default permission set essentials.warp lp group default permission set essentials.warp.listSpelers krijgen zo homes (
/home,/sethome,/delhome), terugkeer naar de spawn, teleportverzoeken (/tpa,/tpaccept,/tpdeny), terugkeer naar de laatste plek (/back), privéberichten en warps.VIP met meer homes en overal een werkbank:
Consoletext lp group vip permission set essentials.sethome.multiple lp group vip permission set essentials.sethome.multiple.vip lp group vip permission set essentials.workbench lp group vip permission set essentials.hatHet aantal homes voor “vip” stel je in via
plugins/, in de sectieEssentials/ config. yml sethome-multiple(standaard 5), zie Aanbevolen plugins.Het team (helper, moderator, admin):
Consoletext lp group helper permission set essentials.mute lp group helper permission set essentials.kick lp group helper permission set coreprotect.inspect lp group helper permission set coreprotect.lookup lp group moderator permission set essentials.tempban lp group moderator permission set essentials.vanish lp group moderator permission set essentials.invsee lp group moderator permission set essentials.tp lp group moderator permission set coreprotect.rollback lp group moderator permission set coreprotect.restore lp group admin permission set essentials.ban lp group admin permission set essentials.unban lp group admin permission set essentials.gamemode lp group admin permission set essentials.fly lp group admin permission set worldedit.* lp group admin permission set worldguard.region.* lp group owner permission set luckperms.* lp group owner permission set essentials.*De rechten van CoreProtect, WorldEdit en WorldGuard worden uitgelegd in het artikel Aanbevolen plugins. De wildcard
worldedit.*geeft alle rechten van WorldEdit.
Verbieden en uitzonderingen#
De waarde false verbiedt een recht uitdrukkelijk, ook als de groep het erft. Een voorbeeld: op Paper mogen spelers standaard de lijst met plugins opvragen met het commando /plugins. Wil je die verbergen:
lp group default permission set bukkit.command.plugins falseHet commando lp group <groep> permission unset <recht> haalt de instelling juist helemaal weg (het recht gaat terug naar de toestand “niet ingesteld”).
Rechten die alleen ergens gelden: contexten#
Aan het einde van het commando kun je een context toevoegen. Het recht geldt dan alleen onder die voorwaarden:
lp group vip permission set essentials.fly true world=world
lp group default permission set essentials.home false world=pvp_arenaworld=world– een VIP mag alleen vliegen in de wereld met de mapworld(niet in de Nether,world_nether).world=pvp_arena– in de arena werkt/homeniet.
Andere contexten zijn gamemode=creative of server=<SERVER_NAME> voor servernetwerken (de servernaam stel je in met de optie server in plugins/).
Tijdelijk recht#
lp user <NICK> permission settemp essentials.fly true 1dsettemp voegt een recht toe voor een bepaalde tijd. De duur schrijf je als 30m (minuten), 12h (uren), 7d (dagen), 1mo (maand) of een combinatie, bijvoorbeeld 1mo3d12h.
Prefixen in de chat#
Een prefix is de tekst vóór de naam van een speler in de chat, bijvoorbeeld [Admin] Steve: hoi. LuckPerms slaat hem alleen op. Getoond wordt hij pas door een plugin die de chat opmaakt (bijvoorbeeld EssentialsX Chat), en die leest hem uit via de plugin Vault. Zonder beide verschijnt de prefix niet in de chat.
Stel de prefixen voor de groepen in:
Consoletext lp group vip meta setprefix 100 "&6[VIP] " lp group helper meta setprefix 200 "&a[Helper] " lp group moderator meta setprefix 300 "&9[Moderator] " lp group admin meta setprefix 400 "&c[Admin] " lp group owner meta setprefix 500 "&4[Eigenaar] "meta setprefix– stelt een prefix in en vervangt de vorige prefix van de groep.- Het getal (
100tot en met500) is de prioriteit van de prefix. Hoort een speler bij meerdere groepen, dan wordt de prefix met de hoogste prioriteit getoond. Een moderator met VIP ziet dus[Moderator]. - De tekst tussen aanhalingstekens is de prefix. De aanhalingstekens zijn nodig vanwege de spatie aan het einde, die de prefix van de naam scheidt.
&6,&a… zijn kleurcodes (tabel hieronder).
Controleer of de chatplugin de prefix uitleest: voer in de console
vault-infoin. De uitvoer moet LuckPerms noemen als bron voor rechten en chat.
| Code | Kleur | Code | Kleur |
|---|---|---|---|
&0 | zwart | &8 | donkergrijs |
&1 | donkerblauw | &9 | blauw |
&2 | donkergroen | &a | groen |
&3 | turquoise | &b | lichtblauw |
&4 | donkerrood | &c | rood |
&5 | paars | &d | roze |
&6 | goud | &e | geel |
&7 | grijs | &f | wit |
&l | vet | &o | cursief |
&n | onderstreept | &r | opmaak wissen |
Zet opmaakcodes (&l, &o, &n) achter de kleurcode, bijvoorbeeld &c&l[Admin].
Een speler aan een groep toevoegen#
De speler moet minstens één keer met de server verbonden zijn geweest, zodat LuckPerms zijn account kent.
lp user <NICK> parent add vipparent add <groep>– voegt een groep toe aan de speler. Zijn andere groepen blijven staan. Handig voor VIP bij een teamlid.
lp user <NICK> parent set moderatorparent set <groep>– geeft de speler alleen deze groep en haalt de andere weg. Handig bij een rangwijziging.
lp user <NICK> parent remove vipparent remove <groep>– haalt de groep weg. Heeft de speler geen andere groep, dan gaat hij terug naardefault.
lp user <NICK> parent addtemp vip 30dparent addtemp <groep> <duur>– een groep voor een bepaalde tijd (hier 30 dagen), bijvoorbeeld voor een maand VIP. Na afloop haalt LuckPerms de groep zelf weg.
Webeditor#
In plaats van met commando's kun je alles ook in je browser aanpassen.
Voer in de console
lp editorin.LuckPerms toont een link. Open die in je browser.
Kies links een groep of speler. Een recht voeg je toe in het veld Add Permission (de editor stelt bekende rechten voor), waarden pas je aan door in de tabel te klikken. Een context voeg je toe met de knop Add Contexts.
Klik op Save (of Ctrl+S).
De editor toont een commando in de vorm
/lp applyedits <CODE>. Met een klik kopieer je het.Plak het in de console zonder de slash aan het begin en druk op Enter.
De console toont een samenvatting van de wijzigingen. Pas nu zijn ze opgeslagen.
Wijzigingen uit de editor worden zonder applyedits niet opgeslagen
Opslaan in de browser stuurt de wijzigingen niet naar de server. Je moet het gegenereerde commando lp applyedits uitvoeren. De editor voor één groep open je met het commando lp group <groep> editor.
In de editor worden het gewicht, de prefix en de oudergroep genoteerd als bijzondere rechten: weight.400, prefix.400.&c[Admin] en group.moderator.
Promoveren via een ladder (tracks)#
Een track is een ladder van groepen waarlangs je een speler met één commando promoveert. Op de overerving heeft een track geen invloed.
Maak een track aan en voeg de groepen in de juiste volgorde toe:
Consoletext lp createtrack tym lp track tym append helper lp track tym append moderator lp track tym append adminPromoveer en degradeer:
Consoletext lp user <NICK> promote tym lp user <NICK> demote tympromote– zet de speler een trede hoger en haalt zijn vorige groep van de track weg. Staat hij nog niet op de track, dan krijgt hij de eerste groep (helper).demote– zet de speler een trede lager.
Controleren en fouten opsporen#
| Commando | Wat het laat zien |
|---|---|
lp user <NICK> info | De primaire groep, alle groepen van de speler, de huidige context en de prefix |
lp user <NICK> permission check <recht> | Of de speler het recht heeft en waar het vandaan komt |
lp group <groep> info | Het gewicht, de oudergroepen en het aantal rechten van de groep |
lp group <groep> permission info | De lijst met rechten van de groep |
lp group <groep> listmembers | De spelers in de groep |
lp user <NICK> meta info | Alle prefixen van de speler, gesorteerd op prioriteit |
Weet je niet welk recht een commando nodig heeft, gebruik dan verbose:
- Voer in de console
lp verbose record <NICK>in. - Laat de speler in het spel het commando uitvoeren dat niet werkt.
- Voer
lp verbose uploadin. LuckPerms toont een link naar een overzicht van alle rechtencontroles. Zoek de regels met het resultaatfalse.
Aanbevolen structuur voor een gewone server#
| Groep | Gewicht | Erft van | Voor wie | Voorbeelden van rechten |
|---|---|---|---|---|
default | – | – | Elke speler | essentials.home, essentials.sethome, essentials.spawn, essentials.tpa, essentials.msg |
vip | 100 | default | Donateurs | essentials., essentials., essentials.workbench |
helper | 200 | default | Nieuwe teamleden | essentials.mute, essentials.kick, coreprotect.inspect |
moderator | 300 | helper | Moderators | essentials.tempban, essentials.vanish, coreprotect.rollback |
admin | 400 | moderator | Beheerders | essentials.ban, essentials.gamemode, worldedit.* |
owner | 500 | admin | De eigenaar | luckperms.*, essentials.* + operatorrechten |
Uitgangspunten: geef alleen de rechten die een groep echt nodig heeft. Voeg nieuwe rechten toe aan de laagste groep die ze moet hebben, de hogere groepen erven ze dan. Los uitzonderingen op met de waarde false of met een context, niet door rechten naar meerdere groepen te kopiëren.
LuckPerms op Fabric, Forge en NeoForge#
LuckPerms bestaat ook als mod. De commando's zijn hetzelfde, het bestand staat in de map mods en de instellingen vind je in de map config, in de submap LuckPerms. Het verschil: Fabric controleert bij de commando's van Minecraft zelf geen rechten, dus rechten zoals minecraft. werken op Fabric niet zonder een extra mod. Commando's van mods die LuckPerms ondersteunen, werken gewoon.
Snelle recepten#
| Ik wil… | Commando voor de console |
|---|---|
| Een speler 30 dagen VIP geven | lp user <NICK> parent addtemp vip 30d |
| VIP bij een speler weghalen | lp user <NICK> parent remove vip |
| Van een speler een moderator maken (en zijn andere groepen weghalen) | lp user <NICK> parent set moderator |
VIP's alleen in de wereld lobby laten vliegen | lp group vip permission set essentials.fly true world=lobby |
Nagaan wie er in de groep admin zit | lp group admin listmembers |
| Een groep kopiëren als basis voor een nieuwe | lp group vip clone vip-plus |
| Een groep hernoemen | lp group vip-plus rename mvp |
| Een groep verwijderen | lp deletegroup mvp |
| Alle groepen tonen | lp listgroups |
| Een back-up van alle rechten in een bestand maken | lp export zaloha-opravneni |
Vervang <NICK> door de naam van de speler in het spel. In het spel typ je de commando's met een slash (/lp …).
LuckPerms in een servernetwerk (Velocity)#
Draai je meerdere servers die via de proxy Velocity met elkaar verbonden zijn, dan wil je meestal overal dezelfde groepen. De aanpak in het kort:
- Installeer LuckPerms op elke server en op de proxy (de versie voor Velocity). Op de proxy voer je de commando's in als
lpvin plaats vanlp. - Maak één MariaDB- of MySQL-database aan waarmee alle instanties verbinden, zie MySQL voor plugins.
- Pas op elke instantie
plugins/aan (terwijl de server uit staat):LuckPerms/ config. yml
| Instelling | Wat het doet | Aanbevolen waarde | Wanneer wijzigen |
|---|---|---|---|
server | De naam van de instantie. Wordt gebruikt in de context server=… voor rechten die alleen op een bepaalde server gelden. | Een korte naam, bijvoorbeeld lobby of survival | Laat de standaardwaarde global alleen staan bij een losse server. |
storage-method | Waar LuckPerms de gegevens opslaat. Alle instanties moeten dezelfde opslag gebruiken. | mysql (werkt met MySQL en MariaDB) | mariadb, als je weet dat de databaseserver MariaDB is (LuckPerms raadt die voor MariaDB aan). |
data (address, database, username, password) | De inloggegevens van de database. De poort schrijf je in address in de vorm host:port. | De gegevens van het tabblad Databases | Als het wachtwoord van de database verandert. |
messaging-service | Hoe de instanties wijzigingen aan elkaar doorgeven, zodat ze meteen zichtbaar zijn. | sql (met een gedeelde database) | pluginmsg bij een klein netwerk met één proxy, waar LuckPerms overal draait. |
- Herstart alle servers en de proxy. Een wijziging op één server is daarna ook op de andere zichtbaar.
Het instellen van het netwerk zelf staat in het artikel Een servernetwerk met Velocity.
Controle#
- Voer
lp user <NICK> infoin voor een testspeler. In de uitvoer zie je zijn groepen en prefix. - Verbind als gewone speler (zonder operator, commando
deop <NICK>) en probeer de commando's die de groep moet kunnen gebruiken, en ook de commando's die de groep niet mag kunnen gebruiken. - Typ een bericht in de chat en controleer de prefix.
Als iets niet werkt#
Na het invoeren van /lp verschijnt alleen de versie van de plugin#
Je hebt voor geen enkel LuckPerms-commando het recht. Geef het jezelf vanuit de console met het commando lp user <NICK> permission set luckperms.* true.
Rechten werken niet, terwijl de speler wel in de groep zit#
- Op de server staat nog een andere plugin voor rechten (PermissionsEx, GroupManager en dergelijke). LuckPerms moet de enige zijn, verwijder de andere.
- Je test als operator. Een operator heeft de rechten van plugins automatisch, en dat vertekent het resultaat. Test zonder op.
- Een typefout in de naam van het recht. Controleer die met
lp verbose(hierboven). - Het recht staat ergens op
false. Het commandolp user <NICK> permission check <recht>laat zien waar de waarde vandaan komt.
De prefix verschijnt niet in de chat#
Vault of een plugin voor de chatopmaak ontbreekt. Installeer Vault (of VaultUnlocked) en EssentialsX Chat en herstart de server. Bij EssentialsX Chat moet de chatopmaak {DISPLAYNAME} of {PREFIX} bevatten. Ziet een speler een andere prefix dan je verwacht, vergelijk dan de prioriteiten in lp user <NICK> meta info.
Wijzigingen uit de webeditor zijn niet doorgevoerd#
Je hebt het commando lp applyedits <CODE> dat na het opslaan is gegenereerd, niet uitgevoerd. Sla opnieuw op en voer het commando uit.
lp user vindt de speler niet#
De speler heeft nog niet met de server verbonden en LuckPerms kent zijn account niet. Laat hem verbinden, of gebruik zijn UUID in plaats van zijn naam.
Een speler in een groep heeft geen prefix en geen rechten na toevoegen via parent set#
Controleer de naam van de groep (lp listgroups). Het commando parent set met een groep die niet bestaat, eindigt met een fout en voegt niets toe aan de speler.
Samenvatting
- Rechten geef je aan groepen, spelers erven ze. Elke speler zit automatisch in de groep
default. - Maak groepen aan met een gewicht (
lp creategroup admin 400) en koppel ze metparent add. - Rechten:
lp group <groep> permission set <recht>, een speler in een groep:lp user <NICK> parent add <groep>. - Prefix:
lp group <groep> meta setprefix <prioriteit> "<tekst>". Om hem te tonen heb je Vault en een chatplugin nodig. - Wijzigingen uit
lp editorsla je pas op met het commandolp applyedits. - Geef niemand het recht
*en test zonder operator.