promotional bannermobile promotional banner
premium banner
Shows secondary, tertiary, and defensive stats on-screen, plus item level, durability, and vendor-format repair cost — in draggable, localized panels built taint-safe for Midnight (12.x).

Description

StatsPro in real-world play — full flat panel sitting next to the action bars during a regular session

StatsPro

A clean on-screen HUD for World of Warcraft Retail. Crit, Haste, Mastery, Versatility — plus item level, tank defensives, gear durability, and optional live repair cost — visible at a glance, mid-pull, without the bloat of a full framework.

Originally inspired by SwiftStats by TaylorSay (MIT) — substantially rewritten and extended with configurable side-panel layouts, durability and repair cost integration, auto-aligning columns, and Midnight (12.x) secret-value safety throughout.


Features

  • Secondary stats — Crit, Haste, Mastery, Versatility, with rating and percentage display options
  • Tertiary stats — Leech, Avoidance, Speed
  • Main stat auto-detect — Strength / Agility / Intellect resolves automatically from your active spec; no toggling when you respec or swap characters
  • Stamina — optional row for tanks tracking effective HP and any spec watching consumable contributions (raid buffs / flask / food included), default OFF
  • Item Level — optional equipped / overall row (271 / 273) with a colored warning when your bags out-level what you are wearing, default OFF
  • Defensive stats — Dodge, Parry, Block, Brewmaster Stagger, and Armor damage reduction
  • Durability — average or worst-slot percentage with auto-color thresholds (green / yellow / red)
  • Repair cost — optional live vendor-format coin display with embedded gold / silver / copper icons, default OFF
  • Three display modes — Flat, Sectioned with block headers, or Split into two movable panels with configurable side-panel contents
  • Localized stat labels and settings UI — automatic translation across all 11 retail WoW locales, with curated short-form stat labels matching each language's WoW client and theorycrafting community shorthand. The entire settings window also localizes — every tab, label, dropdown caption, and button updates live when you switch language, no /reload required. Use the Language dropdown for locale choice (Auto or a fixed locale) and the Label Style dropdown for Full / Short / Hidden label rendering.
  • Per-stat customization — colors, font (LibSharedMedia compatible), font size, text opacity, panel scale
  • Light footprint — core UI in one Lua file, no Ace3; bundles standard LibSharedMedia support for font picking

How it looks

Layouts auto-fit to enabled stats, drag panels anywhere, no awkward gaps when toggling columns. Top: Flat (default secondary stats) and Rating + Percentage (both columns side by side). Middle: With Defensives (Dodge / Parry / Block / Brewmaster Stagger / Armor damage reduction) and Repair Cost at Vendor (vendor-format coin string with inline gold / silver / copper icons). Bottom: Split Mode — two independently draggable panels whose side-panel contents can be customized from Character / Offensive / Tertiary / Defensive / Item Level / Durability / Repair.

StatsPro display modes — flat, rating + percentage, with defensives, repair cost at vendor, and split mode


Localization

Stat labels render in your WoW client's language by default — no setup. Curated short-form translations across all 11 retail WoW locales keep the HUD compact and readable, including the same rating | percentage, defensive stat, item level, durability, and repair rows shown in game:

StatsPro localization preview — live HUD label examples with rating and percentage values, defensives, item level, durability, and coin-style repair cost across all 11 Retail locales

To pick a different language for stat labels, open /ssAppearance tab → Localization → use the Language dropdown. "Auto" follows your WoW client locale. To change how compact the labels look, open /ssLayout tab → Value DisplayLabel Style and choose Full, Short, or Hidden. These settings persist across /reload and across all characters on the account.

The settings window itself also localizes — every label, dropdown caption, and button updates live the moment you change language, without needing to /reload. enUS and ruRU are native quality; the other nine non-English locales (deDE / esES / esMX / frFR / itIT / ptBR / koKR / zhCN / zhTW) ship as best-effort drafts.

If a label reads oddly to you as a native speaker, please open a GitHub issue with the suggested correction — single-row fixes ship in the next patch.


Configuration

