Steady Shot Macros, your questions answered by Strain of Blackhand

Since this question comes up so often, many hunters decide to throw in their ideas about macros when they have no clue what they're talking about which just creates more huntards that follow another huntards advice.

First let me start by saying that it is absolutely pathetic the way that hunters are forced into creating a macro and spamming it endlessly to maximize their DPS and you're foolish if you think you can maintain a 1.58 Second Shot Rotation without the the macro timing it for you, so don't tell me it's not needed because if it wasn't needed no one would bother to use it. Hopefully this will be changed soon, but until then here is how it's done.

Basic Steady Shot Macro Breakdown:

#showtooltip Steady Shot
/castsequence reset=3 Steady Shot, !Auto Shot
/castrandom [target=pettarget, exists] Kill Command
/script UIErrorsFrame:Clear()

This macro is solid for any build. When manually firing Arcane Shot or Multi-Shot, do it as soon as possible after a Steady Shot.

Now lets break down what everything does so that we might have a few less huntards here.

#showtooltip Steady Shot

This line simply shows the tooltip for Steady Shot when you hover your mouse over the macro icon. You can take out Steady Shot and just have #showtooltip and it will show the tool tip and icon for the spell you are going to cast next - meaning it will switch between Steady Shot and Auto Shot icons depending on what is going to be cast next. This, of course, will only work if you have selected the ? as your macro icon when you created it.

/castsequence reset=3 Steady Shot, !Auto Shot

This is the main line of the macro. It times your Steady Shot to start casting just after you fire an Auto Shot. Let's break down this line a little more.

reset=3

This is NOT how long it takes for the macro to reset after casting Steady Shot. What the reset=3 actually does is reset the /castsequence back to the first spell 3 seconds AFTER you stop spamming the button, meaning that it will NEVER reset if you are continously spamming it. I find that waiting 3 seconds is usually a little long when i want it to reset, Hence I use reset=1, because honestly if you're not hitting the button more then once per second you still don't understand the purpose of this macro.

Steady Shot, !Auto Shot

You can switch these around if you like, both have their pros and cons, overall it doesn't really make a difference. Having Steady Shot first will immeadiately start casting Steady, giving you slightly increased burst damage, but you'll probably end up clipping a bunch of Auto Shots when you switch targets. Having Auto Shot first is lower burst damage but you won't clip Auto Shots when switching targets. Honestly, just play with both see which you like more. I use Steady first because when I PVP I don't use Aimed Shot. Steady, Auto, Steady, Auto in about 3 seconds is more damage than I could ever get with Aimed.

/castrandom [target=pettarget, exists] Kill Command

This is where Kill Command checks if your pet has a target and then casts Kill Command when possible. Let's break down this line a little more too.

/castrandom

We use /castrandom because /cast causes Kill Command to clip Auto Shots.

[target=pettarget, exists]

This is the only conditional you need, because if your pet is dead, not out or just not attacking, he won't have a target and Kill Command won't try to cast. So, get rid of all that other stuff cluttering up your macro.

/script UIErrorsFrame:Clear()

To hide any errors you get while spamming your macro, this is the only line that you need. Hide() and Show() do absolutely nothing to actually clear the errors that you get so remove them from your macro.

Additions you can make to your Macro:

Pet abilities (i.e. Lightning Breath):
/cast [pet:Wind Serpent] Lightning Breath

Very simple, just copy and past that and turn off the pet's autocast.

The amount of Steady, Auto combinations you need also all depends on your attack speed, so you'll have to adjust this on your own. Go read up on shot rotations if you don't understand how to do this.

Alternatively, you can just add in shots manually. In this case it's best to simply just fire them as soon as possible if you're not sure about the timing. It's better to slightly clip 1 Auto Shot and get back to spamming your macro then waste that time in which you probably could have gotten off 2 Steady Shots.

Using Your Macro Correctly:

This macro is designed to be spammed furiously. If you're not hitting it about 20 times per second (maybe a little overkill) then you're losing DPS because you're not getting your Steady Shot to fire as quickly after an Auto Shot.

Problems with a Steady Shot Macro:

When Kill Command and Auto Shot are cast at the same time (not when Kill Command is cast during an Auto Shot) it will cause your Auto Shot to not begin immeadiately, but you'll barely even notice this and it'll have no impact on your DPS if your firing you macro off 20 times per second.

If your pet is out of range of its target when you crit your target, the macro will get stuck trying to cast Kill Command. As far as I know, there is currently no way to check your pet's range for Kill Command. There are a couple work arounds for this:

1. Have a seperate macro without Kill Command, that you switch to when you see this situation arise, or

2. Change the Kill Command line to /castrandom [nomodifier, target=pettarget, exists] Kill Command
When using it with "nomodifier", if you see Kill Command getting stuck, hold down Shift or Alt or Ctrl, and it will stop trying to cast Kill Command.

Using /stopcasting in the wrong place in a macro breaks the entire macro, because it stops ALL casting - meaning that nothing will ever cast, not Steady Shot, not Auto Shot. It's not that your macro won't work, just that it can't be spammed, which completely defeats the purpose of the macro and would require you to manually time your shots.