RankSystem is a permissions manager for PocketMine-MP. It simplifies complex hierarchy management with a system for multiple ranks, temporal permissions, and a user-friendly forms interface.
RankSystem is and will always be free and open-source. If this project helps your server grow, consider supporting me and its development.
- 🌍 Global: Full Multi-language support.
- 👥 Multi-Rank: Support for multiple ranks per user simultaneously.
- ⏳ Temporary System: Set expiration times for both ranks and specific permissions.
- 💾 Data Support: Native support for SQLite3 and MySQL providers.
- 🔄 Easy Migration: Built-in migrator for existing data (e.g., PurePerms).
- 🛠️ UI Driven: Intuitive Forms for management without complex commands.
- 🧬 Inheritance: Advanced rank inheritance system to simplify permission management.
- 💻 API Ready: Flexible API designed for plugin developers.
- 📊 Integrations: Full ScoreHud integration to display ranks on scoreboards.
| Command | Description | Permission |
|---|---|---|
/ranks manage |
Open the management UI | ranksystem.command.manage |
/ranks create |
Create a new Rank | ranksystem.command.create |
/ranks delete <rank> |
Delete a Rank | ranksystem.command.delete |
/ranks edit <rank> |
Edit a Rank's properties | ranksystem.command.edit |
/ranks list |
List all available ranks | ranksystem.command.list |
/ranks setrank <user> <rank> [time] |
Set a Rank to a User | ranksystem.command.setrank |
/ranks removerank <user> <rank> |
Remove a Rank from a User | ranksystem.command.removerank |
/ranks setpermission <user> <perm> [time] |
Set a Permission to a User | ranksystem.command.setpermission |
/ranks removepermission <user> <perm> |
Remove a User permission | ranksystem.command.removepermission |
/ranks permissions <plugin> |
List all plugin permissions | ranksystem.command.permissions |
/ranks rankinfo <rank> |
Show info about a rank | ranksystem.command.rankinfo |
/ranks userinfo <user> |
Show info about a user | ranksystem.command.userinfo |
Tip
You can use /ranks as a shortcut for the /ranksystem command.
Use these tags to display information in ScoreHud:
| Tag | Description |
|---|---|
{ranksystem.ranks} |
Shows all player's ranks. |
{ranksystem.highest_rank} |
Shows the player's highest rank. |
{ranksystem.nametag} |
Shows the RankSystem assigned NameTag. |
Why is the previous rank not removed when I use /ranks setrank?
RankSystem is a multi-rank system, meaning ranks are stackable. If you want to remove a specific rank from a player, you must use/ranks removerank.
Will you add support for JSON or YAML data storage?
No. Never. These formats are not designed to function as databases. As the player base grows, they become extremely slow and can cause server lag. RankSystem uses high-performance storage solutions to ensure stability.Can I block users from using formatting codes (§*) in chat?
This is currently outside the scope of this plugin. While it's not difficult to implement, it might be added as a configurable option in a future update.How does the 'time' argument work in /setrank or /setpermission?
If no time is specified, the rank/permission will be permanent. The format used is:y= year,M= month,w= week,d= day,h= hour,m= minute.
1y3M: One year and three months (same as 15M).1w2d12h: One week, two days, and twelve hours (same as 9d12h).
How does rank hierarchy work?
The hierarchy is determined by the order of the ranks in theconfig.yml file under the Hierarchy section. The rank at the top of the list has the highest priority, while the one at the bottom is the lowest. If a rank is not listed there, it will automatically be assigned the lowest possible position.
This hierarchy is used to determine which rank's prefix or nametag should be displayed first. It is especially important when using placeholders like:
{nametag_highest-rank_prefix}{chat_highest-rank_prefix}
How can I see all permissions available for a specific plugin or PocketMine-MP?
RankSystem includes a powerful built-in tool to explore permissions. You can use the command:/ranks permissions <pluginName> [page]
This will list all permissions registered by that specific plugin. You can also use
pocketmine as the argument to see all core permissions!
Note: This works as long as the plugin has correctly registered its permissions in its
plugin.yml or via code.
I found a bug or my server crashed! What should I do?
Please report the issue on GitHub. Make sure to include the crash dump and steps to reproduce the error so I can fix it as soon as possible.I need help configuring the plugin. Where can I find support?
Don't hesitate to ping me on the official PMMP Discord. I'm usually around to help with configuration questions.Find examples, API methods, and tutorials on RankSystem Wiki.