Next-Gen Custom Ender Chest
The ultimate, high-performance, and fully customizable Ender Chest solution for modern servers. Built from the ground up for Paper & Folia.
Overview
Tired of basic Ender Chest plugins that lag your server, lack features, or don't support modern server software? Next-Gen Custom Ender Chest is a complete rewrite of the classic concept, engineered for the demands of today's high-performance servers.
Our plugin offers a powerful, flexible, and completely asynchronous experience, ensuring zero lag while providing your players with permission-based Ender Chests. Whether you're running a single server or a large network, our multi-storage backend has you covered.
⭐ Features
Permission-Based Sizes: Easily configure up to 6 different Ender Chest sizes, granted to players via permission nodes (CustomEnderChest.level.0 to CustomEnderChest.level.5).
⚡ High-Performance & Asynchronous: All data operations (loading and saving) are handled asynchronously, meaning your server's performance will never be affected, even with hundreds of players online. Flexible Storage System: You choose how to store your data!
- MySQL: Perfect for multi-server networks (BungeeCord/Velocity) to sync player data seamlessly.
- H2: A fast, file-based database for single servers. Offers better performance than YML with zero setup.
- YML: Simple and easy to edit manually, saving each player's data in a separate file.
Folia Compatible: Built with the future in mind. Our scheduler and data handling logic are fully compatible with Folia's multi-threaded environment, something very few plugins offer. Fully Customizable (MiniMessage): Customize all messages, prefixes, and even inventory titles using the powerful MiniMessage format. Support for gradients, hex colors, and legacy codes (&c) is built-in.
Multi-Language Support: Create and switch between different language files (lang_en.yml, lang_vi.yml, etc.) with a simple change in the config.
Powerful Admin Commands: Reload the plugin, open/delete any player's chest (online or offline), and manage the plugin with ease.
Easy Migration: A simple command (/cec importlegacy) allows you to import all player data from Custom EnderChest, file-based versions of this plugin.
Commands & Permissions
Click to view Commands & Permissions
Player Commands: /ec - Opens your Ender Chest.
Aliases: /ec, /cec, /customenderchest
Size Permissions:
CustomEnderChest.level.0 - 9 Slots (1 row)
CustomEnderChest.level.1 - 18 Slots (2 rows)
CustomEnderChest.level.2 - 27 Slots (3 rows)
CustomEnderChest.level.3 - 36 Slots (4 rows)
CustomEnderChest.level.4 - 45 Slots (5 rows)
CustomEnderChest.level.5 - 54 Slots (6 rows)
Admin Commands:
/cec reload - Reloads the config and language files
/cec importlegacy - Imports data from the old plugin version's format.
/cec delete - #Next update
/cec open - Open EnderChest Player
Permission: CustomEnderChest.admin
Configuration
The plugin is extremely easy to configure. You can control everything from the storage type to every sound effect.# -------------------------------------------------- #
# Configuration for CustomEnderChest v2.0 #
# -------------------------------------------------- #
# Thank you for using the refactored version!
# All messages, titles, and user-facing text are now managed in the /lang directory.
# General plugin settings
general:
# Select the language file to use.
# Example: "en" will load "lang_en.yml", "vi" will load "lang_vi.yml".
# Make sure the corresponding file exists in the plugin's /lang folder.
locale: "en"
# Database settings
storage:
# Storage type. Options:
# yml - Stores data in YAML files, no external setup needed.
# h2 - (Default & Recommended for single servers) Fast, lightweight, stores data in a single file, no external setup needed.
# mysql - (Recommended for multi-server networks) Requires a separate MySQL server.
type: "h2"
# The table name that will be used in the database.
table_name: "custom_enderchests"
# Periodically auto-save data for online players.
# This helps minimize data loss in case of a server crash.
# Time is in seconds.
auto-save-interval-seconds: 300 # Default is 5 minutes
# Settings for MySQL (only apply if `type` is "mysql")
mysql:
host: "127.0.0.1"
port: 3306
database: "enderchest_db"
username: "user"
password: "password"
# Enable/disable SSL encryption for the connection.
use-ssl: false
# Settings for the Connection Pool (HikariCP).
# These settings optimize database connection performance.
# You generally don't need to change these unless you know what you're doing.
pool-settings:
max-pool-size: 10
min-idle: 5
connection-timeout: 30000 # 30 seconds
# Automatically clean up old user data in MySQL
auto-cleanup:
# Enable/disable the automatic deletion of inactive player data.
enabled: false
# Number of inactive days. Data for players who have been offline for this duration will be deleted.
inactive-days: 90
# Ender Chest gameplay options
enderchest-options:
# Disable opening the custom ender chest by right-clicking an Ender Chest block.
# Useful if you only want players to open the chest via command.
disable-enderchest-click: false
# Sound customization
sounds:
# Disable all plugin sounds if set to `true`.
disable-all: false
# You can find valid sound names here:
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
# (Use the names from the Enum column)
open:
name: "BLOCK_ENDER_CHEST_OPEN"
volume: 1.0
pitch: 1.0
close:
name: "BLOCK_ENDER_CHEST_CLOSE"
volume: 1.0
pitch: 1.0
fail:
name: "BLOCK_NOTE_BLOCK_PLING"
volume: 1.0
pitch: 0.5
reload:
name: "ENTITY_PLAYER_LEVELUP"
volume: 0.8
pitch: 1.5
Click to view lang/lang_en.yml
messages:
prefix: "<gray>[<gradient:#C0FFEE:#B4D0FF>EnderChest</gradient>]</gray> "
no-permission: "<red>You don't have permission for that.</red>"
players-only: "<red>This command can only be run by a player.</red>"
reload-success: "<green>Configuration and language files have been reloaded.</green>"
data-still-loading: "<yellow>Your data is still loading, please wait a moment...</yellow>"
command:
usage: "<red>Usage: <gray>/<label> <usage>"
player-not-found: "<red>Player '<player>' not found or has no data."
delete-success: "<green>Successfully deleted Ender Chest data for <white><player></white>."
loading-chest: "<yellow>Loading <white><player>'s</white> Ender Chest..."
titles:
# Placeholders: <player>, <level>
enderchest: "<level> &8- <light_purple><player>'s Chest"
admin_view: "<dark_red>Admin View: <white><player>"
levels:
'0': "&fLevel 1"
'1': "&aLevel 2"
'2': "&bLevel 3"
'3': "&eLevel 4"
'4': "&6Level 5"
'5': "&d&lLevel 6"
import:
started: "<green>Starting import from legacy flat files. This may take a while..."
progress: "<gray>Import progress: <yellow><processed>/<total></yellow> files processed."
no-folder: "<red>Could not find the old 'PlayerData' folder to import from."
complete: "<green>Data import complete! <white><imported></white> legacy profiles imported."
error: "<red>Failed to import file <yellow><file></yellow>. See console for details."
Click to view lang/lang_vi.yml
messages:
prefix: "<gray>[<gradient:#C0FFEE:#B4D0FF>Rương Ender</gradient>]</gray> "
no-permission: "<red>Bạn không có quyền để làm điều này.</red>"
players-only: "<red>Lệnh này chỉ có thể được thực thi bởi người chơi.</red>"
reload-success: "<green>Đã tải lại tệp cấu hình và ngôn ngữ.</green>"
data-still-loading: "<yellow>Dữ liệu của bạn đang được tải, vui lòng chờ trong giây lát...</yellow>"
command:
usage: "<red>Sử dụng: <gray>/<label> <usage>"
player-not-found: "<red>Không tìm thấy người chơi '<player>' hoặc họ chưa có dữ liệu."
delete-success: "<green>Đã xóa thành công dữ liệu Rương Ender của <white><player></white>."
loading-chest: "<yellow>Đang tải Rương Ender của <white><player></white>..."
titles:
# Biến thay thế: <player>, <level>
enderchest: "<level> - <light_purple>Rương của <player>"
# Biến thay thế: <player>
admin_view: "<dark_red>Admin Xem: <white><player>"
# Tên cấp độ được dùng trong biến <level>
levels:
'0': "&fCấp 1"
'1': "&aCấp 2"
'2': "&bCấp 3"
'3': "&eCấp 4"
'4': "&6Cấp 5"
'5': "&d&lCấp 6"
import:
started: "<green>Bắt đầu nhập dữ liệu từ file cũ. Quá trình này có thể mất một lúc..."
progress: "<gray>Tiến trình nhập: Đã xử lý <yellow><processed>/<total></yellow> file."
no-folder: "<red>Không tìm thấy thư mục 'PlayerData' cũ để nhập dữ liệu."
complete: "<green>Nhập dữ liệu hoàn tất! Đã nhập <white><imported></white> hồ sơ, bỏ qua <gray><skipped></gray>."
error: "<red>Không thể nhập file <yellow><file></yellow>. Vui lòng kiểm tra console."
Installation
- Download the latest version.
- Place the .jar file into your server's plugins folder.
- Start your server to generate the default configuration files.
- Stop the server, edit config.yml and lang/lang_en.yml to your liking.
- Start your server again. Done!
Support
If you have any questions or need support, please use the discussion thread or discord: maiminhdung.
Information
Category | Gameplay |
---|---|
Published on | July 18, 2025 |
License | CC BY-NC-SA 4.0 |
Downloads | 0 |
Stars | 0 |
Watchers | 0 |