Quartz
Quartz is a modular approach to a casting bar addon. An overview of (hopefully most of) the modules:
*Player
The core of Quartz is lightweight implementation of a standard casting bar, with configurable size, text and icon positioning, and colors.
*Target/Focus
Implementation of target and focus casting bars in similar fashion to the player cast bar.
*Buffs
Display of target and focus buffs and debuffs as duration bars.
*Flight
Hooks into FlightMap or InFlight to display the current flight progress on your casting bar.
*Global Cooldown
Displays a tiny spark-bar to show your Global Cooldown near the cast bar. Helpful for those who'd rather not squint at their action bars to see when they can cast again.
*Interrupt
Changes the color and text of your casting bar to help show that your cast has been interrupted (and show who interrupted it).
*Latency
Displays the amount of time spent between cast send and start events, in the form of a bar at the end of your casting bar, with optional text that displays the actual duration of the lag. This helps in canceling casts when they will not actually be interrupted, especially for users with consistently high pings.
*Mirror
Shows the 'basic' timers such as breath and feign death, as well as some 'odd' ones such as party invite time, resurrect timeout, and arena game start, and a framework for injecting custom timers into the bars.
*Range
Recolors the casting bar when your cast target moves out of range mid-cast.
*Swing
Displays a swing timer for your melee weapon as well as hunter autoshot.
*Timer
Allows for creating custom timers displayed on the mirror bars.
*Tradeskill Merge
Merges multiple casts of the same tradeskill item into one big cast bar.
Use /quartz to bring up the configuration menu.
-
View User Profile
-
Send Message
Posted Jan 28, 2026Plzz udate this!! The only addon I need for midnight is this
-
View User Profile
-
Send Message
Posted Jan 27, 2026please update for 12.0.1 Midnight.
-
View User Profile
-
Send Message
Posted Jan 27, 2026Have been using Quartz for a decade or so. Really sad to not see it getting any updates for Midnight. Tried other castbar addons.. none of them is really good, lot of bugs, etc. Any news regarding an update for Midnight?
-
View User Profile
-
Send Message
Posted Jan 28, 2026In reply to Fistao: I'm not the author nor do I have extensive experience with WoW AddOns (a little here and there) but I did get it to work to a limited extent. Non-player castbars work with a basic duration text display. I did get it to change the bar border when a spell is interruptible but dynamically changing the color is proving difficult because the frame is getting tainted at some point and wont accept secret values anymore. (And I'm not really sure how to track down why.)
Part of that was completely replacing the custom statusbar frame with the default one since custom frames can't accept secret values.
Fortunately, the player casts seem to be non-secret even during combat so the player castbar is largely functional.
At the end of the day an updated Quartz is likely going to require a major rewrite and some features may not be possible.
I'm not really sure if sharing my modified copy is 'okay'. The changes are more extensive than a quick 'swap this with this' fix.
-
View User Profile
-
Send Message
Posted Jan 28, 2026Well, I guess the code is GPL so nothing is stopping me from creating a fork. But I'm not sure I'm ready to do more than some 'quick' fixes.
-
View User Profile
-
Send Message
Posted Jan 30, 2026In reply to Silarn: would you be willing to share the changes for target castbar ? Friend and I will look through the code , and maybe find some more fixes. 2 more pairs of eyes can't hurt , can it ?
-
View User Profile
-
Send Message
Posted Jan 31, 2026In reply to Kloqan: https://github.com/Silarn/Quartz
-
View User Profile
-
Send Message
Posted Jan 26, 2026Going to be brutally honest, while I can get it to a state of mostly working with minimal LUA errors (though not none) there are a number of features that relied on being able to access values which are now considered 'secret' when in combat.
Anything that's not just passing a value through to a display element will probably not be possible in combat scenarios.
-
View User Profile
-
Send Message
Posted Jan 29, 2026In reply to Silarn: I would be interested in seeing the basic version if you can share.
-
View User Profile
-
Send Message
Posted Jan 26, 2026please update i loved the look of this addon
-
View User Profile
-
Send Message
Posted Jan 26, 2026updated the toc file and it sort of works but after I enter a battleground the quartz cast bar stops showing up. really hope it gets updated, I've been using quartz since the original TBC
-
View User Profile
-
Send Message
Posted Jan 25, 2026really REALLY hope that Quartz gets updated and works. without an enemy cast bar and debuff lines for my target, playing a lock really stinks
-
View User Profile
-
Send Message
Posted Jan 25, 2026Hi folks, will Quartz be updated for midnight (long-term)?
-
View User Profile
-
Send Message
Posted Jan 24, 2026Got Quartz working in combat with the Midnight patch (game version 12.0.0.65560) by editing World of Warcraft\_retail_\Interface\AddOns\Quartz\modules\GCD.lua
1. replace lines 105 to 122, this is the function GCD:CheckGCD
2. with this
function GCD:CheckGCD(event, unit, guid, spell)
if unit ~= "player" then
return
end
local start, dur
if C_Spell and C_Spell.GetSpellCooldown then
local cd = C_Spell.GetSpellCooldown(spell)
if not cd then return end
local cdStart = cd.startTime
local cdDur = cd.duration
-- EARLY SANITISATION
if type(cdDur) ~= "number" then
-- Blizzard hid the GCD → use fallback
start = GetTime()
dur = 1.5
else
start = cdStart
dur = cdDur
end
else
local cdStart, cdDur = GetSpellCooldown(spell)
if type(cdDur) ~= "number" then
start = GetTime()
dur = 1.5
else
start = cdStart
dur = cdDur
end
end
-- MIDNIGHT FIX: detect secret values via pcall
local ok = pcall(function()
return dur > 0
end)
if not ok then
-- fallback again just in case
start = GetTime()
dur = 1.5
end
-- SAFE COMPARISON
if dur > 0 and dur <= 1.5 then
starttime = start
duration = dur
gcdbar:Show()
end
end
3. you must still set line 2 of the file \World of Warcraft\_retail_\Interface\AddOns\Quartz\Quartz.toc to
## Interface: 120000,11508,20505,50503,110207
Enjoy! I've used Quartz for a long time, and a big "thank you" to the devs.
-
View User Profile
-
Send Message
Posted Jan 24, 2026In reply to arc909:
I think I have more lua errors with quartz now with this fix.
-
View User Profile
-
Send Message
Posted Jan 23, 2026not sure what to fix by now. Quartz works initialy but stops working in dungeons as soon as i join a m+ no castiing bars at all, not even the blizz ones.
-
View User Profile
-
Send Message
Posted Jan 24, 2026Same with arenas and bgs :(
-
View User Profile
-
Send Message
Posted Jan 22, 2026I made the changes and get the same Problem when use Bartender4 together with Quartz.......
Delete Quartz Bartender 4 works perfect !!
But ty for you work with the changes :-)
1x [ADDON_ACTION_FORBIDDEN] AddOn 'Bartender4' hat versucht die geschützte Funktion 'AceEvent30Frame:RegisterEvent()' aufzurufen.
[!BugGrabber/BugGrabber.lua]:583: in function '?'
[!BugGrabber/BugGrabber.lua]:507: in function <!BugGrabber/BugGrabber.lua:507>
[C]: in function 'RegisterEvent'
[Bartender4/libs/AceEvent-3.0-4/AceEvent-3.0.lua]:33: in function 'OnUsed'
[Bartender4/libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua]:132: in function 'RegisterEvent'
[Quartz/modules/Swing.lua]:110: in function <Quartz/modules/Swing.lua:100>
[C]: ?
[Bartender4/libs/AceAddon-3.0-13/AceAddon-3.0.lua]:66: in function <Bartender4/libs/AceAddon-3.0/AceAddon-3.0.lua:61>
[Bartender4/libs/AceAddon-3.0-13/AceAddon-3.0.lua]:523: in function 'EnableAddon'
[Bartender4/libs/AceAddon-3.0-13/AceAddon-3.0.lua]:536: in function 'EnableAddon'
[Bartender4/libs/AceAddon-3.0-13/AceAddon-3.0.lua]:626: in function <Bartender4/libs/AceAddon-3.0/AceAddon-3.0.lua:611>
-
View User Profile
-
Send Message
Posted Jan 23, 2026In reply to vilogity: May be prolem not Quartz , but Bartender? Do You think?... IMHO
-
View User Profile
-
Send Message
Posted Jan 24, 2026In reply to vilogity:
When using the addon DoNotVendor with Quartz in 12.0.0 after changing the table of contents to enable 120000, I get the same error in DoNotVendor as shown above.
The error is preceded by the BugGrabber line:
[Quartz/modules/Swing.lua]:110: in function <Quartz/modules/Swing.lua:100>
Line 100 is
self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
I suspect this line is crashing the Ace Addon and then reporting the next addon that is loaded as causing the error.
Remove Quartz and DoNotVendor also works fine.