Skip to content

Configuration

elitescouter edited this page Jan 29, 2026 · 8 revisions

Configuration

EliteEssentials is fully configurable through the config.json file located at mods/EliteEssentials/config.json.

Configuration File Location

mods/
  EliteEssentials/
    config.json

Reloading Configuration

After editing the configuration, apply changes with:

/eliteessentials reload

Complete Configuration Reference

General Settings

{
  "debug": false,
  "advancedPermissions": false
}
Option Type Default Description
debug boolean false Enable verbose debug logging
advancedPermissions boolean false Enable granular permission nodes (see Permissions)

debug

When set to true, EliteEssentials outputs detailed logging information to the server console. This is useful for troubleshooting issues but should be disabled in production to reduce log spam.

advancedPermissions

This setting controls how command access is determined:

When false (Default - Simple Mode):

  • Commands use simple access levels: "Everyone" or "Admin only"
  • All players can use basic commands (home, back, tpa, rtp, spawn, warp)
  • Admin commands require OP status or eliteessentials.admin.*
  • No permission plugin or setup required

When true (Advanced Mode):

  • Default permissions are disabled completely
  • Every command requires an explicit permission node to be granted
  • Players without permissions cannot use any commands (except admins)
  • You must configure permissions using Hytale's permission system or a permission management mod
  • Allows fine-grained control: different ranks can have different home limits, bypass cooldowns, access specific warps, etc.

Important: When enabling Advanced Mode, you must set up permissions for your players or they will lose access to all commands. See the Permissions page for the complete list of permission nodes to grant.

Random Teleport (RTP)

"rtp": {
  "enabled": true,
  "minRange": 100,
  "maxRange": 5000,
  "worldRanges": {},
  "cooldownSeconds": 30,
  "warmupSeconds": 3,
  "maxAttempts": 5,
  "minSurfaceY": 50,
  "chunkLoadTimeoutMs": 500,
  "defaultHeight": 128,
  "invulnerabilitySeconds": 5,
  "cost": 0.0
}
Option Type Default Description
enabled boolean true Enable/disable the /rtp command
minRange int 100 Minimum distance from center for random location
maxRange int 5000 Maximum distance from center for random location
worldRanges object {} Per-world RTP range overrides (see below)
cooldownSeconds int 30 Cooldown between uses (0 = no cooldown)
warmupSeconds int 3 Time player must stand still before teleport (0 = instant)
maxAttempts int 5 Maximum attempts to find a safe location
minSurfaceY int 50 Minimum Y level to accept (avoids caves/dungeons)
chunkLoadTimeoutMs int 500 Timeout for loading unloaded chunks (0 = skip)
defaultHeight int 128 Default Y height when chunk is not loaded
invulnerabilitySeconds int 5 Seconds of invulnerability after RTP (0 = disabled)
cost double 0.0 Cost to use this command (requires economy enabled)

Per-World RTP Ranges:

The worldRanges option allows you to set different min/max ranges for specific worlds. If a world is not listed, it uses the default minRange and maxRange values.

"rtp": {
  "minRange": 100,
  "maxRange": 5000,
  "worldRanges": {
    "explore": {"minRange": 500, "maxRange": 10000},
    "hub": {"minRange": 50, "maxRange": 500}
  }
}

In this example:

  • explore world: RTP range is 500-10000 blocks (larger exploration area)
  • hub world: RTP range is 50-500 blocks (smaller, contained area)
  • All other worlds: Use default 100-5000 blocks

Back Command

"back": {
  "enabled": true,
  "maxHistory": 5,
  "workOnDeath": true,
  "cooldownSeconds": 0,
  "warmupSeconds": 0,
  "cost": 0.0
}
Option Type Default Description
enabled boolean true Enable/disable the /back command
maxHistory int 5 Number of previous locations to remember
workOnDeath boolean true Save death location for /back
cooldownSeconds int 0 Cooldown between uses
warmupSeconds int 0 Warmup time before teleport
cost double 0.0 Cost to use this command (requires economy enabled)

Teleport Requests (TPA)

