File Details
v6.34.0
- R
- Jul 1, 2026
- 2.93 MB
- 3.8K
- 5.5.4+2
- Classic + 2
File Name
CritMatic-v6.34.0.zip
Supported Versions
- 5.5.4
- 2.5.5
- 1.15.8
[v6.34.0-release] - 07/01/2026
Changed
- The Crit Log Share menu now always lists every channel. The ones you cannot use right now (party, raid, instance, battleground, guild) are greyed out instead of hidden, and hovering a greyed channel tells you why, for example "You are not in a raid." Yell, emote, and whisper are always available.
[v6.33.0-release] - 07/01/2026
Added
- Share any recorded crit from the Crit Log whenever you want. Right-click a spell in the Crit Log and use the new Share submenu to send its best number straight to party, raid, instance, battleground, guild, yell, emote, or a whisper (you get a prompt to type the name). Only the channels you can actually use where you are right now show up.
[v6.32.0-release] - 06/30/2026
Changed
- Sending your crits and big hits to guild chat is now off by default. Party, raid, and battleground sharing are unchanged. You can turn guild sharing back on anytime in the Social options.
[v6.31.1-release] - 06/30/2026
Changed
- Refreshed the RepMatic and MailMatic icons in CritMatic's "More Infinite Loop Alchemist Addons" list to their new artwork, and added XPMatic's icon to that list.
[v6.31.0-release] - 06/23/2026
Added
- New Colors tab with a shared master color palette (spell name, crit, hit, crit heal, heal, pet crit, pet hit). Each surface, your alerts and chat lines, the Crit Log window, and the broker text and tooltips, has a "Use Shared Colors" toggle so it can follow the shared palette or keep its own colors. Every toggle defaults off, so existing setups look exactly the same after updating.
- Pet color pickers are now on the Alert Font and Crit Log appearance sections, and your pet's records are colored on those surfaces, not just the broker. The new pet colors default to each surface's current look, so nothing changes until you pick a color or turn on shared colors.
- Records can now be announced as an in-game emote that nearby players can see when combat ends: your best new crit or hit per spell, with crit shown over a normal hit, up to 3 spells per fight, prefixed with a skull marker and the CritMatic name. New Social option, on by default, fires once per combat session.
Changed
- The pet "Pet Value" color is now labeled "Pet Hit" for consistency with the player Hit color, in English and all 10 client locales.
- All color rendering across alerts, the Crit Log, and the broker now flows through a single shared color resolver, so a surface can switch between its own colors and the shared palette cleanly.
[v6.30.2-release] - 06/22/2026
Changed
- The in-game AddOns-list description now shows in your client's language. Localized into all 10 client locales (deDE, esES, esMX, frFR, itIT, koKR, ptBR, ruRU, zhCN, zhTW), reusing the shared LibMatic addon descriptions.
- Shared LibMatic update: the GearMatic entry in the in-game "More Infinite Loop Alchemist Addons" list now reflects its current best-in-slot features.
[v6.30.1-release] - 06/22/2026
Changed
- Bundled
LibMatic-ChangeLog-1.0updated to MINOR 5: the in-game changelog popup now shows up to the 10 most recent versions. No gameplay changes.
[v6.30.0-release] - 06/22/2026
Added
- Each broker feed can now have its own icon. New dropdowns on the Broker appearance tab let you pick a separate icon for the Damage, Healing, and Pet feeds (and their minimap buttons), so you can tell them apart at a glance even with the labels hidden. Healing and Pet default to distinct icons; Damage keeps the CritMatic medallion.
- New Pet Crit and Pet Value color pickers on the Broker appearance tab, so your pet's records can have their own colors in the feed and tooltip. Pet defaults to a distinct orange.
- The Crit Log and the combined broker tooltip now show a separate Pet group when "group by type" is on, alongside Damage and Healing, so pet abilities are grouped together instead of mixed into the other sections.
- Previewing your alert position now shows a sample CritMatic crit alert, so the preview matches what a real record looks like.
Changed
- The broker feeds and per-category tooltips now follow your Tooltip color settings (spell name, crit, hit, crit heal, heal). The Healing feed uses your heal colors and the Damage feed uses your damage colors, instead of every feed using the damage color. Your customized spell-name and heal colors now show in the broker where they previously did not.
Fixed
- The "old record" shown for a spell that has more than one rank could be wrong, showing a lower rank's value instead of your real previous best. For example, after a new heal record of 161 the previous best could read 86 instead of 160. It now always shows the true previous record for that spell.
[v6.29.0-release] - 06/20/2026
Added
- CritMatic records now appear in item tooltips. Hover a potion, healthstone, or any on-use item, or click its link in chat, and you'll see your highest crit, hit, crit heal, and heal for that item's effect, the same lines already shown on your spell and action-bar tooltips. Items you have no record for show nothing.
Fixed
- The separate Damage, Healing, and Pet broker feeds now display the same way as the main CritMatic feed: both your top crit and top hit, in your chosen crit/hit colors, following the main feed's number and label display style so they can be just as short. Previously each feed showed a single uncolored value with no way to tell a crit from a hit, and ignored your display-style and color settings.
[v6.28.0-release] - 06/18/2026
Added
- 11 new bundled fonts, selectable anywhere CritMatic uses a font (alerts, Crit Log, and the broker tooltip): Capital Hill, Capital Hill Monospaced, Extra Thick, Extra Thick Monospaced, Fabled Font, Fabled Font Monospaced, High Birth More Letter Gap, Scrambled Eggs, Scrambled Eggs Bold, Tomorrow Night, and Tomorrow Night Monospaced.
[v6.27.0-release] - 06/18/2026
Added
- Separate data broker feeds for Damage, Healing, and Pet records, alongside the combined CritMatic broker. Any data-bar display (Titan Panel, ElvUI, Bazooka) can now show each category on its own, each with its own shorter tooltip.
- Optional minimap icons for the Damage, Healing, and Pet feeds, with three new toggles on the Broker appearance tab. All default to off, so the minimap is unchanged unless you turn them on.
- Records produced by your pet are now tagged and routed to the Pet feed, separate from your own damage.
Fixed
- Record alerts and chat messages now show your previous best even when it came from a different rank of the spell, matching the data broker and Crit Log. Announcements now fire on a true all-time best for the spell across all ranks, so leveling up a rank no longer triggers a false "new record" for a smaller hit.
[v6.26.0-release] - 06/17/2026
Added
- Font, Size, and Outline controls for the minimap/broker hover tooltip, on the Broker appearance tab. The tooltip font can now be set to any installed font.
Changed
- The minimap/broker tooltip now uses the game's default font out of the box (it was Anton). Pick any other font on the Broker tab if you prefer.
[v6.25.0-release] - 06/16/2026
Changed
- The Record Threshold now controls whether a new record is kept at all, not just whether it announces. A hit only becomes your record (updating the Crit Log, alert, chat, and sound) when it beats your current record by at least the set percent; smaller improvements are ignored. The default threshold is now 5% (was 10%), and the option is renamed to "Record Threshold".
[v6.24.0-release] - 06/15/2026
Added
- Crit Log appearance has a new "Group Order" setting (Damage First or Healing First) that controls which section is shown on top when "Group Damage and Healing" is enabled.
Fixed
- The Level Up font now appears and renders in the font lists. It previously failed to load because of the font file's internal encoding (a Macintosh cmap subtable and a restricted embedding flag); the file has been normalized to a clean profile.
- The broker tooltip now splits records into proper Damage and Healing sections when grouping by type, instead of leaving them interleaved under a single inline header.
[v6.23.1-release] - 06/15/2026
Changed
- Updated the Olie and Fo Shizzle alert sounds.
[v6.23.0-release] - 06/15/2026
Changed
- The Tooltip tab has been removed from the options for now while it is reworked. Your Crit Log and Broker appearance options are unchanged, and your saved settings are kept.
[v6.22.1-release] - 06/14/2026
Fixed
- The Crit Log now fills in with your records as soon as you log in. It could previously come up showing only the spell icons with no names or numbers until you reloaded.
- The Crit and Hit lines CritMatic adds to your ability tooltips no longer change the font of the rest of the tooltip text.
- Fixed an error message that could appear when logging in.
[v6.22.0-release] - 06/14/2026
Changed
- The default Record Announce Threshold is now 10% instead of 0. New profiles only announce a new record (alert, chat, sound) when it beats the old record by at least 10%. Existing profiles keep whatever value they already have, and the threshold remains adjustable in the options.
In-Game
- New installs now start with the Record Announce Threshold set to 10%, so CritMatic only celebrates a new record when it beats your old one by at least 10% instead of every tiny improvement. If you already use CritMatic, your current setting is unchanged. You can adjust this any time in the options (type /cm).
[v6.21.0-release] - 06/13/2026
Added
- Appearance customization system. Three new options tabs, Tooltip, Crit Log, and Broker, let you set the font face, font size, and font outline for each surface, pick your own colors for the spell name, crits, hits, crit heals, and heals, choose whether records sort by most recent or by your highest numbers, and toggle grouping the list by damage versus healing. Each surface keeps its own settings table.
- New default font, Anton, applied to alerts, the Crit Log, and tooltips (previously Friz Quadrata TT). The previous font remains selectable as "Friz Quadrata TT" on every font dropdown.
- New "Level Up" arcade font, loaded from LibMatic, registered with LibSharedMedia and selectable in every CritMatic font dropdown, alongside the rest of the bundled font library (Architects Daughter, Coming Soon, Hideout 8-Bit, Oswald Bold, Pixeloid Mono, Silk Screen, Rubik Mono One, Metal Mania, Creepster, Chewy, Black Ops One).
- LibQTip-powered broker and minimap tooltip that renders with your configured font and colors.
Fixed
- The Crit Log failed to render when its font outline was set to "None", because SetFont rejects a literal "NONE" flag. The flag is now mapped correctly, so choosing "None" draws clean, outline-free text instead of a blank window.
- The Crit Log window title now uses your configured font, matching the rows below it instead of staying on the default font.
- The broker and minimap tooltip now renders through LibQTip on every display so it always honors your configured font, with a GameTooltip fallback if LibQTip is unavailable.
- Spell tooltip record lines now honor your configured tooltip font and revert to the default font cleanly when the tooltip hides.
- The Crit Log scrollbar is 15px shorter at the bottom so it no longer overhangs the window frame.
In-Game
- New: you can now customize how CritMatic looks. Open the options (type /cm, or find CritMatic under Interface, AddOns) and you will see three new tabs: Tooltip, Crit Log, and Broker. On each you can pick the font, its size, and its outline, set your own colors for the spell name, crits, hits, crit heals, and heals, choose whether records are sorted by most recent or by your highest numbers, and group the list by damage and healing if you like them kept apart.
- New fonts: CritMatic now uses the Anton font by default for your alerts, Crit Log, and tooltips. If you preferred the old look, just set the font back to "Friz Quadrata TT" on any of those tabs. There is also a brand-new arcade-style font called "Level Up" in every font dropdown, plus a stack of others (8-bit, comic, metal, and more) to play with.
- The Crit Log now always shows up: setting the font outline to "None" used to leave the window blank, and now it simply gives you clean text with no outline.
- The Crit Log window title now uses the same font you picked for the rest of the window, so the whole window matches.
- The broker and minimap tooltip now uses the font you chose, on every screen, instead of dropping back to the default game font, and your spell tooltips show their CritMatic record lines in your chosen tooltip font too.
- The Crit Log scrollbar no longer hangs past the bottom edge of the window.
[v6.20.0-release] - 06/13/2026
Added
- The data broker tooltip now shows your full per-spell crit log instead of only the top records. Each tracked spell appears with its icon, name, and its Crit, Hit, Crit Heal, and Heal records (with the previous record in parentheses), colored by your crit and hit colors. A new "Broker: Show Full Crit Log in Tooltip" toggle switches back to the compact summary, and a "Broker: Tooltip Spell Limit" slider (5 to 50, default 15) caps how many spells the tooltip lists before it shows a "more not shown" line. The full-log strings are translated into all 11 locales. Internally the Crit Log window's grouping is now shared with the tooltip through one helper so the two views cannot drift.
Fixed
- The broker summary tooltip now includes your highest non-crit Heal. It previously tracked only the top crit, hit, and crit heal, so the plain Heal record was never shown; the summary is now four lines (Top Crit, Top Hit, Top Crit Heal, Top Heal).
In-Game
- The minimap and broker tooltip now show your full crit log: every spell with its icon and its crit, hit, crit heal, and heal records, in your own crit and hit colors. You can choose how many spells it lists, or switch it back to the short top-records summary, in the options. The short summary now also shows your best non-crit heal.
[v6.19.0-release] - 06/12/2026
Added
- CritMatic now bundles its own alert sounds. Twelve sounds covering crits, healing crits, heals, and hits, each in three styles (default, Olie, and Fo Shizzle), are registered with LibSharedMedia and selectable from CritMatic's alert sound dropdowns.
In-Game
- CritMatic now comes with its own built-in alert sounds. Twelve new sounds for crits, healing crits, heals, and hits, each in three styles, are ready to pick in CritMatic's sound dropdowns.
[v6.18.2-release] - 06/12/2026
Fixed
- The settings profile message no longer tells players to /reload. Font, alert position, shadow, and bounce apply live (the alert frame is rebuilt per crit from current settings) and the Crit Log, minimap, and broker are refreshed by OnProfileChanged on every profile change, copy, and reset, so the reload advice was inaccurate. The message is now a plain "Profile changed.", matching the records profile message, across all 12 locales.
In-Game
- Changing, copying, or resetting a profile no longer tells you to reload your interface. Your settings apply right away.
[v6.18.1-release] - 06/10/2026
Fixed
- Guarded GetSpellBaseCooldown in the tooltip path; it does not exist on TBC Classic and was erroring on every spell tooltip there.
- User-editable alert format strings are now formatted safely; a bad or reordered specifier falls back to a plain rendering instead of erroring on every alert (live alerts and the options preview).
- Ignored spells and ignored targets no longer mint a record before the ignore checks run, so they are no longer silently tracked.
- The Ignore Grey-Level Targets filter no longer suppresses healing records, which do not depend on the target's level.
- /critmatic deletespelldata now clears every rank that shares the spell name and refreshes the tooltip aggregate cache.
- Pet spellbook tooltips no longer show an unrelated player spell's records.
- Incoming version comms are validated before triggering the update notice, and the guild version broadcast now respects the battleground/arena suppression.
- Combat state is seeded on login and reload so Delay Alerts and the combat recap work after a mid-fight reload, and the end-of-combat flush no longer strands queued alerts when a setting is toggled mid-combat.
- The changelog popup tracks the last-seen version account-wide instead of per profile, so it no longer re-pops when you switch profiles.
- Records deleted from the Crit Records database are no longer resurrected on a fresh alt from a stale pre-split copy.
- Crit Log position, lock, and size, the minimap button, and Crit Log visibility now save to the active profile after a profile switch.
- The previous-record alert and chat suffix is now localized in all 11 languages instead of always showing in English.
- Non-shared alert stacking no longer double-anchors frames or leaves faded ghosts in the stack.
Performance
- The combat log handler no longer allocates a table per event and gates on the player/pet source first, cutting per-event work and garbage in busy raid and dungeon combat.
- The Crit Log no longer rebuilds and re-creates a frame per row on every record while the window is hidden, and it reuses row frames when open, eliminating steady memory growth over a session.
- Count-up alert driver frames are pooled, the combat-text bounce idle update stops when nothing is scrolling, and broadcast dedupe state is pruned.
- GetGCD derives the global cooldown from spell haste instead of probing a warrior-only spell that always fell back to 1.5s, so tooltip DPS/HPS estimates reflect haste.
Changed
- Removed dead defaults and unused code (legacy chat-format defaults, an unused tab stub path, a no-op options hook).
In-Game
- This release is all fixes and smoothing. CritMatic is much lighter during big fights and over long sessions, so the Crit Log and on-screen alerts no longer build up memory the longer you play.
- Custom alert message formats can no longer cause an error, and spell tooltips on Burning Crusade Classic no longer error.
- The previous-record line now shows in your language, new healing records again count when your target is a low-level friend or pet, and guild crit announcements send properly when you are also in a party or raid.
- Deleting a spell's data clears every rank and updates tooltips right away, and the Crit Log position, minimap button, and changelog popup behave correctly when you switch profiles.
[v6.18.0-release] - 06/09/2026
Added
- Use shared LibMatic alert position option, on by default: alerts from all Infinite Loop Alchemist addons anchor to one shared screen position and merge into a single stack, newest on top. Turning it off restores this addon's own alert position and stacking.
- Max Shared Alerts option, default 5: caps how many alerts the shared stack shows at once across all addons combined.
- The shared position and limit stay in sync across addons and persist through reloads; setting them from any one addon applies to all.
- Both new options are fully localized across every supported language.
In-Game
- New option: alerts from all Infinite Loop Alchemist addons can share one position on screen and stack neatly together, newest on top. On by default; turn it off in the alert settings to keep this addon's own alert position.
- New Max Shared Alerts setting controls how many alerts can be on screen at once in the shared stack, 5 by default.
- Drag the alert position in any one addon and every addon using the shared position follows.
[v6.17.0-release] - 06/09/2026
Added
- Mute Alerts in Raids: while you are in a raid, the on-screen alert, its sound, and the chat line are suppressed for new records. Records are still tracked. Off by default.
- Mute Alerts in Dungeons: the same suppression while you are in a party inside a 5-man dungeon. Out in the world with a party, alerts still fire. Off by default.
- Delay Alerts Until Combat Ends: holds new-record alerts and sounds during combat and shows them all when the fight ends. Off by default.
- Show Best Per Spell After Combat: at combat end, shows one alert and chat line per spell that set a new personal best that fight. The recap still fires at the end of a fight even when alerts are muted for that group. Off by default.
- All four new options are fully localized across every supported language.
In-Game
- New Mute Alerts in Raids and Mute Alerts in Dungeons options hide the alert, sound, and chat line for new records while you are in those groups, without stopping tracking.
- New Delay Alerts Until Combat Ends option holds your new-record alerts during a fight and shows them all when combat ends.
- New Show Best Per Spell After Combat option gives you a clean end-of-fight recap of your best new record for each spell.
[v6.16.0-release] - 06/08/2026
Added
- Picking a sound in the Sound settings now plays it immediately so you can preview each option (LibMatic-Settings play-on-select).
Changed
- Cleaned up the shared LibMatic sound pack: removed duplicate dropdown entries, renamed a couple of sounds for clarity, and re-normalized the custom alert sounds louder.
- Resetting a profile now prompts for confirmation. LibMatic-Settings injects an AceConfig confirm onto the AceDBOptions Reset Profile control, so both the Profiles tab and the Crit Records profile tab ask before wiping a profile.
Fixed
- Change-log popups from different Infinite Loop Alchemist addons are now independent. LibMatic-ChangeLog tracks each open window in a set and cascades them instead of sharing one frame, so closing one addon's popup no longer dismisses the others.
In-Game
- Picking a sound in settings now plays it so you can hear each one before choosing.
- The sound list is cleaner with no duplicate entries, a couple of sounds were renamed, and the alert sounds are louder.
- Resetting a profile now asks you to confirm first, on both the Profiles tab and the Crit Records tab.
[v6.15.1-release] - 06/08/2026
Changed
- The General settings page now shows a short, localized description under each addon in the More Infinite Loop Alchemist Addons section, sourced from LibMatic-Settings.
Fixed
- Hardened the new-record chat announcement so the space before "previous" is built in one shared helper across crit, hit, crit-heal, and heal lines, and no longer leaves a trailing space when there is no previous record. The missing-space bug itself was fixed in 6.13.1; this removes the duplicated-string fragility that originally caused it so it cannot regress.
In-Game
- Each Infinite Loop Alchemist addon now shows a short description in the More Infinite Loop Alchemist Addons section of the settings, so you can see what each one does at a glance.
[v6.15.0-release] - 06/07/2026
Added
- Alert text and the spell icon now use a shared adjustable drop shadow from LibMatic-AlertShadow, with a Shadow Strength slider on the Alert Font settings to set how dark the shadow is.
- Alerts now defer under native full-screen popups (level-up and cinematics) via LibMatic-OverlayGuard, so a crit landing during one shows right after the screen clears.
/cm testfires a sample crit alert;/cm test levelup,/cm test renown, and/cm test cinematicfire it behind a look-alike of that native screen so you can preview the alert and the held-then-pop deferral without leveling.
In-Game
- New Shadow Strength slider makes crit alerts easier to read. Turn it down for a lighter shadow or to 0 for none.
- Crit alerts no longer get hidden behind the game's level-up and cinematic screens. They show right after.
[v6.14.0-release] - 06/06/2026
Added
- 15 new alert sounds available from the shared LibMatic sound pack: Alarm Clock, Anima Cast, Artifact Unlock, Banshee, Deathwing Wound, Epic Loot Toast, Icy Touch, Legendary Toast, LFG Denied, Mission Complete, Shop, Shop 2, Ten, Titan Light, and World Quest Complete.
- "Animation Length" and "Stay After Animation" sliders to tune the record-alert count-up, plus a restored "Start Delay" slider controlling how long a non-animated alert holds before it fades. All three are sourced from LibMatic-Settings' shared
BuildCountUpControls.
Changed
- When a record alert shows your previous best, it now renders on its own line beneath the new record instead of inline. Both numbers still count up.
- The alert count-up now uses LibMatic-CountUp's shared
AttachLineCounterrender helper instead of a local copy. - Login help text now points to
/critmatic helpinstead of/cmhelp, consistently across all locales.
In-Game
- 15 new alert sounds to choose from.
- Your previous best record now appears on its own line below the new record when an alert pops.
- New alert settings: Animation Length and Stay After Animation control the number roll-up, and Start Delay sets how long a non-animated alert stays before fading.
[v6.13.1-release] - 06/06/2026
Fixed
- Missing space in chat record announcements. The new-record chat lines concatenated the record value directly onto the previous-record text (e.g. "...: 32previous 31"). A separating space was added to all four record types (crit, hit, crit-heal, heal) in
CritMatic.lua, so they now read "...: 32 previous 31". The on-screen alert (which renders the previous best on its own line) was already correct and is unchanged.
In-Game
- Fixed a missing space in the new-record chat messages, so your record and previous best now read correctly (for example "32 previous 31").
[v6.13.0-release] - 06/04/2026
Changed
- Moved to LibMatic shared modules. Options panel registration now routes through LibMatic's RegisterPanel/OpenPanel, the in-game changelog popup renders with LibMatic-ChangeLog's default style, and the login banner uses the shared startup banner. Crit and record alert sounds now come from LibMatic-SoundPack instead of being bundled in the addon; the 19 bundled
.oggfiles were removed, so the download is smaller and the same sounds are still available through the shared sound pack.
Fixed
- Opening CritMatic options on Mists of Pandaria Classic 5.5.4. The registered options category now keeps its numeric category id and falls back to the Blizzard options panel when needed, so the Settings entry reliably opens CritMatic's page.
In-Game
- Opening CritMatic's options is now more reliable on Mists of Pandaria Classic.
[v6.12.0-release] - 06/03/2026
Added
- Previous-record value now counts up too. When a record alert shows the previous best (Show Previous Record enabled), that number animates from 0 alongside the new record over the same roll, instead of appearing instantly.
Fixed
- Record alert numbers no longer jitter horizontally while counting up. The single-number count-up font string is now left-locked to a reserved width so its left edge cannot move as digit widths change. When a previous record is shown, the line is split into fixed-width slots for each animated number so the spell name and surrounding text stay put.
- Opening CritMatic settings from the Crit Log right-click menu. On Mists of Pandaria Classic 5.5.4 the Settings entry errored because the registered options category carried a string ID where the client's settings panel requires a numeric one. CritMatic now captures the category's numeric ID at registration and opens by that, with safe fallbacks on older clients.
[v6.11.0-release] - 06/02/2026
Added
- Count-up animation on the on-screen record alerts. When a new record alert appears, the number animates from 0 up to the record over 3 seconds (linear), then holds for 3 more seconds before fading. Uses the embedded LibMatic-CountUp-1.0 attached to the alert font string with an in-place formatter, so the line keeps its single-line layout and the completed text is identical to the non-animated message. New General toggle "Animate Alert Numbers (Count Up)" (
alertNotificationFormat.global.countUpEnabled), default ON; off restores the instant number and the previous display time. - Discord icon in the General options Support group. Added a
discordIconhook to the shared LibMatic-Settings support renderer and wired CritMatic's Discord entry to a bundleddiscord.tga.
Changed
- Interface bumped to 50504 for Mists of Pandaria Classic 5.5.4 (Siege of Orgrimmar). TBC (20505) and Classic Era (11508) unchanged.
[v6.10.0-release] - 06/02/2026
Added
- Data-broker display options (General tab). Four new toggles, all off by default so the existing display is byte-for-byte unchanged. "Broker: Show Hit Before Crit" lists your top hit before your top crit in both the broker bar text and the hover tooltip. Three mutually-exclusive compact styles reformat the broker bar text: "Compact Numbers Only" (e.g. 199/99), "Compact Initials" (e.g. C:199 H:99), and "Compact Short Labels" (e.g. Crit: 199 Hit: 99). All compact styles stay tinted by your crit/hit alert colors, and the hover tooltip always stays the full labeled view. Backed by a new
brokerSettingsprofile table and 12 new localized strings (broker initials/short labels plus the option name/desc text), translated into all 10 non-English locales.
Changed
- Chat record announcements now use your custom alert colors. The crit, hit, crit-heal, and heal new-record chat lines previously used a hardcoded gold/white; they now render in the same
fontColorCrit/fontColoryou set for the on-screen alerts, so chat and the on-screen frame match.
Fixed
- Data broker now refreshes immediately when you switch settings profiles.
OnProfileChangeddid not callUpdateBroker, so the broker bar kept showing the previous profile's order, compact style, and colors until the next record or a/reload. It now refreshes right away, matching the records-profile handler.
[v6.9.1-release] - 06/01/2026
Changed
- Translated every string introduced in v6.9.0 (per-pet attack records, the Record Announce Threshold slider, the Settings/Record profile tab labels, the record-profile-changed notice) plus the previously-untranslated "profile changed, type /reload" message into all 10 non-English locales: deDE, esES, esMX, frFR, itIT, koKR, ptBR, ruRU, zhCN, zhTW. Non-English clients no longer fall back to English for these keys. Full locale parity is now enforced by a gate in the release wrapper.
[v6.9.0-release] - 06/01/2026
Added
- Each pet type keeps its own attack record, separate from your character's melee, and its "Attack" button shows it. Previously every
SWING_DAMAGE(yours and every pet's) collapsed into the shared "Auto Attack" id 6603. A pet swing is now keyed by a synthetic string"petauto:<creatureId>"(creature id from the swing'ssourceGUID) and named"<creature> Attack"fromUnitCreatureFamily("pet")(UnitName fallback, generic "Pet Attack" if neither resolves), while your own melee stays under 6603 "Auto Attack". Non-spell records store their owndisplayNameandspellIcon; the icon is the pet's actual Attack-button texture (located viaIsPetAttackAction/GetPetActionInfo, token-resolved), not the player's melee icon. Two helpersCritmatic.GetRecordName/GetRecordIconresolve name/icon for real spells and synthetic keys; the crit log, brokerTopRecords, spell-aggregate cache, andRenderHighestHitsForSpellID(which skips cooldown/cast-time math for non-numeric keys) route through them. The pet "Attack" button tooltip (whichGetPetActionInforeturns no spellID for) resolves the current pet's key fromUnitGUID("pet")via guardedIsPetAttackAction, prepends the creature name to the tooltip's "Attack" line, and renders that pet's record; names and icons self-heal on later swings. Display groups by name, so same-named pets (e.g. multiple Wolf species) collapse to one line. The old merged 6603 record stays intact as your own melee going forward; no retroactive split. - Independent record profiles (separate from settings profiles). Records moved out of the shared settings profile into their own AceDB store,
CritMaticRecordsDB(account-wide saved variable, per-character default profile). A second "Record Profiles" page sits next to "Settings Profiles" in the options, so one settings profile can be shared across all characters while each character keeps its own records, and record profiles can be copied/shared deliberately. A one-time per-character migration (db.char._recordsSplit) copies the active settings profile's records into the character's new record profile, so each character shows its history immediately; alts therefore start with the previously-merged history and can Reset their record profile to clear cross-class noise. A separate one-time account-wide pass (recordsDB.global._importedSettingsProfiles) also imports every settings profile's records into a same-named record profile, so users who kept records under multiple settings profiles (e.g. per-spec) lose nothing and can switch record profiles to find them. Collisions merge per-field maxima rather than first-wins.CritMaticDatais now bound torecordsDB.profile.critsviaBindRecordsTable, with a dedicatedOnRecordsProfileChangedcallback rebinding and refreshing on record-profile switch.
Changed
- Record Announce Threshold slider (General tab). New
generalSettings.recordAnnounceThreshold(default 0), a 0-100% range in 5% steps. A new record only fires its alert / chat / sound when it beats the previous record by at least this percent; at 0 every new record announces (unchanged). The record itself always updates to your true highest, and the crit log and broker still refresh, so only the announcement is gated. First record for a spell (no prior value) always announces. Gates all four record types (crit, hit, crit-heal, heal) via aShouldAnnounceRecordhelper wrapping the notification block incombatHandler. The values that feed the once-per-combat guild/party broadcast (highestCritDuringCombat/highestCritHealDuringCombat) are set inside the same gate, so a below-threshold record is not announced to the group either. - Dropped the "+N" delta from new-record messages.
FormatPreviousRecordnow returns(prev %d)instead of(prev %d, +%d), so messages read "... 808 (prev 807)" with no "+1". Still controlled by the existing Show Previous Record toggle. - Data-broker bar text now shows top hit next to top crit, color-coded.
UpdateBrokerpreviously showed only the top crit. It now showsTop CritandTop Hit, each tinted from the user's alert font colors (fontColorCritfor crit,fontColorfor hit) via an RGB-to-hex helper, falling back to gold/white. Color rendering of brokertextis up to the display addon, so plain bars may show it uncolored.
Fixed
- Records that share a display name no longer overwrite each other's stored values on crit-log redraw. The crit-log name-grouping set the group's display data to a live reference to the first record's stored table and merged other same-named records' maxima into it, mutating saved data every redraw. It now groups against a
CopyTableof the record, so stored values are read-only during display. This was latent for spell ranks (which share a name) and became routine with per-type pet auto-attack records. - Broker tooltip "Top Hit" and "Top Crit Heal" lines now show the spell name.
TopRecordsonly captured the spell name for the crit record, so the hit and heal-crit tooltip lines printed a bare number. It now tracksbestHitName/bestHealNameand the tooltip appends them just like the crit line.
In-Game
- Each of your pets now keeps its own auto-attack record, separate from your character and from your other pets. Hover a pet's Attack button to see that pet's best auto-attack hit and crit.
- The minimap button and info-bar plugin now show your top hit alongside your top crit, colored to match your alert colors. The tooltip also shows which spell holds each record.
- Records now live in their own profile, separate from your settings. Share one settings profile across all your characters while each character keeps its own records. Choose a Record Profile in the options.
- New "Record Announce Threshold" slider in the General options. Leave it at 0 to be told about every new record like before, or raise it so you only get a new-record alert when the record jumps by that percent or more. Handy for stopping tiny auto-attack records from spamming you. Your records always keep your true best either way.
- New-record messages no longer show the "+1" amount, just the previous record in parentheses.
[v6.8.1-release] - 05/31/2026
Changed
- Localized everything new from v6.8.0. The three new General options (
options_show_previous_record,options_show_minimap_icon,options_ignore_trivial_targets, plus their descriptions) are now translated across all ten non-English locales (deDE, esES, esMX, frFR, itIT, koKR, ptBR, ruRU, zhCN, zhTW), each matching that locale's existing terminology for Crit / Hit / Heal / Crit Log and its "Default: Checked/Unchecked" convention. - Minimap/data-broker tooltip strings now go through AceLocale. The broker data object text and tooltip lines ("Top Crit", "Top Hit", "Top Crit Heal", and the left/right-click hints) were moved from hardcoded English to
L["broker_*"]keys inModules/CritMaticBroker.lua, with enUS source and translations added to all ten other locales. No behavior change; English clients read identically.
[v6.8.0-release] - 05/31/2026
Added
- Records now appear in pet ability tooltips. Hovering a pet action-bar ability (Claw, Bite, etc.) shows the same highest crit / hit / heal lines that already appear on the player's own spell tooltips. The render body of the spell-tooltip hook was refactored into a shared
RenderHighestHitsForSpellID(self, spellID)helper, and a newhooksecurefunc(GameTooltip, "SetPetAction", ...)resolves the spellID viaselect(7, GetPetActionInfo(slot))and reuses it. Guarded for nil spellID (Attack/Follow/Stay actions and flavors that do not return a spellID), so no error and no lines in those cases. Pet abilities with their own spellID are tracked already; pet auto-attack still shares the melee id (6603) with the player's own auto attack, unchanged. - LibDataBroker feed and minimap button. A new
Modules/CritMaticBroker.luapublishes adata sourceobject named "CritMatic": icon is the CritMatic medallion, text shows your highest crit overall, left-click toggles the Crit Log, right-click opens options, and the tooltip lists your top crit / hit / crit heal. Data-broker display addons (Titan Panel, Bazooka, ChocolateBar) pick it up automatically; for everyone else, LibDBIcon registers a minimap button. New "Show Minimap Button" toggle on the General tab (default on), persisted asminimap.hideinCritmatic.db.profile. VendoredLibDataBroker-1.1(rev 4) andLibDBIcon-1.0(minor 55) underLibs/, loaded ahead ofCritMatic.luainembeds.xml. The broker text refreshes throughCritmatic.UpdateBroker, called fromRedrawCritMaticWidget. - Ignore Grey-Level Targets option. New General toggle
generalSettings.ignoreTrivialTargets(default off). When on, records made against grey-level (trivial) mobs and critters are skipped. Because the combat log only provides a destination GUID, classification is best-effort: aCritmatic._guidToUnitmap is maintained fromNAME_PLATE_UNIT_ADDED/REMOVED,PLAYER_TARGET_CHANGED, andUPDATE_MOUSEOVER_UNIT, and the dest GUID is resolved against it (self-healing on stale entries). Grey is computed fromUnitLevelusing the verified classic formula (level<=5->0;<=39->level-floor(level/10)-5;<=59->level-floor(level/5)-1; elselevel-9), validated against warcraft.wiki. Critters are covered by grey-level (they are level 1).UnitIsTrivial/UnitClassificationandUnitCreatureType's numeric id are all retail-only, so they are intentionally not used.
Changed
- New-record alerts and chat now show your previous record and the improvement, e.g.
New Fireball Crit: 12345! (prev 11200, +1145). Controlled bygeneralSettings.showPreviousRecord(default on) on the General tab. The previous values were already stored (highest*Old); the suffix is appended afterstring.format, so custom format strings, uppercase, and locale output are untouched, and the first record for a spell (no prior) shows no suffix. - Guild crit broadcasts are now rate-limited to once per minute. A 60-second cooldown (
GUILD_BROADCAST_COOLDOWN) gates only the GUILD channel send at combat end (tracked viaCritmatic._lastGuildBroadcast/GetTime()); sends inside the window are skipped, not queued, so guild posts land at least a minute apart and never stale. Party, raid, and battleground sends are unaffected.
Fixed
- Per-spell record table now seeds
highestNormalOldcorrectly. The initializer used a transposed keyhightestNormalOld, so the canonical key was never seeded at creation (it was still assigned on the first normal record, so this was cosmetic, but it left a dead key in saved data and the Crit Log "Old" column showed 0 until the first normal record).
[v6.7.0-release] - 05/31/2026
Changed
- Sending your highest crits to guild chat is now on by default. The "Send Crits to Guild" toggle in the Social settings tab now defaults to enabled (
social.canSendCritsToGuildinCritmatic.db.profile). This only affects new profiles: AceDB applies defaults only to keys that don't already exist, so anyone with an existing profile keeps whatever they previously had set. The matching tooltip text ("Default: ...") was updated across all locales to read "Checked". Players who don't want guild announcements can untick the toggle in Social settings.
[v6.6.0-release] - 05/22/2026
Changed
- Alert text position is now set by dragging instead of X/Y sliders. The Alert Notifications settings tab no longer shows the xPos/yPos sliders, the position header, or the spacer above them. In their place is a single "Position Alert" button that opens a draggable on-screen overlay powered by the new
LibMatic-AlertPositioner-1.0module (wired viaembeds.xml). The overlay renders using the player's current LSM crit font (fontSettings.font/fontSize/fontOutline) and crit color (fontSettings.fontColorCrit) so the preview matches what shows in combat. The position itself is still stored asalertNotificationFormat.position.{xPos,yPos}in the profile, so existing positions carry over unchanged. While the overlay is active the AceConfigDialog frame is hidden, and it reopens when the player commits. The Reset Position and Test Position buttons in the Alert tab are unchanged.
[v6.5.0-release] - 05/21/2026
Added
- Bounce Style option for alert text. The Alert Notifications settings tab now has a "Bounce Style" picker with two choices: "Classic Bounce" (the existing animation, default) and "Bounce" (a quicker Mists-style pop with a faster scale-up and no mid-bounce pause). Stored as
alertNotificationFormat.global.bounceStylein the profile. Existing users keep "Classic Bounce", so the alert animation is unchanged unless they opt in.
Changed
- Options panel rebuilt on the shared
LibMatic-Settings-1.0page builders. The General, Alert, Sound, Social, and profile pages are now constructed byLibMatic-Settings-1.0instead of CritMatic-localoptionPartsfiles.Modules/optionParts/GeneralSettings.lua,SoundSettings.lua,SocialSettings.lua, andChangeLogSettings.luaare removed; their content is supplied to the shared builders.AlertFontSettings.luaandIgnoredSpellsSettings.luaremain. TheCritmatic.db.profileschema and every existing setting are preserved, so user customizations carry over untouched. - Crit broadcast moved to
LibMatic-Broadcast-1.0. The "send your highest crit to chat" feature now routes through the sharedLibMatic-Broadcast-1.0library (raid-target marker 8,CRITMATICBCcomm prefix, election disabled). If the library is unavailable the addon falls back to the previous directSendChatMessagepath, so the in-game behavior is unchanged.
[v6.4.5-release] - 05/21/2026
Changed
- Changelog rendering and options moved into the shared
LibMatic-ChangeLog-1.0library. The in-game changelog popup (/cmlog, the right-click "Open Changelog" item, and the auto-popup on version bump) and the Change Log options tab are now built and drawn byLibMatic-ChangeLog-1.0instead of CritMatic-local code.Modules/ChangeLogPopUp.luadeclares the popup as a structuredentriesspec and hands it tolib:Show();Modules/optionParts/ChangeLogSettings.luadelegates tolib:BuildOptionsTable(). The set of changelog appearance settings (font, size, color, outline, border, border size, background) is unchanged and theCritmatic.db.profile.changeLogPopUpschema is preserved, so existing user customizations carry over untouched. - Changelog popup renders in one uniform color. The popup body draws in a single color with no separately-colored section headers, and the window status line points to CurseForge for the full changelog. The default changelog font color moved from dark gray
{0.2, 0.2, 0.2}to black{0, 0, 0}; anyone who customized the color keeps their choice. - LibMatic is now delivered as a packager external.
Libs/LibMaticis no longer a committed copy in the CritMatic repo. It is symlinked locally for development (gitignored) and the.pkgmetaexternalsentry makes the BigWigs packager fetchLibMaticfrom its own repository into the release zip. Single source of truth, no drift between a vendored copy and the upstream library.
Fixed
LibMatic-ChangeLog-1.0:BuildOptionsTableno longer errors when an addon registers its options at file load. It now accepts a lazy profile getter (a function that returns the profile table) instead of requiring the profile up front, so an addon whose options are registered before its AceDB database exists no longer hitsattempt to index field 'db' (a nil value). CritMatic passesprofile = function() return Critmatic.db.profile.changeLogPopUp end.
[v6.4.4-release] - 05/20/2026
Changed
- RepMatic icon refreshed in the About / By section of the General Options tab. The 24x24 row icon next to the RepMatic CurseForge link (
Media/Textures/repmatic-icon.tga) now uses the new higher-resolution RepMatic art that ships with RepMatic v1.0.6. Pure art swap, no behavior or layout changes.
[v6.4.3-release] - 05/20/2026
Fixed
- Vendor the new
LibMaticlibrary umbrella (LibMatic-CombatTextBounce-1.0+LibMatic-IconPicker-1.0). v6.4.2 referencedLibMaticinembeds.xmlbut the actual library files were not yet committed to git, so the BigWigs packager built the v6.4.2 zip without theLibs/LibMatic/directory. Auto-updaters who pulled v6.4.2 from CurseForge saw1x LUA_WARNING: CritMatic/embeds.xml:16 Couldn't open CritMatic/Libs/LibMatic/LibMatic-CombatTextBounce-1.0/...on every reload. v6.4.3 commits the LibMatic files (LibStub-versioned) so the zip ships intact. No behavior change for anyone who had a clean install; the warnings stop.
[v6.4.2-release] - 05/19/2026
Changed
- In-game changelog popup status text and footer now point at "Discord in General Settings" instead of GitHub. Aligned with GearMatic and RepMatic on the shared
discord.gg/34JJyrnGGCserver.
[v6.4.1-release] - 05/18/2026
Fixed
- Minor bug fixes.
[v6.4.0-release] - 05/18/2026
Added
- Profiles tab in the options panel. CritMatic now exposes a standard AceDB-3.0 profile manager (the same Profiles UI you see in ElvUI, WeakAuras, Details, etc.). Configure your alert font / colors / position, sound choices, social broadcast options, and Crit Log placement on one character, then on every other character pick that profile from the dropdown so all settings sync across alts automatically. Supports Current / New / Copy From / Delete / Reset, with the standard AceDB defaults (Default, character, realm, faction, class). Tab is registered from
Critmatic:OnInitializeafterself.dbis created, then merged into the existingCritMaticOptionsAceConfig table (AceConfig:RegisterOptionsTablere-registers idempotently). New locale stringprofile_changed_reloadprinted viaOnProfileChanged/OnProfileCopied/OnProfileResetcallbacks, reminding the user to/reloadso font, alert position, and Crit Log frame placement fully apply to already-instantiated UI elements.
Changed
- CritMaticDB is now an account-wide SavedVariable. The old
CritMaticDB14lived under## SavedVariablesPerCharacter, which is why per-character setup was needed in the first place: each character had its own copy of the DB and its own (isolated)profilessubtable. v6.4.0 adds a new globalCritMaticDBin## SavedVariables, and AceDB is rebound to it viaLibStub("AceDB-3.0"):New("CritMaticDB", defaults, true)(the third arg pins the default profile toDefaultso fresh alts inherit shared settings out of the box). A one-time migration runs on first login per account: if_G.CritMaticDB14.profileexists and_G.CritMaticDB._cm_migratedis not yet set, the legacy per-character settings are copied intoself.db.profiles["Default"]and the migration flag is stamped. This means the first character to log in after upgrade donates their existing CritMatic configuration to the new sharedDefaultprofile, and every alt then sees those settings without manual re-setup. Per-character customizations from other alts remain in their respectiveCritMaticDB14SVPC files (untouched, downgrade-safe), and users who want character-specific setups can still create named profiles from the Profiles tab. - Crit/Normal hit data is now per-profile.
CritMaticData(the recorded highest-hit table) used to be a flat per-character SavedVariable, completely outside the profile system, which meant a brand-new profile would still show the character's full crit history. v6.4.0 moves the hit table intoself.db.profile.crits(an account-wide subtable under whichever profile is active) and rebinds the_G.CritMaticDataglobal to point at it onOnInitializeand on everyOnProfileChangedcallback. Net effect: clicking New in the Profiles tab and switching to that new profile gives you a truly blank Crit Log; switching back to your previous profile restores its hits exactly as they were. On the first v6.4.0 login per character, any pre-existing_G.CritMaticDataentries are merge-copied into the active profile'scritstable on a per-spellIDbasis (only spell IDs that don't already exist in the profile are copied, so multiple characters' historical hit tables can be folded into the same profile without one stomping another).Critmatic:CritMaticResetnow useswipe(CritMaticData)instead ofCritMaticData = {}, so the slash-command reset actually clears the profile-backed table in-place rather than replacing the global with an empty table that would orphan the profile data.
Requested on Reddit. Static syntax check (luac -p) clean across CritMatic.lua, Modules/CritMaticOptions.lua, Modules/CritMaticDB.lua, and Localization/enUS.lua before tagging.
[v6.3.2-release] - 05/18/2026
Fixed
- Crit Log header icon now renders the new crossed-swords medallion. v6.3.1 shipped the new art at
Media/Textures/icon.tga, but the WoW client's per-path texture cache held on to the originalicon.blprender for that frame slot on existing installs, so users still saw the old single-blade art after updating. Renamed the new texture toMedia/Textures/critmatic-medallion.tga(a path WoW has no cached entry for) and pointed both consumers at it: the TOC## IconTexture:directive and the in-frametexture_CritMatic_icon:SetTexture(...)call inModules/CritLog.lua. The texture itself was also re-rendered from the source PNG without the redundant circular alpha mask (the source already ships with a baked-in round alpha channel), so the sword hilts and full blade bodies are preserved instead of being clipped at the corners.
Static syntax check (luac -p) clean before tagging.
[v6.3.1-release] - 05/18/2026
Changed
- Addon icon refreshed. New round, alpha-masked crossed-swords medallion replaces the old
icon.blp. Ships as a 256x256 32-bit TGA atMedia/Textures/icon.tga, cropped tight on the swords with the outer glow halo trimmed back so the blades stay legible at the 25x25 in-game draw size in the Crit Log header and the small AddOns-list thumbnail.## IconTexture:inCritMatic.tocand the in-frametexture_CritMatic_icon:SetTexture(...)call inModules/CritLog.luaboth now point aticon.tga. No behavior or settings changes; pure art swap.
Static syntax check (luac -p) clean before tagging.
[v6.3.0-release] - 05/17/2026
Added
- GearMatic and RepMatic addon links added to the About / By section of the General Options tab, directly under the Follow on X row. Each row is a 24x24 icon plus a full-width copyable input field pre-filled with the CurseForge URL (
https://www.curseforge.com/wow/addons/gearmaticandhttps://www.curseforge.com/wow/addons/repmatic). Click the field, Ctrl+A / Cmd+A, copy, paste into a browser, same as the existing X and Buy Me A Coffee rows. Two new 64x64 TGA textures shipped underMedia/Textures/:gearmatic-icon.tgaandrepmatic-icon.tga. - Full locale parity for both new rows.
options_gearmatic_link,options_gearmatic_link_desc,options_repmatic_link, andoptions_repmatic_link_desctranslated across all eleven supported locales (deDE,enUS,esES,esMX,frFR,itIT,koKR,ptBR,ruRU,zhCN,zhTW). No behavior differences between locales; only the on-screen text changes.
Static syntax check (luac -p) clean across all touched files before tagging.
[v6.2.1-release] - 05/15/2026
Fixed
- Locale parity for the new "Follow on X" row. v6.2.0 shipped the X link with English-only inline fallbacks, breaking the full-parity rule the BMAC and Discord rows have followed since v5.5.10. This release adds
options_x_linkandoptions_x_link_desctranslations to all eleven locale files:deDE,enUS,esES,esMX,frFR,itIT,koKR,ptBR,ruRU,zhCN,zhTW. No behavior or UI changes beyond the localized strings; the URL itself (https://x.com/infiniteloopalc) is the same everywhere.
Static syntax check (luac -p) clean across every locale file before tagging.
[v6.2.0-release] - 05/15/2026
Added
- Follow on X link added to the Support / By section of the General Options tab. New 24x24 X (formerly Twitter) icon plus a full-width copyable input field pre-filled with
https://x.com/infiniteloopalc. Mirrors the existing Buy Me A Coffee row: click the field, Ctrl+A / Cmd+A, copy, paste into a browser. No other settings changed; the Discord link, BMAC link, and the Infinite Loop Alchemist profile row above it are untouched.
Static syntax check (luac -p) clean before tagging.
[v6.1.0-release] - 05/10/2026
Changed
- TOC Interface line refreshed for every live Classic WoW client so the addon stops showing as "Out of Date" on launch. The multi-flavor list is now
50503, 40402, 38001, 20505, 11508, covering MoP Classic 5.5.3, Cataclysm, Wrath / Titan Reforged 3.8.1, TBC Anniversary 2.5.5, and Classic Era 1.15.8. - Per-flavor BigWigs packager keys updated to match the new live builds.
## Interface-Classic: 11508(unchanged)## Interface-BCC: 20505(added; was missing)## Interface-Wrath: 38001(was30403)## Interface-Cata: 40402(added; was missing)## Interface-Mists: 50503(added; was missing)
- Dropped the bogus
## Interface-Titan: 38000line. That key isn't recognized by the BigWigs packager (it predates the official Wrath / Titan Reforged build); theInterface-Wrathslot is the right place for38001going forward.
Removed
- Retail / Mainline support dropped this release. Patch 12.0 ("Midnight") blocks unprivileged addons from registering
COMBAT_LOG_EVENT_UNFILTERED, which is the entire mechanism CritMatic relies on to record crits. Ace3 maintainer nevcairiel confirmed in WowAce issue #697: "Blizzard blocked the ability to use the COMBAT_LOG_EVENT_UNFILTERED event." Without CLEU, every CritMatic feature (highest crit / normal recording, tooltip integration, chat broadcasts, log window, social ping) is non-functional. Shipping a retail-listed addon that can't perform its core function would mislead users, so retail is intentionally untargeted until Blizzard relaxes the restriction. Classic flavors are unaffected.
Static syntax check (luac -p) clean across every Lua module before tagging.
[v6.0.0-release] - 05/09/2026
Removed (breaking)
Send to /saytoggle and the SAY broadcast path are gone. /say is muted in instances by Blizzard, and combining it with the combat-end timing window made the broadcast unreliable. Removing the option entirely is cleaner than continuing to ship a half-working channel. Group channels (Party / Raid / Battlegrounds via INSTANCE_CHAT) and Guild remain. Existingsocial.canSendCritsToSay = truesaved-vars are now silently ignored.
Changed
- Social broadcast is now Questie-style: one group channel + optional guild simulcast. Modeled on Questie's
_QuestieAnnounce.GetChatMessageChannel. Inside a battleground sends toINSTANCE_CHAT(when in a group), in a raid sendsRAID(orINSTANCE_CHATfor LFR), in a party sendsPARTY(orINSTANCE_CHATfor LFG dungeons).GUILDis added as an additional simulcast when toggled and you're in a guild. No more "blast to SAY + GUILD + PARTY all at once."
Versioning
- Going forward CritMatic follows strict semver. The setting removal drives the MAJOR bump from 5.5.11 to 6.0.0. Past releases (5.5.x) stayed in the patch slot regardless of feature additions; that's the historical reason 6.0.0 looks like a big jump from a small change.
[v5.5.11-release] - 05/09/2026
Fixed
- Crit Log size now persists across /reload and relog: the window's user-resized width/height was being clobbered on every show by a hardcoded
SetSize(300, 153)inModules/CritLog.luathat ran AFTERApplyStatushad restored the saved dimensions. The save path (theStopMovingOrSizinghook) was always working; the read path was just being overwritten one line later. Replaced withSetSize(sizePos.size_x or 700, sizePos.size_y or 500)so the saved dimensions survive. - Right-click "Open Changelog" menu item on the CritMatic icon now actually opens the changelog: the menu was calling
Critmatic:ShowChangeLog()(capital S) but the function is defined asCritmatic.showChangeLog(lowercase). The menu item was silently dead. One-character fix inModules/CritLog.lua.
Changed
- In-game changelog popup now shows only the latest 3 releases: the popup (
Modules/ChangeLogPopUp.lua) previously accumulated every version going back to v0.3.6.2.5 from late 2023, which made the auto-popup-on-upgrade dialog a wall of irrelevant ancient bullets. It now shows v5.5.11, v5.5.10, v5.5.9 only, plus a "For the full version history see CHANGE_LOG.md on GitHub or CurseForge." pointer.CHANGE_LOG.mdkeeps the full history for the CurseForge project page. Going forward each release prepends the new entry and drops the oldest so the popup stays at 3.
Added
release.shpackager wrapper now lives in the repo (was an untracked helper at/tmp/critmatic-release.shwhich macOS clears on reboot). Sources.envand execs the BigWigs packager..envitself stays untracked.
[v5.5.10-release] - 05/08/2026
Added
- Buy Me A Coffee link in General settings: the General tab now has a Support group with the Discord link plus an optional Buy Me A Coffee link, and a By group showing the author. Same copy-only field pattern as the Discord link, completely optional.
Changed
- General tab reorganized into Support and By groups: Discord and Buy Me A Coffee live in the new Support group; the author credit lives in the new By group. The General toggles above are unchanged.
- Localization parity restored across all 11 locales: deDE, esES, esMX, frFR, itIT, koKR, ptBR, ruRU, zhCN, zhTW now translate every option string introduced in v5.5.8 / v5.5.9 / v5.5.10 (Send Crits to Say, Lock Crit Log Position, Buy Me A Coffee link, Support / By group headings). All 11 locale files now have 153 keys.
Fixed
- Send Crits to Say no longer broadcasts inside instances: the /say toggle is now gated on
not inInstance, so dungeon, raid, battleground, and arena groups do not see your /say spam even if the toggle is on. Open-world / city /say is unchanged. critFormat/critHealFormatdefaults switched from{star}to{rt1}: these AceDB defaults sat on{star}while the live broadcast inCritMatic.luaalready hardcodes{rt1}. The defaults are not currently consumed by the broadcast, so user-visible behavior is unchanged, but the defaults now match the locale-safe convention so any future code path that reads them will not regress non-enUS clients.
Updated
- In-game changelog popup refreshed: the popup that opens on a fresh install / version bump (
Modules/ChangeLogPopUp.lua) had been stuck at v0.4.3.0 since January and missed every v5.5.x release note. It now lists v5.5.0 through v5.5.10. The release skill (see~/.claude/skills/critmatic-release/) is set up so future releases keep both thisCHANGE_LOG.mdand the in-game popup in sync.
[v5.5.9-release] - 05/08/2026
Added
- Lock Crit Log Position toggle (General tab): new option to lock the window so a normal click+drag is ignored. Hover the toggle for a tooltip explaining the override: when locked, hold Ctrl while dragging to move the window. Default off, so existing setups keep working unchanged.
- Full-width drag handle: the entire top strip of the Crit Log window is now a drag handle, not just the small text label. Click and drag anywhere along the header, the side borders, or the gold-ringed CritMatic icon to move the window.
Changed
- Tighter Crit Log row spacing: each spell row now sizes to its own content (count of visible stat lines) instead of a fixed 60 px. Damage-only and heal-only spells take roughly half the vertical space, hybrid spells with all four stat lines keep the room they need. Net effect is a much denser list.
Fixed
- Right-click menu / tooltip on the gold-ringed icon: with the new full-width drag handle the title strip overlapped the icon and intercepted some of its mouse events. The icon is now explicitly raised above the title-bar handle so right-click (Open Settings, Open Changelog, Lock / Unlock, Reset Position, Hide) and the hover tooltip work again.
[v5.5.8-release] - 05/07/2026
Added
- Track Crits Only option (General settings): opt-in toggle that records only critical hits and critical heals. Skips normal hits, normal heals, DoT/HoT ticks, and bandage ticks setting new highest values. Off by default.
- Full localization for every CurseForge-supported client: every locale file (
deDE,esES,esMX,itIT,koKR,ptBR,ruRU,zhCN,zhTW) now ships a complete translation of all options and messages. Previously onlyenUSandfrFRhad real translations and the other 9 were stubs that fell back to English.frFRwas also brought up to parity with the new options strings.
Fixed
- Battleground opt-out was bypassed: disabling
Send Crits to Battlegroundshad no effect becauseIsPartyLFG()is true inside BGs and the next branch sent the message anyway. Each chat target now picks one channel and respects exactly one opt-out, no fallthrough. - Raid opt-out fell through to PARTY: disabling
Send Crits to Raidwhile in raid silently tried to send to PARTY chat (which goes nowhere when in a raid). Same restructure fixes this. - Locale-safe chat broadcast: the social broadcast prefix changed from
{star}(which only renders the gold star on enUS clients) to{rt1}, so the icon now shows correctly on every locale. - Possible nil error in tooltip code:
castTime > 0could throw "attempt to compare nil with number" whenGetSpellInforeturned nil castTime on certain Retail 11.x spells. Guarded with a nil check. - Tooltip hooks now guarded:
hooksecurefunc(GameTooltip, "SetSpellBookItem", ...)could error at load on Retail 11.x where the method may not exist. BothSetActionandSetSpellBookItemhooks now check for the method before installing. - Version broadcast misuse:
BroadcastVersioncould callSendCommMessagewith channelPARTYwhile not in a group at all (only guild was checked). Now gated onIsInGroup(). - GROUP_ROSTER_UPDATE comm spam: roster events fire frequently in any group activity; each fire used to broadcast immediately. Now coalesced to one broadcast per 5 seconds.
- Self-cast heals not tracked:
destGUID ~= UnitGUID("player")filtered out every self-target event, so paladin/druid/priest self-heal crits never updated highest values. Self-heals are now recorded; self-damage stays excluded. - Broken string fallback in version comparison: lexical compare of version strings (
"0.5.10.0" > "0.5.9.0") returned wrong answers. Removed the dead fallback path;compareVersionsis the single source of truth. compareVersionswas a global: moved insideOnInitializeas alocal functionand reordered before its first use./cmhelplines used bareprint: the first line usedself:Print(with[CritMatic]prefix) and the rest usedprint(no prefix). All lines now useself:Printfor consistent formatting.- Packager bundled dev-only files into the upload: the BigWigs packager looks for
.pkgmeta(no extension) orpkgmeta.yaml(no leading dot), not.pkgmeta.yaml. Renamed and added anignore:block, so the addon ships only the user-facing files. Zip dropped from 2.3 MB to 1.3 MB.
[v5.5.7-release] - 04/22/2026
Fixed
- CritMatic icon rendering behind the Crit Log window: the three icon textures (black circle, CritMatic icon, gold ring) had
SetParent(UIParent)calls — a workaround from the oldBACKGROUND-strata days that lifted the textures above the window. With the window now atMEDIUMstrata, those reparented textures ended up at UIParent's lower frame level and got covered by the window. Removed the reparenting so the textures inheritcritmatic_icon_frame's strata/level (child of the main frame) and render above it normally.
[v5.5.6-release] - 04/22/2026
Fixed
- Right-click menu rendered behind the Crit Log window (retail 11.0): v5.5.5 left the widget at
FULLSCREEN_DIALOGstrata (set by the AceGUI constructor), butMenuUtil.CreateContextMenucreates menus atDIALOG, so the menu was stacking underneath the window. Lowered the widget toMEDIUMstrata (standard addon default) so context menus, tooltips, and popups render above it. - Inner scroll area not following the outer frame on resize: the ScrollFrame was hardcoded to
SetSize(250, 120)and anchored only TOPLEFT, so resizing the window left the spell list stuck at a fixed size. The scroll container is now anchored to both TOPLEFT and BOTTOMRIGHT (with room for the sizer and scrollbar), and the scroll child width tracks the container viaOnSizeChanged. Spell rows now anchor TOPLEFT + TOPRIGHT, so they span the full available width at any frame size.
[v5.5.5-release] - 04/22/2026
Fixed
- Crit Log window not movable/resizable on retail 11.0 (#22 follow-up): the frame was forced to the
BACKGROUNDstrata and then:Lower()-ed at the end of setup, which put it behind Blizzard's default UI. Overlapping default frames intercepted mouse input, soRegisterForDragand the corner/edge sizers never received clicks. Removed the override; the widget now stays at the strata the Constructor set and drag + resize work again.
[v5.5.4-release] - 04/17/2026
Fixed
- Retail 11.0 context menus and hover (#22): right-click context menus on spell rows and the CritMatic icon no longer error with
EasyMenu (a nil value); they now useMenuUtil.CreateContextMenuon retail with anEasyMenufallback for Classic/TBC/Wrath. Spell-row hover highlight no longer errors withSetBackdrop (a nil value)— the row frame now usesBackdropTemplate. - Open Settings menu item: switched to
Settings.OpenToCategorywith anInterfaceOptionsFrame_OpenToCategoryfallback so the menu entry works on retail 11.0+.
[v5.5.3-release] - 04/13/2026
Fixed
- frFR typo: corrected
valeures→valeursin the Change Log font reset description (confirmed by @Surfingnet on #21).
[v5.5.2-release] - 04/13/2026
Added
- French (frFR) localization contributed by @Surfingnet (#21) — full translation of all 134 strings, including the v5.5.0 additions (ignored spells panel, right-click context menus).
[v5.5.1-release] - 04/13/2026
Fixed
- Login crash on Crit Log creation (#20): removed stray
RegisterForClickscalls on non-Button frames introduced in v5.5.0. Right-click context menus on spell rows and the CritMatic icon continue to work viaOnMouseUpas before.
[v5.5.0-release] - 04/12/2026
Added
- Spell icons in alert notifications: the "New Crit!" popup now shows the spell icon with a matching bounce animation.
- Resizable Crit Log: drag the corner/edge to resize the Crit Log widget.
- Right-click context menus: right-click any spell in the Crit Log to Ignore it or Delete its data. Right-click the CritMatic icon for quick access to Settings, Lock/Unlock, Reset Position, and Hide.
- Ignored Spells settings panel: manage ignored spells from
/cmoptions instead of slash commands — select from a dropdown, remove individual spells, or clear all. - Hover highlights: spell entries in the Crit Log highlight on mouseover.
Improved
- Tooltip performance: per-spell max values are now cached instead of rescanning all data on every tooltip hover.
- Spell icon accuracy: icons are stored at record time, fixing wrong-icon display for spells with shared names across ranks.
[v5.4.1-release] - 04/12/2026
Added
- Crit Log toggle in options panel: You can now show/hide the live Crit Log widget from
/cmGeneral Settings instead of needing the/cmcritlogslash command.
[v5.4.0-release] - 04/12/2026
Changed
- License changed to All Rights Reserved. CritMatic is now proprietary software. No part of this addon may be copied, modified, or redistributed without express written permission from the copyright holder.
- Updated README with current feature list, macro tooltip support, and license notice.
[v0.5.3.2-release] - 04/11/2026
Fixed
- Macro tooltips (issue #19): CritMatic's crit/hit lines now appear on action-bar macros that cast a tracked spell. The tooltip hook previously bailed out whenever
GetActionInforeturned"macro"instead of"spell"; it now resolves the macro to its current spell viaGetMacroSpell(slot)and proceeds normally. Cast-sequence and conditional macros (/cast [mod:shift] X; Y) reflect whichever spell would fire next. Thanks @Alessandro-Barbieri.
[v0.5.3.1-release] - 04/10/2026
Fixed
- Interface directive now uses comma-separated multi-version format (
110207, 38000, 20505, 11508) so the BigWigs packager correctly tags the CurseForge release with all four game flavors (Retail, Titan Reforged, TBC, Classic Era). The v0.5.3.0 upload was only tagged as 11.2.7 because the space-separated form tripped the packager's parser.
[v0.5.3.0-release] - 04/10/2026
Fixed
- Tooltip overflow with StatWeightsClassic (issue #17): CritMatic's crit/hit lines no longer render outside the spell tooltip frame when used alongside other tooltip addons.
Show()is now called exactly once per render, and only when CritMatic actually added lines. - Silent data loss for large crits: raised
MAX_HITceiling from 40000 to 1e9 so Wrath/Retail endgame crits are recorded instead of silently dropped. - Operator-precedence bug in combat log handler: player-sourced events were bypassing the
destGUID,eventType, andamount > 0filters due to missing parentheses around theorclause. - Nil crashes in combat log handler: added guards for
baseSpellName,destGUID, andamountto prevent errors on unusual event shapes. RANGE_DAMAGEevents are now properly tracked (were in the outer filter but had no extraction branch).- Reset buttons in options panels no longer pollute the shared defaults table by reference. All
Reset*ToDefaultfunctions now useCopyTableagainstCritmatic.db.defaults.
Changed
- Optimized ignored-spells/targets filtering from O(N) per combat event to O(1) hash lookups.
- Added compatibility shims for
C_Spell.GetSpellCooldownandGetSpellBookItemInfo(Retail 11.x). - Unregistered
PLAYER_LOGINandGROUP_JOINEDevents (registered but never handled). - Raw-source installs now load cleanly on Classic Era, TBC, and Wrath/Titan clients without the "out of date" warning (main
## Interface:directive now lists 110207 38000 20505 11508). Thanks @Alessandro-Barbieri (#18).
Removed
- Dead function
IsSpellInSpellbook(zero callers). - Dead DB field
dataCleared.
[v0.5.2.1-release] - 04/09/2026
Fixed
- Split Wrath Classic (30403) and Titan Reforged (38000) into separate TOC interface directives so the BigWigs packager can build both flavors
[v0.5.2.0-release] - 04/09/2026
Added
- X/Y percentage sliders for alert text position (configurable in Alert settings, with Reset and Test buttons)
[v0.5.1.0-release] - 01/17/2026
Fixed
- update interface versions to current (Classic Era 11508, Wrath 38000)
[v0.5.0.0-release] - 01/16/2026
Added
- missing localization line
Fixed
- TBC fix's
- invalid Interface-Wrath version (38000 -> 30403)
Changed
- Wrath titan version to 38000
[v0.4.3.0-release] - 01/14/2026
Updated:
- Updated the in-game changelog popup to show recent release notes.
[v0.4.2.9-release] - 01/12/2026
Fixed:
Fixed tooltip conflict with StatWeightsClassic - Removed redundant tooltip Show() call that caused CritMatic tooltip info to disappear when used alongside StatWeightsClassic addon.
Fixed WoW 11.0 compatibility - Removed deprecated InterfaceOptionsList_DisplayPanel hook that was causing errors in modern WoW clients.
[v0.4.2.8-release] - 12/25/2023
[v0.4.2.7.5-release] - 12/25/2023
[v0.4.2.7.4-release] - 12/16/2023
[v0.4.2.7.1-release] - 12/10/2023
[v0.4.2.7-release] - 12/6/2023
Added:
- Added options for maxMessages, startDelay, and fadeTime settings also a way to reset them.
[v0.4.2.5-release] - 12/6/2023
Added:
Added alert notification preview feature in options under Alert
Chat customization is coming next.