|This function is protected, and may only be called in response to a hardware event.
Sends a chat message.
SendChatMessage(msg [, chatType, languageID, target])
- string - The message to be sent. Large messages are truncated to max 255 characters, and only valid chat message characters are permitted.
- string? - The type of message to be sent, e.g.
"PARTY". If omitted, this defaults to
- number? - The languageID used for the message. If omitted the default language will be used: Orcish for the Horde and Common for the Alliance, as returned by GetDefaultLanguage()
- string|number? - The player name or channel number receiving the message for
- HW - denotes if the chatType requires a hardware event when in the outdoor world, i.e. not in an instance/battleground.
|"SAY"||/s, /say||Chat message to nearby players|
|"EMOTE"||/e, /emote||Custom text emote to nearby players (See DoEmote for voice emotes)|
|"YELL"||/y, /yell||Chat message to far away players|
|"PARTY"||/p, /party||Chat message to party members|
|"RAID"||/ra, /raid||Chat message to raid members|
|"RAID_WARNING"||/rw||Audible warning message to raid members|
|"INSTANCE_CHAT"||/i, /instance||Chat message to the instance group (Dungeon finder / Battlegrounds / Arena)|
|"GUILD"||/g, /guild||Chat message to guild members|
|"OFFICER"||/o, /officer||Chat message to guild officers|
|Whisper to a specific other player, use player name as target argument|
|"CHANNEL"||/1, /2, ...||Chat message to a specific global/custom chat channel, use channel number as target argument|
|"AFK"||/afk||Not a real channel; Sets your AFK message. Send an empty message to clear AFK status.|
|"DND"||/dnd||Not a real channel; Sets your DND message. Send an empty message to clear DND status.|
|"VOICE_TEXT"||Sends text-to-speach to the in-game voice chat.|
- Fires CHAT_MSG_* events, e.g. CHAT_MSG_SAY and CHAT_MSG_CHANNEL
- "RAID_WARNING" is accessible to raid leaders, or to all members of a party (when not in a raid)
- "WHISPER" works across all realms in a region, it's not restricted to connected realms and you don't need to have interacted with the recipient before.
Sends a message, defaults to "SAY".
Sends a /yell message.
SendChatMessage("For the Horde!", "YELL"); DoEmote("FORTHEHORDE")
Sends a message to General Chat which is usually on channel index 1
SendChatMessage("Hello friends", "CHANNEL", nil, 1)
Whispers your target.
SendChatMessage("My, you're a tall one!", "WHISPER", nil, UnitName("target"))
Sets your /dnd message.
SendChatMessage("I'm punting a gnome", "DND")
Speaks in Thalassian, provided your toon knows the language.
SendChatMessage("Ugh, I hate Thunder Bluff! You can't find a good burger anywhere.", "SAY", 10)
Sends a message to a raid, or instance group, or party.
SendChatMessage("Get out of the fire!", IsInRaid() and "RAID" or IsInGroup(LE_PARTY_CATEGORY_INSTANCE) and "INSTANCE_CHAT" or "PARTY")
- Patch 9.1.0 / API (2021-06-29): Added "VOICE_TEXT"
- Patch 8.2.5 / API (2019-09-24): Including Patch 1.13.3; Partially protected; "SAY", "YELL" and "CHANNEL" must be triggered by a hardware event 
- Patch 5.1.0 / API (2012-11-27): Added "INSTANCE_CHAT" and removed "BATTLEGROUND"
- Patch 5.0.4 / API (2012-08-28): Changed language argument from a string to a numeric languageID
- Patch 2.4.0 / API (2008-03-25): Large messages are truncated to 255 characters and no longer trigger disconnects
- Patch 2.0.1 / API (2006-12-05): Throws an error when attempting to speak a language you don't know
- Patch 1.11.0 / API (2006-06-19): Added "RAID_WARNING" for raid leaders (subsequently available in party mode by all party members circa Patch 2.0)