"tpa": {
  "enabled": true,
  "timeoutSeconds": 30,
  "warmupSeconds": 3,
  "cost": 0.0,
  "tpahereCost": 0.0
}
Option Type Default Description
enabled boolean true Enable/disable TPA commands
timeoutSeconds int 30 Seconds before request expires
warmupSeconds int 3 Warmup after accepting (requester must stand still)
cost double 0.0 Cost to use /tpa (requires economy enabled)
tpahereCost double 0.0 Cost to use /tpahere (requires economy enabled)

Homes

"homes": {
  "enabled": true,
  "maxHomes": 3,
  "defaultMaxHomes": 3,
  "cooldownSeconds": 0,
  "warmupSeconds": 3,
  "cost": 0.0,
  "setHomeCost": 0.0
}
Option Type Default Description
enabled boolean true Enable/disable home commands
maxHomes int 3 Maximum homes per player
defaultMaxHomes int 3 Default max for new players
cooldownSeconds int 0 Cooldown between /home uses
warmupSeconds int 3 Warmup time before teleport
cost double 0.0 Cost to teleport home (requires economy enabled)
setHomeCost double 0.0 Cost to set a home (requires economy enabled)

Permission-Based Home Limits:

In advanced permissions mode, you can set different home limits per group:

  • eliteessentials.command.home.limit.<number> - Set specific limit (e.g., .limit.10)
  • eliteessentials.command.home.limit.unlimited - Unlimited homes

The highest limit from the player's permissions is used.

Spawn

"spawn": {
  "enabled": true,
  "cooldownSeconds": 0,
  "warmupSeconds": 3,
  "perWorld": false,
  "mainWorld": "default",
  "cost": 0.0,
  "teleportOnFirstJoin": true,
  "teleportOnEveryLogin": false
}
Option Type Default Description
enabled boolean true Enable/disable the /spawn command
cooldownSeconds int 0 Cooldown between uses
warmupSeconds int 3 Warmup time before teleport
perWorld boolean false If false, always teleport to main world spawn; if true, teleport to current world's spawn
mainWorld string "default" Which world is the main world (used when perWorld=false)
cost double 0.0 Cost to use this command (requires economy enabled)
teleportOnFirstJoin boolean true Teleport new players to spawn on first join
teleportOnEveryLogin boolean false Teleport ALL players to spawn on every login

Spawn Protection

"spawnProtection": {
  "enabled": false,
  "radius": 50,
  "minY": -1,
  "maxY": -1,
  "disablePvp": true,
  "disableAllDamage": false
}
Option Type Default Description
enabled boolean false Enable/disable spawn protection
radius int 50 Protection radius in blocks (square area)
minY int -1 Minimum Y level to protect (-1 = no limit)
maxY int -1 Maximum Y level to protect (-1 = no limit)
disablePvp boolean true Disable PvP in spawn area
disableAllDamage boolean false Disable ALL damage in spawn area

Important: Spawn protection requires /setspawn to be used first. The protection area is centered on the spawn location set by an admin.

disableAllDamage: When enabled, players in the spawn area are completely invulnerable to all damage sources including fall damage, fire, drowning, mob attacks, and environmental damage.

Bypass Permission: eliteessentials.command.spawn.protection.bypass

Warps

"warps": {
  "enabled": true,
  "cooldownSeconds": 0,
  "warmupSeconds": 3,
  "maxWarps": -1,
  "cost": 0.0,
  "groupLimits": {
    "Admin": -1,
    "Owner": -1,
    "Moderator": 20,
    "VIP": 10,
    "Default": 5
  }
}
Option Type Default Description
enabled boolean true Enable/disable warp commands
cooldownSeconds int 0 Cooldown between /warp uses
warmupSeconds int 3 Warmup time before teleport
maxWarps int -1 Maximum warps that can be created (-1 = unlimited)
cost double 0.0 Cost to use /warp (requires economy enabled)
groupLimits object see below Per-group warp limits (advanced permissions mode)

Warp Limits:

  • maxWarps: Global limit for total warps. Set to -1 for unlimited.
  • groupLimits: Per-group limits when using advanced permissions mode. Players get the highest limit from their groups. Use -1 for unlimited.

Permission-based limits (Advanced Mode):

  • eliteessentials.command.warp.limit.<number> - Set specific limit
  • eliteessentials.command.warp.limit.unlimited - Unlimited warps

Sleep (Night Skip)

