EssentialsX

EssentialsX

Mod

The essential plugin suite for Paper and Spigot servers.

Server EconomyGame MechanicsManagementSocialTransportationUtility

4,746 downloads
67 followers
Created10 months ago
Updated13 days ago

Filter loader...
Filter versions...

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.

New module: EssentialsX Discord Link! ๐ŸŽ‰

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

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

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

New /renamehome command

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

You can now use /bottom to teleport to the lowest safe location in their current position.

Discord: New first-join message type

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

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.
  • Added the essentials.nick.hideprefix permission to hide the nickname prefix for those with it.
  • Added per command cooldown permissions: essentials.commandcooldowns.bypass.<command name>.

Bug fixes

Bugs fixed from 2.19.7 and older versions

  • Further duplication glitches were fixed in /recipe.
  • Various performance issues with NPCs and jails have been fixed.
  • Playtime statistics in /whois no longer overflow.
  • Various offhand and inventory related issues have been fixed.
  • Doubles are now supported for coordinates in the /tppos command in the console.
  • Trade signs no longer accept water bottles as a valid trade for a potion.
  • An exception is no longer raised in /tpoffline when the player's last location is not known.
  • Sulk sensors no longer detect vanished players.
  • The /top command now sends feedback once again.
  • The /editsign command now calls the SignChangeEvent.
  • Commands preformed on offline players no longer raise a NullPoinerException in some cases.
  • Discord: The console relay no longer stops working after /ess reload in some cases.
  • Discord: Webhooks should no longer hang the server during shutdown in some cases.
  • Discord: Translated Discord command descriptions are now properly truncated to account for Discord character limits.

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.
  • Servers with large amounts of user data no longer hang for minutes on startup.
  • The offhand is no longer used for /hat.
  • The /createkit command works on 1.8.8 once again.
  • Sending a mail to all online players works once again.
  • The user map now properly expels users from cache after a while.
  • Discord: Webhook names are no longer sanitized for markdown.
  • Discord Link: The /link Discord command no longer requires administrator privileges.
  • Discord Link: Synchronizing offline players no longer raises a NullPointerException

Changes for developers

Viewers can now be modified for DiscordRelayEvent

DiscordRelayEvent now has a getViewers() method which returns a mutable list of viewers for the relayed message.

Discord Link Module API

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.
  • LocalChatEvent is fired when players send a message in local chat.
  • HomeModifyEvent is fired when a home is created, updated or deleted.

For a full commit log, click here.

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.

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.

External resources



Project members

JRoy

Maintainer

mdcfe

Owner

pop4959

Maintainer


Technical information

License
GPL-3.0-only
Project ID