Melee Weaving - classic-hunter/forever-hunter GitHub Wiki

⚔️ Melee Weaving

Melee weaving uses the downtime between ranged attacks to move into melee range, perform one or more melee attacks, and return to ranged distance before the next ranged attack is delayed.

The mechanic is simple in concept:

Fire Ranged Attack → Enter Melee Range → Perform Melee Attack → Return to Ranged Range

The difficulty comes from dead-zone travel, reaction time, Global Cooldowns, melee swing timing, and the interaction between melee and ranged swing timers.


Summary

  • Melee weaving uses otherwise-unused time between ranged attacks
  • For most NPCs and bosses, the practical stationary dead-zone width is approximately 6.67 yd
  • Ordinary player-to-player or very small-target interactions can be closer to 6 yd
  • The 6.67 yd value applies when combat reach naturally extends melee range beyond the 5 yd melee minimum
  • At base run speed, crossing 6.67 yd takes about 0.95 sec
  • A full in-and-out trip takes about 1.90 sec before reaction or ability delays
  • At 130% movement speed, round-trip travel falls to about 1.47 sec
  • Raptor Strike is an on-next-swing melee attack
  • Raptor Strike, Mongoose Bite, Strider Kick, and Wing Clip can trigger normal melee on-hit effects
  • Windfury's extra attack occurs immediately on the same server tick
  • White melee swings can also be woven when timing permits
  • Auto Attack / Auto Shot automatic switching should generally be disabled for weaving
  • Current Forever behavior: a melee swing resets the ranged swing timer
  • Ranged attacks do not currently reset the melee swing timer

See Anatomy of Range Checks for the underlying range model.


🏹 The Basic Weave

After a ranged attack fires, the ranged weapon enters its cooldown.

That cooldown creates a window where the Hunter can potentially perform melee actions without losing ranged damage.

A basic weave looks like:

  1. Auto Shot fires
  2. Move toward the target
  3. Enter melee range
  4. Perform the melee attack
  5. Turn and move back out
  6. Reach minimum ranged distance
  7. Reactivate Auto Shot

The goal is to complete the entire sequence before movement and melee actions cause meaningful delay to the next ranged attack.


📏 Dead-Zone Travel

The most important range value for melee weaving is not the absolute melee or ranged boundary.

It is the distance between them.

Dead-Zone Width = Minimum Ranged Boundary - Maximum Melee Boundary

Classic range testing shows two useful cases.

Situation Approximate Dead-Zone Width
Melee range held to the 5 yd minimum ~6 yd
Combat reach extends melee beyond 5 yd ~6.67 yd

The second case is generally the more useful model for PvE.


Why PvE Uses ~6.67 Yards

For ordinary non-Tauren player-to-player interactions, the melee formula is held to its 5 yd minimum.

This produces approximately:

11 yd Minimum Ranged - 5 yd Maximum Melee = ~6 yd

However, Classic testing shows that when combat reach becomes large enough to extend melee range beyond 5 yd, the relationship changes.

The stationary melee calculation becomes:

Melee Range = Attacker Reach + Target Reach + 4/3

The tested ranged minimum behaves approximately as:

Minimum Ranged = 8 + Attacker Reach + Target Reach

Subtracting them:

Dead Zone ≈ (8 + Reach) - (Reach + 4/3)

The combat-reach terms cancel:

Dead Zone ≈ 8 - 4/3

Dead Zone ≈ 6.67 yd

This is exactly the pattern observed in the Tauren testing.

Tauren melee range extended beyond 5 yd, but the distance between the melee and ranged boundaries remained approximately:

~6.6–6.67 yd

Most normal NPCs and bosses have enough combat reach that this is the more useful practical PvE case.

Therefore, for melee-weaving calculations:

One-Way Dead-Zone Travel ≈ 6.67 yd

Round-Trip Dead-Zone Travel ≈ 13.34 yd

This does not mean every NPC has the same absolute melee or ranged range.

It means the gap between those boundaries is approximately 6.67 yd once the melee-range minimum is no longer controlling the result.

See Anatomy of Range Checks for the full derivation and Classic testing.


🏃 Movement Time

Base player run speed is approximately:

7 yd/sec

Using the normal PvE working distance:

Dead-Zone Width ≈ 6.67 yd

one-way travel takes:

6.67 / 7 = ~0.95 sec

A complete trip into melee and back to ranged distance requires:

6.67 × 2 = 13.34 yd

At base run speed:

13.34 / 7 = ~1.90 sec

So even with perfect movement and zero reaction delay:

Minimum Base-Speed Travel ≈ 1.90 sec


