promotional bannermobile promotional banner
premium banner
Advanced kit management mod designed to power a Hytale Kit PvP (kitpvp) style server with an intuitive kit selector. Now with per-world kits, new GUIs, developers API and much more!

Description

Advanced kit management mod designed to power Hytale servers with intuitive GUIS

Features

  • Create unlimited custom kits from your current inventory
  • Edit and delete kits with simple commands
  • Enable/disable kits without deleting them
  • Per-world kit support
  • Custom sorting
  • Each kit stores complete inventory layout and items (including hotbar, storage, armor, backpack and utility!)
  • Intuitive custom UIs for kit selection, edition and creation
  • Granular permission control per kit
  • Configurable cooldown between kit selections
  • Translations

Quick start

Creating a Kit:

/minikit create

Opens MiniKit's Kit Creation GUI.

Select a kit

/minikit (or /kit, /kits)

Opens MiniKit's Kit Selection GUI.

Editing a Kit:

/minikit edit <kitId>

Opens MiniKit's Kit Editor GUI.

Commands & Permissions

Command Permission Node Description
/minikit (or /kit, /kits, /minikits) minikit.use Allows opening the MiniKit GUI menu to view and select kits
GUI - Select Kit (Any) minikit.select-kit.* Allows selecting any kit from the GUI menu
GUI - Select Kit (Specific) minikit.select-kit.<kitId> Allows selecting a specific kit by ID (e.g., minikit.select-kit.1)
Cooldown Bypass minikit.admin.bypass-cooldown Bypasses the kit selection cooldown timer
Full Admin Mode minikit.admin.* Enables all admin commads
/minikit create [name] [sortWeight] minikit.admin.create-kit Allows creating a new kit from current inventory
/minikit edit <kitId> minikit.admin.edit-kit Allows editing an existing kit through the edit GUI
/minikit update <kitId> minikit.admin.update-kit Allows updating an existing kit's inventory with current inventory
/minikit delete <kitId> minikit.admin.delete-kit Allows deleting an existing kit by its ID
/minikit toggle <kitId> minikit.admin.toggle-kit Allows enabling or disabling a kit by its ID
/minikit list minikit.admin.list-kits Allows listing all available kits with their IDs and status

Granting Basic Access

Give players access to use kits:

/perm group add Adventure minikit.use
/perm group add Adventure minikit.select-kit.*

Granting Kit-Specific Access

Allow a player to only use specific kits (e.g., kit IDs 1 and 3).

NOTE: This requires omitting the wildcard (.*) permission above.

/perm group add Adventure minikit.use
/perm group add Adventure minikit.select-kit.1
/perm group add Adventure minikit.select-kit.3

Granting Admin Access

Give full administrative control:

/perm group add Adventure minikit.use
/perm group add Adventure minikit.select-kit.*
/perm group add Adventure minikit.admin.*

Configuration Options

MiniKit automatically creates a configuration file on first run. You can find it in your server's mods/com.jecsham_MiniKit/Config.json file.

Setting Default Description
SelectKitCooldownSecs 5 Number of seconds players must wait between selecting kits
HideKitIfNoPermission false If true, kits will be hidden from players who don't have permission to use them. If false, kits are shown but cannot be selected.
CheckInventoryConflicts false If true, checks if the player's inventory slots are available before applying a kit. This option is ignored if ClearInventory is set to true.
ClearInventory false If true, clears the player's inventory before applying a kit. If false, kit items are added to existing inventory.

For Developers

MiniKit provides a comprehensive API for developers who want to integrate kit functionality into their own plugins.

Getting Started

Add MiniKit as a Dependency

In your manifest.json

// ...
{
  "Dependencies": {
      "com.jecsham:MiniKit": "*"
  }
   // or
   "OptionalDependencies": {
         "com.jecsham:MiniKit": "*"
   }
}
// ...

Gradle:

dependencies {
    compileOnly files('libs/MiniKit-<version>.jar')
}

API Usage

Accessing the API

// in your Main class:
private MiniKitAPI miniKitAPI = null;

// inside your setup() method:
try {
   miniKitAPI = MiniKit.getAPI();
   if (miniKitAPI != null) {
      // MiniKit integration enabled
      LOGGER.atInfo().log("Total kits from MiniKit: " + miniKitAPI.getKitCount());
      }
   } catch (NoClassDefFoundError | Exception e) {
      // MiniKit not available, continuing without it
      // or exit the program if your plugins depends on MiniKit
   }

API Methods

Method Returns Description
getKitById(int id) Optional&lt;Kit&gt; Retrieves a kit by its unique ID
getKit(String name) Optional&lt;Kit&gt; Retrieves a kit by its name
hasKit(int id) boolean Checks if a kit exists with the specified ID
hasKit(String name) boolean Checks if a kit exists with the specified name
getAllKits() Map&lt;Integer, Kit&gt; Returns all kits mapped by their IDs
getKitCount() int Returns the total number of kits

Please comment bugs or suggestions!