My GS Macros !

These might need to be updated but i have a huge selection of macros i used when i was playing im thinking about returning to the game so hope you all can either update these or enjoy some of them, most of them were created by me just never released them until now. Enjoy !

local _, Sequences = ... -- Don't touch this

----
-- Rename this file to Sequences.lua before you get started, it uses a different file name so as not to overwrite your existing file with a future update.
-- Every entry in the Sequences table defines a single sequence of macros which behave similarly to /castsequence.
-- Sequence names must be unique and contain no more than 16 characters.
-- To use a macro sequence, create a blank macro in-game with the same name you picked for the sequence here and it will overwrite it.
----

----
-- Here's a large demonstration sequence documenting the format:
Sequences["GnomeExample1"] = {
	-- StepFunction optionally defines how the step is incremented when pressing the button.
	-- This example increments the step in the following order: 1 12 123 1234 etc. until it reaches the end and starts over
	-- DO NOT DEFINE A STEP FUNCTION UNLESS YOU THINK YOU KNOW WHAT YOU'RE DOING
	StepFunction = [[
		limit = limit or 1
		if step == limit then
			limit = limit % #macros + 1
			step = 1
		else
			step = step % #macros + 1
		end
	]],
	
	-- PreMacro is optional macro text that you want executed before every single button press.
	-- This is if you want to add something like /startattack or /stopcasting before all of the macros in the sequence.
	PreMacro = [[
/run print("-- PreMacro Script --")
/startattack	
	]],
	
	-- PostMacro is optional macro text that you want executed after every single button press.
	-- I don't know what you would need this for, but it's here anyway.
	PostMacro = [[
/run print("-- PostMacro Script --")
	]],
	
	-- Macro 1
	[[
/run print("Executing macro 1!")
/cast SpellName1
	]],
	
	-- Macro 2
	[[
/run print("Executing macro 2!")
/cast SpellName2
	]],
	
	-- Macro 3
	[[
/run print("Executing macro 3!")
/cast SpellName3
	]],
}

----
-- Here is a short example which is what most sequences will look like---

---pally tank---

Sequences['SeraHoly'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
]],
    '/cast Holy Wrath',
	'/cast Crusader Strike',	
	'/castsequence Sacred Shield,Judgment,Judgment,Judgment',
	"/cast Avenger's Shield",
	'/cast [@player] Holy Prism',
	'/cast Hammer of Wrath',
	'/cast Consecration',
PostMacro = [[
/castsequence Seraphim, Shield of the Righteous, Shield of the Righteous, Shield of the Righteous
/cast divine protection
/startattack
]],
}

Sequences['SeraHolyAOE'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
]],
        '/cast Holy Wrath',
	'/cast Hammer of the Righteous',	
	'/castsequence Sacred Shield,Judgment,Judgment,Judgment',
	"/cast Avenger's Shield",
	'/cast [@player] Holy Prism',
	'/cast Hammer of Wrath',
	'/cast Consecration',
PostMacro = [[
/castsequence Seraphim, Shield of the Righteous, Shield of the Righteous, Shield of the Righteous
/cast divine protection
/startattack
]],
}

---Retribution Pally---

Sequences['RetS'] = {
    PreMacro = [[
/targetenemy [noharm][dead]
/cast [nostance: 1] seal of truth
/cast [mod:alt] Avenging Wrath
    ]],
    '/cast Crusader Strike',
    '/cast Execution Sentence',
    '/cast Judgment',
    '/cast Hammer of Wrath',
    '/cast Exorcism',
    "/cast Final Verdict",
    PostMacro = [[
/use [combat]13
/use [combat]14
/startattck
    ]],
}

Sequences['RetA'] = {
    PreMacro = [[
/targetenemy [noharm][dead]
/cast [nostance: 2] seal of righteousness
/cast [mod:alt] Avenging Wrath
    ]],
    '/cast Hammer of the Righteous',
    '/cast Execution Sentence',
    '/cast Judgment',
    '/cast Hammer of Wrath',
    '/cast Exorcism',
    "/cast Final Verdict",
	'/cast !divine Storm',
    PostMacro = [[
/use [combat]13
/use [combat]14
/startattck
    ]],
}

---Deomology---

Sequences['LockOpen'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/petattack [@target,harm]
/cast  [mod:alt] Grimoire: Doomguard
]],
"/cast Hand of Gul'dan",
'/cast imp swarm',
'/cast Dark Soul: Knowledge',
'/castsequence Corruption,Shadow Bolt,Metamorphosis,Doom,Demonbolt,Demonbolt,Touch of Chaos',
PostMacro = [[
/cast Command Demon
/run UIErrorsFrame:Clear()
]],
}

Sequences['LockBuild'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
    PreMacro = [[
/targetenemy [noharm][dead]
/use [nopet,nomod]summon felguard
/petattack [@target,harm]
/petautocastoff [group] Threatening Presence
]],
'/use [noform: 0] Metamorphosis',
"/cast Hand of Gul'dan",
'/cast Dark Soul: Knowledge',
'/castsequence Corruption,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt,Corruption,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt',
PostMacro = [[
/cast Command Demon
/run UIErrorsFrame:Clear()
]],
}

Sequences['LockSpend'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
    PreMacro = [[
/targetenemy [noharm][dead]
/use [nopet,nomod]summon felguard
/petattack [@target,harm]
/petautocastoff [group] Threatening Presence
]],
"/cast Hand of Gul'dan",
'/cast Dark Soul: Knowledge',
'/castsequence Soul Fire,Soul Fire,Soul Fire,Corruption,Soul Fire,Soul Fire,Soul Fire',
PostMacro = [[
/cast Command Demon
/run UIErrorsFrame:Clear()
]],
}

