Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Creators
Details

ChatMod - Advanced Server Messaging & Info
ChatMod transforms your server's communication! This powerful server-side Fabric mod for Minecraft 1.21.6 provides administrators with robust tools to engage players, deliver announcements, and manage server information efficiently. Enhance server interaction through highly customizable broadcast messages, dynamic MOTD, user-definable info commands, player tagging, and more.
Features
Dynamic Message of the Day (MOTD)
- Greet players with personalized welcome messages upon joining.
- Utilize a rich set of placeholders (player name, playtime, last login, server stats).
- Fully customizable message content with Minecraft color codes (
&c
), hex colors (&#RRGGBB
), text formatting (&l
for bold,&o
for italic), and interactive elements (hover/click). - Enable or disable via
chatmod.json
.
Scheduled & Ad-Hoc Global Broadcasts
- Multiple Broadcast Types: Send messages as standard chat, action bar text, prominent titles/subtitles, or dynamic boss bars with custom colors and styles.
- Predefined Broadcasts: Create named templates (e.g.,
"vote_reminder"
,"event_soon"
) inpredefined_broadcasts.json
for easy reuse. Control visibility with optional permission nodes per broadcast. - Ad-Hoc Broadcasts: Send one-off global messages directly with
/chatmod bcnow "your message"
. - Advanced Scheduling (
/chatmod time ...
):- Delayed Single Broadcast: Send a predefined or ad-hoc message once after a specified delay (e.g.,
/chatmod time 10m bc promo_event
). Players running the command receive a preview and confirmation. - Repeating Broadcasts: Schedule broadcasts to repeat a set number of times over a total duration.
- Example:
/chatmod time 30m often 5 bc event_promo
- sends "event_promo" globally immediately, then 4 more times, with the entire sequence spread over 30 minutes (last message at the 30-minute mark). - Example:
/chatmod time 1h often 0 bcnow "Server restarting in 1 hour!"
- sends the message globally immediately and then again once after 1 hour.
- Example:
- Supports time units:
s
(seconds),m
(minutes),h
(hours),d
(days).
- Delayed Single Broadcast: Send a predefined or ad-hoc message once after a specified delay (e.g.,
- Placeholder Support: Broadcasts can use placeholders like
%online_players%
,%time%
,%date%
,%countdown%
(for scheduled sequences), and more. - Legacy Cycling Broadcasts: Includes a traditional cycling broadcast system configurable in
chatmod.json
(interval, messages, type).
Customizable Info Commands (e.g., /rules
, /help
)
- Create unlimited custom commands that display text from dedicated JSON files stored in
config/chatmod_info/
. - Rich Content: Info files support multiple pages, full Minecraft text formatting (colors, styles, hex codes), clickable actions (run command, suggest command, open URL, copy to clipboard), hover text, and placeholders.
- Easy Creation & Management: Use
/chatmod create <command_name>
to get started.
Predefined Items & Chat Display
- Placeholders in Chat:
[item]
: Displays the item in a player's main hand if they havechatmod.chatitem
permission; otherwise, it shows "item".[item:#]
: Displays a predefined item from the specified admin-configured slot (1-54) if the player haschatmod.chatitem.number
permission; otherwise, it shows "item".
- GUI Management: Admins with
chatmod.items.edit
(orchatmod.items
for view-only) can manage 54 predefined item slots via an in-game GUI using/chatmod items
.
Player Tagging in Chat
- @PlayerName: Mention players using
@
followed by their name (case-insensitive matching). Requireschatmod.player.tag
permission.@
and tagged player's name highlight in yellow by default, but can be color-coded (e.g.,&c@PlayerName
).- Formatting modifiers (
&k
,&l
,&m
,&n
,&o
) affect only the player's name part. - The tagged player receives a ping sound. Does not allow self-tagging.
- @everyone: Notify all online players (except sender). Requires
chatmod.player.tag.everyone
permission.- Pings all online players.
@
and "everyone" text default to yellow but can be color-coded (e.g.,&c@everyone
).- Formatting modifiers (
&k
,&l
,&m
,&n
,&o
) affect only the "everyone" text part.
- Multiple tags are supported in a single message. If permission is denied, tags display as plain text.
Chat Color Permission
- Players with
chatmod.chat.colors
permission can use&
style color codes (e.g.,&c
,&#RRGGBB
) in their regular chat messages. - Without this permission,
&
codes appear literally.
Customizable Chat Name Formatting
- Admins can define a custom prefix and suffix around player names for messages handled by ChatMod (e.g., when
[item]
or tags are used, or colors are enabled). - Managed via
/chatmod items format <prefix/suffix> <value>
.
Player Data Tracking
- Tracks player total playtime, first login time, and last login time for use in placeholders.
- Data is saved persistently per world in
chatmod_playerdata.json
.
Comprehensive Configuration & Reloadable
chatmod.json
: Main mod settings (MOTD, legacy broadcasts, server timezone).messages.json
: Customizable system messages, info command headers/footers, chat name prefix/suffix.predefined_broadcasts.json
: Define reusable named broadcast messages.scheduled_broadcasts.json
: Stores data for active persistent scheduled broadcasts.config/chatmod_info/*.json
: Individual files for each custom info command.predefined_items.json
: Stores item data for the[item:#]
placeholder.- Reloadable: Use
/chatmod reload
to refresh all configurations (exceptscheduled_broadcasts.json
) without a server restart.
Permissions Support
- Integrates with the Fabric Permissions API (v0).
- Requires a compatible permissions manager (e.g., LuckPerms, suggested) for permission nodes to function effectively.
- If no permission manager is found, most ChatMod commands default to requiring OP level 2 access (some internal UI-triggered actions default to true).
Commands
/chatmod
,/cm
(Displays the main help interface with clickable navigation)/chatmod reload
(Reloads all ChatMod configurations)/chatmod create <command_name>
(Creates a new custom info command)/chatmod list
(Lists all custom info commands)/chatmod name <old_name> <new_name>
(Renames an info command)/chatmod delete <command_name>
(Deletes an info command)
Broadcast Commands (under /chatmod
):
/chatmod bclist
,/cm bcl
(Lists names of all predefined broadcasts)/chatmod bcshow <broadcast_name>
(Shows content of a predefined broadcast)/chatmod bcnow <"your message" | broadcast_name>
(Sends an ad-hoc or predefined broadcast immediately)
Scheduled Broadcast Commands (under /chatmod time ...
or /cm time ...
):
/chatmod time <duration> [often <times>] bc <broadcast_name>
(Schedules a predefined broadcast)/chatmod time <duration> [often <times>] bcnow <"your message">
(Schedules an ad-hoc broadcast)/chatmod time list
(Lists all active scheduled broadcasts)/chatmod time delete <task_id>
(Deletes a scheduled broadcast task)
Predefined Items & Formatting Commands (under /chatmod items
or /cm items
):
/chatmod items
(Opens the GUI for managing predefined items (slots 1-54))/chatmod items format prefix <value>
(Sets the chat name prefix)/chatmod items format suffix <value>
(Sets the chat name suffix)/chatmod items format reset prefix
(Resets the chat name prefix)/chatmod items format reset suffix
(Resets the chat name suffix)
Info File Commands (user-defined, e.g., /rules
, /help
):
/<your_info_command_name>
(Displays the content of your custom info command)
Available Placeholders
Placeholders can be used in MOTD messages, broadcasts, and info file content.
Player Specific (require a player context; may default to "Server" or "N/A" in global contexts):
%player%
: Player's name.%player_uuid%
: Player's UUID.%player_ping%
: Player's network latency.%player_world%
: Identifier of the player's current world.%player_x%
,%player_y%
,%player_z%
: Player's coordinates (formatted to one decimal).%playtime%
: Player's total playtime (e.g., "1d 2h 30m 5s").%last_play_time%
: Date/time of player's previous login (uses server timezone).%player_first_joined%
: Date/time of player's first server join (uses server timezone).
Server Specific:
%server_name%
: Server's MOTD (often fromserver.properties
).%online_players%
: Current number of online players.%max_players%
: Maximum player capacity.%server_tps%
: Currently displays "N/A" (direct TPS measurement not built-in).
Date & Time (Uses serverTimezone
from chatmod.json
):
%date%
: Current server date (e.g., "2025-06-04").%time%
: Current server time (e.g., "02:57:48").%datetime%
: Current server date and time with timezone (e.g., "2025-06-04 02:57:48 CEST").%timezone%
: Short display name of the server's configured timezone (e.g., "CEST").
Scheduled Broadcast Specific:
%countdown%
: Time remaining until the final broadcast in a sequence (e.g., "15m 30s left").%scheduled_end_time%
: Wall-clock time of the final broadcast in a sequence (server timezone).%scheduled_end_datetime%
: Full date and time of the final broadcast in a sequence (server timezone).
Permissions
Click to view all permission nodes and their descriptions
chatmod.modinfo
: Allows access to the base/chatmod
help command. (Default for all players)chatmod.reload
: Allows usage of/chatmod reload
. (Requires OP Level 2)chatmod.create
: Allows usage of/chatmod create
. (Requires OP Level 2)chatmod.list
: Allows usage of/chatmod list
. (Requires OP Level 2)chatmod.name.modify
: Allows modifying info file names via/chatmod name
. (Requires OP Level 2)chatmod.delete
: Allows usage of/chatmod delete
. (Requires OP Level 2)chatmod.broadcast.list
: Allows usage of/chatmod bclist
. (Requires OP Level 2)chatmod.broadcast.show
: Allows usage of/chatmod bcshow
. (Requires OP Level 2)chatmod.broadcast.now
: Allows usage of/chatmod bcnow
. (Requires OP Level 2)chatmod.broadcast.schedule
: Allows usage of/chatmod time ...
for scheduling broadcasts. (Requires OP Level 2)chatmod.broadcast.schedule.list
: Allows usage of/chatmod time list
. (Requires OP Level 2)chatmod.broadcast.schedule.delete
: Allows usage of/chatmod time delete
. (Requires OP Level 2)chatmod.items
: Allows view-only access to the/chatmod items
GUI. (Requires OP Level 2)chatmod.items.edit
: Allows editing items in the/chatmod items
GUI. (Requires OP Level 2)chatmod.items.format
: Allows usage of/chatmod items format
commands for chat name formatting. (Requires OP Level 2)chatmod.chatitem
: Allows usage of the[item]
placeholder in chat. (Default for all players)chatmod.chatitem.number
: Allows usage of the[item:#]
placeholder in chat. (Default for all players)chatmod.player.tag
: Allows tagging individual players with@PlayerName
. (Default for all players)chatmod.player.tag.everyone
: Allows tagging all players with@everyone
. (Requires OP Level 2)chatmod.chat.colors
: Allows usage of color codes (&c
,&#RRGGBB
) in chat messages. (Requires OP Level 4)chatmod.info.<command_name>
: Allows usage of a specific custom info command (e.g.,chatmod.info.rules
). (Default for all players when the info command is created)
Server Timezone Configuration (serverTimezone
in chatmod.json
)
The serverTimezone
setting in chatmod.json
is crucial for accurate date/time placeholders (e.g., %time%
, %date%
, %datetime%
, %scheduled_end_time%
). It ensures consistency, especially if your server community is spread across different regions. Use IANA timezone database names. If an invalid timezone is set, the mod defaults to the server's system timezone.
Examples:
- Europe:
Europe/London
,Europe/Paris
,Europe/Berlin
,Europe/Moscow
,Europe/Brussels
- America (North & South):
America/New_York
(Eastern),America/Chicago
(Central),America/Denver
(Mountain),America/Los_Angeles
(Pacific),America/Toronto
,America/Vancouver
,America/Sao_Paulo
,America/Mexico_City
- Asia:
Asia/Tokyo
,Asia/Shanghai
,Asia/Kolkata
,Asia/Dubai
,Asia/Singapore
- Australia:
Australia/Sydney
,Australia/Melbourne
,Australia/Perth
- Africa:
Africa/Cairo
,Africa/Johannesburg
,Africa/Nairobi
Modpack Policy
- You ARE PERMITTED to include ChatMod in any modpack.
- Credit is appreciated but not strictly required.
- Please do not modify the mod's JAR file directly.
- The modpack itself, or access to this mod within the modpack, must not be sold.