Skip to content

📚 Tutorials

This page provides step-by-step tutorials for common configuration tasks in EssentialsPlus.

Placeholder System

EssentialsPlus provides two types of placeholders for displaying dynamic information in messages, chat formats, MOTD, and other text outputs.

Two Types of Placeholders

1. Built-in Placeholders (Direct Implementation)

These placeholders are directly implemented in EssentialsPlus and work without any additional mods. They can be used in all EssentialsPlus features like MOTD, chat formats, custom commands, broadcasts, and more.

Format: {placeholder}

PlaceholderDescriptionExample Output
{player}Player's usernameF_o_F_1092
{uuid}Player's UUIDc3f13aae-432d-4627-9892-e8901144c63b
{group}Player's GroupAdventure
{world}Player's current world namedefault
{x}Player's X coordinate (integer)125
{y}Player's Y coordinate (integer)64
{z}Player's Z coordinate (integer)-230
{online}Current online player count15
{time}Current time14:30:45
{date}Current date2026-02-20

Usage Example:

json
"motd": {
  "messages": [
    "Welcome, {player}!",
    "You are at {x}, {y}, {z} in {world}",
    "Players online: {online}"
  ]
}

2. PlaceholderAPI Placeholders (Requires External Mod)

These placeholders require the PlaceholderAPI-Hytale mod to be installed. Once installed, these placeholders work in both EssentialsPlus and any other mod that supports PlaceholderAPI.

Format: %placeholder% or {placeholder} (both formats supported when PlaceholderAPI is installed)

Benefits of using PlaceholderAPI:

  • Use EssentialsPlus data in other mods (scoreboards, TAB lists, etc.)
  • Use placeholders from other mods within EssentialsPlus texts
  • Standardized placeholder system across multiple mods

Requirements:

Available PlaceholderAPI Placeholders

Economy Placeholders

PlaceholderDescriptionExample Output
%essentialsplus_player_balance%Raw balance number12345.67
%essentialsplus_player_balance_formatted%Formatted with currency12,345.67 $

Usage Example:

yaml
# In your TAB plugin or scoreboard
balance: "&eBalance: &f%essentialsplus_player_balance_formatted%"

Time Information Placeholders

PlaceholderDescriptionExample Output
%essentialsplus_player_first_join%First join date15.01.2026 14:30
%essentialsplus_player_last_join%Last join date03.02.2026 18:45
%essentialsplus_player_playtime%Total playtime5h30m45s
%essentialsplus_player_session_time%Current session time1h15m

Usage Example:

yaml
# In your scoreboard
playtime: "Playtime: %essentialsplus_player_playtime%"
session: "Session: %essentialsplus_player_session_time%"

Home System Placeholders

PlaceholderDescriptionExample Output
%essentialsplus_player_homes_count%Number of homes3
%essentialsplus_player_homes_max%Max homes allowed5 or unlimited
%essentialsplus_player_homes_1%Name of 1st homebase
%essentialsplus_player_homes_2%Name of 2nd homefarm
%essentialsplus_player_homes_1_world%World of 1st homeworld-uuid
%essentialsplus_player_homes_1_x%X coordinate of 1st home125.50
%essentialsplus_player_homes_1_y%Y coordinate of 1st home64.00
%essentialsplus_player_homes_1_z%Z coordinate of 1st home-230.75

Usage Example:

yaml
# In your scoreboard
homes: "Homes: %essentialsplus_player_homes_count%&7/&f%essentialsplus_player_homes_max%"
home1: "1. %essentialsplus_player_homes_1%"
home2: "2. %essentialsplus_player_homes_2%"

Note: Home indices are 1-based (start at 1, not 0). If a home doesn't exist at the specified index, the placeholder returns null.

Status Placeholders

PlaceholderDescriptionExample Output
%essentialsplus_player_is_muted%Is player mutedtrue / false
%essentialsplus_player_is_frozen%Is player frozentrue / false
%essentialsplus_player_is_vanished%Is player vanishedtrue / false
%essentialsplus_player_is_flying%Is player flyingtrue / false
%essentialsplus_player_is_afk%Is player AFKtrue / false
%essentialsplus_player_afk_tag%Shows AFK tag[AFK] or empty
%essentialsplus_player_afk_time%Time player has been AFK5m 30s
%essentialsplus_player_ip%Player's current IP address192.168.1.100

Usage Example:

yaml
# Conditional display based on status
muted: "%essentialsplus_player_is_muted%"
# You can use this with conditional placeholders like:
# {essentialsplus_player_is_muted:&cMUTED:}

# Display AFK tag in TAB list
tab_format: "%essentialsplus_player_afk_tag% %player_name%"

# Show AFK time
afk_time: "AFK: &e%essentialsplus_player_afk_time%"

# Show IP address (admin only usage)
ip_info: "IP: %essentialsplus_player_ip%"

Mail System Placeholders

PlaceholderDescriptionExample Output
%essentialsplus_player_mail_unread_count%Number of unread mails3
%essentialsplus_player_mail_total_count%Total mails in inbox15
%essentialsplus_player_mail_inbox_count%Mails in inbox (same as total)15
%essentialsplus_player_mail_sent_count%Number of sent mails8

