Gnomesequencer for Demonology


Sequences['DeMo'] = {
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
/petautocaston [nogroup] Threatening Presence
	]],
	'/use [noform: 0] Metamorphosis',
	"/castsequence Hand of Gul'dan",
	"/castsequence [nochanneling] reset=target/15 Corruption,Shadow Bolt,Shadow Bolt,Shadow Bolt,Life Tap,Corruption,Shadow Bolt,Shadow Bolt,Life Tap,Shadow Bolt,Shadow Bolt,Corruption,Shadow Bolt,Shadow Bolt,Shadow Bolt,Life Tap,Shadow Bolt,Corruption,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt",
	PostMacro = [[
/run UIErrorsFrame:Clear()
]],
}

Sequences['DeMo2'] = {
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
/petautocaston [nogroup] Threatening Presence
	]],
	'/use [noform: 1] Metamorphosis',
	'/castsequence reset=target/5 Doom,null',
	"/castsequence [nochanneling] reset=target/5 Touch of Chaos,Demonbolt,Demonbolt,Demonbolt,Demonbolt",
	'/castsequence Dark Soul: Knowledge',
	'/castsequence [combat] Imp Swarm',
	PostMacro = [[
/use [combat] Blood Fury
/use [combat]13
/use [combat]14
/run UIErrorsFrame:Clear()
]],
}

Sequences['DeMo3'] = {
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
/petautocaston [nogroup] Threatening Presence
	]],
	'/use [noform: 0] Metamorphosis',
	"/castsequence Hand of Gul'dan",
	"/castsequence [nochanneling] reset=target/15 Soul Fire,Soul Fire,Soul Fire,Life Tap,Corruption,Soul Fire,Life Tap,Soul Fire,Soul Fire,Corruption,Soul Fire,Soul Fire,Soul Fire,Life Tap,Soul Fire,Corruption,Soul Fire",
	PostMacro = [[
/run UIErrorsFrame:Clear()
]],
}

Basically, make three buttons, one for each state:
(1.) Normal start: no MC procs, so LOTS of Shadow Bolts.
(2.) <full demonic fury> Meta - demonbolt spam.
(3.) <switch back to normal, but with MC procs stored> heavy on the soul Fires.

The above macros will require that you are mindful of 2 things:

  1. Your demonic fury - when full, switch macros, and 2. Your Molten Core procs (0-10). If you have more than 6 or 7, just always liberally switch to the DeMo3, when you got excess Molten Core Procs. Few MC stored, then switch back to shadow bolt rotation.

What works:
Corruption will be on your target about 100% of the time.
You won’t ever have to worry about mana, as Life tap is intermingled in.
Basically just have to be mindful of MC Procs (you don’t want to sit on a big stack), equally, you don’t want to cast Soul Fire WITHOUT MC procs. And, your demonic fury. AS SOON AS you can, always drop into metamorphasis and demonbolt spam.

Gylphs and talents.
I might at some point use the Wild Imp Glyph again, just didn’t bother. I think I have healthstone, demon training, and Life tap (the one where I don’t drop health, just gain an absorb healing debuff). This last one, Gylph of Life Tap being the most important.

Otherwise have: 2, 3, 2, 3, 3, 1, 1

I don’t think most of those really make any difference dps wise, other than the obvious one’s like Demonbolt which is at the core of the rotation =)

If someone could test that in a LFR or raid, please post the results.

I can stay on a target dummy for infinite amount of time with those macros, without worry of mana or otherwise. I usually stop around 10 minutes.

Did a test on a dummy so far. was 13k sustained on ilvl 646. doing more dps on a dummy with the other 2 specs but the macro seems ok so far on a dummy. only thing i noticed is that it uses life tap 2 often. Not sure if the healers in the raids like it if u use the glyph. xD

will test in lfr later.