"sleep": {
  "enabled": true,
  "sleepPercentage": 50
}
Option Type Default Description
enabled boolean true Enable/disable sleep percentage feature
sleepPercentage int 50 Percentage of players needed to skip night (0-100)

Death Messages

"deathMessages": {
  "enabled": true,
  "showKiller": true,
  "showCause": true
}
Option Type Default Description
enabled boolean true Enable/disable death messages
showKiller boolean true Show killer name (player or mob)
showCause boolean true Show death cause (fall, fire, etc.)

Admin Commands

These commands are admin-only and support optional cooldowns that can be configured per-group using permissions.

God Mode

"god": {
  "enabled": true,
  "cooldownSeconds": 0
}

Heal

"heal": {
  "enabled": true,
  "cooldownSeconds": 0,
  "cost": 0.0
}

Fly

"fly": {
  "enabled": true,
  "cooldownSeconds": 0
}

Vanish

"vanish": {
  "enabled": true,
  "hideFromList": true,
  "hideFromMap": true,
  "mimicJoinLeave": true,
  "persistOnReconnect": true,
  "suppressJoinQuitMessages": true,
  "showReminderOnJoin": true
}
Option Type Default Description
enabled boolean true Enable/disable the /vanish command
hideFromList boolean true Hide vanished players from the Server Players list
hideFromMap boolean true Hide vanished players from the world map
mimicJoinLeave boolean true Send fake join/leave messages when vanishing/unvanishing
persistOnReconnect boolean true Keep vanish state across server restarts/reconnects
suppressJoinQuitMessages boolean true Suppress real join/quit messages for vanished players
showReminderOnJoin boolean true Show reminder to vanished players when they rejoin

Repair

"repair": {
  "enabled": true,
  "cooldownSeconds": 0
}

Clear Inventory

"clearInv": {
  "enabled": true,
  "cooldownSeconds": 0
}

Top

"top": {
  "enabled": true,
  "cooldownSeconds": 0,
  "cost": 0.0
}

Permission-Based Cooldowns:

In advanced permissions mode, you can set different cooldowns per group:

  • eliteessentials.command.misc.<cmd>.bypass.cooldown - Bypass cooldown entirely
  • eliteessentials.command.misc.<cmd>.cooldown.<seconds> - Set specific cooldown

Common cooldown values: 30, 60, 120, 180, 300, 600, 900, 1800, 3600 seconds

Economy

"economy": {
  "enabled": false,
  "currencyName": "coin",
  "currencyNamePlural": "coins",
  "currencySymbol": "$",
  "startingBalance": 0.0,
  "minPayment": 1.0,
  "baltopLimit": 10,
  "vaultUnlockedProvider": true,
  "useExternalEconomy": false
}
Option Type Default Description
enabled boolean false Enable/disable the economy system
currencyName string "coin" Singular currency name
currencyNamePlural string "coins" Plural currency name
currencySymbol string "$" Symbol shown before amounts
startingBalance double 0.0 Balance given to new players
minPayment double 1.0 Minimum amount for /pay command
baltopLimit int 10 Number of players shown in /baltop
vaultUnlockedProvider boolean true Register as VaultUnlocked economy provider
useExternalEconomy boolean false Use external economy via VaultUnlocked

VaultUnlocked Integration:

  • vaultUnlockedProvider: When true, other plugins can use EliteEssentials economy via VaultUnlocked API
  • useExternalEconomy: When true, EliteEssentials uses another plugin's economy (e.g., Ecotale). This disables /eco and /pay commands to avoid conflicts.

Economy API: Other mods can integrate with EliteEssentials economy using the public API at com.eliteessentials.api.EconomyAPI:

if (EconomyAPI.isEnabled()) {
    double balance = EconomyAPI.getBalance(playerUUID);
    if (EconomyAPI.has(playerUUID, 100.0)) {
        EconomyAPI.withdraw(playerUUID, 100.0);
    }
    EconomyAPI.deposit(playerUUID, 50.0);
    EconomyAPI.transfer(fromUUID, toUUID, 25.0);
    String formatted = EconomyAPI.format(100.0); // "$100.00"
}

Mail

