Comparison
EssentialsC started as an alternative to EssentialsX, so here is a straight comparison. I appreciate every single one of you using EssentialsC
Where EssentialsC differs
| Area | EssentialsC | EssentialsX |
|---|---|---|
| Vanilla commands | Every command ships at normal priority, so vanilla /gamemode, /give and friends keep working no matter what. You can still reach everything through /essentialsc:<command>, and each command can be turned off, reprioritized, aliased, cooled down or given custom help text in commands.yml |
Takes over vanilla commands by default, and you have to dig through overridden-commands and disabled-commands to stop it |
| Modularity | Almost everything can be switched off completely. Don't use homes, kits, TPA or punishments? Turn them off and they are really gone: no background tasks, no listeners, commands unregistered like the feature never existed | Mostly everything loads whether you use it or not |
| Storage | One SQLite database (or MySQL if you want) holding players, homes, kits, punishments and economy. No pile of per-player files | One YAML file per player on disk |
| Languages & formatting | 29 languages built in, and each player picks their own with /language. Messages use MiniMessage, so gradients, hover text and RGB just work |
One language for the whole server, and old school & color codes |
| Player-facing GUIs | Shop, auction house, kits and RTP open real inventories you can click through. No chat walls, and no extra plugins needed for a shop or an AH | Mostly chat and commands. A shop or an auction house means installing something else |
| Switching over | Coming from EssentialsX? /migration essentialsx pulls over users, homes, warps, bans, mutes and economy, and dry-run mode shows what would happen first |
No importer, you start from zero |
Where EssentialsX still wins
- Older setups. EssentialsX runs on Spigot and on versions going back years. EssentialsC needs Paper and 1.20.6+, so on old setups EssentialsX is your only pick of the two.
- Mail. EssentialsX has
/mail. EssentialsC doesn't, so for offline messages you are stuck with/msghistory or Discord. - Track record. EssentialsX has been around for over a decade and half the plugin world builds on it. EssentialsC is younger, so check the issue tracker before moving a big network over.
About
EssentialsC is a simple, lightweight, and modern all-in-one plugin made to give your Minecraft server everything it needs.
Features
Click to expand full feature list
Economy & Commerce
- Auction House
- Shop
- Economy
Navigation & Teleportation
- Homes
- Warps
- Wild Teleport (RTP)
Administration & Management
- Moderation Tools
- Scoreboard
- Nicknames
- Discord Notifications
- Kits
- 90+ Commands
...and more!
Compatibility
EssentialsC is built for Bukkit-based servers and supports Minecraft 1.20.6 - 26.2+
Supported Software & System Requirements
Software Support
| Software | Status |
|---|---|
| Paper | Supported |
| Purpur | Supported |
| Folia | Supported |
| Other Forks | Supported* |
| Spigot | Not Supported |
| Bukkit | Not Supported |
*Forks that do not modify the core Bukkit API are supported.
Requirements
- Java Version: 21+
- Minecraft Version: 1.20.6+
- Server Platform: A supported server software listed above
Project Information
Use of AI
I use AI as a tool while developing EssentialsC.
- A small part of the core code was generated with AI, but was reviewed, tested, and adapted by me.
- AI was also used for the language files and a larger part of the configs, mainly the shop sections.
- I still review and handle the final implementation myself.
Contributing
Contributions are always welcome! If you have an idea, find a bug, or want to improve something, feel free to open an issue or submit a pull request on GitHub.
Before contributing, please make sure your changes fit the project and are properly tested.
EssentialsC is not affiliated with or endorsed by EssentialsX or Mojang Studios. EssentialsC is developed by me in my free time.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
|
R
2.0.1
|
1d ago | 1 | |||
|
R
2.0
|
1d ago | 1 | |||
|
R
1.11
|
1d ago | 1 | |||
|
R
1.10
|
1d ago | 1 | |||
|
R
1.9
|
1d ago | 1 | |||
|
R
1.8
|
1d ago | 1 | |||
|
R
1.7
|
1d ago | 1 | |||
| 1d ago | 1 | ||||
|
R
1.6
|
1d ago | 1 | |||
|
R
1.5
|
1d ago | 1 | |||
|
R
1.4
|
1d ago | 1 | |||
|
R
1.3
|
1d ago | 1 | |||
|
R
v1.2
|
1d ago | 1 | |||
|
R
v1.1
|
1d ago | 1 | |||
| 1d ago | 1 | ||||
|
A
1.21
|
1d ago | 1 |
- [Add]** Added new
costandcost-bypassoptions tocommands.yml:
``
yaml
top:
enabled: true
priority: normal
aliases: []
cost: 20
cost-bypass: essentialsc.top.bypass.cost
`
- [Fix]** Fixed
/invsee throwing an exception on Folia.
- [Fix]** Fixed home bed lookups throwing an exception on Folia.
- [Fix]** Fixed
/essc dump throwing a JsonIOException.
- [Fix]** Fixed the
essentialsc.scoreboard.toggle permission not working as expected.
- [Add]** Added new
/freeze and /unfreeze commands with the following configuration options:
`yaml
freeze:
# Allow frozen players to look around (yaw/pitch) while keeping their position locked.
allow-look: true
# Cancel PlayerTeleportEvent for frozen players (pearls, chorus, commands, and plugins).
block-teleport: true
# Cancel item drops and prevent item pickups via inventory locking.
block-drop-pickup: true
# Cancel inventory clicks and drags for frozen players.
block-inventory: true
# Cancel block breaking and placing for frozen players.
block-break-place: true
# Cancel right/left-click interactions, entity interactions, and outgoing attacks.
block-interact: true
# Keep players frozen after reconnecting (persisted in the user database).
persist-on-reconnect: true
# Commands frozen players may still run (without a slash, in lowercase).
# All other commands are blocked with freeze.command_blocked.
allowed-commands:
- msg
- reply
- r
- help
``This update contains **A LOT** (and I mean, **A LOT**) of improvements - too many to count, but here are some of them:
- [Update]** Updated the fallback Server Version placeholder so it no longer displays the alpha/release version
- [Update]** Updated the Shop with **2 new default sections**
- [Update]** Updated the Shop layout and buttons
- [Update]** Updated the Shop balance item so it no longer acts as a back button and now displays a formatted balance
- [Update]** Updated almost every auction message for a more consistent look
- [Update]** Updated the default
rules.txtconfiguration
- [Add]** Added a new kit configuration option:
``
yaml
strip-item-names: true
``- [Fix]** Fixed the Shulker Preview GUI not opening when trying to preview a normal/default Shulker Box
### Module Control
You can now **fully disable individual core plugin modules**:
- Auction
- Kits
- Shop
- Rules
- Back
- Homes
- Punishments
- Scoreboard
- Spawn
- TPA
- Vanish
- [Fix]** Fixed
4.3.1throwingUnsupportedOperationException( on Folia )
- [Add]** Added customizable
/<command> helpmessages
- [Fix]** Fixed shop prices accepting
Infinity/NaNvalues
- [Improve]** Imprved the database threading by sharing one DB thread across all databases
- [Fix]** Fixed auction purchases potentially losing items when the inventory is full
- [Add]** Added shulker preview and custom item blacklist support ( auction )
- [Add]** Added an auction search system
- [Add]** Added a new
essentialsc.ah.listings.<limit>permission
- [Add]** Added an auction buy confirmation GUI (toggable)
- [Add]** Added an option to fully disable the auction system
- [Add]** Added an option to fully disable the shop system
- [Add]** Added an option to fully disable the scoreboard
- [Improve]** Improved first-run PlaceholderAPI setup
- [Add]** Added PlaceholderAPI placeholders support in language keys
- [Add]** Added support to shift-clicking items into the SellGUI
- [Improve]** Improved the scoreboard to longer show the red line numbers on the side
- [Fix]** Fixed many more small errors
- [Update]** Rewrote the [EssentialsC MySQL Expansion](https://modrinth.com/plugin/essentialsc-mysql-expansion)
- [Fix]** Players can now no longer use
<rainbow>,<run_command....>etc. with theessentialsc.chat.legacycodespermission
- [Add]** Added the missing
mysql.language keys to all files
- [Update]** Updated the auction GUI messages to no longer use legacy color codes.
- [Fix]** Fixed players being able to take items out of the Auction GUI after it had been open for 5 minutes.
- [Update]** Updated the auction refresh button to no longer forcefully close and reopen the inventory to refresh it asynchronously.
- [Update]** Updated the default Auction GUI templates.
- [Update]** Updated the default Shop GUI templates.
- [Fix]** Fixed the Shop Balance item not being configurable.
- [Add]** Added a new "No Permission" item to the kit GUI template.
- [Add]** Added h/m/b/t suffixes to
/ah sell.
- [Fix]** Fixed started kits not getting applied on first join ( [#39](https://github.com/GodlyCow203/EssentialsC/pull/39) )
- [Add]** Added ( a ) new
essentialsc.setwarp.<count>permission
- [Fix]** Fixed
/sethomenot working
- [Update]** Updated kits to support Enchanted Books:
yaml
- type: ENCHANTED_BOOK
amount: 1
name: "<b><#FF9999>Mending"
lore: []
enchantments: {
MENDING: 1
}
unbreakable: false
flags: []
custom-model-data: 0
nbt: {}
``- [Update]** Updated the
ban.screen_messageand added new<id>,<date>and<player>placeholderrs
- [Update]** Updated
/worth,/selland/quicksellto show decimals
0.15 instead of 0- [Update]** Updated
/worthto use the Items shop config name
- [Add]** Added new command aliases ( [#36](https://github.com/GodlyCow203/EssentialsC/pull/36) ):
/workbench > **/balance** ->
/bal > **/baltop** ->
/balancetop - [Update]** Updated
/sethome,/delhometo allow admins to set/delete a players home
- [Update]** Updated the Kit GUI System:
> **Updated** the default Kits
> **Added** a preview GUI
- [Fix]** Fixed the scoreboard balance field showing
0/not updating when **PlaceholderAPI** was missing
- [Update]** Updated
/essc helpto show a link for the wiki
- [Fix]** Made vanished players persistent across server restarts
- [Fix]** Vanished players no longer appear in tab completion (e.g.
/msg)
- [Fix]** Fixed the shop balance displaying
0.00instead of the correct balance
- [Add]** Added offline player support to
/home <player> <home>
- [Add]** Added fallback placeholders to the scoreboard
- [Update]** Updated the user database to store player languages, bans, and mutes
- [Fix]** Fixed broken
/essclanguage keys
- [Add]** Added a
60scooldown to/afk
- [Update]** Expanded the DEBUG log to include more information
- [Add]** Added a new
/essc commandssubcommand with pagination
- [Fix]** Fixed the AFK broadcast using the AFK players language instead of each receivers language
- [Fix]**
/backthrowing an Error on Folia
- [Fix]** SellGUI and ShopGUI NPE Exception
- [Fix]** the auction expired Items button
- [Fix]** The broken Ban screen
- [Move]**
strip-colors-from-consoleconfig option to the config root
- [Improve]** the chat/nick/tab systems
- [Add]** new languages keys and overall Improvements
- [Fix]** the invalid
%essc_balance_formatted%placeholder
- [Fix]** broken Kick screen message
- [Add]**
/discord, fully configurable in theconfig.yml:
yaml
discord:
# The message(s) sent when a player runs /discord.
# Supports MiniMessage formatting.
message:
- "<#5865F2><bold>DISCORD</bold> <#444444>┃ <white>Stay Connected</white>"
- ""
- "<gray>Join our community server to stay updated with</gray>"
- "<gray>announcements, participate in events, and chat</gray>"
- "<gray>with other players in real-time.</gray>"
- ""
- "<#5865F2>➜ <click:open_url:'https://discord.gg/example'><hover:show_text:'<gray>Click to open invite'><white><underlined>https://discord.gg/example</underlined></white></hover></click>"
`
- [Fix]** wrong enchantment ID in
/shop ( sweeping_edge )
- [Fix]** broken blocks in
shop/blocks.yml`- [Remove]** the home GUI Mode
- [Add]** 1.20.6+ Support
- [Fix]** vanished players showing on tab complete
- [Fix]** EssentialsC throwing an error if Vault was not installed
- [Update]** the
/gamemodeCommand and refine the permissions | [#22](https://github.com/GodlyCow203/EssentialsC/pull/22)
- [Remove]** SkinRestorer softdepend from
plugin.yml
- [Add]** [Faststats](https://faststats.dev/) error tracking
- [Fix]** deprecated String-based Vault economy methods
- [Fix]** shop auto registering unwanted files
- [Add]** MOTD Placeholders to include
{PLAYER}and{ONLINE}
- [Update]** punishment system to store punishments in the user database
- [Add]**
/smite
- [Add]**
/gm<gamemode>
- [Update]** (d)back to handle unsafe locations
- [Fix]** afk detection
- [Add]** new
/vanishconfig option:
yaml
# Hides vanished players from the external server list player count
hide-from-server-list: true
`
- [Update]** the rtp system to work wayyy better
- [Add]**
/stonecutter
- [Add]**
/unban-ip`- [Update]** the rtp system to handle world names wich spaces correctly
- [Fix]** the AFK Title not getting removed on quit
- [Added]** a new
/enchantconfig option:
yaml
# Enchant
#
# Settings for the /enchant command.
enchant:
# Should the /enchant command be able bypass the vanilla limit ?
allow-unsafe: false
`
- [Add]** a bypass permission for the enchant config option:
`yaml
essentialsc.enchant.unsafe:
description: Allows bypassing the vanilla enchant limit ( config option ignored )
default: op
`
- [Fix]** rtp worlds reappearing when deleted from the config.yml
- [Add]** a
/trash confirmation GUI
- [Update]** the motd system to send configurable messages on join
- [Update]** Join/Leave messages to no longer fall back to vanilla j/l messages when disabled in the config.yml
- [Fix]** broken member kit cooldown
- [Add]** a new
essentialsc.home.mount permission which allows you to teleported to your home when mounted on other entities
- [Update]**
/home + /homes messages and added a new config option
`yaml
# The home name to teleport to when typing /home with no arguments.
# Set to "" (empty) to show the home list instead.
# This overrides GUI mode — players will teleport directly.
default-teleport-name: ""
`
- [Update]**
/playerlist with cleaner messages + pagination System
- [Update]** the command help system
- [Fix]**
/invsee` not working on offline players- [Fix]** AFK Move detection logic
- [Fix]** NullPointerException when using the auction house while the economy is disabled
- [Add]**
cooldown:andcooldown-bypass:option forcommands.yml
yml
worth:
enabled: true
priority: normal
aliases: []
cooldown: 10 # 10 Seconds
cooldown-bypass: essentialsc.worth.bypass-cooldown
`
- [Add]** a Kit GUI mode option
`yaml
kits:
# How players interact with the kit list.
# "command" — players type /kits to see a chat list.
# "gui" — /kits opens an inventory GUI showing all available kits.
mode: gui
# Play sounds when opening, claiming, turning pages, or closing the GUI.
sounds: true
`
- The GUI is configurable in
guis/kit_list.ymlKits now also have two new options: `yml
gui-slot: 10
gui-icon: "CHEST"
`
- [Fix]**
/balance` not updating- [Fix]** Punishments not getting saved properly when shutting down the server
- [Fix]** Join/Leave Message not beeing broadcasted to the Console
- [Add]**
/suicidecommand
- [Add]** new
isCurrencyBeforeAmountconfig option ( undereconomy)
- [Add]** a new kit claim cooldown bypass permission
essentialsc.kits.cooldown.bypass ( all )>
essentialsc.kits.cooldown.bypass.<kit> ( per-kit )- [Add]** new
essentialsc.baltop.exemptpermission
- [Fix]** missing name placeholder in
/kits
- [Add]** new nick permissions
essentialsc.nick.color>
essentialsc.nick.format
- [Add]** PlaceholderAPI Support to Join / Leave Messages
- [Add]**
potion-type option to Kits
- [Add]** new
essentialsc.home.bed permission
- [Add]**
/trash` - Added** proper shutdown to all managers
- Added** way better config migration
- Updated** the scoreboard and fly manager to store data in the user database
- Replaced** all remaining hardcoded messages with language keys
- Fix** using
plugin.getServer().getScheduler()instead of theEssScheduler
- Fixed** the
kit.list.entrylanguage key
- Updated**
/essc placeholderswith pagination support
- Optimized** and reworked the Chat System
- Fixed** the Shop Spawners not working in Survival
- Added** new bstats charts
- Fixed** shop delay
- Fixed** shift clicking items into the Shop GUI
- Added* a lot of new placeholders (
/essc placeholders)
- Added* a
helptab completer to every command, which sends a help menu when triggered.
- Made** the Home GUI items non-italic.
- Made** the Auction GUI items non-italic.
- Added** kit notifications (toggle with
/kits notifications toggle).
- Added** offline player support to all moderation commands (
/ban,/unmute, etc.).
- Made** the Auction and Shop GUIs fully configurable in
/plugins/EssentialsC/guis.
- Added** better crash handling to the plugin.
- Added** a new user system. All user data is now stored in a
users.dbdatabase. This update also includes a one-time **YAML-to-database** migrator for migrating data from versions earlier than4.1.6.
- Added**
/essc dump.
- Fixed** duplicate
/realnameregistration.
# **Note**: For this update, I recommend backing up the EssentialsC Folder.
- Fixed** the ChatManager
- Fixed the FlyManager
- Fixed** the Spawn Manager
- Fixed** the Tpa Particles
- Removed** Invalid permissions
- Added** null check to the
/invseecommand
- Fixed** the TAB Manager throwing an Exception if Luckperms hasnt finished loading
- Added**
/dback( Teleports you back to your last death Location )
- Fixed** the nick validation check
- Fixed** the broken heal language key
- Added** Home Tab completion (
Command Mode) + fixed the broken Placeholders
- Made** Kit Lorelines, Names, etc. *Non-Italic*
- Added** a SellGUI:
/worth <hand/Inventory>to check how much an Item is worth/quicksell <hand/Inventory>to quickly sell Items/sellto open the SellGUI
- Fixed** the duplicated displaynames when using [TAB ➚](https://modrinth.com/plugin/tab-was-taken)
- Fixed** DiscordSRV messages being sent twice
- Made** the auction house translatable
- Added** a fallback language:
yaml
# The fallback language used if a message is missing in the selected language file.
# Must match a file in the lang/ folder (e.g. en_US -> lang/en_US.json).
fallback-language: en_US
`
- Updated** the default join/leave Messages and added other options:
`yaml
# Whether vanished players should be hidden from other players.
hide-vanished: true
# Message broadcast when a player joins the server for the first time.
# Supports MiniMessage formatting (e.g. <yellow>, <player>).
first-join: "<#F5CF27><b>Welcome!<reset> <#F8DC63><player> just joined for the first time!"
`
- Fixed** the config migration
- Removed** the Chat Seperator config option
- Fixed** the
isBackupEnabled config option
- Fixed** the economy + tpa config options
- Added** new
/fly config options:`yaml
# Whether a player's fly status should be saved and persist between sessions.
persistent: true
# Whether to automatically restore fly mode when the player rejoins the server.
restore-on-join: true
`
- Added**
/broadcast config options:`yaml
broadcast:
# Prefix prepended to all broadcast messages. Supports MiniMessage.
prefix: "<#333333>[<#F55E27>Broadcast<#333333>] <white>"
`
- Added** new
/spawn config options:`yaml
# Whether players should be teleported to the configured spawn on respawn.
teleport-on-respawn: true
# Whether beds can override the spawn location.
# If false, players will always respawn at the configured spawn.
allow-beds-to-override: true
`
- Added** new Chat config options:
`yaml
chat:
slow-mode:
# Whether chat slow mode is enabled.
enabled: false
# Delay (in seconds) players must wait between sending messages.
delay-seconds: 3
# Caps lock prevention - converts messages with too many uppercase letters to lowercase.
# Threshold is the ratio of uppercase letters (0.0 to 1.0, e.g. 0.7 = 70%).
capslock-threshold: 0.7
# Whether to strip MiniMessage color formatting from console output.
strip-colors-from-console: true
mention:
# Whether player mentions in chat are enabled.
enabled: true
# Format used when a player is mentioned.
# Available placeholder: <player>
# Supports MiniMessage formatting.
format: "<#4BA8DE><player><reset>"
`
- Added** new Auction house config options:
`yaml
# Whether enchanted books are allowed to be sold.
allow-enchanted-books: false
# List of materials that cannot be sold.
# Use Bukkit material names (e.g. DIAMOND, NETHERITE_INGOT).
blacklisted-materials:
- DRAGON_EGG
- BEACON
- NETHER_STAR
# Whether to notify the player when they successfully sell items.
notify-on-sale: true
`
- Added** new
/nick config options:`yaml
# Whether to show the player's real username when hovering over their nickname in chat.
show-realname-on-hover: true
# Format for the hover text when hovering a nickname in chat.
# Available placeholders: <realname>, <nick>, <prefix>, <suffix>
hover-format: "<gray>Real name: <white><realname>"
# Whether clicking a nickname in chat suggests the /msg <player> command.
click-suggest-msg: true
``warps ) are now located in the EssentialsC/database folder. The data is NOT lost, it just moved !- Added**
commands.ymlto manage all EssentialsC related commands:
yaml
ping:
enabled: true
priority: normal
aliases: []
playtime:
enabled: true
priority: normal
aliases: []
vanish:
enabled: true
priority: normal
aliases: []
`
- Added** a MOTD System ( Change the MOTD in the
motd.txt file )> **Info** --> Your current MOTD will be replaced with "Change this in the motd.txt file"
- Added** a schedule system that allows you to run commands, play sounds, etc. at a specific time. Example:
`yaml
restart-warning:
enabled: false
time: "23:50"
actions:
- type: broadcast
message: "<#FF4444><b>⚠ <reset><#FFCCCC>The server will restart in <#FF4444><b>10 minutes<reset><#FFCCCC>. Please find a safe spot and log off!"
- type: title
title: "<#FF4444><b>Restart in 10 min"
subtitle: "<#AAAAAA>Find a safe spot and log off"
fade-in: 10
stay: 120
fade-out: 20
- type: actionbar
message: "<#FF4444>⚠ <#FFCCCC>Server restarting in <#FF4444>10 minutes"
- type: sound
sound: BLOCK_NOTE_BLOCK_BASS
volume: 1.0
pitch: 0.5
`
- Added** a Backup system that allows you to backup all **EssentialsC** files.
/essc backup
`yaml
backup:
# Set to false to disable the backup system entirely.
enabled: true
# Maximum number of backups to keep in the backups/ folder.
# Once this limit is exceeded, the oldest backup is deleted automatically.
# Set to -1 to keep all backups and never delete any.
keep-last: 10
# Create a backup automatically when the server shuts down.
on-shutdown: true
`
- Added**
/banip
- Added**
/banlist
- Added**
/tpoffline
- Change**
essentialsc.heal default to false` - Added** a
/rulescommand
- Fixed** the Nether RTP
- Added** a
/spawnentitycommand with a configurable spawn limit:
yaml
spawnentity:
max-amount: 10
`
- Fixed** the
config.yml and all language files ( /lang/ ) not updating after installing the latest Version
- Players** with the
essentialsc.vanish.see can now see vanished players in the TAB and ingame
- Added** offline Player support for
/invsee
- Added** a
/playerlist command with configurable options:`yaml
playerlist:
show-luckperms-prefix: true
players-per-line: 10
`
- Added** a
/tphereall` command- [Enjoy ;)](https://discord.gg/SMGGrHbbEW)**
- Added** a home GUI:
- Manage offline and online players
- Modify other players' homes
- Rename, remove, delete, or set any player's homes
- Switch between
commandandguimode in theconfig.yml
- Fixed** the vanish system and added 2 new permissions:
- essentialsc.vanish.onjoin** – Automatically toggles vanish when the player joins the server
- essentialsc.vanish.see** – Allows the player to see other vanished players
- Added** a
/tpherecommand
- Added** an
/itemidcommand
- Added** custom bStats [economy charts](https://bstats.org/plugin/bukkit/EssentialsC/29401)
- Bump**
plugin.ymlversion to 4.1.1
- Bedrock** users can no longer use Nicknames
- Added** a configurable nick indicator:
yaml
indicator: "~"
`
- Added** custom world support for
/rtp
- Added** support for [TAB ➚](https://www.spigotmc.org/resources/tab-1-7-x-1-21-11.57806/)
- Added** nick placeholders:
`
%essc_nick_name%
%essc_nick_plain%
e%essc_nick_formatted%
%essc_nick_has_nick%
`
- Fixed** the shop GUI bugging and overriding other GUIs
- EssentialsCEconomy** now uses
public void onLoad() instead of public void onEnable()
- Added** a configurable chat format:
`yaml
chat-format: '<DISPLAYNAME> &7» &f<MESSAGE>
``- Improved** the EssentialsX migration tool
- Fixed** the DiscordSRV hook not sending messages
- Fixed** the messages getting send twice in the console
- Enjoy :)** [Join ;D](https://discord.gg/xPZj9xUTqm)
### Added
- Legacy Color Support** - Added legacy color code support for the scoreboard
- RTP System** - Brand new
/rtp(Random Teleport) command with full configuration - LuckPerms TAB Integration** - Added support for LuckPerms prefixes in the TAB list
- Luxembourgish Language** - Added
LU_lb.jsonas a supported language file - New DiscordSRV Events** - Extended DiscordSRV integration with new message hooks
- Mute events
- SetHome events
- DelHome events
- Kit claim events
- Auction House Rework** - Completely overhauled the auction house system
- Sell history
- Buy history
- Sound effects
- Refresh button
- General improvements & polish
- (also added the missing language keys)
### Changed
- Config Migration** - Moved
chat.luckperms-enabled→luckperms.chat-formatting - Message Files** - Updated all message files with new colors and improved prefixes
- Scoreboard Layout** - Updated the default scoreboard layout
- Shop** - Added config option to completely disable the shop
### Fixed
- Fixed
/nick resetcommand not working correctly - Fixed custom nicknames not showing in the TAB list
- Fixed shop items retaining lore lines and display names from the shop config after purchase
- Fixed shop
config.ymlentries for currency name (singular & plural) and main menu title
### New & Updated Configuration Options (
config.yml)``
yaml
luckperms:
chat-formatting: true # Moved from 'chat.luckperms-enabled'
tab-formatting: true # New option
shop:
enabled: true # Set to false to fully disable the shop
rtp:
# Completely disable the /rtp command (will unregister from command map)
register-command: true
enabled: true
# Teleport settings
cooldown: 60 # seconds
warmup: 5 # seconds, 0 to disable
cancel-on-movement: true
particles: true
max-attempts: 10
min-y: 64
max-y: 128
use-world-border: true
# Global defaults (used if per-world settings are not specified)
global:
min-radius: 1000
max-radius: 10000
blocked-biomes:
- ocean
- deep_ocean
- river
# Per-world settings
worlds:
world:
enabled: true
min-radius: 1000
max-radius: 10000
blocked-biomes: []
world_nether:
enabled: true
min-radius: 500
max-radius: 5000
blocked-biomes: []
world_the_end:
enabled: true
min-radius: 1000
max-radius: 8000
blocked-biomes: []
discordsrv:
enabled: true
# Channel configuration
# The 'name' field references a channel name defined in DiscordSRV's config.yml
channels:
punishments:
name: "punishments" # Must match a key in DiscordSRV's Channels section
# Event-specific settings
events:
ban:
enabled: true
color: "#E74C3C"
kick:
enabled: true
color: "#F39C12"
mute:
enabled: true
color: "#9B59B6"
kit:
enabled: true
color: "#3498DB"
home:
enabled: true
color: "#2ECC71"
home_delete:
enabled: true
color: "#E74C3C"
# Avatar settings
show-avatar: true
avatar-url: "https://crafthead.net/helm/{uuid}"
``### Added
- DiscordSRV Integration** - Full support for DiscordSRV
- Automatic hook registration with DiscordSRV API
### New Configuration Options (
config.yml)``
yaml
discordsrv:
enabled: true
channels:
punishments:
name: "punishments" # References DiscordSRV Channels section
events:
ban:
enabled: true
color: "#E74C3C"
kick:
enabled: true
color: "#F39C12"
show-avatar: true
avatar-url: "https://crafthead.net/helm/{uuid}"
``## Example

- Fixed** the
/kitscommand
- Added** Luckperms support:
> Toggable in the
config.yml file:``
chat:
luckperms-enabled: true
`
- Removed** the invalid
config.yml option:
`
migration:
enabled: true
``- Added** EssentialsX → EssentialsC migration system
- Added**
/migration statuscommand to detect existing EssentialsX data and verify manager availability
- Added**
/migration essentialsx --dry-runpreview mode to simulate migration without writing data
- Added** validation phase that checks worlds, counts files, detects missing data, and ensures required managers are loaded
- Added** configurable migration flags:
--no-economy,--no-homes,--no-warps,--no-nicks,--no-mutes,--no-bans--only-warps,--only-bans,--only-mutes--overwrite,--rename-conflicts,--abort-on-conflict
- Added** full warp migration support:
- Transfers location (
world,x,y,z,yaw,pitch) - Preserves permission, cost, and hidden status
- Migrates description and category metadata
- Added** user data migration from
userdata/*.yml:
- Economy balances with automatic UUID-based account creation
- Homes for all players (including offline players)
- Nickname conversion from legacy color codes to MiniMessage format
- Active mute data including reason, source, and expiration
- Back/last location when available
- Added** ban migration from
banned-players.json:
- Transfers UUID, name, reason, source, and expiration
- Automatically skips expired or revoked bans
- Added** offline player migration support:
- Homes inserted directly into the database (no Player object required)
- Economy handled via UUID lookups
- Nicknames stored and applied on next join
- Added** structured multi-phase migration workflow:
1. Validation — checks worlds, detects issues, verifies managers
2. Warps — transfers warp data and metadata
3. Users — migrates economy, homes, nicknames, and mutes
4. Bans — imports and filters ban records
- Added** advanced conflict handling options to prevent accidental overwrites
- Added** progress tracking with percentage and ETA during migration
- Added** detailed post-migration report:
- Migrated / skipped / failed counts
- Warning list for partial failures
- Clear visibility into what changed
- Improved** large dataset handling using direct database insertion for faster and safer migrations