What Is EssentialsX?

EssentialsX is the most comprehensive core plugin for Minecraft servers. It ships more than 130 commands: the teleport system (home, warp, spawn, TPA), economy, chat formatting, kits, nicknames, private messaging and much more. It is the modern, actively maintained fork of Essentials, which has been in development since 2011.

  • 130+ built-in commands - no extra plugins needed
  • Modular design - install only the parts you actually need
  • Active development - Paper, Spigot and Purpur support
  • Full compatibility with PlaceholderAPI, LuckPerms and Vault
  • Detailed config.yml - every feature can be customised

Installation

Download EssentialsX from the official site or straight from the CI server. Drop the main jar and whichever modules you need into the plugins/ folder.

cd ~/server/plugins

# Main plugin (required)
wget https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsX.jar

# Vault (economy and permission bridge - strongly recommended)
wget https://github.com/MilkBowl/Vault/releases/latest/download/Vault.jar

# Modules (optional)
wget https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXChat.jar
wget https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXSpawn.jar
wget https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXAntiBuild.jar
wget https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXGeoIP.jar
wget https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXDiscord.jar
wget https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXProtect.jar

After the first start-up a config.yml will appear in the plugins/Essentials/ folder. Stop the server, edit the config, then start it again.

config.yml in Detail

The heart of EssentialsX is config.yml. It runs to over 800 lines. Below we go through the most critical settings, grouped by category.

Teleport Settings

SettingDefaultRecommendedDescription
teleport-cooldown03Wait time between teleports (seconds)
teleport-delay03Countdown before the teleport (seconds). Cancelled if the player moves
teleport-invulnerability04Damage immunity after teleporting (seconds)
teleport-back-when-freed-from-jailtruetrueReturn to the previous location when released from jail
teleport-to-centertruetrueTeleport to the centre of the block (instead of the edge)
yaml
# config.yml - Teleport section
teleport-cooldown: 3
teleport-delay: 3
teleport-invulnerability: 4
teleport-to-center: true

Economy Settings

SettingDefaultRecommendedDescription
starting-balance01000Starting balance for a new player
max-money1000000000000010000000Maximum balance (guards against exploits)
min-money-100000Minimum balance (negative = debt allowed)
economy-log-enabledfalsetrueLog every money transfer
currency-symbol$₺Currency symbol
currency-symbol-suffixfalsetruePut the symbol after the number (100₺)
yaml
# config.yml - Economy section
starting-balance: 1000
max-money: 10000000
min-money: 0
economy-log-enabled: true
currency-symbol: '₺'
currency-symbol-suffix: true

Home Settings

SettingDefaultRecommendedDescription
max-homes-3Default home limit (all players)
sethome-multiple.default33Number of homes for the default group
sethome-multiple.vip-5Number of homes for the VIP group
sethome-multiple.admin-10Number of homes for the admin group
world-home-permissionsfalsetrueRequire a per-world sethome permission
yaml
# config.yml - Home section
max-homes: 3
sethome-multiple:
  default: 3
  vip: 5
  admin: 10
world-home-permissions: false

Spawn Settings

SettingDefaultRecommendedDescription
spawn-on-joinfalsetrueTeleport the player to spawn when they log in
spawn-on-join-groups--Teleport only certain groups to spawn (empty = everyone)
respawn-at-homefalsefalseRespawn at home or at spawn after death? (with EssentialsXSpawn)
newbies.announce-format-&eWelcome, {DISPLAYNAME}!New player announcement

Other Important Settings

SettingDefaultRecommendedDescription
nick-prefix~~Nickname prefix (can be left empty)
change-displaynametruetrueReplace the player's display name with their nickname
add-prefix-suffixtruetrueAdd the LuckPerms prefix/suffix to the display name
ops-name-color4noneName colour for OP players (none = disabled)
update-checktruetrueCheck for updates on start-up
locale-trMessage language (messages_tr.properties)
per-warp-permissionfalsetrueRequire a separate permission for each warp

The Teleport System

The teleport system is the most heavily used part of EssentialsX. It has four main components: Home, Warp, Spawn and TPA.

Home Commands

These manage each player's personal teleport points. The per-group home limit is set in config.yml.