Yeah, I had taken one life tap out, just one…and it led to slow mana starvation =(

that was when I only had two macros though. I could look at it some more, in the fine tuning.

I agree, healers probably won’t like it =), and maybe it’s not necessary in a raid environment, since we do get periodic healing. On a dummy though, we lose our hps eventually =(

ok have tested it @ brokenspore LFR. did 17.4k ending dps with it.

Only had 2 remove some life taps and ToC in the meta macro but otherwise it works good. :slight_smile:

Updated:


Sequences['DeMo'] = {
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
/petautocaston [nogroup] Threatening Presence
	]],
	'/use [noform: 0] Metamorphosis',
	"/castsequence Hand of Gul'dan",
	"/castsequence [nochanneling] reset=target Corruption,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt,Corruption,Life Tap,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt",
	PostMacro = [[
/run UIErrorsFrame:Clear()
]],
}

Sequences['DeMo2'] = {
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
/petautocaston [nogroup] Threatening Presence
	]],
	'/use [noform: 1] Metamorphosis',
	'/castsequence reset=target/5 Doom,null',
	"/castsequence [nochanneling] reset=target/5 Touch of Chaos,Demonbolt,Demonbolt,Demonbolt,Demonbolt",
	'/castsequence Dark Soul: Knowledge',
	'/castsequence [combat] Imp Swarm',
	PostMacro = [[
/use [combat] Blood Fury
/use [combat]13
/use [combat]14
/run UIErrorsFrame:Clear()
]],
}

Sequences['DeMo3'] = {
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
/petautocaston [nogroup] Threatening Presence
	]],
	'/use [noform: 0] Metamorphosis',
	"/castsequence Hand of Gul'dan",
	"/castsequence [nochanneling] reset=target Soul Fire,Soul Fire,Soul Fire,Corruption,Life Tap,Soul Fire,Soul Fire,Soul Fire",
	PostMacro = [[
/run UIErrorsFrame:Clear()
]],
}

Changed glyphs.

While the life tap glyph still might be the way to go, I added the following glyphs
Glyph of Dark Soul (1 minute cooldown, half duration of dark soul)
Glyph of Wild Imp (not really sure it’s worth it)
Glyph of Demon Training

Without the Glyph of Life tap, you will need healing - which should be doable in a raid environment.
Without it, you WILL run out of mana - simply because you won’t have the health to continue life tapping (need > 15% health). So either you’ll need to healthstone, siphon life or something else that will likely lead to dps loss. In any event, it should be fine.

After attacking a dummy for ten minutes, there was no other problems or lockups (if you encounter one, it will be the life tap one, which no longer allows life tap below 15% health). Otherwise, works great!

Enjoy.

I am torn on the ToC…

On one hand, it’s nice to keep corruption up.

On the other hand, the last demonbolt is never empowered from dark soul: knowledge (if mastery, helps that, I don’t know - but I assume it does.)

So, it might be worth removing ToC.

In the above, updated version, I did remove some Life Taps =)

Thanks.

This updated one should work very nicely.

Report =)

I noticed something as well. my gear is not as good as yours, but we seem to do more damage on raid bosses than on dummies, but that might be a function of raid members synergy and buffs. Since I was doing more dps on raid bosses than dummies most recently.

I was able to get a solid 15k on dummies with the latest macros.

I assume you would do even better next time in raid =)

Still 13k dps on dummie but that’s w/o doomguard 10 min buff.

Removed life tap from the soul fire line as it was still tapping 2 often.

Also I find ToC not usefull as w/o it in meta macro i coul keep corruption up often enough because it’s builded in the shadowbolt and soul fire macro.

Also my glyphs are: soul consumption, dark soul and demon training. Don’t see the use of the imp swarm glyph as it’s not a sustained dps increase.

Just did Imperator Mar’gok, LFR and ended up with 16.5k dps.

Better than I have done.

Everything worked out nicely. The only “error” was 1 too few life taps, but over such a long fight, that is not too bad, to manually throw one in.

My Gear is around ilevel 640, I think 638…it’s just under 640. =) So, I think that dps sounds about right.

The demonbolts is where our damage really comes from. We spike upwards always on demonbolt cycles.

