Get an Epic Experience with Premium

Debuff Filter

Buffs & Debuffs Login to Add Favorites
  • World of Warcraft
  • 3,912 Monthly Downloads
  • Supports: 6.1.0
  • 494,298 Total Downloads
  • Updated 03/05/2015
  • Created 08/01/2006
  • 633 Favorites
  • Project Site
  • Comments
  • Release Type: Inactive
  • License: All Rights Reserved
  • Newest File: Debuff Filter

About Debuff Filter

This addon filters out the debuffs and buffs that you don't care about, and places them anywhere on screen.  If you're a melee class, you can filter out everything but CoR, FF and Sunder.  If you're a caster, you can just show debuffs like CoE and Winter's Chill.  Healers can filter out everything but their buffs and HoTs, etc.

This addon can also display cooldowns.  It can show all listed cooldowns, or it can show spells and items that are not on cooldown and that are available for use.  You can also make these cooldown buttons clickable.  In other words, you can create more toolbars.

Besides filtering your current target, you can filter buffs/debuffs on yourself, and buffs/debuffs on the Focus target.  Buffs/debuffs are grouped into frames.  You can duplicate frames, so you can have more than 1 frame for your target.  You can also create frames for other valid targets, like pet, raid1, targettarget, etc.

To configure the mod once it's installed, type /dfilter -- you should see a simple UI.  To add a filter, select "Frame Buffs" on the left hand side, then select your target from the dropdown menu (Target, Player, Focus), then select the Buff or Debuff tab, then type in the name of your buff/debuff and press enter.  You won't see the list of buffs/debuffs unless you enlarge the window, which you can do by dragging the bottom right corner.

If you're not sure how to set the Focus target, you can either type /focus <target> or go into keybindings and bind keys to "Focus Target" and "Target Focus" under Targeting Functions.

Note: make sure "Show Frame" is checked for your target type, or you won't see anything get filtered.

To move the frames, select "General Settings" on the left hand side, then check "Show Backdrop", and then shift-click and drag one of the backdrops.

If you'd like to change the orientation of any frame, select "Frame Layout" on the left hand side, then select the direction under the dropdown Grow menu, and then configure how many buffs or debuffs you'd like to see per row.  The layout settings are as follows:

Right-Down, Right-Up: grows to the right, new rows start below or above the first row.
Left-Down, Left-Up: grows to the left, new rows start below or above the first row.
If the "rows" setting is set to 1, you'll have vertical orientation.

To change the orientation of the buff duration time, ctrl-right click the frame you'd like to configure.

Settings are stored on a per-character/server basis, so it should work fine if you have alts.

