DGuard

How to set up paid ranks on a Minecraft server

A paid rank is a group in your permissions plugin: a prefix, a name color and conveniences a player gets for buying it. Below is a ready VIP → Premium → Elite setup in LuckPerms: groups and inheritance, prefixes, monthly ranks, upgrades along a track, the commands for your webstore, and the Mojang rules that decide what a rank may include.

The DGuard team10 min read

In short: create one LuckPerms group per rank, chain them with inheritance (lp group premium parent add vip), and give them permissions and a prefix weighted below your staff. Deliver a permanent purchase with lp user <name> parent settrack donate <group> and a timed one with lp user <name> parent addtemp <group> 30d accumulate. Put those commands into your webstore packages and the server hands out ranks by itself. Fill ranks with cosmetics and conveniences — not a combat advantage and never an anticheat bypass.

A rank layout

GroupWeightInheritsWhat it gets (example)
default——Normal game-mode commands
vip10defaultPrefix, colored chat, /hat
premium20vipEverything in vip + colored nickname, more homes
elite30premiumEverything in premium + its own prefix and cosmetic kits
Paid ranks weigh less than staff (helper 100, moderator 200, admin 300 in the LuckPerms article), so a bought prefix never hides a moderator's

Inheritance saves you from repeating yourself: premium gets everything vip has, elite everything premium has. Weight settles conflicts: when a player is in several groups, the permissions, prefix and primary group with the higher weight win — by default LuckPerms picks the primary group by weight (primary-group-calculation: parents-by-weight).

Create the groups and inheritance

server console
lp creategroup vip
lp creategroup premium
lp creategroup elite

lp group vip parent add default
lp group premium parent add vip
lp group elite parent add premium

lp group vip setweight 10
lp group premium setweight 20
lp group elite setweight 30

lp group vip setdisplayname VIP

setdisplayname sets the group's display name — LuckPerms describes it as an alias. Keep the group name itself lowercase without spaces: you'll type it in commands and in webstore packages. The developers recommend leaving gaps between weights (their example is steps of 100 instead of 1), which is why the layout uses steps of 10: you can slot a new rank in between later.

What to put in a rank

Permissions go on the group: lp group vip permission set <permission> true. Below are popular EssentialsX permissions from its own docs; for other plugins, check their docs or use /lp verbose.

PerkPermissionsUnder Mojang's rules
Prefixmeta setprefix in LuckPerms (section below)Cosmetic — allowed
Colored chatessentials.chat.color (needs the EssentialsX Chat module)Cosmetic — allowed
Colored nickname, same textessentials.nick and essentials.nick.changecolorsCosmetic — allowed
A block on your headessentials.hatCosmetic — allowed
More homesessentials.sethome.multiple and essentials.sethome.multiple.vipConvenience — depends on the game mode
Kitsessentials.kit and essentials.kits.<kit>Cosmetic items — allowed; weapons and armor stronger than everyone else's — not allowed
/fly, /god, /heal, /feedessentials.fly, essentials.god, essentials.heal, essentials.feedAn advantage in survival and PvP — not allowed
The last column is a reading of the Usage Guidelines covered in the monetization article, not Mojang's position

essentials.nick.changecolors lets players color their nickname, but the text must still match their real name — so a buyer can't pose as someone else. The number of homes comes from sethome-multiple in EssentialsX's config.yml: by default it has default: 3, vip: 5 and staff: 10, and a player needs both permissions from the table.

Prefixes and where they show

server console
lp group vip meta setprefix 10 "&a[VIP] "
lp group premium meta setprefix 20 "&b[Premium] "
lp group elite meta setprefix 30 "&6[Elite] "

lp user Steve meta info
  • Prefix weight is the first number. Of all the prefixes a player has and inherits, the one with the highest weight is shown. lp user <name> meta info lists them in order.
  • Chat. LuckPerms stores prefixes but doesn't format chat: you need Vault and a chat plugin that reads data through Vault, such as EssentialsX Chat.
  • Tab list and nametags. TAB reads the LuckPerms prefix with its own %luckperms-prefix% placeholder.
  • Menus, scoreboards, holograms. Through PlaceholderAPI: run /papi ecloud download LuckPerms, then /papi reload, and %luckperms_prefix% works in your plugins.

A gradient prefix is easy to build in the gradient text generator. If a player is both a moderator and a VIP, the weights above show the moderator prefix.

A rank for a month

server console
lp user Steve parent addtemp vip 30d accumulate
lp user Steve parent removetemp vip 30d
lp user Steve parent removetemp vip
  • parent addtemp grants a group for a while: 30d is 30 days, 1mo3d13h45m is 1 month, 3 days, 13 hours and 45 minutes. You can also give a unix timestamp for when it expires.
  • `accumulate` is a must for renewals. The default is temporary-add-behaviour: deny: if the player already has a timed vip, granting it again simply fails. With accumulate the new duration is added to what's left; with replace the longer one is kept.
  • parent removetemp vip 30d subtracts 30 days — handy when one month out of several is refunded; without a duration it removes the timed group entirely.
  • LuckPerms checks for expired permissions every 3 seconds, so a rank ends on time without a restart.

