File Details
HealReforged-Beta-v1.1.26.zip
- R
- Jun 10, 2026
- 24.13 MB
- 80
- 12.0.7+2
- Retail
File Name
HealReforged-Beta-v1.1.26.zip
Supported Versions
- 12.0.7
- 12.0.5
- 12.0.1
Change Log
Version: 1.1.26
2026-06-09
Fixed
- Fixed the right-side HoT row not rendering visibly beside the unit frame by raising the HoT badge frame levels above the row chrome.
- Raised the HoT display cap so Restoration Druid tracking can show multiple active HoTs instead of collapsing to a single visible badge.
Fixed
- Restored click-casting buttons to the bottom footer row on unit frames.
- Added a dedicated right-side HoT stack row outside the frame edge and a separate countdown row beneath it.
- Sized the right-side HoT and countdown rows from the same action-bar button size settings so they stay aligned.
- Re-enabled visible cooldown countdown numbers on click-casting and dispel spell badges.
- Fixed the right-side row anchors so the HoT and countdown badges render next to the frame instead of behind it.
- Reverted the main UI title and header banner changes back to the original GH3-style layout after the crest-style pass proved too intrusive.
- Fixed the new PvP/War Mode avatar indicator so it no longer throws a nil-call during live snapshot refreshes, and the avatar now keeps its red glow / badge state working on supported unit rows.
- Fixed the FrameRenderer main chunk local-variable warning by moving the new refresh helpers out of the file-scope local budget.
- Fixed startup profile application when the settings window frame is not yet available by guarding the profile sync hooks and window-theme calls.
- Fixed the Tank Tools BigWigs pull countdown fallback so it now starts the actual pull timer instead of opening the BigWigs options UI.
- Fixed Vivify proc highlighting for monk Vivacious Vivification so the free/instant cast now glows visually on mirrored action buttons.
- Fixed mirrored spell cooldown timers so they continue updating in combat instead of only refreshing after combat ends.
Version: 1.1.21
2026-06-02
Fixed
- Fixed mirrored action-button cooldowns and charge cooldowns so they resolve spell tokens to numeric spell IDs before querying Blizzard's modern
C_SpellAPIs. This keeps the buttons behaving like native action bars on WoW 12.0.5 and newer clients, including combat usage.
Added
- Added a "Save This Toon's Settings" button to the Copy From Toon card on the Frames pane. Click it on any character to immediately write that character's settings snapshot to the account database without waiting for a logout. The saved toon will then appear in the dropdown on other characters.
- Added
/hr syncslash command that does the same thing from the chat box.
Fixed
- Fixed the Copy From Toon dropdown showing no toons: snapshots were only written on
PLAYER_LOGINandPLAYER_LOGOUT, so any character that had never logged out since the feature was added would not appear. The new Save button and/hr synccommand provide an on-demand alternative.
Version: 1.1.19
2026-05-31
Added
- Click-cast action buttons now dim to grey when a spell cannot be cast due to insufficient resources (Holy Power, combo points, mana, etc.), matching native Blizzard action bar behaviour. The icon brightens automatically once the player has enough resources. Uses
C_Spell.IsSpellUsable(The War Within) withIsSpellUsableas a legacy fallback, driven by theSPELL_UPDATE_USABLEevent.
Fixed
- Fixed
LUA_WARNING: function has more than 200 local variablesin bothFrameRenderer.lua(main chunk) andSettingsWindow.lua(buildFramesPanel), which caused FrameRenderer to fail registration on load. The usability check was extracted from a separate forward-declared upvalue into an inline block inside the existingdoscope. The toon copy card construction was extracted into a dedicated file-scope function (buildToonCopyCard) so it has its own local variable budget.
Version: 1.1.18
2026-05-31
Fixed
- Fixed Paladin (and other class) proc glows still not firing after the v1.1.16 event-driven fix:
SPELL_ACTIVATION_OVERLAY_GLOW_SHOWfires with a base spell ID whileC_Spell.GetSpellInforesolves the click-cast button's binding to a current-rank variant ID — they differ even for the same spell. Bootstrap now also resolves the spell name at event time and stores it inaddon.activeOverlaySpellNames; the overlay check adds a name-based fallback so variant IDs still match. Bootstrap also pre-initialises both tables to{}atADDON_LOADEDso the polling-API fallback (C_SpellActivationOverlay.IsSpellOverlayed/IsSpellOverlayed) is never reached — those APIs were causing Beacon of Hope and similar always-active spells to glow permanently.
Changed
- Moved the "Copy From Toon" feature from the Profiles pane to the Frames pane where it belongs. The dropdown is populated with all previously logged-in characters whose settings snapshot was saved (snapshots are written on every login and logout). The Profiles pane retains its Export / Import section unchanged.
Version: 1.1.17
2026-05-31
Fixed
- Fixed charge counts displaying as 0 on click-cast action buttons for spells with multiple charges (e.g. Frenzied Regeneration):
C_Spell.GetSpellChargesin The War Within requires a numeric spell ID, but the function was passing the raw spell token (a string name such as"Frenzied Regeneration"), which caused it to return nil. Also changed the legacyGetSpellChargesfallback fromelseiftoif not chargeInfoso it fires even when the modern API exists but resolves nothing. Charge counts and charge-based cooldown swipes on click-cast buttons now work correctly.
Version: 1.1.16
2026-05-31
Fixed
- Fixed proc glows (e.g. Word of Glory on Paladin) still not lighting up on click-cast action buttons in The War Within (Interface 120005): the
SPELL_ACTIVATION_OVERLAY_GLOW_SHOWevent passes the proc'd spell ID as an argument, but the Bootstrap handlers had no parameters so the ID was silently dropped, andgetSpellActivationOverlayStatefell through toC_SpellActivationOverlay.IsSpellOverlayed/ globalIsSpellOverlayed— neither of which exists in this client version — so every overlay check returnedfalse. Bootstrap now captures the spell ID from each event and stores it inaddon.activeOverlaySpells;getSpellActivationOverlayStatechecks that table first, making proc glows event-driven and reliable without any dependency on missing polling APIs.
Version: 1.1.15
2026-05-31
Fixed
- Fixed proc glows never visually firing on click-cast action buttons:
ActionButton_ShowOverlayGlowwas being called on HealReforged's customSecureActionButtonTemplatebuttons (which have noOverlayGlowchild frame), the pcall succeeded silently, and the native-glow flag blocked the custom glow frame from ever running. The native call is now bypassed entirely and the custom animated edge-glow is always used.
Version: 1.1.13
2026-05-31
Fixed
- Fixed a proc-glow startup/runtime error in
UI/FrameRenderer.luacaused by the new action-button glow helper callingcreateEdgeBorderbefore that local helper existed in scope.
Version: 1.1.11
2026-05-31
Added
- Added optional per-specialization full profile switching in the Profiles pane, including a toggle and live assignment summary so each spec can auto-load its own Character or Account profile slot on the same toon.
Fixed
- Fixed embedded row action-button proc glows not lighting for normal spell bindings saved in the addon's name-based
S:format; the overlay query now resolves those bindings back to real spell IDs before checking Blizzard's spell-activation state.
Version: 1.1.9
2026-05-31
Added
- Added a Profiles pane dropdown that lets the current character copy live frame and settings data from another toon that has logged in on this version.
Improved
- Improved embedded row action buttons so proc-ready spells now light up from Blizzard's spell-activation overlay state, matching the normal action-bar glow behavior more closely.
Fixed
- Fixed healer low-mana alerts on tank-facing roster rows when Blizzard leaves live group roles as
NONEorUNASSIGNED; healer-capable mana users now still trigger the row flash and local chat warning. - Fixed the new proc-glow and mana-alert updates pushing
UI/FrameRenderer.luapast Lua 5.1's top-level local-variable limit, which preventedFrameRendererfrom registering and broke addon startup.
Version: 1.1.8
2026-05-25
Added
- Added the new Tank Tools panel as a major feature release for tank characters, with a movable compact shell, group/instance visibility rules, tank-spec defaults, lock, scale, opacity, and reset-position controls.
- Added secure Tank Tools target-marker buttons for Skull through Star using protected
/tmmacro clicks, with hostile mouseover priority, current-target fallback, active marker highlights, and a secure clear-marker button. - Added a preferred-marker helper: right-click any target marker to save it as the preferred marker, with a distinct selected ring and panel/settings summary state. Target-by-icon remains user-guided to avoid unsafe background targeting.
- Added M+ priority macro generation to Tank Tools: paste priority mobs or import MDT dungeon mobs, then use Mark to run the active target-and-mark priority macro from the Tank Tools UI.
- Added a curated Skyreach priority macro list so the generated macro targets priority casters instead of noisy or stale MDT rows such as duplicate trash names from previous imports.
- Added an editable per-dungeon priority mob list in the Tank Tools pane, showing imported mobs with controls to change markers, move entries up or down, add mobs, and remove mobs before generating the M buttons.
- Added an MDT dungeon selector and current-season import path for Tank Tools priority lists, with imported MDT mobs sorted by likely priority and assigned rotating suggested markers instead of defaulting every mob to Skull.
- Added MDT import modes for Priority, Casters, and All non-boss mobs, with Priority focused on cast-capable adds and row type labels so unwanted mobs are easier to remove.
- Added Tank Tools priority list export/import codes, including single-list and all-list export paths for sharing season priority lists.
- Added default Square/Moon reservations for generated M-button priority marks so tank/healer player markers are not reused by imported add lists.
- Changed generated M-button behavior back to maintaining one full target-and-mark macro instead of the earlier multi-button targeting experiments.
- Clarified Tank Tools marker help text: panel clicks should be used on your current target, while mouseover marking requires a keybind or hardware click with the cursor still on the enemy/nameplate.
- Added functional Tank Tools pull timer buttons for 3, 5, 10, and 20 seconds, using Blizzard native countdown first, optional DBM/BigWigs hooks when available, and grouped chat fallback when countdown APIs are unavailable.
- Added compact Tank Tools ready-check and role-check buttons, plus an opt-in secure world marker row with left-click placement and right-click clearing.
- Added a Frames pane control to set the current character's live frame positions and sizes as the all-toon default while keeping export/import available for player-to-player sharing.
- Added live-frame alerts for healer low mana, healer mana recovery, and deaths, including frame flashes, local chat messages, and a persistent red death X that stays below battle-rez/action controls.
- Added a Frames pane checkbox to hide Blizzard's Talking Head pop-up while HealReforged is active.
- Added a Frames pane checkbox to hide Blizzard's boss and scenario banner pop-ups while HealReforged is active.
- Added
/hr testui, which opens a visual test popup with buttons to preview healer-row alerts, death state, dispel state, cooldown, and aggro styling without needing live dungeon pulls. - Reduced combat CPU by routing high-frequency health and power unit events through narrower snapshot fast paths instead of the full per-unit capture path.
Improved
- Refreshed the Tank Tools settings pane with new toggles, a visible priority list editor, priority mob import controls, MDT integration buttons, updated tooltips, and clearer in-addon Help text.
- Fixed the settings sidebar sizing so the Help button stays inside the navigation frame and moved Tank Tools below Click Casting in the settings navigation.
- Improved mirrored click-casting action buttons with action-bar-style cooldown countdown text and charge counts while leaving secure click behavior unchanged.
- Improved cooldown visuals on small embedded action buttons by using HealReforged-controlled countdown text instead of relying on Blizzard's native cooldown-number layer.
- Improved the active dispel button cue so removable debuffs flash the whole button blue and add a stronger orange glow around the slot.
- Reduced the new-user Group Seed Height default to 96px so detached subgroup panels no longer start oversized.
- Lowered the empty Target live frame to 20% opacity while no target is selected, restoring normal opacity as soon as a target exists.
Fixed
- Fixed overlapping text in the Tank Tools priority mark settings card by moving list metadata below the checkbox description and giving the editor more vertical spacing.
- Fixed MDT priority mob import by reading MDT's actual saved current dungeon index through
MDT:GetDB().currentDungeonIdxand importing fromMDT.dungeonEnemies[currentDungeonIdx]. - Fixed the MDT dungeon selector so moving between dungeons switches the editable priority list instead of leaving the editor pinned to the previous dungeon list.
- Fixed healer low-mana alerts so the transition check no longer requires a plain numeric mana max before using the display-backed or visual mana fallback.
- Fixed live-frame alert messages by removing the protected automatic party/raid/instance chat send from the unit-refresh path, leaving the local chat-frame alert in place so Blizzard no longer blocks the healer alert flow.
- Reduced and clipped the death X overlay so it stays on the health/power lane instead of covering the row action buttons.
Version: 1.0.36
2026-05-23
Fixed
- Fixed an
ADDON_ACTION_BLOCKEDerror where the missing-target/player reset path could callHide()on the protected auto-dispel action button during combat lockdown. The reset now clears visual state immediately but defers protected visibility changes until combat ends. - Fixed large-pull CPU spikes caused by player and target unit-event storms bypassing the per-unit refresh throttle and forcing full render-state rebuilds. Player/target updates now coalesce through the core snapshot queue and refresh their live buttons directly when unit keys have not changed.
- Fixed threat-only refreshes doing full health, power, aura, utility, and healing-awareness snapshot work. Threat events now use an aggro-only snapshot path so add-heavy pulls do not repeatedly scan expensive unit state.
- Fixed utility-only refreshes doing avoidable health and power capture before reaching the range/ready-check fast path.
Improved
- Improved combat refresh behavior by merging queued core refresh flags, preventing same-frame player/target events from overwriting broader pending aura, healing, utility, or threat updates.
- Improved player and target live-frame updates so roster rows for the same unit are still refreshed without triggering a full roster rebuild.
Version: 1.0.35
2026-05-21
Added
- Added Click Casting pane controls to increase or decrease the mirrored roster action button size, with live frame refresh after each adjustment.
Fixed
- Fixed target clearing from normal world input: HealReforged now enables Blizzard's
deselectOnClickterrain-click behavior and binds ESC to a secure/cleartargetaction only while the replacement Target frame is visible and an active target exists. - Fixed the replacement Target frame keeping stale health/power bars, names, and status text after the target was cleared. Missing targets now reset the entire row to the blank
Target / 0% / MISSstate instead of only hiding the avatar. - Fixed clearing a self-target leaving the replacement Target frame populated with the player snapshot. Self-targets share the player's unit key, so clearing now explicitly removes the runtime target key and the target frame rejects any stale entry when Blizzard has no active target.
Version: 1.0.33
2026-05-21
Fixed
- Fixed the replacement Target frame swallowing background clicks without clearing the active target. The target frame now has a secure
/cleartargetclick layer behind its normal unit controls, while leaving ESC keyboard handling to Blizzard's normal target-clear path.
Improved
- Improved the Frames health color controls by moving the custom color picker to the right of the class-color target button and renaming it to
Color Pickerfor a cleaner layout.
Version: 1.0.32
2026-05-20
Added
- Added Frames settings that let players choose whether the health text or the health bar uses class color, with a Blizzard color picker for the other side so the two colors flip cleanly.
Fixed
- Fixed three crashes caused by WoW's secret-value restrictions on C_UnitAuras aura data fields:
normalizeBooleanValuethrew "attempt to perform boolean test on local 'value' (a secret boolean value)" becauseand/oroperators fail on secret booleans just like comparison operators do. Fixed by guarding withtype(value) == "boolean"first, then wrapping the boolean test inpcallso the restriction error is caught rather than propagated.getAuraBooleanField(used to readcanActivePlayerDispel) was returningfalsefor secret boolean fields, which silently suppressed the per-debuffcanPlayerDispelTypefallback. It now returnsnilon failure so the fallback fires correctly.normalizeAuraTypethrew "attempted to index a table that cannot be indexed with secret keys" becausedispelName/auraTypeaura fields can surface as secret strings, and using a secret value as a table key is restricted. Fixed by replacing the inline lookup withpcall(rawget, debuffPriority, auraType), which catches the error and returnsnil, 0so debuff-type detection falls back to the class/spell-capability tables.
- Fixed the dispel button staying dim when Blizzard marked a unit aura as player-dispellable but the debuff type remained secret or unavailable. Harmful aura scanning now includes the Retail 12.0.5
RAID_PLAYER_DISPELLABLEfilter pass and marks those auras as dispellable directly, so theDSPbutton can light up even whendispelName/auraTypecannot be safely read. - Fixed throttled
UNIT_AURAupdates being lost behind earlier health/power refreshes. Pending per-unit refresh flags are now merged, so high-frequency health events remain capped while debuff, HoT, and utility changes still make it through the delayed refresh. - Fixed the dispel pulse requiring a known debuff type/color. If the row has an active auto-dispel entry but the debuff type is unknown because of Retail secret-value restrictions, the button now pulses with the default debuff color instead of staying visually inactive.
- Fixed action-button and dispel cooldown checks to guard
C_Spell.GetSpellCooldown/GetSpellCooldownwithpcalland safe boolean handling, preventing restricted cooldown fields from crashing or suppressing cooldown visuals.
Improved
- Improved main unit-frame threat border colors so no/low threat is green, medium threat is yellow, and high threat remains red.
- Improved live-raid performance by caching resolved aura spell lookup tables and the player's HoT-awareness profile, reducing repeated spell resolution and table allocation during aura-heavy refreshes.
- Improved auto-dispel row rendering performance by caching active dispel spell resolution briefly by override/class/spec/time bucket, avoiding repeated class/spec/spell-name/icon checks for every visible row during the same render window.
- Improved row dirty-fingerprint behavior by removing the always-changing capture sequence from the visual-change check and tracking the actual debuff, buff, aura, healing-awareness, power, health, aggro, and range fields that affect rendering.
- Improved modern aura scanning safety by avoiding string conversion of possibly secret aura types in duplicate-key fallback logic and by fail-closing unsupported aura filter passes without breaking the rest of the harmful aura scan.
Removed
- Removed the redundant debuff-type secondary/status border from unit rows. Removable debuffs now rely on the flashing
DSPbutton and aura indicators, while the secondary border remains reserved for healing maintenance warnings.
Version: 1.0.29
2026-05-19
Fixed
- Fixed every per-row action button flashing its cooldown swipe at the same time whenever any spell was cast.
SPELL_UPDATE_COOLDOWNfires for every spell during the global cooldown, so polling each button'sC_Spell.GetSpellCooldownreturned the GCD on all of them simultaneously. The polled refresh now filters out the global cooldown (both via theisOnGCDfield and aduration <= 1.5sbelt-and-braces check), and aPostClickhook on each action button triggers a one-shot GCD swipe on just the button that was actually pressed — matching how Blizzard's own action bar gives click feedback. Real (longer-than-GCD) cooldowns continue to render on every button as they tick down.
Version: 1.0.28
2026-05-19
Fixed
- Fixed the per-row action buttons (Revive, Rebirth, TGT, click-cast macros, etc.) showing no cooldown swipe or click feedback when used.
getActionBarEntryCooldownwas filtering out any cooldown whereisOnGCD == trueand also short-circuiting on a mythicalisActivefield, so the global cooldown sweep — the very feedback Blizzard's own action bar shows after a click — was suppressed. The GCD swipe and longer real cooldowns now both render on the unit-row action buttons, matching the Blizzard action bar behavior.
Version: 1.0.27
2026-05-19
Fixed
- Fixed all addon settings being shared across every character on the account instead of being saved per-character. The frame skin (bar widths, colors, badges, indicators, health/power text modes), layout (shown frames, group flow, opacity, strata, Blizzard suppression, manual assignments), click-cast bindings, profiles, and theme are now all stored in
HealReforgedCharacterDBand load independently for each character. Previously only frame positions were per-character, andSyncCharacterFrameStateToAccountran on every login — so whichever character logged in last overwrote everyone's sharedHealReforgedDB.settings. The next time you log into each character after updating, its current settings are seeded one-time from your existing account-wide config, so nothing visible changes on first login; from that point on each toon keeps its own profile.
Version: 1.0.26
2026-05-18
Fixed
- Fixed a Mistweaver Monk dispel-capability crash:
getEffectiveSpellCapabilitiesreferencedgetPlayerClassFile/getPlayerSpecializationIdbefore either local function was declared, so every call with Detox (spellId 115450) hit a nil global and aborted dispel-list construction. Spec helpers are now declared first. - Fixed the right-side dispel slot's cooldown sweep never appearing on retail. The cooldown lookup still used the deprecated global
GetSpellCooldown, which Blizzard replaced in 11.0; it now usesC_Spell.GetSpellCooldownand reads the modernSpellCooldownInfotable (startTime,duration,isEnabled, plus 12.0'sisOnGCD). The pulse animation now correctly stops while the cleanse spell is on its real cooldown instead of pulsing through it. - Fixed the dispel slot's cooldown frame not rendering a visible sweep, edge, or countdown numbers: the frame was created with edge drawing off and countdown numbers hidden. It now matches the per-row action buttons (swipe, edge, dark fill, visible countdown text).
Improved
- Improved CPU usage dramatically in 25-player raids and other large groups. A profiling pass identified four hot paths that compounded under raid-event load:
getSkinSettings()andgetLayoutSettings()are now memoized per render pass. Previously each call rebuilt a 40–50 field table from scratch, and they were invoked once per row insideupdateUnitButton— so a singleRefresh()of a 25-player raid produced 50+ rebuilds. They are now built once per render pass and reused.- The per-button aura countdown
OnUpdatescript is no longer always installed. Previously every unit button polled at 60 Hz just to early-return when no aura needed a visible countdown (~1500+ idle invocations/sec across a 25-player raid). The script is now installed only while at least one tracked aura is counting down and is removed automatically when none are. - The default per-unit render throttle (
runtime.renderInterval) is now0.05s(was0, i.e. uncapped). UNIT_HEALTH / UNIT_POWER events fire continuously for every group member during raid combat; capping each individual unit at 20 visual updates per second is imperceptible to a healer but eliminates the worst of the storm. A floor of 0.05s is also enforced for players upgrading from older settings where the value was saved as 0. - The default range check frequency (
skin.utilityIndicators.rangeCheckFrequency) is now1.0s(was0.4s). Each tick walks the full roster and rebuilds range visuals; cutting it to 1.0s removes ~60% of that load with no meaningful loss of UX for healing decisions. Players who want faster range updates can still lower it in Settings.
Version: 1.0.25
2026-05-15
Fixed
- Fixed Blizzard's compact raid and party frames (
CompactRaidFrameManager,PartyFrame,CompactPartyFrame) doubling up alongside HealReforged's own group frames in raid and party. These are now automatically suppressed whenever the HealReforged roster is active (showRosterFrame = true, the default), rather than only when the explicit Hide all Blizzard unit frames toggle is on. - Fixed
setBlizzardUnitFrameSuppressedcallingSetParent,Hide, andEnableMouseon Blizzard frames every render cycle regardless of whether suppression state had changed, causing WoW's per-frame script CPU limit to be exceeded. Frame manipulation now only runs once when suppression state actually changes. - Fixed
!BugGrabber"insecure scripts exceeded execution limit" spam (10× per combat entry): theOnShowsuppression hook onPartyFrame/CompactRaidFrameManagercalledHide()unconditionally, including during combat lockdown where callingHide()on a protected Blizzard frame from insecure addon code raises a Lua error. The hook now skips theHide()call whileInCombatLockdown()is true.
Version: 1.0.24
2026-05-15
Added
- Added Render Interval (Update Rate) setting in the General panel allowing players to cap the UI refresh frequency to Reduced (100 ms), Low (200 ms), or Minimal (500 ms) to reduce CPU load during large raid pulls.
Improved
- Improved rendering performance by skipping unit-button updates when no tracked state has changed, using per-button dirty fingerprints across health, power, aura, aggro, debuff, and range fields.
- Improved
RefreshUnitVisualwith O(1) snapshot, roster entry, and row lookups using key-indexed caches (_snapshotKeyByToken,membersByKey,_rowsByKey) and per-key entry-table reuse to eliminate per-frame allocations during targeted refreshes. - Improved role badge (T/H/D) visibility by rendering indicators on top of the power bar and applying a bold thick-outline font (size 11) so they are clearly legible at all group sizes.
- Improved party/raid group sort order to Tank → Healer → DPS within each group by activating the existing role-priority comparator.
Fixed
- Fixed a Retail secret-value taint error in the dirty-fingerprint check caused by comparing the secret-backed
healthDisplayPercentfield with~=; the field has been removed from the fingerprint (health changes remain tracked viahealthPercent). - Fixed absorb/shield overlay not displaying on Retail:
UnitGetTotalAbsorbscan return a secret number on tainted paths, causing the serialization path to produce 0. The absorb bar now uses the raw API value directly viaStatusBar:SetValue(AllowedWhenTainted) anchored to the health bar fill texture, which correctly handles both plain and secret-number absorb values. - Fixed absorb/shield cap indicator not appearing at full health: when health is at 100% the absorb bar has no space to render, so a thin blue edge marker is now always drawn at the right edge of the health fill whenever an absorb value exists.
- Fixed ready-check icons (?, ✗, ✓) not appearing at all:
READY_CHECK,READY_CHECK_CONFIRM, andREADY_CHECK_FINISHEDevents were never registered, so the utility snapshot never captured ready-check state. All three events are now handled and trigger targeted utility refreshes. - Fixed ready-check badge hidden behind health bar child frame;
stateIndicatorAnchornow renders above all health bar children. - Fixed ready-check icon position: now overlays the avatar portrait frame (when avatar is visible), matching the Blizzard compact frame layout.
- Added party leader crown badge rendered on the power bar left side using
Interface\\GroupFrame\\UI-Group-LeaderIcon. - Fixed aggro red border not clearing after combat:
UNIT_THREAT_SITUATION_UPDATEwas never registered, so the aggroLevel snapshot was only refreshed by health/aura events or a full roster refresh. The event is now handled with a lightweight unit refresh so the border clears immediately when threat drops.
Version: 1.0.22
2026-05-14
Fixed
- Fixed Hide all Blizzard unit frames toggle not suppressing frames because
hideBlizzardGroupFrameswas missing from thegetLayoutSettings()copy passed tosyncBlizzardUnitFrames. - Fixed dispel spell data so every healer spec uses the correct spell and debuff-type capabilities:
- Added Nature's Cure (88423) for Restoration Druid (Magic + Curse + Poison); non-Resto Druid is correctly limited to Remove Corruption (Curse + Poison).
- Added Purify Spirit (77130) for Restoration Shaman (Magic + Curse); non-Resto Shaman is correctly limited to Cleanse Spirit (Curse only).
- Added Purify Disease (213634) for Shadow Priest (Disease only).
- Fixed Naturalize (360823) capabilities from
{Magic, Curse}to{Magic, Poison}(Preservation Evoker). - Fixed Expunge (365585) capabilities from
{Magic, Curse, Poison}to{Poison}only (Devastation/Augmentation Evoker). - Fixed Detox (115450) baseline capabilities from
{Magic, Poison, Disease}to{Poison, Disease}; Magic dispel is now correctly gated behind Mistweaver spec detection. - Fixed Druid fallback that incorrectly referenced Evoker spell 360823; now uses Nature's Cure (88423) and Remove Corruption (2782).
- Fixed Shaman fallback that claimed Magic capability for Cleanse Spirit (51886) which only removes Curse.
- Added full spec-aware fallback configs for Druid, Monk, Shaman, Priest, and Evoker so the dispel button and debuff highlights are accurate for every spec.
Version: 1.0.21
2026-05-14
Added
- Added Hide all Blizzard unit frames toggle in the Frames panel. When enabled, suppresses Blizzard's PlayerFrame, TargetFrame, CompactRaidFrameManager, and CompactPartyFrame so they do not overlap HealReforged's live frames.
Improved
- Improved Click-Casting editor by adding an inline note on the Right mouse button row warning that it overrides Blizzard's default right-click context menu.
Fixed
- Fixed all five settings panel scrollbars not scrolling to the bottom by calling
UpdateScrollChildRectafter every content-height change inpanel:UpdateLayout. - Fixed transfer-box and multi-line text entry scrollbars not updating their scroll range when the edit box grew taller as text was typed.
- Fixed checkbox description labels in the Frames panel appearing at the wrong vertical position because they were anchored to the empty built-in UICheckButtonTemplate text fontstring instead of the visible
_hbrLabel. - Fixed the Runtime Status label in the General panel slightly overlapping the Track Roster checkbox description when description text wrapped to a second line; it is now anchored relative to the description bottom instead of a hardcoded offset.
- Fixed the row-height
+button in the Frames skin card skipping sizes between 24 and 36 due to an incorrect minimum clamp of 36 (now 24, matching the−button).
Version: 1.0.20
2026-05-13
Improved
- Improved helpful-aura tracking so live healer buffs can match by the aura's actual unit-frame name when Blizzard surfaces a different buff spell ID than the token resolved from
GetSpellInfo. - Improved non-mana power capture by keeping current and maximum values on the same display scale and by honoring
UnitPowerDisplayModwhen raw fallback values are needed. - Improved healing badge layout by moving the timed tracked-aura badge to the right-side state lane and hiding the extra HoT summary text badge that overlapped action buttons.
Fixed
- Fixed Discipline priest Atonement and Power Word: Shield visibility on live rows by removing the player-only helpful-buff filter from tracked buff indicators and by broadening tracked-buff matching to handle live aura name and spell-ID alias differences.
- Fixed broken rage and other non-mana power text cases where visibly filled bars could still print misleading zero-based values because modified and unmodified power scales were being mixed during capture.
- Fixed a Lua parser warning in the badge layout helper caused by unsupported
gotosyntax in the WoW client runtime.
Version: 1.0.18
2026-05-13
Improved
- Improved roster mana text rendering by preferring Blizzard-safe abbreviated display values and by limiting value/max composition to plain numeric fallbacks when Retail secret-value restrictions block safe addon-side string handling.
- Improved healing-awareness tracking so shared healer buffs such as Atonement remain eligible for tracked HoT badges even when the local player is not the casting class or spec.
Fixed
- Fixed priest Atonement hot-badge tracking for group members by treating
HELPFUL|PLAYERaura results as player-owned at the capture boundary and by no longer requiring local-player ownership just to show tracked healer buffs. - Fixed
/hr inspectand related mana diagnostics crashing when Retail returned secret-backedFontStringtext values. - Fixed additional secret-string taint errors in power-text formatting caused by comparing or composing restricted Blizzard display strings in Lua.
Version: 1.0.17
2026-05-13
Improved
- Improved live-frame text controls by splitting Health Text and Power Text into separate settings so health can stay percent-focused without forcing the same mode onto power bars.
- Improved range visibility on group rows with a dedicated outer health-bar border that uses blue range-state cues without covering the health text lane.
Fixed
- Fixed health text settings so stale numeric health modes now collapse back to Percentage or Hidden instead of continuing to surface the removed number-based health display path.
Version: 1.0.16
2026-05-11
Improved
- Improved live-frame power text settings so Health Text and Power Text modes are synchronized between account settings and per-character frame state before refreshing live frames.
- Improved mana text handling for local-player frames by reading Blizzard's visible player mana text when Retail secret-value restrictions prevent safe addon-side mana percent or value calculations.
- Added
/hr manatextdiagnostics to inspect the active Blizzard player mana bar and exposed font-string text paths when troubleshooting Retail mana display behavior. - Improved compact power text formatting with uppercase suffixes such as
129K/250K | 52%.
Fixed
- Fixed repeated Retail secret-value taint errors caused by comparing, clamping, formatting, or string-sanitizing secret-backed
UnitPowerand Blizzard unit-frame text values. - Fixed Power Text mode changes not reliably affecting live player, target, and roster rows because text-mode settings were not being copied through the frame-state synchronization path.
- Fixed local-player mana text falling back to misleading snapshot values such as
0/250K | 0%when only display-backed Blizzard mana values are available. - Fixed diagnostic
/hr manatextcrashes caused by comparing secret-backed BlizzardFontString:GetText()results to empty strings.
Version: 1.0.15
2026-05-11
Improved
- Improved party and raid update responsiveness by switching frequent unit-event updates to targeted per-row live-frame refreshes instead of broad full-frame redraw pressure.
Fixed
- Fixed roster row naming regressions where non-player units could be rendered with the local-player "YOU" visual-state treatment.
- Fixed extra update churn during rapid UNIT_* event bursts by removing redundant runtime patch writes from per-unit snapshot capture.
Version: 1.0.14
2026-05-11
Fixed
- Fixed layoutAuraIndicatorStrip nil-call runtime error by removing the shadowing forward declaration that prevented the global function from being used.
- Fixed protected function StopMovingOrSizing taint errors by adding InCombatLockdown checks to all frame drag and resize handlers.
- Fixed erroneous row-border coloring code in setTrackedAuraBadge that was referencing an undefined row variable.
- Fixed opacity adjustment buttons becoming unresponsive by enabling mouse interaction on card content frames in the settings window.
Version: 1.0.13
2026-05-11
New
- Added configurable health and power text display modes in the Frames settings pane, including percent, value, value/max, hidden, and auto power formatting.
Improved
- Improved player and target replacement-frame presentation with an optional portrait avatar and a minimal tab-connected shell that better matches the detached group-frame treatment.
- Improved live-frame replacement controls with a dedicated Frames-pane path for Blizzard player and target suppression, portrait visibility, and player or target shell style.
- Improved modern retail unit rendering by preserving display-backed health, power, incoming-heal, and absorb values all the way through to the live bars.
- Improved live debuff badge placement by moving aura icon lanes off avatar portraits and aligning them under the resource bar lane for player, target, and roster rows.
- Improved harmful-aura collection for Retail by using packed-aura iteration compatibility paths aligned with Blizzard's modern unit-frame filtering behavior.
Fixed
- Fixed player, target, and group live health rendering on modern clients where direct unit-value APIs can return restricted or secret-backed values.
- Fixed player and group power-bar rendering so mana, rage, and other resources show reliably again instead of falling back to empty or misleading bars.
- Fixed incoming-heal and absorb overlay handling so shield and heal prediction visuals use the same display-safe path as the main health bars.
- Fixed live aura dispel emphasis so retail aura data prefers Blizzard's modern dispel-capability flags when available.
- Fixed secure live-frame click configuration by explicitly using mouse-up click handling on the protected unit buttons.
- Fixed minimal player and target tab anchoring so the tabs now connect directly to the live frame body instead of floating above it.
- Fixed tracked-debuff selection so live aura badges are no longer limited to whitelist-only matches when broader debuff tracking rules qualify an aura for display.
- Fixed aura badge cooldown rendering paths by wiring per-icon cooldown overlays and countdown refresh updates through the live-frame row update loop.
Version: 1.0.12
2026-05-10
New
- Added an installed-version line to the in-addon Help pane so support checks can confirm the active build without leaving the UI.
- Added
/hr versionand/hr verso the current addon version can be printed directly in chat.
Improved
- Improved health-bar feedback with capped overheal and absorb overflow markers on live unit bars.
- Improved ready-check readability by replacing compact
RDY/WAIT/NRtext with the built-in ready-check badge icons. - Improved player-frame resource tracking with a dedicated mana bar path that stays visible on the player row.
- Improved live frame sizing controls with a direct Player Width control in the Frames settings panel and a lower minimum player width.
- Improved healer buff visibility by limiting the timed badge to short-duration healer buffs such as Atonement, Rejuvenation, Renew, Riptide, and similar maintenance heals.
- Improved healer buff readability by removing overlapping helpful-buff text lanes and using the single cooldown badge as the primary timed-buff signal.
- Improved minimap controls with a middle-click toggle that can hide the outer roster shell while leaving group cards and unit rows visible.
Fixed
- Fixed dead-friendly secure spell handling so battle resurrection bindings keep using the macro path during combat instead of degrading into unusable raw spell actions.
- Fixed auto-dispel spell choice so the dispel slot filters its active spell list by debuff type when multiple cleanse spells are available.
- Fixed load-time metadata and frame sizing compatibility issues on clients that do not expose the older
GetAddOnMetadataorSetMinResizeAPIs. - Fixed roster-shell toggle behavior so it targets the outer roster frame chrome and collapses empty shell space instead of hiding the inner group titles.
- Fixed live-frame resize collapse cases by enforcing minimum resize bounds so frames no longer disappear after being resized in instances.
- Fixed helpful aura rendering so generic buffs such as Mark of the Wild, shapeshift forms, and other long-duration non-healer buffs no longer appear in the healer timer badge or helpful aura icon lanes.
- Fixed repeated UnitAdapter aura-taint regressions by normalizing live aura names, spell IDs, ownership flags, stack counts, durations, and expiration values at the capture boundary before later filtering or display logic touches them.
Version: 1.0.11
2026-05-10
Improved
- Improved settings-window branding by surfacing the HR logo more clearly in the addon UI header treatment.
- Improved addon-list icon metadata so external addon list UIs can resolve the packaged HealReforged icon path correctly.
Fixed
- Fixed paladin auto-dispel suggestions so Retribution and Protection use Cleanse Toxins while Holy keeps the magic-capable cleanse path.
- Fixed paladin dispel capability detection so debuff highlighting no longer treats every paladin like Holy.
- Fixed a UnitAdapter Lua regression introduced during the dispel-capability update by restoring the corrupted spell-known helper block.
Version: 1.0.10
2026-05-10
Improved
- Improved cleanse usability with a right-side dispel slot that stays visible for supported classes, dims when idle, and lights up when the row has a removable debuff type.
- Improved in-addon help coverage by documenting the live debuff badge abbreviations for Magic, Curse, Disease, Poison, and generic debuffs.
- Improved the Click Casting settings layout by extending the binding editor and preset sections so the full configuration block fits more cleanly.
- Improved settings-pane presentation with GH3-style borders around the shared scrollable content area in each panel.
- Improved Click Casting help formatting so debuff abbreviations display one per line for quicker scanning.
Fixed
- Fixed auto-dispel slot behavior so class fallback capability can still surface a clickable cleanse target even when the exact dispel spell is talent-gated or currently unavailable.
- Fixed settings-pane scroll ranges so long panels, including Click Casting, can reach the bottom of their content.
Version: 1.0.9
2026-05-09
Improved
- Improved My Group ordering so mine-filtered views sort members by role priority: tank, healer, then damage.
- Improved live frame readability by keeping health-bar names and percentages explicitly layered above the bar with cleaner contrast treatment.
- Improved paladin class-color readability with a brighter pink treatment shared by both name and health percentage text.
- Improved live frame combat feedback by separating aggro and debuff signaling with dual borders and a dedicated debuff-type badge.
Fixed
- Fixed multiple live-frame taint and protected-call paths caused by secret unit names, GUIDs, booleans, raid markers, and hidden runtime summary updates.
- Fixed tracked unit refresh handling so unsupported unit tokens such as
targettargetno longer trigger unnecessary snapshot updates. - Fixed health-bar name rendering regressions while restoring class-colored names with simpler shadow-based readability.
- Fixed several combat-lockdown blocked-action paths in the live frame renderer by deferring protected frame sizing, showing, hiding, strata, action-bar, and roster-row updates until combat ends.
- Fixed My Group combat refresh behavior so existing party rows continue to show threat and debuff-state updates instead of disappearing while roster reflow is deferred.
- Fixed queued roster-to-render follow-up updates so nested scheduler refreshes are not stranded until a later event or combat change.
- Fixed an instance reload roster visibility issue where My Group could stay blank until the next fight or other roster-refreshing event.
Version: 1.0.7
2026-05-09
Fixed
- Fixed several manual-grouping and roster interaction regressions discovered during the
1.0.6live frame hardening pass.
Version: 1.0.6
2026-05-09
Improved
- Improved roster frame resizing by removing the visible scrollbar and allowing the live roster panel to grow much taller when needed.
- Improved manual grouping responsiveness so drag-and-drop row reassignment resolves more reliably when moving units between custom groups.
Fixed
- Fixed raid and party roster scrolling issues that could trigger repeated errors while browsing large manual-group layouts.
- Fixed party roster refresh timing so newly joined party members appear more reliably in manual Unassigned groups.
- Fixed manual row drag-and-drop assignment handling so releasing over another manual group now commits the move instead of silently clearing the drag state.
Version: 1.0.5
2026-05-09
Improved
- Improved frame-pane persistence so custom grouping mode, manual grouping, my-group filtering, group flow, live-frame toggles, opacity, and related layout controls survive reloads more reliably.
- Improved manual grouping usability with a dedicated side control lane for row reassignment controls and a stronger per-character layout sync path.
- Improved the Frames settings layout by extending the Live Frame Skin card so the full option list stays visually contained.
Fixed
- Fixed party and roster frame layouts reverting to stale defaults when character frame-state data or active startup profiles were reapplied on reload.
- Fixed manual My Group filtering in custom manual mode so it consistently shows only the intended bucket while keeping manual group targets available.
- Fixed multiple taint-prone live-frame string conversion paths that could be triggered by addons such as Details, TankHelper, or other addons that taint unit or aura names.
Version: 1.0.4
2026-05-09
Improved
- Improved live-frame position persistence so frames keep their saved placement when moving between solo and party while using automatic layout context.
- Improved roster resizing so party and raid rows refresh immediately and follow the current roster frame width more reliably.
- Improved manual custom grouping with a dedicated drag handle to make row assignment less sensitive and more deliberate.
Fixed
- Fixed a live-frame utility tag error that could trigger when party target-of-target text was shown.
- Fixed party snapshot data so nearby group members no longer fall back to broken
0/0health state on clients exposingUnitHealthPercent. - Fixed roster row metadata so delayed class data no longer shows a literal
UNKNOWNlabel. - Fixed custom manual grouping so all manual group cards remain visible as drag-and-drop targets.
Version: 1.0.3
2026-05-09
New
- Added an optional mirrored action bar under friendly roster rows that surfaces up to 12 configured click-cast actions as clickable icons.
Improved
- Improved click-casting accessibility by reusing the active friendly or emergency binding set on the on-screen action bar.
- Improved roster row layout so mirrored action buttons expand cleanly without overlapping health, status, or footer text.
Fixed
- Fixed mirrored secure action buttons so they keep the correct unit target when bindings are refreshed.
Version: 1.0.2
2026-05-09
New
- Added direct aura and dispel indicators on live unit frames with configurable placement and priority handling.
- Added encounter utility indicators for ready checks, summons, resurrection status, range warnings, raid target icons, and main-assist highlighting.
- Added healing-awareness support with incoming-heal and absorb prediction cues, HoT awareness, and maintenance buff warnings.
Improved
- Improved healer-specific HoT tracking with spec-aware maintenance priorities for supported healing specializations.
- Improved live frame readability by moving HoT and prediction summaries into dedicated mini-badges instead of footer text.
- Improved the Frames settings panel with controls for aura tracking, encounter utility indicators, prediction badges, and HoT awareness behavior.
Fixed
- Fixed dispel highlighting so only debuffs your character can actually remove are emphasized.
- Fixed predicted-healing visuals to better distinguish current health, incoming healing, and absorb coverage.
- Fixed maintenance warning behavior so important missing buffs surface only when units are injured enough to matter.
Version: 1.01
2026-05-09
New
- Added a full click-casting editor with support for spells, built-in actions, slash commands, and macros.
- Added ready-made binding presets for raid, dungeon, and solo play.
- Added account-wide and character-specific profile slots.
- Added profile save, load, rename, duplicate, import, and export tools.
- Added a new layout editor with drag-to-move headers, resize grips, snap guides, anchor presets, and spacing controls.
- Added separate layouts for solo, party, raid, and battleground play.
- Added layout import and export for faster setup sharing and backup.
Improved
- Improved the settings window layout for Frames, Click Casting, and Profiles.
- Improved binding setup with validation feedback and action previews.
- Improved live frame customization with persistent sizing and better group spacing control.
- Improved profile management with quick reset options for theme, layout, skin, and bindings.