Skip to content

Chat Formatting

elitescouter edited this page Jan 29, 2026 · 5 revisions

Chat Formatting

EliteEssentials provides a powerful group-based chat formatting system that allows you to customize how chat messages appear based on player groups. This works seamlessly with both LuckPerms and the simple permission system.

Quick Reference: Color Codes

EliteEssentials uses & followed by a code for colors and formatting. These work in:

  • Chat formatting (group prefixes and messages)
  • MOTD (Message of the Day)
  • Rules
  • Broadcast messages
  • Join messages

Colors: &0 Black, &1 Dark Blue, &2 Dark Green, &3 Dark Aqua, &4 Dark Red, &5 Dark Purple, &6 Gold, &7 Gray, &8 Dark Gray, &9 Blue, &a Green, &b Aqua, &c Red, &d Light Purple, &e Yellow, &f White

Hex Colors (NEW!): Use &#RRGGBB for precise colors. Example: &#FF5500 for orange.

  • Per-character gradients: &#FF0000H&#FF5500e&#FFAA00l&#FFFF00l&#AAFF00o
  • Mix with standard codes: &#FF0000Red &aGreen &#0000FFBlue

Formatting: &l Bold, &o Italic, &r Reset (back to normal)

Examples:

  • &cRed text - Red text
  • &l&6Bold gold text - Bold gold text
  • &a[&lVIP&r&a] {player} - Green VIP tag with bold VIP text

Note: Unicode symbols (★, ✦, →, etc.) are NOT supported in Hytale chat. Use only alphanumeric characters and basic punctuation.

Overview

The chat formatting system allows you to:

  • Define custom chat formats for different player groups
  • Use color codes and formatting
  • Set priorities when players belong to multiple groups
  • Support both LuckPerms groups and simple OP/Admin permissions
  • Easily add new custom groups

Configuration

Chat formatting is configured in mods/EliteEssentials/config.json under the chatFormat section:

{
  "chatFormat": {
    "enabled": true,
    "groupFormats": {
      "Owner": "&4[Owner] {player}&r: {message}",
      "Admin": "&c[Admin] {player}&r: {message}",
      "Moderator": "&9[Mod] {player}&r: {message}",
      "OP": "&c[OP] {player}&r: {message}",
      "VIP": "&6[VIP] {player}&r: {message}",
      "Player": "&a{player}&r: {message}",
      "Default": "&7{player}&r: {message}"
    },
    "groupPriorities": {
      "Owner": 100,
      "Admin": 90,
      "Moderator": 80,
      "OP": 75,
      "VIP": 50,
      "Player": 10,
      "Default": 0
    },
    "defaultFormat": "&7{player}&r: {message}"
  }
}

Group Formats

The groupFormats section defines the chat format for each group. The format string supports:

Placeholders

Placeholder Description Example
{player} Player's username Steve
{displayname} Player's display name (for future nickname support) Steve
{message} The actual chat message Hello everyone!

Color Codes

Use & followed by a code for colors and formatting:

Code Color/Format Hex Value Example
&0 Black #000000 &0Black text
&1 Dark Blue #0000AA &1Dark blue text
&2 Dark Green #00AA00 &2Dark green text
&3 Dark Aqua #00AAAA &3Dark aqua text
&4 Dark Red #AA0000 &4Dark red text
&5 Dark Purple #AA00AA &5Dark purple text
&6 Gold #FFAA00 &6Gold text
&7 Gray #AAAAAA &7Gray text
&8 Dark Gray #555555 &8Dark gray text
&9 Blue #5555FF &9Blue text
&a Green #55FF55 &aGreen text
&b Aqua #55FFFF &bAqua text
&c Red #FF5555 &cRed text
&d Light Purple #FF55FF &dLight purple text
&e Yellow #FFFF55 &eYellow text
&f White #FFFFFF &fWhite text
&l Bold - &lBold text
&o Italic - &oItalic text
&r Reset - &cRed&r Normal
&#RRGGBB Hex Color Any &#FF5500Orange text

