Stryk's Emote Wheel

A World of Warcraft addon that gives you a draggable 12-slice radial emote menu, triggered by a small interactive button you can place anywhere on screen.

File Details

StryksEmoteWheel-1.1.0.zip

  • R
  • May 3, 2026
  • 655.80 KB
  • 126
  • 12.0.5+3
  • Classic + 3

File Name

StryksEmoteWheel-1.1.0.zip

Supported Versions

  • 12.0.5
  • 5.5.3
  • 2.5.5
  • 1.15.8

[1.1.0] - 2026-05-03

New Features and Changes

  • Class Color theme — new "Class Color" option in the theme dropdown; automatically detects the player's class at login and applies the official class color to borders, spokes, and accents against a dark neutral background; appears at the top of the theme list
  • Class Icon — new "Class Icon" option in the icon dropdown; uses the player's class icon texture; appears at the top of the icon list
  • 3-tab Settings panel — Settings panel widened to 380px with three tabs: Wheel, Controls, and Debug
  • Debug tab — dedicated Debug tab housing the "Test All Emotes" and "Preview Class Colors" buttons; entire tab content is gated behind /sew debug and replaced with a prompt when debug mode is off
  • Test All Emotes improvements — button now acts as a stop button mid-run; prints "[SEW] Test started." on begin and "[SEW] Test stopped." on cancel; Dance and Lean added to the skip list
  • Move cursor on title bar hover — hovering over the Settings panel title bar shows a four-directional move cursor (ui-cursor-move)
  • Move cursor on Shift+hover — hovering over the trigger or the expanded wheel hub while holding Shift shows the move cursor, indicating the wheel can be repositioned
  • Wheel stays open after drag — dragging the expanded wheel to a new position no longer collapses it; the first click after repositioning correctly fires the emote
  • Hide on fullscreen map — the trigger, wheel, and Settings panel all hide automatically when the fullscreen world map opens and reappear when it closes
  • Slice preview on slot hover — hovering an emote slot button in the Settings panel highlights the corresponding wheel slice with a color change, outline, and slight font size increase
  • Hold-to-drag repositioning — holding left mouse for 0.3s on the trigger or open wheel enters drag mode with a move cursor; replaces Shift+drag
  • Key hold to open wheel — assign any key or modifier+key combo in the Controls tab; holding the key opens the wheel; releasing the key or clicking the hub fires the highlighted emote; works in both Snap to Cursor and standard mode; supports bare modifier keys (Shift, Ctrl, Alt) as well as combos
  • Controller binding — dedicated controller bind row in the Controls tab; supports LT, LB, LS, RS, RT, face buttons, and modifier+button combos (e.g. LT+PAD1); holding opens the wheel, releasing or clicking fires the selected emote
  • Controller stick selection — Controls tab dropdown selects which analog stick (Left or Right) drives slice highlighting while the wheel is open; defaults to Right Stick
  • Snap to Cursor — optional mode (Controls tab, on by default); when enabled, holding the key or button snaps the wheel and trigger to the cursor position; mouse direction or analog stick angle selects a slice; releasing fires the emote and snaps back; clicking the hub also fires the emote
  • Camera lock during radial — stick input is routed to the wheel frame while open, preventing the camera from moving during controller-driven emote selection
  • Keybind hold respects blocked state — holding a key or controller button while dead, in ghost form, or during a boss encounter no longer opens the wheel; warning message shown in chat (throttled to once per 2 seconds)
  • Settings panel position — the Settings panel saves its position when dragged and restores it on login; /sew reset returns it to screen center

Settings and Controls Tab Layout

  • Wheel Size moved above Position and Size [Reset] in the General section
  • Emote slot grid now fills the full available panel width
  • Preview Class Colors button relocated to the Debug tab
  • Snap to Cursor appears as a labelled row in the Controls tab (label in column 1, checkbox in column 2), consistent with the Keyboard and Controller rows
  • Hint text split by input type: keyboard modifiers shown below the Keyboard row, controller modifiers below the Controller row; both aligned to the bind button column

Code Quality

  • Named color constants — all hardcoded RGBA values in Settings.lua replaced with named constants (BTN_BG, BTN_BORDER, BTN_TEXT, PANEL_BG, PANEL_BORDER, DROP_BG, ACCENT, TITLE_TINT, PREVIEW_*) and an rgb() helper
  • EW.refreshDebugTab() — exposed function to sync Debug tab visibility; called on tab open and on /sew debug toggle
  • TOC version sync — install script now syncs all flavour TOC files to match _Mainline on every run