Tags
Creators
Details
2.1.7
Compatibility
Required content
Changes
ChatMod — Sprite Update
The biggest update yet for atlas sprite icons: custom resource-pack textures, Custom Model Data in [#item], an update-safe sprites.yml with every vanilla sprite, and two new in-game tools.
✨ New
Resource pack support
- New
resource_packs:list insprites.yml: point ChatMod at your server resource pack. You can use zip files or unzipped folders, and%world%stands for the world folder. - Default entries are
config/chatmod/resourcepacksand%world%/resources.zip. - Automatic aliases: every custom texture in an atlas can be typed as
[#file_name]with no config. On a name clash with vanilla it becomes[#namespace_file_name]. - ChatMod reads the pack's
atlases/*.json, so textures in your own folders land in the right atlas.
Custom Model Data & item models in [#item] / [##item]
[#item]now shows the icon the player actually sees, using the item'sminecraft:custom_model_datacomponent (floats, strings, flags, colors), read from your pack's item model definitions.minecraft:item_modelcomponents are supported.- Player heads show the head's skin.
- New manual rule sections in
sprites.yml(these win over the pack):custom_model_data:— e.g.minecraft/paper|floats:1001: "items|myserver:item/ticket";"*"matches any item, andfloats[1]:5checks a specific index.item_models:— e.g.myserver:ruby_sword: "items|myserver:item/ruby_sword".
Extended aliases
Any alias in sprites.yml can now be a map with its own options:
vip_star:
sprite: "gui|custom/star"
permission: "chatmod.sprite.vip" # this node lets players type it
fallback: "*" # text for console / Discord / players without the pack
tint: true # & colour codes also colour this icon
New settings: section in sprites.yml
fallback_format(default[%name%]) — what a sprite becomes where it can't be drawn: console, Discord relay, players without the pack.item_fallback_format(default empty) — the same for[#item]icons.tint_sprites(defaultfalse) —&e[#diamond]now shows a normal diamond instead of a yellow-tinted one; set totruefor the old behaviour.auto_aliases(defaulttrue) andpack_auto_reload(defaulttrue).
New syntax
[#atlas|sprite]— any sprite from any atlas, e.g.[#gui|hud/heart/full],[#particles|heart],[#celestials|moon/full_moon].[#namespace:path]— namespaced sprites from your pack, e.g.[#myserver:item/ruby].
New commands
/cm sprites [page]and/cm sprites find <text> [page]— browse every alias with a live preview. Hover a line to see the sprite value, click it to put the alias in your chat box. Permission:chatmod.sprites./cm spriteinfo— shows step by step how[#item]picks the icon for the item in your hand. Permission:chatmod.spriteinfo.
New permissions
chatmod.sprites,chatmod.spriteinfochatmod.sprite.<name>— per-alias node set withpermission:insprites.yml
🔄 Changed
sprites.ymlrewritten with over 3,300 aliases covering the vanilla atlases: blocks, items, GUI/HUD, mob effects, particles, paintings, map decorations, celestials, banners, shields, chests, shulker boxes and decorated pots.sprites.ymlis now update-safe: on every load, keys missing from your file are added automatically. Your existing aliases and edits are never changed or removed. A few old default values that pointed at textures no longer in the game are upgraded once, and a backup (sprites.yml.bak-v<N>) is written first.- Atlas routing updated for the current atlas layout. Old paths are redirected automatically: the
mob_effectsatlas is now part ofgui, and oldpainting/,particle/,celestials/andmap/decorations/paths are remapped. - The held-item icon now uses a smarter lookup order:
sprites.ymlrules, then the resource pack, then the item model, then player-head skins, then vanilla replacements, then built-in overrides, then the vanilla sprite list. Items whose texture name differs from the item name now get the correct icon. - Sprite icons keep the hover and click events of the text around them.
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:WXD51UVk"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:UeyZY1Lc:WXD51UVk"
}

