WoW:API UnitDebuff: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
mNo edit summary
m (Move page script moved page API UnitDebuff to API UnitDebuff without leaving a redirect)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{wowapi}} __NOTOC__
{{wowapi}} __NOTOC__
Retrieve info about a certain debuff on a certain unit. This is essentially an alias of [[API_UnitAura|UnitAura]] with the "HARMFUL" filter applied.
name, rank, icon, count, debuffType, duration, expirationTime, unitCaster, isStealable, shouldConsolidate, spellId
  = UnitDebuff("unit", index or ["name", "rank"][, "filter"])


Retrieve info about a certain debuff on a certain unit.
== Arguments ==
;unitId : String - The [[API TYPE UnitId|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 - <small>''(optional)''</small> - If 1, only debuffs removable by player will be returned; debuffIndex still begins at 1.


name, rank, iconTexture, count, debuffType, duration, timeLeft  =  UnitDebuff(unitID, index or name [, removable]);
== 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.
== Parameters ==
;rank : String - The rank of the spell or effect that caused the debuff. Returns "" if there is no rank.
=== Arguments ===
;icon : String - The identifier of (path and filename to) the indicated debuff, or nil if no debuff
:;unitId : String - The [[API TYPE UnitId|unit]] you want debuff information for.
;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 ).
:;index or name : Number or string - The index or name of the debuff to retrieve information for. Indices range from 1 to 40.
;debuffType : String - The type of the debuff: Magic, Disease, Poison, Curse, or nothing for those with out a type.
:;removable : Boolean - <small>''(optional)''</small> - If 1, only debuffs removable by player will be returned; debuffIndex still begins at 1.
; duration : Number - The full duration of the debuff in seconds; nil if the debuff was not cast by the player.
 
; expirationTime : Number - Time at which the debuff expires (GetTime() as a reference frame).
=== Returns ===
; unitCaster : String - [[unitId]] reference to the unit that cast the buff/debuff.
:;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.
;isStealable : Boolean - 1 if it is stealable otherwise nil
:;rank : String - The rank of the spell or effect that caused the debuff. Returns "" if there is no rank.
;shouldConsolidate : Boolean - 1 if the buff should be placed in a buff consolidation box (usually long-term effects).
:;texture : String - The identifier of (path and filename to) the indicated debuff, or nil if no debuff
;spellId : Number - spell ID of the aura.
:;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 ==  
== Example ==  
Retrieves the name, rank and icon texture of the first debuff on the player's pet:
Retrieves the name, rank and icon texture of the first debuff on the player's pet:
<pre>name, rank, texture = UnitDebuff("pet", 1);</pre>
name, rank, texture = UnitDebuff("pet", 1);
 


== Macros ==  
== Macros ==  
Macro to print a list of the target's debuffs:
Macro to print a list of the target's debuffs:
<pre>/run for i=1,40 do local D= UnitDebuff("target",i); if D then print(i.."="..D) end end</pre>
/run for i=1,40 do local D= UnitDebuff("target",i); if D then print(i.."="..D) end end
<br>
Macro to retrieve focus's remaining debuff time for any of the three Mage Poly spells and announce it via "SAY":
<pre>/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
</pre>


== Notes ==
* UnitDebuff and other UnitAura-based queries may not be accurate immediately after casting a spells that applies an aura to its target.


== History ==
== History ==
Line 39: Line 38:
* Patch 2.0 introduced name and rank return values.
* Patch 2.0 introduced name and rank return values.
* Patch 2.1 introduced duration and timeLeft return values.
* Patch 2.1 introduced duration and timeLeft return values.
* Patch 3.0 changes this into an alias of UnitAura; durations are now available for all debuffs.
* Patch 3.1 changed "isMine" to "unitCaster". It is now possible for addons to retrieve the unitId that cast the buff/debuff.


== See Also ==
== See Also ==
 
: [[API_UnitAura|UnitAura]], [[API UnitBuff|UnitBuff]].
: [[API UnitBuff|UnitBuff]]
: [[Interface customization FAQ#Why doesn.27t UnitDebuff accurately report the spell I just cast|FAQ: Why doesn't UnitDebuff accurately report the spell I just cast?]]
: [[HOWTO: Identify Buffs Using Textures]]
: [[HOWTO: Identify Buffs Using Textures]]
: [[Queriable Buff effects|List of known buff and debuff effects that can be queried]]
: [[Queriable Buff effects|List of known buff and debuff effects that can be queried]]

Latest revision as of 04:47, 15 August 2023

WoW API < UnitDebuff

Retrieve info about a certain debuff on a certain unit. This is essentially an alias of UnitAura with the "HARMFUL" filter applied.

name, rank, icon, count, debuffType, duration, expirationTime, unitCaster, isStealable, shouldConsolidate, spellId 
 = UnitDebuff("unit", index or ["name", "rank"][, "filter"]) 

Arguments[edit]

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[edit]

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.
icon
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.
expirationTime
Number - Time at which the debuff expires (GetTime() as a reference frame).
unitCaster
String - unitId reference to the unit that cast the buff/debuff.
isStealable
Boolean - 1 if it is stealable otherwise nil
shouldConsolidate
Boolean - 1 if the buff should be placed in a buff consolidation box (usually long-term effects).
spellId
Number - spell ID of the aura.

Example[edit]

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

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

Macros[edit]

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

Notes[edit]

  • UnitDebuff and other UnitAura-based queries may not be accurate immediately after casting a spells that applies an aura to its target.

History[edit]

  • 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.
  • Patch 3.0 changes this into an alias of UnitAura; durations are now available for all debuffs.
  • Patch 3.1 changed "isMine" to "unitCaster". It is now possible for addons to retrieve the unitId that cast the buff/debuff.

See Also[edit]

UnitAura, UnitBuff.
HOWTO: Identify Buffs Using Textures
List of known buff and debuff effects that can be queried