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
<code>teleport-cooldown</code>03Wait time between teleports (seconds)
<code>teleport-delay</code>03Countdown before the teleport (seconds). Cancelled if the player moves
<code>teleport-invulnerability</code>04Damage immunity after teleporting (seconds)
<code>teleport-back-when-freed-from-jail</code>truetrueReturn to the previous location when released from jail
<code>teleport-to-center</code>truetrueTeleport 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
<code>starting-balance</code>01000Starting balance for a new player
<code>max-money</code>1000000000000010000000Maximum balance (guards against exploits)
<code>min-money</code>-100000Minimum balance (negative = debt allowed)
<code>economy-log-enabled</code>falsetrueLog every money transfer
<code>currency-symbol</code>$Currency symbol
<code>currency-symbol-suffix</code>falsetruePut 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
<code>max-homes</code>3Default home limit (all players)
<code>sethome-multiple.default</code>33Number of homes for the default group
<code>sethome-multiple.vip</code>5Number of homes for the VIP group
<code>sethome-multiple.admin</code>10Number of homes for the admin group
<code>world-home-permissions</code>falsetrueRequire 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
<code>spawn-on-join</code>falsetrueTeleport the player to spawn when they log in
<code>spawn-on-join-groups</code>Teleport only certain groups to spawn (empty = everyone)
<code>respawn-at-home</code>falsefalseRespawn at home or at spawn after death? (with EssentialsXSpawn)
<code>newbies.announce-format</code>&eWelcome, {DISPLAYNAME}!New player announcement

Other Important Settings

SettingDefaultRecommendedDescription
<code>nick-prefix</code>~~Nickname prefix (can be left empty)
<code>change-displayname</code>truetrueReplace the player's display name with their nickname
<code>add-prefix-suffix</code>truetrueAdd the LuckPerms prefix/suffix to the display name
<code>ops-name-color</code>4noneName colour for OP players (none = disabled)
<code>update-check</code>truetrueCheck for updates on start-up
<code>locale</code>trMessage language (messages_tr.properties)
<code>per-warp-permission</code>falsetrueRequire 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
<code>/sethome</code>Save the default homeessentials.sethome
<code>/sethome mine</code>Save a named homeessentials.sethome.multiple
<code>/home</code>Teleport to the default homeessentials.home
<code>/home mine</code>Teleport to a named homeessentials.home
<code>/delhome mine</code>Delete a named homeessentials.delhome
<code>/homes</code>List 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
<code>/setwarp market</code>Create a warp pointessentials.setwarp
<code>/warp market</code>Teleport to a warp pointessentials.warp + essentials.warps.market
<code>/delwarp market</code>Delete a warp pointessentials.delwarp
<code>/warps</code>List all warpsessentials.warp.list

Spawn Commands

CommandDescriptionPermission
<code>/setspawn</code>Set the spawn pointessentials.setspawn
<code>/setspawn vip</code>Set a per-group spawnessentials.setspawn
<code>/spawn</code>Teleport to spawnessentials.spawn

TPA (Teleporting to a Player)

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

