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 ydvalue applies when combat reach naturally extends melee range beyond the5 ydmelee minimum - At base run speed, crossing
6.67 ydtakes 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:
- Auto Shot fires
- Move toward the target
- Enter melee range
- Perform the melee attack
- Turn and move back out
- Reach minimum ranged distance
- 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 speed1.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:
- Auto Shot fires → begin moving in
- Enter melee range → activate the melee attack
- Melee attack occurs → turn and move out
- 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–166weapon damage2.90 secspeed- 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 secGCD~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 seccooldown - 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:
- Do not delay an important ranged attack unnecessarily
- Begin moving immediately after the ranged attack
- Cross the dead zone efficiently
- Arrive when the melee swing is already near completion
- Queue or use the desired melee ability
- Turn out immediately after the melee event
- 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.