Ok tested it tonight, and running through LFR’s first two wings of Highmaul, was able to pull down between 17-19.5 damage throughout, which put me anywhere from top 2-5 on the almighty damage meters. =)

Key was switching to the soul fire macro as soon as I had 5+ soul fires, which builds fury fastest.

Then, drop into meta with impunity with full fury and spam 4 demon bolts.

Cheers for the Macro =) I have been a Destro Lock for over two years, and have never used Demonology since leveling, just resonantly i have been noticing that i am always towards the bottom of the DPS meters even though i know the spec and rotation well. I really like destro even though some people seem to hate it but seems its time to try out another spec. I came across gnomesequencer on a youtube vid the other day and was very intrigued.

All set up and ready to go, off to the training dummy i did go.

Destruction - around 18k
Demonology - around 16k

What the hell’s going on there? i have no idea.

Destruction First boss of LFR - around 24k

Demonology First boss of LFR - around 29k

And this seems pretty consistent for me, demo always lower on a training dummy but always around 5k more on boss fights.

Anyway, I have made some changes to the macro supplied and thought i would post my mod.

The Opener (Raid boss only) should always be used with Draenic Intellect Potion 3 seconds before pull and then start casting Opener before boss pull. I tried to work the potion into the cast sequence but could not get this to work.

I have worked in the pet spell Wrathstorm and would recommended taking the talent for this pet, as you wont be able to out dps the buffed minion with a one button macro, the timings will be so hard to get to proc with the other talent buff. However if you want to use the other talent make sure you rename the pet and spell in the macro.

Soul Fire has been worked into the main rotation so there is no extra button for this just press ctrl and click to fire off a soul fire, this should be done on 3+ stacks MC, and dropping back into the normal rotation when needed.

Pwner all i have changed on this is imp swarm and dark soul are on a mod button, this is so i can control them. nothing worse then getting to a boss only too weight for all your cool downs as they got poped on trash.

Hardest part of this macro is remembering to press the mod buttons, but will not take long to get ust to.

Sequences["Opener"] = {
PreMacro = [[
#showtooltip Imp Swarm
/targetenemy [noharm][dead]
/petattack [@target,harm]
/petautocastoff [group] Threatening Presence
/petautocaston [nogroup] Threatening Presence
]],
"/castsequence [nomod]reset=target Soul Fire,Dark Soul: Knowledge,Hand of Gul'dan,Imp Swarm,Corruption,Summon Terrorguard,Shadow Bolt,Hand of Gul'dan,Metamorphosis,Doom,Demonbolt,Demonbolt,Touch of Chaos",
PostMacro = [[
/startattack
]],
}

Sequences['Damage'] = {
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
/petautocaston [nogroup] Threatening Presence
]],
'/use [noform: 0] Metamorphosis',
"/castsequence Hand of Gul'dan",
"/castsequence [nomod,nochanneling] reset=target Corruption,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt,Corruption,Life Tap,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt",
"/cast [mod:ctrl,combat] Soul Fire",
"/cast [pet:Kizgorod] Wrathstorm",
PostMacro = [[
/run UIErrorsFrame:Clear()
]],
}

Sequences['Pwner'] = {
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
/petautocaston [nogroup] Threatening Presence
]],
'/use [noform: 1] Metamorphosis',
'/castsequence reset=target/5 Doom,null',
"/castsequence [nochanneling] reset=target/5 Touch of Chaos,Demonbolt,Demonbolt,Demonbolt,Demonbolt",
'/cast [mod:alt,combat] Dark Soul: Knowledge',
'/cast [mod:ctrl,combat] Imp Swarm',
"/cast [pet:Kizgorod] Wrathstorm",
PostMacro = [[
/use [combat] Blood Fury
/use [combat]13
/use [combat]14
/run UIErrorsFrame:Clear()
]],
}

Rotation on a boss fight should look something like this.

Draenic Intellect Potion, 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,Shift 2,Shift 2,Shift 2,Shift 2,alt 3,3,3,3,3,3,2,2,2,2

