File Details
1.3.0-MIDNIGHT
- R
- Jun 17, 2026
- 591.20 KB
- 22
- 12.0.7
- Retail
File Name
NexEnhance_MIDNIGHT-1.3.0-Release.zip
Supported Versions
- 12.0.7
NexEnhance — Changelog
[1.3.0] — 2026-06-13
Three new micro-button datatexts — guild, friends and a wealth tooltip — turn the menu bar into an information hub, plus a loot quality-of-life pass: auto-greeding low-rarity drops and a compact, skinned replacement for Blizzard's group-loot roll bars. The world map and your bags can now be dragged straight off their title bars without entering Edit Mode.
Fixed
- Chat / Chat Filter: migrated 12.0.7-deprecated globals to namespace APIs —
C_BattleNet.InviteFriend(keyword auto-invite) andC_PartyInfo.IsGUIDInGroup(friend/group exemption in the spam filter).
Added
- Filters — Chat Filter: settings panel now includes scrollable keyword lists
for the blacklist and the trade-channel whitelist — one keyword per line, with
a Restore Default Keywords button for the built-in spam set.
/nexfilterstill works for quick edits. - Filters — Chat Filter: ships a curated default keyword list for current
services/trade boosting spam (WTS carries, Mythic+, raid bundles, gold-only
payment lines, commercial links like WowVendor/Trustpilot/discord.gg, and
copy-paste booking CTAs). Keywords merge in automatically on first load;
matching is now case-insensitive. A message still needs to hit your configured
match threshold (default 3) before it is hidden, so short LF/LFW craft lines
stay safe. Restore the built-ins anytime with
/nexfilter defaults. - DataText — Guild: the Guild micro button now shows your online member count, and hovering it opens an ElvUI-style roster tooltip — name, level (difficulty coloured), class colour, zone and online/AFK/mobile status, sorted by name (hold Shift for rank and public/officer notes). The guild message of the day shows up top (toggle), and the list collapses past a configurable member count. The button's native click behaviour is untouched, and every roster read is secret-value safe.
- DataText — Friends: hovering the social / Quick Join button opens a friends roster tooltip that mirrors ElvUI's grouping — Battle.net friends bucketed by the game they're playing (WoW characters class-coloured and zoned) above your in-game friends. Purely additive; the button keeps its native click.
- DataText — Currency & Gold: a wealth tooltip on the Character micro button
showing session gold gained/lost, a per-character gold rollup (stored
account-wide, class-coloured and sorted by amount), faction and server totals,
Warband bank gold, the live WoW Token price and your backpack-tracked
currencies. Reads are Midnight secret-aware —
GetMoney()and currency amounts that turn secret in combat/instances are skipped instead of being stored or compared. Adapted from ElvUI's Gold and Currencies datatexts. - Automation — Auto Greed: automatically rolls Greed (or Disenchant) on low-rarity group-loot drops so you're not clicking the same buttons all night. Defaults to max level only, Uncommon (green) Bind-on-Equip items, and prefers Disenchant when available; optional toggles cover rares, BoP items and auto-confirming the soulbound/disenchant prompts. It only confirms rolls it started itself. Off by default. Refactored from ShestakUI's AutoGreed (originally by Tekkub). Item quality that reads secret in instances is left for the player rather than guessed.
- Miscellaneous — Loot Roll: replaces Blizzard's group-loot roll frames with
NexEnhance's own compact, skinned bars — an item icon (item tooltip with
Shift-compare), a quality-coloured timer bar showing item level and stack count,
and Need / Greed / Disenchant / Transmog / Pass buttons that grey out when
unavailable. Bars stack from a draggable Edit Mode anchor, recycle through a
pool, and queue when there are more rolls than your configured bar count. Width,
height and max bars are configurable, and
/nex lootrollspawns demo bars so you can position and preview them. Re-implemented from ElvUI's LootRoll. Secret-value safe. - Action Bars — Extra Quest Button: an optional, keybindable button that surfaces the closest usable quest item from your log (the one Blizzard buries in the objective tracker), so a single bind uses whatever the current objective needs. It wears the same gold HUD action-bar art as the rest of the bars, shows the item's cooldown, stack count, hotkey and a red range tint, and lives on its own draggable Edit Mode anchor with configurable size, zone/tracked-only filters and distance. The button is bound to your Extra Action Button 1 keybind and hides itself when nothing applies. Off by default. Ported from p3lim's ExtraQuestButton (with NDui's earlier plugin as a reference): includes p3lim's target-item, replacement, priority and current quest data, while keeping NexEnhance's secure-frame and Secret-value guards.
- Miscellaneous — Achievement Back Button: a browser-style Back button on
the Achievements frame header. As you click through categories and achievements
it quietly records where you've been, and the button retraces that history one
step at a time — restoring the category, the selected achievement and both scroll
positions. It greys out when there's nowhere left to go back to. Adapted from
LudiusMaximus' Achievements Back Button
onto NexEnhance's framework (load-on-demand handling, pure
hooksecurefunc, no stray globals). - Miscellaneous — Hide UI Elements: optional toggles (all off by default)
for default UI bits people often want gone — the buff collapse/expand arrow
(
BuffFrame.CollapseAndExpandButton), the bottom-right Micro Menu & Bags cluster (MicroMenuContainer+BagsBar), and the incoming damage / healing numbers that flash over your player portrait (separate toggles, via a post-hook on Blizzard'sCombatFeedback_OnCombatEvent). All only change visibility — nothing is destroyed — and are kept hidden against Blizzard/Edit Mode re-showing them. The micro/bags hide is deferred out of combat since the bag buttons can be protected. (The target frame has no combat feedback to hide.) - Miscellaneous — Menu Buttons: the unit right-click menu gains quick social
actions as real, brand-coloured entries — Add Friend, Guild Invite
(labelled with your guild's name), Copy Name and Whisper — adding only
the options Blizzard's menu for that unit type is missing (self, target, party,
friend, raid, …). Built on the supported
Menu.ModifyMenuAPI so entries are injected taint-free, and uses the liveC_GuildInfo.Invite; names that read secret in instances simply omit the entries. Adapted from KkthnxUI/NDui.
Changed
- Action Bars — Equipped Item Border: the faint green border Blizzard puts on an
action button holding an equipped item is replaced with a brighter green copy of the
same IconFrame border art (
UI-HUD-ActionBar-IconFrame-Border), sized to match our skinned frame. Driven by ahooksecurefuncpost-hook onActionBarActionButtonMixin:Update, so it follows live action drag/drop and equips, and it reads the equipped state fromC_ActionBar.IsEquippedActionwith a Secret-value guard. New toggle (on by default) under Action Bars; turning it off restores Blizzard's default border. - Announcements — Rare Alert: you can now right-click the rare popup to share the rare and a clickable map-pin link in chat — your group when grouped (instance/raid/party), otherwise General chat. The shared message uses a default-named map pin so the server doesn't drop it, and a short cooldown keeps repeated clicks from flooding the channel. Left-click still targets/tracks; the new toggle (on, under the popup) can be edited in the panel or Edit Mode dialog. Cherry-picked from Plumber's rare announcement by Peterodox.
- Announcements — Quest Notification: objective-progress announcements now diff
Blizzard's structured quest objectives (
C_QuestLog.GetQuestObjectives) off the debouncedQUEST_LOG_UPDATEscan instead of pattern-matching localizedUI_INFO_MESSAGEtext. It's locale-independent, no longer parses a string that can be a Midnight Secret value in instances, fires for every quest regardless of whether it's tracked, and posts the quest name alongside each objective. High-count objectives still report roughly every 20%, and percent-style "progress bar" quests are announced too. The module stays idle while you're solo (it only announces when there's a group). The old Dragonflight-only dragon-glyph collection notice was removed. - Maps — World Map: the windowed map can now be dragged directly by its title bar — no Edit Mode required — and the position is saved across reloads. The old Edit Mode mover for the map was removed in favour of this; the maximized map stays centred and is left to Blizzard. Drag pattern inspired by NDui by siweia.
- Miscellaneous — Drag Frames: your bags are now draggable too — grab the combined bag, or the backpack in the separate-bag layout (which moves the whole cluster). Bag positions intentionally snap back to Blizzard's default on the next bag open rather than persisting, matching the rest of Drag Frames.
- DataText — Experience Bar: now tracks Midnight Housing Experience. When you
have a tracked house the bar fills toward the next house level, uses the same
Experience/Remainingtooltip formatting as the normal XP bar, and shows in a gold tone matching the housing UI. The Housing Experience tooltip also includes neighborhood Endeavor Progress from Blizzard's initiative API. Priority is XP first (so levelling is unaffected), then Housing Experience — it's an explicit opt-in via your tracked house — then reputation/honor/Azerite. Built on Blizzard's ownC_HousingandC_NeighborhoodInitiativeAPIs.
Fixed
- DataText — Stats & Clock: minimap FPS/latency and clock text now use a
manual drop-shadow duplicate instead of
SetShadowOffset. On 12.0.7 the API still reports1, -1and Slug CVars do not change the look, but the engine draws Slug-rendered shadow flush on the glyphs anyway; offsetting a solid-black copy behind the main string restores a readable shadow. - Action Bars — Extra Quest Button: the cooldown swipe swept over the gold
IconFrame border. The border is the button's
OVERLAYnormal texture while the Cooldown is a child frame (which always renders above the parent's textures), so the swipe and its bright leading edge drew on top of the chrome. The swipe is now inset to the frame's inner opening and the leading edge is disabled, so it stays neatly inside the gold border. - DataText — Time: the world-map quest-timer tooltip read a widget through a
misnamed Blizzard API (
GetTextureAndTextWidgetVisualizationInfo), which silently never resolved. Corrected to the realGetTextureAndTextVisualizationInfoso "texture-and-text" widget timers (verified against Blizzard's own widget code) display again. - Automation — Auto Vendor: now yields to Bagforge's Vendor module when Bagforge has the matching automation enabled. If Bagforge is handling auto-repair or auto-sell junk, NexEnhance skips that same action at runtime instead of double repairing/selling, without changing your NexEnhance settings.
- Inventory — Item Level: item quality and the inspected unit's GUID can read as Secret inside instances on 12.0, and the loot/bag/inspect paths compared them directly, which could throw a Lua error mid-loot. Every quality and GUID read is now Secret-guarded (matching Auto Greed and Loot Roll), and loot slots with no hyperlink yet are ignored until Blizzard finishes populating them. If a value can't be read, the overlay is simply skipped instead of erroring.
- Tooltip: the status-bar skin no longer uses
BackdropTemplatechildren. Blizzard's backdrop mixin divides byGetWidth()/GetHeight()in Lua, which can be Secret while the world-cursor tooltip updates under Midnight. The bar now uses plain texture strips, avoiding the tainted secret arithmetic crash. - Automation — Quick Quest: "Auto-Skip Story Gossip" now actually fires. It
only matched a red
<Skip ...>marker pinned to the very start of an option in the legacy hex-red colour, so it missed campaign skips with white lead-in text (e.g. the Argus "<Skip the Argus Campaign>" option), the modernRED_FONT_COLORmarkup Blizzard now uses, and plain (uncoloured) skips like the Legion "<Skip the scenario and begin your journey on Broken Shore.>" option. Detection now keys off the angle-bracket marker itself anywhere in the option text, which is both colour- and locale-independent, with a Secret-value guard on the option name. The follow-up "Skip ahead?" confirmation popup these skips raise is also auto-accepted now (mirroring Blizzard'sGOSSIP_CONFIRMhandling) so the skip completes hands-free — but only for free skips: a confirmation that costs money, or whose cost reads Secret, is still left for you to confirm. Each skip now prints a chat line naming the NPC ("Skipped story dialogue from …") so you know it happened. Verified against Blizzard's 12.0 gossip resources.
Performance & Internals
- Action Bars — Extra Quest Button: quest, zone-change and player
UNIT_AURAevents were each triggering a full closest-quest-item scan, so an aura-heavy pull could run that scan many times a second. They're now coalesced through a 0.1s debounce into a single scan, while target changes and bag updates keep their own immediate handlers so the button still feels instant. - Audited the whole addon against Blizzard's 12.0 Resources for Secret-value and taint correctness, API drift and hot-path costs (no further issues found beyond the two above); cleaned up a couple of harmless linter false-positives.
- Full-UI consistency pass: localised the only
C_Itemcall left in the Extra Quest Button's per-frame range check, aliased the Tooltip Item Level scan'sC_Itemlookups and dropped its per-artifact relic table allocation, and tidied cryptic constants and sparse hooks in the tooltip modules with explanatory comments. Behaviour unchanged.

