> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rpg-leveling.zuxaw.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Level display in chat formatting (Essentials Plus)

> Show player level (and class) in Essentials Plus chat - config.json, chat.groups, %rpglevelling_*% with {player} and {message}.

# Level display in chat formatting (Essentials Plus)

This guide targets **[Essentials Plus](https://www.curseforge.com/hytale/mods/essentials-plus)** by **[fof1092](https://www.curseforge.com/members/fof1092)** on CurseForge, together with **RPG Leveling**. You will show **level** and **class** beside the player’s name in global chat.

Essentials Plus stores its main file at **`mods/fof1092_EssentialsPlus/config.json`**. Chat formats live under **`chat`** → **`groups`** (per permission group). See the official [configuration overview](https://fof1092.com/hytale/essentials-plus/configuration.html) and **`chat.groups`** in [config.json](https://fof1092.com/hytale/essentials-plus/configuration/config.html).

For the **full list of RPG tokens** and troubleshooting, see [Chat placeholders](chat-placeholders).

***

## Prerequisites

* **RPG Leveling** on the server.
* **[Placeholder API](https://www.curseforge.com/hytale/mods/placeholder-api)** - so **`%rpglevelling_*%`** in **`chat.groups`** strings are resolved (Essentials Plus uses that pipeline for percent placeholders).
* **Essentials Plus** with **custom chat** enabled (`chat.enabled`).

***

## 1. Open Essentials Plus chat config

1. Stop the server (or edit offline and restart).
2. Open **`mods/fof1092_EssentialsPlus/config.json`**.\
   (If the folder name differs slightly by build, look under **`mods/`** for the Essentials Plus data directory that contains **`config.json`**.)

***

## 2. Turn on group chat formats

In **`config.json`**, find the **`chat`** object and set:

```json theme={null}
"chat": {
  "enabled": true,
  "groups": { }
}
```

If **`enabled`** is `false`, Essentials Plus will not apply your per-group formats and RPG tokens in those strings will not be used for global chat the same way.

***

## 3. Placeholders: Essentials Plus + RPG Leveling

* **Essentials Plus** uses **`{player}`** for the display name and **`{message}`** for the chat body (see their docs for any extra placeholders).
* **RPG Leveling** registers **`rpglevelling`** with PlaceholderAPI for **`%rpglevelling_*%`**; **`{rpglevelling_*}`** and **`Message`** patching are described in [Chat placeholders](chat-placeholders).

**Example** - same visual style as a typical VIP / Admin / Default setup, with **Lv.** + **class** before the gradient name:

```json theme={null}
"chat": {
  "enabled": true,
  "groups": {
    "VIP": "<#e89d1f><bold>[<#FFFFFF>VIP</#FFFFFF>] <#CCCCCC>Lv.%rpglevelling_level% %rpglevelling_class%</#CCCCCC> <gradient:#e89d1f:#e4e95d:#e89d1f>{player}</gradient>: </bold></#e89d1f><#AAAAAA>{message}</#AAAAAA>",
    "Admin": "<#FF5555><bold>[<#FFFFFF>Admin</#FFFFFF>] <#CCCCCC>Lv.%rpglevelling_level% %rpglevelling_class%</#CCCCCC> {player}: </bold></#FF5555><#AAAAAA>{message}</#AAAAAA>",
    "Default": "<#00AA00><bold>[<#FFFFFF>Player</#FFFFFF>] <#CCCCCC>Lv.%rpglevelling_level% %rpglevelling_class%</#CCCCCC> {player}: </bold></#00AA00><#AAAAAA>{message}</#AAAAAA>"
  }
}
```

* **`Lv.%rpglevelling_level%`** - level number after “Lv.”.
* **`%rpglevelling_class%`** - localized class name (may be empty if no class is selected).

**Group keys** (`VIP`, `Admin`, `Default`, …) must match your **permission groups** exactly (case-sensitive), as in Essentials Plus’ own docs.

***

## 4. Spell RPG tokens correctly

Use **`rpglevelling`** with **two `l`** characters:

* Correct: `%rpglevelling_level%`, `%rpglevelling_class%`
* Wrong: `%rpgleveling_level%` (single `l`) - will **not** be replaced.

Matching is **case-insensitive** (`%RPGLEVELLING_LEVEL%` is fine).

***

## 5. Class token empty?

If **`%rpglevelling_class%`** is blank, the player has **no class selected** in the RPG Leveling **Stats GUI** (Classes tab). After they pick a class, the next chat line will show it.

***

## 6. Other tokens

You can also use XP and tier tokens in the same string, for example:

* `%rpglevelling_xp_to_next%`
* `%rpglevelling_class_tier%`

See the table in [Chat placeholders](chat-placeholders).

***

## 7. Apply changes

Save **`config.json`**, then run **`/essentialsplus reload`** (or restart the server). Essentials Plus documents hot reload for **`config.json`** on their [configuration](https://fof1092.com/hytale/essentials-plus/configuration.html) page.

***

## Migrating from Essentials Core

If you previously used **[Essentials Core](https://www.curseforge.com/hytale/mods/essentials-core)** (`com.nhulston_Essentials` / **`config.toml`**):

* Config file is now **`config.json`** under **`fof1092_EssentialsPlus`**.
* Replace **`%player%`** / **`%message%`** with **`{player}`** / **`{message}`** in format strings.
* **`%rpglevelling_*%`** tokens from RPG Leveling are unchanged.
