Ranks, prefixes, group permissions and inheritance explained: when LuckPerms is enough, and when a custom plugin wins. Describe yours, get a compiled .jar
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.
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.
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.
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.