Skip to content

An amazing Rank and Permissions Manager. The best ranks manager for PocketMine-MP.

License

Notifications You must be signed in to change notification settings

IvanCraft623/RankSystem

Repository files navigation

👑 RankSystem 🔧

The most powerful and flexible Rank & Permissions Manager for PocketMine-MP

Download on Poggit

📖 Description

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.

💖 Support the Project

RankSystem is and will always be free and open-source. If this project helps your server grow, consider supporting me and its development.

Tip

✨ Features

  • 🌍 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.

🤖 Commands

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.

📊 ScoreHud Integration

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.

📋 FAQ (Frequently Asked Questions)

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.
Examples:
  • 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 the config.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}
These will automatically display the prefix of the player's most powerful rank according to your hierarchy list.
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.

🛠 For Developers

Find examples, API methods, and tutorials on RankSystem Wiki.

About

An amazing Rank and Permissions Manager. The best ranks manager for PocketMine-MP.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 10

Languages