promotional bannermobile promotional banner
premium banner
A high-performance, hierarchical permissions management system for Hytale servers.

Description

MyPermissions - Advanced Hierarchical Management for Hytale

image

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 /mpreload command.

image

image

image

image

image

image


👤 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

  1. Ensure your server is running Java 25 (LTS) as required by the Hytale engine.
  2. Place the MyPermissions.jar file into your server's mods/ directory.
  3. Restart your server to generate the default configuration files in mods/MyPermissions/.
  4. All administrative commands require the myperms.admin permission node.

🎨 Color Codes Support

You can use the following codes in prefixes, suffixes, and chat:

  • Colors: &0 to &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.