-
Notifications
You must be signed in to change notification settings - Fork 2
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.
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 �FFBlue
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.
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
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}"
}
}The groupFormats section defines the chat format for each group. The format string supports:
| 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! |
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 -
�FF00= Pure Green -
�FF= Pure Blue -
&#FF5500= Orange -
&#AA00FF= Purple
Gradient Example:
&#FF0000A&#FF3300d&#FF6600m&#FF9900i&#FFCC00n
Creates a red-to-yellow gradient effect on "Admin".
"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)
The groupPriorities section determines which format is used when a player belongs to multiple groups. Higher numbers = higher priority.
- The system checks all groups the player belongs to
- For each group, it looks up the priority number
- The group with the highest priority is used for formatting
- If no matching group is found, the
Defaultformat is used
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)
- 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
To add a new group, simply add it to both groupFormats and groupPriorities:
{
"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
groupFormatsANDgroupPriorities - Choose a priority that makes sense relative to other groups
- Use
/ee reloadto apply changes without restarting the server
When LuckPerms is installed, the chat formatting system automatically:
- Detects all groups the player belongs to (including inherited groups)
- Checks each group against your configured formats
- Selects the highest priority group that has a format defined
- Falls back to simple permission system if no LuckPerms groups match
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).
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
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- Whentrue, all players can use color codes (&a,&c, etc.) in chat -
allowPlayerFormatting- Whentrue, 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.
To disable chat formatting entirely, set enabled to false:
{
"chatFormat": {
"enabled": false,
...
}
}Then reload with /ee reload.
- Check group name spelling - Must match LuckPerms exactly (case-sensitive)
-
Verify both sections - Group must be in both
groupFormatsANDgroupPriorities - Check priority - Make sure the priority is higher than other groups the player has
-
Reload config - Use
/ee reloadafter making changes -
Enable debug - Set
debug: truein config to see which format is being applied
-
Check all their groups - Use
/lp user <player> infoto see all groups - Compare priorities - The highest priority group wins
- Verify format exists - Make sure all their groups have formats defined
- Check inheritance - LuckPerms inherited groups are also checked
-
Use
¤- EliteEssentials uses&for color codes -
Use
&rto reset - Always reset formatting after colored sections - Check syntax - Make sure color codes are properly formatted
"VIP": "&6[&eV&6I&eP&6] &e{player}&r: {message}"Result: Alternating gold/yellow VIP tag
"Admin": "&c&l[ADMIN]&r &c{player}&r: {message}"Result: Bold red ADMIN tag, red name, white message
"Player": "{player}: {message}"Result: No colors, just Steve: Hello!
"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
- 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
- Configuration - General configuration guide
- Permissions - Permission system documentation
- Placeholders - All available placeholders
Color codes work in many places throughout EliteEssentials:
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!"
]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!"
]Use color codes directly in the command:
/broadcast &l&6Server restart in 5 minutes!
/bc &cImportant: &fMaintenance tonight at 10 PM
Edit in config.json:
"joinMsg": {
"joinMessage": "&e{player} &7joined the server.",
"firstJoinMessage": "&a&l[+] &e{player} &7joined for the first time!"
}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."
}EliteEssentials by EliteScouter | GitHub | Report Issues