Usage Example:

yaml
# Show unread mail count in TAB list
tab_format: "&e%essentialsplus_player_mail_unread_count% &7unread mails"

# Display in scoreboard
mail_info: "&eMails: &f%essentialsplus_player_mail_unread_count%&7/&f%essentialsplus_player_mail_total_count%"

# Show sent mail count
sent_mails: "&7Sent: &f%essentialsplus_player_mail_sent_count%"

Ignore System Placeholders

PlaceholderDescriptionExample Output
%essentialsplus_player_ignore_count%Number of ignored players2
%essentialsplus_player_ignore_list%Comma-separated list of ignored playersPlayer1, Player2

Usage Example:

yaml
# Show ignore count
ignore_info: "Ignoring: &c%essentialsplus_player_ignore_count% players"

# Show full list (for GUIs or admin info)
ignore_list: "&7Ignored: &f%essentialsplus_player_ignore_list%"

Note: Ignore placeholders return 0 and empty string respectively if the ignore system is disabled or no players are ignored.

Server Statistics Placeholders

PlaceholderDescriptionExample Output
%essentialsplus_server_homes_total%Total homes on server1523
%essentialsplus_server_warps_total%Total warps on server12
%essentialsplus_server_kits_total%Total kits on server8
%essentialsplus_server_players_total%Total registered players456
%essentialsplus_server_afk_total%Number of AFK players online3
%essentialsplus_server_afk_percentage%Percentage of AFK players20%

Usage Example:

yaml
# In your server info scoreboard
total_homes: "Total Homes: %essentialsplus_server_homes_total%"
total_warps: "Total Warps: %essentialsplus_server_warps_total%"

# Display AFK statistics
afk_stats: "AFK Players: &e%essentialsplus_server_afk_total% (%essentialsplus_server_afk_percentage%)"

MOTD Example

Here's a complete example of a MOTD (Message of the Day) using EssentialsPlus placeholders.

In your config.json, configure the MOTD section:

json
"motd": {
  "enabled": true,
  "messages": [
    "",
    "<#FFAA00>Welcome to the server, </#FFAA00><#FFFFFF>{player}</#FFFFFF><#FFAA00>!</#FFAA00>",
    "<#55FF55>Balance: </#55FF55><#FFFFFF>%essentialsplus_player_balance_formatted%</#FFFFFF>",
    "<#5555FF>Playtime: </#5555FF><#FFFFFF>%essentialsplus_player_playtime%</#FFFFFF>",
    "<#FFFF55>Homes: </#FFFF55><#FFFFFF>%essentialsplus_player_homes_count%/%essentialsplus_player_homes_max%</#FFFFFF>",
    "<#FF55FF>Session: </#FF55FF><#FFFFFF>%essentialsplus_player_session_time%</#FFFFFF>",
    "<#FFAA00>Join our Discord: <#55FFFF>discord.gg/yourserver</#55FFFF></#FFAA00>",
    ""
  ]
}

What players see when they join:

Welcome to the server, PlayerName!
Balance: 12,345.67 $
Playtime: 5h30m45s
Homes: 3/5
Session: 0h2m15s
Join our Discord: discord.gg/yourserver

Available placeholders for MOTD:

  • Built-in placeholders ({player}, {world}, etc.) - Always work, no additional mod needed
  • PlaceholderAPI placeholders (%essentialsplus_..% or {essentialsplus_..}) - Requires PlaceholderAPI-Hytale mod
  • Mix both types freely in your messages
  • Supports full color formatting with hex colors and gradients

Chat Format Example

EssentialsPlus has a built-in chat system with group-based formatting. Configure it in your config.json:

Using placeholders in chat formats:

json
"groups": {
  "vip": "<#e89d1f>[VIP] <#55FF55>[%essentialsplus_player_balance_formatted%]</#55FF55> {player}:</#e89d1f> <#AAAAAA>{message}</#AAAAAA>"
}

Output examples:

  • VIP with balance: [VIP] [1,234.56 $] Alex: Check out my base!

Troubleshooting

Built-in placeholder shows as text ({player}, {world}, etc.):

  • These should always work - check for typos in the placeholder name
  • Ensure you're using the correct format: {placeholder} (with curly braces)

PlaceholderAPI placeholder shows as text (%essentialsplus_...%):

  • Verify PlaceholderAPI-Hytale is installed
  • Check that EssentialsPlus is version 1.14.0+
  • Restart the server after installing PlaceholderAPI-Hytale
  • Try both formats: %placeholder% or {placeholder}

Placeholder returns null:

  • For home placeholders: Ensure the home index exists
  • For user data: Ensure the player has joined the server at least once
  • For server stats: Verify the managers are loaded correctly

Values not updating:

  • Most placeholders update in real-time
  • Playtime and session time update every use
  • Balance updates immediately after transactions
  • AFK time updates in real-time when placeholder is requested

Additional Resources