Chat Mod
ModMOTD Ingame, Full custom info command setup, Timed Broadcasts, Broadcasts for events with the world clock for events and countdowns :)
Type
Mod
Modrinth Downloads
2,215
Modrinth ID
UeyZY1Lc
Last Updated
Jun 19, 2026
Description
ChatMod — Advanced Server Messaging & Chat
ChatMod is a server-side Fabric mod that gives administrators complete control over how the server communicates with players. Custom info commands, automated broadcasts, a rich MOTD, interactive chat with hover and click events, inline atlas sprite icons, player tagging with sound, persistent chat colours, predefined items, scheduled broadcasts — all configurable from YAML files with no restart required.
💬 Primary Support (Preferred)
All general questions, feature requests, and non-urgent bug reports should be posted in the appropriate channels on our Discord Server. We actively monitor it and will respond as soon as possible so the whole community benefits.
🆘 Urgent PM Policy
You may PM me directly only under specific urgent circumstances:
- Allowed reason: Your server is crashing or experiencing critical, game-breaking errors directly related to this mod.
- Requirement: You must be the server owner.
- Time zone: (CET/CEST) — Brussels Time
- PM hours: 10:00 AM – 10:00 PM Brussels Time only
Immediate responses are not guaranteed. Private messaging is a professional courtesy, not an entitlement. Thank you for your understanding!
⚠️ Version Note — Atlas Sprite Icons
Atlas sprite icon features ([#SpriteName], [#item], [##item], custom placeholder icons, player head sprites) require Minecraft 1.21.9 or newer. Versions targeting 1.21.5 through 1.21.8 do not include these features. All other features are available on all supported versions.
Formatting — Used Everywhere
Every message in ChatMod — broadcasts, MOTD, info files, chat — supports the same rich formatting syntax.
Syntax Result &a, &b, &c … Minecraft colour codes &#RRGGBB Hex colour codes &l &o &n &m &k &r Bold, italic, underline, strikethrough, obfuscated, reset Text{Hover text} Hoverable text with a tooltip Text{Hover}<action:run_command,/cmd> Hover + click to run a command Text{Hover}<action:suggest_command,/cmd> Hover + click to suggest a command Text{Hover}<action:open_url,https://…> Hover + click to open a URL Text{Hover}<action:copy_to_clipboard,value> Hover + click to copy text &+ at line start Centre the line in chat &= inside a string Insert a newline %player% %online_players% %time% %date% … Built-in placeholders PlaceholderAPI placeholders Supported when PlaceholderAPI is installed📢 Broadcasts
Set up automated cycling messages in chatmod.yml. Every broadcast entry supports four display types.
Type Where it appears CHAT Server chat, all players ACTION_BAR Above the hotbar TITLE Centre screen, large text BOSSBAR Top of screen boss barAction Bar
- Single line stays visible for duration_seconds (re-sent automatically, vanilla clears it after ~3 s without this).
- Add a second line to show subtitle text in the title area alongside the action bar.
- Add more lines to cycle through them in sequence, each held for duration_seconds.
Title Supports up to 4 lines per set:
- Main title
- Subtitle
- Action bar text (optional)
- Replaces the subtitle while line 3 is active (optional)
Add lines1:, lines2: … to cycle through multiple title screens within one broadcast entry, each displayed for duration_seconds.
Boss Bar Multiple lines are displayed one after another as separate boss bars, each held for duration_seconds.
Broadcast controls
broadcast_enabled: true broadcast_interval_seconds: 300 randomize_broadcast: false # true = random order instead of sequentialPer-player-count intervals — automatically adjust the broadcast interval based on online players:
players_5_interval_seconds: 240 players_10_interval_seconds: 180 players_25_interval_seconds: 120🌅 MOTD
Greet players with a personalized message when they join. Supports all formatting, placeholders, hover and click events, and atlas sprite tokens.
motd_enabled: true motd_messages: - lines: - "&+&bWelcome, %player%!" - "&7Playtime: &e%playtime% &7Last seen: &e%last_play_time%"Use /cm testmotd to preview without rejoining.
📄 Custom Info Commands
Create unlimited custom text commands from YAML files — /rules, /help, /discord, /info, or any name you choose. ChatMod registers them as real server commands and supports multiple pages and named sections per file.
Create a new one:
/cm create rulesThis generates config/chatmod_info/rules.yml which you edit freely, then /cm reload.
Managing your info commands:
Command What it does /rules Shows page 1 (or section named page1) /rules 2 Shows page 2 by number /rules section_name Shows a named section directly /rules work Toggles the command on or off /rules permission Toggles permission requirement on or off /rules permission set chatmod.rules Sets the required permission node /rules alias add r Adds /r as an alias /rules alias remove r Removes the alias /cm list Lists all registered info commandsPages can link to each other using click actions, making full multi-section help menus easy to build.
📡 Predefined & Scheduled Broadcasts
Define reusable named broadcasts in predefined_broadcasts.yml and send or schedule them from commands.
/cm bc event_soon — send immediately to all players /cm bcshow event_soon — preview it yourself first /cm bclist — see all available broadcasts /cm time 20m often 5 bc event_soon — send 5 times spread over 20 minutes /cm time 30m bcnow CHAT Hello everyone! — send ad-hoc text after 30 minutesEach predefined broadcast supports all four display types (CHAT, ACTION_BAR, TITLE, BOSSBAR), permission gating, and full formatting.
For ad-hoc one-off messages without a predefined entry:
/cm bcnow CHAT &aServer event starting now! /cm bcnow TITLE &6Event! | &eGet to spawn! /cm bcnow <player> CHAT &eYou have been selected!🎨 Atlas Sprite Icons (1.21.9+ only)
Render any Minecraft texture atlas sprite inline in any message — chat, MOTD, broadcasts, info files.
Syntax Result [#diamond] Diamond item sprite [#grass_block] Grass block sprite [#playerhead:Name] Named player's head sprite [#item] Sprite of the item you're holding [##item] Sprite only, no item name [#item:3] Sprite of predefined item slot 3Sprite aliases and vanilla texture overrides are configured in sprites.yml. You can remap any token to a custom atlas path — for example, make [#chest] show a christmas chest texture.
Sprites work in every context: chat messages, MOTD, broadcasts, info files, hover tooltips, and as persistent chat colour prefixes.
👤 Player Identity Tokens
Reference any online player as an interactive inline element anywhere ChatMod formatting is supported.
Syntax Displays [@Name] Formatted player name with hover profile and click action [#@Name] Player head sprite + formatted name [##@Name] Player head sprite only [@%player%] Dynamic — resolves to the player viewing the messageHover profiles in placeholders.yml let you define different tooltips per permission group. Admins can see UUID, ping, world and balance; regular players see rank and balance. Profiles are selected based on the named player's permissions and support full ChatMod formatting including sprites.
🏷️ Player Tagging & Mentions
Type @PlayerName or PlayerName@ in chat to tag someone. They hear a distinct ping sound and see their name highlighted. Use @everyone or everyone@ to notify the whole server (different sound, separate permission).
Tag formats are configured in placeholders.yml under player_tag_format and everyone_tag_format.
💬 Chat Features
Colour & formatting control — Two separate permissions:
- chatmod.chat.color — allows &0–&f and &#RRGGBB hex in chat
- chatmod.chat.format — allows &l, &o, &n, &m, &k, &r in chat
Grant both, one, or neither independently.
Persistent chat colour — Players set a permanent colour for all their chat messages:
/cm chatcolor aqua /cm chatcolor #FF5500 /cm chatcolor b ← legacy code shorthandAdmins can set it for other players too with the chatmod.chatcolor.others permission.
Sprite prefixes — Set an atlas sprite as your chat colour prefix (1.21.9+):
/cm chatcolor [#dirt] /cm chatcolor [#diamond] /cm chatcolor player ← uses your own player headInline item display — Players can show their held item in chat using [item], [#item] (with icon), or [##item] (icon only). Each has its own permission node.
Inline sprite icons — Type [#SpriteName] anywhere in chat to embed a sprite icon. Gated by chatmod.chaticon.
Custom placeholders — Typed shortcuts in chat that expand to formatted, interactive text with hover and click events. Defined in placeholders.yml.
📦 Predefined Items & GUI
Store up to 54 items per page (unlimited pages) as shared references, displayed in chat via [item:N], [#item:N], or [##item:N].
Manage items through a visual chest GUI:
/cm items ← opens page 1 /cm items 2 ← opens page 2Items are stored with full NBT data so custom names, lore, enchantments, and all other properties are preserved exactly.
🔧 Custom Placeholders
Define your own typed shortcuts in placeholders.yml that players type in chat and ChatMod expands into formatted, interactive output.
custom_placeholders: spawn: typed: '[spawn]' chatmod: '&bSpawn&r' hover: '&bClick to teleport to spawn.' icon: grass_block runcommand: /spawnEach placeholder supports a display text, hover tooltip, click action (run command / suggest command / open URL), and an optional sprite icon. A permission node can be required to use it.
⚙️ Configuration
All configuration is in YAML files under config/chatmod/. No restart needed — use /cm reload after any edit.
File Contains chatmod.yml MOTD, cycling broadcasts, intervals, randomize predefined_broadcasts.yml Named reusable broadcast entries placeholders.yml Item formats, tag formats, hover profiles, custom placeholders messages.yml All player-facing system messages sprites.yml Sprite aliases and vanilla texture overrides config/chatmod_info/*.yml One file per custom info commandPlaceholderAPI placeholders (e.g. %luckperms:prefix%) are resolved in all contexts when PlaceholderAPI is installed. ChatMod skips the API call when a message contains none, so there is no performance overhead for plain messages.
Commands
Command Description Permission /cm reload Reload all configs without restart chatmod.reload /cm create <name> Create a new info command chatmod.create /cm list List all info commands chatmod.list /cm testmotd Preview the MOTD chatmod.testmotd /cm testbroadcast Trigger next cycling broadcast chatmod.testbroadcast /cm bc <name> Send a predefined broadcast chatmod.bc.sendnamed /cm bcnow <type> <text> Send an ad-hoc broadcast chatmod.bc.now /cm bcnow <player> <type> <text> Send broadcast to one player chatmod.bc.now /cm bclist List predefined broadcasts chatmod.bc.list /cm bcshow <name> Preview a predefined broadcast chatmod.bc.show /cm time <duration> [often <n>] bc <name> Schedule a predefined broadcast chatmod.bc.sendnamed /cm time <duration> [often <n>] bcnow <text> Schedule an ad-hoc broadcast chatmod.bc.now /cm chatcolor <value> Set your persistent chat colour chatmod.chatcolor.self /cm chatcolor <value> <player> Set another player's chat colour chatmod.chatcolor.others /cm items [page] Open predefined items GUI chatmod.items /tag <player> [message] Tag a player with an optional message chatmod.tag.commandPermissions
Chat
Node Grants chatmod.chat.color Colour codes in chat (&0–&f, hex) chatmod.chat.format Formatting codes in chat (&l, &o, &n, &m, &k, &r) chatmod.chatitem [item] held item name in chat chatmod.chatitem.number [item:N] predefined item name chatmod.chatitem.icon [#item] sprite + name chatmod.chatitem.icon_only [##item] sprite only chatmod.chaticon [#SpriteName] sprite icons in chat chatmod.player.tag Tag players with @Name chatmod.player.tag.everyone Tag @everyoneChat Colour
Node Grants chatmod.chatcolor.self Set own chat colour chatmod.chatcolor.others Set other players' chat colour chatmod.chatcolors All named and hex colours (wildcard) chatmod.chatcolor.<name> Specific colour (e.g. chatmod.chatcolor.aqua) chatmod.chatcolor.RRGGBB Specific hex colour (e.g. chatmod.chatcolor.ff5500) chatmod.chatcolor.sprites Any sprite as chat colour prefix chatmod.chatcolor.sprite.<name> Specific sprite prefix (e.g. chatmod.chatcolor.sprite.dirt) chatmod.chatcolor.sprite.player Own player head as chat colour prefixBroadcasts
Node Grants chatmod.bc.now Send and schedule ad-hoc broadcasts chatmod.bc.sendnamed Send and schedule predefined broadcasts chatmod.bc.list List predefined broadcasts chatmod.bc.show Preview predefined broadcasts chatmod.broadcast.<name> Use a specific permission-gated broadcastAdmin
Node Grants chatmod.reload Reload all configs chatmod.testmotd Test the MOTD chatmod.testbroadcast Trigger cycling broadcast chatmod.create Create info files chatmod.list List info commands chatmod.items Open predefined items GUI (read-only) chatmod.items.edit Edit predefined items via GUI chatmod.items.format Edit chat name prefix/suffix format chatmod.name.modify Manage info file settings (work, alias, permission) chatmod.tag.command Use the /tag command chatmod.modinfo Access /cm help pagesInfo Commands
Node Grants chatmod.info.<name> Access a specific permission-gated info commandInternal (do not grant manually)
Node Grants chatmod.internal.page Navigate /cm help pages chatmod.internal.display Display info file content via click actionsModpack Policy
- ✅ You may include ChatMod in any modpack.
- ❌ The modpack must not be sold.
Compatibility
Mod Loaders
Game Versions
Similar Mods
The dwerden [Dweller-Warden]
Adds warden dweller...he thirsts for flesh...
GT Steam Tech
More Steam Machine For GTCEu
Dive Into the Abyss
Venture into a dark new dimension born of a fallen Ancient Civilization, uncover the deep secrets lurking beneath its sh...
ShadowHunter22's Config Library
A config library to fit the needs of ShadowHunter22's mods.
Resource Collector
Adds Resource Generators
project-545598
A space exploration mod for Minecraft.