(bit hard to say when to use shit 2 on this but just work it in as and when you need a Soul Fire)

Imp Swarm must be off CD for 1 to work so only use this on boss pull and do not use ctrl 3 on trash.

Someone that knows macros better then me, maybe able to work in timers or code it up a little smarter, as TBH i have no idea what half of the code is for or does. but everything seems to be working smoothly, i am also working on a AOE macro as well but that’s not ready yet.

would absolutely love an updated version of this. im using elvui i dont know what it is about it but my mod buttons wont work with GS. when i hit shift 1 or alt it simply doesnt work(shift 1 switches action bars). the opener also locks up after your first use. the dmg and meta macros are spot on. thank you for this i hope someone works the kinks out for this rotation!

Hello there, i’m just newbye GS user, meaning i have just DL,Install and copied the Opener,Damage and Pwner above into the Sequence folder…i’m excited to try and see what happens.

I really do look forward telling you how it works for me and ask for advices.
As i am running the game in ITA language, i’m pretty sure i need to rename the whole thing.
As i’m done all questions will come out, thanks for any help.

Thank you Neil, great set of macros there!

Few questions, first obviously being when can we get our hands on an AOE version?

Also, could you list the exact talents and glyphs for each macro (single target, add heavy) assuming you change talents depending on the fight.

Willing to donate if it helps the cause :slight_smile:

Hi i will post an update later today on this =)

But for now will answer a few questions:

Jarekt - " when i hit shift 1 or alt it simply doesnt work(shift 1 switches action bars)."

Should be an easy fix but cannot test till later as i am at work : Go to the keybinding menu and unbind any keybindings that change your actionbar.

I am sad to say i am a clicker so do not have that issue =’( have tried keyboard bindings for attacks but always end up running the wrong way when i need to move lol.

“the opener also locks up after your first use.” Ok my guess is here, you are using this wrong. the opener is ONLY for the start of a boss fight, the summon doomguard will be why its locking up, i have a alt version of the Opener that address this however the Opener is only just enough to build up the right amount of energy for two doom bolts the timing can become off and you will not have enough energy to cast two.

Matt - " Also, could you list the exact talents and glyphs for each macro (single target, add heavy) assuming you change talents depending on the fight. "

Talents i have taken are : Soul Leech, Shadowfury, Sacrificial Pact, Burning Rush, Grimoire of Supremacy, Archimonde’s Darkness, Demonbolt

Glyphs : Dark soul, Life Tap, Imp Swarm, Falling Meteor, Shadow Bolt, Soulwell

Of these for the macro you will need to have " IMP SWARM AND DEMONBOLT" the rest are personal choice.

Hey Neil,

Thanks for getting back to us. Getting paid and helping wow community out on the sly, my kind of guy :smiley:

Look forward to the update(s).

Ok here we go…

Sequences["Opener"] = {
PreMacro = [[
#showtooltip Imp Swarm
/targetenemy [noharm][dead]
/petattack [@target,harm]
/petautocastoff [group] Threatening Presence
/petautocaston [nogroup] Threatening Presence
]],
"/castsequence [nomod]reset=target Soul Fire,Dark Soul: Knowledge,Hand of Gul'dan,Imp Swarm,Corruption,Summon Terrorguard,Shadow Bolt,Hand of Gul'dan,Metamorphosis,Doom,Demonbolt,Demonbolt,Touch of Chaos",
PostMacro = [[
/startattack
]],
}

Sequences['Damage'] = {
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
/petautocaston [nogroup] Threatening Presence
]],
'/use [noform: 0] Metamorphosis',
"/cast Hand of Gul'dan",
'/cast [mod:ctrl] Dark Soul: Knowledge',
"/castsequence [nomod,nochanneling] reset=target Corruption,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt,Corruption,Life Tap,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt",
"/cast [mod:shift] Soul Fire,Soul Fire,Soul Fire,Corruption,Life Tap,Soul Fire,Soul Fire,Soul Fire",
"/cast [pet:Kizgorod] Wrathstorm",
PostMacro = [[
/run UIErrorsFrame:Clear()
]],
}