Sequences['LockNuke'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
    PreMacro = [[
/targetenemy [noharm][dead]
/petattack [@target,harm]
/petautocastoff [group] Threatening Presence
]],
'/use [noform] Metamorphosis',
"/cast Hand of Gul'dan",
'/cast [mod:alt] imp swarm',
'/cast Dark Soul: Knowledge',
'/castsequence Touch of Chaos,Demonbolt,Demonbolt,Demonbolt,Demonbolt,Demonbolt',
'/cast Doom',
'/cast Chaos Wave',
PostMacro = [[
/cast Command Demon
/run UIErrorsFrame:Clear()
]],
}

---enhance shaman---

Sequences['EnhanceS'] = { 
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [mod:alt] Ascendance
/cast [mod:alt] Feral Spirit
/cast [mod:alt] Ancestral Guidance
/cast [mod:alt] Astral Shift
]],
	'/castsequence reset=combat/5 Searing Totem,Healing Stream Totem,Healing Stream Totem',
	'/castsequence reset=5 Lava Lash,Flame Shock,Lava Lash',
	'/cast Liquid Magma',
	'/cast Stormstrike',
	'/cast Unleash Elements',
	'/cast Frost Shock',
PostMacro = [[
/startattack
/use [combat]13
/use [combat]14
/cast Lava Lash
]],
}

Sequences['EnhanceA'] = { 
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [mod:alt] Ascendance
/cast [mod:alt] Feral Spirit
/cast [mod:alt] Ancestral Guidance
/cast [mod:alt] Astral Shift
]],
	'/castsequence reset=combat/5 Magma Totem,Healing Stream Totem,Healing Stream Totem',
	'/castsequence reset=5 Lava Lash,Flame Shock,Lava Lash',
	'/cast Liquid Magma',
	'/cast Stormstrike',
	'/cast Unleash Elements',
	'/cast Fire Nova',
	'/cast Feral Spirit',
PostMacro = [[
/startattack
/use [combat]13
/use [combat]14
/cast Lava Lash
]],
}
---marksman------

Sequences['MMS'] = { 
PreMacro = [[
/targetenemy [noharm][dead]
/petattack [@target,harm]
/cast [@focus,help][help][@pet,exists] Misdirection
/cast [combat] Rapid Fire
/cast [combat] Blood Fury
/cast [mod:alt, combat] stampede
]],
	'/cast !Chimaera Shot',	
	'/cast !Kill Shot',
	'/cast [nochanneling] barrage',
	'/cast Aimed Shot',
	'/cast [nochanneling] Steady Shot',
PostMacro = [[
/startattack
/cast Chimaera Shot
]],
}

Sequences['MMA'] = { 
PreMacro = [[
/targetenemy [noharm][dead]
/petattack [@target,harm]
/cast [@focus,help][help][@pet,exists] Misdirection
/cast [combat] Rapid Fire
/cast [combat] Blood Fury
/cast [mod:alt, combat] stampede
]],
	'/cast !Chimaera Shot',	
	'/cast !Kill Shot',
	'/cast [nochanneling] barrage',
	'/cast Multi-Shot',
	'/cast [nochanneling] Steady Shot',
PostMacro = [[
/startattack
/cast Chimaera Shot
]],
}

---beast master---

Sequences['BMST'] = {
PreMacro = [[
/cast [nopet,nodead]Call Pet 1;[@pet,dead]Heart of the Phoenix
/targetenemy [noharm][dead]
/petattack [@target,harm]
/cast Bestial Wrath
/cast blood fury
]],
'/cast !Kill Command',
'/cast Cobra Shot',
'/cast Arcane Shot',
'/cast A Murder of Crows',
'/cast !Kill Shot',
'/cast !Kill Command',
PostMacro = [[
/startattack
/cast Focus Fire
/script UIErrorsFrame:Clear()
]],
}

Sequences['BMAoE'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/petattack
/run UIErrorsFrame:Clear()
]],
[[/castsequence reset=target Multi-Shot,Multi-Shot,Cobra Shot,Cobra Shot,cobra shot,]],
[[/cast Glaive Toss]],
[[/cast !Kill Command]],
[[/castrandom !Focus Fire]],
[[/cast Bestial Wrath]],
PostMacro = [[
/startattack
/script UIErrorsFrame:Clear()
]],
}

---survival---

Sequences['SurvST'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/startattack
/petattack [@target,harm]
/cast [combat]Rapid fire
/cast [combat]blood fury
]],
'/cast [target=focus, exists, nodead],[target=pet, exists, nodead] Misdirection',
'/cast !A Murder of Crows',
'/cast !Black Arrow',
'/cast !Explosive Shot',
'/cast A Murder of Crows',
'/cast Glaive Toss',
'/cast Cobra Shot',
'/cast Arcane Shot',
PostMacro = [[
/startattack
/petattack
]],
}

---shadow priest---

Sequences['SPs'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast [noform] !Shadowform
]],
'/cast !Mind Blast',
'/cast Mind Spike',
'/cast !Shadow Word: Death',
'/cast !Devouring Plague',
'/cast !Cascade',
PostMacro = [[
/use [combat]13
/use [combat]14
]],
}

