promotional bannermobile promotional banner
premium banner
Adds chat coloring and emphasis for /me or delineator detected emoting such as *waves* or /me waves

Description

ChatEmote adds a /me emote command familiar to RP communities. Type /me stretches and nearby players see:

* Kazyyk stretches

Three Ways to Emote

Command: /me stretches — always works, explicit and reliable.

Asterisks: Just type *waves* in chat — ChatEmote detects the classic RP asterisk convention and converts it automatically. You can even swap out the asterisk for another symbol, or support multiple.

Inline: Type Hii! *waves* and ChatEmote splits it for you — "Kazyyk: Hii!" goes out as normal chat, then "* Kazyyk waves" follows as an emote. Mix speech and actions in one message.

Proximity-Aware

Emotes are spatial. Only players within range (default 20 blocks) see them. Optionally, emote text can fade in brightness with distance, so a nearby gesture is vivid and a distant one is subtle. Disabled by default.

Inline emotes create natural RP behavior: the chat portion ("Hii!") is global — everyone hears it. The emote portion ("* Kazyyk waves") is proximity — only nearby players see the gesture. A player across town hears your greeting but doesn't see you wave.

Designed for RP Servers

  • Italic light purple text — visually distinct from normal chat, immediately recognizable as an emote
  • Freeform text — players write their own actions in third person, no menu to scroll through
  • No cooldowns, no spam prevention — trust your players or pair with a moderation mod
  • Zero dependencies — works standalone on any server

Works Alongside Murmur

ChatEmote is standalone by design, but it's built to coexist with Murmur (proximity chat). When both are installed, ChatEmote respects Murmur's chat handling — no double messages, no conflicts. Use Murmur for spatial voice (whisper/say/yell) and ChatEmote for spatial actions.

Default emote range (20 blocks) matches Murmur's SAY range so there's no immersion-breaking gap — if you can see someone's wave, you can hear them talk.

Fully Configurable

All settings live in config.json, generated on first run:

Setting Default Description
emoteRange 20 How far emotes travel (in blocks)
emoteColor #CC99FF Base color for emote text
emoteItalic true Whether emotes render in italic
emotePrefix * Character before the player name
fadeColorWithDistance false Dim emotes from far away
chatColor #FFFFFF Color for the chat portion of inline emotes
splitNameColor false Use separate color for player names
nameColor #AAAAAA Player name color (when splitNameColor is on)
delimiterEmotes true Detect delimiter-enclosed emotes in chat
emoteDelimiters ["*"] Delimiter strings that trigger emote detection
inlineEmotes true Extract emotes from mixed messages
commandAliases ["me"] Command names (add more or disable)

Examples

Input Chat output (global) Emote output (nearby only)
/me stretches * Kazyyk stretches
*waves* * Kazyyk waves
Hii! *waves* Kazyyk: Hii! * Kazyyk waves
Nice to meet you *extends hand* Kazyyk: Nice to meet you * Kazyyk extends hand
**bold text** (passes through as normal chat)