EssentialsX icon

EssentialsX -----

The modern Essentials suite for Spigot and Paper.




Note: These patch notes are for EssentialsX 2.20.1, which was released on 5th August 2023 and supports Minecraft 1.20.1.
EssentialsX 2.20.0 was previously released on 23rd May 2023
with lots of new features and important changes, including the new Discord Link addon.
Please read both changelogs before updating, else you may run into issues!


EssentialsX 2.20.1 is here, bringing with it 1.20.1 support and several bug fixes.

Thanks to everyone who has contributed code to this release (many of whom are listed at the bottom of this release), as well as to everyone who has contributed to translations on Crowdin!

In addition, a massive thanks to our community members who have assisted countless people with using EssentialsX across GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @ImDarkLaw, @Chew, @Laarryy and many others.

The EssentialsX project is powered by the community. If you want to help us out, you can contribute by;

  • Updating or reviewing translations on Crowdin
  • Help users in our support channel on Discord
  • Fixing bugs or offering new features on GitHub
Finally, a shoutout to our supporters on Patreon and GitHub Sponsors!
A special thanks goes to our Hero tier supporters:

Your support helps us to continue spending hours of our free time working on and improving EssentialsX for everyone. If you've got any spare change, you can click one of the buttons below to support the EssentialsX project with a one-off or monthly pledge:

[​IMG] [​IMG]

Supported server versions
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • ✅ 1.19.4 and 1.20.1 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, 1.14.4, 1.15.2, 1.16.5, 1.17.1, and 1.18.2 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.
We recommend using the latest version of Paper. EssentialsX includes significant improvements that require Paper, including:

  • Paper's async chunk loading reduces lag spikes during player teleports.
    CraftBukkit and Spigot do not support async chunk loading from plugins.
  • /anvil, /grindstone, /cartographytable, /loom, /smithingtable, and /stonecutter are only supported on Paper.
    CraftBukkit and Spigot do not support the API needed for these.
  • /recipe on 1.12+ requires Paper to avoid a dupe bug introduced by CraftBukkit and Spigot.
  • Paper contains countless overall performance optimisations over CraftBukkit and Spigot.
EssentialsX does not support the following Minecraft versions or server software:

Upgrading to 2.20.1
If you're upgrading from 2.20.0, you can keep your current EssentialsX config file. There are no new changes to configuration files in this release.

Upgrading from 2.19.7 or older versions of EssentialsX? See the previous update changelogs.