Open the settings window with /ss or /statspro. Three tabs (Stats | Layout | Appearance) cover everything. Stats holds Character rows (Show Main Stat, Stamina), Offensive, Tertiary, Defensive, and Gear toggles, including Item Level, with inline color swatches. Layout holds Visibility / Lock, Display Mode, Side Panel Contains routing for Split mode, and Value Display controls (Show Rating / Show Percentage / Label Style / Match Value Color to Stat), plus Scale and Refresh Rate. Appearance holds Typography (Font + Font Size + Text Opacity) and Localization (Language picker + font-coverage warning).

StatsPro settings — Stats, Layout, and Appearance tabs stacked vertically


Slash commands

Type into the chat box. Tab-completion works. All commands are aliases of /ss or /statspro.

slash-commands

Tip: right-click anywhere on the stats panel also opens settings — same as /ss. To bind a key for toggling visibility, run /ss toggle from a macro bound at Esc → Options → Keybindings → Macros.


Highlights

  • Reads at a glance — labels and values stay neatly aligned no matter how many stats you've enabled or what font you've chosen. Toggle to rating-only or percent-only and everything collapses cleanly into a single tight column — no awkward gaps, no drifting percent column.
  • Adapts to your spec — your main stat (Strength / Agility / Intellect) auto-resolves from your active spec. Respec from Brewmaster to Windwalker mid-session, swap from your tank to your mage alt — the displayed stat just follows. No per-character config, no toggling.
  • Tertiary stats on demand — Leech, Avoidance, and Speed are first-class rows with their own toggles. Most stat addons silently omit them; theorycrafting builds that lean on tertiaries can finally see what they're doing without a separate addon.
  • Vendor-accurate repair cost — shows as 46g 40s 81c with the inline gold / silver / copper icons you see at the vendor, not a stripped-down 46g. A lot of older stat addons quietly broke in modern Retail because they rely on the legacy tooltip API; StatsPro uses the new one.
  • Drag once, done forever — your panel positions survive /reload, logout, and client patches. No reset-to-center surprises after a UI reload or expansion update.
  • Configurable from one place — every visible element lives behind /ss: per-stat colors, font via LibSharedMedia, font size and opacity, panel scale, layout preset, split block routing, durability thresholds. No SavedVariables editing, no /reload between tweaks.
  • Built for Midnight (12.x) — works correctly mid-combat where many older stat addons silently break (see the section below).

Built for Midnight (12.x)

Blizzard quietly turned many stat-API returns (GetCombatRating, UnitArmor, even FontString:GetStringWidth) into "secret values" in modern Retail, and the protection has only tightened in Midnight (12.x). Read them naively in combat and you get [secret] placeholders in the UI, or — worse — silently leak taint into action bars, macros, and other addons.

StatsPro defends against this end-to-end:

  • Every stat read is wrapped in pcall + issecretvalue before display
  • FontString widths are cached when non-secret, so the auto-fit layout stays stable mid-pull instead of collapsing to zero
  • Repair cost uses the modern C_TooltipInfo.GetInventoryItem API (the legacy GameTooltip:SetInventoryItem returns the cost as a secret value in 12.x — a lot of older HUD-style addons broke quietly because of this)

If you're not sure whether your current stat addon is Midnight-safe, run a heavy pull and check whether the numbers stay correct throughout the fight.


Credits

  • @tflo — auto main stat, text opacity, item level, stamina, right-click-to-settings, label style modes, Stagger, Block visibility, and gear grouping feedback (issues #1-#4).
  • TaylorSay — author of the original SwiftStats (MIT), the addon that inspired StatsPro.
  • LibSharedMedia-3.0 — font selection support.
  • LibStub and CallbackHandler-1.0 — bundled standard libraries.

Support development

StatsPro is free and MIT-licensed. If it saves you time and you'd like to support continued addon work:

Ko-fi   GitHub Sponsors

Or just hit the Donate button on this project's right-hand sidebar.

Bug reports and feature ideas remain the highest-leverage way to help — see GitHub Issues.


Links

License: MIT — both the original SwiftStats portion (© TaylorSay) and the StatsPro extensions (© Antrakt). See LICENSE for the full text.