EssentialsX Essentials Versions Save

The modern Essentials suite for Spigot and Paper.

2.20.1

9 months ago

🎉 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:

  • AKP
  • Vestria MC
  • @aternosorg
  • @pebblehost

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:

Patreon GitHub Sponsors

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:

  • ℹī¸ Folia is not supported yet. We are working on proper Folia support. Do not attempt to use current versions of EssentialsX on Folia or forks of it - you may lose userdata.
  • 🛑 "Ultra-performance" Paper forks including Akarin, Yatopia, and similar projects.
    These often perform non-standard behaviour and can break your worlds and installed plugins.
  • 🛑 Mohist - The Mohist project is known to be sketchy, and has, in the past, tricked users into deleting official EssentialsX jars and installing an unofficial build.
    We cannot guarantee the safety or functionality of unofficial builds of EssentialsX; you should avoid using Mohist where possible.
  • 🛑 Other Forge/Bukkit hybrid servers including Cauldron, Thermos, Magma, CatServer - EssentialsX is built for the Bukkit API, which does not properly support mods.
    For modded servers, use SpongeForge and Nucleus, or an alternative mod for Forge or Fabric.
  • 🛑 1.7.10 or below.

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.

2.20.0

11 months ago

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:

  • AKP
  • Vestria MC
  • @aternosorg
  • @pebblehost

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:

Patreon GitHub Sponsors

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.

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!

kick link message link command in game link command in discord

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.

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.

2.19.7

1 year ago

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:

  • AKP
  • Vestria MC
  • @aternosorg
  • @pebblehost

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:

Patreon Ko-fi GitHub Sponsors

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.

2.19.6

1 year ago

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:

  • AKP
  • @aternosorg
  • @pebblehost

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:

Patreon Ko-fi GitHub Sponsors

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.

2.19.4

2 years ago

⚠ī¸ 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.

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

Finally, a shoutout to all our supporters on Patreon, GitHub Sponsors and Ko-fi, including:

  • AKP
  • madscientist032
  • @aternosorg
  • @pebblehost
  • ...and 26 more supporters! (Want to see your name here? You can join our Hero tier on Patreon or GitHub Sponsors!)

Your support helps us to continue spending hours of our free time working on and improving EssentialsX for everyone. You can click one of the buttons below to support the EssentialsX project:

Patreon Ko-fi GitHub Sponsors

Supported server versions

EssentialsX officially supports the CraftBukkit, Spigot, and Paper server software.

EssentialsX is designed to work on the following Minecraft versions:

  • ✅ 1.17.1 and 1.18.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, 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.4

2.19.4 is a drop-in replacement for 2.19.3.

If you're upgrading from 2.19.2, you can keep your current EssentialsX config file. However, 2.19.4 adds some 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. See the 2.19.3 changelog for more details.

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.

EssentialsX Discord hangs on single core systems on outdated versions of JDK 17

Due to a known bug in OpenJDK 17.0.1, EssentialsX Discord may hang during startup when running in a single-core environment. Due to the nature of the JDK bug, there is nothing EssentialsX can do directly to fix this.

You can fix this by updating your Java version to 17.0.2 or later. If you are unable to change your Java version, please contact your server host for help.

(You can alternatively add -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 to your startup flags to attempt to mitigate the issue. However, this should be used as a last resort only. OpenJDK 17.0.2 fixes this issue and should be used instead of this workaround.)

Bug fixes

Bugs fixed from 2.19.3 and older versions

