Fury Tank One-Button Threat (Simple Annotations)
June 23, 2026About 2 min
Fury Tank One-Button Threat Macro (Simple Annotations)
Step 1: Open the Heitu client → click "Super Macro" → create a new macro → paste the code below.
Step 2: Create a regular macro in-game with /s S FuryTank_Main(), bind it to a key.
-- Fury Tank One-Button Threat Macro [234T Off-Tank] Fury Warrior Talent + Defensive Stance
-- Usage: /s S FuryTank_Main()
-- Priority: HP-based off-hand swap > Lifegiving Gem > Stone Shield Potion > DPS trinkets > Bloodrage > Battle Shout > Death Wish > Taunt > Demoralizing Shout > Sunder Armor > Revenge > Bloodthirst > Heroic Strike > Cleave
-- Shield Wall and Challenging Shout are NOT included — use manually as needed
function FuryTank_Main()
-- Skill constants
local SPELL_BLOODRAGE = 2687
local SPELL_BATTLE_SHOUT = 25289
local SPELL_DEATH_WISH = 12328
local SPELL_TAUNT = 355
local SPELL_SUNDER_ARMOR = 11597
local SPELL_REVENGE = 11601
local SPELL_DEMORALIZE = 11556
local SPELL_BLOODTHIRST = 23894
local SPELL_HEROIC_STRIKE= 25286
local SPELL_CLEAVE = 20569
-- Consumables/trinkets
local ITEM_STONE_SHIELD = 13455
local ITEM_LIFE_GEM = 19341
local ITEM_SPIDER = 22954
local ITEM_BUG_BADGE = 21670
-- Equipment IDs
local OFF_WEAPON_DOOM = 23044
local SHIELD_AQ40 = 21269
-- Pre-read states
local me = GetMeInfo()
local inCombat = IsCombat()
local rage = Power(1)
local brCD = SCT(SPELL_BLOODRAGE)
local shoutLeft = AuraRemainingTime(SPELL_BATTLE_SHOUT)
local tauntCD = SCT(SPELL_TAUNT)
local dwCD = SCT(SPELL_DEATH_WISH)
local demoralizeCD = SCT(SPELL_DEMORALIZE)
local demoralizeDebuffDur,_ = TART(SPELL_DEMORALIZE)
local btCD = SCT(SPELL_BLOODTHIRST)
local spiderCD = SCT(ITEM_SPIDER)
local bugBadgeCD = SCT(ITEM_BUG_BADGE)
local sunderDur, sunderStack = TART(SPELL_SUNDER_ARMOR)
local stonePotionCD = SCT(ITEM_STONE_SHIELD)
local lifeGemCD = SCT(ITEM_LIFE_GEM)
local hpPercent = me and (me.health / me.maxHealth * 100) or 100
local isTargetSelf = TTIS()
-- 1.HP-based off-hand swap: ≤40% shield, >40% dual-wield
if inCombat then
if hpPercent <= 40 then
M('/equipslot 17 item:' .. SHIELD_AQ40)
elseif hpPercent > 40 then
M('/equipslot 17 item:' .. OFF_WEAPON_DOOM)
end
end
-- 2.HP<36% Lifegiving Gem
if inCombat and lifeGemCD <= 0 then
if hpPercent < 36 then
M('/use Lifegiving Gem')
lifeGemCD = SCT(ITEM_LIFE_GEM)
end
end
-- 3.HP<31% Stone Shield Potion
if inCombat and stonePotionCD <= 0 then
if hpPercent < 31 then
M('/use Greater Stone Shield Potion')
stonePotionCD = SCT(ITEM_STONE_SHIELD)
end
end
-- 4.Auto-use DPS trinkets
if inCombat then
if spiderCD <= 0 then
M('/use Kiss of the Spider')
spiderCD = SCT(ITEM_SPIDER)
end
if bugBadgeCD <= 0 then
M('/use Badge of the Swarmguard')
bugBadgeCD = SCT(ITEM_BUG_BADGE)
end
end
-- 5.Bloodrage for rage
if brCD <= 0 then
S(SPELL_BLOODRAGE)
rage = Power(1)
brCD = SCT(SPELL_BLOODRAGE)
end
-- 6.Battle Shout refresh (buff<2s, rage>9)
if inCombat and shoutLeft < 2000 and rage > 9 then
S(SPELL_BATTLE_SHOUT)
rage = Power(1)
end
-- 7.Death Wish (HP>54%, rage>9)
if hpPercent > 54 and rage > 9 and dwCD <= 0 then
S(SPELL_DEATH_WISH)
rage = Power(1)
dwCD = SCT(SPELL_DEATH_WISH)
end
-- 8.Taunt (target not on self, rage>9)
if inCombat and not isTargetSelf and rage > 9 and tauntCD <= 0 then
S(SPELL_TAUNT)
tauntCD = SCT(SPELL_TAUNT)
end
-- 9.Demoralizing Shout (target 2 Sunder stacks, debuff<2s, rage>9)
if inCombat and sunderStack == 2 and demoralizeDebuffDur < 2000 and rage > 9 and demoralizeCD <= 0 then
S(SPELL_DEMORALIZE)
rage = Power(1)
demoralizeCD = SCT(SPELL_DEMORALIZE)
end
-- 10.Maintain 5 Sunder Armor stacks (rage>14)
if (sunderStack < 5 or sunderDur < 3000) and rage > 14 then
S(SPELL_SUNDER_ARMOR)
rage = Power(1)
sunderDur, sunderStack = TART(SPELL_SUNDER_ARMOR)
end
-- 11.Revenge (rage>4)
if CanDefensiveStrike() and SCT(SPELL_REVENGE) <= 0 and rage > 4 then
Spell(SPELL_REVENGE)
rage = Power(1)
end
-- 12.Bloodthirst (rage>29)
if rage > 29 and btCD <= 0 then
S(SPELL_BLOODTHIRST)
rage = Power(1)
btCD = SCT(SPELL_BLOODTHIRST)
end
-- 13.Heroic Strike (rage>41)
if rage > 41 then
S(SPELL_HEROIC_STRIKE)
rage = Power(1)
end
-- 14.Cleave (rage>74)
if rage > 74 then
S(SPELL_CLEAVE)
rage = Power(1)
end
end