DragonflightUI_Revived_V1.zip
What's new
Fixes addon breakage on TBC 2.5.6 and MoP 5.5.4 clients.
Fixes
- Quest tracker freeze:
UpdateTrackerStateresizedWatchFrameinside its ownSetPointhook; on 5.5.4 this feeds back into tracker relayout and stalls the client for minutes at login and on every tracker update. Resize now happens once inMoveTracker. - Removed globals/frames: guards and fallbacks for
DebuffTypeColor,TextStatusBar_UpdateTextString,Target_Spellbar_AdjustPosition,MiniMapLFGFrame, StanceBar textures, XP/Rep/MaxLevel bars,MultiCastActionBarFrame, retail-stylePartyFrame(skipped, port TODO). - Editmode-managed UI: hide
StatusTrackingBarManager(replacesMainMenuExpBar/ReputationWatchBar), reanchorBagsBarvia editmode override, chain-anchor micromenu buttons (captured anchors carry nilrelativeToon 5.5.4),SetMovablebeforeSetUserPlacedon unitframes, game menu buttons viaInitButtons/AddButtonAPI, calendar button click handlers, LFG eye visibility.
Tested in-game on 5.5.4 and 2.5.6. Some fixes mirror #687 - credit to its author for the tracker and micromenu groundwork.
Classic Era 1.15.9 compatibility overhaul (+ fixes & new features)
Era patch 1.15.9 backported the Midnight-era UI to Classic (Edit Mode, retail-style action bars/party frames, Blizzard_NamePlates with the new nameplateStyle CVar, and a much stricter script-time governor — the client logs it as LimitedLuaResources). This PR makes DragonflightUI fully functional on 1.15.9 Era, verified through extended live-play iteration on an Era client.
Heads-up: this was developed and tested on Era only. TBC/MoP share most of the gated paths (feature detection, not flavor checks, wherever possible), Wrath/Cata paths are untouched — but there may still be bugs. Treat it as a strong starting point, happy to iterate.
Includes @icebreethe's #691 commits (cherry-picked with attribution) — most of their TBC 2.5.6/MoP 5.5.4 guards apply to Era 1.15.9 unchanged.
Core compatibility
DF.API.Version.IsModern— feature probe (EditModeManagerFrame/StatusTrackingBarManager) instead of flavor checks; true on TBC 2.5.6+, MoP 5.5.4+, Era 1.15.9+, stays correct as Blizzard rolls the backport forward- Era routed onto the modern-UI paths (action bars, micromenu chain-anchoring, LFG eye, Edit-Mode game menu);
BagsBarsites are feature-checked (Era keepsMainMenuBarBagButtons) - Editmode module now initializes
LibEditModeOverrideon Era — without itOverrideBlizzEditmodeis nil and the whole Actionbar module died at enable time - Party reskin skipped on modern clients (member frames are pooled/anonymous — same situation as the existing TBC TODO)
- TextStatusBar/raid-manager/etc. removals guarded capability-based; audited against the full Blizzard 1.15.8→1.15.9 exported source diff (flavor-accurate: per-flavor TOCs +
AllowLoadGameTypetags)
The script-time governor (why the enable flow changed)
1.15.9's LimitedLuaResources kills execution slices at a small, variable budget (observed ~350ms–1s), surfacing as script ran too long at whatever innocent line is executing. DFUI's enable chain regularly crossed it, killing modules half-initialized.
- Actionbar setup now runs as ~40 small pcall-isolated steps batched into ~100ms time slices (2–3 frames total, no visible assembly): one slow/failing step can no longer sever the chain
Helper:Benchmarkoptionally persists per-phase timings to aDragonflightUIPerfLogSavedVariable — this is how every issue in this PR was diagnosed from disk, and should help debugging other flavors
Fixes
- Action bar backgrounds: modern buttons' own
SlotBackground(classic quickslot art) drew over the DF slot deco on every bar — now hidden (also on pet buttons) - Main bar: keep
MainActionBarshown-but-parked (buttons are parented to it; upstream'sHide()only worked because ActionBarController re-shows it later on stock timing) - Main bar paging: full 1–6 arrow cycling via
C_ActionBar.SetActionBarPage(Blizzard's modern OnClick skips pages claimed by visible MultiBars → cycle collapsed to 1↔2) + ownACTIONBAR_PAGE_CHANGEDwatcher for the page number (its updater died withUnregisterAllEvents) - Buffs: Blizzard buff/debuff frames re-shown by Edit Mode after
Hide()(doubled buffs) — now reparented to a hidden holder - Pet bar: modern PetActionButtons are main-button-sized; scaled to classic pet-bar proportions, modern slot art stripped
- Micro menu: right-to-left chain from the container edge (deterministic right alignment)
- Vehicle/taxi leave button: wears the retail round exit-arrow art the addon already ships (was preview-only) and docks at the main bar's right end
ForceMoveBlizzEditModeGhosts: batched into a singleApplyChanges(4× ~65ms → 1×)- Assorted nil-guards from the source-diff audit (gryphon step upvalue,
CompactRaidFrameManager_ResizeFrame_SavePosition, micromenu anchors, …)
New
- Nameplates module (default on): flips the new
nameplateStyleCVar toModern— Blizzard's native retail thin plates (Era defaults to the classic ring/level-box style) — plus DF health-bar texture, outlined names, andnameplateShowClassColorfor class-colored enemies - DFMinimap addon adoption (only if that addon is installed: applies its look, disables it)
Known gaps: PartyFrame on modern clients (structural, see TBC TODO), Dark Mode still has no live revert, cosmetic defaults (pet scale, bag/micro nudges) tuned on one setup.
- Combat reload safety:
Helper:RunOutOfCombatdefers the Actionbar/Unitframe enable chains when loading under combat lockdown — protected-frame setup (moving secure bars, state drivers, SetAttribute) is silently blocked in combat, so a mid-fight /reload used to bring the UI up half-built. Setup now completes on PLAYER_REGEN_ENABLED with a chat notice. - Main bar page arrows rebuilt as secure buttons (modern-client fallback path): the adopted Blizzard arrows lost their skin to
MainActionBar:OnShow → UpdateEndCapsre-atlasing on every loading screen, and their insecure OnClick (C_ActionBar.SetActionBarPage) was lockdown-blocked in combat. Nowtype='actionbar'SecureActionButtonTemplate arrows with a[bar:N]state driver keeping each arrow's target page current — full 1-6 cycle, works in combat. Two follow-up gotchas fixed: both click edges must be registered (ActionButtonUseKeyDown=1acts on down-press only), and explicitly LeftButton (on modern clients "Any" includes the mouse wheel as click buttons). - Page-cycling bindings routed through the secure arrows: NEXT/PREVIOUSACTIONPAGE run
ActionBar_PageUp/Down, which cycle onlyVIEWABLE_ACTION_BAR_PAGES— {1,2} with the multibars shown — and burst-y mouse wheels deliver dozens of ticks per gesture, strobing the page 1↔2.SetOverrideBindingClickon the bound keys gives one full-cycle step per tick, combat-safe. - Party frames: circular mask on the pooled-frame portraits — the in-range portrait snapshot is square and its corners poked out behind the DF ring art.
This mod has no additional files

