Tags
Creators
Details
2.1.0
Compatibility
Required content
Changes
ChatMod ā Major Update š§± Atlas Sprite System ā Overhaul
[#blockname] sprite tokens now work in every config context ā MOTD, interval broadcasts, predefined broadcasts, info files, and chat ā no longer restricted to OP-level players sprites.yml vanilla_replacements section now takes highest priority over all built-in sprite logic, including for [#chest]-style tokens (previously vanilla replacements only applied to held-item display, not typed tokens) [#chest] and any [#blockname] token now uses the same custom replacement as holding that item
š¤ Player Head & Player Reference System ā New Feature
[#playerhead:Name] ā renders an inline player head sprite glyph in any context [@Name] ā renders a formatted player name (text only) with hover and click [#@Name] ā renders player head sprite + formatted name with hover and click [##@Name] ā renders player head sprite only with hover and click All three accept %player% variants for dynamic contexts: [@%player%], [#@%player%], [##@%player%] Bare forms [@], [#@], [##@] resolve to the current player context (self) All work in every config: chat, MOTD, broadcasts, predefined broadcasts, info files Player head uses the correct MC 26.1.x PlayerSprite component format ({"type":"object","player":{"name":"..."},"hat":true}) @name and name@ trailing form both accepted; [@name], [#@name], [##@name] now correctly excluded from the chat @-tag interceptor
š¬ Player Name Hover ā New Feature
Hovering any player name in chat now shows a fully customisable tooltip instead of the vanilla "Name / Type: Player / UUID" popup Applies to chat display names, advancements, and all [@] / [#@] / [##@] tokens Permission-based hover profiles ā define different tooltips for different ranks (e.g. admins see ping, UUID, world; regular players see rank and balance) Each profile has two independent sections:
player_lines / player_command ā shown when hovering the sender's name in chat chat_lines / chat_command ā shown when hovering an inline [@Name] token
Clicking a player name can trigger a command (suggest:/msg %player% by default) EcobalAPI support ā %ecobal_balance% and %ecobal_balance_formatted% available in hover lines (soft dependency, no crash if not installed) TextPlaceholderAPI placeholders supported in hover lines (e.g. %luckperms:primary_group_name%) Hover styles no longer bleed into the chat message body (isolated to the name component leaf nodes only)
š·ļø @Tag System ā Improvements
@PlayerName and PlayerName@ both accepted as tag forms @everyone and everyone@ both accepted; output always renders as @everyone at the front Tag formats (player_tag_format, everyone_tag_format) moved from messages.yml to placeholders.yml alongside all other formatting configuration
šØ Chat Colour ā New Feature (/cm chatcolor)
/cm chatcolor blue ā set a persistent colour that prepends every chat message
/cm chatcolor b or /cm chatcolor &b or /cm chatcolor 14568f ā all input forms accepted
/cm chatcolor [#dirt] ā use an atlas sprite as a chat prefix
/cm chatcolor player ā use your own player head sprite as a chat prefix
/cm chatcolor (bare command, no argument) ā clears your colour
/cm chatcolor <player> ā admins can set/clear other players' colours
Permission nodes: chatmod.chatcolor.self, chatmod.chatcolor.others, chatmod.chatcolor.<colorname>, chatmod.chatcolor.RRGGBB (hex), chatmod.chatcolor.sprites (all sprites), chatmod.chatcolor.sprite.<name>, chatmod.chatcolors (all colours wildcard)
š Permission Split ā chatmod.chat.colors
chatmod.chat.colors replaced by two separate nodes:
chatmod.chat.color ā allows colour codes (&0ā&f, &#RRGGBB) in chat chatmod.chat.format ā allows formatting codes (&l, &o, &n, &m, &k, &r) in chat
š¢ Broadcast System ā Improvements
broadcast_randomize: true ā broadcasts picked randomly instead of in order Per-player-count intervals ā broadcast_player_count_intervals list: configure shorter intervals at higher player counts, evaluated dynamically every tick /cm bcnow <player> chat/title/actionbar/bossbar <message> ā send an ad-hoc broadcast to a single specific player (existing global bcnow commands unchanged)
š¦ Items GUI ā Paging
/cm items <page> ā GUI now supports unlimited item pages (54 items per page) [item:N] placeholder slot numbers are now unbounded (page 2 = slots 55ā108, etc.) /cm items 2, /cm items 3, etc. ā open subsequent pages Items on other pages are preserved when editing any single page
āļø Config ā placeholders.yml Expanded
All player-name and tag formatting now centralised in placeholders.yml New fields: player_tag_format, everyone_tag_format, player_name_format, player_icon_name_format, player_icon_only_format New player_hover_profiles map replacing the old single hover format ā supports named profiles with permissions, separate player/chat sections, and independent click commands All player_* format strings support full ChatMod syntax including sprite tokens and [##@%player%]
āļø Config ā chatmod.yml New Fields
broadcast_randomize: true/false broadcast_player_count_intervals: list of min_players + interval_seconds entries
š§ Fixes
&+ centering now correctly counts atlas sprite tokens as 1 character wide instead of ignoring them [#@Name] / [##@Name] / [@Name] tokens no longer intercepted by the @-tag pattern in chat processing Hover styles on player display names no longer propagate into the appended message body Player head sprite purple/black box fixed ā correct MC 26.1.x JSON codec format used ({"type":"object",...} not {"type":"minecraft:object",...}) vanilla_replacements in sprites.yml now evaluated before aliases and built-in overrides (correct priority order)
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:UeyZY1Lc:j5wsfs00"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:UeyZY1Lc:j5wsfs00"
}

