File Details
6.6.6-r470
- R
- Apr 22, 2026
- 3.63 MB
- 56
- 12.0.5+2
- Retail
File Name
DiabolicUI3-6.6.6-r470.zip
Supported Versions
- 12.0.5
- 12.0.1
- 12.0.0
# DiabolicUI3 Changelog
## [6.6.6-r470] - 2026-04-23
### ✨ New Features
- **Custom font selector** in Settings → Diabolic UI → Scale
- Checkbox **Use custom font** (default off — keeps current behavior)
- **Font dropdown** with built-in Blizzard fonts (Friz Quadrata, Morpheus, Skurri, Arial Narrow) + any fonts registered through **LibSharedMedia-3.0** (if installed)
- Applies instantly to all Diabolic UI elements (unit frames, tooltips, castbars, action bar text, minimap, etc.) — no `/reload` required
- Chat and number fonts are **not** affected (they intentionally stay on ARIAL Narrow)
- Settings saved globally (per account)
### 🐛 Bug Fixes
- **`BagsBar:SetParent` taint in combat** (`BagButton.lua`)
- The "Hide backpack" setting could trigger ADDON_ACTION_BLOCKED and silently fail to apply during combat. The update is now deferred to `PLAYER_REGEN_ENABLED` and re-applied safely when combat ends.
- **`OnTooltipSetUnit` secret-value handling** (`Tooltips.lua`)
- Wrapped `GameTooltip:GetUnit()`, `UnitIsUnit` and `UnitName` calls in `pcall` + `issecretvalue` checks. Reduces the Blizzard `TooltipUtil.lua:39` error spam caused by our tooltip hook passing secret values further down the pipeline (notably visible when AllTheThings is installed).
- **Custom font revert** (`Core/API/Assets.lua`)
- Turning off "Use custom font" now correctly reverts to the inherited `Game16Font` path immediately. Previously `fontObject:GetFont()` kept returning the overridden path, so the revert was a silent no-op until `/reload`.
### 🔧 Changes
- **TOC `OptionalDeps`** cleaned up: removed `Clique` (unused) and `LibKeyBound-1.0` (bundled in `Libs/`, not optional). Added `LibSharedMedia-3.0`.
### 🌍 Localization
- Added `UseCustomFont` / `UseCustomFontDesc` / `FontFace` / `FontFaceDesc` strings across all 12 locales
---
## [6.6.6-r469] - 2026-04-22
### ✨ New Features
- **EditMode for Extra Ability buttons**
- `Diabolic: Extra Button` — drag the Extra Action Button (boss abilities, etc.) to any position
- `Diabolic: Zone Ability` — drag the Zone Ability Button independently
- Per-button size slider (20–100 px, 1 px step) inside EditMode settings
- Position and size saved globally (per account)
- Placeholder preview icons shown inside EditMode so the frames are visible/draggable even when no active ability is equipped
- Default size: **60 px** (previously hardcoded 80)
- Button size is now **independent from the "Unit Frames Scale" slider** — fully controlled by EditMode size
- **Bag Dump debug module** (`/bagdump`, `/bagdump bank`, `/bagdump clear`)
- Scans all bag slots and saves detailed item info (itemID, quality, bind type, expansion, quest state, etc.) to `DiabolicUI3_BagDump` SavedVariablesPerCharacter
- Useful for inventory audits and external tooling
### 🐛 Bug Fixes
- **FocusTarget on hostile NPCs** (WoW 12.0 secret values)
- Fixed empty portrait for enemy target-of-focus: now falls back to a 2D portrait texture when the 3D model can't be loaded safely (secret GUID)
- Fixed colorless HP bar on hostile NPCs: `UnitClass`/`UnitReaction` wrapped in `pcall` + `issecretvalue` checks; generic health color used as fallback
- Fixed `boolean test on a secret boolean value` in `oUF/portrait.lua` when `UnitIsUnit` returns a secret
- Fixed `attempt to compare local 'guid' (a secret string value)` in `oUF/portrait.lua`
- Fixed `string conversion on a secret string value` in `Tags.lua` `:Name` tag
- Fixed 2000+× Blizzard `TooltipUtil.lua:39` spam: `GameTooltip:GetUnit()` now wrapped in `pcall`
- Fixed empty power bar for mobs without mana/rage: Power bar, background and decorative border are now hidden when `UnitPowerMax == 0` or is a secret value
- **ADDON_ACTION_BLOCKED for party auras** (`DiabolicPartyUnitButtonX:SetSize/Hide/EnableMouse`)
- `oUF/auras.lua`: `SetSize`, `EnableMouse`, `Show`, `Hide` on secure-parented aura buttons are now skipped in combat (visual hide via `SetAlpha` in combat, real `Hide()` out of combat)
- Party aura buttons are pre-sized at `CreateButton` time so `updateAura` never tries to resize them during combat
### 🔧 Changes
- **Extra Ability Buttons:** removed the D2R orb-style position override — positions are now driven exclusively by EditMode
- `.mcp.json` added to `.gitignore` (contains absolute user paths)
### 🌍 Localization
- Added `ExtraButtonSize` / `ExtraButtonSizeDesc` / `ZoneAbilitySize` / `ZoneAbilitySizeDesc` strings across all 12 languages (enUS, ruRU, deDE, esES, esMX, frFR, itIT, koKR, ptBR, ptPT, zhCN, zhTW)
---
## [6.6.6-r468] - 2026-04-19
### ✨ New Features
- **AzeriteUI-style Group Frames** (per-character, default **on**, in Settings → Unit Frames)
- Custom Party frames replacing Blizzard CompactPartyFrame (raid frames untouched)
- **Focus** and **FocusTarget** frames with identical visual
- Portrait, role icon, health/power bars with separate decorative borders (Health-Bar-Border2)
- HP text as percent or abbreviated number (toggle in EditMode)
- 3×3 debuff grid under each frame (up to 40 auras, with stance-style `button-big` borders)
- HealthPrediction overlays (incoming heals, absorbs, heal-absorbs)
- Target highlight via golden portrait border tint
- Castbar, LeaderIndicator, RaidTargetIndicator, PhaseIndicator, ReadyCheck, Resurrect
- Player included in party (`showPlayer=true`)
- HP % uses WoW 12.0 `UnitHealthPercent` + `CurveConstants.ScaleTo100` + `C_StringUtil.RoundToNearestString` for combat-safe display
- **EditMode integration for group frames**
- Position saved per-character (party / focus / focustarget independently)
- Checkbox: Show HP as Percentage (default on)
- Sliders: HP Font Size (8–24, default 17), Name Font Size (8–24, default 16)
- Sliders: HP Bar Height (8–30, default 16), Power Bar Height (4–24, default 10) — borders auto-align
- Slider: Scale (0.5–1.5, default 1) — applies to party + focus + focustarget together
- Force-show party header in EditMode so it's configurable solo
- **Minimap button collector: Mail + Tracking icons** (optional, in Settings → Map and Minimap)
- When enabled, the Blizzard mail (9 o'clock) and tracking (3 o'clock) icons move into the bag
- Mail slot appears/disappears with `HasNewMail()` via `UPDATE_PENDING_MAIL`
### 🔧 Fixes
- **Pet battle**: ClassPower, Stagger and Runes frames now properly hide during pet battles
- **XP bar**: hides on vehicle / override / possess / temp shapeshift action bars
- **Secondary action bars**: no longer hide during stun/polymorph override (keep visible)
- **ExtraButtons**: Guard `GetCheckedTexture` / `GetPushedTexture` for non-CheckButton buttons (fixes BetterHomes spam)
- **Portrait PostUpdate**: skips expensive `ClearModel+SetUnit` when unit GUID unchanged — prevents FocusTarget animation restart loop
- **FocusTarget/Focus drag**: use `SetEditModeUFObjectScale` so LibEditMode drag calculates position correctly (prevents teleport on release)
- **Party frame visibility**: state driver `[group:party,nogroup:raid]show;hide` — shows only in 5-man parties, raid uses Blizzard default
- **Lua warning**: fixed `nesting of [[...]] is deprecated` in commented `/dazparty` test block
### 🌐 Localization
- Added translations for new settings in all 12 locales:
- `AzeriteGroupFrames`, `CollectMailAndTracking`
- `PartyShowHealthPercent`, `PartyHealthFontSize`, `PartyNameFontSize`
- `PartyHealthBarHeight`, `PartyPowerBarHeight`, `PartyScale`
- New `:HealthPercent` tag (WoW 12.0 combat-safe percent display)
---
## [6.6.6-r461] - 2026-03-27
### 🧹 Cleanup
- **Removed legacy code for Classic, TBC, Wrath, Cataclysm** — addon now targets only Retail (11.x / 12.x)
- Deleted unused libraries: LibActionButton-1.0.OLD, LibHealComm-4.0, Libs_Vanilla.xml, Libs_TBC.xml
- Deleted Classic aura system (AuraFilters, AuraStyles)
- Deleted Wrath-only MultiCast bar (Shaman totem bar)
- Cleaned `WoWClassic`/`WoWBCC`/`WoWWrath`/`WoWCata` branches from LibActionButton
- Cleaned `ns.IsWrath`/`ns.IsClassic`/`ns.IsTBC` blocks from Components and Core
- Removed Wrath addon list from Debugging, Wrath color logic from Colors, stale dates from Time
- **Misc fixes**: fixed duplicate esMX locale loading, added `.claude` to .pkgmeta ignore, cleaned orphaned references
- **README**: Updated with legacy code removal note
---
## [6.6.6-r458] - 2026-03-25
### 🔧 Fixes
- **ActionButton Cooldowns**: Fixed critical error with secret values in cooldown display after WoW 12.0.1 hotfix
- `ActionButton_ApplyCooldown` no longer routes through secure delegate — tainted code can no longer pass secret values to `SetCooldown`
- Replaced with `SetCooldownFromDurationObject()` using new duration object APIs (`C_ActionBar.GetActionCooldownDuration`, `C_ActionBar.GetActionChargeDuration`, `C_ActionBar.GetActionLossOfControlCooldownDuration`, `C_Spell` equivalents)
- Added fallback for Item/Toy/Macro buttons that lack duration object APIs
- Fixed `currentCharges` secret value comparison error in charge cooldown logic
- Fixed `GetEffectiveAlpha()` returning nil when secret aspects are assigned
- Three-tier cooldown system: duration objects → legacy `ActionButton_ApplyCooldown` → manual `CooldownFrame_Set`
---
## [6.6.6-r456] - 2026-03-22
### 🔧 Fixes
- **Target frame**: Hide Target Auras setting now persists correctly after clicking Apply in settings
### 📦 Assets
- Updated Platynator preset profile
- Updated UI preset profile
---
## [6.6.6-r452] - 2026-03-21
### ✨ Changes
- **Settings / About**: WoW game version now displayed alongside addon version
- **Settings / Auras**: Added "Hide Target Auras" toggle — hides aura display on target frame in real-time
- **ActionButton**: Release tag format updated to `6.6.6-rXXX` (dropped `release-` prefix)
### 🔧 Fixes
- **README**: Restructured "What's Different" section, added EditMode, real-time settings and hotkeys entries
---
## [6.6.6-r445] - 2026-03-20
### ✨ Changes
- **ActionButton**: Out-of-range buttons now display as grayscale instead of red tint
### 🔧 Fixes
- **LibActionButton**: Fixed `UpdateRange` logic for manual vs event call paths — `IsInRange()` returning `false` (out of range) was incorrectly treated as "no range requirement", causing buttons to show white when they should be gray
- **LibActionButton**: Fixed bar 2 losing red state after dismount — range state for regular bars is no longer cleared on `PLAYER_MOUNT_DISPLAY_CHANGED`, only override bar slots (121+) are reset
---
## [6.6.6-r441] - 2026-03-16
### 🔧 Fixes
- **LibActionButton**: Fixed stale `outOfRange` flag persisting when mounting (override bar) — buttons no longer show red incorrectly when on mount
- **LibActionButton**: Fixed stale `outOfRange` on `PLAYER_TARGET_CHANGED` — force range re-check on target switch; classic uses synchronous `UpdateRange`, retail resets and relies on `ACTION_RANGE_CHECK_UPDATE`
- **LibActionButton**: Fixed stale `outOfRange` on `UNIT_EXITED_VEHICLE` — range state cleared when exiting vehicle/transport
- **LibActionButton**: Fixed `UpdateRange` stale cleanup — when `checksRange` is nil (no target, range undetermined) the flag is now properly cleared instead of persisting
---
## [6.6.6-r440] - 2026-03-16
### 🔧 Changes
- **Castbar**: Cast timer text (`CastTimeText`) moved inside the progress bar, right-aligned with 10px padding, font size matched to spell name text
---
## [3.0.4] - 2026-03-13
All changes since 2.8.3:
### New Features
- EditMode Integration: Full native Edit Mode support for Minimap, MicroMenu, Auras, PetBar, ClassPower, Target frame and Castbar via LibEditMode (p3lim)
- Register Minimap with LibEditMode for drag positioning
- Add SetEditModeMinimapObjectScale for LibEditMode-compatible scaling
- Add LFG Eye Scale slider to EditMode settings
- Register MicroMenu toggle with LibEditMode for drag positioning
- Show micro menu bar during EditMode for visual feedback
- Add buttonSize and toggleAlpha sliders to EditMode settings
- Register auras frame with LibEditMode as "Diabolic: Buffs"
- Add icon size slider to EditMode settings
- PetBar: EditMode integration with LibEditMode, artwork scale fix
- ClassPower/Stagger/Runes: EditMode integration, reparented to UIParent
- Target frame: EditMode integration with position and scale controls
- LibEditMode: Added library for native Edit Mode frame management
- Add "Action Bars Glow" setting in Orbs category with animated breathing glow effect under the action bar frame (synced with eye glow animation, 2.5s BOUNCE cycle)
- When disabled, original static dark corner fills are restored
- Setting works in real-time without /reload
- Add configurable key bindings for left/right side panel toggle via Blizzard Key Bindings UI (SetOverrideBindingClick)
- Move minimap scale slider from main settings panel to EditMode minimap frame settings
- Scale is now stored in char.minimap.minimapScale instead of global.core.minimapRelativeScale, allowing per-character minimap sizing
- Restore Blizzard button effects for all users: SpellHighlight, proc overlay glow and NewAction sparkle
- Add multi-fallback chain for overlay glow (ActionButton_ShowOverlayGlow → ActionButtonSpellAlertManager → SpellActivationAlert) for compatibility across WoW versions
- Parent artworkHolder to PetHider instead of UIParent so angel/demon statues and orb backgrounds are hidden during pet battles
- Stagger (Brewmaster Monk): AzeriteUI-style Stagger — 3 orbs with per-tier colors (green/yellow/red), correct frame level, UpdateColor override
- ClassPower (AzeriteUI): AzeriteUI-style orbs now enabled by default for all players, settings toggle hidden
- Add WoW 12.0.5 interface version support
### LibActionButton-1.0-GE
- LibActionButton-1.0-GE: Major update — ported fixes from AzeriteUI v143
- Toy Button Type: Added support for Toy items on action bars
- GetDisplayCount: New display count system for charge-based spells
- Spell Cast VFX: Visual casting animations on action buttons (configurable)
- AutoCast Overlay: Visual indicator for locked transmog outfits
- Assisted Combat (One Punch): Button state updates for assisted combat actions
- Event-based Range: Retail now uses ACTION_RANGE_CHECK_UPDATE instead of polling
- Per-button OnUpdate: Replaced global OnUpdate with per-button for better performance
- LAB Version: Bumped MINOR_VERSION from 135 to 143
- New Callbacks: OnButtonUpdate, OnButtonState, OnButtonUsable, OnCooldownUpdate, OnCooldownDone, OnChargeCreated, OnUpdateRange
- Config Options: Added targetReticle, spellCastVFX, lossOfControlCooldown
- CVAR_UPDATE: Handler for assistedCombatHighlight changes
### Bug Fixes
- Fix Death Knight runes not appearing with Azerite style by removing ns.IsRetail condition check
- Fix AzeriteRunes_PostUpdate: compute allReady locally since oUF runes element only passes runemap to PostUpdate callback
- Anchor coordinates below FPS/latency text instead of MinimapCompassTexture which drifts when minimap scale changes
- Match font and color with performance text for visual consistency
- Fix mail icon disappearing after EditMode exit: Blizzard's EditMode layout cleanup resets MailFrame state. Added LibEditMode exit callback to re-apply RepositionMailFrame
- Hook MailIcon:Hide to re-show the icon on next frame when there's mail
- Show MailIcon in UpdateBorderVisibility alongside custom border/shade textures
- Re-apply Tracking repositioning after EditMode exit
- Fix EditMode position not persisting across reloads: save anchor point from normalizePosition alongside x/y
- Fix MicroMenu Bartender4 deferred init case where EditMode scale switch was never applied
- Fix castbar overlay width in EditMode: set initial overlay width and reset it when no cast is active, preventing texture from expanding to 558px during EditMode
- Reparent Stagger and Runes to UIParent (fixes horizontal offset)
- Restructure AzeriteClassPower_PostUpdate to apply layout during EditMode even when cur=0
- Add inEditMode guards to all PostUpdate functions (Azerite + standard)
- Include Stagger/Runes in EditMode OnShow/OnHide hooks
- LAB SpellVFX: Fixed assertion error — SpellVFX forward declarations were placed after OnEvent, making them invisible to the event handler
- LAB GetCount: Fixed secret number comparison error in Action.GetCount (IsSafeNumber check)
- PressHoldRelease: Extracted to separate UpdateReleaseCasting attribute, fixes Evoker zone-in bug
- OnDown Pickup: Replaced global CVar toggle with per-button useOnKeyDown attribute
- Count Caching: Added __LABCountCache for secret value resilience in combat
- Cooldown Validation: Added nil-checks for cooldownInfo/chargeInfo/lossOfControlInfo
- ChargeInfo Resolution: Added NormalizeChargeInfo and spell fallback chain
- Action.GetCount: Added item count fallback via C_Item.GetItemCount for macros
- Overlay Glow: Added activeAssist filtering for One Punch compatibility
- UpdateRangeTimer: Fixed to use per-button timer instead of global
- Player.lua: Added missing local noop = ns.Noop — stagger SetMinMaxValues/SetValue were nil causing error spam
- Stagger: Fixed AzeriteStagger_SetStatusBarColor iterating over all table keys — now iterates only numeric indices 1–3
### Changes
- Moved Target and ClassPower positions from global to per-character DB scope
- Move Auras, Minimap, MicroMenu EditMode positions to per-character DB
- Removed position/scale sliders replaced by EditMode (Settings.lua cleanup)
- Remove Minimap position and LFG Eye Scale sliders from addon Settings (now handled via Edit Mode)
- Remove MicroMenu position/size/alpha sliders from addon Settings (now handled via Edit Mode)
- Remove position sliders from addon settings (now via EditMode)
- Removed Target position X/Y sliders from addon settings (now in Edit Mode)
- Removed Target frame scale slider from addon settings (now in Edit Mode)
- Added targetPositionPoint to DB for anchor point persistence
- Disable toggle click handling in EditMode so selection overlay captures mouse events for dragging
### Localization
- Localization for all 12 languages
- Localized binding names for all 12 languages
- Localization: added ClassPower scale strings for all 12 locales
## [3.0.2] - 2026-03-13
- Fix GitHub Actions workflow not setting release as Latest (added make_latest: true)
## [3.0.1] - 2026-03-13
- Version bump release
## [3.0.0] - 2026-03-13
- Initial 3.0 release with all alpha changes
## [3.0.0-alpha19] - 2026-03-13
- Anchor coordinates below FPS/latency text instead of MinimapCompassTexture which drifts when minimap scale changes
- Match font and color with performance text for visual consistency
## [3.0.0-alpha18] - 2026-03-13
- Add "Action Bars Glow" setting in Orbs category with animated breathing glow effect under the action bar frame (synced with eye glow animation, 2.5s BOUNCE cycle)
- When disabled, original static dark corner fills are restored
- Setting works in real-time without /reload
- Fix Death Knight runes not appearing with Azerite style by removing ns.IsRetail condition check
- Fix AzeriteRunes_PostUpdate: compute allReady locally since oUF runes element only passes runemap to PostUpdate callback
- Localization for all 12 languages
## [3.0.0-alpha17] - 2026-03-13
- Remove ns.IsRetail condition check that prevented DK runes from being created on retail client
- Fix AzeriteRunes_PostUpdate: compute allReady locally since oUF runes element only passes runemap to PostUpdate callback
## [3.0.0-alpha16] - 2026-03-13
- Move minimap scale slider from main settings panel to EditMode minimap frame settings
- Scale is now stored in char.minimap.minimapScale instead of global.core.minimapRelativeScale, allowing per-character minimap sizing
## [3.0.0-alpha15] - 2026-03-12
- Add configurable key bindings for left/right side panel toggle via Blizzard Key Bindings UI (SetOverrideBindingClick)
- Localized binding names for all 12 languages
- Add WoW 12.0.5 interface version support
## [3.0.0-alpha14] - 2026-03-12
- Restore Blizzard button effects for all users: SpellHighlight, proc overlay glow and NewAction sparkle
- Multi-fallback overlay glow for WoW 11.x/12.0+ compatibility
- Move Auras, Minimap, MicroMenu EditMode positions to per-character DB
## [3.0.0-alpha13] - 2026-03-12
- Restore SpellHighlight, proc overlay glow and NewAction sparkle effects as default behavior instead of experimental setting
- Add multi-fallback chain for overlay glow (ActionButton_ShowOverlayGlow → ActionButtonSpellAlertManager → SpellActivationAlert) for compatibility across WoW versions
## [3.0.0-alpha12] - 2026-03-11
- New "DONT CLICK!" toggle in Experiments restores spell highlight, native Blizzard proc overlay glow, and new action sparkle effects
## [3.0.0-alpha11] - 2026-03-11
- Parent artworkHolder to PetHider instead of UIParent so angel/demon statues and orb backgrounds are hidden during pet battles
## [3.0.0-alpha10] - 2026-03-11
- Fix mail icon disappearing after EditMode exit: Blizzard's EditMode layout cleanup resets MailFrame state. Added LibEditMode exit callback to re-apply RepositionMailFrame
- Hook MailIcon:Hide to re-show the icon on next frame when there's mail
- Show MailIcon in UpdateBorderVisibility alongside custom border/shade textures
- Re-apply Tracking repositioning after EditMode exit
## [3.0.0-alpha9] - 2026-03-11
- Fix EditMode position not persisting across reloads: save anchor point from normalizePosition alongside x/y
- Applied to MicroMenu, Minimap, and Auras modules
- Fix MicroMenu Bartender4 deferred init case where EditMode scale switch was never applied
## [3.0.0-alpha8] - 2026-03-10
- Register Minimap with LibEditMode for drag positioning
- Add SetEditModeMinimapObjectScale for LibEditMode-compatible scaling
- Add LFG Eye Scale slider to EditMode settings
- Remove Minimap position and LFG Eye Scale sliders from addon Settings (now handled via Edit Mode)
## [3.0.0-alpha7] - 2026-03-10
- Register MicroMenu toggle with LibEditMode for drag positioning
- Disable toggle click handling in EditMode so selection overlay captures mouse events for dragging
- Show micro menu bar during EditMode for visual feedback
- Add buttonSize and toggleAlpha sliders to EditMode settings
- Remove MicroMenu position/size/alpha sliders from addon Settings (now handled via Edit Mode)
## [3.0.0-alpha6] - 2026-03-10
- Register auras frame with LibEditMode as "Diabolic: Buffs"
- Add icon size slider to EditMode settings
- Remove position sliders from addon settings (now via EditMode)
## [3.0.0-alpha5] - 2026-03-10
- Fix castbar overlay width in EditMode: set initial overlay width and reset it when no cast is active, preventing texture from expanding to 558px during EditMode
## [3.0.0-alpha4] - 2026-03-10
- Reparent Stagger and Runes to UIParent (fixes horizontal offset)
- Restructure AzeriteClassPower_PostUpdate to apply layout during EditMode even when cur=0
- Add inEditMode guards to all PostUpdate functions (Azerite + standard)
- Include Stagger/Runes in EditMode OnShow/OnHide hooks
## [3.0.0-alpha3] - 2026-03-09
- PetBar: EditMode integration with LibEditMode, artwork scale fix
- ClassPower/Stagger/Runes: EditMode integration, reparented to UIParent
- Target frame: EditMode integration with position and scale controls
- Moved Target and ClassPower positions from global to per-character DB scope
- Removed position/scale sliders replaced by EditMode (Settings.lua cleanup)
- Localization: added ClassPower scale strings for all 12 locales
## [3.0.0-alpha2] - 2026-03-09
### New Features
- **EditMode Integration**: Target frame now supports WoW Edit Mode positioning via LibEditMode (p3lim)
- **LibEditMode**: Added library for native Edit Mode frame management
- Target frame scale slider moved to Edit Mode dialog
### Bug Fixes
- **LAB SpellVFX**: Fixed assertion error — SpellVFX forward declarations were placed after OnEvent, making them invisible to the event handler
- **LAB GetCount**: Fixed secret number comparison error in Action.GetCount (IsSafeNumber check)
### Changes
- Removed Target position X/Y sliders from addon settings (now in Edit Mode)
- Removed Target frame scale slider from addon settings (now in Edit Mode)
- Added targetPositionPoint to DB for anchor point persistence
## [3.0.0-alpha1] - 2026-03-09
### ✨ New Features
- **LibActionButton-1.0-GE**: Major update — ported fixes from AzeriteUI v143
- **Toy Button Type**: Added support for Toy items on action bars
- **GetDisplayCount**: New display count system for charge-based spells
- **Spell Cast VFX**: Visual casting animations on action buttons (configurable)
- **AutoCast Overlay**: Visual indicator for locked transmog outfits
- **Assisted Combat (One Punch)**: Button state updates for assisted combat actions
- **Event-based Range**: Retail now uses ACTION_RANGE_CHECK_UPDATE instead of polling
- **Per-button OnUpdate**: Replaced global OnUpdate with per-button for better performance
### 🐛 Bug Fixes
- **PressHoldRelease**: Extracted to separate UpdateReleaseCasting attribute, fixes Evoker zone-in bug
- **OnDown Pickup**: Replaced global CVar toggle with per-button useOnKeyDown attribute
- **Count Caching**: Added __LABCountCache for secret value resilience in combat
- **Cooldown Validation**: Added nil-checks for cooldownInfo/chargeInfo/lossOfControlInfo
- **ChargeInfo Resolution**: Added NormalizeChargeInfo and spell fallback chain
- **Action.GetCount**: Added item count fallback via C_Item.GetItemCount for macros
- **Overlay Glow**: Added activeAssist filtering for One Punch compatibility
- **UpdateRangeTimer**: Fixed to use per-button timer instead of global
### 🔧 Changes
- **LAB Version**: Bumped MINOR_VERSION from 135 to 143
- **New Callbacks**: OnButtonUpdate, OnButtonState, OnButtonUsable, OnCooldownUpdate, OnCooldownDone, OnChargeCreated, OnUpdateRange
- **Config Options**: Added targetReticle, spellCastVFX, lossOfControlCooldown
- **CVAR_UPDATE**: Handler for assistedCombatHighlight changes
---
## [2.8.4-alpha1] - 2026-03-05
### ✨ New Features
- **Stagger (Brewmaster Monk)**: AzeriteUI-style Stagger — 3 orbs with per-tier colors (green/yellow/red), correct frame level, UpdateColor override
- **ClassPower (AzeriteUI)**: AzeriteUI-style orbs now enabled by default for all players, settings toggle hidden
### 🐛 Bug Fixes
- **Player.lua**: Added missing `local noop = ns.Noop` — stagger `SetMinMaxValues`/`SetValue` were nil causing error spam
- **Stagger**: Fixed `AzeriteStagger_SetStatusBarColor` iterating over all table keys — now iterates only numeric indices 1–3
---
## [2.8.3] - 2026-03-04
### 🔧 Changes
- **About Section**: Added SaiyaRatt to Thanks (Profile for Platynator)
---
## [2.8.2] - 2026-03-04
### 🐛 Bug Fixes
- **PetBar**: Fixed pet action bar permanently disappearing when accidentally clicking the invisible toggle handle above the bar — handle click now does nothing, bar always visible when pet exists
---
## [2.8.1] - 2026-03-04
### 🔧 Changes
- **About Section**: Added Discord link button in Settings → About
---
## [2.8.0] - 2026-03-01
### ✨ New Features
- **Eye Glow (D2R Style)**: New setting to enable pulsing glow on orb eyes (angel eye on health orb, demon eye on power orb)
- Positioned precisely on angel (health) and demon (power) eyes
- Smooth pulsing animation (40%→80% alpha, BOUNCE loop)
- Setting in Settings → Spheres → "Eye Glow (D2R Style)"
- Enabled by default (along with D2R orb style)
### 🎨 UI Improvements
- **Settings Panel Restructured**: Reorganized into subcategories (Spheres, Auras, Map, Minimap, etc.) with icons
- **About Section**: Added About subcategory with version, author links (GitHub, Patreon, Boosty) and credits
- **PetBar Artwork**: Added decorative background texture to pet action bar
- **MicroMenu Icon**: Updated toggle icon to ChatMenu variant
### 🐛 Bug Fixes
- **Castbar Spell Text**: Fixed spell name resetting below the castbar on each new cast — text now stays centered on the bar
- **Raid Frame Borders**: Fixed borders rendering above all other UI elements (map, quest journal) — now use parent-relative frame level instead of TOOLTIP strata
- **BG Widgets Visibility**: Fixed BG score/objective widgets disappearing when selecting a target — widgets now always visible
- **Raid Frame Name Overflow**: Name truncation now always active (independent of "Customize Raid Frames" setting) — strips realm suffix and constrains width
- **ExtraButton Yellow Square**: Fixed yellow checked texture overlay on ZoneAbility/ExtraAction buttons
### 🔧 Changes
- D2R Orb Style and Eye Glow enabled by default for new installations
- Platynator nameplate profile updated (DiabolicUI design with DiabolicUI textures)
### 🌍 Localization
- Added Eye Glow D2R setting strings in all 12 supported languages
---
## [2.7.3] - 2026-02-28
### 🐛 Bug Fixes
- **Settings Panel**: Fixed addon settings section not appearing in Interface Options when only DiabolicUI3 is enabled. Blizzard_Settings is now force-loaded at initialization instead of waiting for the player to open the settings panel
---
## [2.7.2] - 2026-02-28
### 🐛 Bug Fixes
- **Hide Raid Manager**: Fixed CompactRaidFrameManager reappearing in all scenarios (joining group/raid, BG entry, zone transitions). Replaced unreliable Hide()/hook approach with SetParent(UIHider) which makes the frame permanently invisible regardless of Blizzard's state drivers
---
## [2.7.1] - 2026-02-28
### 🐛 Bug Fixes
- **Hold to Cast**: Fixed hold-to-cast not working with the addon enabled. Switched from click bindings to command bindings (SetOverrideBinding) so key presses route through Blizzard's native action system (TryUseActionButton)
---
## [2.7.0] - 2026-02-25
### ✨ New Features
- **AzeriteUI-style ClassPower**: New experimental option to display class resources (combo points, runes, holy power, etc.) in AzeriteUI visual style
- Enable in Settings → Experiments → "AzeriteUI Style ClassPower"
- Round fills for round cases, diamond fills for diamond cases
- Per-character setting, requires /reload
- **Side Panel Toggle Button Opacity**: New slider to control the opacity of buttons that open hidden left/right action bars
- Located in Settings → Action Bars
- Range 0 to 1, default 0.1
- At 0, buttons are invisible until mouse hover
- Real-time update without reload
### 🐛 Bug Fixes
- **Disable Side Panel Auto-Hide**: Added option to keep left and right action bar panels always visible (new setting in Action Bars section)
- **Extended Bars Default**: Extended Hidden Bars (Page 7) now enabled by default for new characters
- **Extended Mode Panel Positions**: Adjusted side panel positions in extended mode (+50px outward)
- **ExtraAbilityContainer Taint**: Extended pcall protection to all ExtraAbilityContainer operations
- **Hide Raid Manager**: Added option to hide Blizzard CompactRaidFrameManager
- **Charge Cooldown Visibility**: Fixed cooldown not showing on auto-hide side panels
- **Health Color Secret Value**: Fixed "table index is secret" error for Target of Target frames
- **Tooltip Backdrop/Positioning**: Fixed secret value errors with tooltip dimensions in WoW 12.0
- **Backdrop Taint**: Additional fixes for "secret number value" errors in BackdropTemplateMixin
### 🌍 Localization
- Added translations for all new settings across all 12 supported languages
---
## [2.6.5] - 2026-02-25
### ✨ New Features
- **Disable Side Panel Auto-Hide**: Added option to keep left and right action bar panels always visible
- New setting in Action Bars section
- Real-time toggle without reload required
- **Extended Bars Enabled by Default**: Extended Hidden Bars (Page 7) now enabled by default for new characters
### 🔧 Changes
- **Extended Mode Panel Positions**: Adjusted side panel positions in extended mode (+50px outward) for better spacing
---
## [2.6.4] - 2026-02-25
### 🐛 Bug Fixes
- **ExtraAbilityContainer Taint**: Extended pcall protection to all ExtraAbilityContainer operations
- Wrapped SetFrameStrata, SetFrameLevel and ignoreFramePositionManager in pcall
- Prevents additional taint errors from secure frame modifications in WoW 12.0
---
## [2.6.3] - 2026-02-24
### ✨ New Features
- **Hide Raid Manager Panel**: Added option in Experiments section to hide Blizzard CompactRaidFrameManager on left side of screen
### 🐛 Bug Fixes
- **ExtraAbilityContainer Taint**: Fixed taint error by wrapping SetObjectScale in pcall
- **Charge Cooldown Visibility**: Fixed cooldown not showing on auto-hide side panels
- Changed visibility detection to use proper parent-based visibility
- Added visibility ticker to update cooldowns when bar becomes visible
---
## [2.6.2] - 2026-02-24
### 🐛 Bug Fixes
- **Health Color Secret Value**: Fixed "table index is secret" error for Target of Target frames
- UnitThreatSituation() returns secret values in WoW 12.0 for targettarget units
- Used pcall for safe table access with potentially secret index
- Falls back to default threat color if secret value encountered
- **Tooltip Backdrop**: Fixed SetupTextureCoordinates errors with secret dimensions
- Wrapped SetupTextureCoordinates in pcall instead of OnShow hook
- Preserved tooltip styling while preventing taint errors
- **Tooltip Positioning**: Fixed "arithmetic on secret number" for GetHeight/GetWidth
- Added dimension caching for when values are not secret
- Skips positioning gracefully when dimensions are secret
---
## [2.6.1] - 2026-02-23
### 🐛 Bug Fixes
- **Backdrop Taint (continued)**: Additional fixes for "secret number value" errors
- Wrapped OnBackdropSizeChanged and ApplyBackdrop methods in pcall
- Added pcall protection to RaidFrames SetBackdrop calls
- Prevents BackdropTemplateMixin texture recalculation errors
---
## [2.6.0] - 2026-02-23
### ✨ New Features
- **Raid Frames Customization**: Added experimental settings to customize Blizzard CompactUnitFrames
- Custom fonts and textures for raid/party frames
- Border size and offset adjustments (top, bottom, left, right)
- Role icon position offsets (X, Y)
- Real-time preview when adjusting sliders
- **Statusbar Profiles**: Added texture profiles for statusbars (ui_profile.txt, platynator_profile.txt)
### 🐛 Bug Fixes
- **Backdrop Taint**: Fixed 129x "attempt to perform arithmetic on local 'width' (a secret number value)" error
- Replaced SetAllPoints() with explicit point anchors in tooltip backdrop cache
- Wrapped SetBackdrop, SetBackdropColor, SetFrameLevel calls in pcall
- Prevents taint errors from Syndicator, Chattynator and other addons
### 🔧 Technical
- Removed unused power crystal textures from Assets
- Added pcall protection for all backdrop-related operations in WoW 12.0
### 🌍 Localization
- Added translations for Raid Frames settings in all 12 languages
---
## [2.5.1] - 2026-02-22
### 🐛 Bug Fixes
- **SOUL_FRAGMENTS Color**: Fixed "attempt to index local 'color' (a number value)" error for Demon Hunter Soul Fragments
- **GUID Taint**: Fixed "attempt to compare 'guid' (secret string tainted)" error when changing targets
- **Backdrop Taint**: Fixed tooltip backdrop turning white due to secret value taint propagation
- **Slider Ranges**: Extended position slider ranges from ±2000 to ±5000 for all settings
### 🔧 Technical
- Changed SOUL_FRAGMENTS color format to stages for oUF compatibility
- Added fallback in classpower.lua for simple {r,g,b} color tables
- Wrapped GUID comparison in pcall to handle WoW 12.0 tainted values
- Wrapped tooltip StatusBar hooks in pcall to prevent taint propagation
---
## [2.5.0] - 2026-02-20
### ✨ New Features
- **Class Resources Settings**: Added position and scale settings for runes, combo points, chi, holy power, etc.
- Horizontal position (-2000 to 2000)
- Vertical position (-2000 to 2000)
- Scale (0.5 to 2.0)
- **Extended Class Resources**: Increased max points from 6 to 8 (texture supports future expansions)
- **LFG Eye Scale**: Added scale setting for dungeon finder eye icon (0.5 - 2.0)
### 🔧 Changes
- **Focus Frame**: Temporarily disabled custom Focus frame (using Blizzard default)
- **Pet Bar Position**: Now saved per-character instead of globally
- **Pet Bar Sliders**: Fixed real-time position updates
### 🌍 Localization
- Added translations for all new settings in all 12 languages
---
## [2.4.6-alpha] - 2026-02-20
### 🐛 Bug Fixes
- **Tooltip Errors**: Fixed SetUnitAura errors on minimap aura buttons (invalid index validation)
- **MoneyFrame Taint**: Removed MoneyFrame font modifications that caused taint on bag item tooltips
- **Aura Timer Bars**: Disabled timer bars under aura icons to fix orange residue on auras without duration
### 🔧 Technical
- Added index validation in Auras.lua UpdateTooltip function
- Removed taint-causing SetTooltipMoney and MoneyFrame font modifications
- Commented out CreateSmoothBar calls in Auras.lua and AuraStyles.lua
---
## [2.4.5-alpha] - 2026-02-19
### 🔧 Technical (WoW 12.0.1 Secret Values)
- **LibSmoothBar v7**: ScrollFrame approach for horizontal bars with secret values support
- **LibOrb v7**: ClipFrame approach for vertical orbs with secret values support
- Fixed target/ToT/focus health bars not updating
- Fixed player health/power orbs animation direction
---
## [2.4.4] - 2026-02-16
### ✨ Improvements
- **Real-time Settings**: All settings sliders now apply changes instantly without requiring /reload
- Target frame position and scale
- Aura icon size and position
- Pet bar and stance bar position
- Minimap position
- MicroMenu toggle button transparency
- Tooltip offset and settings
- ActionBar settings
- QoL movable frames settings
- **Tooltip Offset Step**: Changed slider step from 5 to 1 for precise positioning
### 🔧 Technical
- Fixed CallbackHandler usage: `ns.RegisterCallback()` instead of `ns.callbacks:RegisterCallback()`
- Added `UpdateIconSize` function for real-time aura icon resizing
- Implemented `RegisterProxySetting` for immediate settings updates
---
## [2.4.3] - 2026-02-15
### 🎨 Visual Improvements
- **Castbar Progress Texture**: Custom overlay texture for player and pet castbars
- Uses Heath-Bar texture with proper fill animation via SetTexCoord
- Blue color tint for visual distinction
---
## [2.4.2] - 2026-02-15
### 🎨 Visual Improvements
- **Castbar Border**: New custom border texture for player and pet castbars
- Uses Health-Bar-Border2 texture for better visual consistency
---
## [2.4.1] - 2026-02-15
### 🐛 Bug Fixes
- **Tooltip Taint Fix**: Fixed taint error when hovering over POI/quests on world map
- Blizzard_SharedXML/Backdrop.lua no longer throws "secret number value" errors
- Map-related tooltips (MapCanvas, WorldMap, AreaPOI) now skip custom positioning
- **Minimap Ping Taint Fix**: Fixed ADDON_ACTION_FORBIDDEN when left-clicking minimap to ping
- Changed from SetScript to HookScript for OnMouseUp handler
- Blizzard's ping handler now works without taint
- **Mail Icon Border Visibility**: Border and shade now hide when no mail (was showing empty frame)
### 🔧 Changes
- Added statusbar profile files for UI and Platynator customization
---
## [2.4.0] - 2026-02-14
### ✨ New Features
- **Aura Growth Direction**: New per-character option to grow buff rows upward instead of downward
- Checkbox in Settings → Auras section
- Requires UI reload to apply
- **Minimap Icon Borders**: Added circular borders to Mail (9 o'clock) and Tracking (3 o'clock) icons
- Matches the bag button border style for visual consistency
- **Expansion Landing Button**: ExpansionLandingPageMinimapButton (Dragonflight/War Within) now collected into minimap buttons container
- **Settings Panel Icon**: Added DiabolicUI icon next to addon name in Interface Options addon list
### 🌍 Localization
- Full translations for aura growth direction setting in all 12 supported languages
---
## [2.3.0] - 2026-02-10
### ✨ New Features
- **Platynator Integration**: Custom DiabolicUI styling for Platynator addon nameplates
- Replaces Platynator health bars with power-crystal textures
- Automatic frame sizing with combat scaling support
- Experimental feature - enable in Settings → Experiments
- **Two Rows Target Auras**: New option to show 14 auras in 2 rows under target frame (instead of 7)
- New checkbox in Settings → Auras section
- Requires UI reload to apply
- **StanceBar Styling**: Custom DiabolicUI styling for stance/shapeshifting buttons
- Power-crystal frame overlay matching action bar style
- Proper border textures and consistent visual design
### 🎨 UI Improvements
- Extended all position slider ranges to -2000/2000 for more flexibility
- Improved Platynator frame width to properly cover health bar edges
- MicroMenu now has proper icon styling
### 🌍 Localization
- Full translations for all new settings in 12 supported languages
- Updated slider descriptions to show extended -2000 to 2000 range
### 🔧 Technical
- Added FRAME_WIDTH_EXTRA constant for Platynator health bar edge coverage
- Platynator slash commands disabled (internal testing only)
- Added twoRowsTargetAuras setting to global.auras database
---
## [2.1.0] - 2026-02-04
### ✨ New Features
- **MicroMenu Panel**: New vertical popup menu with all game micro buttons (Character, Spellbook, Talents, etc.), accessible via a toggle button in the bottom-right corner
- **MicroMenu Settings**: Enable/disable toggle, button size slider (20-50px), and position sliders (X/Y) in the Settings panel under "Other"
- **Auto-Hide**: MicroMenu automatically hides after 3 seconds when the mouse leaves the panel
- **Combat Safe**: Menu opens/closes freely in combat via secure frame handlers
### 🎨 UI Improvements
- Clean icon-only display: stripped Blizzard button backgrounds and borders for a minimal look
- Semi-transparent dark backdrop with tooltip-style border
- Toggle button with plus/minus texture, fades to 30% opacity when idle
- Hidden during pet battles and vehicle UI
### 🌍 Localization
- Full translations for MicroMenu settings in all 12 supported languages
## [2.0.1] - 2026-02-03
### 🐛 Bug Fixes
- **Cooldown Edge Fix**: Fixed yellow-orange cooldown edge line appearing on hidden side panel action bar buttons. WoW 12.0 C++ `ActionButton_ApplyCooldown` was enabling edge rendering internally, bypassing Lua hooks.
## [2.0.0] - 2026-02-01
### ✨ New Features
- **Diablo 2 Resurrected Orb Style**: New orb textures inspired by D2R (enabled by default)
- **Custom Orb Colors**: Per-character color picker for Health and Power orbs
- **Independent Target Frame Scale**: Separate scaling slider (0.5-2.0) for target frame
- **Extended Hidden Bars**: Option for 12 buttons per bar (6x2 layout) using action bar page 7
- **Pet Orb Style**: Show pet health as a sphere instead of portrait frame
- **Single-Button Assistant Support**: Dynamic icon updates during combat
- **Castbar Border**: ToT-style border texture for player and pet castbars
- **LFG Eye Animation**: Pulsing glow when in dungeon/raid queue
### 🎨 UI Improvements
- **Minimap Rework**: Repositioned Mail (left), Tracking (right), LFG eye (bottom) with custom textures
- **Settings Panel Reorganization**: Better organized with proper section headers
- **Renamed "Orbs" to "Spheres"**: Consistent terminology across all settings and localization
- **D2R Positions for Extra Buttons**: ZoneAbility and ExtraAction buttons positioned near orbs when D2R style is enabled
- **Hidden Minimap Clutter**: Removed zoom buttons, AddonCompartment, EditMode empty frame
### ⚡ Performance Optimizations
- Removed SetCooldown hooks from ActionBars, PetBar, StanceBar (major optimization)
- Added OnUpdate throttle for Tooltip (~30 fps instead of every frame)
- Added OnUpdate throttle for Auras (~30 fps for timer updates)
- Single-Button Assistant icon check runs only in combat (0.1s interval)
### 🐛 Bug Fixes
- Fixed ADDON_ACTION_BLOCKED errors when hiding auras, changing EditMode, moving frames in combat
- Fixed achievement toasts, loot popups, and bonus rolls not showing
- Fixed border appearing on action bar 2-3 after /reload
- Fixed SmallActionBar page conflict with ThirdActionBar
- Fixed tracking icon resetting on zone change
- Fixed LFG eye resetting position when talking to NPCs
- Fixed Cyrillic characters displaying as squares in aura timers
- Fixed Single-Button Assistant icon freezing in combat
- Fixed custom orb colors being overridden by PostUpdate functions
- Fixed tooltip taint for world objects
### 🔧 Changes
- Disabled custom nameplates module (use Blizzard default or Plater/Kui/etc.)
- D2R orb style is now enabled by default
- "Class Color for Power Orb" is now per-character setting
### 🌍 Localization
- Full localization support for all new features (12 languages)
- Languages: English, German, Spanish (EU/MX), French, Italian, Korean, Portuguese (BR/PT), Russian, Chinese (Simplified/Traditional)
---
## [2.0.0-alpha12] - 2026-01-31
### Performance
- ActionBars: Removed SetCooldown hook, set alpha once at creation (major optimization)
- PetBar: Same optimization for pet action buttons
- StanceBar: Same optimization for stance buttons
## [2.0.0-alpha11] - 2026-01-31
### Performance
- Tooltip OnUpdate: Added throttle (~30 fps instead of every frame)
- Auras OnUpdate: Reduced from 100 fps to ~30 fps for timer updates
## [2.0.0-alpha10] - 2026-01-31
### Changed
- Disabled custom nameplates (use Blizzard default or Plater/Kui/etc.)
### Maintenance
- Cleaned up TODO.md - removed completed tasks
## [2.0.0-alpha9] - 2026-01-31
### Added
- Castbar: Added ToT-style border texture to PlayerCastingBarFrame and PetCastingBarFrame
- QueueStatus (LFG eye): Added pulsing glow animation when in queue
### Improved
- Tracking icon: Now survives zone changes, NPC interactions, and reloads (hooked SetPoint)
- QueueStatus (LFG eye): Now survives NPC interactions (hooked SetPoint)
### Fixed
- Fixed tracking icon resetting to default position on zone change
- Fixed LFG eye resetting position when talking to NPCs
## [2.0.0-alpha8] - 2026-01-31
### Improved
- ExtraButtons: Added D2R orb style positions for ZoneAbilityFrame (500, 250) and ExtraActionButton (-495, 240)
- These buttons now appear near the orbs when D2R style is enabled
## [2.0.0-alpha7] - 2026-01-31
### Improved
- Minimap: Mail icon repositioned to 9 o'clock (left side)
- Minimap: QueueStatusButton (LFG eye) repositioned to 6 o'clock with custom orange texture
- Minimap: Hidden zoom buttons (+/-)
### Fixed
- Fixed zoom buttons not hiding due to ns.IsRetail being nil in WoW 12.0
## [2.0.0-alpha6] - 2026-01-31
### Improved
- Minimap: Mail icon repositioned to bottom (6 o'clock)
- Minimap: Tracking button repositioned to right side (3 o'clock)
- Minimap: Instance difficulty repositioned to top (12 o'clock)
- Minimap: Hidden AddonCompartmentFrame
- Minimap: Hidden MinimapCluster from EditMode (no more empty frame)
- Minimap: Default position changed to X=-30, Y=-40
### Fixed
- Fixed "attempt to call method 'Layout' (a nil value)" error on UPDATE_PENDING_MAIL
- Added Layout stub to Minimap for Blizzard MailFrame compatibility
## [2.0.0-alpha5] - 2026-01-31
### Fixed
- Fixed border appearing on action bar 2-3 after /reload
- Root cause: bar:Hide() was called before button creation, causing styling issues on reload
- Moved bar:Hide() to after button creation for SecondaryActionBar and ThirdActionBar
- Applied SetNormalTexture/SetHighlightTexture/SetCheckedTexture hooks for all WoW versions (was only Classic)
- Added NormalTexture hiding to OnButtonUpdate callback for extra safety
## [2.0.0-alpha4] - 2026-01-30
### Fixed
- Fixed SmallActionBar1,4 duplicating buttons with ThirdActionBar
- Moved SmallActionBar1,4 from page 5 (BOTTOMRIGHT) to page 2 (free page)
- Side panels now use independent action bar page without conflicts
### Technical
- SmallActionBar1 (left side, bottom) now uses barID 2 instead of BOTTOMRIGHT_ACTIONBAR_PAGE
- SmallActionBar4 (right side, bottom) now uses barID 2 instead of BOTTOMRIGHT_ACTIONBAR_PAGE
- Page 5 is now exclusively used by ThirdActionBar
## [2.0.0-alpha3] - 2026-01-29
### Added
- Added independent target frame scale setting (0.5-2.0, default 1.0)
- Target frame scale now completely independent from "Bottom UI Scale" setting
- New "Target Frame Scale" slider in Core settings section (next to "Bottom UI Scale")
- Real-time target frame scaling without UI reload
- Full localization support for new setting (12 languages)
### Changed
- Target frame moved to separate scaling system (TargetFrameScaled)
- Target frame no longer affected by unitframesRelativeScale changes
- Unified scaling architecture - all scales work through UpdateObjectScales()
### Technical
- Added global.core.targetFrameScale database setting (default: 1.0)
- Created TargetFrameScaled[] cache in Scale.lua for independent target scaling
- Added API.SetTargetFrameObjectScale() method for target frame registration
- Added ns.UpdateTargetFrameScale() for real-time updates
- Target frame uses base UI scale (GetScale()) instead of unitframes scale (GetUnitFramesScale())
- Updated UpdateObjectScales() to handle both UnitFramesScaled and TargetFrameScaled arrays
## [2.0.0-alpha2] - 2026-01-29
### Added
- Added custom orb colors feature with per-character settings
- Color picker for Health orb color (ColorPickerFrame integration)
- Color picker for Power orb color (ColorPickerFrame integration)
- "Use Custom Orb Colors" checkbox (per-character, disabled by default)
- Full localization support for color settings (12 languages)
- Real-time color updates without UI reload
### Fixed
- Fixed custom orb colors being overridden by PostUpdate functions
- Fixed color picker cancelFunc to properly restore colors on cancel
- Fixed custom colors not applying on addon load
- Fixed ForceUpdate() errors when disabling custom colors (method doesn't exist on orbs)
- Fixed Settings API integration (CreateSettingsButtonInitializer)
### Technical
- Added char.orbs.useCustomColors, healthColor, powerColor to database
- Created UpdateOrbColors() callback for real-time updates
- Added early returns in Health_PostUpdateColor and Power_PostUpdate to preserve custom colors
- Used closure pattern in cancelFunc for proper color restoration
- Custom colors override automatic coloring (colorHealth/colorPower flags)
## [2.0.0-alpha1] - 2026-01-29
### Added
- Added Diablo 2 Resurrected orb style setting with full localization (12 languages)
- Added D2R style orb textures (orb-art1-d2r.tga, orb-art2-d2r.tga)
- D2R orb style is now enabled by default (can be disabled in settings)
- Added UI reload confirmation dialog when changing orb style
### Fixed
- Fixed ADDON_ACTION_BLOCKED error when hiding player aura buttons during combat
- Fixed ADDON_ACTION_BLOCKED error when EditMode tries to change frame parent during combat
- Fixed ADDON_ACTION_BLOCKED error when making protected frames movable during combat
### Technical
- Added global.orbs.useD2RStyle setting to database (default: true)
- Added conditional texture loading in Player.lua based on orb style setting
- Added InCombatLockdown checks to prevent taint in three critical locations
## [1.9.7.1] - 2026-01-27
### Fixed
- Fixed achievement toasts, loot popups, and bonus rolls not showing
- Disabled custom AlertFrames positioning module to use Blizzard default behavior
- Alert notifications now appear at default Blizzard position (top center of screen)
### Technical
- Commented out AlertFrames.lua module in Components/Misc/Misc.xml
- Removed conflicts between Core/Blizzard.lua and Components/Misc/AlertFrames.lua
## [1.9.7-RC3] - 2026-01-26
### Added
- Added "Main Button Size" setting for MinimapButtons (24-64 pixels, default: 40)
- Full localization for main button size setting (12 languages)
- Dynamic button size update - changes apply immediately without reload
### Changed
- MinimapButtons main button border now scales proportionally with button size (135% of button size)
### Fixed
- Fixed achievement toasts, loot popups, and bonus roll windows not showing
- Disabled AlertFrame killing to restore Blizzard popup notifications
### Removed
- Removed unused "Main Button Scale" setting that had no effect
## [1.9.7-alpha3] - 2026-01-26
### Fixed
- Fixed achievement toasts, loot popups, and bonus roll windows not showing
- Disabled AlertFrame killing to restore Blizzard popup notifications
## [1.9.7-alpha2] - 2026-01-26
### Added
- Added "Aura Icon Size" setting to control buff icon size near minimap (20-64 pixels, default: 36)
- Added full localization for aura icon size setting (12 languages)
### Changed
- Aura icon size now dynamically adjusts based on settings
- Disabled Reset/Import/Export section in settings (commented out, may be restored later)
## [1.9.7-alpha1] - 2026-01-25
### Added
- Added "Show Buffs Near Health Orb" setting (default: enabled) to toggle player buffs display
- Added "Disable DiabolicUI Minimap" setting (default: disabled) to completely disable custom minimap
- Added custom Arial Narrow font for aura cooldown timers (size 9 with outline)
- Added full localization for new settings (12 languages: en, de, es, fr, it, ko, pt, ru, zh)
- Added localization guidelines to project documentation
### Changed
- Reduced aura cooldown timer font size for better text fitting (45 мин now fits properly)
- Changed "Class Color for Power Orb" setting from global to per-character
- Each character can now have different power orb color preference
- Aura timer font changed to Arial Narrow for Cyrillic support
### Fixed
- Fixed Buffs frame nil error when showPlayerBuffs setting is disabled
- Fixed Cyrillic characters displaying as squares in aura timers
### Development
- Added .psd files in Assets folder to .gitignore
- Removed tracked .psd file from repository (kept on disk for local use)
## [1.9.6] - 2026-01-25
### Fixed
- Fixed player unit frame buffs/debuffs not updating count in combat
- Fixed action buttons becoming grayed out in combat
- Fixed aura filters using incorrect field (expiration instead of expirationTime)
- Fixed arithmetic on secret value errors when calculating aura time remaining
- Fixed target/nameplate auras not showing in combat
### Changed
- Player buffs/debuffs now use non-secure buttons to allow combat updates
- Target/Focus/Nameplate auras remain secure (updates deferred until combat ends)
- All aura filters now use data.expirationTime with secret value protection
- Removed stack count condition from player buff filter
- In combat, auras show if expirationTime exists (temporary auras only)
### Known Issues
- Target frame auras do not update count during combat (secure button limitation)
- Some permanent buffs may show in combat if their values become secret
## [1.9.6-alpha3] - 2026-01-25
### Fixed
- Fixed action buttons becoming grayed out after entering combat caused by taint propagation
- Prevented C_UnitAuras.GetAuraDuration calls during combat to avoid tainting action buttons
### Changed
- Secret value aura cooldowns now only update outside of combat to prevent taint
- Regular (non-secret) aura cooldowns continue to work normally in and out of combat
### Known Issues
- Auras with secret values (duration/expiration) will not show cooldown spirals during combat
- Cooldown display will resume after leaving combat
## [1.9.6-alpha2] - 2026-01-25
### Fixed
- Fixed aura cooldowns not displaying in combat for unit frames (near orbs)
- Fixed aura cooldowns not displaying in combat for standalone auras (near minimap)
- Implemented proper secret values handling for aura duration and expirationTime
- Added missing EnableThird locale translations for third action bar option
### Changed
- Updated aura system to use C_UnitAuras.GetAuraDuration() for secret values
- Updated aura buttons to use SetCooldownFromDurationObject() method
- Added countdown numbers display on aura cooldowns
## [1.9.5-RC1] - 2026-01-24
### Fixed
- Fixed action bar cooldowns not working in combat for WoW 12.0.0 Midnight
- Fixed cooldown spiral animation not showing in combat
- Fixed cooldown countdown numbers not displaying in combat
- Fixed action bars not updating when dismounting in combat
- Implemented support for WoW 12.0.0 secret values system in LibActionButton-1.0-GE
### Changed
- Switched to Blizzard's built-in cooldown countdown (native WoW API)
- Updated LibActionButton to use ActionButton_ApplyCooldown when available
- Updated LibActionButton to use C_ActionBar.GetActionCooldown API for WoW 12.0+
- Added fallback support for older WoW versions without C_ActionBar API
- Dropped support for WoW 11.x (The War Within) - addon now requires WoW 12.x Midnight
### Known Issues
- Buffs and debuffs may not display correctly in combat due to WoW 12.0 secret values system
- Unit auras require additional work to handle secret values properly
## [1.9.4] - 2026-01-17
### Changed
- Updated Interface version to 120001 for WoW 12.0.1 compatibility
- Changed addon description from "WoW 11.x" to "WoW 12.x"
### Fixed
- Fixed pet bar tooltips not showing on hover
- Preserved original PetActionButtonTemplate tooltip handlers to maintain proper tooltip functionality
## [1.9.3] - 2026-01-06
### Changed
- Renamed "Hide Target Name on Cast" setting to "Show Target Castbar?" in all 12 locales
- Inverted setting logic: checkbox enabled = show castbar overlay and replace name with spell name
- Default changed to disabled (false) - castbar overlay now hidden by default
### Fixed
- Fixed spell name remaining visible after cast completion
- Fixed castbar progress overlay showing when setting is disabled
- Fixed cast time "0.0" remaining visible after cast completion
### Removed
- Removed unused Settings_Modern.lua file (603 lines of dead code)
## [1.9.2] - 2026-01-06
### Added
- Added full localization support for all WoW-supported languages:
- German (deDE)
- Spanish EU (esES)
- Spanish Mexico (esMX)
- French (frFR)
- Italian (itIT)
- Portuguese Brazil (ptBR)
- Portuguese Portugal (ptPT)
- Korean (koKR)
- Chinese Simplified (zhCN)
- Chinese Traditional (zhTW)
- All 110+ settings strings now translated for each locale
### Changed
- Action bar settings are now per-character instead of shared across all characters
- Disabled AceDB profile system to ensure independent action bar configuration for each character
- Hidden stance bar settings from UI (settings remain in code for future use)
- Stance bar now disabled by default
### Fixed
- Fixed issue where enabling secondary/third action bars on one character would enable them on all characters
- Fixed action bar count being shared via "Default" profile across all characters
## [1.9.1] - 2026-01-06
### Fixed
- Fixed empty buff/debuff slots appearing during combat (alpha not properly restored)
- Fixed buff/debuff position jumping when mounting/dismounting vehicles or quest mounts (preserves normal offset during temporary bars)
- Fixed PetBar and StanceBar positioning to use action bar settings instead of visibility state
- Fixed PetBar appearing above second bar instead of third when 3 bars are enabled (removed db.positionY override)
- Adjusted PetBar vertical position (lowered by 15 pixels when 3 bars enabled, no offset for 2 bars)
### Performance
- Optimized ActionButton usability updates: reduced from 100+ to 2 updates per second (50-150x improvement)
- Optimized StatusBars overlay animation: reduced from 60 to ~3 updates per second (20x improvement)
- Optimized cooldown timer updates with adaptive throttling based on remaining time:
- Short cooldowns (<5s): 10 updates/sec for accuracy
- Medium cooldowns (5-30s): 5 updates/sec
- Long cooldowns (>30s): 2 updates/sec
- Overall UI performance improvement: 10-30x reduction in CPU usage during combat
## [1.9.0] - 2026-01-05
### Fixed
- Fixed buff/debuff icon duplication and texture mask exhaustion during combat
- Fixed empty buff/debuff icons appearing during combat
- Fixed incorrect buff/debuff positioning after exiting combat (second row starting mid-way)
- Optimized texture updates to only call SetTexture() when icon fileID actually changes
- Improved combat lockdown handling for aura buttons - new buttons are positioned immediately, existing buttons repositioned when safe
### Changed
- Minor player buff/debuff horizontal position adjustment for better alignment (-320→-316, 320→316)
## [1.8.2] - 2026-01-02
### Fixed
- Fixed ADDON_ACTION_BLOCKED when EditMode tries to reposition frames during combat (blizzard.lua)
- Fixed ADDON_ACTION_BLOCKED when making protected frames movable during combat (QualityOfLife.lua)
- Added InCombatLockdown() checks in resetParent function and MakeFrameMovable function
## [1.8.1] - 2026-01-02
### Fixed
- Fixed ADDON_ACTION_BLOCKED errors when hiding buff and debuff buttons during combat
- Added InCombatLockdown() checks in auras.lua for both buffs (line 746) and debuffs (line 879)
## [1.8.0] - 2025-12-25
### Changed
- Hidden Blizzard's default minimap zone name background and text
- Updated default minimap position to (-20, -20) for better screen alignment
- Minimap now displays only DiabolicUI's custom zone text without Blizzard overlay
## [1.7.7] - 2025-12-24
### Fixed
- Fixed ADDON_ACTION_BLOCKED errors in aura positioning during combat
- Fixed nil comparison error in target health prediction
- Improved combat lockdown handling for protected frames
## [1.7.6] - 2025-12-22
### Changed
- Removed archive files from repository
## [1.7.5] - 2025-12-22
### Changed
- Cleaned repository structure
- Updated gitignore patterns
## [1.7.4] - 2025-12-22
### Changed
- Cleaned commit history for consistency
- Repository history rewritten
## [1.7.3] - 2025-12-22
### Changed
- Updated version number to match release tags for better version tracking
## [1.7.2] - 2025-12-22
### Added
- **NamePlates Toggle Setting** - Optional setting to enable/disable DiabolicUI nameplates
- New "Enable DiabolicUI NamePlates" checkbox in Unit Frames settings
- Default: disabled (uses standard Blizzard nameplates)
- Allows users to choose between custom and standard nameplates
- English and Russian localization
## [1.7.1] - 2025-12-21
### Fixed
- Fixed action bar page navigation buttons visibility
## [1.7.0] - 2025-12-21
### Added
- **MinimapButtons Module** - Collect addon minimap buttons into single container
- Automatically gathers all addon buttons around minimap
- Styled container matching DiabolicUI aesthetic
- Toggle visibility with minimap button
- Reduces minimap clutter
## [1.6.0] - 2025-12-21
### Added
- **MapCoords Module** - Display coordinates on map and minimap
- Player coordinates on world map
- Cursor coordinates on hover
- Minimap coordinates display
- Styled to match DiabolicUI design
## [1.5.0] - 2025-01-20
### Added
- **Movable Interface Frames** - Hold SHIFT and drag to move Blizzard interface windows
- Supports: Character, Bags, Map, Friends, Settings, Merchant, Professions, Talents, Spellbook
- Automatically disabled if BlizzMove addon is detected
- New Quality of Life settings section
- Feature enabled by default
### Technical
- Created MakeFrameMovable() function with SHIFT+drag requirement
- Added EnableMovableFrames() with standard and dynamic frame lists
- Added defaults for tooltips and qol sections in Core.lua
- Added QoL settings callback handling
- Added English and Russian localization
## [1.4.3] - 2025-01-20
### Removed
- Removed all Wrath Classic support files (DiabolicUI3_Wrath.toc, Libs_Wrath.xml, oUF.old)
- Cleaned up 10,763 lines of unused code
- CurseForge no longer shows incorrect Wrath 3.4.0 compatibility
## [1.4.2] - 2025-01-20
### Changed
- Updated README with complete addon description from CurseForge
- Added comprehensive list of features and improvements
- Added Quality of Life features section
- Added .pkgmeta for CurseForge automatic packaging
- Updated .gitignore to exclude DiabolicUI3_Wrath.toc
## [1.4.1] - 2025-01-19
### Added
- GitHub Actions workflow for automated releases
- Automatic DiabolicUI3.zip archive creation on tag push
- Archive always contains DiabolicUI3 folder regardless of tag name
### Fixed
- Fixed GitHub Actions permissions for release creation
## [1.4.0] - 2025-01-19
### Added
- **Auto-Fill Delete Confirmation** - No need to type "DELETE" manually when destroying items
- Automatically fills confirmation text
- Works with all localizations (uses Blizzard's DELETE_ITEM_CONFIRM_STRING)
- Created new QualityOfLife module
## [1.3.0] - 2025-01-19
### Added
- **Tooltips Follow Mouse Cursor** - Integrated TTOM functionality
- Adjustable X and Y offset settings (-100 to 100 pixels)
- Feature enabled by default
- All DiabolicUI3 visual styles preserved
- Settings in Tooltips section
## [1.2.0] - 2025-01-18
### Fixed
- **Action Bar Switching in Quests** - Properly switches when entering vehicles/dragons
- **Buff Cancellation** - Right-click buffs to cancel them (works on player and target frames)
- Quest abilities display properly
- Secondary bar automatically hides when vehicle/override/possess modes activate
### Technical
- Added handling for UPDATE_VEHICLE_ACTIONBAR, UPDATE_OVERRIDE_ACTIONBAR, UPDATE_POSSESS_BAR events
- Switched to CancelUnitBuff() API for buff cancellation
- Optimized state driver switching logic
## [1.0.0] - 2025-01-17
### Added
- **Threat Indicator Setting** - Toggle threat-based HP coloring on/off
- **Improved "Hide target name on cast"** - Now hides cast bar, cast time, and spell text
- **Settings Export/Import** - Share configurations or backup settings
- **Target Frame Scale Control** - Adjust target frame size independently (0.5x - 1.5x)
### Fixed
- **EditMode Position Saving** - Minimap, TalkingHead, ExtraButtons properly save positions
- **Pet Bar Duplication** - Reworked Blizzard pet bar hiding using safe methods
- **Multiple ADDON_ACTION_BLOCKED Errors** - Added InCombatLockdown() protection
- **Action Bar Toggle** - Works as proper toggle (left click shows/hides all 3 extra bars)
- **HealPredict Nil Comparison** - Added nil checks
- **Addon Metadata** - Added icon, updated author info, removed outdated links
### Technical
- Disabled Blizzard frames hiding for party/boss/arena (compatibility)
- Removed all taint-causing methods
- Added RegisterAttributeDriver for safe pet bar hiding
- Improved combat lockdown protection across all components
## [Alpha 2] - 2025-01-16
### Initial Release
- Complete API migration to WoW 11.x standards
- Migrated to C_AddOns namespace
- Updated Aura system to use C_UnitAuras API
- Updated Reputation system to use C_Reputation API
- Fixed MainMenuBar → MainActionBar transition
- Replaced LibActionButton-1.0 with LibActionButton-1.0-GE
- Updated oUF to version 12.1.0
- Settings panel in Interface Options
- Addon Compartment support

