File Details
BetterTargetHud
- B
- Feb 9, 2026
- 6.12 MB
- 9
- 12.0.1+1
- Retail
File Name
BetterTargetHud.zip
Supported Versions
- 12.0.1
- 12.0.0
BetterTargetHud Change Log
(Revisions 20.55 – 20.67)
New Features: Profile System
Profile Management Tab: Added a dedicated "Profiles" tab in the Interface Options. This allows users to create, copy, delete, and reset profiles (e.g., specific layouts for "Tanking" vs "Healing") using standard AceDB functionality.
Per-Character Defaults: The addon now defaults to character-specific profiles (true flag in AceDB:New), ensuring that layout changes on one character do not accidentally overwrite another unless explicitly copied.
Critical Fixes (Class Power Engine)
Restored Stagger Bar (Monk): Fixed a critical bug where oUF was intercepting and discarding Stagger events. Events are now registered directly on the CustomClassPower widget, completely bypassing oUF's filter.
Restored Devourer Engine (Demon Hunter): Re-implemented the specific "River & Ghost" geometry for Spec 3 (Devourer). The bar now correctly visualizes Soul Fragments and the Void Metamorphosis transformation.
Event Architecture Overhaul: All Class Power events (UNIT_AURA, UNIT_POWER_UPDATE, etc.) are now handled by a dedicated script on the widget itself. This prevents "nil" errors and ensures updates fire reliably for complex specs like Arcane Mages and Evokers.
Warrior Scrub: Removed the experimental "Whirlwind Stack" tracker after in-game testing confirmed the API reports 0 stacks during combat.
Core & Systems
Visibility "Gatekeeper" Fix: Added explicit Show() calls in Modules.lua and Core.lua. This prevents the Class Power container from getting stuck in a hidden state after a profile switch or UI reload.
Live Config Updates: Fixed the "Point Size" slider in Options. It now uses a fallback update call, so you see the points resize immediately as you drag the slider.
Chat Spam Removed: Silenced the debug message that printed the profile name to Chat Frame 1 every time a setting was changed.
Options & Defaults
Visual Tweaks: Changed the default Point Size to 15 (was 14) and Spacing to 1 (was 2) to better match the new high-fidelity rendering.
12.0 API Compliance: All new code strictly adheres to the Midnight API standards (e.g., C_UnitAuras, GetSafeStacks), ensuring "Zero Taint" performance.
(v20.0 - v20.21) – The 12.0 API & Private Aura Stability
Critical Fix (Secret Values): Resolved a hard crash in the 12.0 environment caused by scanning player auras.
Issue: The WoW 12.0 client flags certain auras as "Private/Secret". Attempting to compare their spellId or name in a Lua loop triggers a security violation (attempt to compare field 'spellId' (a secret value)).
Solution: Implemented GetSafeStacks() which uses direct ID lookup exclusively, bypassing unsafe iteration loops entirely.
Combat Stability Protocol: Addressed the issue where Soul Fragments (1245577) are classified as a Private Aura during combat.
Behavior: The API returns nil or [SECRET] for these fragments in combat to prevent automation.
Fallback: The addon now detects this restricted state and gracefully defaults the "Ghost Bar" to 0 stacks in combat (hiding it), rather than crashing the UI. The feature remains fully active out-of-combat for preparation.
Rendering Engine Hardening:
Zero Taint: Removed all :Show() and :Hide() calls from the UpdateClassPower runtime loop. Visibility is now controlled strictly via SetAlpha(0/1) to prevent "Action Blocked" errors on Protected Frames.
Unconditional Geometry: The "Ghost Bar" no longer uses conditional logic to draw. It always calculates geometry; if the width is 0, it is invisible. This removes logic branching that could stall the renderer.
(v17.0 - v19.5) – The "River & Ghost" Engine (Demon Hunter)
Feature (Void Metamorphosis): Implemented a "River" style reveal animation for Demon Hunters (Spec 3).
Logic: Unlike standard combo points, this bar acts as a continuous resource meter that fills smoothly from 0 to 50 based on Void Metamorphosis stacks.
Feature (The "Ghost Bar"): Created a predictive overlay for Soul Fragments.
Visual: A semi-transparent blue bar that extends beyond the current resource (River) to show potential resources if nearby fragments are consumed.
Layering: Utilized a 3-layer Z-Index system: Background (Empty) → Ghost (Prediction) → River (Actual).
Refinement: Added "Glow" state support. When the resource caps (50/50), the bar pulses with a high-intensity texture overlay.
(v14.0 - v16.5) – Advanced Class Mechanics
Death Knight (Rune Sorting):
Logic: Implemented RuneComparison logic to sort Runes based on their "Ready" state and cooldown duration. Runes now visually fill from Left to Right regardless of their internal ID.
Visuals: Added "Swipe" texture support (Circular Cooldowns) for replenishing runes.
Monk (Stagger Bar):
Complex Rendering: Created a split-texture reveal system. The Stagger bar is composed of two distinct textures that rotate and reveal independently to support the non-linear progression of the Stagger mechanic.
Coloring: Added dynamic vertex coloring (Green → Yellow → Red) based on Stagger % vs Max Health.
Evoker (Essence):
Logic: Adapted the "Reveal" engine to support Essence regeneration, allowing for partial fills (charging) alongside full point generation.
(v12.0 - v13.5) – The "Reveal" Mode Update
New Architecture: Split the Class Power rendering into two distinct modes:
Discrete Mode: Standard icons (Combo Points, Holy Power, Soul Shards) that toggle on/off.
Reveal Mode: A continuous texture mask that expands/contracts to reveal the underlying art (Arcane Charges, Essence).
Math: Implemented GetRotatedUVs to calculate texture coordinates in real-time, allowing textures to "fill" without distorting or stretching the image.
(v10.0 - v11.5) – Class Power Initialization
Core Module: detached the class resource logic from the standard oUF element to create ClassPower.lua.
Configuration: Built the ClassConfigs database, allowing every class to have unique:
Textures/Atlases (e.g., ComboPoints-ComboPoint, Warlock-ReadyShard).
Colors (RGBA values).
Scales & Spacing (Pixel-perfect alignment).
Support Added: Rogue (Combo Points), Druid (Combo Points/Mana), Paladin (Holy Power), Warlock (Soul Shards), Mage (Arcane Charges).
(v7.7 - v9.5)
1. Visual Overhaul ("Souls Mode")
Custom Asset Support: Replaced fallback Blizzard textures with specific support for custom .png assets located in the Media folder.
Filigree Integration: Implemented a wide-aspect ratio rendering container (512x128) to support the "Bat Wing" style bar cap without distortion.
Transparency Fixes: Resolved issues where assets rendered as black or white boxes by eliminating "fake" transparency layers.
2. The "Strata Sandwich" Rendering Engine
3D Portrait Layering: Solved the issue of 3D models appearing on top of the UI.
New Rendering Hierarchy: Established a strict Z-Index stack to ensure the "Blood on Glass" effect works properly:
Top (DIALOG): RingFrame (Blood/Gore overlay).
Upper Middle (HIGH): PortraitFrame (The 3D Model).
Lower Middle (MEDIUM +20): ArtFrame (Filigree/Wings - Sits on top of the health bar).
Bottom (MEDIUM +1): HealthBar (Standard Status Bar).
3. Progressive Visuals
Dynamic Gore System: Implemented logic to swap the Ring texture based on target health percentage.
100-50%: Clean Iron Ring.
49-20%: Cracked/Bloodied Ring.
<20%: Gore-Drenched Ring.
Safe-Check Logic: Uses the visual status bar value rather than protected API calls to ensure stability during combat.
4. Zone Automation Module
Auto-Switching: Added logic to detect the current instance type (raid, pvp, party, world) and automatically load a specific User Profile.
Smart Combat Queue: If the player zones in while in combat, the addon now "queues" the profile switch and executes it immediately after combat ends (PLAYER_REGEN_ENABLED), preventing UI errors.
Migration Safety: Added ValidateProfile() to auto-inject default automation settings into existing user profiles, preventing nil index crashes.
5. Options & UX Enhancements
Global Positioning: Added X Offset and Y Offset sliders to the General tab, allowing the entire HUD cluster to be moved pixel-by-pixel without breaking internal anchors.
Automation GUI: Added a dedicated "Automation" tab to the settings menu with toggles and dropdowns for every zone type.
Menu Restoration: Fixed a regression where complex Text Tag validators and Injectors were briefly removed; full functionality has been restored.
v4.9 – "Sexy Mode" & Final Polish (Current)
Feature: Renamed "Thin Mode" to "Thin Mode (Sexy)".
Polish: Finalized "Smart Restore" logic to ensure disabling Thin Mode returns the bar exactly to its previous custom height and text layout.
v4.7 - v4.8 – The Style Update
Feature: Introduced "Thin Mode", a preset that overrides the bar height to a sleek 8px (mimicking Details!).
Logic: Implemented a Non-Destructive Save/Restore System. Enabling Thin Mode snapshots the user's layout; disabling it restores the original height and text positions.
Safety: Added logic to automatically force text elements anchored "Inside" to "Above" when Thin Mode is active to prevent visual clipping.
v4.4 - v4.6 – Advanced Coloring Logic
Feature: Added Health Gradient support (smooth Green → Yellow → Red transition based on health %).
UX: Replaced confusing override checkboxes with Explicit Color Mode Dropdowns:
Player Mode: Choose between Class Color, Health Gradient, or Custom.
NPC Mode: Choose between Health Gradient or Custom.
Fix: Resolved conflicts where enabling Class Colors would accidentally disable custom settings for NPCs.
v4.2 - v4.3 – Visual Fidelity
Fix: Removed the RenderFrame.lua dependency which was causing a "White Bar" glitch by conflicting with oUF’s internal rendering.
Polish: Added Smart Anchor Padding. Text elements anchored to the "Outside" (Left/Right) now automatically apply a 2-5px offset so they don't touch the bar border by default.
v4.0 - v4.1 – The Real-Time Engine
Major Fix: Solved the "Reload UI" requirement. Implemented UpdateAllElements("RefreshUnit") to force the oUF engine to redraw health, power, and tags instantly when settings are changed.
UX: Removed the manual "Redraw" button as it became obsolete.
v3.0 - v3.6 – Customization & Tags
Feature: Integration of Ace3 Configuration Libraries.
Feature: Added the Tag Injector system, allowing users to build complex text strings (e.g., [name] [level] [curhp]) via dropdown menus without needing to know the code.
Feature: Added Execute Markers, allowing overlays at 20% and 35% health for specific classes.
v1.0 - v2.0 – Inception
Core: Established the addon using the oUF Framework for lightweight unit handling.
Visuals: Basic health bar, name text, and a draggable/lockable anchor frame.