Sequences['SP1'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast [noform] !Shadowform
/castsequence [nochanneling] reset=target Vampiric Touch,Shadow Word: Pain,Mind Flay,Mind Flay,Mind Blast
/cast Devouring plague
]],
[[/cast Shadow Word: Death]],
[[/cast Mind Blast]],
[[/cast cascade]],
}

Sequences['SAoE'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [noform] !Shadowform
]],
	'/castsequence reset=180 Shadowfiend',
	'/castsequence [nochanneling] Mind Sear',
	'/cast reset=14 Cascade',
	'/cast Shadow Word: Death',
	'/cast [nochanneling] Mind Blast',
PostMacro = [[
/use [combat]13
/use [combat]14
/startattack
]],
}

---disc dps---
Sequences['DiscDamage'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/petattack
]],
[[/castsequence [nochanneling]reset=15 Shadow Word: Pain,Power Word: Solace,Smite,Smite,Smite,Smite,Smite,Smite]],
[[/cast Penance]],
[[/castsequence [nochanneling]reset=9 Archangel]],
PostMacro = [[
/use [combat,nochanneling]Shadowfiend
/use 13
/run UIErrorsFrame:Clear()
]],

}

---Monk Tank---

Sequences['BrewST'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]], 
PreMacro = [[
/targetenemy [noharm][dead]
]],
	'/castsequence reset=8 !Keg Smash,Jab,Jab,Jab',
	'/castsequence reset=19 !Tiger Palm',
	'/cast [nochanneling] Blackout Kick',
	'/cast [nochanneling] Chi Explosion',
	'/cast [nochanneling] Jab',
	'/cast [nochanneling] Keg Smash',
	'/cast [nochanneling] Leg Sweep',
	'/castsequence reset=30 !Guard',
	'/castsequence reset=15 !Expel Harm',
	'/castsequence reset=8 !Elusive Brew',
	'/cast [nochanneling] !Touch of Death',
PostMacro = [[
/startattack
/use [combat]13
/use [combat]14
]],
}

Sequences['BrewAoE'] = { 
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
]],
	'/castsequence reset=combat !Keg Smash,Leg Sweep',
	'/cast [nochanneling] !Keg Smash',
	'/cast [nochanneling] Spinning Crane Kick',
	'/cast [nochanneling] Jab',
	'/cast [nochanneling] Breath of Fire',
	'/castsequence [nochanneling] reset=combat Jab,Jab,Tiger Palm',
	'/cast [nochanneling] Chi Explosion',
	'/cast [nochanneling] Jab',
	'/cast [nochanneling] Purifying Brew',
	"/cast [nochanneling] Elusive Brew",	
	'/cast [nochanneling] Guard',
	'/cast [nochanneling] Expel Harm',
	'/cast [nochanneling] !Touch of Death',
PostMacro = [[
/startattack
/use [combat] 13
/use [combat] 14
]],
}

---destro---

Sequences['Destro1'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/castsequence [combat] Dark Soul: Instability
/cast [mod:ALT,combat] Chaos Bolt
]],
[[/castsequence [nomod]reset=15/target Immolate,Incinerate,Incinerate,Incinerate,Incinerate,Incinerate]],
[[/cast Conflagrate]],
PostMacro = [[
/startattack
/petattack
/run UIErrorsFrame:Clear()
]],
}

Sequences['Destro2'] = {
PreMacro = [[
/targetenemy [noharm][dead]
#showtooltip Fire and Brimstone
/targetenemy [noharm][dead]
/petattack [@target,harm]
]],
'/castsequence reset=0.7 !Fire and Brimstone',
'/castsequence Immolate, Incinerate, Incinerate, Incinerate, Incinerate, Conflagrate, Conflagrate, Incinerate, Incinerate, Incinerate, Incinerate, Incinerate, Incinerate, Incinerate, Incinerate',
PostMacro = [[
/startattack
]],
}

---affliction---

Sequences['AFSingle'] = {
StepFunction = [[
limit = limit or 1
if step == limit then
limit = limit % #macros + 1
step = 1
else
step = step % #macros + 1
end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/petattack [@target,harm]
]],
"/castsequence [nochanneling] reset=target/38 Haunt,Unstable Affliction,Corruption,Agony,Drain Soul,Drain Soul,Haunt,Unstable Affliction,Corruption,Agony,drain soul,drain soul",
PostMacro = [[
/script UIErrorsFrame:Hide();
]],
}

--'/cast [combat,nochanneling]Command Demon',--

Sequences['noshard'] = {
StepFunction = [[
limit = limit or 1
if step == limit then
limit = limit % #macros + 1
step = 1
else
step = step % #macros + 1
end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/petattack [@target,harm]
]],
"/castsequence [nochanneling] reset=target Corruption,Agony,Unstable Affliction,Drain Soul,Drain Soul,Drain Soul,Drain Soul,Unstable Affliction,Corruption,Agony,Drain Soul,Drain Soul,Drain Soul,Unstable Affliction,Corruption,Agony",
PostMacro = [[
/script UIErrorsFrame:Hide();
]],
}

Sequences['AFAoe'] = {
StepFunction = [[
limit = limit or 1
if step == limit then
limit = limit % #macros + 1
step = 1
else
step = step % #macros + 1
end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/petattack [@target,harm]
]],
"/castsequence [nochanneling] reset=target/38 Corruption,Agony,Unstable Affliction,Haunt,Seed of Corruption",
'/cast [combat,nochanneling]Dark Soul: Misery',
'/cast [combat,nochanneling]Seed of Corruption',
PostMacro = [[
/script UIErrorsFrame:Hide();
]],
}

