Skip to content

Ranks and permissions

Minecraft permissions plugin: ranks, prefixes and groups

LuckPerms handles most rank setups already: groups, prefixes, inheritance, per-world permissions, negated nodes. A custom permissions plugin earns its place when the logic is specific to your server, like ranks that unlock from playtime, kits tied to a rank, or an in-game rank shop. Minax writes that Java code and returns a compiled .jar.

You want ranks on your server, with prefixes in chat and different powers per rank. This page explains what each piece actually does, why LuckPerms already solves the boring part, and the point where generating your own plugin becomes the simpler answer.

  • What a group, a permission node, a prefix and inheritance really are
  • What LuckPerms already covers, so you do not build it twice
  • The rank logic that no download can give you, because it is yours
  • How to describe your plugin and get a compiled .jar you can test online

Groups, permission nodes, prefixes, inheritance

Three separate things hide behind the word rank. A group sorts players into buckets: guest, member, VIP, mod, admin. A permission node is just a string that a plugin checks before it allows an action, something like myserver.kit.vip. A prefix is cosmetic only: it is what other players see in front of your name in chat or in the tab list. A player can have a shiny prefix and zero extra powers, and that is normal.

Inheritance wires the groups together. VIP inherits from member, mod inherits from VIP. You never retype the whole permission list at every level, you only add what the tier above gains. When two groups disagree, a weight decides the winner, and a node can be explicitly denied instead of simply missing. That denial mechanic is behind most of the confusion when a permission refuses to apply.

  • Group: which rank a player belongs to
  • Permission node: the string your code checks, like myplugin.command.use
  • Prefix and suffix: display only, separate from real access
  • Inheritance: a group automatically picks up the permissions of the tier below it
  • Context: permissions that change per world or per server

LuckPerms is the standard, and often it is all you need

Straight answer first: if you want to create groups, hand them permissions, show a prefix and set up inheritance, LuckPerms already does that, and it does it better than something written from scratch for one server. It covers groups and per-player overrides, temporary permissions, per-world contexts, flat file or database storage, editing through in-game commands, and editing in a web editor. It also exposes an API that other plugins know how to talk to.

Cloning LuckPerms would be a waste of your time, and Minax has no reason to sell you that. Install it, create your groups, set the inheritance, and your hierarchy is done. The interesting question starts right after: what does your server actually do with those ranks?

  • Groups, inheritance, weights, negated nodes: already solved
  • Prefixes and suffixes as metadata, read by most chat plugins
  • Temporary permissions and per-world contexts: already solved
  • A stable API your own plugin can query

When a custom rank plugin is genuinely worth it

A permissions manager answers exactly one question: is this player allowed to do this? It does not answer the next one, which is the one you actually care about: when and why does a player move up a rank on my server, and what does that unlock for them? That part is your server logic, and no download contains it, because it belongs to you.

That is where writing a plugin pays off, and it is what Minax generates: a plugin that holds your rules and leans on LuckPerms or the Bukkit permissions API for the access checks. You replace nothing, you add the layer that was missing.

  • Ranks that promote automatically on playtime, votes, or objectives you define
  • Kits, extra homes or specific perks attached to each rank, with your numbers
  • An in-game shop where a rank is bought with your server currency
  • Chat format, tab list and join message that follow the rank, in your styling
  • Temporary event ranks that expire on their own
  • Staff commands built for your team, with your confirmations and your logging

Making your plugin work alongside LuckPerms

A well written plugin does not replace the permissions manager, it talks to it. In code, checking access is player.hasPermission(...), which belongs to the Bukkit API: LuckPerms answers behind it and your plugin never needs to know which manager is installed. To move a player between groups or read their prefix, your plugin goes through the LuckPerms API or through Vault, depending on what your server already runs.

Declare your nodes in plugin.yml with a sensible default too. A node left at default: op is true for every operator, which is where most of the "works for me but not for my players" reports come from. The habit that saves the most time is testing on an account without OP.

  • Say in your description whether LuckPerms is installed, so the code hooks into it
  • Pick a permission prefix that is yours, for example myserver.ranks.*
  • Handle the player who has no rank at all, or you will get odd behaviour
  • Vault is the bridge if you want to stay compatible with your current economy and chat

How to describe your rank plugin to Minax

The output tracks the quality of your description. Write it the way you would brief a friend who is going to code it for you, but leave nothing vague: your ranks in order, what each one gains, the command that grants it, the condition that triggers a promotion, and the exact chat messages players see, including the refusals.

Minax then writes the Java code, generates plugin.yml and pom.xml, compiles with Maven and reviews its own output. If the build breaks, it fixes and rebuilds itself in a self-correction loop. You get a .jar, you launch it on an online server and you check in game that /rank does what you meant before your real server sees it.

  • List your ranks in order, with the prefix and colour of each
  • Spell out the promotion condition: staff command, playtime, purchase, objective
  • Name your commands, for example /rank, /ranks, /setrank
  • Say which permissions come with each rank
  • Write your chat messages word for word
  • State your Minecraft version, your platform, and whether LuckPerms is present

Versions, platforms and testing before install

Minax compiles for Paper, Spigot, Bukkit and Folia, from Minecraft 1.12.2 to 26.2. Put the version and the platform in your description and the build targets the matching API. Before your real server is involved, you can start the plugin on an online Paper server, join it and run your rank commands for real. Only then does the file go into the /plugins folder, with a server restart. The source code stays yours: read it, edit it, have it recompiled.

Frequently asked questions

Do I need LuckPerms to have ranks on my server?

For managing groups and permission nodes it is the sensible choice, and it is free. A custom plugin sits on top of it rather than replacing it: it carries the logic that is specific to your server, meaning who gets promoted, when, and what that unlocks.

How do I get a prefix in front of my name in chat?

A prefix is group metadata, not a permission. You set it in your permissions manager, then a chat plugin puts it in front of the name. If you want an exact chat format, with your colours and your ordering, that is precisely what a small dedicated plugin does well.

Why is my permission not working even though I granted it?

Three causes come up constantly. You are an operator and the node is default: op, so you never see what your players see. The node name is not identical in the code and in your config. Or a negated node inherited from another group cancels it out. Always test on an account without OP.

What is group inheritance in plain terms?

The VIP group inherits from the member group: it automatically gets everything a member can do, and you only write the extras. You avoid retyping fifty lines at every tier, and a fix at the bottom of the hierarchy propagates upward.

Can a rank be tied to playtime or to an in-game purchase?

Yes, and that is exactly the kind of rule a custom plugin carries well: count time spent on the server, check a balance, then promote the player and announce it. Describe your condition and your thresholds and they end up in the code.

Can ranks be synced with Discord roles?

That bridge depends on an outside service, so it is more fragile than a self-contained plugin. If you want it, say so clearly in your description and plan to verify the result in game, possibly adjusting the code yourself. A purely in-game rank system is far safer to generate.

Is the generated plugin Vault compatible?

It can be if you ask for it. Vault is the common layer for economy, chat and permissions, and plenty of servers already run it. Mention it in your description so the code goes through it instead of ignoring what you already have.

Can I try the plugin before installing it on my server?

Yes. You can launch the .jar on a real online Paper server: you join, run your rank commands and see whether the prefix, the access checks and the messages behave. Nothing forces you to download the file before you have seen the plugin run.

Ready to build your Minecraft plugin?

Describe it in plain English, get a compiled .jar. No Java required. Your account is free. Credits paid once, no subscription: 50 credits for €17.99 VAT included.

Describe my rank plugin