Hex Color Support (NEW!): Use &#RRGGBB format for any RGB color:

  • &#FF0000 = Pure Red
  • &#00FF00 = Pure Green
  • &#0000FF = Pure Blue
  • &#FF5500 = Orange
  • &#AA00FF = Purple

Gradient Example:

&#FF0000A&#FF3300d&#FF6600m&#FF9900i&#FFCC00n

Creates a red-to-yellow gradient effect on "Admin".

Format Examples

"Owner": "&4[Owner] {player}&r: {message}"

Result: [Owner] Steve: Hello! (with red prefix)

"VIP": "&6&l[VIP] &r&e{player}&r: {message}"

Result: [VIP] Steve: Hello! (bold gold VIP, yellow name)

"Player": "&a{player}&r: {message}"

Result: Steve: Hello! (green name, white message)

Group Priorities

The groupPriorities section determines which format is used when a player belongs to multiple groups. Higher numbers = higher priority.

How Priorities Work

  1. The system checks all groups the player belongs to
  2. For each group, it looks up the priority number
  3. The group with the highest priority is used for formatting
  4. If no matching group is found, the Default format is used

Priority Examples

Example 1: Player has VIP and Player groups

  • VIP priority: 50
  • Player priority: 10
  • Result: VIP format is used (50 > 10)

Example 2: Player has Admin and VIP groups

  • Admin priority: 90
  • VIP priority: 50
  • Result: Admin format is used (90 > 50)

Example 3: Player has Owner, Admin, and VIP groups

  • Owner priority: 100
  • Admin priority: 90
  • VIP priority: 50
  • Result: Owner format is used (100 is highest)

Recommended Priority Ranges

  • 100+: Server Owner/Founder
  • 80-99: Admin/Manager
  • 60-79: Moderator/Helper
  • 40-59: VIP/Donator ranks
  • 10-39: Special roles
  • 1-9: Default players
  • 0: Fallback/Default

Adding Custom Groups

To add a new group, simply add it to both groupFormats and groupPriorities:

Example: Adding a "Bamboozle" Group

{
  "chatFormat": {
    "enabled": true,
    "groupFormats": {
      "Owner": "&4[Owner] {player}&r: {message}",
      "Admin": "&c[Admin] {player}&r: {message}",
      "Moderator": "&9[Mod] {player}&r: {message}",
      "OP": "&c[OP] {player}&r: {message}",
      "VIP": "&6[VIP] {player}&r: {message}",
      "Bamboozle": "&d[Bamboozle] {player}&r: {message}",
      "Player": "&a{player}&r: {message}",
      "Default": "&7{player}&r: {message}"
    },
    "groupPriorities": {
      "Owner": 100,
      "Admin": 90,
      "Moderator": 80,
      "OP": 75,
      "VIP": 50,
      "Bamboozle": 45,
      "Player": 10,
      "Default": 0
    },
    "defaultFormat": "&7{player}&r: {message}"
  }
}

Important Notes:

  • Group names are case-sensitive and must match exactly with LuckPerms group names
  • Always add the group to both groupFormats AND groupPriorities
  • Choose a priority that makes sense relative to other groups
  • Use /ee reload to apply changes without restarting the server

LuckPerms Integration

When LuckPerms is installed, the chat formatting system automatically:

  1. Detects all groups the player belongs to (including inherited groups)
  2. Checks each group against your configured formats
  3. Selects the highest priority group that has a format defined
  4. Falls back to simple permission system if no LuckPerms groups match

Example LuckPerms Setup

If you have these LuckPerms groups:

  • default (inherited by everyone)
  • vip (donator rank)
  • moderator (staff rank)
  • admin (senior staff)

Your config should include:

"groupFormats": {
  "admin": "&c[Admin] {player}&r: {message}",
  "moderator": "&9[Mod] {player}&r: {message}",
  "vip": "&6[VIP] {player}&r: {message}",
  "default": "&7{player}&r: {message}"
},
"groupPriorities": {
  "admin": 90,
  "moderator": 80,
  "vip": 50,
  "default": 0
}

Note: Group names must match your LuckPerms group names exactly (usually lowercase).

Simple Permission System

