Skip to content

Configuration

elitescouter edited this page Jan 24, 2026 · 24 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,
  "cooldownSeconds": 30,
  "warmupSeconds": 3,
  "maxAttempts": 10,
  "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
cooldownSeconds int 30 Cooldown between uses (0 = no cooldown)
warmupSeconds int 3 Time player must stand still before teleport (0 = instant)
maxAttempts int 10 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)

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)

Spawn

"spawn": {
  "enabled": true,
  "cooldownSeconds": 0,
  "warmupSeconds": 3,
  "perWorld": false,
  "mainWorld": "default",
  "cost": 0.0
}
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)

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 (fall, fire, drowning, etc.)

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. This is useful for spawn areas where you want players to be completely safe.

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

Economy

"economy": {
  "enabled": false,
  "currencyName": "coin",
  "currencyNamePlural": "coins",
  "currencySymbol": "$",
  "startingBalance": 0.0,
  "minPayment": 1.0,
  "baltopLimit": 10
}
Option Type Default Description
enabled boolean false Enable/disable the economy system
currencyName string "coin" Singular currency name (e.g., "1 coin")
currencyNamePlural string "coins" Plural currency name (e.g., "5 coins")
currencySymbol string "$" Symbol shown before amounts (e.g., "$100")
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

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

// Check if economy is available
if (EconomyAPI.isEnabled()) {
    // Get player balance
    double balance = EconomyAPI.getBalance(playerUUID);
    
    // Check if player can afford something
    if (EconomyAPI.has(playerUUID, 100.0)) {
        // Withdraw money
        EconomyAPI.withdraw(playerUUID, 100.0);
    }
    
    // Deposit money
    EconomyAPI.deposit(playerUUID, 50.0);
    
    // Transfer between players
    EconomyAPI.transfer(fromUUID, toUUID, 25.0);
    
    // Format amount with currency symbol
    String formatted = EconomyAPI.format(100.0); // "$100.00"
}

Discord

"discord": {
  "enabled": true
}
Option Type Default Description
enabled boolean true Enable/disable the /discord command

Configuration: The discord content is configured in mods/EliteEssentials/discord.json. Edit this file to customize your server's discord information. URLs are automatically made clickable.

MOTD (Message of the Day)

"motd": {
  "enabled": true,
  "showOnJoin": true,
  "delaySeconds": 1,
  "serverName": "Our Server"
}
Option Type Default Description
enabled boolean true Enable/disable MOTD display
showOnJoin boolean true Show MOTD automatically when player joins server
delaySeconds int 1 Delay before showing MOTD on join (0 = instant)
serverName string "Our Server" Server name for {server} placeholder

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

Example motd.json:

{
  "lines": [
    "",
    "&6&l========================================",
    "&b&l     Welcome to {server}, &f{player}&b&l!",
    "&6&l========================================",
    "",
    "&7There are &e{playercount} &7players online.",
    "&7You are in world &a{world}&7.",
    "",
    "&6&l> &eServer Resources:",
    "  &7* Type &a/help&7 for commands",
    "  &7* Type &a/rules&7 for rules",
    ""
  ],
  "worldMotds": {
    "explore": {
      "enabled": true,
      "showAlways": false,
      "lines": [
        "",
        "&a&l=== Welcome to Explore! ===",
        "&7This is the exploration world.",
        "&7Be careful out there, &f{player}&7!",
        ""
      ]
    }
  }
}

Global MOTD:

  • The lines array is the global MOTD shown when players first join the server
  • Only shows on initial server connection, NOT when changing worlds

Per-World MOTDs:

  • Configure unique MOTDs for specific worlds in the worldMotds section
  • Each world entry has:
    • enabled - Enable/disable this world's MOTD
    • showAlways - When true, shows every time player enters the world; when false, shows only once per session (first time entering)
    • lines - Array of message lines to display

Placeholders:

  • {player} - Player's name
  • {server} - Server name from config
  • {world} - Current world name
  • {playercount} - Number of online players

Color Codes: All standard color codes are supported: &0-9, &a-f, &l (bold), &o (italic), &r (reset)

Auto Broadcast

"autoBroadcast": {
  "enabled": true
}
Option Type Default Description
enabled boolean true Enable/disable the auto broadcast system

Configuration: Auto broadcasts are configured in mods/EliteEssentials/autobroadcast.json. This file contains an array of broadcast groups, each with their own settings.

Example autobroadcast.json:

{
  "broadcasts": [
    {
      "id": "discord",
      "enabled": true,
      "intervalSeconds": 600,
      "prefix": "",
      "random": false,
      "requirePlayers": true,
      "messages": [
        "&5&l[Discord]&7 - &fJoin our community!\n&7Chat, updates, events & support.\n&bhttps://discord.gg/YourInvite",
        "&6&l[Tip]&7 - &fNeed help getting started?\n&7Check out our commands with &e/help\n&7Set your home with &e/sethome"
      ]
    }
  ]
}