---Warrior---

---Gladiator---

Sequences['GLADS'] = { 
PreMacro = [[
/targetenemy [noharm][dead]
/cast [combat] Berserker Rage
/cast [combat] Bloodbath	
/cast !Shield Charge
]],
	'/cast Shield Slam',	
	'/cast Storm Bolt',	
	'/cast Revenge',
	'/cast Execute',
	'/cast Devastate',
	'/cast victory rush',
	'/cast Shield Slam',	
	'/cast Storm Bolt',	
	'/cast Revenge',
	'/cast Execute',
	'/cast victory rush',
PostMacro = [[
/startattack
/use [combat]13
/use [combat]14
/cast Shield Slam
]],
}

---protection---

Sequences['ProtST'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [combat] Berserker Rage
/cast [combat] Bloodbath
/cast [combat] Demoralizing Shout
]],
	'/cast Charge',
	'/cast !Shield Slam',
	'/cast !Revenge',
	'/cast !Execute',
	'/cast Heroic Strike',
	'/cast Devastate',
	'/cast !Shield Block',
	'/cast !Shield Barrier',
PostMacro = [[
/startattack
/run UIErrorsFrame:Clear()
]],
}

Sequences['ProtAoE'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [combat] Last Stand
/cast [combat] Demoralizing Shout
/cast [combat] Spell Reflection
/cast [combat] Avatar
/cast [combat] Berserker Rage
]],
	'/cast !Thunder Clap',
	'/cast !Shockwave',
	'/cast !Revenge',
PostMacro = [[
/startattack
/run UIErrorsFrame:Clear()
/cast [combat]13
/cast [combat]14
]],
}

---Fury---

Sequences['Fury'] = { 
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [combat] Berserker Rage
/cast [combat] Bloodbath	
/cast [combat] Recklessness
]],
	'/cast charge',
	'/cast Execute',
	'/cast Bloodthirst',	
	'/cast Raging Blow',
	'/cast Victory Rush',
PostMacro = [[
/startattack
/run UIErrorsFrame:Clear()
]],
}

Sequences['Furyaoe'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/startattack
/cast [combat] Berserker Rage
]],
[[/cast Raging Blow]],
[[/cast Shockwave]],
[[/cast Bloodthirst]],
[[/cast Whirlwind]],

}

---ARMS---

Sequences['ArmsAoe'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast [nochanneling,combat] Berserker Rage
]],
[[/cast [nochanneling] !Execute]],
[[/castsequence [nochanneling] Sweeping Strikes,Rend]],
[[/cast [nochanneling] Colossus Smash]],
[[/cast [nochanneling] Bladestorm]],
[[/cast [nochanneling] Mortal Strike]],
[[/cast [nochanneling] Shockwave]],
[[/cast [nochanneling] Whirlwind]],
[[/cast [nochanneling] !Execute]],

}

Sequences['ArmsSt'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/castsequence reset=target Rend,null
/cast [mod:alt] Impending Victory
/cast [mod:alt, combat] Berserker Rage
/cast [mod:alt, combat] Recklessness
]],
[[/cast Mortal Strike]],
[[/cast Colossus Smash]],
[[/cast Slam]],
[[/cast Execute]],
}

---Shaman---

---Enhancement---

Sequences['EnhanceS'] = { 
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [mod:alt,combat] Ascendance
/cast [mod:alt,combat] Feral Spirit
/cast [mod:alt,combat]Primal Fire Elemental
]],
	'/castsequence reset=combat/5 Searing Totem,Healing Stream Totem,Healing Stream Totem',
	'/castsequence reset=5 Lava Lash,Flame Shock,Lava Lash',
	'/cast Liquid Magma',
	'/cast Stormstrike',
	'/cast Unleash Elements',
	'/cast Frost Shock',

PostMacro = [[
/startattack
/use [combat]13
/use [combat]14
/cast Lava Lash
]],
}

Sequences['EnhanceA'] = { 
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [mod:alt,combat] Ascendance
/cast [mod:alt,combat] Feral Spirit
/cast [mod:alt,combat] Primal Fire Elemental
]],
	'/castsequence reset=combat/5 Magma Totem,Healing Stream Totem,Healing Stream Totem',
	'/castsequence reset=5 Lava Lash,Flame Shock,Lava Lash',
	'/cast Liquid Magma',
	'/cast Stormstrike',
	'/cast Unleash Elements',
	'/cast Fire Nova',
PostMacro = [[
/startattack
/use [combat]13
/use [combat]14
/cast Lava Lash
]],
}

---elemental---

Sequences["elest"] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = 
[[
/targetenemy [noharm][dead]
/petattack [@target,harm]
]],
 '/castsequence reset=target Searing totem,Lightning Bolt,Lightning Bolt,Flame Shock,Lightning Bolt,Lightning Bolt,Lightning Bolt,Lightning Bolt,Lightning Bolt,Lightning Bolt,Earth Shock',
 '/castsequence [combat]reset=8 Lava Burst',
 '/castsequence [combat]reset=target !Flame Shock,null',
 '/castsequence [combat]reset=15 !Unleash Flame',
PostMacro = 
[[
/startattack
/use [combat]13
/use [combat]14
/run UIErrorsFrame:Clear()
]],
}