If LuckPerms is not installed, the system falls back to simple permissions:

  • Players with OP status get the "OP" or "Admin" format (whichever has higher priority)
  • All other players get the "Default" format

Player Chat Colors and Formatting

By default, only admins can use color codes and formatting in their chat messages. You can allow regular players to use these features:

Configuration in config.json:

"chatFormat": {
  "allowPlayerColors": false,
  "allowPlayerFormatting": false
}
  • allowPlayerColors - When true, all players can use color codes (&a, &c, etc.) in chat
  • allowPlayerFormatting - When true, all players can use formatting codes (&l, &o) in chat

Permission-Based Control (Advanced Mode): In advanced permission mode, you can grant these permissions to specific players or groups:

  • eliteessentials.chat.color - Allow using color codes in chat
  • eliteessentials.chat.format - Allow using formatting codes in chat

This allows fine-grained control - for example, VIP players could use colors while regular players cannot.

Disabling Chat Formatting

To disable chat formatting entirely, set enabled to false:

{
  "chatFormat": {
    "enabled": false,
    ...
  }
}

Then reload with /ee reload.

Troubleshooting

My custom group isn't working

  1. Check group name spelling - Must match LuckPerms exactly (case-sensitive)
  2. Verify both sections - Group must be in both groupFormats AND groupPriorities
  3. Check priority - Make sure the priority is higher than other groups the player has
  4. Reload config - Use /ee reload after making changes
  5. Enable debug - Set debug: true in config to see which format is being applied

Player has wrong format

  1. Check all their groups - Use /lp user <player> info to see all groups
  2. Compare priorities - The highest priority group wins
  3. Verify format exists - Make sure all their groups have formats defined
  4. Check inheritance - LuckPerms inherited groups are also checked

Colors not showing

  1. Use & not § - EliteEssentials uses & for color codes
  2. Use &r to reset - Always reset formatting after colored sections
  3. Check syntax - Make sure color codes are properly formatted

Advanced Examples

Gradient Effect (Multiple Colors)

"VIP": "&6[&eV&6I&eP&6] &e{player}&r: {message}"

Result: Alternating gold/yellow VIP tag

Bold Prefix with Colored Name

"Admin": "&c&l[ADMIN]&r &c{player}&r: {message}"

Result: Bold red ADMIN tag, red name, white message

Minimal Format

"Player": "{player}: {message}"

Result: No colors, just Steve: Hello!

Fancy Format with Multiple Styles

"Owner": "&4&l[&c&lOWNER&4&l]&r &4{player}&r: &f{message}"

Result: Bold dark red/red OWNER tag, dark red name, white message

Performance Notes

  • Chat formatting is applied in real-time for every message
  • The system is optimized to cache group lookups
  • No noticeable performance impact even with many players
  • LuckPerms group queries are efficient and cached

See Also

Where Else Can I Use Colors?

Color codes work in many places throughout EliteEssentials:

MOTD (Message of the Day)

Edit mods/EliteEssentials/motd.json:

[
  "&7&l=====================================",
  "&a&lWelcome to &c&lMyServer",
  "&7&l=====================================",
  "&fWe're glad you're here, &e{player}&f!",
  "&aHave fun!"
]

Rules

Edit mods/EliteEssentials/rules.json:

[
  "&6&l===== Server Rules =====",
  "&e1. &fBe respectful to all players",
  "&e2. &fNo cheating or hacking",
  "&e3. &fNo griefing or stealing",
  "&e4. &fHave fun!"
]

Broadcast Messages

Use color codes directly in the command:

/broadcast &l&6Server restart in 5 minutes!
/bc &cImportant: &fMaintenance tonight at 10 PM

Join Messages

Edit in config.json:

"joinMsg": {
  "joinMessage": "&e{player} &7joined the server.",
  "firstJoinMessage": "&a&l[+] &e{player} &7joined for the first time!"
}

Config Messages

Most messages in config.json support color codes:

"messages": {
  "homeTeleported": "&aYou have been teleported to &e{name}&a!",
  "noPermission": "&cYou don't have permission to use this command."
}

Clone this wiki locally