These bugs existed in 2.19.3 and have been fixed in this release.

  • IMPORTANT: after upgrading to 2.19.3, [Trade] signs would change owner when used. This has been fixed. (#4835)
  • EssentialsX no longer spits out errors if the plugin shuts down while an update check is running. (#4839)

Regressions fixed from 2.19.4 dev builds

There are no known regressions in 2.19.4 dev builds.


For a full commit log, click here.

2.19.3

2 years ago

EssentialsX 2.19.3 is here! 🎉 This release features new chat features, support for Minecraft 1.18.2 and several 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 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 on GitHub and MOSS, including @triagonal, @JasonHorkles, @Evidentsinger14, @Chew, and many others.

Finally, a shoutout to all our supporters on Patreon, GitHub Sponsors and Ko-fi, including:

  • AKP
  • madscientist032
  • @aternosorg
  • @pebblehost
  • ...and 26 more supporters! (Want to see your name here? You can join our Hero tier on Patreon or GitHub Sponsors!)

Your support helps us to continue spending hours of our free time working on and improving EssentialsX for everyone. You can click one of the buttons below to support the EssentialsX project:

Patreon Ko-fi GitHub Sponsors

Supported server versions

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

  • ✅ 1.17.1 and 1.18.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, 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.3

If you're upgrading from 2.19.2, you can keep your current EssentialsX config file. However, 2.19.3 adds some 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.0 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.

EssentialsX Discord hangs on single core systems on outdated versions of JDK 17

Due to a known bug in OpenJDK 17.0.1, EssentialsX Discord may hang during startup when running in a single-core environment. Due to the nature of the JDK bug, there is nothing EssentialsX can do directly to fix this.

You can fix this by updating your Java version to 17.0.2 or later. If you are unable to change your Java version, please contact your server host for help.

(You can alternatively add -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 to your startup flags to attempt to mitigate the issue. However, this should be used as a last resort only. OpenJDK 17.0.2 fixes this issue and should be used instead of this workaround.)

New features

EssentialsX now supports 1.18.2 (#4821)

EssentialsX now officially supports CraftBukkit, Spigot and Paper for 1.18.2.

/nick can now be used even when change-displayname is disabled (#4758)

You can now allow /nick without letting EssentialsX take over displayname formatting. This may be useful if you want to use a third-party chat formatting plugin while still letting EssentialsX handle nicknames.

EssentialsX Chat: Enhanced local and global chat features (#4535)

This release builds on both Essentials' legacy chat features and the new /toggleshout command introduced in 2.19.0, adding several new config.yml options and more permissions to control local and global chat modes!

Config option to control whether players default to local or shout chat

You can now toggle whether players default to local chat mode or shout mode when they log in using the chat.shout-default option:

chat:
  ...
  # Whether players should be placed into shout mode by default.
  shout-default: false

Config option to control whether /toggleshout should persist across server restarts

You can now let players keep their /toggleshout setting when the server restarts using the chat.persist-shout option:

chat:
  ...
  # Whether a player's shout mode should persist restarts.
  persist-shout: false

Config option to enable or disable question chat mode

You can now control whether questions (by default, messages starting with ? and sent in a unique chat channel) are enabled or disabled on your server using the chat.question-enabled option:

chat:
  ...
  # Whether chat questions should be enabled or not.
  question-enabled: true

New permissions for sending and receiving chats

Essentials previously had essentials.chat.shout and essentials.chat.question permissions, which let you control whether or not players can send shout or question messages respectively.

You can now enable or disable the following new permissions (all of which default to true):

  • essentials.chat.local allows players to send messages in local chat
  • essentials.chat.receive.shout allows players to receive shout chat messages
  • essentials.chat.receive.question allows players to receive question chat messages
  • essentials.chat.receive.local allows players to receive local chat messages

Local chat prefix when in shout mode

If a player enables shout mode with /toggleshout, any messages they send with the shout prefix (! by default) will now be sent to local chat.

Other additions

  • The output of /near is now translatable. (#4740)
  • You can now use decimal places in /tppos. (#4729)
  • The /ess dump command can now include the settings files for random teleports (tpr.yml), /sell values (worth.yml) and EssentialsX Spawn (spawn.yml). (#4785)
  • [trade] (and deprecated [protection]) signs now save their owners' UUIDs on Minecraft 1.14 and above, and should no longer break when the owner changes their username. (#4713)
  • You can now change the tree-command-range-limit setting (defaults to 300) in config.yml to limit how far away /tree and /bigtree can place trees. (#4728)

Bug fixes

Bugs fixed from 2.19.2 and older versions

These bugs existed in 2.19.2 and have been fixed in this release.

  • Unused legacy data storage code has been removed. (#4707)
  • EssentialsX no longer uses deprecated Paper methods for chat component serialisation. (#4706)
  • Safe teleports on older versions of Minecraft no longer break. (#4708)
  • Safe teleports now use the world's true minimum height instead of hardcoding y=0. (#4715)
  • The update checker no longer spams the console when a GitHub ratelimit is encountered. (#4731)
  • /tpaccept without any arguments now accepts the most recent teleport request when multiple are queued. (#4755)
  • EssentialsX and EssentialsX AntiBuild no longer cause Spigot to load legacy material support. (#4697)
  • The vanishing-items-policy and binding-items-policy config options now apply to the offhand. (#4725)
  • Trade signs can no longer be used to dupe items when players have nearly-full inventories. (#4748)
  • The update checker now falls back to a proxy provided by EssentialsX in the event that GitHub is unresponsive. (#4816)
  • Discord: The command executor used on Paper now works on the latest Paper versions and uses Paper's command forwarding API where available. (#4791, #4794)
  • Discord: Advancement notifications now work on 1.12.2. (#4826)

Regressions fixed from 2.19.3 dev builds

There are no known regressions in 2.19.3 dev builds.

Changes for developers

EssentialsX now builds with Gradle 7.4

The build script has been updated to Gradle 7.4. Various build plugins have also been updated, including an update to run-paper to fix the runServer tasks which broke following an update to Paper's download API in late 2021. (The runServer tasks will be updated to use Paper 1.18.2 during the 2.20.x development cycle.)


For a full commit log, click here.

2.19.2

2 years ago

This release is a hotfix for an issue in the Discord module. All other changes can be found in the 2.19.1 changelog - please read the linked changelog for important changes since 2.19.0 or older versions.

Bug fixes

  • Discord: Command responses no longer fail when they are shorter than Discord's maximum message length. (#4690)

2.19.1

2 years ago

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

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 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 dozens of supporters on Patreon, GitHub Sponsors and Ko-fi, including:

  • AKP
  • madscientist032
  • @aternosorg
  • @pebblehost
  • ...plus 26 more 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:

Patreon Ko-fi GitHub Sponsors

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

Teleport safety world height changes (#4641, #4667)

The world height is now properly taken into account when determining if a location is safe. EssentialsX should now take into account y-levels of 0 to 255, -64 to 319, and any custom y-level defined by a datapack.

New features

EssentialsX now supports 1.18.1 (#4640, #4667)

EssentialsX now has full support for Minecraft 1.18.1, including support for the new items in /give, /item and kits, new 1.18 world height changes, and new NMS/OBC mappings for accessing internal CraftBukkit code.

EssentialsX also no longer warns when installed on 1.18.1 servers.

New support for multiple TPA requests (#3801)

You can now receive and accept/deny TPA requests from multiple players at a time.

You can edit the maximum amount of TPA requests a player can have at once by changing tpa-max-amount in the config:

# The maximum amount of simultaneous TPA requests that can be pending for any given user.
# Once at this threshold, any new TPA requests will bump the oldest TPA requests out of queue.
# Defaults to 5.
tpa-max-amount: 5

New Discord module features (#4520, #4541, #4620, #4534)

New action message type

A Minecraft -> Discord message type, sent when a player uses the /me or /action commands.

# 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:
  ...
  # Action messages sent when a player runs the /me or /action commands.
  action: 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 runs the /me or /action command.
  # The following placeholders can be used here:
  # - {username}: The name of the user who ran the command
  # - {displayname}: The display name of the user who ran the command
  # - {action}: The action (message) the user used in the command.
  # ... PlaceholderAPI placeholders are also supported here too!
  action: ":person_biking: {displayname} *{action}*"

New /discordbroadcast command

Allows you to send one off messages from Minecraft to Discord. Supports markdown and tab completes server emotes.

https://user-images.githubusercontent.com/10731363/144722102-80dee087-14b7-43a7-a4a0-4fc5a4517c93.mp4

image

New /discord command

Sends a configured Discord invite link.

# The Discord invite URL that will be shown when a player when using the /discord command or in other areas.
discord-url: "https://discord.gg/invite-code"

New console regex filters

Allows you to filter certain console lines if they match a regex pattern.

# Console relay settings
# The console relay sends every message shown in the console to a Discord channel.
console:
  ...
  # A regex pattern which will not sending matching console messages to Discord.
  console-filter: ""

New /mail sendtempall command (#4561)

Allows you to send a temporary mail to all users on the server with /mail sendtempall <expire time> <message>. Requires the essentials.mail.sendtempall permission.

New /playtime command (#4562, #4619)

You can now run /playtime to view your time in game. If you have the essentials.playtime.others permission, you can also view the playtime of other players.

Jail notifications (#4576)

Players with the essentials.jail.notify permission will now be notified if someone is jailed.

Kits subfolder and multiple kit files (#4407)

You can now optionally create a plugins/Essentials/kits/ folder (in addition to the default kits.yml file) and organise your kits into multiple files within that folder. Kit files in this folder use the same structure as the normal kits.yml file.

For example, you could have a structure like this:

plugins/Essentials/
|--- kits/ (optional)
    |--- cosmetics.yml
    |--- rewards.yml
    |--- staff.yml
|--- kits.yml (required)

All kits will have the same name in-game as they do in the file where they are defined. Kits with the same name in different files will be ignored.

If you set pastebin-createkit: false in your config.yml and use /createkit, it will always place new kits in the default plugins/Essentials/kits.yml. If you want to place your /createkit kits into separate files, we recommend setting pastebin-createkit: true and manually adding the kit to the correct file as desired.

Other additions

  • Translations have been updated with the latest community contributions on Crowdin.
  • Command filtering is now asynchronous on Paper. (#4460)
  • Added the alias /ess dump all for /ess dump *. (#4517)
  • Added UUIDs to /seen for players with the essentials.seen.uuid permission. (#4531)
  • Added a translation for player's real name in the player list. (#4614)
  • Improved the error message for updater checker rate limit. (#4560)
  • Improved performance during world reloads. (#4573)
  • Discord: Updated EssentialsXDiscord dependencies (JDA + discord-webhooks). (#4655)

Bug fixes

Bugs fixed from 2.19.0 and older versions

  • Commands ending in single colon no longer raise an exception. (#4508)
  • Waking up a villager no longer sets your bed home. (#4524)
  • The verbose-command-usages config option now actually reverts usage messages to previous behavior. (#4530)
  • Discord bot tokens are now properly censored in /ess dump. (#4563)'
  • Warps from deleted worlds can once again be deleted. (#4590)
  • Various issues with potions in kits have been fixed. (#4591)
  • Light blocks are no longer considered solid blocks. (#4601)
  • Unsafe homes can now be teleported to when force-disable-teleport-safety is enabled. (#4650)
  • Disabling commands from Essentials addons no longer crash the server. (#4680)
  • Discord: Vanilla commands now work properly with the Discord command relay. (#4552)
  • Discord: Various null issues have been fixed in the Discord module. (#4651)
  • Discord: Discord interaction messages no longer error when sent with messages above 2000 characters. (#4686)

Regressions fixed from 2.19.1 dev builds

  • Player UUID now appears below the alts section of /seen. (#4615)
  • /playtime no longer throws an error on offline players. (#4649)
  • essentials.fly.safelogin now properly considers 1.18 world height. (#4667)
  • Removed ess_ignore_teleport Bukkit metadata. This will be superseded with a proper API. (#4682)

Changes for developers

TPA request API: additions, deprecations and replacements (#3801)

If your plugin hooks into Essentials' TPA system, various APIs have been changed and deprecated to accommodate the TPA system rewrite which now support multiple simultaneous TPA requests.

New methods

IUser#getNextTpaRequest has been added to get the most recent teleport request. IUser#hasPendingTpaRequests has been added to replace IUser#hasOutstandingTeleportRequest with additional functionality.

Deprecated methods

IUser#hasOutstandingTeleportRequest has been deprecated in favour of IUser#hasPendingTpaRequests. IUser#getTeleportRequestTime has been deprecated in favour of IUser#getNextTpaRequest.

Vanish metadata value (#4646)

EssentialsX now sets the vanished value on players' Bukkit metadata when they are vanished or hidden. If you use this value already to detect when plugins like VanishNoPacket and SuperVanish hide players, you will now also be able to detect EssentialsX's /vanish with no extra effort.

New events

EssentialsX 2.19.1 introduces several new events:

  • TeleportRequestResponseEvent is fired when a player accepts or denies a TPA request. (#3801)
  • UserActionEvent is fired when a player runs /me or /action. (#4520)
  • Discord: DiscordRelayEvent is fired when a message is relayed from Discord to Minecraft, and can be edited or cancelled. (#4656)

For a full commit log, click here.

2.19.0

2 years ago

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:

  • AKP
  • @aternosorg
  • @pebblehost
  • ...and 3 other anonymous Heroes

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:

Patreon Ko-fi GitHub Sponsors

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.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) :tada:

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.

execute command

msg command

bridge

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:

warpinfo

New cancel-afk-on-chat setting (#3863)

You can now control whether chat cancels AFK for players separate to other types of interaction:

# 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.

# 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.

# 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:

# 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:

# 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:

chat:
  ...
  # World aliases allow you to replace the world name with something different in the chat format.
  world-aliases:
    world: "&dmain&r"

DK3vptD

/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.

sign

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.

shout

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

help

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.

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:

# 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:

# 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

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

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 pickup 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 https://jd-v2.essentialsx.net/. You can also see Javadocs for other modules by adding the name of the module (for example, https://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:

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.

2.18.2

3 years ago

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.

Patreon

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.
  • 🛑 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. 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 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.

# 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 /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 tablist name 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.