Movement Speed Formula

For a movement-speed modifier:

One-Way Travel = 6.67 / (7 × MovementSpeedMod)

Round trip:

Total Travel = 13.34 / (7 × MovementSpeedMod)

Where:

  • 1.00 = normal movement speed
  • 1.10 = 110%
  • 1.30 = 130%

130% Movement Speed

At 130% movement speed:

7 × 1.30 = 9.1 yd/sec

One-way travel:

6.67 / 9.1 = ~0.73 sec

Round-trip travel:

13.34 / 9.1 = ~1.47 sec

Compared with normal movement:

1.90 - 1.47 = ~0.43 sec saved

That is a substantial improvement in a rotation where tenths of a second can determine whether the next ranged attack is delayed.


⏱️ Total Weave Time

Travel alone does not determine the actual weave duration.

A useful model is:

Weave Time = Travel Time + Reaction Time + Ability / Swing Delays

The movement portion can be calculated directly.

The rest depends on execution and the type of melee attack being used.


Reaction Points

A typical weave contains roughly four major reaction points:

  1. Auto Shot fires → begin moving in
  2. Enter melee range → activate the melee attack
  3. Melee attack occurs → turn and move out
  4. Enter ranged distance → reactivate Auto Shot

Even with very clean play, each transition introduces some delay.

Across the complete weave, excellent execution may accumulate approximately:

~0.6–0.7 sec total reaction time

At base movement speed:

~1.90 sec Travel + ~0.6–0.7 sec Reaction

gives approximately:

~2.5–2.6 sec

before considering additional swing or ability delays.


Practical Timing

A useful baseline at normal movement speed is:

Total Weave Time Interpretation
~2.6 sec Exceptionally fast
~2.8–3.0 sec Realistic clean weave
>3.0 sec Increasingly likely to delay ranged damage

The exact acceptable weave duration depends on:

  • ranged weapon speed
  • ranged haste
  • where the weave begins within the ranged swing cycle
  • melee swing availability
  • GCD state
  • reaction time
  • current Forever swing-reset behavior

🌐 Global Cooldown Interaction

Movement speed does not always convert directly into a faster usable melee attack.

Most Hunter abilities use the:

1.5 sec Global Cooldown

If an instant ranged ability is used immediately before moving in, the Hunter may reach melee range before the GCD has finished.

For example, if inbound movement takes:

~0.73 sec

but the melee ability is still blocked by the GCD, the remaining GCD becomes the limiting factor.

This means faster movement may provide little benefit to the inbound ability timing once the Hunter can already cross the dead zone faster than the remaining GCD.

Movement speed still helps substantially on the return trip because the Hunter needs to get back into ranged distance as quickly as possible.


🗡️ Raptor Strike

Raptor Strike is an on-next-swing melee attack.

It modifies the Hunter's next main-hand melee swing rather than occurring immediately when the button is pressed.

Conceptually:

Queue Raptor Strike → Next Main-Hand Swing Becomes Raptor Strike

Raptor Strike is a yellow melee attack.

It can:

  • Crit
  • avoid Glancing Blows
  • trigger Windfury
  • trigger applicable melee on-hit effects

Because the attack waits for the next melee swing, melee swing timing is extremely important.


Queueing Raptor Strike

For weaving, Raptor Strike should generally be queued after entering melee range.

Pre-queueing Raptor Strike while still at ranged distance can create undesirable behavior or delays.

A cleaner sequence is:

Enter Melee Range → Queue Raptor Strike → Swing Occurs → Move Out

The exact timing depends on the current melee swing timer.


⚪ White Melee Weaving

A Hunter does not need to use a special melee ability for every weave.

A normal white melee swing can also be inserted if the swing timer aligns with the ranged downtime.

This can be particularly valuable with:

  • slow, high-damage melee weapons
  • Windfury
  • melee on-hit effects

The limiting factor is whether the melee swing becomes available quickly enough after entering melee range.


🌪️ Windfury

Windfury can trigger from applicable Hunter melee attacks.

The extra Windfury attack occurs immediately on the same server tick as the triggering attack.

This means it does not require waiting for another melee swing.

The following Hunter attacks can trigger Windfury:

  • Raptor Strike
  • Mongoose Bite
  • Strider Kick
  • Wing Clip
  • normal white melee attacks

Other applicable melee on-hit effects can also trigger from these attacks.

Examples include:

  • Fiery Weapon
  • Dragonbreath Chili
  • other generic melee on-hit effects

🦅 Mongoose Bite

Mongoose Bite deals melee weapon damage plus its ability bonus.

Its general damage structure is:

