Releases: VengeanceStudio/AbstractUI
AbstractUI v12.0.5.31
AbstractUI v12.0.5.31 Release Notes
Bug Fixes
Broker Bar
- Removed default texture settings from new broker bar creation to prevent unwanted textures being applied
Minimap Buttons
- Fixed: Settings changes now take effect immediately without requiring a reload
- Added
UpdateButtonBarLayout()function for instant layout updates - Updated all layout settings (position, size, spacing, growth direction, etc.) to apply changes in real-time
- Added
- Fixed: Resolved
SetVertexColorerror caused by inconsistent color table formats- Improved color handling to support both keyed tables (
{r=..., g=..., b=..., a=...}) and array-style tables ({r, g, b, a})
- Improved color handling to support both keyed tables (
Data Brokers
M+ Teleports
- New Feature: Teleport spells now display in RED when on cooldown
- Automatically updates every 0.5 seconds while the popup is open
- Color updates on hover to reflect current cooldown status
- Color scheme:
- Red - Spell is on cooldown
- White - Spell is available to use
- Gray - Spell not yet learned
Technical Improvements
- Enhanced MinimapButtons module with better color validation and defensive programming
- Improved real-time UI updates across multiple modules
- Better cooldown tracking for spell-based data brokers
AbstractUI v12.0.5.27
AbstractUI v12.0.5.27 Release Notes
🎨 Skinning System Overhaul
New Per-Frame Skinning Controls
- Granular Control: Individual toggle switches for each Blizzard frame
- 20 Skinnable Frames: Character, Spellbook, Talents, Professions, Collections, Achievements, Encounter Journal, Friends, Communities, Guild, PVP, LFG, Quest, Gossip, Dialog, Merchant, Mail, Trade, Game Menu, Settings
- Progress Indicators: All incomplete skins clearly marked as "(IN PROGRESS)" in settings
- Framework API: Centralized
AbstractUI.SkinFrameworkfor consistent skinning across all frames
Completed Skins
- ✅ Character Frame: Fully functional with equipment slots, stats, and titles
Work in Progress (Placeholder Files Created)
- 🚧 Spellbook
- 🚧 Talents / Specialization
- 🚧 Professions
- 🚧 Collections (Mounts, Pets, Toys, Transmog)
- 🚧 Achievements
- 🚧 Encounter Journal
- 🚧 Friends List
- 🚧 Communities / Groups
- 🚧 Guild Panel
- 🚧 PvP Panel
- 🚧 LFG (Dungeon Finder)
- 🚧 Quest Frame
- 🚧 NPC Dialog
- 🚧 Player Choice Dialog
- 🚧 Merchant / Vendor
- 🚧 Mailbox
- 🚧 Trade Window
- 🚧 Game Menu
- 🚧 Settings Panel
🐛 Bug Fixes
Critical Fixes
- Fixed:
ADDON_ACTION_BLOCKEDerror in GroupManager module- Issue: Protected frame security violation when calling
Hide()on CompactRaidFrameManager - Solution: Replaced
OnShowhook withUnregisterAllEvents()approach
- Issue: Protected frame security violation when calling
Code Quality
- Fixed: All new skin modules now use proper
LibStub("AceAddon-3.0"):GetAddon("AbstractUI")pattern - Improved: Frame skin detection uses
OnShowhooks for proper timing - Refactored: Centralized skinning utilities in
AbstractUI.SkinFrameworkAPI
📁 File Organization
New Files
Skins/CharacterPane.lua- Complete character frame skinSkins/SpellBookFrame.lua- Spellbook placeholderSkins/TalentsFrame.lua- Talents placeholderSkins/ProfessionsFrame.lua- Professions placeholderSkins/CollectionsJournal.lua- Collections placeholderSkins/AchievementFrame.lua- Achievements placeholderSkins/EncounterJournal.lua- Encounter Journal placeholderSkins/FriendsFrame.lua- Friends placeholderSkins/CommunitiesFrame.lua- Communities placeholderSkins/GuildFrame.lua- Guild placeholderSkins/PVPUIFrame.lua- PvP placeholderSkins/LFG.lua- LFG placeholder (renamed from PVEFrame)Skins/QuestFrame.lua- Quest placeholderSkins/GossipFrame.lua- NPC Dialog placeholderSkins/DialogFrame.lua- Player Choice placeholderSkins/MerchantFrame.lua- Merchant placeholderSkins/MailFrame.lua- Mail placeholderSkins/TradeFrame.lua- Trade placeholderSkins/GameMenuFrame.lua- Game Menu placeholderSkins/SettingsPanel.lua- Settings placeholderSkins/README.md- Developer documentation for skinning framework
Updated Files
Modules/Skins.lua- Refactored with SkinFramework API and per-frame controlsModules/GroupManager.lua- Fixed protected frame security issueAbstractUI.toc- Added all new skin files to load order
🔧 Developer Notes
SkinFramework API
New centralized utilities for skin developers:
SkinFramework:IsFrameEnabled(frameName)- Check if frame skinning is enabledSkinFramework:GetThemeColors()- Get current theme color paletteSkinFramework:GetColorPalette()- Access ColorPalette moduleSkinFramework:GetFontKit()- Access FontKit moduleSkinFramework:ApplyBackdrop(frame, colors)- Apply themed backdropSkinFramework:StripTextures(frame)- Remove Blizzard textures
Best Practices
- Use
LibStub("AceAddon-3.0"):GetAddon("AbstractUI")to access addon - Hook frame
OnShowevents for proper initialization timing - Check
SkinFramework:IsFrameEnabled()before applying skins - See
Skins/README.mdfor detailed developer guide
🚀 Future Plans
- Complete implementations for all 19 placeholder skins
- Add per-element customization (fonts, colors, borders per frame)
- Improve skin preview/testing tools
- Add import/export for skin configurations
Installation: Copy to World of Warcraft\_retail_\Interface\AddOns\AbstractUI\
Support: Report issues on GitHub or Discord
Compatibility: WoW 12.0.5 (The War Within)
AbstractUI v12.0.5.8
AbstractUI v12.0.5.8
Bug Fixes
Tooltips Module
- Fixed Lua errors when hovering over units in dungeons/instances
- World cursor tooltips now skip all custom enhancements while in dungeons to prevent taint errors
- Error:
bad argument #1 to '?' (Usage: local unitName, unitServer = UnitName(unit))no longer occurs - Blizzard marks world cursor unit tokens as "secret" during protected execution in instances, causing Unit* API calls to fail
- Custom tooltip features (class colors, guild info, item level, etc.) are now cleanly disabled in dungeons rather than attempting to process tainted data
- Tooltips will continue to show standard Blizzard information in dungeons without errors
- All custom tooltip enhancements remain fully functional outside of instances
AbstractUI v12.0.5.7
AbstractUI v12.0.5.7 Release Notes
New Features
Bug Fixes & Improvements
- Various Bug fixes
For support or bug reports, please visit the AbstractUI repository.
AbstractUI v12.0.5.1
AbstractUI v12.0.5.1 Release Notes
New Features
Mailbox Module - Complete Rebuild
Complete overhaul of the Mailbox module with 13 comprehensive features
Core Features
-
Open All - One-click mail collection with smart filtering
- Filter by AH Won, AH Sold, AH Outbid, AH Cancelled, AH Expired, Postmaster
- Adjustable collection speed (0.1-2.0 seconds)
- Configurable bag space protection
- Shift-click to override filters
-
Bulk Select - Checkbox-based batch operations
- Select multiple mail items with checkboxes
- Bulk open or return selected mail
- Persistent selection tracking across page changes
-
Address Book - Contact management & autocomplete
- Automatic tracking of alts across realms
- Recent recipient history
- Quick-access dropdown menu for contacts
- Auto-fill last recipient option
-
Quick Send - Keyboard shortcut enhancements
- Shift-click inbox items to auto-loot
- Ctrl-click to quickly return mail
-
Enhanced UI - Interface improvements
- Auto-generate subject line from gold amount
- Long subject tooltips for truncated text
- Improved mail list readability
-
Carbon Copy - Mail clipboard functionality
- Copy any received mail to clipboard
- Preserves sender, subject, and body text
-
Do Not Want - Quick delete/return icons
- Visual indicators for returnable mail
- One-click delete with confirmation
-
Forward - Mail forwarding capability
- Forward mail content to other players
- Auto-prefixes subject with "FW:"
- Copies body text automatically
-
Quick Attach - Category-based item attachment
- 14 profession/material category buttons
- One-click attach all items in category
- Right-click to set default recipient per category
- Smart soulbound item filtering
- Categories: Cloth, Leather, Metal/Stone, Cooking, Herbs, Enchanting, Inscription, Jewelcrafting, Parts, Elemental, Optional Reagents, Finishing Reagents, Other Trade, All Trade
-
Rake - Gold tracking
- Automatic gold collection/spending tracking
- Session summary on mailbox close
- Tracks number of gold mails received
-
Trade Block - Interruption prevention
- Automatically blocks trade requests while using mail
- Blocks guild/arena petition popups
- Restores settings on mailbox close
Font Customization
- Custom font face selection (4 font options)
- Adjustable font size (8-20pt)
- Applies to all mail text including sender, subject, body, and expiration time
- Recursive font application for comprehensive coverage
Bug Fixes & Improvements
API Compatibility
- Updated to WoW 12.0.1 (Midnight) API
- Updated dropdown menu implementations for retail compatibility
Technical Details
Performance
- Deferred initialization with C_Timer.After() to prevent taint
- Event-driven updates for efficient UI refreshes
- Smart hook placement for minimal overhead
Security
- Uses hooksecurefunc for taint-safe function hooking
- InCombatLockdown() protection where applicable
- Proper event registration/unregistration
Compatibility
- Works with AceAddon-3.0 framework
- Compatible with existing AbstractUI modules
- Respects Blizzard UI scaling and positioning
Configuration
All features can be toggled independently in the AbstractUI settings panel under Mailbox section.
Known Limitations
- Forward feature requires manual item attachment (WoW API limitation)
- Quick Attach respects default bag settings (bags 0-4 + reagent bag)
For support or bug reports, please visit the AbstractUI repository.
AbstractUI v12.0.1.27
AbstractUI v12.0.1.27
New Features
- M+ Teleports Broker: Added new broker displaying Season 1 Mythic Plus dungeon teleports
- Shows all 8 Midnight dungeons with one-click teleport casting
- Learned teleports appear clickable with full color
- Unlearned teleports are grayed out with unlock requirements in tooltip
- Compact, sleek design with no scrollbar needed
- Opens on hover for quick access
Performance Improvements
- CursorAnimate Module: Fixed memory leak reducing memory usage by ~0.4MB per 10 seconds
- Pre-allocated variables to eliminate per-frame allocations
- Cached database access and time calculations
- Added proper frame cleanup on hide
Technical Changes
- M+ Teleport spell IDs sourced from community data
- Proper secure context handling for spell casting
- Uses
C_SpellBook.IsSpellInSpellBook()API for accurate spell detection - Buttons created during
PLAYER_LOGINto maintain secure context
Dungeons Included
- Algeth'ar Academy
- Maisara Caverns
- Magisters' Terrace
- Nexus-Point Xenas
- Pit of Saron
- Seat of the Triumvirate
- Skyreach
- Windrunner Spire
AbstractUI v12.0.1.26
AbstractUI v12.0.1.26
New Features
Character Pane
- Added empty socket indicators on equipment items
- Items with gem sockets now show a dimmed socket icon (40% opacity) when empty
- Filled gems continue to show at full opacity
- Provides visual reminder of which items need gems
Group Finder Scaling
- Added scale and positioning controls for the Group Finder (LFG/LFR) window
- Adjustable scale from 0.5x to 2.0x (default: 1.25x for better readability)
- Optional custom positioning
- Horizontal and vertical position sliders
- Works identically to the Quest/Dialogue window scaling system
Performance Improvements
Smart Update System Extended to All Frames
- Unit frames now use intelligent updates instead of full recreation
- Previously: Only Target frame used smart updates
- Now: All frames (Player, Pet, Focus, TargetTarget, Boss) benefit
- Cosmetic changes (colors, fonts, textures) update in <5ms instead of ~50-100ms
- Structural changes (size, enable/disable, attachment) still recreate frame when needed
- Eliminates potential duplicate frame issues
- Reduces memory pressure from unnecessary frame recreation
Bug Fixes
Target Castbar
- Fixed grey overlay not appearing on non-interruptible casts
- Overlay bar now properly displays at higher frame level
- Non-interruptible casts show grey bar with shield icon
- Interruptible casts show yellow (casting) or blue (channeling)
- Text remains visible above all bars
Unit Frames
- Fixed missing health percentage on first target after login/reload
- Added longer delay (0.1s) for first target to ensure unit data loads
- Improved number conversion in tag processing to handle edge cases
- Subsequent targets use normal 0.05s delay
Auto-Insert Mythic Keystone
- Fixed feature not working at all
- Now uses proper ADDON_LOADED event for Blizzard_ChallengesUI
- Changed from hardcoded item IDs to item class/subclass detection
- Works for keystones from all expansions (BFA, Shadowlands, Dragonflight, TWW)
- Added cursor validation before slotting keystone
- Based on proven AutoKeystone addon implementation
AbstractUI v12.0.1.25
AbstractUI v12.0.1.25
New Features
Target Castbar Enhancements
- Added visual indication for non-interruptible casts
- Non-interruptible casts now display with a grey status bar
- Shield icon appears on the left side of the castbar for non-interruptible casts
- Interruptible casts continue to show yellow (casting) or blue (channeling)
- All text remains visible above status bars for readability
Performance Improvements
- Implemented smart update system for Target frame
- Frame only recreates when structural changes occur (enable/disable, size changes)
- Cosmetic changes (colors, fonts) now update without full recreation
- Reduces unnecessary frame churn and improves performance
Bug Fixes
Castbar
- Fixed taint errors in dungeons/combat using Retail-specific APIs
- Replaced manual time calculations with
UnitCastingDuration()/UnitChannelDuration() - Implemented
SetTimerDuration()for taint-safe animation handling - Castbar now functions properly in all combat scenarios without errors
- Replaced manual time calculations with
Unit Frames
- Fixed class coloring incorrectly applying to NPCs and beasts
- Class colors now only apply to player units
- NPCs and creatures display proper hostile/friendly/neutral colors
Options Panel
- Fixed scroll position persisting when switching between settings tabs
- Scroll position now resets to top when navigating to different tabs
- Improves navigation and prevents confusion
AbstractUI v12.0.1.24
AbstractUI v12.0.1.24 Release Notes
New Features
- Target Castbar added
Various Bug Fixes
AbstractUI v12.0.1.23
AbstractUI v12.0.1.23 Release Notes
Consumables Module - Major Update
New Features
Dynamic Icon Centering
- Visible icons now automatically center as a group instead of using fixed left-aligned positioning
- Icons with tracking disabled no longer create gaps in the display
- Center position updates dynamically when toggling buffs on/off
Class-Specific Buff Icons
- "Buff!" icon now displays the appropriate spell icon based on your class:
- Druid: Mark of the Wild (136078)
- Priest: Power Word: Fortitude (135987)
- Mage: Arcane Intellect (135932)
- Warrior: Battle Shout (132333)
Preview Mode
- New toggle to display all enabled buff icons regardless of current status
- Useful for customizing icon appearance and positioning
- Access via
/abscon previewcommand or settings panel
Font Customization
- Added font selection dropdown using LibSharedMedia-3.0
- Supports all LSM-registered fonts
- Default font changed to Arial Narrow
- Dynamic text width scales with icon size for better wrapping
Detection Improvements
Comprehensive Spell ID Database
- Imported extensive spell ID lists from ReadyCheckConsumables addon
- Flasks: 30+ spell IDs covering Battle for Azeroth through Midnight expansions
- Food Buffs: 30+ spell IDs including Well Fed variants and hearty food
- Augment Runes: 10+ spell IDs across multiple expansions
- Class Buffs: Mark of the Wild, Power Word: Fortitude, Arcane Intellect, Battle Shout
- Icon-based fallback for food detection when spell ID not found
Smart M+ Countdown Handling
- Added
issecretvalue()detection to prevent false positives during Mythic+ countdown - Buff caching system with expiration tracking prevents spam rescanning
- Weapon imbues and food buffs no longer incorrectly show as missing during countdown
Class Buff Detection
- Only checks for class buffs when player has the appropriate class
- Demon Hunters, Rogues, and other classes without raid buffs won't see "Buff!" indicator
- Removed retired Monk buffs (Legacy of the Emperor, Legacy of the White Tiger)
Death Persistence Tracking
- Food buffs now correctly marked as persistent through death (hearty food)
- PERSISTS_THROUGH_DEATH configuration for accurate buff state after death
Bug Fixes
- Fixed slash command errors by adding AceConsole-3.0 dependency
- Fixed text wrapping to respect icon size scaling
- Fixed class buff showing for classes without personal buffs
- Removed deprecated Monk buff entries
Settings & Defaults
New Default Values
- Icon Size: 60 (was 64)
- Icon Spacing: 10
- Font: Arial Narrow (was Friz Quadrata TT)
- Font Size: 14
Buff Tracking Defaults
- Enabled: Weapon Imbues, Flask, Food, Main Hand Poison, Off Hand Poison, Class/Raid Buffs
- Disabled: Healthstone, Augment Rune
Context Display Defaults
- Enabled: Mythic/M+ Dungeons, LFR, Normal/Heroic/Mythic Raids, Always Show on Ready Check
- Disabled: Open World, Delves, Normal/Heroic Dungeons, PvP
Slash Commands
/abscon show- Show the consumables tracker/abscon hide- Hide the consumables tracker/abscon toggle- Toggle visibility/abscon reset- Reset position to center/abscon preview- Toggle preview mode/abscon debug- Toggle debug output
Technical Changes
- Added LibSharedMedia-3.0 integration for font management
- Implemented buff expiration cache system
- Enhanced weapon enchant detection with GetWeaponEnchantInfo()
- Improved context detection for raids/dungeons/delves
- Dynamic label width calculation based on icon size