promotional bannermobile promotional banner

Classic Loot Manager (TBC Anniversary)

Classic Loot Manager is a robust Loot Tracking and awarding tool for guilds.

File Details

ClassicLootManager-TBC-fixed.zip

  • R
  • Mar 15, 2026
  • 2.04 MB
  • 230
  • 2.5.5
  • Classic TBC

File Name

ClassicLootManager-TBC-fixed.zip

Supported Versions

  • 2.5.5

## v1.9.3-TBC — Addon Conflict Fixes

### Fixed
- Addon panel corruption (Rested EXP, etc.) : Fixed a critical bug where CLM double-registered its options panel in `INTERFACEOPTIONS_ADDONCATEGORIES` (once via AceConfigDialog `AddToBlizOptions`, once via `TBCOptionsPanel`). This corrupted the addon category list and prevented addons registered after CLM (e.g. Rested EXP) from appearing in Escape > Interface > AddOns.
- CloseSpecialWindows taint : AceConfigDialog was replacing the global `CloseSpecialWindows()` function with addon code. This caused taint propagation when pressing Escape, breaking the Interface Options panel and preventing other addons from being toggled. Now uses `hooksecurefunc` instead, which preserves secure execution.
- Settings API removed for TBC 2.5.5 : Removed `Settings.RegisterCanvasLayoutCategory` / `Settings.RegisterAddOnCategory` fallback paths from both `TBCOptionsPanel.lua` and `AceConfigDialog-3.0.lua`. These APIs are Dragonflight+ only and caused silent corruption of the addon list on TBC Anniversary.
- CloseMenus taint reduction : LibUIDropDownMenu's `CloseMenus` hook now only hides dropdown frames when they are actually visible, reducing unnecessary taint propagation from the Escape key.
- UISpecialFrames duplicates : `MakeFrameCloseOnEsc` now checks for existing entries before inserting into `UISpecialFrames`, preventing duplicate accumulation that contributed to taint issues.
- Duplicate panel guard : `TBCOptionsPanel` now verifies the panel isn't already registered in `INTERFACEOPTIONS_ADDONCATEGORIES` before calling `InterfaceOptions_AddCategory`, preventing corruption on `/reload`.

### Files changed
- `Modules/ConfigManager/ConfigManager.lua` — Removed `AddToBlizOptions` calls
- `TBCOptionsPanel.lua` — Removed Settings API, added duplicate check
- `Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua` — `hooksecurefunc` instead of global replacement, removed Settings API
- `Libs/LibUIDropDownMenu/LibUIDropDownMenu.lua` — Conditional hide in CloseMenus hook
- `Utils.lua` — Duplicate guard in MakeFrameCloseOnEsc