Sequences["eleaoe"] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = 
[[
/targetenemy [noharm][dead]
/petattack [@target,harm]
]],
 '/castsequence reset=10 Earthquake,Searing Totem,Chain Lightning,Chain Lightning,Chain Lightning,Chain Lightning,Chain Lightning,Earth Shock',
}

---Death Knight---

---Unholy---

Sequences["Unholy"] = {
StepFunction = [[
        limit = limit or 1
        if step == limit then
            limit = limit % #macros + 1
            step = 1
        else
            step = step % #macros + 1
        end
    ]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [combat] Blood Fury
    ]],
	'/castsequence reset=target Plague Strike,Plague Leech',
	'/cast [nopet] Raise Dead; Dark Transformation',
	'/cast Scourge Strike',
	'/cast Festering Strike',
	'/cast Death Coil',
	'/cast [combat] Summon Gargoyle',
PostMacro = [[
/petattack
/startattack
/use [combat]13
/use [combat]14
    ]],
}

Sequences["UnholySR"] = {
StepFunction = [[
        limit = limit or 1
        if step == limit then
            limit = limit % #macros + 1
            step = 1
        else
            step = step % #macros + 1
        end
    ]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [combat] Blood Fury
    ]],
	'/castsequence reset=target Plague Strike,Plague Leech',
	'/cast [nopet] Raise Dead; Dark Transformation',
	'/cast Soul Reaper',
	'/cast Scourge Strike',
	'/cast Festering Strike',
	'/cast Death Coil',
	'/cast [combat] Summon Gargoyle',
PostMacro = [[
/petattack
/startattack
/use [combat]13
/use [combat]14
    ]],
}

Sequences["UnholyN"] = {
StepFunction = [[
        limit = limit or 1
        if step == limit then
            limit = limit % #macros + 1
            step = 1
        else
            step = step % #macros + 1
        end
    ]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [combat] Blood Fury
/cast [combat] Empower Rune Weapon
    ]],
	'/castsequence reset=target Plague Strike,Outbreak',
	'/cast [nopet] Raise Dead; Dark Transformation',
	'/cast Unholy Blight',
	'/cast Scourge Strike',
	'/cast Festering Strike',
	'/cast Death Coil',
	'/cast [combat] Summon Gargoyle',
	'/cast Remorseless Winter',
PostMacro = [[
/petattack
/startattack
/use [combat]13
/use [combat]14
    ]],
}

Sequences["UnholyNSR"] = {
StepFunction = [[
        limit = limit or 1
        if step == limit then
            limit = limit % #macros + 1
            step = 1
        else
            step = step % #macros + 1
        end
    ]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [combat] Blood Fury
/cast [combat] Empower Rune Weapon
    ]],
	'/castsequence reset=target Plague Strike,Outbreak',
	'/cast [nopet] Raise Dead; Dark Transformation',
	'/cast Soul Reaper',
	'/cast Unholy Blight',
	'/cast Scourge Strike',
	'/cast Festering Strike',
	'/cast Death Coil',
	'/cast [combat] Summon Gargoyle',
	'/cast Remorseless Winter',
PostMacro = [[
/petattack
/startattack
/use [combat]13
/use [combat]14
    ]],
}

---blood---

Sequences['BloodDK'] = {
StepFunction = [[
		limit = limit or 1
		if step == limit then
			limit = limit % #macros + 1
			step = 1
		else
			step = step % #macros + 1
		end
	]],
    PreMacro = [[
/cast Bone Shield
/cast [combat] Vampiric Blood
/cast [combat] Anti-Magic Shell
/cast [combat] Dancing Rune Weapon
    ]],
    "/cast Death Strike",
    "/castsequence reset=combat Plague Leech, Outbreak",
    "/castsequence reset=combat Outbreak, Death Coil, Death Coil, Death Coil, Death Coil, Death Coil, Death Coil, Death Coil, Death Coil, Death Coil, Death Coil",
    '/castsequence reset=combat Blood Boil, Blood Boil, Soul Reaper, Death Strike',
    '/castsequence reset=combat Blood Boil, Blood Boil, Blood Boil, Blood Boil, Blood Boil, Blood Boil, Blood Boil, Soul Reaper, Death Strike',
    '/cast [combat] Blood Tap',
    PostMacro = [[
/use [combat] 13
/use [combat] 14
/targetenemy [noharm][dead]
    ]],
}

---extra macro for the blood one---
--oh shit--
--#showtooltip
--/cast [mod] Rune Tap
--/stopmacro [mod]
--/cast Death Pact
--/cast Vampiric Blood
--/cast Icebound Fortitude
--/use Healthstone
--/cast Rune Tap
--/script PlaySoundFile(“Sound\\Creature\\Illidan\\BLACK_Illidan_04.wav”)

--taunt--
--/cast [@target] Dark Command
--/cast [@mouseover,exists] Death Grip

--army of the dead--
--/castsequence reset=5/combat Empower Rune Weapon, Army of the Dead

---another Blood---

Sequences['BloodS'] = {
StepFunction = [[
		limit = limit or 1
		if step == limit then
			limit = limit % #macros + 1
			step = 1
		else
			step = step % #macros + 1
		end
	]],
    PreMacro = [[
/cast Bone Shield
/cast [combat] Vampiric Blood
/cast [combat] Anti-Magic Shell
/cast [combat] Dancing Rune Weapon
    ]],
    "/cast Soul Reaper",
    "/cast Death Strike",
    "/castsequence reset=combat Outbreak,Blood Boil,Blood Boil,Soul Reaper,Rune Tap",
	'/cast !Plague leech',
    "/cast Death Coil",
    PostMacro = [[
/use [combat] 14
/targetenemy [noharm][dead]
    ]],
}