"mail": {
  "enabled": true,
  "maxMailPerPlayer": 50,
  "maxMessageLength": 500,
  "sendCooldownSeconds": 30,
  "notifyOnLogin": true,
  "notifyDelaySeconds": 3
}
Option Type Default Description
enabled boolean true Enable/disable the mail system
maxMailPerPlayer int 50 Maximum mail messages per player mailbox
maxMessageLength int 500 Maximum message length in characters
sendCooldownSeconds int 30 Cooldown between sending mail to the same player
notifyOnLogin boolean true Show notification on login if player has unread mail
notifyDelaySeconds int 3 Delay before showing mail notification on login

PlayTime Rewards

"playTimeRewards": {
  "enabled": false,
  "checkIntervalMinutes": 1,
  "showRewardMessage": true,
  "broadcastMilestones": true,
  "onlyCountNewPlaytime": true,
  "enabledTimestamp": 0
}
Option Type Default Description
enabled boolean false Enable/disable the playtime rewards system
checkIntervalMinutes int 1 How often to check for reward eligibility
showRewardMessage boolean true Show message when player receives a reward
broadcastMilestones boolean true Broadcast milestone rewards to all players
onlyCountNewPlaytime boolean true Only count playtime after system was enabled
enabledTimestamp long 0 Auto-set when system first starts

Reward Configuration: Rewards are configured in mods/EliteEssentials/playtime_rewards.json:

[
  {
    "id": "hourly_bonus",
    "name": "Hourly Bonus",
    "minutesRequired": 60,
    "repeatable": true,
    "enabled": true,
    "message": "&a[Reward] &fYou received your hourly playtime bonus!",
    "commands": ["eco add {player} 100"]
  },
  {
    "id": "100h_vip",
    "name": "100 Hour VIP",
    "minutesRequired": 6000,
    "repeatable": false,
    "enabled": true,
    "message": "&d[Milestone] &f100 hours played! You've earned VIP status!",
    "commands": [
      "lp user {player} group set vip",
      "eco add {player} 5000"
    ]
  }
]

Supported Commands:

  • Economy: eco add/remove/set {player} <amount>
  • LuckPerms: lp user {player} group set/add/remove <group>
  • LuckPerms: lp user {player} permission set/unset <perm>
  • LuckPerms: lp user {player} promote/demote <track>

Group Chat

"groupChat": {
  "enabled": true
}

Chat channels are configured in mods/EliteEssentials/groupchat.json:

[
  {
    "groupName": "admin",
    "displayName": "Admin Chat",
    "prefix": "[ADMIN]",
    "color": "#f85149",
    "enabled": true,
    "requiresGroup": true
  },
  {
    "groupName": "trade",
    "displayName": "Trade Chat",
    "prefix": "[TRADE]",
    "color": "#f0c674",
    "enabled": true,
    "requiresGroup": false
  }
]
  • requiresGroup: true - Requires LuckPerms group membership
  • requiresGroup: false - Requires eliteessentials.chat.<chatname> permission

Chat Format

"chatFormat": {
  "enabled": true,
  "allowPlayerColors": false,
  "allowPlayerFormatting": false,
  "groupFormats": {
    "Owner": "&4[Owner] {player}&r: {message}",
    "Admin": "&c[Admin] {player}&r: {message}",
    "VIP": "&6[VIP] {player}&r: {message}",
    "Default": "&7{player}&r: {message}"
  },
  "groupPriorities": {
    "Owner": 100,
    "Admin": 90,
    "VIP": 50,
    "Default": 0
  },
  "defaultFormat": "&7{player}&r: {message}"
}
Option Type Default Description
enabled boolean true Enable/disable group-based chat formatting
allowPlayerColors boolean false Allow regular players to use color codes in chat
allowPlayerFormatting boolean false Allow regular players to use formatting codes
groupFormats object see above Chat format per group
groupPriorities object see above Priority order (highest wins)
defaultFormat string see above Default format if no group matches

Chat Permissions (Advanced Mode):

  • eliteessentials.chat.color - Use color codes in chat
  • eliteessentials.chat.format - Use formatting codes in chat

See Chat Formatting for detailed documentation.

MOTD (Message of the Day)

"motd": {
  "enabled": true,
  "showOnJoin": true,
  "delaySeconds": 1,
  "serverName": "Our Server"
}

