Brues 6348b85740 Draw the stats window with art 1.12 actually ships
Neither texture it asked for exists on this client, and ClassicAPI ships no
art of its own. UI-DialogBox-Background-Dark is a later addition -- 1.12 has
only the un-suffixed UI-DialogBox-Background -- and ItemSocketingFrame is TBC,
so the featured emotes' border was cropped out of a sheet whose folder isn't
there at all.

UI-Quickslot2 is the obvious stand-in for that border, but its hole is ~55% of
the texture, so a 70px emote needs a 128px ring and runs into the title above
and the caption below. It is a small backdrop frame instead, styled like the
autocomplete popup, which keeps the 86/70 sizing. The emote moves onto that
frame to draw above the backdrop; topSentTex/topSeenTex keep their names, so
the animator still finds them.
2026-09-14 14:05:29 -05:00
2026-09-04 03:17:37 -05:00
2026-08-31 20:32:24 -05:00
2026-08-31 20:32:24 -05:00
2026-09-08 17:30:48 -05:00
2026-09-04 03:17:37 -05:00
2026-09-14 13:58:06 -05:00
2026-09-04 03:17:37 -05:00

ClassicAPI

TwitchEmotes

Twitch, BetterTTV, FrankerFaceZ and Discord emotes in World of Warcraft 1.12.1.

Type Kappa, PepeLaugh or :skull: in chat and it comes out as the emote — for you and for everyone else running the addon. Over 4,000 codes across 28 packs, 122 of them animated, rendered inline in chat, chat bubbles and mail.

Originally written for retail by Ren; backported to vanilla by Brues.

Features

  • Emotes everywhere — say, yell, guild, officer, whisper, party, raid, battleground, channels and in-game mail. Each channel can be toggled on its own.
  • Animated emotes at ~30fps, in chat, in the picker, and over chat bubbles.
  • Autocomplete — type : plus two characters for a ranked popup (prefix, then substring, then fuzzy). Tab cycles the suggestions, space or a click accepts one.
  • Emote picker on the minimap button, grouped by pack. Mark the packs you use as favourites and hide the rest.
  • Clickable emotes — hover an emote in chat to see its code, shift-click to put it in your edit box.
  • Usage statistics — how often you have sent and seen each emote (shift-click the minimap button).

Minimap button: click for the picker, shift-click for statistics, right-click for options.

Requirements

ClassicAPI is required. The 1.12 client cannot draw cropped inline textures on its own, which is what animated emotes and sprite sheets need. Without the DLL loaded the addon disables itself and points you at the download.

Adding an emote

tools/add_emote.py takes a BetterTTV emote, converts it to a texture the 1.12 client can decode, and registers it:

python tools/add_emote.py https://betterttv.com/emotes/<id> PepeCool
S
Description
No description provided
Readme
25 MiB
v6
Latest
2026-09-14 19:21:34 +00:00
Languages
Lua 98.6%
Python 1.4%