Players can see what's left through PlaceholderAPI: %luckperms_group_expiry_time_vip% is the time remaining on the vip group.

Upgrades: a rank track

A track is a ladder of groups. LuckPerms itself uses a donor track as an example: you promote a player along it each time they buy a rank upgrade. A track doesn't affect inheritance — only where promotion and demotion move a player.

server console
lp createtrack donate
lp track donate append vip
lp track donate append premium
lp track donate append elite

lp user Steve promote donate
lp user Steve parent settrack donate premium
  • promote donate moves the player one step up and removes the previous step. If the player isn't on the track yet, they land in its first group — vip. So promote suits an "upgrade" package, not the purchase of a specific rank.
  • parent settrack donate premium puts the player straight onto the right step and clears only this track's groups — staff and other groups stay. It's the right command for a "Premium forever" package.

Automatic delivery from a webstore

A webstore runs the commands you put in a package on your server — through its own plugin or over RCON. How to pick one and why a plugin beats an open RCON port is covered in Minecraft donation stores. For the ranks in this article the commands are:

EventPackage command
Permanent purchaselp user <name> parent settrack donate premium
Monthly purchase and renewallp user <name> parent addtemp premium 30d accumulate
One-step upgradelp user <name> promote donate
Refund or chargeback (permanent)lp user <name> parent remove premium
Refund of one monthlp user <name> parent removetemp premium 30d
Replace <name> with your store's username variable — every service writes it its own way, so check its docs

Networks. For a rank to apply on every server of a network, LuckPerms there must share one database — see MySQL for plugins. With MySQL or MariaDB, LuckPerms by default tells the other servers about changes through the database itself. A rank for one server only takes a context: lp user <name> parent add vip server=survival, where survival is the server value in that server's LuckPerms config.

What a rank may include

The Minecraft Usage Guidelines let you sell entitlements that affect gameplay only if they don't ruin other players' experience or give a competitive advantage, and cosmetics except capes or anything that looks like one. All paid content and prices must be visible before a player joins, and everyone who pays gets an online history of their purchases. The full breakdown, including crates and currency, is in monetization and the EULA.

A rank must never bypass the anticheat

The costliest mistake in a rank setup is a permission that switches checks off. Anticheat immunity is an advantage over honest players — and a fair server is exactly what your buyers pay for. So:

  • No `*` in paid groups. A wildcard grants every permission that starts with that string, and a bare * grants everything: anticheat exemptions, moderation commands, limit bypasses. LuckPerms applies wildcards by default (apply-wildcards: true).
  • Read the whole permission list. Permissions with bypass in the name often lift limits: in EssentialsX, for example, essentials.nick.blacklist.bypass skips the nickname blacklist. Give ranks only what you understand.
  • Anticheat permissions are for administrators. DGuard's commands need dguard.admin; paid groups need it neither directly nor through *.

DGuard — the best anticheat for a modern Minecraft server — checks combat, movement, packets, inventory, building and the world, and covers all 47 cheat types in our comparison with GrimAC, Vulcan, Polar, Intave and Matrix. It gathers evidence and doesn't rush to a verdict, and you set how strict the punishments are. DGuard is free up to 30 players online; beyond that you pay for online and the number of servers — protection is the same on every plan.

FAQ

How do I make a paid rank on a Minecraft server?

Install LuckPerms, create a group (lp creategroup vip), give it permissions and a prefix, and add buyers with lp user <name> parent add vip. In a webstore, that command goes into the package and the server delivers the rank by itself.

How do I give a rank for 30 days?

With lp user <name> parent addtemp vip 30d accumulate. Without accumulate, granting it again to someone whose vip hasn't expired fails: by default LuckPerms refuses duplicate timed groups.

Why doesn't the rank prefix show in chat?

LuckPerms doesn't format chat itself. You need Vault and a chat plugin that reads prefixes through Vault, such as EssentialsX Chat. If a moderator's prefix shows instead of the bought one, that's the weights working as intended.

Can I sell /fly and kits?

The Usage Guidelines don't allow selling anything that gives a competitive advantage or ruins the game for others. Flight, god mode and kits stronger than everyone else's give an advantage in survival and PvP. Cosmetics — prefixes, colors, a block on your head — are allowed.

Sources

All sections

Run the best anticheat for modern Minecraft

DGuard catches all 47 kinds of cheats in our comparison — the closest rival, Intave, has 27. Full protection on every plan, free up to 30 players online.