Unofficial site, not affiliated with modrinth.com.What is this?
Моды/Chat Mod
Chat Mod

Chat Mod

MOTD Ingame, Full custom info command setup, Timed Broadcasts, Broadcasts for events with the world clock for events and countdowns :)

1.7K
17
ChatMod Logo

ChatMod - Advanced Server Messaging & Info

Chat Mod Sprites Texture pack: modrinth.com/resourcepack/chat-mod-sprites

ChatMod transforms your server's communication! This powerful server-side Fabric mod gives administrators robust tools to engage players, deliver announcements, and manage server information efficiently. Enhance interaction through fully customizable broadcast messages, dynamic MOTD, user-definable info commands, interactive chat replacements, atlas sprite icons, player tagging, and much more.

📧 Contact & Support

💬 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) 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.


Features

🌅 Dynamic Message of the Day (MOTD)

  • Greets players with a personalized welcome message on join.
  • Supports a rich set of built-in placeholders — player name, playtime, last login, first join, server player count, date/time, and more.
  • Full Minecraft color codes (&c), hex colors (&#RRGGBB), text formatting, hover text, and click actions.
  • Enable or disable in chatmod.yml.

📢 Broadcasts — Multiple Display Types

Every broadcast — whether cycling, predefined, or ad-hoc — supports four display modes:

TypeDescription
CHATStandard chat message, supports multiple lines
ACTION_BARAppears above the player's XP bar
TITLEFull-screen title + optional subtitle
BOSSBARBoss bar with configurable color, overlay style, and duration

Legacy Cycling Broadcasts

A traditional interval-based cycling system configurable in chatmod.yml. Set the interval in seconds, list your messages, and ChatMod sends them in order automatically.

Predefined Broadcasts (predefined_broadcasts.yml)

Create named, reusable broadcast templates. Each broadcast can optionally require a specific permission node to be sent. Managed via /chatmod bc <name>, /chatmod bcshow <name>, and /chatmod bclist.

Ad-Hoc Broadcasts

Send a one-off message immediately from the command line with /chatmod bcnow <message>. Supports all four display types via inline arguments.

Advanced Scheduling (/chatmod time ...)

Schedule predefined or ad-hoc broadcasts to fire once after a delay, or repeat across a time window:

  • /chatmod time 10m bc event_promo — sends event_promo once after 10 minutes.
  • /chatmod time 30m often 5 bc event_promo — sends event_promo immediately, then 4 more times spread over 30 minutes.
  • /chatmod time 20m bcnow &aHello everyone! — schedules an ad-hoc message.

Supports time units s, m, h, d. Scheduled tasks persist across restarts in scheduled_broadcasts.json.


📄 Custom Info Commands (e.g., /rules, /help)

  • Create unlimited custom commands from YAML files in config/chatmod_info/.
  • Files support multiple named page sections — not just numbered pages, but arbitrary section keys navigable via click actions.
  • Each command auto-generates management subcommands:
    • /<cmd> work — toggle enabled/disabled
    • /<cmd> permission / /<cmd> permission set <node> — toggle or set a permission requirement
    • /<cmd> alias add/remove <alias> — add or remove command aliases
  • Use /chatmod create <name> to generate a new file instantly with example content.
  • Use /chatmod list to see all active commands.
  • Auto-migrates legacy .json info files to .yml on first load.

💬 Rich Text Formatting (Everywhere)

All messages — MOTD, broadcasts, info files, chat placeholders, and more — share the same powerful formatting engine:

SyntaxEffect
&c, &l, &r, etc.Minecraft color and formatting codes
&#RRGGBBHex color codes
&+ prefix on a lineAuto-centers the line in chat
&= inlineInserts a newline within a single string
{Hover text}Adds hover tooltip to the preceding element
<action:run_command,/cmd>Click to run a command
<action:suggest_command,/cmd>Click to suggest a command
<action:open_url,https://...>Click to open a URL
<action:copy_to_clipboard,text>Click to copy text
<action:change_page,N>Click to change book page

🎨 Atlas Sprite Icons (1.21.9+ only)

Render Minecraft texture atlas sprites inline in chat — item icons, block textures, painting thumbnails, celestial sprites, and more. Uses the vanilla {"atlas":"…","sprite":"…"} text component format.

Syntax

In chat or configResult
[#coal]Inline item sprite icon
[#grass_block]Inline block sprite icon
[#balkan]Inline painting thumbnail (via sprites.yml alias)
[#end_flash]Inline celestial sprite (via sprites.yml alias)
[#item]Sprite icon of the item you're holding
[##item]Sprite icon only (no text name), held item
[#item:3]Sprite icon of predefined item slot 3
[##item:3]Sprite icon only of predefined item slot 3

Atlas Routing (automatic)

  • block/… paths → minecraft:blocks
  • item/… paths → minecraft:items (split from blocks in 1.21.11)
  • entity/chest/…minecraft:chests
  • entity/bed/…minecraft:beds
  • entity/banner/…minecraft:banner_patterns
  • entity/shield/…minecraft:shield_patterns
  • entity/signs/… / entity/hanging_signs/…minecraft:signs
  • entity/shulker/…minecraft:shulker_boxes
  • painting/…minecraft:paintings
  • mob_effect/…minecraft:mob_effects
  • particle/…minecraft:particles
  • Explicit override syntax: "minecraft:celestials|end_flash" — use when automatic routing can't determine the atlas

sprites.yml

Define short aliases and vanilla item sprite overrides:

# Short alias
christmas_chest: "entity/chest/christmas"
balkan:          "painting/balkan"

# Celestials (1.21.11+)
end_flash: "minecraft:celestials|end_flash"
sun:       "minecraft:celestials|sun"
moon_0:    "minecraft:celestials|moon_0"

# Override what sprite shows when holding a specific item
vanilla_replacements:
  minecraft/chest:       "entity/chest/normal"
  minecraft/ender_chest: "entity/chest/ender"
  minecraft/white_bed:   "entity/bed/white"

Permissions

  • chatmod.chaticon — use [#SpriteName] in chat
  • chatmod.chatitem.icon — use [#item] / [#item:N]
  • chatmod.chatitem.icon_only — use [##item] / [##item:N]

🔧 Custom Placeholders & Chat Replacements (placeholders.yml)

Define your own typed chat triggers that transform into formatted, interactive text:

custom_placeholders:
  spawn:
    typed:      "[spawn]"
    chatmod:    "&aSpawn"
    hover:      "Click to teleport to spawn!"
    runcommand: "/spawn"
    icon:       "block/grass_block_side"   # shown with [#spawn], [##spawn]
  • Players type [spawn] → formatted text-only replacement
  • Players type [#spawn] → icon + text (requires chatmod.chaticon)
  • Players type [##spawn] → icon only (requires chatmod.chaticon)
  • Supports runcommand, sugcommand, openurl click actions
  • Supports predefined item slot references (item: "item:1") for hover previews
  • Permission node per placeholder

📦 Item Placeholders

PlaceholderWhat it showsPermission
[item]Held item name (formatted, with hover preview)chatmod.chatitem
[item:N]Predefined item in slot N (1–54)chatmod.chatitem.number
[#item]Sprite icon + name of held itemchatmod.chatitem.icon
[##item]Sprite icon only of held itemchatmod.chatitem.icon_only
[#item:N]Sprite icon + name of predefined slot Nchatmod.chatitem.icon
[##item:N]Sprite icon only of predefined slot Nchatmod.chatitem.icon_only

Predefined item slots (1–54) are managed in-game via /chatmod items — a full double-chest GUI. Admins with chatmod.items.edit can place items into any slot directly.


🏷️ Player Tagging & Mentions

  • @PlayerName — highlights the player's name and plays a pling sound to notify them. Requires chatmod.player.tag.
  • @everyone — highlights @everyone with a ping sound for the entire server. Requires chatmod.player.tag.everyone.
  • /tag <player> <message> — dedicated command to send a highlighted, notifying message to a specific player. Requires chatmod.tag.command.

🎨 Chat Colors

Players with chatmod.chat.colors can use & color/formatting codes and &#RRGGBB hex colors in their regular chat messages.


📊 Built-in Placeholders

PlaceholderValue
%player%Player's name
%player_uuid%Player's UUID
%player_ping%Player's current ping (ms)
%player_world%Player's current world
%player_x% / %player_y% / %player_z%Player's coordinates
%playtime%Total tracked playtime (formatted)
%last_play_time%Last login timestamp
%player_first_joined%First join timestamp
%online_players%Current player count
%max_players%Server max players
%server_name%Server MOTD name
%date%Current date
%time%Current time
%datetime%Full date + time + timezone
%timezone%Server timezone short name
%countdown%Time remaining in a scheduled sequence
%scheduled_end_time%End time of current scheduled sequence
%scheduled_end_datetime%Full end datetime of current scheduled sequence

Additionally, Placeholder API (PAPI) placeholders are supported everywhere — any registered PAPI placeholder is resolved automatically.


💾 Player Data Tracking

Persistently tracks per-player total playtime, first login time, and last login time per world. Saved to chatmod_playerdata.json in the world folder.


⚙️ Configuration Files

All configs live in config/chatmod/ and support hot-reload via /chatmod reload. Legacy .json files from older versions are automatically migrated to .yml on first load.

FilePurpose
chatmod.ymlMOTD, legacy cycling broadcasts, server timezone
messages.ymlAll system/error messages, info command headers/footers
placeholders.ymlCustom chat placeholders, item format strings
predefined_broadcasts.ymlNamed reusable broadcast templates
sprites.ymlAtlas sprite aliases and vanilla item overrides
predefined_items.jsonPredefined item slot data (GUI-managed)
scheduled_broadcasts.jsonPersistent active scheduled broadcast tasks
config/chatmod_info/*.ymlIndividual custom info command files

New keys added in updates are automatically added to your existing config on reload — no manual migration needed.


Commands

CommandDescriptionPermission
/chatmod, /cmOpens the main help interfacechatmod.modinfo
/chatmod reloadReloads all configs instantlychatmod.reload
/chatmod create <name>Creates a new info file + commandchatmod.create
/chatmod listLists all active custom info commandschatmod.list
/chatmod testmotdSends the MOTD to yourselfchatmod.testmotd
/chatmod testbroadcastFires the next legacy cycling broadcastchatmod.testbroadcast
/chatmod itemsOpens the predefined items GUIchatmod.items / chatmod.items.edit
/tag <player> <message>Sends a tagged/highlighted message to a playerchatmod.tag.command

Broadcast Commands

CommandDescriptionPermission
/chatmod bclistLists all predefined broadcast nameschatmod.bc.list
/chatmod bcshow <name>Previews a broadcast locallychatmod.bc.show
/chatmod bc <name>Sends a predefined broadcast nowchatmod.bc.sendnamed
/chatmod bcnow <message>Sends an immediate ad-hoc broadcastchatmod.bc.now
/chatmod time <interval> bc <name>Schedules a predefined broadcastchatmod.bc.sendnamed
/chatmod time <interval> bcnow <msg>Schedules an ad-hoc broadcastchatmod.bc.now
/chatmod time <interval> often <count> bc <name>Schedules a repeating predefined broadcastchatmod.bc.sendnamed
/chatmod time <interval> often <count> bcnow <msg>Schedules a repeating ad-hoc broadcastchatmod.bc.now

Info File Management Subcommands

These subcommands are available on every custom info command (e.g. /rules, /help):

SubcommandDescription
/<cmd> [page/section]Displays the info file (specific page or section)
/<cmd> workToggles the command enabled/disabled
/<cmd> permissionToggles permission requirement on/off
/<cmd> permission set <node>Sets the specific permission node
/<cmd> alias add <alias>Adds a command alias
/<cmd> alias remove <alias>Removes a command alias

Permissions

Click to expand all permission nodes

Admin / Command Permissions

  • chatmod.modinfo — Access to /chatmod help
  • chatmod.reload — Reload all configs
  • chatmod.create — Create new info files
  • chatmod.list — List info commands
  • chatmod.testmotd — Test the MOTD on yourself
  • chatmod.testbroadcast — Fire the next legacy broadcast
  • chatmod.name.modify — Modify info file settings (work/permission/alias)
  • chatmod.tag.command — Use the /tag command

Broadcast Permissions

  • chatmod.bc.list — View predefined broadcast list
  • chatmod.bc.show — Preview predefined broadcasts locally
  • chatmod.bc.sendnamed — Send predefined broadcasts (and schedule them)
  • chatmod.bc.now — Send / schedule ad-hoc broadcasts

Item Permissions

  • chatmod.items — View-only access to the items GUI
  • chatmod.items.edit — Edit access to the items GUI
  • chatmod.chatitem — Use [item] (held item text placeholder)
  • chatmod.chatitem.number — Use [item:N] (predefined slot text placeholder)

Atlas Sprite Permissions (1.21.9+ only)

  • chatmod.chaticon — Use [#SpriteName] sprite icons in chat
  • chatmod.chatitem.icon — Use [#item] / [#item:N] (icon + name)
  • chatmod.chatitem.icon_only — Use [##item] / [##item:N] (icon only)

Chat Permissions

  • chatmod.chat.colors — Use & color codes and &#RRGGBB hex in chat
  • chatmod.player.tag — Tag players with @Name
  • chatmod.player.tag.everyone — Tag everyone with @everyone

Info File Permissions

  • chatmod.info.<name> — Access a specific custom info command (when permission is enabled on it)

Server Timezone Configuration

The serverTimezone key in chatmod.yml ensures all date/time placeholders (%time%, %date%, %datetime%) display in the correct timezone. Use IANA timezone names — e.g. Europe/Brussels, America/New_York, Asia/Tokyo.


Modpack Policy

  • ✅ You may include ChatMod in any modpack.
  • 💙 Credit is appreciated but not required.
  • ❌ Do not modify the mod's JAR file directly.
  • ❌ The modpack, or access to this mod within it, must not be sold.

Совместимость

Minecraft: Java Edition

26.1.x1.21.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Детали

Лицензия:LicenseRef-All-Rights-Reserved
Опубликован:11 месяцев назад
Обновлён:2 дня назад
Главная