CommandDescriptionPermission
/sethomeSave the default homeessentials.sethome
/sethome mineSave a named homeessentials.sethome.multiple
/homeTeleport to the default homeessentials.home
/home mineTeleport to a named homeessentials.home
/delhome mineDelete a named homeessentials.delhome
/homesList all homesessentials.home.others (someone else's)
text
/sethome              # Save the default home
/sethome mine          # Save a named home
/home                  # Teleport to the default home
/home mine             # Teleport to a named home
/delhome mine          # Delete the home
/homes                 # List all homes

Warp Commands

Fixed, server-wide teleport points that everyone (or everyone with the right permission) can use. Ideal for key locations such as the market, arena or farm.

CommandDescriptionPermission
/setwarp marketCreate a warp pointessentials.setwarp
/warp marketTeleport to a warp pointessentials.warp + essentials.warps.market
/delwarp marketDelete a warp pointessentials.delwarp
/warpsList all warpsessentials.warp.list

Spawn Commands

CommandDescriptionPermission
/setspawnSet the spawn pointessentials.setspawn
/setspawn vipSet a per-group spawnessentials.setspawn
/spawnTeleport to spawnessentials.spawn

TPA (Teleporting to a Player)

This lets players send each other teleport requests. The accept/deny mechanism keeps it safe.

CommandDescriptionPermission
/tpa PlayerSend a teleport request to a playeressentials.tpa
/tpahere PlayerAsk a player to teleport to youessentials.tpahere
/tpacceptAccept the request-
/tpdenyDeny the request-
/tpacancelCancel a request you sent-
/tpaallSend a request to every playeressentials.tpaall
/backReturn to your last location (including after death)essentials.back
/tp PlayerTeleport directly (admin)essentials.tp

The Economy System

EssentialsX includes a built-in economy engine. Working together with the Vault plugin, it integrates fully with third-party plugins such as ChestShop, ShopGUI+ and Jobs.

CommandDescriptionPermission
/balance (or /bal)See your own balanceessentials.balance
/balance PlayerSee someone else's balanceessentials.balance.others
/pay Player 500Send money to a playeressentials.pay
/baltopList of the richest playersessentials.baltop
/eco give Player 1000Give money to a playeressentials.eco.give
/eco take Player 500Take money from a playeressentials.eco.take
/eco set Player 0Set a balanceessentials.eco.set
/eco reset PlayerReset to the starting balanceessentials.eco.set

Chat Formatting (EssentialsX Chat)

The EssentialsXChat module lets you customise the chat format completely. It is configured from the chat section of config.yml.

yaml
# config.yml - Chat section
chat:
  format: '{DISPLAYNAME}&7: &f{MESSAGE}'
  group-formats:
    default: '&7{PREFIX}{DISPLAYNAME}{SUFFIX}&7: &f{MESSAGE}'
    vip: '&a{PREFIX}{DISPLAYNAME}{SUFFIX}&7: &f{MESSAGE}'
    moderator: '&b{PREFIX}{DISPLAYNAME}{SUFFIX}&7: &f{MESSAGE}'
    admin: '&c{PREFIX}{DISPLAYNAME}{SUFFIX}&7: &f{MESSAGE}'

Chat Variables

VariableDescription
{DISPLAYNAME}The player's display name (their nickname, if they have one)
{PREFIX}The prefix coming from LuckPerms/Vault
{SUFFIX}The suffix coming from LuckPerms/Vault
{GROUP}The player's primary group
{MESSAGE}The chat message
{WORLD}The name of the world they are in
{USERNAME}The real username (not the nickname)

The Nickname System

This lets players change their display names. With colour code support, coloured nicknames are possible too.

CommandDescriptionPermission
/nick NewNameSet a nicknameessentials.nick
/nick &cNewNameSet a coloured nicknameessentials.nick + essentials.nick.color
/nick offRemove the nicknameessentials.nick
/realname NewNameFind the real name behind a nicknameessentials.realname
/nick Player NewNameChange someone else's nicknameessentials.nick.others
yaml
# config.yml - Nickname settings
nick-prefix: '~'              # Character added in front of the nickname (can be left empty)
change-displayname: true      # Replace the display name with the nickname
nick-color: true              # Allow the use of colour codes
max-nick-length: 20           # Maximum nickname length

The Kit System

You can define ready-made item sets and hand them out to players at set intervals. Kits are defined inside config.yml.

yaml
# config.yml - Kits section
kits:
  starter:
    delay: 86400            # 24 hour cooldown
    items:
      - stone_sword 1
      - iron_pickaxe 1
      - bread 16
      - oak_log 32
  vipkit:
    delay: 43200            # 12 hour cooldown
    items:
      - diamond_sword 1 sharpness:2
      - diamond_pickaxe 1 efficiency:3
      - golden_apple 8
      - diamond 16
  miner:
    delay: 3600             # 1 hour cooldown
    items:
      - iron_pickaxe 1 efficiency:4 unbreaking:3
      - torch 64
      - bread 16
CommandDescriptionPermission
/kit starterClaim a kitessentials.kit.starter
/kit vipkitClaim the VIP kitessentials.kit.vipkit
/kitsList the available kitsessentials.kit.list
/createkit name secondsCreate a kit from your inventoryessentials.createkit
/showkit nameShow the contents of a kitessentials.showkit

EssentialsX Modules

EssentialsX has a modular structure. Alongside the main jar, you can install whichever modules you need one by one:

ModuleFunctionDependencyRequired?
EssentialsX ChatChat formatting, per-group colours, PlaceholderAPI supportVault (for prefix/suffix)Recommended
EssentialsX SpawnAdvanced spawn management, first-join spawn, per-group spawn, respawn settings-Recommended
EssentialsX AntiBuildPer-group build/break blocking, item usage restrictions-Optional
EssentialsX GeoIPShows players' country/city information, geographic restrictionsGeoIP databaseOptional
EssentialsX DiscordDiscord-Minecraft chat synchronisation, webhook support, console channelDiscord bot tokenOptional
EssentialsX ProtectWorld protection: blocking creeper/TNT explosions, fire spread and lava flow-Optional

Setting Up EssentialsX Discord

The EssentialsX Discord module carries Minecraft chat into a Discord channel and Discord messages back into the game.

  • Create a new bot from the Discord Developer Portal
  • Get the bot token and paste it into plugins/Essentials/config.yml
  • Invite the bot to your server (the MESSAGE_CONTENT intent must be enabled)
  • Edit the discord section in the config: enter your channel IDs
yaml
# config.yml - Discord section (simplified)
discord:
  token: 'YOUR_BOT_TOKEN_HERE'
  guild: '123456789012345678'
  channels:
    primary: '123456789012345678'
  staff:
    channel: '123456789012345679'
  console:
    channel: '123456789012345680'

Permissions Table

The most frequently used EssentialsX permissions. Assign them to groups with LuckPerms:

PermissionDescriptionRecommended Group
essentials.homeTeleport homedefault
essentials.sethomeSave a homedefault
essentials.sethome.multiple.3Save up to 3 homesdefault
essentials.warpTeleport to a warpdefault
essentials.tpaSend TPA requestsdefault
essentials.backReturn to the last locationdefault
essentials.balanceSee the balancedefault
essentials.paySend moneydefault
essentials.kitUse kitsdefault
essentials.nickChange nicknamevip
essentials.nick.colorColoured nicknamevip
essentials.flyFlyvip
essentials.tpTeleport directlymoderator
essentials.kickKick playersmoderator
essentials.muteMute playersmoderator
essentials.banBan playersadmin
essentials.gamemodeChange game modeadmin
essentials.eco.giveGive money (admin)admin
essentials.setwarpCreate warpsadmin
essentials.*All EssentialsX permissionsowner

Translating the Messages

EssentialsX keeps its messages in plugins/Essentials/messages.properties. To run the plugin in another language - Turkish, for example:

yaml
# config.yml
locale: 'tr'

This setting generates a messages_tr.properties file automatically. You can edit any message inside it. Community translations are available as well.

Common Mistakes and How to Fix Them

ProblemCauseFix
The prefix does not show in chatVault or EssentialsX Chat is missingInstall Vault + EssentialsXChat, check add-prefix-suffix: true
The config reset after /reloadReload breaks EssentialsXNever use /reload; restart with stop
The economy does not workVault is not installed, or there is no providerInstall Vault and check whether EssentialsX is loading as the economy provider (/vault-info)
The home limit does not worksethome-multiple is not set up properly in the configCheck that the group names match the ones in LuckPerms
TPA requests never arriveteleport-cooldown is too high, or the permission is missingCheck the essentials.tpa permission and lower the cooldown
Nickname colour codes do not workThe essentials.nick.color permission is missingGrant the permission through LuckPerms
The kit cooldown never resetsThe timing is right but it is calculated in seconds86400 = 1 day, 3600 = 1 hour - enter the correct value
The warp permission does not workper-warp-permission: true but the permission was never grantedGrant the essentials.warps.warp_name permission

Useful Resources