Mongoose Bite = Melee Weapon Damage + Bonus Damage

Forever allows Mongoose Bite to be used offensively through Expose Prey against a Hunter's Mark target.

This changes Mongoose Bite from a primarily reactive Classic ability into a potential rotational melee attack.

Mongoose Bite can:

  • Crit
  • trigger Windfury
  • trigger normal melee on-hit effects

For rotational modeling, its cooldown is:

5 sec

See Attack Formulas for the damage calculation.


🐦 Strider Kick

Strider Kick deals:

100% Melee Weapon Damage

It also grants:

+30% Movement Speed for 3 sec

and has an:

8 sec Cooldown

Strider Kick can be used while disarmed or without a main-hand weapon equipped.

It can also:

  • Crit
  • trigger Windfury
  • trigger generic melee on-hit effects

The movement-speed effect is particularly useful for weaving because it can accelerate the return trip through the dead zone.


✂️ Wing Clip

Wing Clip is primarily a utility ability but still performs a melee attack interaction.

It can trigger:

  • Windfury
  • applicable melee on-hit effects

This makes it mechanically relevant even when its direct damage is negligible.


🔄 Auto Attack and Auto Shot Switching

Classic Hunter behavior can automatically switch between:

  • Auto Shot
  • Auto Attack

based on the Hunter's distance from the target.

For melee weaving, this behavior is generally undesirable.

Automatic switching can:

  • create additional Auto Shot retry behavior
  • delay ranged reactivation
  • make swing timing less predictable

For controlled weaving:

Automatic Auto Attack / Auto Shot switching should generally be disabled

The Hunter should explicitly control when ranged and melee attacks begin.

See Shot Mechanics for Auto Shot retry behavior.


⚠️ Current Forever Swing Reset Behavior

Current Forever behavior differs from the ideal independent-swing model.

At present:

A melee swing resets the ranged swing timer

This means the cost of a weave is not determined only by how long the Hunter remains inside the dead zone.

The melee attack itself can restart the ranged weapon cycle.

This has major consequences for weapon selection and rotation design.


Ranged Does Not Reset Melee

The reverse interaction does not currently occur.

Ranged attacks do not reset the melee swing timer

This allows the melee swing to continue progressing while the Hunter is at ranged distance.

A properly timed weave can therefore enter melee range with a swing already close to completion.

That is much better than entering melee and beginning a fresh full melee weapon timer.


Why Swing Timing Matters

Suppose the Hunter uses a 3.8 sec melee weapon.

If the Hunter enters melee immediately after the previous melee swing reset, waiting for the next attack could take nearly:

3.8 sec

That is far too long for a normal weave.

Instead, the goal is to allow the melee timer to progress while fighting at range and enter melee when the swing is nearly ready.

Conceptually:

Ranged Rotation → Melee Swing Timer Progresses → Enter Melee Near Swing Completion → Attack Immediately

This dramatically reduces the time spent waiting inside melee range.


🪓 Why Slow Melee Weapons Are Valuable

Melee weapon speed affects both:

  • damage per melee event
  • available timing between melee swings

Slow weapons generally deliver larger individual hits.

Because weaving tries to insert a limited number of melee events into ranged downtime, damage per attack is often more important than sustained melee DPS.


Equal-DPS Weapon Example

If two weapons have identical DPS but different speeds:

Damage per Swing ∝ Weapon Speed

Comparing a 3.8 sec weapon with a 3.2 sec weapon:

3.8 / 3.2 = 1.1875

The 3.8 sec weapon deals approximately:

18.75% more weapon damage per swing

Comparing 3.8 sec with 2.9 sec:

3.8 / 2.9 ≈ 1.31

or approximately:

31% more weapon damage per swing

for equal weapon DPS.

For weaving, those larger individual attacks can be extremely valuable.


🏹 Ranged vs. Melee Weapon Event Value

Consider Rhok'delar as an example ranged weapon:

  • 89–166 weapon damage
  • 2.90 sec speed
  • approximately 43.97 DPS

Average weapon damage:

(89 + 166) / 2 = 127.5

Using 22 DPS ammunition:

Ammo Damage = 22 × 2.9 = 63.8

Before RAP:

127.5 + 63.8 = 191.3 Raw Damage per Shot

Now compare a Grand Marshal's Glaive:

  • approximately 235–353
  • 3.80 sec
  • approximately 77.4 DPS

Average weapon damage:

(235 + 353) / 2 = 294

Comparing the raw weapon events:

294 / 191.3 ≈ 1.54

The melee weapon event is approximately:

54% larger

before Attack Power and other modifiers.