---Druid---

--Feral--

Sequences['FeralOpener'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast !Wild Charge
/cast [nostance] !cat form
/cast [stance:1]!Bear Form(Shapeshift)
/cast [stance:3]!Cat Form(Shapeshift)
/cast [stance:4]!Travel Form(Shapeshift)
/cast [stance:2]!Aquatic Form(Shapeshift)
/cast [stance:5]!Swift Flight Form(Shapeshift)
/cast [nostealth,nocombat] Prowl
]],
[[/cast [combat] Incarnation: King of the Jungle]],
[[/castsequence [nostealth,stealth] reset=target Rake]],
[[/cast [combat] faerie fire]],
[[/cast Shred]],
[[/castsequence reset=10 Shred, Shred, Shred, Rip]],
PostMacro = [[
/cast [combat] Berserk
/cast [combat] Nature's Vigil
/use [combat] Draenic Agility Potion
/cast [combat] Tiger's Fury
/use [combat] 14
/run UIErrorsFrame:Clear()
]],
}

Sequences['Feralfinish'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast [nostance] !cat form
/cast [stance:1]!Bear Form(Shapeshift)
/cast [stance:3]!Cat Form(Shapeshift)
/cast [stance:4]!Travel Form(Shapeshift)
/cast [stance:2]!Aquatic Form(Shapeshift)
/cast [stance:5]!Swift Flight Form(Shapeshift)
/cast [nostealth,nocombat] Prowl
/cast !Wild Charge
]],
[[/cast [combat] Incarnation: King of the Jungle]],
[[/castsequence reset=target Rake]],
[[/cast Shred]],
[[/castsequence reset=10 Shred, Shred, Shred, Ferocious Bite]],
PostMacro = [[
/cast [combat] Berserk
/cast [combat] Nature's Vigil
/use [combat] 14
/use [combat] Draenic Agility Potion
/cast [combat] Tiger's Fury
/run UIErrorsFrame:Clear()
]],
}

Sequences['FAOE'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast [nostance] !cat form
/cast [stance:1]!Bear Form(Shapeshift)
/cast [stance:3]!Cat Form(Shapeshift)
/cast [stance:4]!Travel Form(Shapeshift)
/cast [stance:2]!Aquatic Form(Shapeshift)
/cast [stance:5]!Swift Flight Form(Shapeshift)
/cast [nostealth,nocombat] Prowl
/cast [nostealth,nocombat] Rake
/cast !Wild Charge
]],
[[/cast [combat] Incarnation: King of the Jungle]],
[[/castsequence reset=target Rake]],
[[/cast !Thrash]],
[[/castsequence reset=target Swipe, Swipe, Swipe, Thrash, Rip]],
PostMacro = [[
/cast [combat] Berserk
/cast [combat] Nature's Vigil
/cast [combat] Tiger's Fury
/run UIErrorsFrame:Clear()
]],
}

Sequences['FeralAoE'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast [form:2] cat Form
/cast [nostealth,nocombat] Prowl
/cast [mod:alt] Berserk
/cast [combat] tiger's fury
]],
	'/cast Swipe',
	'/cast Savage Roar', 
	'/cast Thrash', 
	'/cast Swipe',
	'/use [combat]reset=60 Faerie Fire',
PostMacro = [[
/startattack
/run UIErrorsFrame:Clear()
/use [combat]13
/use [combat]14
]],
}

--Gaurdian--

---Talents: 3,1,1,1,3,2,2
--Major Glyphs: Barkskin, Fae Silence, Maul
--Minor Glyphs: Aquatic Form, Travel, Grace
--Food: Calamari Crepes, Mastery…
--Pre Pot: Draenic Agility Potion
--Flask: Greater Draenic Strength Flask | Draenic Agility Flask (if you DONT need the extra health)

--Single-Target:--

Sequences['bearst'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [noform:1] Bear Form
]],
	'/castsequence reset=10 Maul,Savage Defense,Frenzied Regeneration',
	'/castsequence reset=10 !Mangle,Thrash,Lacerate,Lacerate,Lacerate,Maul',
	'/cast !Mangle',
	'/cast Thrash',
	'/cast Lacerate',
	'/cast Maul',
	'/cast !Pulverize',
	'/cast !Pulverize',
	'/cast Berserk',
	'/cast Barkskin',
    '/cast [@player,combat] [nochanneling] Healing Touch',
PostMacro = [[
/startattack
/use [combat]13
/use [combat]14
]],
}

--Multi-Target:--

Sequences['bearaoe'] = {
StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],	
PreMacro = [[
/targetenemy [form,noharm][dead]
/cast [noform:1] Bear Form

]],
	'/castsequence reset=10 Mangle,Thrash,Thrash,Mangle,Maul,Maul',
	'/cast Mangle',
	'/cast Thrash',
	'/cast Maul',
	'/cast Pulverize',
	'/cast Berserk',
	'/cast Barkskin', 
	'/cast Savage Defense',
	'/cast Frenzied Regeneration',
PostMacro = [[
/startattack
/use [combat]13
/use [combat]14
]],
} 

--balance--