2015-03-05 (
- 6.x UnitId fix (thanks, stellschraube!)
- Updated TOC

2013-9-13 (
- Updated TOC

2013-9-9 (
- Fixed dual spec lua changes
- Updated TOC

Much thanks to porkbone for letting me maintain this!

2012-9-1 (3.22):
- applied fix for 5.0 update (thanks alpair!)
- updated TOC

Note: I am no longer actively updating Debuff FIlter. If someone would like to continue to maintain it, please contact me on Curse.

2011-6-19 (3.31):

- works properly with latest alpha version of masque (previously ButtonFacade) -- in version 3.30, it wouldn't work unless both ButtonFacade and Masque were installed and enabled (I think)
- can right-click cancel buffs
- can have timers as 1m rather than 1:00
- can control space between icons
- each frame has own 'hide in combat' option
- can change addon's transparency
- can select option to display most enrage buffs
- can remove color border on debuffs

2011-4-29 (3.21):

- Updated .toc file so that Debuff Filter won't appear out of date for patch 4.1

2011-4-6 (3.20):

- Fixed bug where sometimes profiles stopped switching when changing talents.

2011-2-7 (3.10):

- Can show ghost timers now.  When a (de)buff/cooldown finishes, the icon becomes faded for three seconds.
- Can disable the flash overlay that occurs on cooldowns now.
- Can show abbreviated names beside (de)buffs/cooldowns now.
- Can replace a (de)buff's icon with the icon of an item that exists in your bags.  If that item is removed, the (de)buff's new look remains.
- Certain cooldowns, that are about to start but haven't yet, like a priests inner focus won't blink link crazy anymore.
- Could not fix bug where sometimes profiles aren't switched when changing talents.  Please do manually instead.

2010-12-25 (3.04):

- Fixed bug where you cannot create a new profile, if ButtonFacade is installed.

2010-12-24 (3.03):

- Fixed bug where addon would not work and you get error message "LibDualSpec-1.0 requires LibStub".  If another addon already loaded LibStub this error would not occur.
- Fixed bug where you change talent specs and you get error message "buttonfacadeGroup is nil".  This would occur if addon ButtonFacade was not installed.

2010-12-16 (3.02):

- Fixed bug where addon would not show anything if it was installed on a computer with no setup file (setup file is DebuffFilter.lua in WTF folder)
- Included missing library.  If another addon has this library addon would work fine.
- Hopefully fixed bug where addon would not show buffs/debuffs on game versions that were not english.

2010-12-15 (3.00):

- Can select to show debuffs/buffs only on friends or only on enemies
- Can create frames that show your cooldowns -- show all listed cooldowns, spells and items that are not on cooldown and that are available for use, or show cooldowns a certain number of seconds before they expire
- Can create frames with spells and items that you can cast by clicking -- this means you can create more toolbars
- Added profiles, which can automatically switch when you change talent specs
- Can enable or disable addon in game
- Can select threshold when buff/debuffs/cooldowns display time in fractions of a second

2010-11-26 (2.22):

- Fixed bug where stealable buffs were not showing
- Fixed interface bug where the DEL tooltip still showed even when interface was closed.  It would even delete if you clicked on it, so you may accidentally delete all your (de)buffs.

2010-11-25 (2.21):

- Added option to remove black box that surround timers

2010-11-23 (2.20):

- Fixed bug that displayed red border around every debuff, will now display the correct color for the debuff
- Can now filter (de)buffs according to their duration, or show them only when they have a certain number of seconds left
- Black background is shown behind each time, making it easier to read
- Implemented my own sorting algorithm, since the previous one greatly decreased FPS
- Will now display (de)buffs correctly on targettarget when its not a raid member
- Can adjust how quickly tenths of a second are shown (for example, every 0.3 seconds), below 5 seconds, or not show tenths of a second at all
- Can add the debuffs to the buffs frame -- and add the buffs to the debuffs frame
- Hopefully reduced CPU usage time

2010-11-1 (2.10):

- Can duplicate frames, so you can have more than 1 frame for your target
- Can copy (de)buffs from other frames
- Can show certain groups of (de)buffs: mine, nonraider, magic, poison, disease, curse, stealable
- Can sort (de)buffs alphabetically or by time left
- Can reverse display of cooldown
- Can display both cooldown and time
- Can lock frames and show tooltips at same time (click-thru won't occur unless show tooltips is disabled)

2010-10-14 (2.00):

- Can scale each frame independently, or scale all the frames like before
- Added frames for targettarget
- Ability to add frames for any type of target, like pet, targettargettarget, boss1, raid4...
- New dialog to configure options
- Any frame can show all buffs or debuffs
- ButtonFacade support
- Updated for Cataclysm


2010-09-28 (1.99):

Will now display debuffs/buff on PTR.


2010-09-19 (1.98):

There were limits on the number of debuffs/buffs that were
scanned.  So sometimes the target/player/focus had a
debuff/buff that was not shown.


2009-05-25 (1.97):

Added frFR (Nya) and koKR (metalchoir) localization.
Fixed a bug that occurred when no localized version was found.


2009-04-28 (1.96):

Hopefully fixed the self-applied/duration bug!
Included a deDE localization, provided by Juido

Updated for 3.1.


First Previous Page 7 of 38 Next Last
  • #464
    disappear problem

    Debuff filter has a crash with 'masque' (button facade) addon.

    DF is disappeared when I installed it.

    plz fix it.

  • #466

    Afaik only version 3.31 from the project site works with masque.

  • #470

    3.31 works when you remove the line "GetInventorySlotInfo ("RangedSlot")" from the debuff filter lua. To get rid of other lua errors you maybe have to update the libraries inside the lib folder. In case any other addon provides updated versions of these libraries debuff filter also uses them. You can then also update the toc number to 50001 inside the toc file, other wise you have to check "load outdated addons".


  • #469

    But  v3.31 doesn't work on MOP..

    So.. couldn't fix it?

    Recently Masque dev said disappear thing is a Debuf filter prob.

    I really need Debuff filter and masque both!!!

    Last edited by maxfullpain on 10/28/2012 6:35:40 AM
  • #468

    379x Masque-40300\Core\Button.lua:373: attempt to call method "SetJustifyH" (a nil value)
    Masque-40300\Core\Button.lua:373: in function <Masque\Core\Button.lua:372>
    Masque-40300\Core\Button.lua:549: in function <Masque\Core\Button.lua:507>
    Masque-40300\Core\Groups-파티.lua:190: in function "AddButton"
    DebuffFilter\DebuffFilter-3.22.lua:2518: in function "DebuffFilter_Frame_Update"
    DebuffFilter\DebuffFilter-3.22.lua:1799: in function <DebuffFilter\DebuffFilter.lua:1796>

    Button = DebuffFilterButtontargetDebuffs1 {
     0 = <userdata>
     __MSQ_BaseFrame = <unnamed> {}
     __MSQ_NormalSkin = <table> {}
     SetNormalTexture = <func> =[C]:-1
     __MSQ_NormalTexture = <unnamed> {}
     border = DebuffFilterButtontargetDebuffs1Border {}
     __MSQ_Background = false
     count2 = DebuffFilterButtontargetDebuffs1Count2 {}
     cooldown = DebuffFilterButtontargetDebuffs1Cooldown {}
     count = DebuffFilterButtontargetDebuffs1Count {}
     target = "target"
     DBFbuttonName = DebuffFilterButtontargetDebuffs1ButtonName {}
     __MSQ_Backdrop = <unnamed> {}
     icon = DebuffFilterButtontargetDebuffs1Icon {}
     time_frame = DebuffFilterButtontargetDebuffs1Duration {}
    ButtonData = <table> {
     AutoCastable = false
     Pushed = false
     Checked = false
     Icon = DebuffFilterButtontargetDebuffs1Icon {}
     Duration = DebuffFilterButtontargetDebuffs1Duration {}
     Border = DebuffFilterButtontargetDebuffs1Border {}
     Flash = false
     FloatingBG = false
     HotKey = false
     Count = false
     Highlight = false
     AutoCast = false
     Name = false
     Cooldown = DebuffFilterButtontargetDebuffs1Cooldown {}
     Disabled = false
    SkinID = "Dream"
    Gloss = 0
    Backdrop = true
    Colors = <table> {}
    Skin = <table> {
     HotKey = <table> {}
     Disabled = <table> {}
     Duration = <table> {}
     Border = <table> {}
     Flash = <table> {}
     AutoCast = <table> {}
     Masque_Version = 40300
     Icon = <table> {}
     Normal = <table> {}
     Pushed = <table> {}
     Gloss = <table> {}
     Author = "JJSheets, StormFX"
     Backdrop = <table> {}
     Count = <table> {}
     Name = <table> {}
     Version = "5.0.387"
     Highlight = <table> {}
     AutoCastable = <table> {}
     Checked = <table> {}
     Shape = "Square"
     Cooldown = <table> {}
    xScale = 0.83333334473121
    yScale = 0.83333334473121
    Normal = nil
    (for generator) = <func> =[C]:-1
    (for state) = <table> {
     HotKey = "RIGHT"
     Duration = "CENTER"
     Name = "CENTER"
     Count = "RIGHT"
    (for control) = "Duration"
    Layer = "Duration"
    Region = DebuffFilterButtontargetDebuffs1Duration {
     0 = <userdata>
     time = DebuffFilterButtontargetDebuffs1DurationString {}
     DBFtimeLen = 0
     DBFframetexture = DebuffFilterButtontargetDebuffs1DurationBckgrnd {}
     DBFisTimeVisible = false
    Skins = <table> {
     Blizzard = <table> {}
     Dream = <table> {}
     Zoomed = <table> {}
    type = <func> =[C]:-1
    __MTT = <table> {}
    GetScale = <func> @Masque\Core\Button.lua:46
    SkinBackdrop = <func> @Masque\Core\Button.lua:82
    RemoveBackdrop = <func> @Masque\Core\Button.lua:70
    SkinNormal = <func> @Masque\Core\Button.lua:159
    pairs = <func> =[C]:-1
    Layers = <table> {
     AutoCastable = "OVERLAY"
     Pushed = "BACKGROUND"
     Disabled = "BORDER"
     Highlight = "HIGHLIGHT"
     Border = "ARTWORK"
     Checked = "BORDER"
     Icon = "BORDER"
     Flash = "ARTWORK"
    SkinTexture = <func> @Masque\Core\Button.lua:317
    SkinGloss = <func> @Masque\Core\Button.lua:244
    RemoveGloss = <func> @Masque\Core\Button.lua:234
    Justify = <table> {
     HotKey = "RIGHT"
     Duration = "CENTER"
     Name = "CENTER"
     Count = "RIGHT"
    SkinText = <func> @Masque\Core\Button.lua:372
    SkinFrame = <func> @Masque\Core\Button.lua:397
    UpdateSpellAlert = <func> @Masque\Core\Button.lua:427
    Hooked = <table> {
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true
     (null) = true

  • #463

    Latest LUA error I have is:

    10x libs\LibDualSpec-1.0\LibDualSpec-1.0-9.lua:321: attempt to call global "GetActiveTalentGroup" (a nil value)
    libs\LibDualSpec-1.0\LibDualSpec-1.0-9.lua:321: in function <libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:319>


    I've even downloaded the latest Libduelspec & Ace3 & the error is still there.

  • #462

    Message: ...ebuffFilter\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:321: attempt to call global 'GetActiveTalentGroup' (a nil value)
    Time: 10/15/12 14:49:10
    Count: 10
    Stack: ...ebuffFilter\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:321: in function <...ebuffFilter\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:319>

    Locals: (*temporary) = nil
    (*temporary) = "attempt to call global 'GetActiveTalentGroup' (a nil value)"
    lib = <table> {
    EnhanceDatabase = <function> defined @Interface\AddOns\DebuffFilter\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:212
    mixin = <table> {
    _EnhanceDatabase = <function> defined @Interface\AddOns\DebuffFilter\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:201
    options = <table> {
    IterateDatabases = <function> defined @Interface\AddOns\DebuffFilter\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:310
    EnhanceOptions = <function> defined @Interface\AddOns\DebuffFilter\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:272
    registry = <table> {
    eventFrame = <unnamed> {
    talentsLoaded = true
    registry = <table> {
    (null) = <table> {

  • #461

    It's not working for me anymore :( Just logged in today and it wasn't working Not sure why. Update?

  • #459

    I had e few lua errors concerning the libraries when I first installed the addon. After I installed the latest version of Gladius one Error vanished. So I assumed that gladius provided an updated version of a library also used by debuff filter.

    For testing purposes I copied all libraries from Gladius to Debuff filter (Debuff filter\Libs),let him replace existing files and removed Galdius completely. Only one error concerning the LibDualSpec was remaining (the one baljuin also has).Gladius doesnt have this library at all.

    Then I found an updated version of that Libudalspec lib on Curse ( After I replaced the old lib with that one I had no lua errors at all. Maybe the author can replace the outdated libs in the zip file :) 

    Another question: Is the 3.22 version based on the 3.31 on the project site?

    Last edited by Iisak on 10/4/2012 3:22:32 AM
  • #465

    work for me.. tnx...

  • #458

    Could you add that we can change   time-text to the center of icon? Also we can change set time-text size ? Thanks.

  • #457

    Please add an option to ignore the expire time on some of the Spells in the list.  On my DK I have the spell conversion, which does not have an expire time.  If I use the expire filter, it doesn't show up.  So basically, if I want to see that spell pop up, I have to take off the expire filter, which means either im going to be looking at buffs for a long time, or I'm just gna have to leave some longs buffs out.  I would like to see Horn of Winter when it expires in less than 30 secs while still having Conversion. Smile

    Last edited by Desmordo on 9/28/2012 3:38:53 PM
  • #456

    Can i change the icon color?

  • #455

    Working completely (including debuffs) when using version 3.31 and removing the line GetInventorySlotInfo ("RangedSlot").

    The version 3.31 can be downloaded here:
    And there is a video that shows how to remove the line:

  • #453

    i have a problem with glyphs. whenever set, unset, change glyph, the next error message occurs

    libs\LibDualSpec-1.0\LibDualSpec-1.0-9.lua:321: attempt to call global "GetActiveTalentGroup" (a nil value)
    libs\LibDualSpec-1.0\LibDualSpec-1.0-9.lua:321: in function <libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:319>

  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Gamepedia Free-shirt Giveaway