promotional bannermobile promotional banner
premium banner
A powerful, feature-rich kit management plugin for Hytale servers that allows administrators to create, manage, and distribute predefined item sets to players with extensive customization options.

Description

PlayerKitsPlugin for Hytale

A powerful, feature-rich kit management plugin for Hytale servers that allows administrators to create, manage, and distribute predefined item sets to players with extensive customization options.

Features

Core Functionality

  • Create Kits: Save player inventories as reusable kits with a single command
  • Multi-Inventory Support: Kits include storage, armor, hotbar, utility slots, and backpack items
  • Permission-Based Access: Assign specific permissions to each kit
  • Cooldown System: Configure custom cooldowns per kit (from seconds to hours)
  • Easy Distribution: Give kits to yourself or other players with intuitive commands

Administrative Tools

  • Batch Operations: Save, reload, or delete multiple kits at once
  • Cooldown Management: View and reset player cooldowns through commands
  • Kit Information: Detailed view of kit contents and metadata
  • File-Based Storage: Each kit saved as individual JSON file for easy backup

Player Experience

  • Kit Browser: List all available kits with pagination support
  • Cooldown Display: Real-time cooldown tracking with formatted time remaining
  • Permission Feedback: Clear messages when players lack required permissions
  • Inventory Safety: Non-destructive kit application that respects existing items

Commands

Player Commands

Command Permission Description
/kit list <page> razorplay.playerkitsplugin.command.kit.list List all available kits with pagination
/kit get <kitId> razorplay.playerkitsplugin.command.kit.get Claim a kit you have permission for

Admin Commands

Command Permission Description
/kit create <kitId> <displayName> [description] razorplay.playerkitsplugin.command.kit.create Create a kit from your current inventory
/kit delete <kitId> --confirm razorplay.playerkitsplugin.command.kit.delete Permanently delete a kit
/kit give <player> <kitId> razorplay.playerkitsplugin.command.kit.give Give a kit to another player
/kit reload razorplay.playerkitsplugin.command.kit.reload Reload all kits from disk

Cooldown Management

Command Permission Description
/kit cooldown clear razorplay.playerkitsplugin.command.kit.cooldown.clear Clear all cooldowns for all players
/kit cooldown check <player> <kitId> razorplay.playerkitsplugin.command.kit.cooldown.check Check a player's cooldown for a kit
/kit cooldown reset <player> razorplay.playerkitsplugin.command.kit.cooldown.reset Reset all cooldowns for a specific player

๐Ÿ”ง Configuration

File Structure

mods/RazorPlay_PlayerKitsPlugin/
โ”œโ”€โ”€ kits/                 # Individual kit JSON files
โ”‚   โ”œโ”€โ”€ starter.json
โ”‚   โ”œโ”€โ”€ warrior.json
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ cooldowns.json        # Player cooldown data

Kit Properties

Each kit can be configured with:

  • ID: Unique identifier (no spaces/slashes)
  • Name: Display name shown to players
  • Description: Optional description
  • Permission: Required permission node (leave empty for public)
  • Cooldown: Time between uses in seconds (0 for no cooldown)
  • Items: Full inventory including armor and backpack

Permission Nodes

razorplay.playerkitsplugin.command.kit.*          # All kit commands
razorplay.playerkitsplugin.command.kit.create     # Create kits
razorplay.playerkitsplugin.command.kit.delete     # Delete kits
razorplay.playerkitsplugin.command.kit.give       # Give kits to others
razorplay.playerkitsplugin.command.kit.reload     # Reload kits
razorplay.playerkitsplugin.command.kit.cooldown.* # All cooldown commands

Custom Kit Permissions

Create custom permissions for specific kits: kit.mykit.use # Example: Custom permission for "mykit"

๐Ÿ”Œ API Integration

PlayerKitsPlugin provides a comprehensive API for developers

Get the KitAPI instance 
KitAPI kitAPI = PlayerKitsPlugin.getKitAPI();

Create kits programmatically 
Kit kit = kitAPI.createKit("id", "name", player, "description");

Give kits to players 
boolean success = kitAPI.giveKit(player, playerRef, "kitId");

Event system for custom behavior 
kitAPI.registerListener(new KitEventListener() {
    @Override
    public void onKitClaimed(KitClaimEvent event) {
        // Custom logic when kit is claimed
    }
});

Async permission checking 
CompletableFuture<List<Kit>> availableKits = kitAPI.getAvailableKitsAsync(
    playerId, 
    (uuid, permission) -> checkPermissionAsync(uuid, permission)
);

๐ŸŽฎ Usage Examples

1. Creating a Starter Kit

/kit create starter Starter "Basic tools and armor for new players"

2. Setting Up a Daily Reward

  1. Create the kit with 24-hour cooldown: /kit create daily Daily

  2. Edit the JSON file to set "Cooldown": 86400 (24 hours in seconds)

  3. Set permission: "Permission": "kit.daily.use"

3. Importing Community Kits

/kit import /path/to/community_kit.json

๐Ÿ“‹ Installation

  1. Download the latest PlayerKitsPlugin.jar
  2. Place it in your Hytale server's mods/ directory
  3. Start or reload your server
  4. The plugin will create necessary directories and files automatically

๐Ÿ” Technical Details

Storage System

  • Kits: Individual JSON files in mods/PlayerKitsPlugin/kits/
  • Cooldowns: Centralized JSON file with player-based tracking
  • Serialization: Uses Hytale's Codec system for reliable item serialization

Performance Features

  • Caching: Player-specific kit availability caching (30-second TTL)
  • Async Operations: Non-blocking file I/O and permission checking
  • Efficient Loading: Lazy loading of kit files on demand

Safety Features

  • Input Validation: Sanitized kit IDs to prevent file system issues
  • Error Handling: Comprehensive exception handling with detailed logging
  • Data Integrity: Automatic backup through individual kit files

๐Ÿ› Troubleshooting

Common Issues

  1. "Kit not found": Ensure kit ID is correct and case-sensitive
  2. Permission denied: Check permission nodes and LuckPerms/group setup
  3. Inventory not saving: Verify player has items in inventory when creating kit
  4. File errors: Check file permissions in mods/RazorPlay_PlayerKitsPlugin/ directory

Logs

Check server logs for detailed error information:

  • [PlayerKitsPlugin] prefixed messages show plugin activity
  • Warnings indicate non-critical issues
  • Errors require immediate attention

๐Ÿค Contributing

Found a bug or have a feature request? Please open an issue on our GitHub repository!

๐Ÿ“„ License

This plugin is provided under the MIT License. See LICENSE file for details.


๐Ÿ™ Credits

Developer: Razorplay Testing: Your contributions welcome!