CommandDescriptionPermission
<code>/tpa Player</code>Send a teleport request to a playeressentials.tpa
<code>/tpahere Player</code>Ask a player to teleport to youessentials.tpahere
<code>/tpaccept</code>Accept the request
<code>/tpdeny</code>Deny the request
<code>/tpacancel</code>Cancel a request you sent
<code>/tpaall</code>Send a request to every playeressentials.tpaall
<code>/back</code>Return to your last location (including after death)essentials.back
<code>/tp Player</code>Teleport 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
<code>/balance</code> (or <code>/bal</code>)See your own balanceessentials.balance
<code>/balance Player</code>See someone else's balanceessentials.balance.others
<code>/pay Player 500</code>Send money to a playeressentials.pay
<code>/baltop</code>List of the richest playersessentials.baltop
<code>/eco give Player 1000</code>Give money to a playeressentials.eco.give
<code>/eco take Player 500</code>Take money from a playeressentials.eco.take
<code>/eco set Player 0</code>Set a balanceessentials.eco.set
<code>/eco reset Player</code>Reset 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
<code>{DISPLAYNAME}</code>The player's display name (their nickname, if they have one)
<code>{PREFIX}</code>The prefix coming from LuckPerms/Vault
<code>{SUFFIX}</code>The suffix coming from LuckPerms/Vault
<code>{GROUP}</code>The player's primary group
<code>{MESSAGE}</code>The chat message
<code>{WORLD}</code>The name of the world they are in
<code>{USERNAME}</code>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
<code>/nick NewName</code>Set a nicknameessentials.nick
<code>/nick &cNewName</code>Set a coloured nicknameessentials.nick + essentials.nick.color
<code>/nick off</code>Remove the nicknameessentials.nick
<code>/realname NewName</code>Find the real name behind a nicknameessentials.realname
<code>/nick Player NewName</code>Change 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
<code>/kit starter</code>Claim a kitessentials.kit.starter
<code>/kit vipkit</code>Claim the VIP kitessentials.kit.vipkit
<code>/kits</code>List the available kitsessentials.kit.list
<code>/createkit name seconds</code>Create a kit from your inventoryessentials.createkit
<code>/showkit name</code>Show 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?
<strong>EssentialsX Chat</strong>Chat formatting, per-group colours, PlaceholderAPI supportVault (for prefix/suffix)Recommended
<strong>EssentialsX Spawn</strong>Advanced spawn management, first-join spawn, per-group spawn, respawn settingsRecommended
<strong>EssentialsX AntiBuild</strong>Per-group build/break blocking, item usage restrictionsOptional
<strong>EssentialsX GeoIP</strong>Shows players' country/city information, geographic restrictionsGeoIP databaseOptional
<strong>EssentialsX Discord</strong>Discord–Minecraft chat synchronisation, webhook support, console channelDiscord bot tokenOptional
<strong>EssentialsX Protect</strong>World protection: blocking creeper/TNT explosions, fire spread and lava flowOptional

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
<code>essentials.home</code>Teleport homedefault
<code>essentials.sethome</code>Save a homedefault
<code>essentials.sethome.multiple.3</code>Save up to 3 homesdefault
<code>essentials.warp</code>Teleport to a warpdefault
<code>essentials.tpa</code>Send TPA requestsdefault
<code>essentials.back</code>Return to the last locationdefault
<code>essentials.balance</code>See the balancedefault
<code>essentials.pay</code>Send moneydefault
<code>essentials.kit</code>Use kitsdefault
<code>essentials.nick</code>Change nicknamevip
<code>essentials.nick.color</code>Coloured nicknamevip
<code>essentials.fly</code>Flyvip
<code>essentials.tp</code>Teleport directlymoderator
<code>essentials.kick</code>Kick playersmoderator
<code>essentials.mute</code>Mute playersmoderator
<code>essentials.ban</code>Ban playersadmin
<code>essentials.gamemode</code>Change game modeadmin
<code>essentials.eco.give</code>Give money (admin)admin
<code>essentials.setwarp</code>Create warpsadmin
<code>essentials.*</code>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 <code>add-prefix-suffix: true</code>
The config reset after <code>/reload</code>Reload breaks EssentialsXNever use /reload; restart with <code>stop</code>
The economy does not workVault is not installed, or there is no providerInstall Vault and check whether EssentialsX is loading as the economy provider (<code>/vault-info</code>)
The home limit does not work<code>sethome-multiple</code> is not set up properly in the configCheck that the group names match the ones in LuckPerms
TPA requests never arrive<code>teleport-cooldown</code> is too high, or the permission is missingCheck the <code>essentials.tpa</code> permission and lower the cooldown
Nickname colour codes do not workThe <code>essentials.nick.color</code> 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 work<code>per-warp-permission: true</code> but the permission was never grantedGrant the <code>essentials.warps.warp_name</code> permission

Useful Resources