Known issues
Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location
On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Fly mode is reset when teleporting between worlds. (#4325)
On Minecraft 1.17.1 and greater, player's fly mode will be reset regardless of the world-change-fly-reset setting due to behavior change in vanilla. This will be fixed in a future version of Essentials.

New features
EssentialsX now supports 1.20.1 (#5389)
EssentialsX now officially supports Paper, Spigot, and CraftBukkit 1.20.1.

Other additions
  • Translations have been updated with the latest community contributions from Crowdin.
  • Our dependencies and build tools have been updated to their latest versions. (#5383)
  • Added the ability to get the recipe of the item you're holding with /recipe hand. (#5346)
Bug fixes
Bugs fixed from 2.20.0 and older versions
  • An exception is no longer raised during new joins when using LuckPerms contexts. (#5364)
  • Shout and question prefixes now work when using the /toggleshout command. (#5367)
  • Underscores in kit placeholders no longer are removed upon receiving the kit. (#5366)
  • Invalid decimal values provided in configuration files now return proper default values. (#5373)
  • An exception is no longer raised when doing operations on some offline players. (#5375, #5466)
  • Invalid material names in /unlimited user data values no longer prevent user data from loading. (#5438)
  • Trade signs no longer break when setting currency-symbol-suffix to true in the config. (#5441)
  • The enchant command now supports items held in the offhand. (#5449)
  • The book command now works properly with other items held in the offhand. (#5449)
  • Various issues related to offline player lookups have been fixed. (#5462)
  • AntiBuild: AntiBuild checks are no longer ran for NPCs. (#5365)
  • Discord: Console messages and webhook messages should no longer spam console or die out after spam. (#4786)
  • Discord: The quit message online player count placeholder is no longer off by one. (#5440)
  • Discord: The console relay now properly filters all formatting codes. (#5454)
  • Discord Link: Player link data is no longer saved to disk when no data has changed. (#5388)
  • Discord Link: Discord roles and minecraft groups are now removed instantly upon unlink. (#5388)
Regressions fixed from 2.20.1 dev builds
The following bugs from 2.20.1 development builds have been fixed:

  • Commands in kits no longer replace spaces with underscores. (#5377)
  • Empty lines in kits no longer raise an exception. (#5378)
  • Kits no longer only replace spaces with underscores in commands. (#5379)
Changes for developers
New events
EssentialsX 2.20.1 introduces a new event:

  • KitPreExpandItemsEvent is fired before players are about to receive kit items. (#5407)
For a full commit log, click here.
----------, Aug 5, 2023

Note: These patch notes are for EssentialsX 2.20.0, which was released on 23rd May 2023 and supports Minecraft 1.19.4. EssentialsX 2.20.1 is now out with support for Minecraft 1.20.1.

Please read both changelogs before updating, else you may run into issues!


After months of hard work from our contributors, EssentialsX 2.20.0 is here!

This release contains a new Discord Link addon, 1.19.4 support, a few new features, bug fixes and internal improvements. Keep reading to see all the new additions!

Thanks to all our contributors who contributed to this release (all of whom are listed at the bottom of this release), as well as to everyone who has contributed to translations on Crowdin!

In addition, a massive thanks to our community members who have assisted countless people with using EssentialsX across GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @ImDarkLaw, @Chew, @Laarryy and many others.

The EssentialsX project is powered by the community. If you want to help us out, you can contribute by;

  • Updating or reviewing translations on Crowdin
  • Help users in our support channel on Discord
  • Fixing bugs or offering new features on GitHub
Finally, a shoutout to our supporters on Patreon and GitHub Sponsors!
A special thanks goes to our Hero tier supporters:

Your support helps us to continue spending hours of our free time working on and improving EssentialsX for everyone. If you've got any spare change, you can click one of the buttons below to support the EssentialsX project with a one-off or monthly pledge:

[​IMG] [​IMG]

Supported server versions
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • ✅ 1.18.2 and 1.19.4 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, 1.14.4, 1.15.2, 1.16.5, and 1.17.1 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.
We recommend using the latest version of Paper. EssentialsX includes significant improvements that require Paper, including:

  • Paper's async chunk loading reduces lag spikes during player teleports.
    CraftBukkit and Spigot do not support async chunk loading from plugins.
  • /anvil, /grindstone, /cartographytable, /loom, /smithingtable, /stonecutter are only supported on Paper.
    CraftBukkit and Spigot do not support the API needed for these.
  • /recipe on 1.12+ requires Paper to avoid a dupe bug introduced by CraftBukkit and Spigot.
  • Paper contains countless overall performance optimisations over CraftBukkit and Spigot.
EssentialsX does not support the following Minecraft versions or server software:

Upgrading to 2.20.0
If you're upgrading from 2.19.3 or above, you can keep your current EssentialsX config file. However, 2.20.0 adds several new options that you may want to configure, and to do so you'll need to either update your config or add the new settings to your existing config. Read on for a list of changes and new config options.

Upgrading from 2.19.2 or older versions of EssentialsX? See the previous update changelogs.

New module: EssentialsX Discord Link! (#4155)
EssentialsX Discord now has the Discord Link addon, which lets your users easily link their Discord and Minecraft accounts! You can synchronize Discord roles with Vault groups, as well as optionally requiring players to link to Discord before playing, all with a bloat-free and easy-to-understand configuration!

[​IMG]

[​IMG]

[​IMG]

You can read more about EssentialsX Discord Link and see how to get started here.

Known issues
Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location
On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Minecraft: Trails and Tales content not yet supported in commands
EssentialsX 2.20.0 doesn't yet support blocks, items and mobs from Minecraft: Trails and Tales in 1.19.x or 1.20. As a result, some commands and features (including /give, /spawnmob and /editsign) won't recognise the new content yet.

We plan to release a 2.20.1 update once Minecraft 1.20 has released, which will add support for the new content.

Important changes
Usermap storage and cache changes (#4581, #5125)
EssentialsX 2.20 overhauls the user caching system, fixing issues with third-party plugins such as Towny.

Due to a large overhaul in data format, once you upgrade to 2.20.0, you will not be able to downgrade your userdata to older versions. We strongly recommend taking a full backup of your plugins/Essentials/usermap.csv file before you update from 2.19.7 to 2.20.0 if you ever wish to downgrade in the future.

New features
EssentialsX now supports 1.19.4 (#5179, #5273)
EssentialsX now officially supports CraftBukkit, Spigot and Paper for 1.19.4.

New /renamehome command (#5121)
You can now use /renamehome to change the name of your existing home. If you have the essentials.renamehome.others permission, you can rename the homes of other players.

New /bottom command (#5292)
You can now use /bottom to teleport to the lowest safe location in their current position.

Discord: New first-join message type (#5160)
A new Minecraft -> Discord message type, sent when a player joins the server for the first time.

# Configure which Discord channels different messages will be sent to.
# You can either use the names of the channels listed above or just the id of a channel.
# If an invalid channel is used, the primary channel will be used instead.
#
# To disable a message from showing, use 'none' as the channel name.
message-types:
...

# Join messages sent when a player joins the Minecraft server for the first time. This type is sent instead of the join type.
first-join: primary


# The following entries allow you to customize the formatting of messages sent by the plugin.
# Each message has a description of how it is used along with placeholders that can be used.
messages:
...

# This is the message sent to Discord when a player joins the minecraft server for the first time.
# The following placeholders can be used here:
# - {username}: The name of the user joining
# - {displayname}: The display name of the user joining
# - {joinmessage}: The full default join message used in game
# - {online}: The amount of players online
# - {unique}: The amount of unique players to ever join the server
# ... PlaceholderAPI placeholders are also supported here too!
first-join: ":arrow_right: :first_place: {displayname} has joined the server for the first time!"


Discord: New local, question, and shout message types (#4684)
A few new Minecraft -> Discord message types and configuration options have been added in order to support local, question and shout chat.

# Whether to use Essentials Chat events instead of normal chat event.
# This allows you to filter chat by its type (local, question, shout).
use-essentials-events: false

# Configure which Discord channels different messages will be sent to.
# You can either use the names of the channels listed above or just the id of a channel.
# If an invalid channel is used, the primary channel will be used instead.
#
# To disable a message from showing, use 'none' as the channel name.
message-types:
...

# Message sent when a player talks in local chat.
# use-essentials-events must be set to "true" for this to work.
local: none

# Message sent when a player asks a question in global chat.
# use-essentials-events must be set to "true" for this to work.
question: primary

# Message sent when a player talks in global chat.
# use-essentials-events must be set to "true" for this to work.
shout: primary

# The following entries allow you to customize the formatting of messages sent by the plugin.
# Each message has a description of how it is used along with placeholders that can be used.
messages:
...

# This is the message that is used to relay minecraft local chat in Discord.
# The following placeholders can be used here:
# - {username}: The username of the player sending the message
# - {displayname}: The display name of the player sending the message (This would be their nickname)
# - {message}: The content of the message being sent
# - {world}: The name of the world the player sending the message is in
# - {prefix}: The prefix of the player sending the message
# - {suffix}: The suffix of the player sending the message
# ... PlaceholderAPI placeholders are also supported here too!
mc-to-discord-local: "**[Local]** {displayname}: {message}"

# This is the message that is used to relay questions from minecraft chat in Discord.
# The following placeholders can be used here:
# - {username}: The username of the player sending the message
# - {displayname}: The display name of the player sending the message (This would be their nickname)
# - {message}: The content of the message being sent
# - {world}: The name of the world the player sending the message is in
# - {prefix}: The prefix of the player sending the message
# - {suffix}: The suffix of the player sending the message
# ... PlaceholderAPI placeholders are also supported here too!
mc-to-discord-question: "**[Question]** {displayname}: {message}"

# This is the message that is used to relay minecraft global chat in Discord.
# The following placeholders can be used here:
# - {username}: The username of the player sending the message
# - {displayname}: The display name of the player sending the message (This would be their nickname)
# - {message}: The content of the message being sent
# - {world}: The name of the world the player sending the message is in
# - {prefix}: The prefix of the player sending the message
# - {suffix}: The suffix of the player sending the message
# ... PlaceholderAPI placeholders are also supported here too!
mc-to-discord-shout: "**[Shout]** {displayname}: {message}"

Discord: Configurable webhook name
You can now change the webhook name format for messages sent to Discord.

# The following entries allow you to customize the formatting of messages sent by the plugin.
# Each message has a description of how it is used along with placeholders that can be used.
messages:
...

# This is the bot's name which appears in Discord when sending player-specific messages.
# The following placeholders can be used here:
# - {username}: The username of the player sending the message
# - {displayname}: The display name of the player sending the message (This would be their nickname)
# - {world}: The name of the world the player sending the message is in
# - {prefix}: The prefix of the player sending the message
# - {suffix}: The suffix of the player sending the message
# - {botname}: Name of the Discord bot
# ... PlaceholderAPI placeholders are also supported here too!
mc-to-discord-name-format: "{botname}"

Other additions
  • Translations have been updated with the latest community contributions from Crowdin.
  • Added tab completions for the /mail clear command. (#5132)
  • Added the essentials.nick.hideprefix permission to hide the nickname prefix for those with it. (#4995)
  • Added per-command cooldown permissions: essentials.commandcooldowns.bypass.<command name>. (#4759)
Bug fixes
Bugs fixed from 2.19.7 and older versions
  • Further duplication glitches were fixed in /recipe. (#5122)
  • Various performance issues with NPCs and jails have been fixed. (#5130)
  • Playtime statistics in /whois no longer overflow. (#5177)
  • Various offhand and inventory related issues have been fixed. (#5021)
  • Doubles are now supported for coordinates in the /tppos command in the console. (#5231)
  • Trade signs no longer accept water bottles as a valid trade for a potion. (#5260)
  • An exception is no longer raised in /tpoffline when the player's last location is not known. (#5290)
  • Sulk sensors no longer detect vanished players. (#5262)
  • The /top command now sends feedback once again. (#5302)
  • The /editsign command now calls the SignChangeEvent. (#5304)
  • Commands preformed on offline players no longer raise a NullPoinerException in some cases. (#5339)
  • Discord: The console relay no longer stops working after /ess reload in some cases. (#5149)
  • Discord: Webhooks should no longer hang the server during shutdown in some cases. (#5165)
  • Discord: Translated Discord command descriptions are now properly truncated to account for Discord character limits. (#5314)
Regressions fixed from 2.20.0 dev builds
The following bugs from 2.20.0 development builds have been fixed:

  • NPC users are once again added to the UserMap properly. (#5129)
  • Servers with large amounts of user data no longer hang for minutes on startup. (#5143)
  • The offhand is no longer used for /hat. (#5205)
  • The /createkit command works on 1.8.8 once again. (#5212)
  • Sending a mail to all online players works once again. (#5263)
  • The user map now properly expels users from cache after a while. (#5331)
  • Discord: Webhook names are no longer sanitized for markdown. (#5311)
  • Discord Link: The /link Discord command no longer requires administrator privileges. (#5197)
  • Discord Link: Synchronizing offline players no longer raises a NullPointerException (#5338)
Changes for developers
Viewers can now be modified for DiscordRelayEvent (#5080)
DiscordRelayEvent now has a getViewers() method which returns a mutable list of viewers for the relayed message.

Discord Link Module API (#3702)
With the addition of the Discord Link Module, there is now an API service to access information about a player's Discord account that they have linked. You can obtain an instance of this and use it in tandem with the Discord module API like so:

// Gets the API service for EssentialsX Discord Link
final DiscordLinkService linkApi = Bukkit.getServicesManager().load(DiscordLinkService.class);
final String discordId = linkApi.getDiscordId(player.getUniqueId());

if (discordId == null) {
// The player has no Discord account linked.
return;
}

// Gets the API service for EssentialsX Discord which we will use to get the actual user
final DiscordService discordApi = Bukkit.getServicesManager().load(DiscordService.class);
final InteractionMember member = discordApi.getMemberById(discordId).join();
final String userTag = member == null ? null : member.getTag();

New events
EssentialsX 2.20.0 introduces several new events:

  • GlobalChatEvent is fired when players send a message in global chat. (#4683)
  • LocalChatEvent is fired when players send a message in local chat. (#4683)
  • HomeModifyEvent is fired when a home is created, updated or deleted. (#5216)
For a full commit log, click here.
----------, Aug 5, 2023

EssentialsX 2.19.7 is here! This release has several bug fixes for chat and other issues. Keep reading to see all the changes!

Thanks to all our contributors who contributed to this release (all of whom are listed at the bottom of this release), as well as to everyone who has contributed to translations on Crowdin!

Finally, a massive thanks to our community members who have assisted countless people on GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @Chew, @Laarryy and many others.

In addition, a shoutout to our supporters on Patreon, GitHub Sponsors and Ko-fi. A special thanks goes to our Hero tier supporters:

Want to be listed here? You can join our Hero tier on Patreon or GitHub at the links above!

Your support helps us to continue spending hours of our free time working on and improving EssentialsX for everyone. If you've got any spare change, you can click one of the buttons below to support the EssentialsX project:

[​IMG] [​IMG] [​IMG]

Supported server versions
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • ✅ 1.18.2 and 1.19.2 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, 1.14.4, 1.15.2, 1.16.5, and 1.17.1 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.
We recommend using the latest version of Paper. EssentialsX includes significant improvements that require Paper, including:

  • Paper's async chunk loading reduces lag spikes during player teleports.
    CraftBukkit and Spigot do not support async chunk loading from plugins.
  • /anvil, /grindstone, /cartographytable, /loom, /smithingtable, /stonecutter are only supported on Paper.
    CraftBukkit and Spigot do not support the API needed for these.
  • /recipe on 1.12+ requires Paper to avoid a dupe bug introduced by CraftBukkit and Spigot.
  • Paper properly shows colours in EssentialsX's console log messages, including EssentialsX Chat messages.
  • Paper contains countless overall performance optimisations over CraftBukkit and Spigot.
  • Paper supports all properly-written plugins for CraftBukkit and Spigot.
EssentialsX does not support the following Minecraft versions or server software:

Upgrading to 2.19.7
If you're upgrading from 2.19.3 or above, you can keep your current EssentialsX config file. There have been no changes to the configuration since that release.

Upgrading from 2.19.2 or older versions of EssentialsX? See the previous update changelogs.

Known issues
Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location
On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Vanilla signed chat commands may show EssentialsX formatting on 1.19.1+
If you use any vanilla commands that send secure chat messages (including /minecraft:msg or /minecraft:me), you may see formatting from EssentialsX Chat in these messages. This is due to an implementation quirk in Spigot, which forces plugins to handle all secure previews for vanilla chat commands as if they were public chat messages. There is no known workaround for this at this time, but you can continue to use unsigned commands from EssentialsX and other plugins as normal.

Bug fixes
Bugs fixed from 2.19.6 and older versions
  • Using /sudo to send a chat message as another user will no longer send their previewed message. (#5062)
  • To prevent item loss, users can no longer use /invsee on themselves. (#5061)
  • The /ess dump command no longer errors on 1.8.8. (#5067)
  • Various notifications (including bans/kicks/mutes and /helpop) now show colors properly in the console. (#5075)
  • Users with RGB permissions but without color permissions can now use RGB color codes properly. (#5076)
  • Backup scripts now properly log errors again. (#5077)
  • The /baltop command now works in command blocks. (#5078)
  • Chat: Local chat messages are no longer sent globaly. (#5062)
Regressions fixed from 2.19.7 dev builds
There are no known regressions in 2.19.7 dev builds.

Changes for developers
There are no API changes in this release!

For a full commit log, click here.
----------, Aug 22, 2022

EssentialsX 2.19.6 is here! This release features slight additions, support for Minecraft 1.19.2, and several bug fixes. Keep reading to see all the changes!

Thanks to all our contributors who contributed to this release (all of whom are listed at the bottom of this release), as well as to everyone who has contributed to translations on Crowdin!

Finally, a massive thanks to our community members who have assisted countless people on GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @Chew, @Laarryy and many others.

In addition, a shoutout to our supporters on Patreon, GitHub Sponsors and Ko-fi. A special thanks goes to our Hero tier supporters:

Want to be listed here? You can join our Hero tier on Patreon or GitHub at the links above!

Your support helps us to continue spending hours of our free time working on and improving EssentialsX for everyone. If you've got any spare change, you can click one of the buttons below to support the EssentialsX project:

[​IMG] [​IMG] [​IMG]

Supported server versions
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • ✅ 1.18.2 and 1.19.2 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, 1.14.4, 1.15.2, 1.16.5, and 1.17.1 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.
We recommend using the latest version of Paper. EssentialsX includes significant improvements that require Paper, including:

  • Paper's async chunk loading reduces lag spikes during player teleports.
    CraftBukkit and Spigot do not support async chunk loading from plugins.
  • /anvil, /grindstone, /cartographytable, /loom, /smithingtable, /stonecutter are only supported on Paper.
    CraftBukkit and Spigot do not support the API needed for these.
  • /recipe on 1.12+ requires Paper to avoid a dupe bug introduced by CraftBukkit and Spigot.
  • Paper properly shows colours in EssentialsX's console log messages, including EssentialsX Chat messages.
  • Paper contains countless overall performance optimisations over CraftBukkit and Spigot.
  • Paper supports all properly-written plugins for CraftBukkit and Spigot.
EssentialsX does not support the following Minecraft versions or server software:

Upgrading to 2.19.6
If you're upgrading from 2.19.3 or above, you can keep your current EssentialsX config file. There have been no changes to the configuration since that release.

Upgrading from 2.19.2 or older versions of EssentialsX? See the previous update changelogs.

Important change: EssentialsX Chat now supports secure chat (#5030)
Minecraft 1.19.1 introduced a new Player Reporting feature on the client, allowing players to report chat messages to Mojang in-game. The server now has a secure chat system which allows players to preview and "sign" their chat messages, which ensures players can't use client mods to fabricate reports with fake messages. If the game can't verify a message, it will show a yellow warning indicator.

As of 2.19.6, EssentialsX Chat supports chat previews. Once you enable chat previews in your server.properties file, EssentialsX Chat will send back previews to players so they can send secure "signed" messages without the yellow warning indicator.

Players will need to accept previews when they join the server. They will also need to wait a second between finishing their message and pressing Enter to ensure their message gets previewed and signed.

Known issues
Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location
On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Vanilla signed chat commands may show EssentialsX formatting on 1.19.1+
If you use any vanilla commands that send secure chat messages (including /minecraft:msg or /minecraft:me), you may see formatting from EssentialsX Chat in these messages. This is due to an implementation quirk in Spigot, which forces plugins to handle all secure previews for vanilla chat commands as if they were public chat messages. There is no known workaround for this at this time, but you can continue to use unsigned commands from EssentialsX and other plugins as normal.

New features
EssentialsX now supports 1.19.2 (#4932, #4966, #5026, #5027, #5035)
EssentialsX now has full support for Minecraft 1.19.2, including support for the new Wild Update items in /give, /item and kits, new mobs, and new NMS/OBC mappings for accessing internal CraftBukkit code.

EssentialsX also no longer warns when installed on 1.19.2 servers.

Other additions
  • Translations have been updated with the latest community contributions on Crowdin. (#4823)
  • Console colors are once supported again on Paper. (#4941)
  • Reduced the amount of user lookups during LuckPerms context calculations. (#4869)
  • The /playtime command will now no longer appear to progress for vanished users. (#4918)
Bug fixes
Bugs fixed from 2.19.4 and older versions
  • The /tpa command no longer double charges a user with /tpauto on. (#4862)
  • The /nick off command can now be used by users with only essentials.nick.changecolors permissions. (#4876)
  • The TeleportWarmupEvent event now has the correct teleporter. (#4913)
  • Users who are flying while afk while freeze-afk-players is set to true will no longer be teleported to the ground. (#4944)
  • Path and farmland blocks are no longer considered solid blocks. (#4915)
  • The minecraft: namespace no longer gives an error in the /give command. (#4960)
  • The /unlimited command no longer floods user's inventory when changing stack sizes. (#4877)
  • Users who stop being afk no longer fail to count towards the sleep count in some cases. (#4985)
  • The /nick command now shows your nickname even with change-displayname disabled in the config. (#4980)
  • /ess dump no longer reports offline mode for servers behind Velocity on Paper 1.19 and above. (#5052)
  • Discord: Console messages in Paper 1.18.2+ properly filter ANSI color codes once again. (#4942)
  • Discord: Numerous discord formatting issues have been fixed in relation to slash commands. (#4945)
  • Discord: Roles defined in the allowed-roles section of the config will no longer resolve to roles with the same name as another role's id. (#4983)
  • Discord: Leave messages are no longer sent to discord when the user was vanished. (#5009)
Regressions fixed from 2.19.5 and 2.19.6 dev builds
  • Essentials no longer fails to load on versions 1.8.8 through 1.12.2. (#4975)
  • Local chat allows you to send messages that are 1 character long without sending in public chat. (#5041)
Changes for developers
There are no API changes in this release!

Note: 2.19.5 had an issue with proxy detection on Paper. 2.19.6 has been released to address this issue.

For a full commit log, click here.
----------, Aug 12, 2022

⚠️ EssentialsX 2.19.4 fixes a critical issue with [Trade] signs from 2.19.3. You should upgrade to this release as soon as possible.

All other changes are the same as 2.19.3 - see the 2.19.3 changelog for more details.

Full release notes (including upgrade instructions) are available over on GitHub.
You can download the latest release on the EssentialsX website.
----------, Mar 13, 2022

IMPORTANT UPDATE: If your server uses [Trade] signs, do not upgrade to this release! You should instead upgrade to the 2.19.4 release or 2.20 dev builds as soon as possible. More info >>

EssentialsX 2.19.3 is here!
This release includes new chat features, support for Minecraft 1.18.2 and several bug fixes.

Full release notes (including upgrade instructions) are available over on GitHub.
You can download the latest release on the EssentialsX website.
----------, Mar 4, 2022

After months of hard work from our contributors, EssentialsX 2.19.2 is here!

(Note: 2.19.2 has been released to address an issue with Discord commands. If you're running 2.19.1 with the Discord module, please update to 2.19.2.)

This release adds 1.18.1 support, and contains countless new features and bug fixes. Keep reading to see all the new additions!

Thanks to all our contributors who contributed to this release (all of whom are listed on the GitHub release notes), as well as to everyone who has contributed to translations on Crowdin!

Finally, a massive thanks to our community members who have assisted countless people on GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @Chew, @Laarryy and many others.

In addition, a shoutout to our dozens of supporters on Patreon, GitHub Sponsors and Ko-fi, including:

Your support helps us to continue spending hours of our free time working on and improving EssentialsX for everyone. If you've got any spare change, you can click one of the buttons below to support the EssentialsX project:

[​IMG] [​IMG] [​IMG]


Supported server versions
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:
  • ✅ 1.17.1 and 1.18.1 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, 1.14.4, 1.15.2, and 1.16.5 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.

We recommend using the latest version of Paper
. EssentialsX includes significant improvements that require Paper, including:
  • Paper's async chunk loading reduces lag spikes during player teleports.
    CraftBukkit and Spigot do not support async chunk loading from plugins.
  • /anvil, /grindstone, /cartographytable, /loom, /smithingtable, /stonecutter are only supported on Paper.
    CraftBukkit and Spigot do not support the API needed for these.
  • /recipe on 1.12+ requires Paper to avoid a dupe bug introduced by CraftBukkit and Spigot.
  • Paper contains countless overall performance optimisations over CraftBukkit and Spigot.
  • Paper supports all properly-written plugins for CraftBukkit and Spigot.

EssentialsX does not support the following Minecraft versions or server software:

Upgrading to 2.19.1
If you're upgrading from 2.19.0, you can keep your current EssentialsX config file. However, 2.19.1 adds several new options that you may want to configure, and to do so you'll need to either update your config or add the new settings to your existing config. Read on for a list of changes and new config options.

Upgrading from 2.18.2 or older versions of EssentialsX? See the previous update changelogs.


Known issues
Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location
On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.


Important changes, new features and bug fixes
For a full list of the new features and bug fixes in this release, see the full release notes on GitHub.
----------, Dec 14, 2021

After months of hard work from our contributors, EssentialsX 2.19.0 is here!

This release contains a new Discord addon, countless new features, bug fixes and internal improvements. Keep reading to see all the new additions!

Thanks to @JRoy, @triagonal, @pop4959, @jpenilla and all our other contributors who contributed to this release, as well as to everyone who has contributed to translations on Crowdin!

Finally, a massive thanks to our community members who have assisted countless people on GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @Chew, @laarryy and many others.

In addition, a shoutout to our dozens of supporters on Patreon, GitHub Sponsors and Ko-fi!
A particular shoutout goes to our Hero tier supporters, including:
Your support helps us to continue spending hours of our free time working on and improving EssentialsX for everyone. If you've got any spare change, you can click one of the buttons below to support the EssentialsX project:

[​IMG] [​IMG] [​IMG]

Supported server versions
EssentialsX officially supports the CraftBukkit, Spigot, and Paper (recommended) server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:
  • ✅ 1.16.5 and 1.17.1 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, 1.14.4, and 1.15.2 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.
We recommend using the latest version of Paper. EssentialsX includes significant improvements that require Paper, including:

  • Paper's async chunk loading reduces lag spikes during player teleports.
    CraftBukkit and Spigot do not support async chunk loading from plugins.
  • /anvil, /grindstone, /cartographytable, /loom, /smithingtable, /stonecutter are only supported on Paper.
    CraftBukkit and Spigot do not support the API needed for these.
  • /recipe on 1.12+ requires Paper to avoid a dupe bug introduced by CraftBukkit and Spigot.
  • Paper contains countless overall performance optimisations over CraftBukkit and Spigot.
EssentialsX does not support the following Minecraft versions or server software:
Upgrading to 2.19.0
If you're upgrading from 2.18.2, you can keep your current EssentialsX config file. However, 2.19.0 adds several new options that you may want to configure, and to do so you'll need to either update your config or add the new settings to your existing config. Read on for a list of changes and new config options.

Upgrading from 2.18.1 or older versions of EssentialsX? See the previous update changelogs.

New module: EssentialsX Discord! (#3844)
EssentialsX now has a Discord addon, which lets you easily bridge your Minecraft server with Discord with a bloat free and easy to understand configuration! You can read more about EssentialsX Discord and see how to get started here.

[​IMG]

[​IMG]

[​IMG]

Known issues
Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location
On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Teleport requests can be dropped in rare cases
Due to a long-standing bug with teleport requests, in very rare cases teleport requests (/tpa, /tpahere, /tpaall) may expire instantly. We're working on an overhaul of the teleport request system with new features. If you encounter this bug on your server, it should be fixed in a future release.

Important changes
Userdata format changes (#4072)
Due to a few changes in data format, once you upgrade to 2.19.0, you will not be able to downgrade your userdata to older versions. We strongly recommend taking a full backup of your plugins/Essentials/userdata/ folder and plugins/Essentials/usermap.csv file before you update from 2.18.2 to 2.19.0 if you ever wish to downgrade in the future.

Currency symbol handling improvements (#3628, #3946, #3987)
Some handling of currency symbols has been improved to be more consistent. If you encounter issues with kits.yml or currency on signs after updating to 2.19.0, you may need to update them to match the format set in your config (or simply change them to $123.45, which should always work).

You can also now set the currency symbol to empty and use translation keys to handle currency formatting, if you prefer.

New features
EssentialsX now supports 1.17.1 (#4211, #4324)
EssentialsX now has full support for Minecraft 1.17.1, including support for the new items in /give, /item and kits, new 1.17 mobs in /spawnmob and new NMS/OBC mappings for accessing internal CraftBukkit code.

EssentialsX also no longer warns when installed on 1.16.5 servers.

New mail features (#3710)
The entire mail system has been rewritten to add support for temporary mails, read status, and the abiltiy to clear individual mails.

You can use /mail sendtemp <player> <expire time> <message> to send message which will expire at the given time or /mail clear <number> to clear the mail at the given position.

New /warpinfo command (#3820)
You can now use /warpinfo to view information about a warp:

[​IMG]

New cancel-afk-on-chat setting (#3863)
You can now control whether chat cancels AFK for players separate to other types of interaction:

Code (YAML):
# Should we automatically remove afk status when a player sends a chat message?
cancel-afk-on-chat
: true
New kit-auto-equip setting to auto equip armor from kits (#3704)
You can now set kit-auto-equip to true in config.yml to automatically equip armor when players redeem kits.

Code (YAML):
# When enabled, armor from kits will automatically be equipped as long as the player's armor slots are empty.
kit-auto-equip
: false
New jail-online-time setting (#3705)
You can now set jail-online-time to true in config.yml to only count down time for jailed players while they're online.

Code (YAML):
# Whether or not jail time should only be counted while the user is online.
# If true, a jailed player's time will only decrement when they are online.
jail-online-time
: false
Option to disable EssentialsX's custom full server message (#3899)
You can now disable EssentialsX's custom "This server is full!" message and restore the vanilla message by setting use-custom-server-full-message to false in config.yml:

Code (YAML):
# Should Essentials override the vanilla "Server Full" message with its own from the language file?
# Set to false to keep the vanilla message.
use-custom-server-full-message
: true

Option to disable message social spy (#3910)

You can now disable private messages showing in social spy by setting socialspy-messages to false in config.yml:

Code (YAML):
# Whether social spy should spy on private messages or just the commands from the list above.
# If false, social spy will only monitor commands from the list above.
socialspy-messages
: true
This is useful if you only want to monitor specific commands in social spy.
New /kitreset command to reset kit cooldowns (#3909)
You can now run /kitreset <kit> to reset the cooldown for a kit. If you have the essentials.kitreset.others permission, you can also reset kits for other players with /kitreset <kit> [player].

You can combine this command with single-use kits to more precisely control when players are allowed to claim kits.

EssentialsX Chat: world aliases (#3912)
You can now configure aliases for worlds in config.yml. If an alias is configured, EssentialsX will use it in place of the world's name when formatting chat. For example:

Code (YAML):
chat :
  ...
  # World aliases allow you to replace the world name with something different in the chat format.
  world-aliases
:
   world
: "&dmain&r"
[​IMG]

/editsign copy and /editsign paste (#3989)
You can now copy and paste signs using /editsign copy and /editsign paste. This also checks formatting permissions to ensure players can't bypass their formatting permissions.

New command signs for virtual crafting commands (#3961)
You can now create [workbench] signs, and if you're running Paper 1.15.2 or newer, you can also now create [anvil], [cartography], [grindstone], [loom] and [smithing] signs. These can be enabled from the config and use the same permissions as other command signs.

[​IMG]

EssentialsX Chat: new /toggleshout command (#3965)
If you use EssentialsX Chat's local chat system, you can now enable /toggleshout on your server to let players toggle between global and local chat.

[​IMG]

EssentialsX update checker (#3855)
EssentialsX now automatically checks for updates, and can notify you if a new release is available. If you're running dev builds, it will also notify you about new dev builds.

Privacy note: the update checker uses the public APIs for Jenkins and GitHub, and does not send any identifying data about your server or players to any services. Nevertheless, if you want to disable update checking entirely, you can do so in config.yml.

More keywords in EssentialsX Chat, /info text commands, custom books and custom join/quit messages (#4098, #4169)
EssentialsX Chat now supports the {NICKNAME} placeholder in chat formatting, in case you want to exclude the player's prefix/suffix.

You can also now use {NICKNAME}, {PREFIX}, {SUFFIX}, {GROUP} and {PLAYTIME} in EssentialsX's text commands and books. Click here for a full list of keywords supported by EssentialsX.

Finally, you can now use {PREFIX} and {SUFFIX} in the custom-join-message and custom-quit-message settings in config.yml. See the config comments for other placeholders you can use.

Enhanced command usage messages (#4057, #4396)
EssentialsX now has enhanced command usage messages, showing the various different syntaxes that different commands support. These new usage messages are also fully translatable!

These can be disabled with the verbose-command-usages in the config.yml.

[​IMG]

If you spot any issues with the command usage messages in English, please open an issue on EssentialsX. For translated messages, please report incorrect translations and suggest improves ones on Crowdin.

/createkit now saves written book pages (#4048)
Previously, /createkit would only saved the title and author for written books, but it now saves the pages inside books as well. This means you can now create kits with written books fully in-game!

This also works for book and quills.

Code (YAML):
kits:
  mykit
:
   delay
: 0
   items
:
  - written_book 1 title:My_Epic_Book author:JRoyLULW page1:My_epic_page page2:It's_been_like_a_year_since_the_last_release_lol
     page3:page3.ogg
Option to ignore vanished players from the vanilla sleep requirement (#4200)
By default, vanished players no longer have to sleep to skip the night. You can disable this behaviour by changing sleep-ignores-vanished-player to false in config.yml:

Code (YAML):
# Should vanished players be ignored when other players are trying to sleep?
# When this setting is false, player's won't be able to skip the night if vanished players are not sleeping.
# Users with the permission node essentials.sleepingignored will always be ignored.
sleep-ignores-vanished-player
: true
Option to hide negative and zero balances from /baltop (#4226)
You can now set the show-zero-baltop option to false in config.yml to hide players from /baltop if they have a zero or negative balance:

Code (YAML):
# Whether or not users with a balance less than or equal to $0 should be shown in balance-top.
# Setting to false will not show people with balances <= 0 in balance-top.
# NOTE: After reloading the config, you must also run '/baltop force' for this to appear
show-zero-baltop
: true
Home cleanup utility (#4244)
You can now use the /ess homes command to fix and/or purge all homes:

  • /ess homes fix deletes all homes that are in worlds that don't exist or are unloaded.
  • /ess homes delete deletes all existing homes on your server.
  • /ess homes delete <worldname> deletes all homes set inside a specific world.
/createkit now supports optional NBT serialization (#3248)
You can now create exact NBT clones of items in /createkit! Rather than using EssentialsX's item meta system, these kits are stored as NBT in base64 format and can be identified with the @ at the start. You can turn this on using the use-nbt-serialization-in-createkit option in config.yml.

use-nbt-serialization-in-createkit: false
Code (YAML):
kits:
  mykit
:
   delay
: 0
   items
:
  - written_book 1 title:My_Epic_Book author:JRoyLULW page1:My_epic_page page2:It's_been_like_a_year_since_the_last_release_lol
     page3:page3.ogg
use-nbt-serialization-in-createkit: true
Code (YAML):
kits:
  mykit
:
   delay
: 0
   items
:
  - "@H4sIAAAAAAAA/22OvU4DMRCEJ0SHzIGoELQrN3Q0dKHjpwCFBilQRpvL5rKKsSN7IzihvBBPyV2T\r\
      \ninI0881MDYxx+sjG75KLpgjUvw5HusTlp0ZpMq9s8pXVTOJ8kdKmxti4PUG15VaKw1Bw9eNNvs1P\r\
      \n/GtHstWGBtPvcXcwnu260EIkUtCNEFMnnKlobIRsLRS4GGUJwqUXKfTwxQEe2m5vUtv6vcP5SoNJ\r\
      \nluXc1ILgrN98Gjbv+3cOx7yzdcpwL2+pm86mHw7VP0GMUD2kXbQR/gCsjqo1BAEAAA==\r\n"
Note that these kits cannot be edited by hand. If you need to edit kits by hand, you can turn this option off. In addition, this only works on Paper 1.15.2+, as Spigot does not expose item NBT methods.

Other additions
  • Translations have been updated with the latest community contributions on Crowdin.
  • The name used for messages from the console can now be translated using the consoleName key. (#3700)
  • trade.log now includes the resulting balance after transactions take place. (#3721)
  • Players can now middle-click while in viewing another player's armor with /invsee. (#3893)
  • Players can no longer take off hats that have the Curse of Binding using allow-direct-hat unless they have the essentials.hat.ignore-binding permission. (#3895)
  • Players can now pay offline players with /pay if they have the essentials.pay.offline permission. (#3625)
  • EssentialsX now considers 1.16.5 a supported version. (#3923)
  • EssentialsX now warns you about more potential server software incompatibilities. (#3812)
  • You can now use /alts <username> to look up potential alts of a player. (#3931)
  • [enchant] signs can now include material tags to allow enchanting multiple types of items. (#3694)
  • /jail will now infer the jail name if only one jail has been set on the server. (#3911)
  • /itemdb now shows custom aliases added in custom_items.yml. (#3907)
  • EssentialsX now includes new warnings if issues with userdata or usermap are detected. (#3969)
  • command-cooldowns can now be applied to aliases created using Bukkit's commands.yml. (#3744)
  • /seen now displays UUIDs for players. (#3906)
  • /spawner now requires the essentials.spawner.delay permission to change a spawner's delay. (#3964)
  • You can now spawn mobs carrying netherite swords and armor using /spawnmob. (#4031)
  • Commands in disabled-commands are now unregistered from the Bukkit command map. (#4026, #4108, #4399)
  • Trade signs now validate sign line length more consistently. (#4056)
  • /pay no longer works on vanished players. (#4114)
  • [time] and [weather] signs can now display the current time and weather respectively if the rest of the sign is blank. (#4131)
  • You can now limit /itemname to specific items using essentials.itemname.prevent-type.<item> permissions. (#4133)
  • Fireworks, firework charges, potions and banners can now be enchanted in /give, /item and kits. (#3882)
  • You can now use /ice to temporarily apply the "freezing" effect to players. (#4211)
  • Custom item aliases are no longer case sensitive. (#4295)
  • You can now set a seperate join message for when a player changes their name using the custom-new-username-message option in config.yml. (#4290)
  • You can now show nicknames in tab completion instead of usernames by changing the change-tab-complete-name option. (#4432)
  • Spawn: You can now set respawn-at-home-bed: false in the config.yml to prevent players respawning at their bed. (#3802, #4071)
  • XMPP: TLS is now enabled by default. (#4002)
  • XMPP: The configuration is now fully documented. (#4002)
Bug fixes
Bugs fixed from 2.18.2 and older versions
  • Links in config.yml have been updated to point to the new EssentialsX domain. (#3779)
  • EssentialsX now starts up properly on unexpected 1.8.8-R0.2 versions. (#3817)
  • EssentialsX now hands over to commands dynamically registered by other plugins at runtime. (#3816)
  • /me now calculates the chat radius correctly. (#3848)
  • API events no longer share a common handler list. (#3853)
  • EssentialsX now includes a special workaround to relay the /t command to Towny (previously Towny did not allow us to relay this command properly). (#3856)
  • /list no longer shows the user's real name in brackets if they don't have a nickname. (#3858)
  • /depth usage messages now include the correct command alias. (#3832)
  • /tpoffline now has a /etpoffline alias. (#3832)
  • /warp no longer says the player is about to teleport when the teleport is cancelled by a cooldown. (#3696)
  • /sell blocks and /worth blocks now filter items in the player's inventory correctly. (#3691)
  • EssentialsX no longer displays usage messages for its own commands when it relays commands to other plugins. (#3904)
  • /ess commands no longer displays the plugin namespace twice for relayed commands. (#3904)
  • EssentialsX can now detect enchantments registered with Bukkit with improper names. (#3900)
  • bPermissions is now properly flagged as unsupported. (#3928)
  • Firework item meta is now serialised and deserialised properly, including fixing meta for firework charges. (#3905)
  • /nick now prevents duplicate nicknames when players' display names are modified (eg prefixes/suffixes). (#3922)
  • AFK toggle messages are no longer sent if the AFK event is cancelled by another plugin. (#3915)
  • Some previously-unresolved teleports are now completed properly. (#4016, #4066)
  • /list no longer exposes groups whose players are all hidden. (#4032)
  • /createkit with pastebin-createkit: true now uploads kits to paste.gg instead of hastebin.com. (#4049)
  • Permission-based item spawning now works correctly again (the first time since EssentialsX 2.15). (#4100)
  • /createkit now converts formatted item names and lore back to & code formatting. (#4095)
  • custom_items.yml no longer suggests using a nonexistent command to manage it. (#4152)
  • /ptime, /pweather, /time and /unlimited now include spacing in comma-separated lists. (#4157)
  • EssentialsX now adds a custom NBT tag to avoid converting spawners created by other plugins. (#3963)
  • /book now supports multi-word book titles and authors. (#4180)
  • /back now tracks previous locations from teleports once more if players have the essentials.back.onteleport permission. (#4264)
  • /powertool a:<command> and /powertool r:<command> no longer throw errors if the powertool list doesn't exist. (#4276)
  • The tab completion for /itemlore and /itemname have been improved to reflect their actual behavior. (#4280)
  • Invalid enchant names now have a nicer error message. (#4297)
  • Players' logout locations is now properly set on server shutdown. (#4318)
  • Spawn eggs which were missing on legacy versions have now been re-added. (#4320)
  • Teleporting to offline players without the essentials.tpoffline permission in /tp no longer has a vaugue error. (#4332)
  • Teleport cooldowns are now respected again for /spawn. (#4335)
  • EssentialsX now sanitizes usernames when generating NPC UUIDs. (#4484)
  • EssentialsX now cleans up broken NPC accounts from the older Vault integration. (#4490)
  • AntiBuild: Block replacements (ie using Eyes of Ender on an End Portal Frame) are no longer considered block placements. (#3914)
  • AntiBuild: Players with the essentials.build.* permission can now pick up items. (#4273)
  • Geo: Dependencies are now correctly relocated. (#3976)
  • Geo: Messages displayed on join now include the player's displayname rather than just their unformatted username. (#3968)
  • Protect: protect.prevent.respawn-anchor-explosion now prevents respawn anchor explosions in more cases. (#3778)
  • Protect: protect.prevent.tnt-playerdamage no longer prevents damage from bed explosions. (#3874)
  • XMPP: Commands executed from XMPP are now dispatched on the main thread. (#3803)
Regressions fixed from 2.19.0 dev builds
  • Spam has been removed from Spanish translations. (2342d53)
  • /delwarp now shows the "warp deleted" message as it did before #3875. (#3927)
  • Jail time is now formatted correctly in /seen, /whois and /togglejail again. (#3917, #3941)
  • bStats now initialises after the update checker to fix an issue with branch reporting. (#4037)
  • Update checks no longer fail if the commit count is greater than 2 digits. (#4069)
  • kit-auto-equip now works on versions below Minecraft 1.14. (#4130)
  • EssentialsX no longer recursively resolves its own commands as alternatives to themselves. (#4128)
  • The Vault integration now also looks up accounts using legacy NPC:<accountname> UUIDs, in case a plugin generated NPC accounts on an older version of EssentialsX. (#4178, #4188)
  • GitHub Actions builds of EssentialsX now embed the correct branch name. (#4193)
  • EssentialsX now creates economy accounts as needed for players who last joined before EssentialsX was installed. (#4199)
  • sleep-ignores-vanished-player no longer overrides the essentials.sleepingignored permission. (#4201)
  • Various issues from the Configurate refactor have been fixed. (#4203, #4206, #4208, #4209, #4210, #4213, #4214, #4216, #4217, #4218, #4219, #4230, #4234, #4237, #4240, #4249, #4251, #4264, #4294, #4305, #4341, #4345, #4428, #4475)
  • show-zero-baltop: false now hides zero and negative balances, not positive balances. (#4228)
  • The Vault economy provider now properly loads 3rd party economies. (#4303)
  • Headless JREs no longer throw an error when using hex color codes.(#4312)
  • Force disabling teleport safety also disables the world border check. (#4371)
  • The update check is no longer dependent on the MOTD being enabled. (#4410, #4411, #4454)
  • /ess dump now works on 1.8.8, which ships an ancient version of Gson. (#4489)
  • NBT serialized items in kits now also respect the kit-auto-equip option. (#4491)
  • Chat: World aliases now actually check the world aliases config option, and not the entire config file. (#4000)
  • Discord: Vanilla commands now work as expected in the Discord /execute command. (#4293)
Changes for developers
EssentialsX is now built with Gradle (#3720, #4148, #4202, #4496)
Thanks to @JRoy and @jpenilla, we've converted the EssentialsX build setup to use Gradle. This has sped up build times considerably. In addition, thanks to the awesome jpenilla/run-paper Gradle plugin, developers working on EssentialsX can now spin up a Paper test server by running ./gradlew runServer.

EssentialsX now has a dedicated Maven repo (#3720)
Starting with 2.19.0, EssentialsX now has a dedicated Maven repository. To depend on snapshots, you'll need to update your build scripts to use the URL https://repo.essentialsx.net/snapshots/, or for releases you'll need to use the URL https://repo.essentialsx.net/releases/. New builds and releases will no longer be available from the old repository, so you'll need to update to use new APIs.

EssentialsX now publishes Javadocs (#4083, #4140, #4141)
Starting with 2.19.0, EssentialsX now publishes browseable Javadocs at jd-v2.essentialsx.net. You can also see Javadocs for other modules by adding the name of the module (for example, jd-v2.essentialsx.net/essentialsdiscord to view docs for EssentialsX Discord).

Please bear in mind that although these Javadocs cover the entire plugin, many classes are internal and subject to change. We recommend only using classes inside the com.earth2me.essentials.api, net.ess3.api and net.essentialsx.api.v2 packages where possible, as these are designated API and unlikely to break between versions (though parts of legacy APIs in the com.earth2me.essentials and net.ess3 packages could still break in future 2.x versions).

Item names passed to ItemResolvers are no longer automatically lowercased (#3636)
You can now resolve case-sensitive item names in your plugins' ItemResolvers. If your plugin does not already lowercase entries, you may need to update your plugin to handle mixed-case item names.

New BalanceTop API (#3702)
EssentialsX now exposes the /baltop system as an API service. You can obtain an instance of this and use it like so:

Code (Java):
final BalanceTop baltop = Bukkit. getServicesManager ( ). load (BalanceTop. class ) ;
baltop. calculateBalanceTopMapAsync ( ). thenAccept (finish -> {
       processCache (baltop. getBalanceTopCache ( ) ) ;
} ) ;
Economy integration rewrite (#3975, #4147, #4149, #4151, #4484, #4490)
EssentialsX's economy integrations have been rewritten from scratch. This aims to improve compatibility with problematic plugins such as Towny. If your plugin integrates with EssentialsX's economy directly or via Vault, please test your plugin with EssentialsX 2.19.0 to ensure that users do not lose any data when they update.

EssentialsX now uses the Configurate library (#4072)
EssentialsX's config and data storage now use the Configurate library! This replaces the legacy Bukkit and Essentials 3 code.

If you maintain a plugin that hooks into EssentialsX's configuration or data code, beware that many legacy config methods and classes may have been deprecated and/or removed. You should use proper EssentialsX APIs instead of hooking directly into the configuration where possible.

New events
EssentialsX 2.19.0 introduces several new events:
  • TransactionEvent is fired when players pay money to other players with EssentialsX's /pay command. (#3649)
  • UserKickEvent is fired when players are kicked using EssentialsX's /kick command. (#3490)
  • WarpModifyEvent is fired when a warp is created, updated or deleted with /setwarp or /delwarp. (#3875)
  • UserTeleportSpawnEvent is fired when a player is about to be teleported to a spawn due to /spawn. (#4328)

Other changes
  • Plugins can now register their custom Bukkit enchantments with EssentialsX's /enchant command. (#3669)
For a full commit log, click here.
----------, Aug 31, 2021

EssentialsX 2.18.2 is here! This release features full 1.16.4 support, as well as a few bug fixes and quality-of-life improvements.

Thanks to @JRoy, @pop4959, @Chew, and all our other contributors who contributed to this release!

In addition, thanks to our donors, in particular our Hero tier supporters on Patreon:
  • AKP
  • Wasted Ticks
If you'd like to support the hard work that goes into EssentialsX, you can join our Patreon to support on a monthly basis, or make a one-off donation on Ko-fi. We'd appreciate any donations, especially if your server makes money - all donations enable us to continue spending hours of our free time working on and improving EssentialsX for everyone.

[​IMG]

Supported server versions
EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:
  • ✅ 1.15.2 and 1.16.4 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, and 1.14.4 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.
EssentialsX does not support the following Minecraft versions or server software:

  • 1.7.x or below - we do not provide support for these versions.
  • Mohist and Magma include dangerous modifications to Bukkit's permissions systems. You should not use these server software - consider an alternative such as SpongeForge.
  • Cauldron, Thermos, CatServer, or any other Forge/Bukkit hybrid server software - EssentialsX is built for the Bukkit API, which does not properly support mods.
We recommend using the latest version of Paper, as it includes several performance enhancements over Spigot. EssentialsX 2.18+ includes significant improvements that are only effective on Paper, most notably asynchronous chunk loading which reduces lag spikes during player teleports.

Upgrading to 2.18.2
If you're upgrading from 2.18.1, you don't need to update your EssentialsX config. However, 2.18.2 adds a couple of new options that you may want to configure, and to do so you'll need to either update your config or add the new settings to your existing config. Read on for a list of changes and new config options.

Upgrading from older versions of EssentialsX? See the previous update changelogs.

Known issues
Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location
On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Important changes
New option to prevent players from responding to vanished players (#3703)
In previous versions, the /reply command would allow you to reply to a player even after they vanished, exposing that the player was still on the server. A new option to the config has been added to configure this behavior, last-message-reply-vanished. This will default to allowing users to reply to vanished players ( true) for old configs, but will be set to block replying to vanished players for new configs ( false). So make sure to add last-message-reply-vanished to your config if you're updating from 2.18.1 and you'd like to configure this.

Code (YAML):
# Changes the default /reply functionality.
# If true, /reply will not check if the person you're replying to has vanished.
# If false, players will not be able to /reply to players who they can no longer see due to vanish.
last-message-reply-vanished
: false
New features
New virtual inventory commands (#3704)
There are new commands to let you open virtual anvils ( /anvil), cartography tables ( /cartographytable), grindstones ( /grindstone), looms ( /loom), smithing tables ( /smithingtable), and stone cutters ( /stonecutter).

Note: due to technical limitations, this is only available on Paper and on 1.15.2 or higher.

Other additions
  • Internal codestyle has been standardized and is now enforced. (#3701)
  • Internal tab-completion code for various commands has been minimized.
  • Added ability to customize balancetop lines via translation files. (#3626)
  • Added plugin names in tab completion and improve command discovery in /help. (#3713, #3675)
  • Improved the unsupported platform messages to make them more specific.
  • Changed console /sell logging messages to use usernames instead of nicknames (#3693)
Bug fixes
Bugs fixed from 2.18.1 and older versions
  • Fixed commands like /editsign not always targeting the correct block when looking below your head level (#3763)
  • Fixed users' names in the tab list getting reset after their AFK status changed. (#3624)
  • Fixed /paytoggle displaying the opposite message than the action being taken.
  • Fixed /time throwing an exception when used in console. (#3622)
  • Fixed debug messages showing sometimes when a user tab completed in certain commands. (#3739)
  • Fixed spaces in backup commands not being properly handled. (#3762)
  • Fixed color codes appearing in the trade.log file. (#3699)
  • Fixed /clear <player> <item> not clearing matched items from offhand. (#3715)
  • Fixed some /sell and /worth messages displaying {1} instead of the item's actual value. (#3656)
  • Fixed /sethome preventing modifying homes when surpassed set-home limit. (#3776)
Regressions fixed from 2.18.1.x dev builds
  • Fixed an ABI breakage in IEssentials#getOnlineUsers.
  • Fixed multiple regressions in /clearinventory that caused unexpected behavior than previously expected.
  • Fixed a regression in /lightning where attempting to smite another player wouldn't run the essentials.lightning.others permission check (#3671)
  • Fixed a regression in /delhome where tab completing would not show user homes properly and/or throw a NPE. (#3775)
For a full commit log, click here.
----------, Nov 16, 2020

EssentialsX 2.18.1 is here! This release features full 1.16.2 support, as well as a few bug fixes and quality-of-life improvements.

Thanks to @JRoy, @pop4959, @triagonal and all our other contributors who contributed to this release!

In addition, thanks to our donors, in particular our Hero tier supporters on Patreon:
  • AKP
  • Wasted Ticks
  • and 1 anonymous Hero

If you'd like to support the hard work that goes into EssentialsX, you can join our Patreon to support on a monthly basis, or make a one-off donation on Ko-fi. We'd appreciate any donations, especially if your server makes money - all donations enable us to continue spending hours of our free time working on and improving EssentialsX for everyone.

[​IMG]


Supported server versions

EssentialsX officially supports the CraftBukkit, Spigot and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:

  • 1.15.2 and 1.16.2 - EssentialsX actively develops against and supports these versions.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2 and 1.14.4 - these versions are still supported, but are not a priority for us, and may be dropped in a future release.
EssentialsX does not support the following Minecraft versions and server software:
  • 1.7.x or below - we do not provide support for these versions.
  • Cauldron, Thermos, Magma, CatServer, or any other Forge/Bukkit hybrid server software - EssentialsX is built for the Bukkit API, which does not properly support mods, and so we do not provide support for these hybrid servers. For modded servers, use SpongeForge and Nucleus, or an alternative mod for Forge or Fabric.
We recommend using the latest version of Paper, as it includes several performance enhancements over Spigot. EssentialsX 2.18+ includes significant improvements which are only effective on Paper, most notably asynchronous chunk loading which reduces lag spikes during player teleports.


Upgrading to 2.18.1

If you're upgrading from 2.18.0, you don't need to update your EssentialsX config. However, 2.18.1 adds a couple of new options which you may want to configure, and to do so you'll need to either update your config or add the new settings to your existing config. Read on for a list of changes and new config options.

Upgrading from older versions of EssentialsX? See the previous update changelogs.


Known issues

Anchor charges deplete on Spigot even when EssentialsX Spawn overrides the spawn location
On CraftBukkit and Spigot, anchor charges will deplete regardless of the respawn-at-anchor setting due to an unfixed bug in CraftBukkit. This bug has been patched in Paper.

Other known issues
These bugs will be fixed in 2.18.2. They may already be fixed in dev builds - if these affect you, you should download a dev build.
  • /time set and /time add do not work from the console. (#3621)
  • When players exit AFK mode, their prefix/suffix might be missing from the tab list. (#3606)

Important changes

/tpr no longer caches locations on startup by default (#3496)
In 2.18.0, EssentialsX would generate and cache locations for the /tpr command when the server started up. However, on CraftBukkit and Spigot this resulted in several sync chunk loads during startup, which significantly slowed down startup on these server implementations. As a countermeasure, /tpr no longer caches locations on startup by default, though it will still cache locations after the /tpr command has been used once after startup.

If you're using Paper, or if you're using Spigot and are willing to tolerate the slow startup, you can re-enable this by adding pre-cache: true on a new line inside plugins/Essentials/tpr.yml.

EssentialsX Protect: protect.prevent.creeper-explosion no longer cancels player damage (#3604)
Previously, disabling creeper explosion block damage with the protect.prevent.creeper-explosion setting would also prevent players taking damage from the explosion. This has now been changed to match the other protect.prevent.<type>-explosion settings, and this allows you to prevent block damage while allowing players to take damage from creeper explosions. As before, you should use protect.prevent.creeper-playerdamage to prevent players taking damage from creeper explosions.

Teleportation safety now respects the world border (#3499, #3536)
EssentialsX's teleport safety mechanism will now prevent you teleporting outside the vanilla world border, instead placing you safely inside the world border. This prevents players taking damage when using /tpr if you didn't manually set a maximum range for /tpr locations.

Note that this won't apply if you are in creative mode or god mode, as teleport safety is disabled if you're invulnerable. If you'd like to disable teleport safety entirely, you can do so using the teleport-safety and/or force-disable-teleport-safety options in config.yml.


New features

EssentialsX Spawn now supports respawn anchors (#3498)
You can now use the respawn-at-anchor config option (disabled by default) to configure EssentialsX Spawn to respect respawn anchors set by players, instead of teleporting players to their home/bed:

Code (YAML):
# When users die, should EssentialsSpawn respect users' respawn anchors?
respawn-at-anchor
: false
/editsign now tab-completes existing sign contents (#3497)
If you attempt to edit a line that already has text on it, /editsign will now suggest the existing text in tab completion, including any formatting codes. This makes it even easier to update existing signs!

[​IMG]

New amplifier:<value> attribute for potion item meta (#3614)
When defining custom potion effects in kits, /potion, /give and /item, you can now use amplifier:<value> in place of power:<value> to specify a potion strength value as a "raw" Mojang strength value. The difference between amplifier:<value> and the existing power:<value> is that amplifier always uses the value that Mojang stores in NBT rather than the strength displayed in tooltips, whereas power adjusts inputs of 1-3 to match tooltips, which prevents spawning level IV (strength 3) potions.

TL;DR: you can now use amplifier:3 to spawn in level IV custom potions.

/spawner delays now work correctly (#3239)
You can now use /spawner <mob> [delay] to set a custom delay for a mob spawner. While this feature may have worked in the past, it has been reimplemented to use Bukkit API where possible and NMS as a fallback, which enables it to work on newer versions of Minecraft.

Other additions
  • EssentialsX now supports sign functionality on crimson and warped signs. (#3487)
  • Internal command code has now been refactored for improved readability. (#3336, #3337)
  • The /skull command now pulls player skin data asynchronously. (#3579, #3337)
  • /paytoggle is now a standard toggle command, allowing admins to toggle payment status for other players and use wildcards. (#3087, #3337)

Bug fixes

Bugs fixed from 2.18.0 and older versions
  • The minimum range setting for /tpr now correctly excludes a square shape in the centre of the world. (#3480)
  • /togglejail no longer teleports jailed players back to their previous location when they are unjailed if teleport-back-when-freed-from-jail is set to false. (#3522)
  • Fixed a rare stacktrace when players disconnect that was caused by an internal CraftBukkit change. (ab545dc)
  • Fixed a regression in /tpaccept where accepting a teleport request wouldn't always clear pending teleport requests if a teleport failed. (#3567)
  • Fixed a regression in teleport commands where players would be charged twice for teleports with a command cost. (#3601)
  • /tree and /bigtree now work on 1.12.2 and prior versions. (#3569)
  • Teleport safety no longer allows teleporting into lava on older versions of Minecraft. (#3537)
  • /list's tab completion no longer reveals the online presence of groups where all the online members are vanished. (#3616)
  • /eco take ** <percentage> now works properly. (#3547, #3337)
  • AntiBuild: Blocks in the piston blacklist can no longer be pulled by a sticky piston. (#3610)
  • GeoIP: Now shows a better message when GeoIP hasn't been configured. (#3568)
  • Protect: protect.prevent.creeper-explosion no longer cancels player damage (#3623)
  • Spawn: /setspawn and /spawn now correctly check permissions for tab completion. (#3339, #3337)
Regressions fixed from 2.18.0.x dev builds
  • Fixed a regression in /gamemode which prevented the console changing players' gamemodes. (#3590)
  • Fixed a regression in /time where /time set did not correctly check the essentials.time.set permission. (#3616)
For a full commit log, click here.
----------, Aug 24, 2020

After many months of hard work, EssentialsX 2.18.0 is here!
This is the biggest EssentialsX release yet, and comes with tons of new features, brand new API and full support for 1.16.1, including RGB colours! Read on to find out more about the changes!

Thanks to @JRoy, @pop4959, @triagonal, @darbyjack, @latiku, @zml2008, @JasonHorkles and many other people who have contributed to this release!

In addition, thanks to our donors, in particular our Hero tier supporters on Patreon:
  • AKP
  • Wasted Ticks
  • and 1 anonymous Hero
If your server makes money and you'd like to support the hard work that goes into EssentialsX, you can join our Patreon to support on a monthly basis, or make a one-off donation on Ko-fi.

Supported server versions
EssentialsX officially supports the CraftBukkit, Spigot and Paper server software. Specifically, EssentialsX is designed to work on the following Minecraft versions:
  • ✅ 1.15.2 and 1.16.1 - EssentialsX targets these versions as a priority.
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2 and 1.14.4 - these versions are still supported, but are not a priority for us.
We recommend using the latest version of Paper, as it includes several performance enhancements over Spigot. EssentialsX 2.18.0 includes significant improvements which are only effective on Paper, in particular async chunk loading and the return of /recipe.

Upgrading to 2.18.0
If you're upgrading from 2.17.2 or a recent dev build, you don't need to update your EssentialsX config. However, 2.18.0 adds several new features which you may want to configure, and to do so you'll need to update your config. Read on for a list of changes and new config options.

Upgrading from older versions of EssentialsX? See the previous update changelogs.

New features
EssentialsX now supports 1.16.1! (#3408, #3394, #3422)
EssentialsX has been updated to support the new items and mobs in 1.16.1! You can now spawn in new items using the new aliases in 2.18.0, and the new Nether mobs can be spawned in using /spawnmob.

In addition, you can now use RGB colours throughout EssentialsX using the &#RRGGBB format, including in chat, on signs, in /itemname and /itemlore, and in nicknames, prefixes and suffixes:

[​IMG]

EssentialsX now supports async chunk loading for teleports on Paper! (#3102)
EssentialsX now performs teleport safety checks by loading chunks asynchronously where possible. This significantly reduces TPS drops from teleportation when EssentialsX is installed on Paper 1.9+. CraftBukkit and Spigot don't support these async chunk loading APIs, so if you're using CraftBukkit or Spigot, you should consider switching to Paper to take advantage of these improvements.

New /editsign command (#3415)
You can now update the content of signs you've already placed using the /editsign command. For example:
  • Running /editsign set 1 &#b8ffbaMint green! while looking at a sign will set the first line of the sign to Mint green!
  • Running /editsign clear 1 will clear the first line of the sign
  • Running /editsign clear will clear the entire sign.
Note: to use formatting in /editsign, you need the essentials.editsign.<format> permissions - see the Color Permissions wiki page for more information.

New /itemlore command (#3331)
You can now create and modify lore on items using the /itemlore command! For example:
  • Running /itemlore add [text] will add text to a new line at the end of the current lore on your currently-held item
  • Running /itemlore set 1 [text] will replace the first line of the lore with new text
  • Running /itemlore clear will clear the lore from the item
New /rest command to reset phantoms (#3205)
You can now use the /rest command to reset your last sleep time and stop phantoms from spawning.

messages.properties now supports UTF-8 properly (#3358)
At last, you can now type section signs ( §) and non-Latin characters straight into your messages files, without needing to use \uXXXX escape codes!

Before:
Code (Text):
deleteHome=\u00a76Home\u00a7c {0} \u00a76has been removed.
deleteJail=\u00a76Jail\u00a7c {0} \u00a76has been removed.
deleteKit=\u00a76Kit\u00a7c {0} \u00a76has been removed.
deleteWarp=\u00a76Warp\u00a7c {0} \u00a76has been removed.
After:
Code (Text):
deleteHome=§6Home§c {0} §6has been removed.
deleteJail=§6Jail§c {0} §6has been removed.
deleteKit=§6Kit§c {0} §6has been removed.
deleteWarp=§6Warp§c {0} §6has been removed.
messages.properties now includes command usage and descriptions (#3284)
You can now customise and translate command usage and description messages in your messages.properties file by using the <command>CommandUsage and <command>CommandDescription keys. For example:

Code (Text):
balancetopCommandDescription=Gets the top balance values.
balancetopCommandUsage=/<command> <page>
banCommandDescription=Bans a player.
banCommandUsage=/<command> <player> [reason]
These strings are also on Crowdin, and translators have started to translate the commands already. If you'd like to contribute to translations, you can contribute on Crowdin.

Note: don't remove or translate /<command> in usage strings, as this will break the usage message. If you notice this in any Crowdin translations, it would help if you could change these to include /<command> and report the string so we can fix it.

EssentialsX now supports LuckPerms contexts! (#3320, #3476)
EssentialsX now includes several LuckPerms permission contexts, allowing you to do complex conditional permission setups! You can now set certain permissions to only apply when a user is/isn't AFK, muted, vanished or jailed, as well as setting specific permissions for players in specific jails.

The full list of contexts is as follows:
  • essentials:afk=<true/false>
  • essentials:muted=<true/false>
  • essentials:vanished=<true/false>
  • essentials:jailed=<true/false>
  • essentials:jail=<jail name>
Note: you need to install LuckPerms 5.0 or newer and Vault to use this feature.

Option to always run backups even if users haven't logged in (#3258)
In the past, EssentialsX's server backup system only ran if players had been online since the last backup. However, you can now configure it to always run a backup even if no players have logged in:

Code (Text):
backup:
  #...
  # If true, the backup task will run even if there are no players online.
  always-run: false
/heal removing potion effects is now optional (#2754)
Previously, running /heal would always clear potion effects for players. This can now be disabled by setting the remove-effects-on-heal to false in config.yml.

Temporary mutes can now have a length limit (#2807)
Similar to temporary bans, you can now set a maximum length for tempmutes using the max-mute-time config option:

Code (Text):
# Set the maximum time /mute can be used for in seconds.
# Set to -1 to disable, and essentials.mute.unlimited can be used to override.
max-mute-time: -1
Jailed players can now build if given specific permissions (#2503)
You can now use the following permissions to allow players to build while jailed:
  • essentials.jail.allow-break to allow breaking blocks
  • essentials.jail.allow-place to allow placing blocks
  • essentials.jail.allow-block-damage to allow hitting blocks
  • essentials.jail.allow-interact to allow interacting with blocks (usually right-clicking)
Teleporting to offline players (#2505)
You can now teleport to where a user last logged out using the /tpoffline <player> command (or /otp).

New EssentialsX Protect settings (#3111, #3210, #2504)
EssentialsX Protect now has several new config options to limit item damage, ender crystal explosions and various mob behaviours:

Code (Text):

protect:
  prevent:
   # ...
   # Prevents the following events destroying dropped items
   lava-itemdamage: false
   tnt-itemdamage: false
   tnt-minecart-itemdamage: false
   fireball-itemdamage: false
   witherskull-itemdamage: false
   creeper-itemdamage: false
   # Prevents ender crystals from exploding
   ender-crystal-explosion: false
   # Prevents beds and respawn anchors from exploding
   bed-explosion: false
   respawn-anchor-explosion: false
   # Prevents zombies from breaking down doors
   zombie-door-break: false
   # Prevents Ravagers from stealing blocks
   ravager-thief: false
   # Prevents sheep from turning grass to dirt
   sheep-eat-grass: false
 
Option to dismount passengers before teleporting (#3069)
Players cannot teleport while they have passengers. Previously, teleports would silently fail, but you can now configure this behaviour:

Code (Text):

# If a player has any passengers, the teleport will fail. Should their passengers be dismounted before they are teleported?
# If this is set to true, Essentials will dismount the player's passengers before teleporting.
# If this is set to false, attempted teleports will be canceled with a warning.
teleport-passenger-dismount: true
You can add the hidden force-passenger-teleport: true option to your config to revert this behaviour.
 
Option to show real names on /list (#3117)
You can now optionally configure /list to show players' real names in brackets in /list:

Code (Text):

# Displays real names in /list next to players who are using a nickname.
real-names-on-list: false
 
[​IMG]

Option to control whether AFK messages are broadcast (#2780)
You can now control whether AFK messages are broadcast to the whole server or only shown to the player they affect:

Code (Text):

# When a player enters or exits AFK mode, should the AFK notification be broadcast
# to the entire server, or just to the player?
# When this setting is false, only the player will be notified upon changing their AFK state.
broadcast-afk-message: true
 
Option to control whether EssentialsX changes flight status and speed when changing worlds (#2546)
You can now toggle whether or not EssentialsX should handle disabling player flight/speed when they switch to a new world:

Code (Text):

# The following settings listen for when a player changes worlds.
# If you use another plugin to control speed and flight, you should change these to false.

# When a player changes world, should EssentialsX reset their flight?
# This will disable flight if the player does not have essentials.fly.
world-change-fly-reset: true

# When a player changes world, should we reset their speed according to their permissions?
# This resets the player's speed to the default if they don't have essentials.speed.
# If the player doesn't have essentials.speed.bypass, this resets their speed to the maximum specified above.
world-change-speed-reset: true
This is useful if you use another plugin to manage these, such as Multiverse-Inventories.
 
Option to show currency symbol as suffix (#3066)
You can now configure EssentialsX to display the currency symbol as a suffix rather than a prefix:

Code (YAML):

# Enable this to make the currency symbol appear at the end of the amount rather than at the start.
# For example, the euro symbol typically appears after the current amount.
currency-symbol-suffix
: false
 
Clearing specific item types using /clearinventory (#3263)
Before 2.16.0, you could clear specific item types using the /clearinventory command. This has now been re-added, so you can clear specific items once more! For example, /clear <player> stone,cobblestone will remove all stone and cobblestone from a player's inventory.

Option to display coordinates when a player dies (#3207)
You can now set the send-info-after-death option to true to display a player's coordinates when they die:

# When players die, should they receive the coordinates they died at?
send-info-after-death: false
[​IMG]

Option to block /pay from players ignored using /ignore (#3273)
You can now configure EssentialsX to prevent ignored players from sending money through /pay:

Code (YAML):

# Enable this to block users who try to /pay another user which ignore them.
pay-excludes-ignore-list
: false
 

New /tempbanip command (#3291)

You can now temporarily ban IP addresses from your server using /tempbanip:

[​IMG]

Ability to change inventory title on [disposal] signs (#3269)
You can now set a custom name for [disposal] sign inventories:

[​IMG]
[​IMG]

Hats now respect the Curse of Binding (#3299)
You can no longer remove items with the Curse of Binding using /hat by default. To override this, give players the essentials.hat.ignore-binding permission.

Option to allow selling named items in /sell (#3314)
You can now set the allow-selling-named-items config option to true to allow players to sell custom named items:

Code (YAML):

# Allow selling of items with custom names with the /sell command.
# This may be useful to prevent players accidentally selling named items.
allow-selling-named-items
: false
 
Options to customise how essentials.keepinv handles the Curse of Binding and Curse of Vanishing (#3328)
You can now configure how the essentials.keepinv permission behaves when players die while holding items with the Curse of Binding or Curse of Vanishing:

Code (YAML):

# How should essentials handle players with the essentials.keepinv permission who have items with
# curse of vanishing when they die?
# You can set this to "keep" (to keep the item), "drop" (to drop the item), or "delete" (to delete the item).
# Defaults to "keep"
vanishing-items-policy
: keep

# How should essentials handle players with the essentials.keepinv permission who have items with
# curse of binding when they die?
# You can set this to "keep" (to keep the item), "drop" (to drop the item), or "delete" (to delete the item).
# Defaults to "keep"
binding-items-policy
: keep
 
/sethome can now be configured to prompt before overwriting an existing home
You can now configure /sethome to prompt players to repeat the command before overwriting an existing home:

Code (YAML):

# Should players be asked to provide confirmation for homes which they attempt to overwrite?
confirm-home-overwrite
: false
 
/recipe now works on Paper 1.15.2+ (#3404)
You can now use /recipe once again on Paper 1.15.2+. This feature was previously disabled on 1.12+ due to a missing Spigot API causing item dupes, but this has been addressed in Paper 1.15.2 and 1.16.1, meaning you can use /recipe once more.

New random teleport (RTP) feature (#3418)
EssentialsX now includes an RTP command called /tpr. EssentialsX will find and cache random locations, avoiding long delays while finding a safe spot to teleport to. This also supports finding safe spots to teleport to in the Nether and The End.

You can configure settings for /tpr using the /settpr command, including the teleport range, centre point, biome blacklist and cache settings.

/more now supports specifying an amount (#3302)
You can now specify what amount /more should increase stacks to by running /more [amount], or you can continue to use /more to set the stack to the maximum stack size as before.

Option to hide join/quit messages when the player count exceeds a limit (#3464)
You can now configure EssentialsX to hide join and quit messages when the player count exceeds a configurable limit:

Code (YAML):

# You can disable join and quit messages when the player count reaches a certain limit.
# When the player count is below this number, join/quit messages will always be shown.
# Set this to -1 to always show join and quit messages regardless of player count.
hide-join-quit-messages-above
: -1
 
Other additions
  • You can now hide yourself from /near by granting yourself the essentials.near.exclude permission. (#3049)
  • /whois now includes the player's speed. (#2952)
  • Attempting to run commands disabled in the disabled-commands section of the config will display an error message. (#2721)
  • There are now separate meSender/meRecipient translation keys for "me" depending on the case for languages that vary "me" depending on sentence position. (#2805)
  • You can now use the {UPTIME} placeholder in text commands. (#3120)
  • You can now use /ecreative as an alias of /gmc to set your gamemode to creative mode. (#3101)
  • [enchant] signs now default the enchantment level to 1 if no level is provided. (#3070)
  • You can now control whether or not players can extinguish other players in /ext using essentials.ext.others. (#2826)
  • You can now view the offhand slot in /invsee equip. (#3265)
  • You can now use percentages in /eco. (#3080)
  • Revoking the essentials.back.onteleport permission will prevent EssentialsX from storing the player's last location for /back when they teleport. (#3272)
  • /exp now has take and reset subcommands, similar to /eco. (#3335)
  • You can no longer send /tpa and /tpahere requests to players if they don't have permission to /tpaccept them. (#3361, #3478)
  • Commands and money in kits are now processed after items, preventing scenarios where players can claim parts of kits while lacking the inventory space. (#3434)
  • Temporary mutes now show how long the player is muted for when they try to talk. (#3329)
  • AntiBuild: Now supports permission checks and warnings for item frames, armour stands and ender crystals (#3270)
  • XMPP: Now includes a more informative error message for the 8000 people who installed XMPP by accident and don't need it. (#3247)
API additions
EssentialsX 2.18.0 comes with various API additions for plugins that integrate with EssentialsX.

New AsyncTeleport API, and Teleport deprecation notice
As part of our effort to switch to async chunk loading, the Teleport and TimedTeleport classes has been deprecated. These APIs rely on synchronous chunk loads and can pause the main thread. If you'd like to continue using EssentialsX's teleport handling in your plugin, you should switch to AsyncTeleport and AsyncTimedTeleport, which use async chunk loading when run on Paper 1.9+.

New and improved events
AfkStatusChangeEvent now has a Cause enum (#3063)
You can now determine the cause of a AFK status change using AfkStatusChangeEvent#getCause, allowing you to identify why players enter/exit AFK mode.

MuteStatusChangeEvent now exposes the mute reason and timestamp (#3068)
You can now access the reason for a player's mute using MuteStatusChangeEvent#getReason. You can also access the timestamp at which their mute will be lifted using MuteStatusChangeEvent#getTimestamp (if the mute is permanent, this will return an empty Optional).

New teleport warmup and pre-teleport events (#3192)
You can now intercept EssentialsX teleports using the TeleportWarmupEvent to listen before the teleport warmup starts, and PreTeleportEvent to listen after the warmup and immediately before the teleport commences. You can also alter the warmup delay or even cancel the teleport using these events.

New event for teleporting to homes (#3403)
You can also now use the UserTeleportHomeEvent to intercept a player attempting to teleport to their home. This event is useful as it allows you to filter and cancel attempts to teleport to homes based on the home name, unlike PreTeleportEvent.

New KitClaimEvent (#3197)
You can block a player from redeeming a kit using the new KitClaimEvent, which is fired when a kit is being expanded for a player. You can also view the contents of the kit in the EssentialsX item meta format.

New pre-send and delivered private message events (#3260, #3432)
You can now intercept private messages before they're delivered or block certain private messages using the PrivateMessagePreSendEvent. This allows you to add custom filters in your plugin.

You can also listen for successfully-delivered private messages using the PrivateMessageSentEvent, which allows you to add custom notification effects like sounds or particles.

Event for filtering random teleport destinations (#3418)
You can listen to UserRandomTeleportEvent to intercept random teleports. This is useful if you maintain a land claiming plugin, and don't want players to be able to random teleport into towns or private builds.

UUID- and User-based economy methods (#3085)
The com.earth2me.essentials.api.Economy API now has methods to access the economy using player UUIDs and User instances, and the previous String-based methods have been deprecated. This does not currently affect Vault, however a new Vault provider is planned in the future.

ItemResolvers can now support /createkit (#3307)
If you use the ItemResolver API to add custom items to the items database, you can now implement the ItemResolver#serialize method to store these items when users run /createkit to create a kit.

Bug fixes
  • /kit now respects the drop-items-if-full config option. (#2820)
  • /fireball now works properly on all versions of Minecraft. (#3040)
  • /exp, /spawnmob, /home and /suicide now have proper tab completion. (#3051, #2661, #3206, #3388)
  • User#payUser now forwards the provided cause to the subsequent UserBalanceUpdateEvent event. (#3064)
  • Local chat messages are now only logged once in the server console, not twice. (#2755)
  • You can now set bed homes on older versions of Minecraft. (#3048)
  • Several permissions are now defaulted to false for supported permissions plugins. (#3141, #3029)
  • The register-back-in-listener config option and the vanish/godmode PvP checks now ignore Citizens NPCs. (#2833, #3389)
  • Arrows and tridents fired by /fireball can no longer be picked up. (#3149)
  • The default book.txt no longer has broken text formatting. (#3173)
  • /balance no longer reveals vanished users. (#3218)
  • Ignored players are now stored as UUIDs, preventing /ignore evasion through username changes. (#3209)
  • Player logout times are now saved when the server shuts down. (#3157)
  • The server now waits for ongoing backup tasks to finish before shutting down. (#3258)
  • /depth is now based on the current world's sea level, rather than a fixed sea level of 63. (#3268)
  • You can now /msg users who have 1-character-long names. (#3264)
  • /tree and /bigtree now target blocks better. (#3271)
  • ServerListPingEvents fired by CloudNet v3 are now silently ignored by EssentialsX. (#3288)
  • /eco reset no longer requires an additional argument. (#3340)
  • Players can no longer send empty shout/question messages. (#3341)
  • Date diffs are now shown correctly throughout the plugin, including teleport warmups, tempmutes and tempbans. (#3292)
  • worth.yml now encourages you to use the in-game /setworth command. (#3364)
  • The /heal cooldown and teleport cooldown messages now have a red . instead of an erroneous gold . at the end. (#3366)
  • /suicide and /kill now trigger PlayerDeathEvents with the correct DamageCauses. (#3388)
  • /delkit is now case-insensitive, in line with /kit. (#3396)
  • EssentialsX now warns in the console if other plugins include modified bStats Metrics classes which do not respect the bStats enabled: false config option. (#3451)
  • /remove now removes skeleton horses that were spawned by a trap and tamed to skeletons. (#3477)
  • GeoIP: The plugin now respects locale: zh and displays names in the zh-CN locale. (#3052)
  • Spawn/XMPP: Commands are now hidden in 1.13+ autocomplete. (#3473)
Click here for the full commit log.
----------, Jul 9, 2020

EssentialsX 2.17.2 is here! This release comes with full 1.15.x support, as well as a couple new features and various bug fixes.

Thanks to @md678685 @pop4959, @triagonal, @darbyjack, @Ichbinjoe, @AgentTroll, @JRoy, @CmdrKittens, @JasonHorkles and many other people who have contributed to this release!

In addition, thanks to our supporters on Patreon, in particular our Hero tier supporters:

  • AKP
  • Wasted Ticks
  • ...and 2 other patrons
EssentialsX supports SpigotMC's "CraftBukkit" and Spigot server software, as well as Paper. We recommend using the latest version of Paper, as it includes several performance enhancements over Spigot and is fully compatible with Spigot plugins. Specifically, EssentialsX is designed to work on the following Minecraft versions:
  • ⚠️ 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2 and 1.13.2 - these versions are still supported, but are not a priority for us.
  • ✅ 1.14.4 and 1.15.2 - these versions are regularly tested against.
NOTE: GeoIP changes
As you may have noticed, older versions of EssentialsX GeoIP will cause errors and no longer keep their databases up-to-date. You'll need to follow the new setup guide to get GeoIP up and running again.

Upgrading to 2.17.2
Except for GeoIP, EssentialsX 2.17.2 does not require any config changes from 2.17.1. However, 2.17.2 adds some new settings to config.yml - to use these, you can either generate a new config.yml or add them to your existing config.

Upgrading from older versions of EssentialsX? See the previous update changelogs.

New features
  • You can now run /delkit <kit> to delete a kit. (b97eb12, #2908)
  • You can now specify more different types of projectile in /fireball, and control whether players have access to each type using permissions. (60c4e75, ff9f712)
  • You can now disable logging command blocks commands to the console by setting log-command-block-commands: false in config.yml. (#2599)
  • You can now prevent players putting certain materials on as hats by giving them the permission essentials.hat.prevent-type.<material>. (#2574)
  • The spawn-if-no-home config option from the original Essentials has been re-added. (#2757)
  • You can now spawn in bees with /spawnmob (or kill them with /killall, if you're a monster). (#2873)
  • You can now use UUIDs in more commands. (#2606)
  • You can now include | characters in item lore by prepending it with a \\. (#2831)
  • You can now add custom aliases on all versions using the custom_items.yml file. (#2895)
  • Beezooka! (#3003)
  • AntiBuild: You can now use the build: true meta with LuckPerms. (4ce7dfa)
  • AntiBuild: "You are not permitted to..." messages now have a nicer-looking item name. (a2e0912)
  • Chat: You can now use the {USERNAME} placeholder in chat formats if you want to include the unformatted username. (#2781)
  • Protect: You can now control entity transformations on 1.13.2 and above. (#2836, #2942)
Bug fixes
  • Trade signs created on 1.12.x or below now work properly on 1.13+. (2c33fb6)
  • The player:<player> metadata for spawning in player heads now works on all versions. (5f9eb22, 219012b)
  • The plugins now build on Java 9+. (#2871)
  • You can now set one-word AFK messages. (#2876)
  • Players in jail can no longer change their gamemode. (#2875)
  • Command cooldowns now persist properly across server reboots. (#2888)
  • /unlimited no longer corrupts user data. (#2811)
  • /unbanip now broadcasts unbans to players with the essentials.banip.notify permission, not the essentials.ban.notify permission. (#2774)
  • If an error occurs while copying items.json for the first time, the error message will now state items.json instead of items.csv. (6a7cf39)
  • EssentialsX will no longer assume that the player has a primary group, fixing issues with PEX 2.0 and potentially other permissions plugins. (1c4ce7b)
  • Item resolvers providing item names to tab complete now works properly. (#2910)
  • Builds of EssentialsX compiled against JDK9 will now run on Java 8. (fa06cd8)
  • EssentialsX no longer displays its own bed spawn message on 1.15+. (#2926)
  • Items which were renamed or replaced in 1.14 can now be spawned in on 1.13.x. (d92f5ce)
  • Filtering commands for the autocompletion in 1.13+ is now more efficient, particularly on outdated unsupported permissions plugins. (#3026)
  • /fireball now works on 1.8.8 again. (#3027)
  • GeoIP: The new MaxMind GeoLite2 API and license key system is now supported. (#2926)
  • Nyan.
API changes
  • UserBalanceUpdateEvent now includes a Cause. (#2824)

Click here for a full commit log.
----------, Feb 26, 2020

If you've updated Spigot within the past couple of days, you should update EssentialsX and any other plugins that simulate the keepInventory gamerule as soon as possible to fix a dupe exploit introduced by changes in Spigot.

Additional info: this affects not only Spigot but also the most recent 1.14.4 versions of Spigot's "CraftBukkit" plus any other derivatives. The change responsible for the exploit was introduced to CraftBukkit and Spigot on 26th July. If you are running any CB/Spigot/other forks version newer than then, you need to update EssentialsX.
----------, Jul 31, 2019

If you've updated Spigot within the past couple of days, you should update EssentialsX and any other plugins that simulate the keepInventory gamerule as soon as possible to fix a dupe exploit introduced by changes in Spigot.

Additional info: this affects not only Spigot but also the most recent 1.14.4 versions of Spigot's "CraftBukkit" plus any other derivatives. The change responsible for the exploit was introduced to CraftBukkit and Spigot on 26th July. If you are running any CB/Spigot/other forks version newer than then, you need to update EssentialsX.
----------, Jul 31, 2019

If you've updated Spigot within the past couple of days, you should update EssentialsX and any other plugins that simulate the keepInventory gamerule as soon as possible to fix a dupe exploit introduced by changes in Spigot.

Additional info: this affects not only Spigot but also the most recent 1.14.4 versions of Spigot's "CraftBukkit" and Paper, plus any other derivatives. The change responsible for the exploit was introduced to CraftBukkit and Spigot on 26th July. If you are running any CB/Spigot/Paper version newer than then, you need to update EssentialsX.
----------, Jul 30, 2019

Release notes here https://github.com/EssentialsX/Essentials/releases/tag/2.17.0

EssentialsX for 1.14.x is here! This release includes 1.14.3 support, plug some new features and several bug fixes.

This version officially supports the following servers:

  • Spigot and Paper (recommended) for 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2 and 1.14.3
  • Glowstone 2018.10 onwards (for Minecraft 1.12.2)
----------, Jun 26, 2019

Full release notes https://github.com/EssentialsX/Essentials/releases/tag/2.16.1

A special mention also goes to @triagonal and @DoNotSpamPls as well as countless others who have helped fix bugs and provide support.

EssentialsX for 1.13.2 and all older supported versions is finally here! This release contains mainly bug fixes for 2.16.0; in particular, you can now use EssentialsX in 1.12.2 and below once more!

This release supports Bukkit servers running the following versions: 1.13.2, 1.12.2, 1.11.2, 1.10.2, 1.9.4, and 1.8.8. We do not support 1.7.10, nor do we support old outdated versions like 1.8.3 or 1.13.1 - you should update your server to a supported version.
----------, Mar 4, 2019

Fixes startup issue from previous build.

This update provides full 1.13 support as well as backward compatibility for as late as 1.8. While support on versions lower than 1.13 is still there, it hasn't been tested as thoroughly as 1.13. Please report any issues you find on our official issue tracker.

This update was a mountain of work that @md678685 tackled and did an amazing job on. If you want to support him, check out our patreon, even $1/month helps <3

Release Notes on Github
https://github.com/EssentialsX/Essentials/releases/tag/2.16.0
----------, Jan 3, 2019


Clean release notes can be found here on Github.

Support us on Patreon! https://www.patreon.com/essentialsx This project is a lot of work and takes up a ton of a lot of people's free time. We do it because we love it, but it's also nice to get some love sent back <3

Upgrade Instructions

  • If you're upgrading from the previous release, the first time this version runs it will automatically convert your kits from your config.yml to a kits.yml
  • There are a few new config options. Read the release notes below or check out the master version here.

1.13
  • We will update to 1.13 once 1.13 is released :)

Additions since b488

  • Messages files are now consistent and include updated translations.
  • /clearinventory has an optional confirmation check, similar to /pay. #1309
  • Add notify-player-of-mail-cooldown, a cooldown for how often "You have new mail" messages appear. #1312 11a03bb
  • Show UUID in /whois. #1394 d7685dc
  • Add delay-motd, a delay for sending the MOTD after a user connects. #1396 50f2e7a
  • MCStats Metrics has been replaced with bStats.
  • Socialspy displays chat messages from muted players. #1430 fd63a7d
  • Server list no longer shows vanished players.
  • Kits now support the unbreakable tag. #377 203d656
  • Add allow-direct-hat, allowing players with essentials.hat to click on their helmet slot to put any item there. #960 7958cd0
  • Add configurable messages to send to banned players on join attempts. #420 e5c7ba7
    • This was added to temporary bans later: #1709 a904dab
  • Disable god mode on login when players don't have essentials.god. #1475 91b2622
  • Spawn: Separate respawn and spawn-on-join listener priority options. #1491 ed5aa1f
  • Socialspy messages can now be formatted in the messages file. #1460 (unknown commit)
  • Mails can now be formatted like chat messages with essentials.mail.color etc. #1611 c14d565
  • Players no longer receive /me messages from ignored users. #1768 87c6672
  • ItemFlags are now supported in kits. #795 377c716
  • Chat: Add {PREFIX} and {SUFFIX} plaxeholders. #1663 738efe8
  • Add configurable messages to /jails. #1732 e38b155
  • Add /disposal, a command that opens a disposal inventory like the [Disposal] sign. #1729d69e3a2
  • Move kits to kits.yml and automatically migrate old kits to the new file. #1774 cd43355
  • Disable pastebin-createkit by default, and switch to Hastebin. #1916 0d5da06
  • Add /ess version command, giving detailed info for support purposes. #1514 4e8e7be
  • Add extra permissions to /whois and /seen. #735 95ac4a4
  • Add colour formatting to /mail sendall. #1867 d3c4c2b
  • cancel-afk-on-move now works independently of cancel-afk-on-interact. #1804 823f1c2
Fixes since b488
  • /condense now works on 1.12. #1298 3831464
  • World is now passed when retrieving Vault prefix and suffix. #1327 341263b
  • Tab complete now includes player names. #1301 12930cf
  • LuckPerms is now supported by default, and is recommended over other permissions plugins. #1356 d5cbfef
  • Players can no longer reply to PMs while muted. #1375 518a43d
  • Tab completion with /warp now requires essentials.warp.list. #1378 301a3a7
  • Arrows shot by people in god mode or who are vanished without the PvP permission no longer set people on fire. #1462 13fbd31
  • Powertools that include {player} no longer run when powertools are disabled. #1474 eb341c0
  • PlayerInteractEvent no longer causes constant stack traces on 1.12.2.
  • Spawners now work correctly. #1536 b346970
  • Logger parent infinite loop fixed on Paper servers. #1570 2c4ff35
  • /tppos now checks for per-world teleport permissions. #1516 cd7e096
  • Send an error when trying to show an invalid page. #1754 ef1e57f
  • Kits parse correctly without unpredictable behaviour. #1757 1f0f77f
  • GeoIP: Rewritten to use the newer MaxMind GeoIP 2 database to avoid breakage. #1748 938f94e
  • Arguments are now passed in the correct order in the construction of GodStatusChangeEvents. #1790 16a496c
  • Vanished players are no longer targeted by entities. #1829 0540042
  • /clearinventory now clears the offhand slot. 983f3a7
  • Don't show error that MOTD is missing on login. #1811 e4a8222
  • Vanished players can leave vanish properly after switching world's while vanished. (This fixes the infamous hidden unvanished players bug.) #1796 61c1485
----------, Mar 29, 2018

Clean release notes can be found here on Github.

Support us on Patreon! https://www.patreon.com/essentialsx This project is a lot of work and takes up a ton of a lot of people's free time. We do it because we love it, but it's also nice to get some love sent back <3

Upgrade Instructions

  • If you're upgrading from the previous release, the first time this version runs it will automatically convert your kits from your config.yml to a kits.yml
  • There are a few new config options. Read the release notes below or check out the master version here.

1.13
  • We will update to 1.13 once 1.13 is released :)

Additions since b488

  • Messages files are now consistent and include updated translations.
  • /clearinventory has an optional confirmation check, similar to /pay. #1309
  • Add notify-player-of-mail-cooldown, a cooldown for how often "You have new mail" messages appear. #1312 11a03bb
  • Show UUID in /whois. #1394 d7685dc
  • Add delay-motd, a delay for sending the MOTD after a user connects. #1396 50f2e7a
  • MCStats Metrics has been replaced with bStats.
  • Socialspy displays chat messages from muted players. #1430 fd63a7d
  • Server list no longer shows vanished players.
  • Kits now support the unbreakable tag. #377 203d656
  • Add allow-direct-hat, allowing players with essentials.hat to click on their helmet slot to put any item there. #960 7958cd0
  • Add configurable messages to send to banned players on join attempts. #420 e5c7ba7
    • This was added to temporary bans later: #1709 a904dab
  • Disable god mode on login when players don't have essentials.god. #1475 91b2622
  • Spawn: Separate respawn and spawn-on-join listener priority options. #1491 ed5aa1f
  • Socialspy messages can now be formatted in the messages file. #1460 (unknown commit)
  • Mails can now be formatted like chat messages with essentials.mail.color etc. #1611 c14d565
  • Players no longer receive /me messages from ignored users. #1768 87c6672
  • ItemFlags are now supported in kits. #795 377c716
  • Chat: Add {PREFIX} and {SUFFIX} plaxeholders. #1663 738efe8
  • Add configurable messages to /jails. #1732 e38b155
  • Add /disposal, a command that opens a disposal inventory like the [Disposal] sign. #1729d69e3a2
  • Move kits to kits.yml and automatically migrate old kits to the new file. #1774 cd43355
  • Disable pastebin-createkit by default, and switch to Hastebin. #1916 0d5da06
  • Add /ess version command, giving detailed info for support purposes. #1514 4e8e7be
  • Add extra permissions to /whois and /seen. #735 95ac4a4
  • Add colour formatting to /mail sendall. #1867 d3c4c2b
  • cancel-afk-on-move now works independently of cancel-afk-on-interact. #1804 823f1c2
Fixes since b488
  • /condense now works on 1.12. #1298 3831464
  • World is now passed when retrieving Vault prefix and suffix. #1327 341263b
  • Tab complete now includes player names. #1301 12930cf
  • LuckPerms is now supported by default, and is recommended over other permissions plugins. #1356 d5cbfef
  • Players can no longer reply to PMs while muted. #1375 518a43d
  • Tab completion with /warp now requires essentials.warp.list. #1378 301a3a7
  • Arrows shot by people in god mode or who are vanished without the PvP permission no longer set people on fire. #1462 13fbd31
  • Powertools that include {player} no longer run when powertools are disabled. #1474 eb341c0
  • PlayerInteractEvent no longer causes constant stack traces on 1.12.2.
  • Spawners now work correctly. #1536 b346970
  • Logger parent infinite loop fixed on Paper servers. #1570 2c4ff35
  • /tppos now checks for per-world teleport permissions. #1516 cd7e096
  • Send an error when trying to show an invalid page. #1754 ef1e57f
  • Kits parse correctly without unpredictable behaviour. #1757 1f0f77f
  • GeoIP: Rewritten to use the newer MaxMind GeoIP 2 database to avoid breakage. #1748 938f94e
  • Arguments are now passed in the correct order in the construction of GodStatusChangeEvents. #1790 16a496c
  • Vanished players are no longer targeted by entities. #1829 0540042
  • /clearinventory now clears the offhand slot. 983f3a7
  • Don't show error that MOTD is missing on login. #1811 e4a8222
  • Vanished players can leave vanish properly after switching world's while vanished. (This fixes the infamous hidden unvanished players bug.) #1796 61c1485
----------, Mar 29, 2018

Updated to 1.12 and a lot of other things. Check out https://ci.drtshock.net/job/EssentialsX/changes for change log

Huge thanks to Supaham for keeping this project going when I went MIA.
----------, Jun 20, 2017

370
* Add command cooldowns (see https://github.com/drtshock/Essentials/commit/09acbcdb05f34e0043116f1866904b0ff0f03ddd)
* Fix antibuild piston bug
* Broadcast mute length
* Update user balance event
* Ignore flight check in spectator mode
* Allow color codes in nickname prefix
* Nullcheck in timer
* Add teleport to center option. This will teleport players to the center of blocks
* Make /tp command parse decimals
* Don't list NPCs in /baltop (such as Factions)
* Add mod compatibility for gamemodes.
----------, Jul 5, 2016

1.10 support thanks to @vemacs
----------, Jun 14, 2016

== 330
* Fixed all(most) issues reported with 1.9 so far.
* Potions
* Gamemode superperms fixed
* Spawn eggs
* Enchantments
* meta tags

If you need other binaries, check out https://ci.drtshock.net/job/EssentialsX/
----------, Mar 29, 2016

@vemacs fixed all initial 1.9 issues reported.
----------, Mar 1, 2016

  • Adds bypass permission for /nick colors
  • Forcibly loads offlineplayer class to prevent other conflicting plugins from breaking ess.
  • Per world /time
  • 1.7.x compatibility
  • Make currency display prettier
----------, Feb 4, 2016

* Fixed signs again.
* Added specific permission for only changing the color of your nick name.
* Add support for /seen <uuid>
* Grace period before AFK check
* Remove 'colour' in permission nodes to prevent interfering with wildcards

Thanks to @SupaHam and @AdamQpzm for their help with the sign issue :)
----------, Jan 2, 2016

237

Huge thanks to @vemacs and @SupaHam for their contributions :)

  • Configuration message for messaging players with messaging off.
  • Correct bulk sell permission check
  • Disk write fix
  • Add support for deserializing RGB colors
  • Fix offline player functionality in /seen and other commands
  • Adds toggleable config option 'ignore-colors-in-max-nick-length' to exclude ChatColors from nickname length
  • Fix portal creation
  • Fix jail event
  • Fix /tppos yaw
  • Add minimum-pay-amount setting to limit how little you can /pay someone
  • Adds splash potion persistence
  • Update french and german locales
  • Add last-message-reply-recipient-timeout setting for timing out reply-recipient in private messaging (check wiki for functionality)
  • Fall back to CraftBukkit userCache or Mojang for UUID lookups
  • Only utilize usercache lookup for seen command
  • Turn off socialspy on login if player doesn't have the permission.
  • Add configuration option for the "#EasterEgg" regarding milk buckets and animals
----------, Dec 9, 2015

192
  • Give money back to sender if MaxMoneyException is thrown
  • Add /msgtoggle to silently ignore messages from other players
  • Fix naming in parent module
  • Have /me respect chat radius
  • Send emotes to yourself
  • Add separate permission for bulk sell and hand sell
  • New permission for changing all game modes
  • Add essentials.chat.spy.exempt permission for being exempt from social spy
  • Add gamemode check when gamemoding self
----------, Aug 16, 2015

  • Fix regex not properly stripping formatting codes from signs
  • Compile against latest Spigot
  • Add world arg for /tppos thanks to @CoolV1994
  • Make metrics faster
  • Add more perms to plugin.yml
  • Fix drop items if full
  • No more magic numbers
  • Fix spawners not defaulting to pig
  • Metrics
Highly recommend updating if you have colored signs enabled for regular players.
----------, Jul 23, 2015

Resource Information
Author:
----------
Total Downloads: 5,291,812
First Release: Jul 6, 2015
Last Update: Aug 5, 2023
Category: ---------------
All-Time Rating:
647 ratings
Find more info at essentialsx.net...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings