Releases: Mapkov2/MidnightSimpleUnitFrames
Releases · Mapkov2/MidnightSimpleUnitFrames
MSUF 6.0 Alpha 1
6.0 Alpha 1 - 2026-06-14
Release Context
- First public 6.0 alpha after the 5.59 stable line.
- Baseline for this changelog:
5.59. - 5.59 was a maintenance build for compound-unit event routing and Interrupt Ready taint safety. 6.0 Alpha 1 is the first public build of the rewritten 6.x core addon.
- This alpha can load existing profiles, but the runtime below those profiles changed heavily. Export important profiles before testing.
- The biggest change is not one single option. MSUF now has a new runtime foundation, a new configuration experience, integrated castbars, a stronger Assistant, updated class resources, and a much larger preview/editing layer.
Five Feature Highlights
- MSUF Assistant: a new in-menu assistant can find settings, route common setup requests, apply supported changes, handle follow-up commands, protect destructive actions with confirmation, and keep undo/redo available for confirmed actions.
- New design language: Menu2, Edit Mode, popups, controls, previews, dropdowns, status feedback, and dashboard areas now share one cleaner visual system instead of the older mixed 5.x/preview UI style.
- Updated menus and live previews: unit frames, group frames, castbars, auras, class resources, profiles, global colors, fonts, and gameplay options now live in the rebuilt Menu2 shell with search, direct preview focus, zoom, pan, copy/reset actions, and clearer inline feedback.
- Updated class resources: class power received new runtime integration, Player HP support, updated preview behavior, cleaner menu sections, and new circle, diamond, hex, crystal, and round resource shapes.
- No more Castbar LoD split: castbars are now built directly into the core addon package. Player, target, focus, and boss castbars load with MSUF, share the same settings/runtime/previews, and no longer depend on a separate castbar LoD addon path.
Compared To 5.59
- 5.59 was a small maintenance build. 6.0 Alpha 1 is a broad rewrite of the shipped core addon.
- The old
Corelayer was removed from the active load path. Health, power, prediction, absorb, text, alpha, borders, textures, portraits, range fade, status, class power, and castbar bridge work moved into focused runtime modules. - The old
Foundationshape was reorganized intoKernel,Runtime, andStateresponsibilities. Bootstrap, modules, events, scheduling, utility helpers, Blizzard frame handling, changelog state, profile state, migrations, and UI state now have clearer homes. - The old
EditMode2implementation was replaced byShell/EditModemodules for core behavior, HUD, focus, layout, movers, popup scale, aura popups, cast popups, and tooltip/unit/group editing. - The old broad
GroupFrames/MSUF_GF_*backend was replaced or wrapped by the newer 6.x group-frame architecture. Party, raid, mythic raid, headers, visuals, status, indicators, spell indicators, previews, and edit-mode paths are now split by purpose. - Auras2 files were removed from the shipped addon. Auras3 configuration, profile data, menu model, edit-mode hooks, unit-frame surfaces, and preview surfaces are in the 6.0 tree, while live aura behavior remains alpha because Midnight aura APIs are still moving.
- Castbars moved from the older split-package model into the main addon package so castbars, unit frames, previews, profile updates, and release metadata ship together.
- Menu2 was split from large page/search/widget files into smaller page, preview, routing, search, theme, widget, section, and helper modules.
- The public
_G.MSUF_*surface was reduced in the rewritten areas in favor of a clearerMSUFnamespace/API pattern, while compatibility exports are kept where older modules or user macros still need them. - Local docs, audits, smoke-test scripts, and development tooling are kept out of the addon package. They remain local development files and are not meant to ship inside the public ZIP.
Core Runtime And Architecture
- Added a 6.x bootstrap and module load structure that separates startup setup, runtime code, saved state, shell UI, and feature code.
- Added a shared scheduler layer for deferred, budgeted, and combat-aware work instead of spreading ad-hoc timers across runtime modules.
- Added targeted dirty-mask updates so frame changes can refresh only the affected element instead of forcing broad frame rebuilds.
- Added compiled per-frame/event state for hotter unit-frame paths, reducing repeated table lookups and repeated handler discovery during frequent events.
- Added direct handler references for common health, power, prediction, text, status, alpha, border, range, and castbar paths.
- Added shared runtime helpers for fonts, textures, colors, icon layout, portrait media, bar backgrounds, chat/tooltips, and Blizzard frame ownership.
- Added safer public export helpers for shared data such as the in-game changelog, reducing raw global writes in generated/runtime-facing code.
- Added clearer feature folder boundaries for diagnostics, gameplay helpers, telemetry, versioning, third-party anchors, and integration code.
- Removed old load-condition and preview shims that no longer matched the 6.x runtime path.
- Preserved the 5.59 compound-unit event fix for
targettargetandfocustarget.
Unit Frames
- Rebuilt the Unit Frame engine around focused element modules instead of one broad 5.x core file.
- Reworked health, power, alternate power, heal prediction, absorbs, heal absorbs, text, portraits, borders, background, alpha, range fade, status indicators, elite visuals, and castbar bridge handling.
- Added stronger preview/live parity so menu previews and edit-mode dummy frames use the same runtime assumptions as real frames.
- Added targeted updates for visual-only changes, geometry changes, text changes, range changes, class-color changes, and profile/default changes.
- Improved targettarget and focustarget handling through the retained compound-unit event routing fix from 5.59.
- Improved disconnected, dead, ghost, offline, resurrect, aggro, PvP, role, and status visual handling across rewritten runtime paths.
- Added support paths for independent power text, target power text fixes, NPC name color behavior, text shadow fixes, and safer text refreshes.
- Reduced disabled-feature overhead so inactive text, visual, indicator, aura, range, and status systems avoid unnecessary refresh work.
- Reduced repeated UnitExists, UnitIsConnected, UnitIsPlayer, unit reaction, and power reads inside a single dispatch pass where the runtime can reuse resolved state.
- Improved class-color and reaction-color update paths so common color changes avoid full rebuilds.
- Kept profile defaults compatible enough to migrate old 5.x settings while giving the 6.x runtime cleaner internal defaults.
Group Frames
- Reworked group frames for party, raid, and mythic raid around secure-header-aware runtime modules.
- Added clearer separation for group config, headers, visuals, status, indicators, spell indicators, preview, metadata, edit-mode integration, and Blizzard fallback behavior.
- Added targeted group-frame refresh paths for geometry, bounds, visuals, status, role state, range fade, indicators, spell indicators, and preview work.
- Added roster structure detection so role-only or state-only updates can update bindings without rebuilding secure headers when the group structure did not change.
- Added safer post-combat handling for deferred group-frame work, pending rebuild reasons, and downgrade paths for state-only updates.
- Improved behavior around group transitions, raid entry/exit, party to raid conversion, mythic raid layout, and Blizzard frame ownership.
- Improved preview/live parity for group dummies, party previews, raid previews, mythic raid previews, growth direction, columns, spacing, size, and anchor behavior.
- Improved dead, ghost, offline, resurrection, aggro, status icon, group number, role, mouseover highlight, range/threat, and tooltip mouseover behavior.
- Split spell-indicator data and group-frame DB helpers so large registry-style data is easier to reason about and less risky to edit.
- Kept Auras3 group button-pool prewarming out of this alpha. No extra out-of-combat pool prewarm spike was added.
Castbars
- Integrated the castbar addon code into the core MSUF package.
- Added runtime modules for castbar frames, anchors, registry, driver, backend, style, visuals, previews, preview editing, bridge code, and shared utilities.
- Added player castbar runtime support through the same package as the unit-frame runtime.
- Added target, focus, and boss castbar support paths in the 6.x tree.
- Added boss castbar preview support.
- Added channel tick handling and empower cast handling.
- Added focus kick state driver and focus kick icon support.
- Added Interrupt Ready support in the core package.
- Preserved the 5.59 Interrupt Ready fix that avoids secret RGBA comparison paths and the related
_kickReadyFillRtaint issue. - Added safer castbar timing/width behavior to avoid secret-value arithmetic regressions.
Class Power And Player HP
- Reworked class resource rendering around the 6.x runtime and preview model.
- Added Player HP integration for class-resource style layouts.
- Added resource shape assets for circle, diamond, hex, crystal, and round styles.
- Improved class resource menu sections, preview behavior, and visual defaults.
- Kept alternate mana and balance druid logic on the updated controller/model path.
Menu2, Search, And Edit Mode
- Rebuilt Menu2 into smaller modules for pages, sections, widgets, theme, search, routing, previews, navigation, and support behavior.
- Added denser unit-frame and group-frame settings pages with better progressive disclosure for common versus advanced controls.
- Added direct preview focus for text slots, frame visuals, castbars, class power, group-frame layers, and relevant edit targets.
- Added richer unit-frame and group-frame previews with zoom, pan, handles, focus states, and liv...
MSUF_5.59
5.59 - 2026-06-13
WoW 12.0.7 Fixes
- Fixed compound unit event routing for Target of Target and Focus Target so
targettargetandfocustargetupdates keep health, power, name, and dependent visuals current even when client-specificRegisterUnitEventfiltering falls back to broader unit events. - Fixed Interrupt Ready box and border repaint caching so secret RGBA values from cooldown color evaluation are never compared in Lua, preventing rare
_kickReadyFillRtaint errors during target, focus, or boss castbar updates.
MSUF 5.58
5.58 - 2026-06-08
Fixes
- Fixed missing-health text formatting for imported profiles with secret health values.
MSUF 5.57
5.57 - 2026-06-04
Edge Case Fixes
- Fixed a rare health-bar smoothing edge case where preserved HP color could leave a transparent strip while the bar was shrinking.
- Improved Blizzard party-frame fallback behavior when MSUF group frames are disabled, including arena and login/zone-change cases where Blizzard frames could be missing or briefly ghosted while solo.
- Hardened gameplay font application so profiles that reference missing SharedMedia or disabled addon fonts fall back safely instead of producing font asset errors.
- Refreshed group-frame range fade after instance, roster, and combat transitions so players who join or zone into an instance out of combat no longer stay faded as out of range until combat or
/reload. - Improved the missing buff scan for rare readable-aura edge cases.
Compatibility and Safety
- Added a clear WoW 12.1 compatibility warning for MSUF 5.x users, with localized popup and chat messaging that points users to the current Alpha/Beta build for WoW 12.1.
- Kept secret-aura handling conservative while improving missing buff detection.
Performance Notes
- Kept the new range recovery finite and event-driven instead of adding constant polling.
- Kept the missing buff scan on the existing cached aura path where possible.
- Kept the new font and Blizzard-frame safeguards on cold apply/login paths.
MSUF 5.56
5.56 - 2026-05-30
Critical Fixes
- Fixed group-frame smooth health and power fill not animating because the group-frame runtime cache read an unset interpolation value instead of Blizzard's status-bar interpolation enum.
- Fixed Blizzard-rendered group-frame private aura cleanup during roster or instance transitions so Blizzard can remove stale private aura anchors even after its settings handler has already been cleared.
Mark hotfix as 5.55
5.55 - 2026-05-29
Critical Fixes
- Fixed Blizzard-rendered group-frame private auras reusing a stale Blizzard settings-change handler after instance or roster transitions.
- Fixed group-frame absorb and heal-absorb overlays drawing over the normal frame outline on party and raid frames.
- Fixed an edge case where active debuffs could drop off the display even while they were still running.
- Fixed cold-start font application so unit-frame text relayouts after the configured font becomes available, preventing wrong text anchoring after login or reload.
MSUF 6.0 Alpha 2
6.0 Alpha 2 - 2026-05-27
Release Channel
- Alpha-only release for CurseForge and Wago.
- Wago stability must be
alpha; this build is not stable. - CurseForge release type must be
alpha. - The 6.0 line is still a complete backend rewrite from the 5.54/5.x runtime stack, with group frames, unit frame core, Auras3, and castbar integration running through the new backend.
Backend Rewrite Follow-Up
- Folded the separate castbar addon tree into the core addon package so the 6.0 backend ships as one coordinated addon instead of a split runtime.
- Kept the castbar runtime, boss castbar preview, channel ticks, empower handling, focus kick state, and player castbar bridge in the core package load order.
- Trimmed unit frame hot paths in health, prediction, text formatting, group aura cache, core dispatch, and frame factory code.
- Reduced disabled-feature overhead further after Alpha 1, especially around group aura cache scans and repeated unit-frame update paths.
- Added
MSUF_UF_DispelStateas the shared state resolver for dispel overlays, glow, border, and group-frame visual consumers.
Fixes
- Fixed absorb, heal prediction, and heal absorb placement so bars use safer resolved anchors and avoid secret-value comparison failures.
- Restored scoped dispel glow and aggro border behavior for the rewritten visual backend.
- Fixed group frame visual config paths for dispel borders, glow, and indicator consumers.
- Optimized 2D portrait refresh so portrait visuals avoid unnecessary rebuild work when the visual state did not change.
- Fixed texture/runtime handling used by bars and prediction previews after the backend rewrite.
Group Frame Preview
- Added the same preview controls used by Unit Frame Preview: zoom buttons,
Fit,1:1,Ctrl + mouse wheelzoom, and canvas panning. - Added
Ctrl + left-drag, right-drag, and middle-drag panning for the group preview canvas. - Kept handle dragging stable while the preview refreshes by freezing preview scale during drag.
- Updated preview hints and tooltips so zoom, pan, arrow nudging, Shift nudging, and Ctrl nudging are visible in the UI.
Menu And Aura Editing
- Split Auras3 options into scoped menu sections instead of one overloaded page.
- Updated menu search data and search indexing for the new aura and group-frame sections.
- Improved group aura menu bindings for the rewritten group backend.
Known Alpha Notes
- This is still an alpha build. Test profile migration, group frame layout, castbars, aura rendering, dispel overlays, aggro borders, prediction bars, click-casting, Clique, and Wago/CurseForge channel handling.
- The release tag for this build is
6.0-alpha2; alpha tags are expected to publish to Wago asalpha, neverstable.
MSUF_5.54
5.54 - 2026-05-27
Fixes
- Fixed Blizzard-rendered group-frame private auras reusing a stale Blizzard settings-change handler after instance or roster transitions.
- Fixed group-frame absorb and heal-absorb overlays drawing over the normal frame outline on party and raid frames.
MSUF 5.53
5.53 - 2026-05-26
Critical Fixes
- Fixed target, focus, and boss frame alpha/background recovery after combat so frames no longer need a target swap or reload to restore missing backgrounds.
- Fixed post-combat range fade handling so combat end restores cached alpha/background state instead of running an expensive range scan or full alpha refresh.
- Fixed group-frame range fade incorrectly fading the player/self frame
- Fixed stale absorb, shield, and heal-absorb overlays that could stay visible after the target no longer had an active absorb or heal absorb.
- Fixed group-frame secure-button recovery after login, reload, and party/raid changes so blank party or raid frames are reconciled without requiring
/reload. - Fixed CDM/custom-anchor login timing so unit frames keep their cached screen position until Blizzard EditMode or the configured anchor is available, instead of saving wrong UIParent offsets.
- Added a legacy no-op anchor for old Blizzard EditMode layouts that still reference
EssentialCooldownViewer_MSA_Container, preventing repeated CDM SetPoint warnings after removing the old MSA dependency.
Menu and Preview Fixes
- Fixed Buff Reminders checkboxes so the full label row is clickable again.
- Fixed Global Ignore List checkboxes and the per-unit override toggle so their click areas match the visible controls.
- Fixed Unit Auras scope/override clipping in compact or scaled menu layouts.
- Fixed Group Frame Aura Display Mode clipping by making the Blizzard aura routing and layering controls responsive in narrow menu layouts.
- Added a castbar size label to the Unit Frame preview so castbar width and height are visible while editing.
Performance and Stability
- Kept alpha/range fixes cached and event-driven, avoiding broad post-combat frame sweeps.
- Kept absorb and heal-absorb cleanup on the existing prediction update paths with secret-safe positive-value checks.
- Improved post-login group-frame recovery through delayed live-frame reconciliation without adding constant polling.
- Kept late anchor recovery event-driven with a short, finite retry window only for profiles that actually use CDM, custom, or unit-frame anchors.
MSUF 5.52
5.52 - 2026-05-23
Critical Fixes
- Fixed the Dashboard
Edit framesbutton so it no longer calls private Menu2 core helpers that are not visible from the dashboard module. - Restored the dashboard Edit Mode toggle path while keeping the existing combat-lock handling and menu frame priority refresh.