This illustrates why weaving can be powerful even when sustained melee DPS is not dramatically higher.

The Hunter is inserting a large discrete melee event into downtime between ranged attacks.


📊 Rotational Space

Whether a Hunter can weave comfortably depends heavily on how much of the rotation is already occupied by ranged abilities.

A useful way to think about this is rotational space.

Within a 15 sec reference window:

Rotation Approximate Occupied Time Rotation Usage Free Time
BM ranged baseline ~9.0 sec ~60% ~6.0 sec
MM + Sniper Shot ~12.5 sec ~83% ~2.5 sec
MM/SV + Sniper + Strider ~15.3 sec ~102% ~0
SV + Mongoose + Strider ~16.3 sec ~109% Oversubscribed

These are rotational models rather than exact encounter simulations.

They illustrate how different builds create very different opportunities for melee weaving.


Model Assumptions

The comparison above assumes approximately:

  • 1.5 sec GCD
  • ~15% ranged haste
  • Aimed Shot practical cast around 1.5 sec
  • Sniper Shot practical cast around 3.5 sec
  • Serpent Sting every 15 sec
  • Arcane Shot every 6 sec
  • Summon Hawk every 6 sec
  • Multi-Shot / Aimed Shot shared 6 sec cooldown
  • Sniper Shot every 15 sec
  • Mongoose Bite every 5 sec
  • Strider Kick every 8 sec

The exact result changes with:

  • haste
  • talents
  • encounter movement
  • missed casts
  • target availability
  • server behavior
  • player execution

🧠 Rotation Implications

Beast Mastery

Beast Mastery has relatively large amounts of open rotational time.

That makes it naturally friendly to weaving.

There is more room to:

  • travel through the dead zone
  • perform melee actions
  • recover from imperfect movement

without immediately colliding with another required ranged ability.


Marksmanship

Adding Sniper Shot significantly increases rotational occupancy.

The available time for weaving becomes tighter.

A weave that takes:

~2.8–3.0 sec

may already consume nearly all available free rotational space depending on cooldown alignment.

Movement speed and execution therefore become much more important.


Survival

A rotation incorporating both:

  • Mongoose Bite
  • Strider Kick

can become oversubscribed before every other desired ranged ability is even considered.

At that point, the problem is no longer simply:

Can I reach melee range?

It becomes:

Which abilities are actually worth using when multiple abilities compete for the same limited time?

This turns melee weaving into a rotational-priority problem rather than simply free bonus damage.


🏃 Movement Speed Value

Movement speed directly reduces one of the largest fixed costs of weaving.

At base speed:

Round-Trip Travel ≈ 1.90 sec

At 130% speed:

Round-Trip Travel ≈ 1.47 sec

Savings:

~0.43 sec

However, movement speed cannot eliminate:

  • reaction time
  • GCD restrictions
  • melee swing timing
  • ability cooldowns
  • ranged swing resets

As travel time becomes shorter, those other factors represent a larger portion of the total weave.

Movement speed therefore has diminishing returns for total weave duration.


🎯 Practical Weaving Priorities

A clean weave generally follows these priorities:

  1. Do not delay an important ranged attack unnecessarily
  2. Begin moving immediately after the ranged attack
  3. Cross the dead zone efficiently
  4. Arrive when the melee swing is already near completion
  5. Queue or use the desired melee ability
  6. Turn out immediately after the melee event
  7. Reactivate Auto Shot as soon as ranged distance is reached

The faster the Hunter completes each transition, the less ranged damage is sacrificed.


🔬 What to Measure

When evaluating a weave, useful measurements include:

  • Auto Shot timestamp before the weave
  • time melee movement begins
  • time melee range is reached
  • melee attack timestamp
  • time movement outward begins
  • time ranged distance is reached
  • next Auto Shot timestamp
  • whether the melee attack reset the ranged swing
  • whether Auto Shot entered a retry state

The total weave should be evaluated against the expected ranged timeline rather than judged only by how quickly the melee attack occurred.


📐 Practical Timing Reference

For most PvE targets:

Dead-Zone Width ≈ 6.67 yd

At base movement speed:

One-Way Travel ≈ 0.95 sec

Round-Trip Travel ≈ 1.90 sec

With excellent reaction time:

Practical Fast Weave ≈ 2.5–2.6 sec

For normal clean execution:

Typical Good Weave ≈ 2.8–3.0 sec

At 130% movement speed:

Round-Trip Travel ≈ 1.47 sec

These are useful working values rather than hard timing limits.

Target combat reach, movement, swing timing, haste, and current server behavior can all shift the real result.


Related Pages