Embellish Chat enhances Minecraft chat with item and inventory showcases, built-in icons, mentions, and rich formatting. Players can show off gear, open showcased inventories, and use more expressive chat features without requiring the mod on their client.
✨ Key Features
-
Item and Inventory Showcases Showcase your held item, inventory, or ender chest directly in chat with
[i],[inv], and[end], allowing other players to inspect them interactively. -
Built-in Chat Icons Use
:name:syntax to insert built-in Minecraft-based icons into messages. -
Rich Chat Formatting Style messages with bold, italic, underline, strikethrough, custom fonts, hex colors, gradients, presets, and rainbow effects.
-
Smart Mention System Mention players,
@here,@team(name),@world(name), or@everyonewith clear notifications. LuckPerms group mentions are also supported. -
Useful Chat Utilities Hover messages to see exact timestamps and click them to copy their content with the timestamp.
-
Server-side mod with optional client features Embellish Chat works fully server-side for all core chat features. Players do not need to install the mod on their client. It is marked as Server & Client only because an optional client-side mention autocomplete feature is available when the mod is installed on the client.
🛠️ Styling System
Use the following patterns directly in the chat window to apply styles:
| Feature | Syntax | Example | Showcase |
|---|---|---|---|
| Bold | **Text** |
**You really need to read this!** |
![]() |
| Italic | _Text_ |
_This is top secret..._ |
![]() |
| Underline | __Text__ |
__Check this out__ |
![]() |
| Strikethrough | ~~Text~~ |
~~We don’t talk about this anymore~~ |
![]() |
| Obfuscated | \|\|Text\|\| |
\|\|Unreadable text\|\| |
![]() |
| Color (Hex) | [Text]<#RRGGBB> |
[Blue]<#0000FF> like the deep ocean |
![]() |
| Color (Gradient) | [Text]<#RRGGBB #R...> |
[Grraaaaaaadieeeeent]<#ffaaaa #aaaaff #aaffaa> |
![]() |
| Color (Preset) | [Text]<preset> |
[pink]<pink> pig |
![]() |
| Color (Rainbow) | [Text]<RAINBOW> |
look at this [rainbow]<RAINBOW> |
![]() |
| Link | [Text](URL) |
Download it [here](https://modrinth.com/mod/embellish-chat) |
![]() |
| Font | [Text]{path} |
[Blorp Zorp]{minecraft:alt} |
![]() |
| Item | [i] |
Look at my [i] |
![]() |
| Inventory | [inv] |
Look at my [inv] |
![]() |
| Ender Chest | [end] |
Look at my [end] |
![]() |
| Icon | :name: |
I :love: you |
![]() |
| Mention | @PlayerName |
Hello, @User |
![]() |
Notes
- Links: The built-in default link rules only match
https://URLs.- Colors: Presets (e.g.,
pink) are defined inpresets.json/color.- Fonts: The
pathrequires a namespaced ID (e.g.,minecraft:alt).- Icons & Item Sprites: Icon presets and item sprite rendering use atlas-backed components, so they are not supported on older Minecraft versions.
- More Info: For advanced syntax, style combinations, and detailed rules, refer to
/embellish-chat help styleor the StyleWiki.
🗣️ Mention System
| Target | Behavior |
|---|---|
@PlayerName |
Mentions a specific player. |
@team(name) |
Mentions all players in the specified team. |
@group(name) |
Mentions all players in the specified LuckPerms group. |
@world(name) |
Mentions all players in the specified world. |
@everyone |
Mentions every player on the server. |
@here |
Mentions players within a configurable radius (default: 64 blocks) in the same world. |
Notes
- Behavior: Successful mentions send a notification sound to the target and automatically tint the text (e.g., to the team color).
- Dependencies:
@grouprequires LuckPerms. Without it, the mention will be ignored.- Colors:
@teamand@Playermentions start from theteam_colorvalue inconfig.json, then use the target's team/display styling when available. Ifteam_colorisnull, the mention text is left uncolored.- Sound: The notification sound uses the UI category (falls back to the PLAYER category on Minecraft 1.21.5 and earlier).
- More Info: For a full list of mention types and advanced usage, refer to MentionWiki.
⌨️ Commands
Admin Commands
Requires OP Level 2 (or
GAMEMASTERS_CHECKon 1.21.11+).
/embellish-chat reloadReloads all configuration files under/config/embellish-chat/immediately./embellish-chat ban/pardon <player>Blocks or restores a player's access to all mod features./embellish-chat stress_test <ticks> <count> <text>Repeatedly simulates<count>messages for<ticks>to stress-test the server's message-processing performance./embellish-chat regex_test <regex> <text>Tests the provided<regex>against<text>and highlights capture groups to analyze the match result.
User Commands
Available to all players (no permission required).
/embellish-chat open <player>Opens the last shared inventory/ender/item of the specified player./embellish-chat help mentionDisplays the mention rules available to you based on your permissions./embellish-chat help styleDisplays the styling rules available to you based on your permissions./embellish-chat help iconDisplays available icon presets frompresets.json/iconinname - iconformat./embellish-chat notificationToggles your personal mention notification preferences. (Enabled/disabled globally bynotify_command_enabledin the config).
⚙️ Configuration
Embellish Chat provides powerful functionality through the use of regular expressions. Because regular expressions are inherently difficult, it is recommended to leverage various AI tools for rule creation and optimization.
Config
The configuration file is located at config/embellish-chat/config.json.
{
//version
"version": "current mod version",
//setting
"delimiter": ",",
"timestamp": "yyyy-MM-dd HH:mm:ss",
"command_alias": "ec",
"url_color": "#0000EE",
"team_color": "#FF55FF",
"notify_command_enabled": true,
"notify_mention_enabled": true,
"require_same_channel": true,
"disable_vanilla_chat_format": false,
//player list
"banned_players": [],
"notify_off_players": []
}
- The
versionfield must not be modified manually. ConfigManagerwritesconfig.json,styles.json,mentions.json, andpresets.jsonseparately, then merges them into one runtimeConfigwhen loading.- Missing sections are restored from the built-in defaults during that merge step.
- If the stored
versiondoes not match the running mod version, the mod keeps the current in-memory configuration and ignores the mismatched load. - The core configuration logic is defined in
style_rulesandmention_rules. - Rules are processed from top to bottom, so placing a catch-all rule earlier may override more specific rules defined below.
- The
delimitervalue is internally handled as a regular expression; special characters such as|must be properly escaped. command_aliasregisters an additional root command that redirects to/embellish-chatwhen the config is loaded with a non-blank value.team_coloris the base color used when styling@teamand@Playermentions.- If
team_coloris missing or set tonull, those mentions are left without an automatic color. require_same_channellimitsADVANCED_CHAT_CHANNELmentions to the sender's current Advanced Chat channel when enabled.- Reloading the config refreshes the runtime style and mention processors, so updated
style_rules,mention_rules,timestamp,url_color,whitelist,color,icon, anditemvalues take effect immediately. - To avoid JSON syntax errors and ensure valid configurations, using the Web Config Generator is strongly recommended.
Styling
The configuration file is located at config/embellish-chat/styles.json.
{
"style_rules": {
"embellish-chat.chat": [
{
"pattern": " ... ",
"comment": "...",
"styles": [
{
"styleType": " ... ",
"preset": " ... "
}
]
}
...
]
}
}
pattern: This is a regular expression for scanning text. It must have two capture groups.group 1: This is text to be styled.group 2: This is text passed as an option.
comment: This comment is used in/embellish-chat help style.styles: Defines the styles to be applied to captured group 1.styleType: This is the style type. You can use all types listed in the StyleWiki.preset: This is a preset value. If a value is provided, it is always used; if it is empty, the content of the user's captured group 2 is used instead.
- Each top-level key such as
embellish-chat.chatis also treated as a permission node. - Each
styleTypename must match a handler registered in the runtimeStyleRegistry.
Mention
The configuration file is located at config/embellish-chat/mentions.json.
{
"mention_rules": {
"embellish-chat.mention": [
{
"pattern": " ... ",
"comment": "...",
"title": " ... ",
"sound": { ... },
"cooldown": 0,
"onlyTarget": false,
"mentions": [
{
"mentionType": " ... ",
"preset": " ... "
}
],
"styles": [ ... ]
}
...
]
}
}
pattern: This is a regular expression for scanning text. It must have one capture group.- This is the mention option (e.g. team name, LuckPerms group).
comment: This comment is used in/embellish-chat help mention.title: This is the title shown on the mentioned player's screen.%player:displayname%is the display name of the player who sent the mention.
sound: Defines the notification sound settings.id: Sound identifier.category: Sound category.volume: Sound volume.pitch: Sound pitch.
cooldown: This is the mention cooldown time in seconds.- Set to
0to disable the cooldown.
- Set to
onlyTarget:- When set to
true, prevents the message from being broadcast globally and sends it only to the target.
- When set to
mentions: Defines the mention actions to be executed.mentionType: This is the mention type. You can use all types listed in the MentionWiki.preset: This is an optional preset value.
styles: Defines the styles to be applied when the mention is triggered.- Works the same way as in the styling rules section.
Presets
The configuration file is located at config/embellish-chat/presets.json.
{
"message_header": {
" ... ": " ... "
},
"whitelist": [
" ... "
],
"icon": {
" ... ": {
"atlas": " ... ",
"sprite": " ... "
}
},
"item": {
" ... ": {
"atlas": " ... ",
"sprite": " ... "
}
},
"color": {
" ... ": " ... "
}
}
message_header: Uses permission nodes as its keys, and each value is a message header parsed as a text component with placeholder tags.whitelist: This is used in theURLstyle type. If left empty, all URLs are allowed.icon: This is used byICON_PRESETand/embellish-chat help icon.item: This overrides atlas sprites used bySHOW_ITEMfor specific item IDs.color: This is used in the color presets for styling.
📜 Compatibility
✅ Fully Supported
- Fabric Permissions API (Embedded)
- The keys defined in
style_rulesandmention_rulesdirectly function as permission nodes. - Rules are evaluated from top to bottom based on the player's permissions.
- The keys defined in
- Text Placeholder API (Embedded)
- Supports dynamic placeholders in mention titles and style presets.
- Exclusive: Use
%embellish-chat:content%to access the raw, unparsed chat message.
- Styled Nicknames
- Supports mentioning players by nickname.
- LuckPerms
- Required for the
@groupmention type. Without it, group mentions will be ignored.
- Required for the
- Advanced Chat
- Required for the
@channelmention type. Without it, channel mentions will be ignored.
- Required for the
- Geyser (Bedrock Edition)
- Mentions between Java and Bedrock editions work seamlessly.
- Note: Advanced styling (hover text, click events) may not fully render on Bedrock clients.
- Minecraft LAN Play
- Tested in standard LAN worlds.
❗ Known Conflicts
- Styled Chat
- Styled Chat takes priority. If installed, Embellish Chat's styling features will be overridden.
- Mentions still work: The mention and notification system remains functional.
- Performance Tip: If you must use both, remove all entries in Embellish Chat's
style_rulesto prevent unnecessary background processing.
📜 License & Links
This project is licensed under the Apache License 2.0.
Please download the mod from the official sources below to ensure you have the latest, safest version. Linking to these pages is appreciated; please avoid re‑hosting files.
- Official Download (Modrinth): https://modrinth.com/mod/embellish-chat
- Source Code (GitHub): https://github.com/hanhy06/embellish-chat
✨ Feedback & Support
Found a bug or have a feature request? Please open an issue or reach out on the project’s Discord server.
If you want to receive updates sooner, please press the heart ❤️ on our Modrinth page! Your support means a lot!
How to Install Embellish Chat (Mod)
Embellish Chat by hanhy06 is verified for Fabric across Minecraft versions 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5 (latest release: 3.8.0+26.3, file size: 488 KB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5) and platform (Fabric).
- Make sure you have the compatible loader or environment installed for Fabric.
- Move the downloaded Embellish Chat file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 10mo ago | 1 | ||||
| 10mo ago | 1 |
This update improves message formatting configuration and adds built-in LuckPerms prefix and suffix support.
### Configuration Changes
- Renamed the
prefixconfiguration option tomessage_headerto better reflect its purpose. - Existing configurations using
prefixmust be updated to usemessage_header.
### LuckPerms Integration
- Added built-in
%embellish-chat:prefix%and%embellish-chat:suffix%placeholders. - LuckPerms prefixes and suffixes can now be used without installing an additional placeholder integration mod.
### Bug fix
- Fixed a bug where
message_header(prefix) was not applied to players banned from using the mod's features.
message_header (prefix) was not applied to players banned from using the mod's features.This update improves message formatting configuration and adds built-in LuckPerms prefix and suffix support.
### Configuration Changes
- Renamed the
prefixconfiguration option tomessage_headerto better reflect its purpose. - Existing configurations using
prefixmust be updated to usemessage_header.
### LuckPerms Integration
- Added built-in
%embellish-chat:prefix%and%embellish-chat:suffix%placeholders. - LuckPerms prefixes and suffixes can now be used without installing an additional placeholder integration mod.
This v3.7.0 update focuses on adding optional client-side mention autocomplete and improving overall code stability.
## New Features
### Mention Autocomplete
- Mention autocomplete has been added.
- Function:* Players with the client-side mod installed can see mention suggestions while typing in chat.
- Suggestions can be selected using
Tab, arrow keys, or the mouse wheel. - The core chat features still work with the mod installed only on the server.
## Improvements
### Code Stability Improvements
- Several internal systems have been cleaned up and improved.
- Function:* Configuration handling, mention processing, selector error handling, notification toggling, and stress-test logic have been refined for better stability and maintainability.
- Restored placeholder support. Names should now appear correctly again in features such as mentions.
- Added mention auto-suggestions in the chat box. This feature requires client-side installation.
- Fixed a bug where types other than
PLAYERcouldn't perform actions.
This v3.6.0 update focuses on adding Advanced Chat channel mentions and making invalid input handling more explicit.
It also improves log readability for server operators and makes chat processing more stable when unexpected errors occur.
## New Features & Improvements
### Advanced Chat Channel Mention Support
- A new
ADVANCED_CHAT_CHANNELmention type has been added. - Function:* You can now mention players who are currently in a specific Advanced Chat channel.
- In addition to player, team, world, LuckPerms group, permission-based, and custom targeting, channel-based targeting is now supported as well.
### Same-Channel Mention Restriction
- A new
require_same_channelconfiguration option has been added. - Function:* When enabled, players can only mention the Advanced Chat channel they are currently in.
- This option is enabled by default to help prevent players from unintentionally calling users in other channels.
### Message Block Feedback
- Blocked messages can now show the reason directly to the sender.
- Function:* When a message is blocked because of cooldown, invalid input, missing items, or channel restrictions, the sender receives a red notice.
- This makes it easier for users to understand why their message was not sent.
## Input Handling Policy Changes
### Invalid Mention Input Now Stops the Message
- Invalid mention targets are now treated as explicit input errors.
- Function:* If a player tries to mention a non-existent player, team, world, selector, or Advanced Chat channel, the message is stopped and the sender is notified.
- Instead of silently ignoring invalid mentions, the mod now gives clear feedback so users can fix their input.
### Mention Cooldown Now Stops the Message
- Messages that trigger an active mention cooldown are now stopped.
- Function:* If a player tries to use a mention rule while it is still on cooldown, the message is not sent and a cooldown notice is shown.
- This makes mention cooldown behavior clearer and more predictable.
### Item Style Handling Changed
- Item-related styles now require a valid item to be present.
- Function:* If a player uses an item showcase style without an available item, the message is stopped and the sender is notified.
- Instead of sending an empty item showcase message, the mod now explains what is missing.
## Logging & System Changes
### Structured Log Prefixes Added
- Server logs now include clearer
embellish-chatcategory prefixes. - Function:* Config, command, mention, style, integration, stress-test, lifecycle, and chat-log messages are now easier to distinguish.
- This makes troubleshooting configuration issues, integration problems, and chat processing failures more convenient.
### Integration Logging Improved
- LuckPerms, Discord, and Advanced Chat integration logs have been clarified.
- Function:* Missing integrations, failed Discord webhook delivery, and unavailable external APIs now produce more identif
- Code stabilization
- Added Advanced Chat support**
- Added the
ADVANCED_CHAT_CHANNELmention type - Allows mentioning players in a specific Advanced Chat channel
- If Advanced Chat is not installed, this mention type is ignored
- Added new setting**
- Added the
require_same_channelsetting - Default value:
true - When enabled, users can only mention the Advanced Chat channel they are currently in
- Changed handling for invalid input/actions**
- Previously, invalid mention targets were silently ignored, but now message sending is blocked
- Non-existent teams, players, worlds, or Advanced Chat channels
- Invalid selectors
- Trying to mention again while mention cooldown is active
- Using
HOVER_ITEMorSHOW_ITEMwhen there is no item to display
- Added block reason output**
- When a message is blocked, the reason is shown to the user as a red system message when available
- Changed BLOCK style**
- The
BLOCKstyle can now pass a block message along with it
SHOW_ITEMno longer displays blocks as images- Code stabilization
This v3.5.0 update focuses on expanding mention targeting, improving configuration validation and loading stability, and refining admin help commands and overall usability.
## New Features & Improvements
### Permission-Based Mention Support
- A new
PERMISSIONmention type has been added. - Function:* You can now mention all players who have a specific permission node.
- In addition to player, world, team, and LuckPerms group targeting, permission-based targeting is now supported as well.
### Atlas Help Command Added
- A new
/embellish-chat help atlascommand has been added. - Function:* You can now view the currently registered Atlas icon presets directly in-game.
- This makes it much easier to check which icons are available when writing styles.
### Expanded Default Atlas Presets
- The default Atlas icon list has been expanded.
- Function:* Useful built-in presets such as
food,love,emerald,diamond,star,time,note,totem,music,mine,luck,poison,fight,world,news,search, andtvare now available out of the box. - This improves usability by allowing practical icons to be used immediately without additional configuration.
## Configuration & System Changes
### DISCORD_JSON Webhook Format Changed
- The webhook handling format for
DISCORD_JSONhas been changed. - Function:* Instead of using a global webhook setting, it now accepts input in the
webhook;jsonformat and sends the payload using the provided webhook URL. - This allows different styles to send messages to different Discord webhooks.
### Configuration Field Structure Cleanup
- Configuration field names have been standardized to snake_case.
- Function:*
commandAlias → command_aliasmentionRules → mention_rulesstylingRules → style_rules- Some preset and config key names were also updated, so existing configuration files may require adjustment.
### Improved Prefix Handling
prefixhandling has been upgraded from string-based processing to component-based processing.- Function:* Formatting and placeholders inside prefixes are now preserved and applied more flexibly.
## Stability & Bug Fixes
- Validation during config reload has been significantly improved.
- When invalid configurations are present, the previously valid configuration is now preserved.
- The hunger icon has been changed from a full meat icon to a half meat icon.
- Stability improvements have been applied to the stress test system.
- Fixed an issue where
disable_vanilla_chat_formataffected non-chat system messages.
- Fixed a crash that could occur in certain situations when using the inventory showcase feature.
- Fixed a bug that occurred while loading prefixes.
- Fixed a bug where
disable_vanilla_chat_formatwas affecting non-chat system messages. - Re-enabled support for Fabric Permissions API.
- Re-enabled support for Styled Nicknames.
- The hunger icon has been changed from a full meat icon to a half meat icon.
- Stability improvements have been applied to the stress test system.















