Skip to content

Releases: VengeanceStudio/AbstractUI

AbstractUI v12.0.5.31

23 May 17:54

Choose a tag to compare

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
  • Fixed: Resolved SetVertexColor error 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})

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

10 May 23:31

Choose a tag to compare

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.SkinFramework for 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_BLOCKED error in GroupManager module
    • Issue: Protected frame security violation when calling Hide() on CompactRaidFrameManager
    • Solution: Replaced OnShow hook with UnregisterAllEvents() approach

Code Quality

  • Fixed: All new skin modules now use proper LibStub("AceAddon-3.0"):GetAddon("AbstractUI") pattern
  • Improved: Frame skin detection uses OnShow hooks for proper timing
  • Refactored: Centralized skinning utilities in AbstractUI.SkinFramework API

📁 File Organization

New Files

  • Skins/CharacterPane.lua - Complete character frame skin
  • Skins/SpellBookFrame.lua - Spellbook placeholder
  • Skins/TalentsFrame.lua - Talents placeholder
  • Skins/ProfessionsFrame.lua - Professions placeholder
  • Skins/CollectionsJournal.lua - Collections placeholder
  • Skins/AchievementFrame.lua - Achievements placeholder
  • Skins/EncounterJournal.lua - Encounter Journal placeholder
  • Skins/FriendsFrame.lua - Friends placeholder
  • Skins/CommunitiesFrame.lua - Communities placeholder
  • Skins/GuildFrame.lua - Guild placeholder
  • Skins/PVPUIFrame.lua - PvP placeholder
  • Skins/LFG.lua - LFG placeholder (renamed from PVEFrame)
  • Skins/QuestFrame.lua - Quest placeholder
  • Skins/GossipFrame.lua - NPC Dialog placeholder
  • Skins/DialogFrame.lua - Player Choice placeholder
  • Skins/MerchantFrame.lua - Merchant placeholder
  • Skins/MailFrame.lua - Mail placeholder
  • Skins/TradeFrame.lua - Trade placeholder
  • Skins/GameMenuFrame.lua - Game Menu placeholder
  • Skins/SettingsPanel.lua - Settings placeholder
  • Skins/README.md - Developer documentation for skinning framework

Updated Files

  • Modules/Skins.lua - Refactored with SkinFramework API and per-frame controls
  • Modules/GroupManager.lua - Fixed protected frame security issue
  • AbstractUI.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 enabled
  • SkinFramework:GetThemeColors() - Get current theme color palette
  • SkinFramework:GetColorPalette() - Access ColorPalette module
  • SkinFramework:GetFontKit() - Access FontKit module
  • SkinFramework:ApplyBackdrop(frame, colors) - Apply themed backdrop
  • SkinFramework:StripTextures(frame) - Remove Blizzard textures

Best Practices

  • Use LibStub("AceAddon-3.0"):GetAddon("AbstractUI") to access addon
  • Hook frame OnShow events for proper initialization timing
  • Check SkinFramework:IsFrameEnabled() before applying skins
  • See Skins/README.md for 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

28 Apr 23:07

Choose a tag to compare

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

26 Apr 21:28

Choose a tag to compare

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

18 Apr 18:02

Choose a tag to compare

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

  1. 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
  2. Bulk Select - Checkbox-based batch operations

    • Select multiple mail items with checkboxes
    • Bulk open or return selected mail
    • Persistent selection tracking across page changes
  3. 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
  4. Quick Send - Keyboard shortcut enhancements

    • Shift-click inbox items to auto-loot
    • Ctrl-click to quickly return mail
  5. Enhanced UI - Interface improvements

    • Auto-generate subject line from gold amount
    • Long subject tooltips for truncated text
    • Improved mail list readability
  6. Carbon Copy - Mail clipboard functionality

    • Copy any received mail to clipboard
    • Preserves sender, subject, and body text
  7. Do Not Want - Quick delete/return icons

    • Visual indicators for returnable mail
    • One-click delete with confirmation
  8. Forward - Mail forwarding capability

    • Forward mail content to other players
    • Auto-prefixes subject with "FW:"
    • Copies body text automatically
  9. 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
  10. Rake - Gold tracking

    • Automatic gold collection/spending tracking
    • Session summary on mailbox close
    • Tracks number of gold mails received
  11. 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

13 Apr 19:23

Choose a tag to compare

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_LOGIN to 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

12 Apr 06:40

Choose a tag to compare

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

12 Apr 00:27

Choose a tag to compare

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

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

11 Apr 08:58

Choose a tag to compare

AbstractUI v12.0.1.24 Release Notes

New Features

  • Target Castbar added

Various Bug Fixes

AbstractUI v12.0.1.23

11 Apr 01:07

Choose a tag to compare

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 preview command 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