Broadcast Options:

Option Type Default Description
id string required Unique identifier for this broadcast group
enabled boolean true Enable/disable this specific broadcast
intervalSeconds int 600 Seconds between broadcasts
prefix string "" Prefix added before each message (supports color codes)
random boolean false If true, picks random message; if false, cycles sequentially
requirePlayers boolean true Only broadcast when players are online
messages array required Array of messages to broadcast

Multi-line Messages: Use \n within a message string to create multiple lines:

"messages": [
  "&5&l[Discord]&7 - &fJoin our community!\n&7Chat, updates & support.\n&bhttps://discord.gg/YourInvite"
]

Color Codes: All standard color codes are supported: &0-9, &a-f, &l (bold), &o (italic), &r (reset)

Clickable URLs: URLs starting with http:// or https:// are automatically made clickable.

Messages (Localization)

All player-facing messages can be customized in the messages section. See Placeholders for available placeholders.

"messages": {
  "prefix": "[EliteEssentials] ",
  "noPermission": "You don't have permission to use this command.",
  "playerNotFound": "Player not found.",
  "commandDisabled": "This command is disabled.",
  "onCooldown": "You must wait {seconds} seconds before using this command again.",
  "warmupStarted": "Teleporting in {seconds} seconds. Don't move!",
  "warmupCancelled": "Teleport cancelled - you moved!",
  "warmupCountdown": "Teleporting in {seconds}..."
}

See the Placeholders page for a complete list of all configurable messages and their placeholders.

Example Configurations

Survival Server (Balanced)

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

Creative/Build Server (Relaxed)

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

Hardcore Server (Restrictive)

{
  "debug": false,
  "advancedPermissions": true,
  "rtp": {
    "enabled": false
  },
  "back": {
    "enabled": true,
    "workOnDeath": false,
    "cooldownSeconds": 600
  },
  "homes": {
    "enabled": true,
    "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.

Command Costs

EliteEssentials supports charging players for using commands when the economy system is enabled. This allows server owners to create an economy sink and add value to their currency.

How It Works

  1. Enable the economy system in config: "economy": { "enabled": true }
  2. Set costs for individual commands (default is 0.0 = free)
  3. Players are charged when they execute the command
  4. Admins and players with bypass permissions are not charged

Supported Commands

The following commands support costs:

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

Example Configuration

{
  "economy": {
    "enabled": true,
    "currencyName": "coin",
    "currencyNamePlural": "coins",
    "startingBalance": 100.0
  },
  "homes": {
    "cost": 5.0,
    "setHomeCost": 25.0
  },
  "rtp": {
    "cost": 10.0
  },
  "spawn": {
    "cost": 0.0
  }
}

Bypass Permissions

In advanced permissions mode, players can bypass costs with:

  • eliteessentials.bypass.cost - Bypass all command costs
  • eliteessentials.bypass.cost.<command> - Bypass cost for specific command (e.g., eliteessentials.bypass.cost.home)

Admins automatically bypass all costs.

Command Aliases

Command aliases are stored in mods/EliteEssentials/aliases.json. You can create aliases using the /alias command, but some options like silent mode must be configured by editing the file directly.

aliases.json Structure

{
  "explore": {
    "command": "warp explore",
    "permission": "everyone",
    "silent": false
  },
  "hub": {
    "command": "warp spawn",
    "permission": "everyone",
    "silent": true
  }
}
Field Type Default Description
command string required The command to execute (without leading /)
permission string "everyone" "everyone", "op", or custom permission node
silent boolean false Suppress teleport confirmation messages

Silent Mode

When silent: true is set on an alias:

  • The initial warmup message ("Teleporting to warp 'X' in Y seconds...") is hidden
  • The warmup countdown messages (3... 2... 1...) still display so players know something is happening
  • The final confirmation message ("Teleported to warp 'X'") is hidden

This is useful when combined with per-world MOTDs that provide context about the destination instead of generic teleport messages.

Example Use Case: You have a /explore alias that warps to the "explore" world, and that world has a per-world MOTD configured. With silent mode, players see:

  1. Teleporting in 3... 2... 1... (countdown)
  2. teleport happens
  3. World MOTD displays with welcome message

Instead of:

  1. Teleporting to warp 'explore' in 3 seconds... Stand still!
  2. Teleporting in 3... 2... 1...
  3. teleport happens
  4. Teleported to warp 'explore'
  5. World MOTD displays

Clone this wiki locally