Sequences['BOOMst'] = { 
PreMacro = [[
/targetenemy [noharm][dead]
/use [noform]!Moonkin Form
]],
'/castsequence reset=25/target Moonfire',
'/castsequence reset=25/target Sunfire',
'/castsequence reset=10 Force of Nature',
'/cast Starsurge',
'/cast Starfire',
'/cast [nochanneling] Wrath',
'/cast Celestial Alignment',
PostMacro = [[
/startattack
]],
}

Sequences['BoomAOE'] = { 
PreMacro = [[
/use [noform]!Moonkin Form
]],
"/castsequence Starfall, Moonfire",
"/castsequence Moonfire, Starfall",
"/castsequence reset=10 Starfall, Sunfire, Moonfire",
"/cast Moonfire",
PostMacro = [[
/targetenemy
/use [combat]13
/use [combat]14
]],
}

Sequences['ChickLunar'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/use [noform] Moonkin Form
/cast Celestial Alignment
]],
'/cast Starfire',
'/castsequence !Moonfire, Starsurge, Starfire, Starsurge',
'/castsequence Starsurge, Starfire, Starfire, Starfire',
'/cast reset=target moonfire',
PostMacro = [[
/use [combat]13
/use [combat]14
]],
}

Sequences['ChickSolar'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/use [noform] Moonkin Form
]],
'/cast Wrath',
'/castsequence !Sunfire, Starsurge, Starsurge, Starsurge',
'/castsequence Starsurge, Wrath, Wrath',
'/cast reset=target sunfire',
PostMacro = [[
/use [combat]13
/use [combat]14
]],
}

Sequences['chickAOE'] = { 
PreMacro = [[
/use [noform]!Moonkin Form
]],
'/castsequence Starfall, Moonfire, Sunfire',
'/castsequence Moonfire, Starfall',
'/castsequence reset=10 Starfall, Sunfire, Moonfire',
'/cast Moonfire',
'/cast Sunfire',
PostMacro = [[
/targetenemy
/use [combat]13
/use [combat]14
]],
}

--Mage--

--Arcane--

--Talents:
--Ice Flows
--Alter Time
--Ice Ward
--Cold Snap
--Supernova
--Incanter’s Flow (but you get more out of ‘Rune of Power’)
--Prismatic Crystal

--Glyphs:
--Glyph of Arcane Explosion
--Glyph of Cone of Cold
--Glpyh of Arcane Power

Sequences['Conserve'] = {
PreMacro = [[
/console Sound_EnableSFX 0
/targetenemy [noharm][dead]
]],
    '/cast [nochanneling] Arcane Missiles',
    '/cast [nochanneling] Supernova',
    '/castsequence [nochanneling] Arcane Barrage,Arcane Blast,Arcane Blast,Arcane Blast,Arcane Blast',
	
PostMacro = [[
/cast [combat]Arcane Torrent
/cast [combat]Cold Snap
/script UIErrorsFrame:Hide();
/console Sound_EnableSFX 1
]],
}

Sequences['Burn'] = {
PreMacro = [[
/console Sound_EnableSFX 0
/targetenemy [noharm][dead]
]],
    '/cast [nochanneling] Arcane Missiles',
    '/cast [nochanneling] Supernova',
    '/cast [nochanneling] Arcane Blast',
	
PostMacro = [[
/cast [combat]Presence of Mind
/cast [combat]Arcane Power
/cast [combat]Ice Floes
/use [combat]13
/use [combat]14
/script UIErrorsFrame:Hide();
/console Sound_EnableSFX 1
]],
}

Sequences['AreaAttack'] = {
PreMacro = [[
/script UIErrorsFrame:Hide();
/console Sound_EnableSFX 0
/targetenemy [noharm][dead]
]],
    '/cast [nochanneling] Supernova',
    '/cast [nochanneling] Cone of Cold',
    '/castsequence [nochanneling] Arcane Barrage,Arcane Explosion,Arcane Explosion,Arcane Explosion,Arcane Explosion',
	
PostMacro = [[
/script UIErrorsFrame:Hide();
/console Sound_EnableSFX 1
]],
}

---Frost---

Sequences['Frostm'] = { 
PreMacro = [[
/targetenemy [noharm][dead]
]],
	'/castsequence reset=26, Ice Barrier',
	'/castsequence reset=21, Ice Ward',
	'/castsequence reset=26, Ice Nova',
	'/castsequence reset=31, Comet Storm',
	'/castsequence reset=26, Frostbolt,Frostbolt,Frostbolt,Ice lance,Ice Lance,Frostfire Bolt,Frostbolt,Frostbolt,Frostbolt,Ice Lance,Ice Lance,Frostfire Bolt',
	'/cast Frozen Orb',
	'/cast Ice Nova',
	'/castsequence reset=20 Deep Freeze,Ice Lance,Ice Lance',
PostMacro = [[
/startattack
/use [combat]13
/use [combat]14
/use [combat]Ice Floes
/use [combat]Icy Veins
/use [combat]Mirror Image
/use [combat]Frozen Orb
]],
}

---Fire---

--2,3,3,2,1,1
--major glyphs
--1. ignite
--2. inferno blast
--3. regenerative ice

Sequences['FireS'] = { 
PreMacro = [[
/targetenemy [noharm][dead]
]],	
	'/cast Fireball',
	'/cast Scorch',
	'/cast Living bomb',
	'/cast Pyroblast',
	'/cast Inferno Blast',
	'/cast Frostjaw',
	'/cast Mirror Image',
	
PostMacro = [[
/startattack
/cast [combat]Combustion

]],
}

---Rogue---

--Sub--

