Cooldown Manager Ckraigs

addon tracks and displays essential buff icons for World of Warcraft. It provides a customizable, multi-row icon viewer with per-row icon sizing, aspect ratio cropping, and robust skinning. The addon includes a scrollable options menu
Back to Files

CkraigCooldownManagerForever0.6.3.zip

File nameCkraigCooldownManagerForever0.6.3.zip
Uploader
CKRAIGFRIENDCKRAIGFRIEND
Uploaded
Oct 15, 2026
Downloads
5
Size
7.9 MB
Flavors
Forever
File ID
9187286
Type
R
Release
Supported game versions
  • 1.60.1

What's new

# CkraigCooldownManager Forever — Changelog

All notable changes to the WoW Forever edition (interface 16001) are documented here.
Format: `## [Version] — YYYY-MM-DD`

---

## [0.6.3] — 2026-10-14

A new Weapon Swap page, and an Overpower glow that can tell your target's dodge from your own.

### Added
- **Weapon Swap page** (warriors by default; other classes can switch it on under **Classes**):
  - **Swap Macro**: pick your two-hander, shield and one-hander (from your bags / what you're wearing, or type the name) and CCM writes or updates a character macro that swaps between them. **Create / update macro**, **Put it on my cursor**, optional `#showtooltip`, and the macro text to copy.
  - **Notifier**: an icon and / or text when you're holding the set you don't want: **Shield** (DPS still holding the shield), **Two-hander** (tank still holding the two-hander), or **Both** (always show which set you're in).
  - Look: icon (equipped item or generic), icon size, text position, font / size / outline (SharedMedia), your own text and colour for each set, pulse, layer. **Move it** / **Reset position**, **Test (5s)**.
  - When it shows: always, in combat only, or for a few seconds after you swap; hide while mounted, dead or in cities / inns.
  - Sound (SharedMedia) with channel, and an optional repeat in combat.
  - `/ccmswap` toggles the notifier, `/ccmswap test` shows it for 5 seconds, `/ccmswap unlock` / `lock` to move it.

### Fixed
- **Overpower glow**:
  - No longer glows in Defensive Stance when **you** dodge, parry or block (that's Revenge, not Overpower). It now ignores a "dodge" that comes together with Revenge lighting up, your own dodge / parry / block, or the +5 rage from shield talents such as Master of Defense.
  - The Defensive / Berserker "swap stance" glow shows reliably again when **your** swing is dodged (it was missing real dodges); it uses your auto attack state and an any-stance melee range check.
  - Waits for Overpower's own 5 second cooldown: no glow you can't use right after you just used Overpower.

## [0.6.2] — 2026-10-13

A fixed Overpower glow, a per-spell look for active auras, and fixes brought over from Retail.

### Added
- **Active Aura Look** (Essential Buffs / Utility Buffs > pick a spell > Aura Timer): per spell, replace Blizzard's yellow fill while the spell's buff is active with **Fill - your colour**, **Border only**, **Pixel glow**, **Autocast glow**, **Proc glow** or **No fill, no glow**. Colour and thickness per spell; "Reset This Spell" clears it. With Show Actual Cooldown on, the dark cooldown swipe stays and the look is added on top.
- **Overpower: glow in Defensive / Berserker Stance too** (on by default) with its own **Swap-stance Color** (grey): the icon glows in that colour when your attack is dodged in another stance, and changes to the normal glow colour once you swap to Battle Stance.
- **Clusters (groups)**: every Clusters tab (Dynamic Icons, Essential, Utility, Cooldown Bars) now reads "Clusters (groups)", and hovering it explains what cluster groups are.

### Changed
- **Show Actual Cooldown** now applies the moment you tick or untick it (no /reload needed).
- **Tracked Spells**: spells with charges only grey out when every charge is used, not while one is recharging.
- **Dynamic Icons**: spells sent to the Essential / Utility row no longer leave a grey "always show" icon in their cluster.
- **Show Actual Cooldown**: charge lookups are done once per frame per icon (CPU).

### Fixed
- **Overpower glow**:
  - No longer glows when **someone else's** attack is dodged: in Battle Stance only the game's own "Overpower usable" counts, and in other stances a dodge only counts while you're attacking your target in melee range.
  - Never glows without a living enemy target.
- **Custom Auras**: an icon that failed to build could keep the addon retrying every frame and stop other icons (and the gain / fade sounds) from working.

## [0.6.1] — 2026-10-10

A CCM tab on Blizzard's Cooldown Settings window, and an Overpower glow for warriors.

### Added
- **CCM tab on Cooldown Settings**: a CK logo tab under the Spells / Auras / Group Buffs tabs of Blizzard's **Cooldown Settings** window. Click it to open (or close) the CCM options.
  - Same frame and hover glow as Blizzard's tabs, with a tooltip. It stays under the lowest tab shown, so it moves up when Group Buffs is hidden.
  - Won't open the options in combat (prints a message instead, like the minimap button).
  - **`/ccm tab off`** hides it, **`/ccm tab on`** brings it back, **`/ccm tab`** switches it. The choice is saved.
- **Overpower glow (warriors)**: new **Overpower** tab in **Essential Buffs** and **Utility Buffs** (only shown on a warrior; both tabs change the same settings). Off by default.
  - Glows the Overpower icon on the Essential and / or Utility viewer for the 5 seconds after your **target dodges**: when the game marks Overpower usable, or when your target dodges (from the game's combat event on your target, since the combat log is blocked on WoW Forever).
  - Still glows in Defensive / Berserker Stance so you know to swap; option to glow even when you don't have enough rage.
  - Ends when you use Overpower, when the 5 seconds run out, or when you change to a different target.
  - Glow type (**Proc Glow**, **Pixel**, **Autocast**), colour, and a **Test (5s)** button. Uses its own glow, so it never clashes with per-spell glows or proc glows on the same icon.
  - Overpower has to be on the Essential or Utility row (Blizzard's Cooldown Settings) for the glow to show.

## [0.6.0] — 2026-10-10

A big CPU pass (about 2.8% → 0.7% in combat), sending Dynamic Icons buffs to the Essential / Utility rows, visibility rules for Items / Potions, Target Count on inactive icons and a built-in performance test.

### Added
- **Dynamic Icons: send a buff to Essentials or Utility** (cluster mode, ported from Retail): the spell's **Cluster** dropdown now also has **Essentials (always shown)** and **Utility (always shown)**.
  - The buff leaves Dynamic Icons and gets an icon in the chosen row that is always there: full colour with its duration swipe and stack count while the buff is up, greyed out and dimmed while it's down.
  - **Position in row** (1 = first, 0 = last). Pick a normal cluster again to bring it back.
- **Items / Potions: visibility rules**:
  - **General tab → "Visibility (every group)"**: one set of rules for all groups.
  - **Per group → "Own visibility rules"**: a group can use its own rules instead (the General tab's group list marks these).
  - Rules: **Show** always / only in combat / only out of combat / never; **Target** doesn't matter / only with a target / only with a living enemy target; **only in a party or raid**; **hide while** mounted, in a vehicle, flying, swimming, stealthed, resting (city / inn), dead or a ghost; **opacity out of combat**.
  - Everything except the opacity is handled by the game, so groups switch by themselves in combat too. A group that was set to "Only in combat" / "Only out of combat" keeps that as its own rule.
- **Target Count on "Show inactive" icons**: the count stays on the grey placeholder while the spell isn't up, and moves to the real icon when it is. With nothing to count (out of combat) it shows **0/0** ("Hide at 0" hides it).
- **`/ccmtest`** — full performance test of the whole addon:
  - `/ccmtest start` reloads and measures from login; `stop` opens the report; also `now`, `mark <note>`, `report`, `show`.
  - Report: CCM's total CPU from the game's own addon profiler (with an "after login" line and in-combat figure), CPU by file, top 50 functions / events / timers / hooks, hooks installed again and again (leak check), frames made during play, slowest single calls, a 10-second timeline, load time per file and how CCM compares with your other addons.
  - Copy it from the report window (Select all, Ctrl+C); it's also saved in SavedVariables (`CCM_Settings.ccmTest.report`). Costs nothing while it isn't running.

### Changed
- **CPU in combat: about 2.8% → 0.7%** (measured with `/ccmtest`), and no more long freezes at login or in fights:
  - **Keybind labels**: the search for your action buttons no longer freezes the game for 90–110 ms (in combat it reuses the buttons it found and looks again after the fight; otherwise it searches a little each frame). Range colouring now only changes the label colour.
  - **Items / Potions**: bag counts are read once per bag change instead of 4 times a second, icons are only redrawn when something changed, state updates run twice a second, hidden groups are skipped, and the out-of-combat opacity switches the moment combat starts or ends.
  - **Spell states (Tracked Spells)**: at most one update every 0.15 s, and they now listen to the normal power event instead of the "frequent" one — mana classes woke them up dozens of times a second.
  - **Combo points** (rogues, cat druids): no longer also listen to the frequent power event, which fired on every energy tick.
  - **Swing Timer**: the queued-attack check (Heroic Strike...) runs at most once per frame and only repaints the bar when it changes.
  - **Target Count**: its meters are built a few frames at a time instead of in one 40–120 ms freeze.
  - **Custom Auras**: at login, at most 3 icons are built per frame.
  - **Options window**: the pages are built one at a time after login (never in combat) instead of all at once.

## [0.5.0] — 2026-10-09

New Items / Potions page, tooltips and right-click to cancel for Custom Auras, and a new order for the options pages.

### Added
- **Items / Potions** (new page): groups of items from your bags with their cooldown swipe, countdown and how many you carry.
  - **As many groups as you like** (potions, food, trinkets ...), each on its own tab with its own position, look and rules. Move tabs, duplicate, delete (two clicks), reset position, "Copy look & layout from" another group.
  - **Add items** by searching your bags (click a result to add it, or "Add all listed"), or by item ID / link / name. Reorder with Up / Down, remove what you don't want.
  - **Auto-include**: a group can fill itself from your bags: Potions, Elixirs, Flasks, Food & Drink, Bandages, Scrolls, Other consumables, any usable item, or equipped trinkets with a use effect. New items show up by themselves; hide single auto items you don't want.
  - **Ready-made groups**: one click for a Potions, Elixirs & Flasks, Food & Drink, Bandages, Trinkets or Usable items group.
  - **Lock / unlock** per group or all at once, drag to move. Unlocked groups show every item, even ones you don't carry.
  - **Click an icon to use the item** (works in combat), tooltip on hover.
  - **Layout**: icon size, spacing, icons per row, grow direction, which way new rows go, scale, X / Y, opacity, strata.
  - **Look**: cooldown swipe (and reverse), countdown numbers and size, font, item count (size, position, show "1"), border colour or item quality colour, zoomed icons.
  - **Rules**: grey out / fade / hide on cooldown, dim / grey out / hide items not in your bags (and close the gaps), red tint when you can't use the item.
  - **Visibility & alerts**: show always / only in combat / only out of combat, hide when the group is empty, flash when an item is ready again, glow while ready (optionally only in combat), running-low warning (count turns red at a number you pick).
  - **`/ccmitems`** opens the page; `/ccmitems lock`, `unlock`, `new <name>`, `potions`, `debug` (prints what a click on an item icon does).
- **Custom Auras: tooltip on hover** (per group, off by default): hover an icon for the live aura tooltip (time left, stacks) while it's up, or the spell's description while it's missing. Options: not in combat, and the tooltip position. Clicks still go through the icons; with the option off the icons ignore the mouse, so mouseover macros keep working.
- **Custom Auras: right-click to cancel** (per group, off by default): right-click a "Buff on you" icon to cancel the buff, in combat too (the game's own aura button does the cancelling). Works in every group, including rows attached to a Dynamic Icons cluster.
- **`/ccmtip`**: hover a Custom Auras icon and type it to see what the mouse is over and how each aura's tooltip / right-click is set up.

### Fixed
- **Items / Potions: clicking an icon didn't use the item.** The icons now use the item like a macro (`/use item:<id>`, or the trinket slot for equipped trinkets), on mouse press or release depending on your key-down setting. An unlocked group's drag frame no longer covers its icons: you drag it by a bar above the group instead.

### Changed
- **Options page order**: Essential Buffs, Utility Buffs, Dynamic Icons, Cooldown Bars, Segment Bars, Custom Auras, Tracked Spells, Totems, Swing Timer, Items / Potions, then the other pages, with Profiles and Interface at the bottom. The window now opens on Essential Buffs.

## [0.4.0] — 2026-10-08

Controller (gamepad) support, a new default look for the options window, and layout fixes.

### Added
- **Gamepad support**:
  - **Keybind labels for controllers**: icons show the controller button that casts the spell (A / B / X / Y, LB, RT, LT+A...), read from the bars that are on screen (gamepad bars and bar addons included). Interface > Keybinds > Gamepad: "Show keys for" (Auto / Keyboard / Gamepad) and "Controller buttons" (Xbox, PlayStation or plain text).
  - **Options window with a controller**: D-pad up / down moves between settings, left / right changes a value, A uses, B closes, X jumps to search, Y opens the Guide, LB / RB switch pages, LT / RT scroll.
  - **Controller hint bar** along the bottom of the options window showing what each button does (Interface > Controller hint bar: Auto / Always / Never). It uses the Xbox or PlayStation button names you picked.
  - **Key Bindings** (Game Menu > Key Bindings > AddOns > CCM Forever): open / close the options and the Guide from a key or controller button.
- **"Forever (gold & teal)" theme**, now the default: gold and teal frame, gradient header, medallion and title font.
- **Clusters (groups)**: every Clusters tab (Dynamic Icons, Essential, Utility, Cooldown Bars) now reads "Clusters (groups)", and hovering it explains what cluster groups are.
- **Dynamic Icons: "Keep the first row in place"** (General, on by default): when icons wrap into more rows, the first row stays where it is and new rows go below it (or above, with "New rows go"). Off = the whole block re-centres like before.
- **`/sbfill watch`** (Segment Bars troubleshooting): every time you cast a spell it prints the spell, its cooldown and whether each tracked bar sees it as ready. Type it again to stop. `/sbfill` also shows the cooldown, charges, action-button cooldown and fill state of every tracked spell.

### Fixed
- **Segment Bars: the fill followed the global cooldown** instead of the spell's real cooldown, so it flashed on every GCD (any spell) and then went empty. The GCD is now ignored, charge spells use their recharge timer (read from the charges when the game has no recharge timer for that spell), and the fill follows the spell rank you know.
- **Segment Bars: spells without charges** (Fire Nova, shocks...) sat empty even when ready. They now count as one charge: full while ready, empty when you cast it, refilling over its real cooldown, then full again. In combat, where the game hides cooldown numbers, the bar uses the moment you cast the spell and its cooldown length (learned out of combat, or the spell's base cooldown).
- **"ADDON_ACTION_FORBIDDEN ... SetPreferredGamepadInteractTarget"** when a confirm question (reset, delete...) opened while the gamepad UI was active. The options window now uses its own confirm box instead of the game's popup.
- **Swing Timer: queued Heroic Strike / Cleave / Maul / Raptor Strike** only lit up at low level: the check asked about rank 1. It now asks about the rank you know, and also updates on the spell-queue event.
- **Power Thresholds**: power ticks only re-check whether you can afford each marker's spell and redraw only when that answer changes.

## [0.3.0] — 2026-10-07

New look for the options window, Power Thresholds, Tracked Spells upgrades, a big idle-CPU pass and several fixes.

### Added
- **Options themes** (Interface > Theme): 20 colour themes plus Classic (the original gold look), picked from cards in the window.
  - Modern look: rounded corners, soft edge glow, sliding on/off switches (or check boxes with a tick), round slider knobs, round colour dots, rounded tabs / buttons / dropdowns with hover highlights, and an icon for every page in the left list.
  - Per-theme tweaks: accent colour, corner roundness, glow strength, switches or check boxes, plus "Reset theme tweaks".
  - **Guide & Previews** follows the chosen theme and rebuilds straight away when it changes.
- **Power Thresholds** (Resource Bars > Power Thresholds tab): `|` markers on the power bar where a spell becomes affordable (from your spellbook, by spell ID, a fixed amount or a percent).
  - Optional bar / text recolouring while you can't (or can) afford it, fade or hide while affordable, spell icon and label at the line, and lines for 2x-5x the cost.
  - Spells follow your best known rank.
- **Tracked Spells: icon strip** at the top of the spell list: drag an icon onto another to reorder (green border on the one you drag, red on the target), right-click an icon to open its settings.
- **Essential / Utility Spells tabs** got the same icon strip.
- **Profiler: `/ccmprofile frames [seconds]`** lists the CPU used by every frame's scripts in the whole UI (all addons), with CCM's own frames listed separately, to find per-frame loops.
- **`/ccmtrinket`**: prints what Tracked Spells sees for trinket slots 13 / 14 (item, Use: effect, data loaded, icon shown).

### Changed (CPU)
- **Power Thresholds**: spell rank and cost lookups are cached until spells or the power type change. Power ticks only redraw when a marker's "can I afford it" answer actually flips; markers that only draw a line ignore power ticks completely. No longer listens to the high-frequency power event. (Went from ~17 ms a minute idle to almost nothing.)
- **Totems**: with icon style the timer sleeps until a totem reaches its warning window. Bar style updates 4x a second (10x under 10 s, 20x only while pulsing). Settings are no longer re-read on every tick, and text / colours are only set when they change.
- **Swing Timer**: no longer rebuilds all bars on every loot pickup or bag change. It only rebuilds when an equipped weapon really changes.
- **Glows**: Tracked Spells pixel / autocast glows and the Icon Extras "glow when ready" update 30x a second instead of every frame. They look the same and keep their speed.

### Fixed
- **Tracked Spells: trinkets missing after a fresh login** (they only appeared after toggling them or a /reload). On login the game briefly reports a trinket's Use: effect as empty, and the trinket was marked passive for the whole session. Trinkets are now kept visible for the first seconds and re-checked 2 / 6 / 13 s after login, after every loading screen, and when the item data arrives.
- **Tracked Spells: trinket cooldowns** now read correctly on newer clients, and trinket icons no longer blink in and out or vanish during loading screens.
- **Keybind labels on Warriors** (and Druid forms / Rogue stealth): only the action bar page that is showing right now gives a 1-12 label, so spells placed on other stance bars no longer show the wrong key. Labels update on stance change.
- **Swing Timer**: "bad argument #1 to 'tostring'" when a weapon slot (off-hand / ranged) is empty.
- **Tracked Spells**: "Attempted to release object ... doesn't belong to this pool" when another addon's newer copy of LibCustomGlow had already removed the glow.
- **Power Thresholds**: the options page was missing (its file had dropped out of the loader), and the spell list stayed empty on clients where the newer spellbook API exists but lists nothing (both spellbooks and both cost APIs are now read).
- **Profiler**: the function scan didn't recognise files in the `CkraigCooldownManagerForever` folder (it only matched the Retail folder name), so it missed many functions. The frame scan no longer breaks on protected frames, and frames sharing one script are counted once.

## [0.2.0] — 2026-10-05

Weapon art for curved bars, a tidier addon folder, a CPU pass for combat, and profiler fixes.

### Added
- **Weapon art styles**: 29 full-colour weapon textures in `media/arcs/` (axes, swords, warglaives, staves, maces, bow, scythe, daggers...) show up in every Curved Style list as "Weapon art: ...".
  - Available on Health / Power bars, Cooldown Bar clusters, Segment Bars, Custom Aura bars and the Swing Timer.
  - They keep their own colours instead of the bar colour. They stand upright for Left / Right (filling hilt to tip) and lie flat for Up / Down.
  - The background is a dimmed, desaturated copy of the weapon.
- **Profiler: "HOOKS ON BLIZZARD FRAMES" section**: every hook the addon puts on Blizzard frames is now timed and listed by file:line and method, so hook cost is no longer hidden in the "unhooked" gap.

### Changed (CPU)
- **Tracked Spells**: entering or leaving combat no longer rebuilds every tracked icon unless a spell actually depends on combat (show only in combat, only on cooldown or only when ready).
- **Target Count**: updates every 0.5 s in combat (was 0.3 s), and only touches its widgets when the count or visibility changed (no repeated Show / Hide calls on frames already in that state).
- **Icon Extras**: the decoration pass now runs once a second in combat (was 4 times a second). Out of combat it stays at every 2 s. New icons are still decorated straight away.
- **Segment Bars**: queued refreshes are merged over 0.25 s (was 0.15 s), so bursts of cooldown events cost one rebuild instead of several.

### Changed (addon folder)
- **One loader per folder**: the `.toc` now lists 12 `Load_<Folder>.xml` files (Libs, compat, locale, core, utils, data, profiles, trackers, cooldownbars, ResourceBars, visuals, ui) instead of every single file. Same files, same order. The only difference is that Cooldown Bars now load right after the trackers.
  - A full game restart (not just `/reload`) is needed once after updating, because the game only reads the `.toc` file list at startup.
- All `hooksecurefunc` calls go through `CCMF_HookSecure` (defined in `compat/ForeverCompat.lua`). This behaves exactly like `hooksecurefunc`, but lets the profiler time each hook while it is running.

### Fixed
- **Segment Bars**: picking a Weapon art style threw "attempt to call a nil value" (a helper was used before it was defined).
- **Profiler**: `/ccmprofile start` could freeze the game with "script ran too long". It walked every frame in the UI (over 5,000) looking for scripts it could never identify on live clients. That sweep is now skipped when it cannot work, and is otherwise capped by a time budget.

## [0.1.0] — Forever draft

First WoW Forever edition. See `README-FOREVER.txt` for what is included and what was removed compared with Retail.

This mod has no additional files