Wowpedia

We have moved to Warcraft Wiki. Click here for information and the new URL.

READ MORE

Wowpedia
Advertisement

Retrieve info about a certain debuff on a certain unit.

name, rank, iconTexture, count, debuffType, duration, timeLeft  =  UnitDebuff(unitID, debuffIndex [, removable]);

Parameters

Arguments

unitId
String - The unit you want debuff information for.
index or name
Number or string - The index or name of the debuff to retrieve information for. Indices range from 1 to 40.
removable
Boolean - (optional) - If 1, only debuffs removable by player will be returned; debuffIndex still begins at 1.

Returns

name
String - The name of the spell or effect of the debuff, or nil if no debuff was found with the specified name or at the specified index. This is the name shown in yellow when you mouse over the icon.
rank
String - The rank of the spell or effect that caused the debuff. Returns "" if there is no rank.
texture
String - The identifier of (path and filename to) the indicated debuff, or nil if no debuff
count
Number - The number of times the debuff has been applied to the target. Returns 0 for any debuff which doesn't stack. ( Changed in 1.11 ).
debuffType
String - The type of the debuff: Magic, Disease, Poison, Curse, or nothing for those with out a type.
duration
Number - The full duration of the debuff in seconds; nil if the debuff was not cast by the player.
timeLeft
Number - Time until the debuff expires, in seconds; nil if the debuff was not cast by the player.

Example

Retrieves the name, rank and icon texture of the first debuff on the player's pet:

name, rank, texture = UnitDebuff("pet", 1);


Macros

Macro to print a list of the target's debuffs:

/run for i=1,40 do local D= UnitDebuff("target",i); if D then print(i.."="..D) end end


Macro to retrieve focus's remaining debuff time for any of the three Mage Poly spells and announce it via "SAY":

/run for i=1,40 do local n,_,_,_,_,_,x,_,_=UnitDebuff("focus",i);if (n=="Polymorph")or (n=="Polymorph(Pig)")or (n=="Polymorph(Turtle)")then SendChatMessage(format("%.0f",-1*(GetTime()-x)).." secs left on "..UnitName("focus").."'s CC!","EMOTE");end end 


History

  • Patch 1.9 introduced the removable argument.
  • Patch 2.0 extended the maximum number of debuffs to 40 (from 16).
  • Patch 2.0 introduced name and rank return values.
  • Patch 2.1 introduced duration and timeLeft return values.

See Also

UnitBuff
FAQ: Why doesn't UnitDebuff accurately report the spell I just cast?
HOWTO: Identify Buffs Using Textures
List of known buff and debuff effects that can be queried
Advertisement