Description
MyPermissions - Advanced Hierarchical Management for Hytale

MyPermissions is a high-performance, robust permission management solution built specifically for Hytale dedicated servers. It provides administrators with granular control over player capabilities through a recursive inheritance engine, ensuring scalability and ease of use for any server size.
🚀 Key Features
- Recursive Group Inheritance: Create complex permission trees where child groups automatically inherit nodes from parent groups.
- Flexible Permission Formats: Full support for exact nodes, total wildcards (
*), partial wildcards (server.*), and explicit negations (-node) to override broader grants. - Rich Chat Metadata: Manage player prefixes and suffixes with full color code support (
&c,&l, etc.) and a priority system to determine which group's styling takes precedence. - Safety & Reliability: The system automatically generates backups of your configuration before every save, allowing for quick recovery in case of errors.
- Real-time Updates: Apply changes instantly without restarting your server using the
/mpreloadcommand.






👤 User Management Commands
/mp: Open UI./mpuser-add <player> <group>: Assigns a player to a specific group./mpuser-remove <player> <group>: Removes a player from a specific group./mpuser-info <player>: Displays a detailed view of a player's active groups and permissions./mpuser-addperm <player> <node>: Grants a specific permission node to an individual player./mpuser-removeperm <player> <node>: Removes a specific permission node from a player.
👥 Group Management Commands
/mpgroup-list: Shows all groups with their respective priorities./mpgroup-info <group>: Displays group details including permissions, parents, and metadata./mpgroup-create <name>: Initializes a new permission group./mpgroup-delete <name>: Removes an existing group from the system./mpgroup-addperm <group> <node>: Adds a permission node to an entire group./mpgroup-setparent <group> <parent>: Configures a group to inherit permissions from another./mpgroup-setpriority <group> <number>: Defines the priority for prefix/suffix display (higher numbers override lower ones)./mpgroup-rename <oldName> <newName>: Rename a group.
🔧 System Utilities
/mpcheck <player> <node>: Real-time testing to verify if a player has a specific permission node./mpreload: Forces the plugin to refresh all data from the disk./mpbackup-list: Lists all available configuration backups./mpbackup-restore <backup_name>: Restores configuration from a specific backup file.
🛠️ Installation & Requirements
- Ensure your server is running Java 25 (LTS) as required by the Hytale engine.
- Place the
MyPermissions.jarfile into your server'smods/directory. - Restart your server to generate the default configuration files in
mods/MyPermissions/. - All administrative commands require the
myperms.adminpermission node.
🎨 Color Codes Support
You can use the following codes in prefixes, suffixes, and chat:
- Colors:
&0to&f(Black to White). - Formatting:
&l(Bold),&o(Italic),&r(Reset). - Example:
&6&l[VIP]will display a bold gold prefix.
🐛 Bug Reports & Feedback
Your feedback is essential for the continuous improvement of MyPermissions!
- Found a Bug? Please describe the issue in the comments section below.
- Technical Details: When reporting, please specify your server version and, if possible, provide the error logs from the
logs/folder. - Suggestions: Have an idea for a new feature? Feel free to share it in the comments!
⚡ Technical Information
This plugin is built using Hytale's native Codec system, ensuring high-speed data serialization and preventing configuration corruption. It is optimized to handle large permission trees with minimal impact on server tick rates.
🔌 Developer API
Public Methods in Main.java
// Check if player has permission
Main.hasPermission(UUID uuid, String permission); // Returns boolean
// Get player's prefix
Main.getPermissionManager().getUserPrefix(String uuid); // Returns String
// Get player's suffix
Main.getPermissionManager().getUserSuffix(String uuid); // Returns String
// Add player to group
Main.getPermissionManager().addUserToGroup(String uuid, String groupName); // Returns boolean
// Clear permission cache
Main.getPermissionManager().clearCache();
Main.getPermissionManager().clearCache(UUID uuid);
Developed for Hytale Dedicated Servers.