MOTD content is configured in mods/EliteEssentials/motd.json:

{
  "lines": [
    "&e&lWelcome to {server}, {player}!",
    "&7There are &a{playercount}&7 players online."
  ],
  "worldMotds": {
    "explore": {
      "enabled": true,
      "showAlways": false,
      "lines": ["&a=== Welcome to Explore! ==="]
    }
  }
}

Per-World MOTDs:

  • showAlways: true - Shows every time player enters the world
  • showAlways: false - Shows only once per session

Join Messages

"joinMsg": {
  "joinEnabled": true,
  "quitEnabled": true,
  "firstJoinEnabled": true,
  "suppressDefaultMessages": true,
  "worldChangeEnabled": false
}
Option Type Default Description
joinEnabled boolean true Enable join messages
quitEnabled boolean true Enable quit messages
firstJoinEnabled boolean true Enable first join broadcast
suppressDefaultMessages boolean true Suppress default Hytale join messages
worldChangeEnabled boolean false Broadcast world change messages

Auto Broadcast

"autoBroadcast": {
  "enabled": true
}

Broadcasts are configured in mods/EliteEssentials/autobroadcast.json:

{
  "broadcasts": [
    {
      "id": "discord",
      "enabled": true,
      "intervalSeconds": 600,
      "prefix": "",
      "random": false,
      "requirePlayers": true,
      "messages": [
        "&5&l[Discord]&7 - Join us!\n&bhttps://discord.gg/YourInvite"
      ]
    }
  ]
}

Command Aliases

"aliases": {
  "enabled": true
}

Aliases are stored in mods/EliteEssentials/aliases.json:

{
  "explore": {
    "command": "warp explore",
    "permission": "everyone",
    "silent": true
  }
}
  • silent: true - Suppresses teleport confirmation messages

Command Costs

EliteEssentials supports charging players for using commands when the economy system is enabled.

Supported Commands

Command Config Path Description
/home homes.cost Cost to teleport home
/sethome homes.setHomeCost Cost to set a home
/spawn spawn.cost Cost to teleport to spawn
/warp warps.cost Cost to use a warp
/back back.cost Cost to return to previous location
/rtp rtp.cost Cost for random teleport
/tpa tpa.cost Cost to send a teleport request
/tpahere tpa.tpahereCost Cost to request someone teleport to you
/heal heal.cost Cost to heal
/top top.cost Cost to teleport to top

Permission-Based Costs

In advanced permissions mode, set different costs per group:

# Default players pay 50 for RTP
/lp group default permission set eliteessentials.cost.rtp.50 true

# VIP players pay only 10 for RTP
/lp group vip permission set eliteessentials.cost.rtp.10 true

# Premium players get free warps
/lp group premium permission set eliteessentials.cost.warp.0 true

Bypass Permissions

  • eliteessentials.bypass.cost - Bypass all command costs
  • eliteessentials.bypass.cost.<command> - Bypass cost for specific command

Example Configurations

Survival Server (Balanced)

{
  "advancedPermissions": false,
  "rtp": {
    "enabled": true,
    "minRange": 500,
    "maxRange": 10000,
    "cooldownSeconds": 300,
    "warmupSeconds": 5
  },
  "homes": {
    "maxHomes": 3,
    "warmupSeconds": 5
  },
  "tpa": {
    "timeoutSeconds": 60,
    "warmupSeconds": 5
  }
}

Creative/Build Server (Relaxed)

{
  "advancedPermissions": false,
  "rtp": {
    "cooldownSeconds": 0,
    "warmupSeconds": 0
  },
  "homes": {
    "maxHomes": 10,
    "warmupSeconds": 0
  },
  "tpa": {
    "warmupSeconds": 0
  }
}

Hardcore Server (Restrictive)

{
  "advancedPermissions": true,
  "rtp": {
    "enabled": false
  },
  "back": {
    "workOnDeath": false,
    "cooldownSeconds": 600
  },
  "homes": {
    "maxHomes": 1,
    "cooldownSeconds": 300,
    "warmupSeconds": 10
  }
}

Configuration Migration

When updating EliteEssentials, your existing configuration is preserved. New options are automatically added with their default values. You do not need to recreate your config file when updating.

Clone this wiki locally