
E-Kits | Flawless kit solution v1.0
In-Game kits management system
- Built-in kits and kit categories system.
- Built-in economy system (toggleable).
- Flat file (JSON), MongoDB and MySQL databases support.
- Fully In-Game kits and kit categories customization (GUI).
- Fully customizable player messages.
- Fully customizable menus.
- Hex colors and gradient support (1.16+ servers).
- Custom Model Data support (1.14+ servers).
- Skull textures support.
- MiniMessage support.
- Vault economy hook option.
- Automatic kit applying on players first join.
- A bunch of Kit features:
- Kit's display name on menus and messages.
- Kit's required permission for using.
- Kit's display icon on menus (supports custom skull textures, armor colors and custom model data).
- Usage cooldown.
- Toggleable one-time use option.
- Toggleable purchasable option (players must purchase the kit every time they claim it).
- Toggleable one-time-purchasable option (player will only purchase the kit once).
- Editable purchase price.
- On-apply custom potion effects.
- On-apply automatic commands execution.
- Editable inventory and armor contents.
- A bunch of Kit Category features:
- Category's display name on menus.
- Category's required permission for accessing through main menu.
- Category's display icon on menus (similar to kits display icon).
- Category's display slot on main menu.
- Editable list of kits that will be displayed on each category.
- Toggle on/off a category on main menu.
- Player kit commands.
- Admin kit commands.
- Heavily optimized commands and data management.
Requirements
- Java 11+
- Spigot 1.8 - 1.21
- MongoDB/MySQL Database (Optional)
Pricing (Limited JAR Sale until 3/31)
- JAR & License: 7.49 USD 4.99 USD
- Source Code without Updates: 29.99 USD
- Source Code with Updates: 39.99 USD
Note: Source code purchases do NOT include resell rights or plugin's ownership. If you are purchasing a source code, you have to buy the JAR & License as well.
Player Commands
- /kit <kit> [player] - Get or apply a kit onto a player. (Aliases: /playerkit).
- /kit buy <kit> - Purchase a permanent kit. (Aliases: /kitbuy, /kitpurchase, /buykit, /purchasekit).
- /kits - Open kits menu. (Aliases: /playerkits).
- /balance [player] - View your or some player's balance. (Aliases: /bal, /money, /cash).
Admin Commands
- /e-kits - Show plugin's information. (Aliases: /ekits).
- /e-kits reload - Reload all plugin's configuration files (not players or kits data).
- /kitmanager - Show help for kits and categories management. (Aliases: /km, /kitadmin).
- /kitmanager create <name> - Create a kit.
- /kitmanager delete <kit> - Delete a kit. (Aliases: remove).
- /kitmanager createcategory <name> - Create a kit category. (Aliases: createcat).
- /kitmanager deletecategory <category> - Delete a kit category. (Aliases: removecategory, deletecat, removecat).
- /kitmanager manage - Manage all kits and categories (Interactive menu).
- /economymanager - Show help for economy management. (Aliases: /em, /eco).
- /economymanager give <player> <amount> - Give money to a player. (Aliases: add).
- /economymanager take <player> <amount> - Take money from a player. (Aliases: remove).
- /economymanager set <player> <amount> - Set the balance of a player.
- /resetkitclaim <player> <kit|all> - Reset a player kit's cooldown. (Aliases: /resetkitcooldown, /clearkitclaim, /clearkitcooldown).
- /addpurchasedkit <player> <kit> - Set a kit as purchased for a player.
- /removepurchasedkit <player> <kit|all> - Set a kit as non purchased for a player. (Aliases: /clearpurchasedkit).
Configuration Files
# ==============================================
# E-Kits
# Version: 1.0
# Developed by Escosoft Studios (Santi_MG)
# ==============================================
# License key required to activate the plugin.
# Have you just bought the plugin? Join to our Discord server and ask for a license.
# In case you don't have Discord, request one via BuiltByBit private message.
LICENSE_KEY: ""
# Plugin's prefix for chat messages.
PREFIX: "&b&lE-Kits &7» &f"
# Which method should we use to store all data of E-Kits?
# Available: FLATFILE, MONGO, MYSQL
# Default database ports are: 27017 for MongoDB, 3306 for MySQL
STORAGE_METHOD: "FLATFILE"
# Only required for MongoDB or MySQL.
DATABASE:
HOST: "localhost:27017"
NAME: "E-Kits"
AUTH:
USERNAME: ""
PASSWORD: ""
# Which message service integration would you like to use?
# Available: BUKKIT, MINIMESSAGE
# BUKKIT service will use "lang-bukkit.yml" for messages, MINIMESSAGE will use "lang-minimessage.yml".
MESSAGE_SERVICE: "BUKKIT"
# Every kit created will require a permission based on this format.
# Permission can always be edited or removed after creating the kit.
# Leave it empty ("") to make every new kit not require a permission.
DEFAULT_KIT_PERMISSION: "kit.{name}"
# Kit that all new players will receive when they join the server for the first time.
# This kit is applied by console, this means it doesn't matter if the player is not allowed to use this kit
# and they will also not receive cooldown after applying.
# Leave empty to disable.
FIRST_JOIN_KIT: "Test"
ON_KIT_APPLYING:
# Should player's inventory be entirely replaced with the kit's contents (empty slots too) when applied?
# This may produce players losing their current items.
REPLACE_CURRENT_CONTENTS: false
# Should remaining kit's contents be dropped on ground if players don't have space on their inventories?
DROP_ITEMS_IF_FULL: true
# Should we check and deny players from equipping kits if they don't have enough space on their inventories?
CHECK_INVENTORY: false
ECONOMY:
# Should we hook into Vault's economy if we detect that you have the plugin in your server?
# This will use, for example, your EssentialsX's economy system instead of E-Kits built-in one.
# If you enable this option, ignore all the following appart from the last ones.
VAULT_HOOK: false
# Should we enable E-Kit's built-in economy commands? (/economyamanger and /balance)
# If you enable VAULT_HOOK, you should disable this option since you may already have a plugin that contains these commands.
COMMANDS: true
# Minimum balance that players are allowed to have in their account.
MIN_BALANCE: 0.0
# Maximum balance that players are allowed to have in their account.
MAX_BALANCE: 1000000000000.0
# Currency symbol of plugin's built-in economy system.
SYMBOL: "✪"
# Should we format balance-related messages with the currency symbol at the begging of the number?
# If you disable this option, the currency symbol will be put at the end of the number.
FORMAT_AT_BEGGINING: false
# Decimal formats for balance amounts.
# Check https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html -> Special Pattern Characters
# In order to use DECIMAL_FORMAT, enable USE_SHORT_FORMAT. Otherwise, full format will be used instead.
DECIMAL_FORMAT: "#.##"
FULL_DECIMAL_FORMAT: "###,###,###,###.##"
# Should we use a short format for money?
# For example, 1000 will be displayed as 1K, 1500000 as 1.5M, etc.
USE_SHORT_FORMAT: false
# Button configuration example:
#
# BUTTON_NAME:
# SLOT: 0 (from 0 to 53)
# ITEM: "WOOL:14" (or "RED_WOOL" for 1.13+ servers)
# NAME: "&cExample"
# LORE:
# - "&fThis is a lore example."
# - "&aSecond line."
# GLOW: true | false
# SKULL_DATA: "SomePlayerName | Base64 Texture Value (1.8+ servers) | textures.minecraft.net/texture/textureValue... URL (1.18+ servers)"
# CUSTOM_MODEL_DATA: 1 (for 1.14+ servers. Up to 7 digits)
#
# Categories placeholders:
# {name}, {displayName}, {permission}, {kitsCount}
# Kits placeholders:
# {name}, {displayName}, {permission}, {cooldown}, {price}
PAGINATED_MENUS_TITLE_TRAIL: " - {currentPage}/{pages}"
MAIN_MENU:
TITLE: "&lKits"
SIZE: 54
PLACEHOLDERS: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ]
KITS_MENU:
TITLE: "&lKits &r» {name}"
SIZE: 54
PLACEHOLDERS: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ]
BACK_BUTTON_SLOT: 4 # Remove this line to disable.
PREVIEW_MENU:
TITLE: "&lPreview &r» {name}"
SIZE: 45
BACK_BUTTON_SLOT: 44
GLOBAL_BUTTONS:
PLACEHOLDER:
ITEM: "BLACK_STAINED_GLASS_PANE"
NAME: " "
NEXT_PAGE:
ITEM: "ARROW"
NAME: "&bNext Page &7(&f{currentPage}&7/&f{pages}&7)"
LORE:
- ""
- "&eClick to swap to"
- "ðe next page!"
PREVIOUS_PAGE:
ITEM: "ARROW"
NAME: "&bPrevious Page &7(&f{currentPage}&7/&f{pages}&7)"
LORE:
- ""
- "&eClick to swap to"
- "ðe next page!"
BACK:
ITEM: "REDSTONE"
NAME: "&cBack"
LORE:
- ""
- "&eClick to back to"
- "ðe previous menu!"
CATEGORY_NO_PERMISSION:
NAME: "{displayName}"
LORE:
- ""
- "&cThis category is exclusive for donors!"
- "&cPurchase a rank at &lstore.yourserver.com"
CATEGORY_AVAILABLE:
NAME: "{displayName} &7(&f{kitsCount}&7)"
LORE:
- ""
- "&eClick to view kits!"
KIT_NO_PERMISSION:
NAME: "{displayName}"
LORE:
- ""
- "&cYou don't have access to this kit!"
- "&cPurchase it at &lstore.yourserver.com"
- ""
- "&eRight Click to preview!"
KIT_NON_PURCHASED:
NAME: "{displayName}"
LORE:
- ""
- "&cYou haven't purchased this kit!"
- "&b&l┃ &fPrice: &b{price}"
- "&b&l┃ &fType &b/buykit {name}"
- ""
- "&eRight Click to preview!"
KIT_ALREADY_ONE_TIME_CLAIMED:
NAME: "{displayName}"
LORE:
- ""
- "&cYou have already claimed this kit!"
KIT_ON_COOLDOWN:
NAME: "{displayName}"
LORE:
- ""
- "&cYou can't claim this kit yet!"
- "&b&l┃ &fAvailable in: &b{cooldown}"
- ""
- "&eRight Click to preview!"
KIT_AVAILABLE_TO_PURCHASE:
NAME: "{displayName}"
LORE:
- ""
- "&aYou haven't claimed this kit yet!"
- "&b&l┃ &fPrice: &b{price}"
- ""
- "&eLeft Click to purchase and claim!"
- "&eRight Click to preview!"
KIT_AVAILABLE:
NAME: "{displayName}"
LORE:
- ""
- "&aYou haven't claimed this kit yet!"
- ""
- "&eLeft Click to claim!"
- "&eRight Click to preview!"
COMMAND:
UNKNOWN_COMMAND: "Unknown command. Type /help for help."
INVALID_SYNTAX: "&cUsage: {command} {syntax}"
PERMISSION_DENIED: "&cYou don't have permission to execute this command!"
NOT_ALLOWED_ON_CONSOLE: "&cThis command can only be executed by players!"
PLEASE_SPECIFY_ONE_OF: "&cYou must specify one of {valid}!"
MUST_BE_A_NUMBER: "&cYou must enter a valid number!"
MUST_BE_MIN_LENGTH: "&cString must be at least {min} characters long!"
MUST_BE_MAX_LENGTH: "&cString must be at most {max} characters long!"
PLEASE_SPECIFY_AT_LEAST: "&cNumber must be at least {min}!"
PLEASE_SPECIFY_AT_MOST: "&cNumber must be at most {max}!"
NO_COMMAND_MATCHED_SEARCH: "&cCommand \"{search}\" not found!"
COULD_NOT_FIND_PLAYER: "&cPlayer \"{search}\" not found!"
ERROR: "&cAn error ocurred while trying to perform this command! Please contact the server administrators."
NEVER_JOINED_BEFORE: "&c\"{target}\" has never joined before!"
DATA_NOT_FOUND: "&cData of {target} couldn't be found!"
KIT_NOT_FOUND: "&cKit \"{kit}\" not found!"
CATEGORY_NOT_FOUND: "&cCategory \"{category}\" not found!"
INVALID_DURATION: "&cYou must enter a valid duration!"
CANT_AFFORD: "&cYou can't afford this kit! Required: &l{price}"
NOT_ENOUGH_SPACE: "&cYou don't have enough space in your inventory to claim this kit! Free your inventory and armor slots."
# Kit categories placeholders: {name}, {displayName}, {permission}, {kitsCount}
CATEGORY_NO_PERMISSION: "&cThis category is exclusive for donors! Purchase a rank at &lstore.yourserver.com"
# Kit placeholders: {name}, {displayName}, {permission}, {cooldown}, {price}
KIT:
NO_PERMISSION: "&cYou don't have access to this kit! Purchase it at &lstore.yourserver.com"
NON_PURCHASED: "&cYou haven't purchased this kit! Type &l/buykit {name}&c."
NON_PURCHASABLE: "&cThat kit is not purchasable!"
ALREADY_ONE_TIME_CLAIMED: "&cYou have already claimed this kit!"
ALREADY_PURCHASED: "&cYou have already purchased this kit!"
ON_COOLDOWN: "&cYou can't claim this kit again for another &l{cooldown}&c!"
PURCHASED: "You have &apurchased &fkit &b{displayName} &ffor &b{price}&f!"
APPLIED_PURCHASING: "Kit &b{displayName} &fsuccessfully &aapplied &ffor &b{price}&f!"
APPLIED: "Kit &b{displayName} &fsuccessfully &aapplied&f!"
APPLIED_OTHERS: "Kit &b{displayName} &fsuccessfully &aapplied &fto &b{target}&f!"
RESET_KIT_COOLDOWN:
RESET: "&b{kit}&f's cooldown of &b{target} &areset&f!"
RESET_ALL: "&bAll &fkit cooldowns of &b{target} &areset&f!"
KIT_PURCHASE:
ADDED: "Kit &b{kit} &fset as &apurchased &ffor &b{target}&f!"
REMOVED: "Kit &b{kit} &fset as &cnon purchased &ffor &b{target}&f!"
REMOVED_ALL: "&bAll &fkits set as &cnon purchased &ffor &b{target}&f!"
BALANCE:
OWN: "Your balance: &b{balance}"
OTHERS: "&b{target}&f's balance: &b{balance}"
COMMAND:
UNKNOWN_COMMAND: "Unknown command. Type /help for help."
INVALID_SYNTAX: "<red>Usage: {command} {syntax}</red>"
PERMISSION_DENIED: "<red>You don't have permission to execute this command!</red>"
NOT_ALLOWED_ON_CONSOLE: "<red>This command can only be executed by players!</red>"
PLEASE_SPECIFY_ONE_OF: "<red>You must specify one of {valid}!</red>"
MUST_BE_A_NUMBER: "<red>You must enter a valid number!</red>"
MUST_BE_MIN_LENGTH: "<red>String must be at least {min} characters long!</red>"
MUST_BE_MAX_LENGTH: "<red>String must be at most {max} characters long!</red>"
PLEASE_SPECIFY_AT_LEAST: "<red>Number must be at least {min}!</red>"
PLEASE_SPECIFY_AT_MOST: "<red>Number must be at most {max}!</red>"
NO_COMMAND_MATCHED_SEARCH: "<red>Command \"{search}\" not found!</red>"
COULD_NOT_FIND_PLAYER: "<red>Player \"{player}\" not found!</red>"
ERROR: "<red>An error ocurred while trying to perform this command! Please contact the server administrators.</red>"
NEVER_JOINED_BEFORE: "<red>\"{target}\" has never joined before!</red>"
DATA_NOT_FOUND: "<red>Data of {target} couldn't be found!</red>"
KIT_NOT_FOUND: "<red>Kit \"{kit}\" not found!</red>"
CATEGORY_NOT_FOUND: "<red>Category \"{category}\" not found!</red>"
INVALID_DURATION: "<red>You must enter a valid duration!</red>"
CANT_AFFORD: "<red>You can't afford this kit! Required: <b>{price}</b></red>"
NOT_ENOUGH_SPACE: "<red>You don't have enough space in your inventory to claim this kit! Free your inventory and armor slots.</red>"
# Kit categories placeholders: {name}, {displayName}, {permission}
CATEGORY_NO_PERMISSION: "<red>This category is exclusive for donors! Purchase a rank at <b>store.yourserver.com</b></red>"
# Kit placeholders: {name}, {displayName}, {permission}, {cooldown}, {price}
KIT:
NO_PERMISSION: "<red>You don't have access to this kit! Purchase it at <b>store.yourserver.com</b></red>"
NON_PURCHASED: "<red>You haven't purchased this kit! Type <b>/buykit {name}</b></red>"
NON_PURCHASABLE: "<red>That kit is not purchasable!</red>"
ALREADY_ONE_TIME_CLAIMED: "<red>You have already claimed this kit!</red>"
ALREADY_PURCHASED: "<red>You have already purchased this kit!</red>"
ON_COOLDOWN: "<red>You can't claim this kit again for another <b>{cooldown}</b>!</red>"
PURCHASED: "You have <green>purchased</green> kit <aqua>{displayName}</aqua> for <aqua>{price}</aqua>!"
APPLIED_PURCHASING: "Kit <aqua>{displayName}</aqua> successfully <green>applied</green> for <aqua>{price}</aqua>!"
APPLIED: "Kit <aqua>{displayName}</aqua> successfully <green>applied</green>!"
APPLIED_OTHERS: "Kit <aqua>{displayName}</aqua> successfully <green>applied</green> to <aqua>{target}</aqua>!"
RESET_KIT_COOLDOWN:
RESET: "<aqua>{kit}</aqua>'s cooldown of <aqua>{target}</aqua> <green>reset</green>!"
RESET_ALL: "<aqua>All</aqua> kit cooldowns of <aqua>{target}</aqua> <green>reset</green>!"
KIT_PURCHASE:
ADDED: "Kit <aqua>{kit}</aqua> set as <green>purchased</green> for <aqua>{target}</aqua>!"
REMOVED: "Kit <aqua>{kit}</aqua> set as <red>non purchased</red> for <aqua>{target}</aqua>!"
REMOVED_ALL: "<aqua>All</aqua> kits set as <red>non purchased</red> &ffor <aqua>{target}</aqua>!"
BALANCE:
OWN: "Your balance: <aqua>{balance}</aqua>"
OTHERS: "<aqua>{target}</aqua>'s balance: <aqua>{balance}</aqua>"
In order to use the plugin on your server you must request a license on our official Discord server or via Polymart's direct message. This license will be unique and no other people than you will have access to it. Also, as a result of preventing some users to share their licenses with non-buyers, you will be able to set only 1 IP address (your server address) where you can use your license from. In case you need extra addresses, you will have to pay a small extra per IP.
Note: Servers that require at least 2 addresses for multi-proxy reasons or similar will be exempted of this restriction.
Do you have doubts? Have you found a bug? Do you want some new feature to be added to E-Kits? Feel free to submit a ticket on our Discord server in order to get support from our staff members and administrators.
IMPORTANT: No support will be given to people that have NOT purchased the plugin.
Discord Server: https://escosoft.net/discord


