How to Set Up Donor Ranks on a Minecraft Server
Learn how to set up donor ranks on a Minecraft server with LuckPerms, rank structure, cosmetic-only perks, permission nodes, store integration, and EULA compliance.
Donor ranks are the backbone of most server revenue models. Players pay for cosmetic perks, convenience features, or recognition, and in return the server stays funded. Setting up donor ranks on a Minecraft server correctly means balancing monetization with fairness, staying within the Minecraft EULA, and configuring permissions cleanly in LuckPerms. This guide covers all three.
EULA considerations
Mojang's EULA prohibits selling gameplay advantages that affect competitive balance. In practice, this means:
- Allowed: cosmetic items (particles, pets, trails, chat colors, nicknames), quality-of-life features (/fly in lobby only, extra homes, colored chat), priority queue access.
- Not allowed: selling powerful gear, in-game currency that buys combat items, kits with enchanted armor, or any perk that gives a paying player a competitive advantage over a non-paying player.
The safest approach is cosmetic-only donor ranks. Many successful servers generate substantial revenue without selling any gameplay advantage at all.
Planning the rank structure
A clean hierarchy typically has 3-5 donor tiers. More than that becomes confusing for players and difficult to maintain. Example structure:
| Rank | Price | Key perks |
|---|---|---|
| VIP | $5 | Colored name, 2 extra homes, /hat |
| VIP+ | $10 | All VIP perks + particle trails, /nick, priority join |
| MVP | $20 | All VIP+ perks + custom join message, pet companion, 5 extra homes |
| MVP+ | $35 | All MVP perks + exclusive chat channel, monthly crate key, special tag |
Each tier includes everything from the previous tier, which makes the upgrade path clear and lets players feel their investment compounds. This uses permission inheritance in LuckPerms to avoid duplicating permission nodes.
Creating the groups in LuckPerms
If you do not have LuckPerms installed yet, follow How to Set Up LuckPerms first. Then create the donor groups:
/lp creategroup vip
/lp creategroup vip+
/lp creategroup mvp
/lp creategroup mvp+
Setting up inheritance
Each rank inherits from the one below:
/lp group vip+ parent add vip
/lp group mvp parent add vip+
/lp group mvp+ parent add mvp
Now any permission added to VIP automatically applies to VIP+, MVP, and MVP+. You only need to add rank-specific perks to each tier.
Setting weights
Weights determine which rank displays in chat and tab when a player has multiple groups. Higher weight = higher priority:
/lp group vip meta setweight 10
/lp group vip+ meta setweight 20
/lp group mvp meta setweight 30
/lp group mvp+ meta setweight 40
Setting prefixes
/lp group vip meta setprefix 10 "&a[VIP] "
/lp group vip+ meta setprefix 20 "&a[VIP&6+&a] "
/lp group mvp meta setprefix 30 "&b[MVP] "
/lp group mvp+ meta setprefix 40 "&b[MVP&c+&b] "
The number before the prefix string is the priority, it must match or align with the weight so the correct prefix displays when a player holds multiple ranks.
Assigning permissions per rank
Here are example permission nodes for common donor perks:
# VIP
/lp group vip permission set essentials.sethome.multiple.3
/lp group vip permission set essentials.hat
/lp group vip permission set essentials.msg.color
# VIP+
/lp group vip+ permission set essentials.nick
/lp group vip+ permission set essentials.nick.color
/lp group vip+ permission set server.joinpriority
# MVP
/lp group mvp permission set essentials.sethome.multiple.8
/lp group mvp permission set mycustomjoinmessage.use
# MVP+
/lp group mvp+ permission set essentials.sethome.multiple.15
The exact nodes depend on which plugins you run. Check each plugin's documentation for the specific permission strings. Donor ranks on a Minecraft server work best when perks are clearly documented both in-game and on your webstore.
Store integration
Most servers use a webstore platform like Tebex (BuyCraft) or CraftingStore. These platforms execute commands on the server when a purchase completes. The typical command:
lp user {username} parent add mvp
For time-limited ranks (subscriptions), use:
lp user {username} parent addtemp mvp 30d
This grants the rank for 30 days. LuckPerms automatically removes it when the duration expires. Set up the expiration command in your store's "on-expiry" section to clean up properly.
Displaying ranks in chat
LuckPerms prefixes only work if your chat plugin reads them. With EssentialsX Chat, set the format in config.yml:
format: '{displayname}: {message}'
EssentialsX pulls the prefix from LuckPerms via Vault. Alternatively, use a dedicated chat formatter like LPC (LuckPerms Chat) or ChatControl for more advanced formatting.
Best practices for donor ranks on a Minecraft server
- Document every perk, list exactly what each rank includes on your store page and in-game with
/ranksor a GUI. - Avoid pay-to-win, if non-donors feel disadvantaged in core gameplay, you will lose players faster than you gain revenue.
- Offer upgrade pricing, if a VIP wants to become MVP, credit their original purchase. Most store platforms support this.
- Test on an alt, purchase each rank on a test account to verify permissions, prefixes, and store commands work correctly.
- Keep it maintainable, use inheritance so you are not managing 50+ individual permission nodes across four groups.
For a deeper dive into LuckPerms configuration, including contexts and meta, see the LuckPerms Advanced Guide.
Need reliable hosting for your build server? Astroworld Hosting runs NVMe SSDs with full Pterodactyl panel access and 24/7 support. See features , plans from €6.39/mo.