Sequences['Pwner'] = {
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
/petautocaston [nogroup] Threatening Presence
]],
'/use [noform: 1] Metamorphosis',
'/castsequence reset=target/5 Doom,null',
"/castsequence [nochanneling] reset=target Touch of Chaos,Demonbolt,Demonbolt,Demonbolt,Demonbolt",
"/cast Chaos Wave",
'/cast [mod:ctrl] Dark Soul: Knowledge',
'/cast [mod:shift] Imp Swarm',
"/cast [pet:Kizgorod] Wrathstorm",
PostMacro = [[
/use [combat] Blood Fury
/use [combat]13
/use [combat]14
/run UIErrorsFrame:Clear()
]],
}

Sequences['AOE'] = {
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
/petautocaston [nogroup] Threatening Presence
]],
'/use [noform: 1] Metamorphosis',
"/cast Hellfire",
"/cast Chaos Wave",
"/castsequence [nochanneling] reset=target Doom,Touch of Chaos,Touch of Chaos,Touch of Chaos,Touch of Chaos",
"/cast [pet:Kizgorod] Wrathstorm",
PostMacro = [[
/run UIErrorsFrame:Clear()
]],
}

Draenic Intellect Potion Should be used around 4 second before poss pull then start casting Opener.

This can be used as an alt to the Opener (will not hang if something on CD) but may not build up enough Demon Energy for the full cast sequence.


 Sequences["Opener"] = {
PreMacro = [[
#showtooltip Imp Swarm
/targetenemy [noharm][dead]
/petattack [@target,harm]
/petautocastoff [group] Threatening Presence
/petautocaston [nogroup] Threatening Presence
]],
"/cast Dark Soul: Knowledge",
"/cast Imp Swarm",
"/cast Summon Terrorguard",
"/castsequence [nomod]reset=target Soul Fire,Hand of Gul'dan,Corruption,Shadow Bolt,Hand of Gul'dan,Metamorphosis,Doom,Demonbolt,Demonbolt,Touch of Chaos",
PostMacro = [[
/startattack
]],
}

a longer cast sequence has been added to the shift Damage should help with manna and corruption up time. However i have noticed if you brake from normal to shift at the wrong time can be a bit odd, this may need a little more work, but better then my first post.

AOE

I have done very little testing on this and will most likely need work.

Talents i have taken are : Soul Leech, Shadowfury, Sacrificial Pact, Burning Rush, Grimoire of Supremacy, Archimonde’s Darkness, Demonbolt

Glyphs : Dark soul, Life Tap, Imp Swarm, Falling Meteor, Shadow Bolt, Soulwell

Of these for the macro you will need to have ” Grimoire of Supremacy, Imp Swarm AND Demonbolt” the rest are personal choice.

Oppss Just noticed an error i made on Damage. Fix below

Sequences['Damage'] = {
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
/petautocaston [nogroup] Threatening Presence
]],
'/use [noform: 0] Metamorphosis',
"/cast Hand of Gul'dan",
'/cast [mod:ctrl] Dark Soul: Knowledge',
"/castsequence [nomod,nochanneling] reset=target Corruption,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt,Corruption,Life Tap,Shadow Bolt,Shadow Bolt,Shadow Bolt,Shadow Bolt",
"/castsequence [mod:shift] Soul Fire,Soul Fire,Soul Fire,Corruption,Life Tap,Soul Fire,Soul Fire,Soul Fire",
"/cast [pet:Kizgorod] Wrathstorm",
PostMacro = [[
/run UIErrorsFrame:Clear()
]],
}

Hi,

I tried using the above macro, but for some reason there is about a 2-3 second delay between casting spells regardless of what spell its trying to use.

I spam 111111 etc, but its like the macro isnt registering and it would say cast corruption, character just stands there for a few seconds, then casts Shadow Bolt stands there again 2-3secs, second Shadow Bolt etc

Any idea’s why? My latency is 16ms home, and 22ms world.

Thanks in advance.