Sequences['subST'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast [nostealth,nocombat]Stealth
/cast [stealth] Ambush
]],
'/castsequence reset=19 Hemorrhage,Hemorrhage,Slice and Dice,null',
'/castsequence reset=6 Hemorrhage,Feint,Hemorrhage,Hemorrhage,Rupture,Hemorrhage,Hemorrhage,Eviscerate',
'/cast [combat]Combat Readiness',
'/cast [combat]!Shadow Dance',
'/cast [combat]!Marked for Death',
}

Sequences['subSTBack'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast [nostealth,nocombat]Stealth
/cast [stealth] Ambush
]],
'/castsequence reset=19 Backstab,Backstab,Slice and Dice,null',
'/castsequence reset=6 Backstab,Feint,Backstab,Backstab,Rupture,Backstab,Backstab,Eviscerate',
'/cast [combat]Combat Readiness',
'/cast [combat]!Shadow Dance',
'/cast [combat]!Marked for Death',
}

Sequences['subAOE'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast [nostealth,nocombat]Stealth
/cast [stealth] reset=target Ambush
]],
'/castsequence reset=target/19 Hemorrhage,Slice and Dice',
'/castsequence reset=combat/6 Fan of Knives,Fan of Knives,Fan of Knives,Fan of Knives,Crimson Tempest',
'/cast [combat]Combat Readiness',
'/cast [combat]!Shadow Dance',
'/cast [combat]!Marked for Death',
}

---combat---

Sequences['COMst'] = {
StepFunction = [[
limit = limit or 1
if step == limit then
limit = limit % #macros + 1
step = 1
else
step = step % #macros + 1
end
]],
PreMacro = [[
/cancelaura Blade Flurry
/targetenemy [noharm][dead]
/startattack
/cast [nostealth,nocombat] Stealth
]],
'/castsequence [nochanneling] reset=target Revealing Strike, Slice and Dice,null',
'/cast [combat,nochanneling] Adrenaline Rush',
'/castsequence [nochanneling] reset=combat Sinister Strike,Sinister Strike,Sinister Strike,Sinister Strike,Eviscerate',
'/castsequence [nochanneling] reset=combat Marked For Death, Kidney Shot',
'/cast [nochanneling] Killing Spree',
'/castsequence [nochanneling] reset=35 Revealing Strike,Slice and Dice',
PostMacro = [[
/use [combat] 13
/use [combat] 14
]],
}

Sequences['COMAoe'] = {
StepFunction = [[
limit = limit or 1
if step == limit then
limit = limit % #macros + 1
step = 1
else
step = step % #macros + 1
end
]],
PreMacro = [[
/cast [nomod] !Blade Flurry
/targetenemy [noharm][dead]
/startattack
/cast [nostealth,nocombat] Stealth
]],
'/castsequence [nochanneling] reset=target Revealing Strike, Slice and Dice,null',
'/cast [combat,nochanneling] Adrenaline Rush',
'/castsequence [nochanneling] reset=combat Sinister Strike,Sinister Strike,Sinister Strike,Sinister Strike,Crimson Tempest',
'/cast [nochanneling] Killing Spree',
PostMacro = [[
/use [combat] 13
/use [combat] 14
]],
}

---assassination---
--single--

Sequences['rast'] = {
PreMacro = [[
/targetenemy [noharm][dead]
/cast [nostealth,nocombat]Stealth
/cast [stealth] Cheap Shot
]],
'/castsequence reset=19 Mutilate,Mutilate,Recuperate,null',
'/castsequence reset=6 Mutilate,Feint,Mutilate,Mutilate,Rupture,Mutilate,Mutilate,Envenom',
'/cast [combat]Cloak of Shadows',
'/cast [combat]Combat Readiness',
'/cast [combat]!Vendetta]]',
'/cast [combat]!Dispatch]]',
'/cast [combat]Evasion]]',
PostMacro = [[
/startattack
]],
}

--aoe--

Sequences['RaAoE'] = {
	StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [nostealth,nocombat]Stealth',
    ]],
	'/castsequence [nochanneling] reset=combat Marked For Death,Cheap Shot,Ambush',
	'/cast [nochanneling] Vendetta',
	'/cast [nochanneling] Fan of Knives',
	'/cast [nochanneling] Crimson Tempest',
	'/cast [nochanneling] Fan of Knives',
	'/cast [nochanneling] Mutilate',
	'/cast [nochanneling] Fan of Knives',
	'/cast [nochanneling] Slice and Dice',
	'/castsequence [nochanneling] Smoke Bomb,Mutilate,Envenom',
PostMacro = [[	
/use Evasion
    ]],
}

--oshit--

Sequences['RaOshiT'] = {
	StepFunction = [[
	limit = limit or 1
	if step == limit then
		limit = limit % #macros + 1
		step = 1
	else
		step = step % #macros + 1
	end
]],
PreMacro = [[
/targetenemy [noharm][dead]
/cast [nostealth,nocombat]Stealth',
    ]],
	'/castsequence [@target][nochanneling] reset=combat Blind,Cloak of Shadows,Vanish',
	'/cast [nochanneling] Burst of Speed',
	'/cast [nochanneling] Burst of Speed',
	'/cast [nochanneling] Recuperate',
	'/cast [nochanneling] Recuperate',
	'/cast [nochanneling] Sprint',
	'/cast [nochanneling] Shroud of Concealment',
PostMacro = [[	
    ]],
}

Very much appreciated! Many thanks!