# Chat Emojis **Chat Emojis** let players type a `:shortcode:` in chat and have it replaced with a glyph — normally a custom glyph from an ItemsAdder font pack. They are the one cosmetic type that is **never equipped**. There's no "active" chat emoji: simply having access to one lets a player use it in any message, as many times as they like, combined with any others they own. Nothing is stored as a selection — access alone is the whole feature. ## How it works 1. A player types a message containing a shortcode, e.g. `gg :fire: nice run :star:`. 2. For each shortcode in the message, the plugin checks whether the player has that emoji's permission. 3. Ones they have access to are replaced with the configured `value` glyph. Ones they don't are **left exactly as typed** — no error, no stripping. ## Configuration (`chatemojis.yml`) ```yaml chat-emojis: smile: display: "&eSmile" # shown in the menu shortcode: ":smile:" # what the player types in chat value: "" # the glyph it becomes (from your font pack) icon: YELLOW_DYE permission: celestial.cosmetics.chatemoji.smile heart: display: "&cHeart" shortcode: ":heart:" value: "" icon: RED_DYE permission: celestial.cosmetics.chatemoji.heart ``` | Field | Required | Meaning | |---|---|---| | `display` | yes | Name shown in the browse menu | | `shortcode` | yes | The literal text a player types (e.g. `:fire:`) | | `value` | yes | The replacement glyph — usually a private-use `\uE0xx` character from an ItemsAdder pack | | `icon` | yes | Menu icon material (or `PLAYER_HEAD` + `texture:`) | | `permission` | no | Defaults to `celestial.cosmetics.chatemoji.` | > The default file ships ~22 common shortcodes (`:smile:`, `:heart:`, `:fire:`, `:star:`, `:crown:`, …) with **placeholder glyphs**. Replace each `value:` with the real character from your resource pack for them to render. ## Granting access Because access is the whole feature, chat emojis are usually handed out by **permission**, straight to a rank: ``` /lp group vip permission set celestial.cosmetics.chatemoji.fire true /lp group vip permission set celestial.cosmetics.chatemoji.* true # all of them ``` You can also give a real, tradeable vault copy with `/cosmetics give chatemoji ` if you'd rather distribute them like other cosmetics (e.g. as crate rewards). See [Permissions](Permissions-Reference.md) and [Vault & Trading](Vault-and-Trading.md). ## Requirements Chat emojis only *look* like emojis if the glyph exists in the player's resource pack. That means **ItemsAdder** (or another font pack that maps the private-use characters). Without a pack, players see the raw `value` character (often a blank box). --- Next: [Sets](Sets.md)