THIS IS NOT MY GUIDE BUT IT'S VERY USEFUL AND I DIDN'T FIND IT HERE. IT'S BY Uncas of Hellscream
How to Build a /castsequence Macro, by Uncas of Hellscream
Lately, I have come to realize that using a /castsequence macro is necessary to maximize your DPS in the world of weaving.
But, I could not find a guide to how to build one, since we all know that what order we use the cast sequence is going to be dependent on your current weapon speed. As such, I am writing this general guide to building a cast sequence.
Facts you will need:
/castsequence macros are meant to be spammed. That's how they work. Each successive push will do the next attack in the macro (if the global cooldowns and skill cooldowns allow it.)
Weapon Auto Shot Speed (WSS): weapon dependent
Global Cool Down (GCD): 1.5sec
Multi-Shot Cool Down (MSCD): 10sec, I do not know of a way to speed this up (sans Readiness [talent], Zul'Gurub trinket)
Arcane Shot Cool Down (ASCD): 5 to 6sec depending on Improved Arcane Shot [talent]
Cool Down Next Shot Gap = .1 sec. I use this value because I want to. If you don't like it, use what value you want and still follow the same steps.
Items you probably need:
A piece of paper
A metric ruler (1cm = 1sec)
A Brief Discussion
The goal is to squeeze as many abilities during a selected cooldown phase. As such two things are true. Any Auto Shot gap with instant shot in it should have that instant shot following a Steady Shot. Since you most likely won't have a WSS slow enough to fit two Steady Shots into a single Auto Shot gap, the most effective way to place two Steady Shots together will be Steady, Auto, Steady. And, you never want to delay your Auto Shot, if possible. Abilities used at the end of your macro should not result in a skill being on cooldown on successive runs through the macro.
As you go through this, you will understand the difficulty of making a highly efficient macro for some bow/gun/crossbow speeds. Remember, you can consider changing the speed of your Arcane Shot cooldown, if you are so inclined. It may help you find a good rotation for your weapon's speed.
Step 1: Decide what time cooldown you should base your macro on.
Since Multi-Shot has the highest damage potential when multiple mobs are around and Arcane Shot ignores armor, these are the obvious choices for what to base your /castsequence on.
Option A. ASCD - probably the cooldown that should be used when crowd control mobs are present and you don't want to use Multi-Shot
Option B. MSCD
Option C. 2 ASCD
Option D. 3 ASCD - beyond three ASCDs (about 18sec) you will start to run out of room in your macro.
Divide each of these values by WSS. This will tell you the number of Auto Shots will be present for each option. Next, decide what you want to go with. If your macro is for crowd control situations, discount Option B. Take your calculated values and take the one that has the highest value in the "tenths" position.
EX WSS = 2.61 ASCD = 6,12,18 MSCD = 10
MSCD/WSS = 3.83
ASCD/WSS = 2.3, 4.59, 6.88
* If your result here is a value slightly over a whole number, you will have a problem. Your cooldown will be longer then your nearest Auto Shot and you will need to account for this later (usually by adding an additional Auto, Steady to the end of your macro).
* So, if you use a 2.44 speed weapon, use the 2ACSD/WSS = 4.92, not a MSCD/WSS = 4.09
* In other words, a little bit of free time where all your cooldowns are over before an Auto Shot is better than an Auto Shot rotation being done before the cooldowns.
Decide what you want to use now. The best value here is 6.88 (.88 > .83 > .59 > .3) for 3 ASCD, but, I don't want to have rougly 18-10sec where multishot is on cooldown, since this macro is for when no crowd controled NPCs are around. The second best cooldown, then, is 3.83.
This is your call, and you may have to revisit this step later, but it's all dependent on what you're building your macro for.
OK, we went with the weave based on the MSCD. This will mean 1 Arcane Shot, because 2 Arcane Shots is a 12sec rotation.
Step 2.
Use your paper and ruler and draw the amount of Auto Shots that represent the whole number greater than your value. In our example, we would draw out 4 Auto Shot gaps so there would be a zero with 2.61sec spaced points to 10.44.
Step 3: Efficiency Check.
Take your total weave time and divide by (GCD + next shot gap). This tells you the maximum amount of GCDs you can fit in your macro.
In this case, 10.44/1.6 = 6.5. So 6 global cooldowns.
Step 4: Get the number of Steady Shots.
Count up your total number of instant shots that you will cast and subtract it from the total global cooldowns that you will have. In this case, 6-2 = 4. So, we have to place 4 Steady Shots into our macro. NOTE: If you have a very fast bow, this will be very difficult to achieve but will be accounted for later.
Step 5: Place your shots.
At 0.1 place the first Steady Shot on your graph. Draw a line to 1.6 to account for the GCD of Steady Shot. Place your first instant (go with what you based your rotation on) and place a mark for where the GCD ends. Continue placing shots. Place your remaining Steady Shots whereever you can avoid delaying your Auto Shots. Place any Arcane Shots so that they do not interfere with each other's cooldown. Remember, Arcane and Multi are most efficient when following a Steady Shot in an Auto Shot gap. Also, the most efficient way to space Steady Shots is Steady, Auto, Steady (this Steady Shot should always be basically .1 to .2sec after the proceeding Auto). Also, if a GCD ends within .5 sec of an Auto Shot, do not place a shot .1sec after that GCD ends, because you will delay your Auto Shot. Just fire your next shot .1sec after that particular Auto.
* At this point, if you can fit more than one Steady Shot into an Auto Shot gap, feel lucky. You have already identified the amount of instant shots you have and can probably quickly place all your skills.
Step 6: Write your cast sequence.
Double check it to make sure NO Auto Shots are delayed and no cooldowns overlap.
If you do all this and you cannot fit all your Steady Shots, you basically have five choices:
A. Just take a Steady Shot out of your macro.
B. Consider that your Steady Shot actually fires faster then 1.5sec, so you may be able to squeeze in an Auto Shot. Global cooldown is refreshed when the spell ends, for spells with a casting time less than 1.5 seconds, and greater than 0.5 seconds. Thus, it is possible to chain Steady Shots with a modified casting time of 1.0 seconds.
C. Go back to Step 1, and choose to rebuild your macro based on a different set of cooldowns.
D. Add an additional Auto onto the end of your macro and return to Step 2. This choice decides to not maximize ACSD or MSCD, but will now attempt to maximize GCDs.
E. Place an extra Auto, Steady on the end... though this ruins the efficiency of your Arcane or Multi-Shot cooldowns.
* What you do here is up to you. You may want to play these options out and test which macro will give you the best DPS.
This particular example leads us to this order:
Auto, Steady, instant, Auto, Steady, Auto, Steady, instant, Auto, Steady.
Note that you end with a Steady Shot, because your last Auto Shot is also your first Auto Shot. What you end up with is a macro that doesn't delay your Auto and provides the maximum amount of GCD usage.
Concerns
This /castsequence, there is a lot of time where you can use Arcane Shot, but you don't.
Yes, this is a value call. Is the lost time of Arcane Shot better or worse than maximizing the efficiency of Multi-Shot/Auto Shot? Only you can decide. Build a second macro based on the 12sec rotation. I hope you have the skills to do that now and test it out. In this particular case, doing so would actually be a 13.05 sec rotation because you have to account for your Auto Shot.
Build this macro as well and do some testing on Dr. Boom (in Netherstorm). Because the answer will be truly gear/spec dependent as to what shot is more valuable to you, but obviously, when there are multiple un-CC'ed targets, maximizing Multi-Shot will be in your best DPS interest.
What about when CC is present?
Build a macro based on single Arcane Shot cooldown or maybe multiples of ASCD, depending on your WSS. I think you know how to do this now.
What about spec/gear/situations where Steady Shot is fired noticbly faster then the GCD of 1.5 sec?
Well, I hope you know how to account for that. As long as your WSS > then 1.5 + Steady Shot's actual firing speed, you can make a more efficient macro for Steady Shots. Can you see now why a 3.6 speed weapon would really rock for DPS? I hope so!
I am built for speed, cause I am Beast Mastery. Fast weapon, rapid firing, haste trinket speed freak!
Obviously, these weavings will not be as important to you, as your DPS is based on pumping out Auto and Steady ASAP. In that case, you'd be best served by /castsequence Auto Shot, Steady Shot and manually doing Arcane and Multi-Shot. It's really up to you because with all the haste, your Auto Shot gaps get to be quite variable. This /castsequence guide is for building macros under fixed Auto Shot gap conditions. BUT, it never hurts to build some /castsequence macros and test it out. However, a fast casting BM hunter probably shouldn't be worried about tiny delays in Auto Shot.
Conclusion
This is how to build a macro for your current gear/spec/conditions around you. Since all the possibilities are quite varying, I hope this helps you understand how to build a proper /castsequence for yourself. I am not saying that the one I have here is the BEST, but I know it is pretty darn good. If you understand how I came up with it, then you can either improve on it or build your own to suit your tastes.
By popular demand, here are some macros that you can use depending on what WSS you're using. I use the add-on Improved Error Frame to handle any error messages I might recieve while spamming the macro. Additionally, some of these (you'll have to test for yourself), work better depending on your spec (Beast Mastery, Marksmanship with 5/5 Improved Arcane Shot, etc). If a macro listed below 'doesn't work' for you, it's probably because it was written for a talent build different than your own. Do not just look at the weapon speed and assume "This is right for me." Make sure when making your macro, you pick the icon that is the red Question Mark (?). That way, the button changes to the action that will be next.
Full out, no crowd control, 2.90 base weapon speed (such as Sunfury Bow of the Phoenix):
/castsequence reset=5/combat Auto Shot, Steady Shot, Multi-Shot, Auto Shot, Steady Shot, Auto Shot, Steady Shot, Arcane Shot, Auto Shot, Steady Shot
Full out, with crowd control:
/castsequence reset=5/combat Auto Shot, Steady Shot, Arcane Shot, Auto Shot, Steady Shot, Auto Shot, Steady Shot
/script UIErrorsFrame:Hide()
/castsequence reset=6 Steady Shot, Auto Shot, Arcane Shot, Auto Shot, Steady Shot, Auto Shot
/script UIErrorsFrame:Clear()
/script UIErrorsFrame:Show()
Mana conservative, with or without crowd control:
/script UIErrorsFrame:Hide()
#Show steady shot
/castsequence reset=4/combat Auto Shot, Steady Shot, Auto Shot, Steady Shot, Auto Shot, Steady Shot
/script UIErrorsFrame:Clear()
/script UIErrorsFrame:Show()
Full auto (1.57 speed when Rapid Fire is active, macro built on a 15sec duration), with or without CC, I was running out of room to build both with and without Multi-Shot. Do what you want.
/castsequence Auto Shot, Arcane Shot, Auto Shot, Steady Shot, Auto Shot, Steady Shot, Auto Shot, Steady Shot, Auto Shot, Arcane Shot, Auto Shot, Steady Shot, Auto Shot, Steady Shot, Auto Shot, Steady Shot, Auto Shot, Steady Shot
Full out, no crowd control, 2.80 base weapon speed (such as Steelhawk Crossbow):
/script UIErrorsFrame:Hide()
/castsequence reset=3 Auto Shot, Steady Shot, Arcane Shot, Auto Shot, Steady Shot, Multi-Shot, Auto Shot, Steady Shot, Arcane Shot, Auto Shot, Steady Shot
/script UIErrorsFrame:Clear()
/script UIErrorsFrame:Show()
Full out, with crowd control:
/script UIErrorsFrame:Hide()
/castsequence reset=2 Auto Shot, Steady Shot, Arcane Shot, Auto Shot, Steady Shot
/script UIErrorsFrame:Clear()
/script UIErrorsFrame:Show()
Full out, no crowd control, 2.70 base weapon speed (such as Wolfslayer Sniper Rifle):
/script UIErrorsFrame:Hide()
/castsequence reset=3/combat Auto Shot, Steady Shot, Arcane Shot, Auto Shot, Steady Shot, Multi-Shot, Auto Shot, Steady Shot, Arcane Shot, Auto Shot, Steady Shot
/script UIErrorsFrame:Clear()
/script UIErrorsFrame:Show()
Full out, with crowd control:
/script UIErrorsFrame:Hide()
/castsequence reset=2/combat Auto Shot, Steady Shot, Arcane Shot, Auto Shot, Steady Shot
/script UIErrorsFrame:Clear()
/script UIErrorsFrame:Show()
Also keep in mind you can add additional lines (assuming you have room) that include things like Furious Howl (if you have a wolf), trinkets, etc. Anything that doesn't trigger a global cooldown or is on a pet bar.