Jump to content

Skill Dual Wield: Difference between revisions

From EverQuest Legends Wiki
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 7: Line 7:
The calculator provides a target-neutral comparison between two one-handed weapons and one two-handed weapon.
The calculator provides a target-neutral comparison between two one-handed weapons and one two-handed weapon.


It is a '''normalized weapon comparison''', not a complete average-DPS simulator. Its result is most useful when comparing weapons on the same character against the same type of target, particularly when the relevant weapon skills are similarly trained.
It is a '''normalized weapon comparison''', not a complete average-DPS simulator. Its result is most useful when comparing weapons on the same character against the same target when the relevant weapon skills are similarly trained.


=== Calculator Score ===
=== Calculator Score ===


The calculator uses the traditional weapon-score benchmark:
The calculator uses the traditional normalized weapon-score comparison:


<pre>
<pre>
Line 30: Line 30:
</pre>
</pre>


The factor of <code>2 × damage</code> is a traditional comparison benchmark sometimes called the weapon's "magic number." It should not be interpreted as the exact average damage of every successful hit.
The factor of <code>2 × damage</code> is a comparison benchmark, not the exact average damage of every successful hit.


The calculator automatically tests both one-handed arrangements:
The calculator automatically tests both one-handed arrangements:
Line 37: Line 37:
* Weapon B in primary and Weapon A in secondary.
* Weapon B in primary and Weapon A in secondary.


This is necessary because the primary weapon attacks whenever its own timer is ready, while the secondary weapon's attack opportunity is additionally limited by the Dual Wield check.
This matters because the primary and secondary weapons swing independently, but the secondary weapon's attack opportunity is additionally gated by the Dual Wield check.


The calculator does not currently model:
The calculator does not currently model:


* Hit rate or target avoidance.
* Target avoidance or exact hit rate.
* Different weapon-skill values or skill caps.
* Unequal weapon-skill values.
* STR, ATK, Offense, or target mitigation.
* STR, ATK, Offense, or target mitigation.
* Double Attack, Triple Attack, flurry, critical hits, or special attacks.
* Double Attack, Triple Attack, flurry, critical hits, or special attacks.
* Proc damage or hand-specific proc rates.
* Proc damage or hand-specific proc behavior.
* Haste rounding, minimum-delay rules, or other timer rounding.
* Haste rounding, minimum-delay rules, or other timer rounding.
* Stances, invocations, disciplines, or temporary combat modifiers.
* Stances, invocations, disciplines, or temporary combat modifiers.
Line 58: Line 58:
'''Confirmed on EverQuest Legends:''' the primary and secondary weapons use independent attack timers.
'''Confirmed on EverQuest Legends:''' the primary and secondary weapons use independent attack timers.


Each weapon uses its own delay. A fast secondary weapon may therefore reach multiple offhand attack opportunities before a slower primary weapon reaches its next attack.
Each weapon uses its own delay. A fast secondary weapon can therefore reach multiple offhand attack opportunities before a slower primary weapon reaches its next attack.


Equipping a slower primary weapon does not directly slow the secondary weapon, and equipping a slower secondary weapon does not directly slow the primary weapon.
Equipping a slower primary weapon does not directly slow the secondary weapon, and equipping a slower secondary weapon does not directly slow the primary weapon.
Line 64: Line 64:
=== Offhand Attack Opportunities ===
=== Offhand Attack Opportunities ===


When the secondary weapon's timer becomes ready, the game performs a Dual Wield check. A successful check permits the secondary attack opportunity to proceed; a failed check produces no secondary attack for that timer cycle.
When the secondary weapon's timer becomes ready, the game performs a Dual Wield check.
 
A successful check permits the secondary attack opportunity to proceed. A failed check produces no secondary attack for that timer cycle.


Higher Dual Wield skill therefore increases the percentage of secondary timer opportunities that become attacks. It does not change the secondary weapon's listed delay.
Higher Dual Wield skill therefore increases the percentage of secondary timer opportunities that become attacks. It does not change the secondary weapon's listed delay.
=== Damage Bonus Is a Separate Flat Addition ===
Weapon damage bonus is treated separately from the rolled weapon-damage portion of an attack.
STR, ATK, Offense, weapon skill, and target mitigation affect the variable weapon-damage roll. They do not directly determine the displayed weapon damage-bonus value.
Under the ordinary EverQuest hand model used by the calculator:
* An eligible primary-hand attack receives the weapon's damage bonus.
* The ordinary secondary-hand attack receives no damage bonus.
* A two-handed primary weapon receives its own damage bonus.
* Damage bonus is applied per eligible primary-hand hit.
This means the damage bonus must be calculated for the '''specific weapon placed in primary'''. It is not a single universal one-handed value.


=== Primary and Secondary Hand Assignment ===
=== Primary and Secondary Hand Assignment ===


At less than 100% Dual Wield chance, hand assignment matters for two reasons:
At less than 100% Dual Wield chance, hand assignment matters because:
 
# The primary weapon attacks whenever its own timer is ready.
# The secondary weapon attacks only when its own timer is ready '''and''' the Dual Wield check succeeds.
 
The calculator therefore tests both hand assignments automatically.
 
In general, the stronger base weapon score becomes more valuable in primary as Dual Wield chance falls, because primary attacks are not reduced by the Dual Wield success check.


# The primary weapon attacks on every eligible primary timer cycle.
=== Hand Assignment at 100% Dual Wield Chance ===
# The secondary weapon contributes only when its Dual Wield check succeeds.


The calculator therefore tests both possible hand assignments rather than relying on a universal "best weapon goes in secondary" rule.
At exactly 100% Dual Wield chance, the ordinary weapon-damage contribution of the same two one-handed weapons is identical regardless of which hand holds them.


Using <code>P</code> for Dual Wield chance, the difference between placing Weapon A or Weapon B in primary depends on both:
Under the working modern damage-bonus formula below, damage bonus is also normalized substantially by weapon delay.


<pre>
When both one-handed weapons:
(1 − P) × difference in base weapon score
 
* have damage less than or equal to character level, and
* have delays of 50 or less,
 
the unrounded damage-bonus contribution per unit of delay is effectively the same for both weapons. In that common case, hand assignment at 100% Dual Wield chance is effectively neutral apart from integer rounding and any other hand-specific mechanics.
 
Hand assignment can still matter when:
 
* one weapon's damage exceeds character level,
* a weapon's delay exceeds the 50-delay damage-bonus cap,
* integer damage-bonus rounding changes the result,
* one hand receives a special proc, AA, discipline, or attack rule not shared by the other.


and
The calculator always tests both arrangements rather than assuming one universal hand rule.


Damage Bonus × difference in attack frequency
=== Shared Modifiers ===
</pre>


This means the preferred primary weapon may be:
A modifier that affects both compared setups by the same proportion does not change which setup wins a normalized comparison.


* The weapon with the stronger damage-to-delay value.
Ordinary haste is therefore omitted from the calculator when the same haste applies to all compared weapons.
* The weapon with the lower delay, allowing more frequent primary-hand damage bonuses.
* A compromise between those two advantages.


=== Hand Assignment at 100% Dual Wield Chance ===
STR and ATK are also omitted from the simple comparison because the calculator is intended as a target-neutral weapon comparison rather than a complete melee simulator. A full expected-DPS model would require the attacker's combat statistics, the target's mitigation and avoidance, weapon skills, and the damage-roll distribution.


At exactly 100% Dual Wield chance, the ordinary weapon-damage contributions of the same two weapons are identical regardless of which hand holds them.
== Working Legends Damage Bonus Model ==


Under a primary-only damage-bonus model, the only remaining difference is how frequently the primary-hand damage bonus is applied.
EverQuest damage-bonus formulas have changed over time.


Therefore:
The older classic-era one-handed formula and historical two-handed lookup tables do '''not''' match observed EverQuest Legends damage bonuses well.


* Put the '''lower-delay weapon in primary''' when the primary hand receives a positive damage bonus.
The calculator therefore uses a later/live EverQuest damage-bonus formula published by a Daybreak developer. This model closely matches the currently observed Legends values across a range of one-handed and two-handed weapon delays.
* Hand assignment does not matter when both weapons have the same delay.
* Hand assignment does not matter when the primary-hand damage bonus is zero, assuming no other hand-specific mechanics apply.


=== Damage Bonus ===
The working formula is:


Weapon damage bonus is a flat amount added to an eligible successful attack. STR and ATK affect the rolled weapon-damage portion of an attack; they do not directly increase the flat damage-bonus value.
<pre>
Damage Bonus =
    Hand Modifier
    × max(Character Level, Weapon Damage)
    × (min(Weapon Delay, 50) ÷ 40)
    × (Character Level ÷ 100)
</pre>


In the traditional EverQuest model:
Where:


* The ordinary weapon damage is rolled first.
* '''1H Hand Modifier = 0.8'''
* The appropriate main-hand damage bonus is added afterward.
* '''2H Hand Modifier = 1.1'''
* The standard secondary attack receives no primary-hand damage bonus.
* Weapon delay contributes only up to '''50 delay'''.
* A two-handed weapon may receive a different damage bonus from a one-handed weapon.
* If weapon damage exceeds character level, weapon damage is used instead of character level for that portion of the formula.
* Damage bonus begins at level 28 in the reference implementation.


The calculator currently follows this traditional primary-only damage-bonus model. The exact Legends damage-bonus rules remain subject to in-game verification as described below.
The calculator currently truncates the modeled result to an integer:


=== Shared Modifiers ===
<pre>
floor(
    Modifier
    × max(Level, Damage)
    × (min(Delay, 50) ÷ 40)
    × (Level ÷ 100)
)
</pre>
 
Exact Legends rounding has not yet been proven, so the integer treatment should still be considered part of the working model.
 
=== Why Delay Matters ===


A modifier that changes both setups by exactly the same proportion does not change which setup wins the normalized comparison.
Unlike the older classic one-handed damage-bonus formula, the newer formula scales the damage bonus with weapon delay.


For example, ordinary haste generally accelerates all equipped weapon timers. When the same haste multiplier applies to every compared weapon, it scales both totals together.
This explains why two one-handed weapons at the same character level can display different damage bonuses and why slower two-handed weapons can receive much larger bonuses.


However, shared effects may stop cancelling perfectly when the game applies:
Because delay contribution caps at 50:


* Integer timer rounding.
* Increasing delay from 20 to 40 increases modeled damage bonus.
* A minimum weapon-delay floor.
* Increasing delay from 50 to 70 does '''not''' increase the delay portion further.
* Different eligibility rules for primary, secondary, or two-handed attacks.
* A weapon with damage greater than character level can still receive a larger bonus because the formula uses <code>max(Level, Damage)</code>.
* Different Double Attack, Triple Attack, or flurry behavior by hand.
* Hand-specific proc rates or bonuses.


== Classes and Skill Caps on Legends ==
== Classes and Skill Caps on Legends ==
Line 143: Line 188:
* [[Warrior]]
* [[Warrior]]


On a three-class character, the calculator uses the highest applicable Dual Wield cap supplied by any of the selected classes. Class caps are not added together.
On a three-class character, the calculator uses the highest applicable Dual Wield cap supplied by any selected class. Class caps are not added together.


The current working level-based cap model is:
The current working level-50 cap model is:


{| class="eoTable2" style="width:70%"
{| class="eoTable2" style="width:70%"
Line 151: Line 196:
! Class
! Class
! Working per-level formula
! Working per-level formula
! Current modeled cap
! Modeled cap through level 50
! Status
! Status
|-
|-
Line 157: Line 202:
| <code>(Level × 5) + 5</code>
| <code>(Level × 5) + 5</code>
| 210
| 210
| Working model; additional Legends observations needed
| Working model
|-
|-
| style="text-align:left"| '''[[Beastlord]]'''
| style="text-align:left"| '''[[Beastlord]]'''
| <code>(Level × 5) + 5</code>
| <code>(Level × 5) + 5</code>
| 210
| 210
| Working model; additional Legends observations needed
| Working model
|-
|-
| style="text-align:left"| '''[[Monk]]'''
| style="text-align:left"| '''[[Monk]]'''
Line 172: Line 217:
| <code>(Level × 5) + 5</code>
| <code>(Level × 5) + 5</code>
| 210
| 210
| Working model; additional Legends observations needed
| Working model
|-
|-
| style="text-align:left"| '''[[Rogue]]'''
| style="text-align:left"| '''[[Rogue]]'''
| <code>(Level × 6) + 5</code>
| <code>(Level × 6) + 5</code>
| 210
| 210
| The per-level formula is documented; additional Legends observations remain useful
| Working model
|-
|-
| style="text-align:left"| '''[[Warrior]]'''
| style="text-align:left"| '''[[Warrior]]'''
| <code>(Level × 5) + 5</code>
| <code>(Level × 5) + 5</code>
| 210
| 210
| Working model; additional Legends observations needed
| Working model
|}
|}


Line 194: Line 239:
</pre>
</pre>


The calculator assumes the character's Dual Wield skill is trained to the applicable cap. A character whose current skill is below cap will have a lower actual offhand success rate than the calculator models.
The calculator assumes the character's Dual Wield skill is trained to the applicable cap unless an actual skill value is entered.


== Era-Dependent and Unconfirmed Mechanics ==
== Era-Dependent and Unconfirmed Mechanics ==


The following mechanics have differed between EverQuest eras, community servers, and emulator implementations. They should not be presented as confirmed EverQuest Legends behavior until tested directly on Legends.
The following mechanics have changed between EverQuest eras or differ among community servers and emulator implementations. Their exact behavior on EverQuest Legends should be confirmed directly rather than inherited from another era.


=== Exact Dual Wield Chance Formula ===
=== Exact Dual Wield Chance Formula ===
Line 204: Line 249:
The exact Legends formula that converts level and Dual Wield skill into offhand success chance is not yet confirmed.
The exact Legends formula that converts level and Dual Wield skill into offhand success chance is not yet confirmed.


Several incompatible reference models exist:
Several reference models exist:


{| class="eoTable2" style="width:85%"
{| class="eoTable2" style="width:85%"
Line 218: Line 263:
| style="text-align:left"| Historical Project 1999 Warrior estimate
| style="text-align:left"| Historical Project 1999 Warrior estimate
| <code>(Level + Dual Wield Skill) ÷ 475</code>
| <code>(Level + Dual Wield Skill) ÷ 475</code>
| Based on outside Warrior testing; not confirmed on Legends
| Outside Warrior testing; not confirmed on Legends
|-
| style="text-align:left"| Other inherited community documentation
| Divisors as high as 600 have been proposed
| Conflicting and unconfirmed
|-
|-
| style="text-align:left"| Current EQEmu client reference implementation
| style="text-align:left"| Current EQEmu reference implementation
| <code>(Level + Dual Wield Skill + Ambidexterity Value) ÷ 375</code>
| Uses a different divisor / Ambidexterity treatment
| Inspectable implementation, but not proof of Legends behavior
| Useful reference, but not proof of Legends behavior
|-
|-
| style="text-align:left"| EverQuest Legends
| style="text-align:left"| EverQuest Legends
Line 233: Line 274:
|}
|}


Because the older <code>400</code> and Warrior-specific <code>475</code> divisors are themselves unverified community estimates, they should not be displayed as settled class mechanics.
The calculator currently retains the historical <code>400</code> working divisor for Bard, Beastlord, Monk, Ranger, and Rogue and the historical <code>475</code> Warrior estimate so that it can produce a comparison result.


Until a Legends-specific parse is available, the calculator may use a clearly labeled provisional reference model. Its detailed view should always display which model is being used.
These values are explicitly provisional.


=== Ambidexterity ===
=== Ambidexterity ===


The Legends description of [[Alternate Advancement|Ambidexterity]] states that it increases the chance to successfully Dual Wield by '''32%'''.
'''Confirmed on EverQuest Legends:''' [[Alternate Advancement|Ambidexterity]] is listed as increasing successful Dual Wield chance by '''32%'''.


What "32%" means internally has not yet been confirmed. Plausible implementations include:
The exact mathematical application of that 32% is not yet confirmed.


* Multiplying the base success chance by <code>1.32</code>.
Possible implementations include:
* Adding 32 percentage points to the final chance.
* Adding a raw value of 32 to the numerator of the Dual Wield check.
* Another server-specific implementation.


The current EQEmu reference implementation treats Ambidexterity as a raw value added to the Dual Wield chance calculation before a roll against 375. Legends may or may not use the same behavior.
* multiplying the base success chance by <code>1.32</code>,
* adding a raw value of 32 to an internal Dual Wield calculation,
* another Legends-specific implementation.


The calculator's Ambidexterity checkbox must therefore identify its handling as a '''working assumption''', not a confirmed Legends formula.
The calculator currently models Ambidexterity as a <code>× 1.32</code> multiplier and caps the resulting Dual Wield chance at 100%.


=== Damage-Bonus Eligibility and Values ===
This is a working assumption and should be replaced when a controlled Legends parse establishes the actual implementation.


Traditional classic-era damage-bonus behavior commonly includes:
=== Exact Damage-Bonus Formula and Rounding ===


* Damage bonuses beginning at level 28 for eligible melee characters.
The later/live formula used by the calculator is currently the best match to observed Legends damage bonuses.
* A one-handed primary bonus based on character level.
* A two-handed primary bonus based on both character level and weapon delay.
* No ordinary damage bonus for the secondary hand.


A commonly referenced one-handed formula is:
However, Legends-specific confirmation is still needed for:
 
* exact integer rounding or truncation,
* whether level 28 is the exact activation level,
* whether the 0.8 and 1.1 handedness modifiers are identical on Legends,
* whether the 50-delay cap is identical,
* whether all multiclass combinations receive damage bonus identically,
* whether any Legends AA, stance, invocation, or item effect grants secondary-hand damage bonus.
 
The older classic formula:


<pre>
<pre>
Line 267: Line 313:
</pre>
</pre>


This produces:
and historical two-handed lookup tables should be treated as '''historical mechanics''', not as the current Legends calculator model.
 
{| class="eoTable2" style="width:35%"
|-
! Level
! One-Handed Bonus
|-
| 28 || 1
|-
| 31 || 2
|-
| 34 || 3
|-
| 37 || 4
|-
| 40 || 5
|-
| 43 || 6
|-
| 46 || 7
|-
| 49 || 8
|}
 
Two-handed damage-bonus tables have changed across eras and depend on weapon delay. The calculator currently uses a classic-style level-and-delay table as a working model.
 
The following still require Legends-specific confirmation:
 
* Whether damage bonus begins at level 28.
* Whether all Legends melee class combinations qualify identically.
* The exact one-handed damage-bonus formula.
* The exact two-handed damage-bonus table.
* Whether any Legends AA, stance, invocation, item effect, or class combination grants secondary-hand damage bonus.
* Whether damage bonus is applied before or after any Legends-specific outgoing-damage multiplier.


=== Double Attack, Triple Attack, and Flurry ===
=== Double Attack, Triple Attack, and Flurry ===
Line 306: Line 319:
Additional attacks are excluded from the basic calculator because their relative effect depends on hand-specific eligibility.
Additional attacks are excluded from the basic calculator because their relative effect depends on hand-specific eligibility.


Mechanics that require confirmation include:
The following should be confirmed on Legends:


* Whether secondary attacks can Double Attack at every Double Attack skill value.
* Whether secondary attacks can Double Attack at every Double Attack skill value.
* Whether the secondary hand has a minimum Double Attack skill requirement.
* Whether the secondary hand has a minimum Double Attack skill requirement.
* Whether a two-handed attack receives any different Double Attack treatment.
* Whether two-handed attacks receive different Double Attack treatment.
* Whether Triple Attack is limited to the primary hand.
* Whether Triple Attack is primary-only.
* Whether flurry can trigger from primary, secondary, or both.
* Whether flurry can trigger from primary, secondary, or both.
* Whether class selection changes these rules on a multiclass character.
* Whether multiclass selection changes these rules.


When the same additional-attack multiplier applies equally to every compared weapon, it cancels from the relative comparison. When eligibility differs by hand, it does not.
When the same additional-attack multiplier applies equally to both compared setups, it cancels from the relative comparison. When eligibility differs by hand, it does not.


=== Proc Rates ===
=== Proc Rates ===
Line 321: Line 334:
Proc damage is not included because proc behavior may differ by:
Proc damage is not included because proc behavior may differ by:


* Primary versus secondary hand.
* primary versus secondary hand,
* Weapon delay.
* weapon delay,
* Dexterity.
* Dexterity,
* Proc-per-minute normalization.
* proc-per-minute normalization,
* Spellblade or other Legends-specific systems.
* Legends-specific item or AA effects.
* Weapon effects transferred through Legends item customization.


A weaker-ratio weapon with a valuable proc may outperform the calculator's normalized weapon score.
A weaker normalized weapon score can still produce better actual DPS when its proc contribution is sufficiently strong.


=== Skill Acquisition Levels ===
=== Skill Acquisition Levels ===


Current Legends wiki pages contain conflicting inherited information about the level at which Bard, Rogue, Warrior, and other classes acquire Dual Wield.
Historical class tables disagree about the level at which several classes acquire Dual Wield.


Because multiclassing and Legends skill grants differ from historical EverQuest, the skill's acquisition level should be verified in-game for each relevant class rather than copied from historical class tables.
EverQuest Legends multiclassing also differs from historical EverQuest.


The calculator assumes that the character already possesses Dual Wield.
The calculator therefore assumes the character already possesses Dual Wield and focuses on the applicable skill cap.


=== Post-Level-50 Skill Caps ===
=== Post-Level-50 Skill Caps ===


EverQuest Legends currently operates in its level-50 Classic Era.
Historical EverQuest sources commonly list later caps such as:
 
Historical class tables commonly list the following later caps:


* Bard: 210
* Bard: 210
Line 351: Line 361:
* Warrior: 240
* Warrior: 240


These values are not currently reachable Legends behavior and should not be treated as confirmed future Legends caps. They should be retested if the Legends level cap increases.
These should not be treated as confirmed future Legends caps. They should be retested if the Legends level cap increases.


=== Empty-Hand and Primary-Slot Requirements ===
=== Empty-Hand and Primary-Slot Requirements ===


Some traditional implementations require an eligible primary weapon before a secondary weapon can make Dual Wield checks, while Monks may receive special empty-hand behavior.
Historical implementations have differed in their treatment of an empty primary slot, Hand to Hand, and secondary-only weapons.


The following are not yet confirmed on Legends:
The following should be tested directly on Legends:


* Whether a non-Monk can attack with a secondary weapon while the primary slot is empty.
* Whether a non-Monk can attack with a secondary weapon while primary is empty.
* Whether a Monk can use an empty primary hand with a secondary weapon.
* Whether a Monk can use an empty primary hand with a secondary weapon.
* Whether an empty secondary slot can still produce Dual Wield skill checks.
* Whether an empty secondary slot can still trigger Dual Wield checks.
* Whether Hand to Hand attacks use the same independent timers as equipped weapons.
* Whether Hand to Hand uses the same independent-timer behavior as equipped weapons.
 
These behaviors should remain in the unconfirmed section until directly tested.


== Legends Verification Priorities ==
== Legends Verification Priorities ==


The highest-priority tests are:
The highest-priority remaining tests are:


# '''Dual Wield chance:''' use distinguishable primary and secondary attack types, count both successful hits and misses, and compare observed secondary attempts against the number of secondary timer opportunities.
# '''Dual Wield chance:''' compare secondary attack opportunities against successful secondary attacks over a long parse.
# '''Ambidexterity:''' repeat the same long parse before and after purchasing Ambidexterity without changing equipment, haste, skills, or target.
# '''Ambidexterity:''' repeat the same parse before and after Ambidexterity with no other changes.
# '''Damage bonus:''' compare minimum and common hit values using the same weapon in primary and secondary at several character levels.
# '''Damage bonus rounding:''' record level, weapon damage, delay, handedness, and displayed damage bonus for many weapons.
# '''Two-handed damage bonus:''' compare otherwise similar two-handed weapons with different delays at the same level.
# '''Damage bonus activation:''' test levels immediately below and above level 28.
# '''Class skill caps:''' record the displayed cap at each level for every Dual Wield-granting class and for multiclass combinations.
# '''Additional attacks:''' separately test Double Attack and other extra attacks from primary and secondary.
# '''Additional attacks:''' separately test primary and secondary Double Attack eligibility at several Double Attack skill values.
# '''Class skill caps:''' record displayed caps by level for every Dual Wield-granting class.


A long parse should count attempted attacks rather than only successful damage, because hit rate is separate from the Dual Wield success check.
For Dual Wield testing, attempted swings should be distinguished from successful hits whenever possible because hit rate is separate from the Dual Wield check.


== Reference Implementations and Historical Sources ==
== References ==


* [[Alternate Advancement]] — current Legends Ambidexterity description.
* [[Alternate Advancement]] — Legends Ambidexterity description.
* [[Game Mechanics]] — inherited community formulas and mechanics notes.
* [[Game Mechanics]] — inherited combat-mechanics notes.
* [https://forums.everquest.com/index.php?threads/ratio-calculation-with-elemental-damage.274525/ EverQuest Forums — Daybreak developer explanation of the normalized weapon damage-bonus formula]
* [https://wiki.project1999.com/Game_Mechanics#Comparing_Weapons Project 1999 Game Mechanics — Comparing Weapons]
* [https://wiki.project1999.com/Game_Mechanics#Comparing_Weapons Project 1999 Game Mechanics — Comparing Weapons]
* [https://wiki.project1999.com/Game_Mechanics#Dual_Wield Project 1999 Game Mechanics — Dual Wield]
* [https://wiki.project1999.com/Game_Mechanics#Dual_Wield Project 1999 Game Mechanics — Dual Wield]
* [https://github.com/EQEmu/EQEmu/blob/master/zone/attack.cpp Current EQEmu attack and Dual Wield reference implementation]
* [https://github.com/EQEmu/EQEmu/blob/master/zone/attack.cpp Current EQEmu combat reference implementation]
* [https://github.com/EQEmu/EQEmu/blob/master/zone/client_process.cpp Current EQEmu primary and secondary timer processing]
* [https://github.com/EQEmu/EQEmu/blob/master/zone/client_process.cpp Current EQEmu primary and secondary timer processing]



Latest revision as of 05:01, 11 August 2026

Dual Wield is the combat skill that allows a character to make attacks with an eligible weapon equipped in the secondary slot while continuing to attack with the primary slot.

Dual Wield Calculator

The calculator provides a target-neutral comparison between two one-handed weapons and one two-handed weapon.

It is a normalized weapon comparison, not a complete average-DPS simulator. Its result is most useful when comparing weapons on the same character against the same target when the relevant weapon skills are similarly trained.

Calculator Score

The calculator uses the traditional normalized weapon-score comparison:

Main-hand score =
    ((2 × Main Damage) + Main-Hand Damage Bonus)
    ÷ Main Delay

Offhand score =
    Modeled Dual Wield Chance
    × ((2 × Offhand Damage) ÷ Offhand Delay)

Dual Wield score =
    Main-hand score + Offhand score

Two-Hander score =
    ((2 × Two-Hander Damage) + Two-Hand Damage Bonus)
    ÷ Two-Hander Delay

The factor of 2 × damage is a comparison benchmark, not the exact average damage of every successful hit.

The calculator automatically tests both one-handed arrangements:

  • Weapon A in primary and Weapon B in secondary.
  • Weapon B in primary and Weapon A in secondary.

This matters because the primary and secondary weapons swing independently, but the secondary weapon's attack opportunity is additionally gated by the Dual Wield check.

The calculator does not currently model:

  • Target avoidance or exact hit rate.
  • Unequal weapon-skill values.
  • STR, ATK, Offense, or target mitigation.
  • Double Attack, Triple Attack, flurry, critical hits, or special attacks.
  • Proc damage or hand-specific proc behavior.
  • Haste rounding, minimum-delay rules, or other timer rounding.
  • Stances, invocations, disciplines, or temporary combat modifiers.
  • Encounter-specific weaknesses, resistances, or armor.

These omitted mechanics can change actual combat performance, especially when the calculator reports a close result.

Core Mechanics

Independent Weapon Timers

Confirmed on EverQuest Legends: the primary and secondary weapons use independent attack timers.

Each weapon uses its own delay. A fast secondary weapon can therefore reach multiple offhand attack opportunities before a slower primary weapon reaches its next attack.

Equipping a slower primary weapon does not directly slow the secondary weapon, and equipping a slower secondary weapon does not directly slow the primary weapon.

Offhand Attack Opportunities

When the secondary weapon's timer becomes ready, the game performs a Dual Wield check.

A successful check permits the secondary attack opportunity to proceed. A failed check produces no secondary attack for that timer cycle.

Higher Dual Wield skill therefore increases the percentage of secondary timer opportunities that become attacks. It does not change the secondary weapon's listed delay.

Damage Bonus Is a Separate Flat Addition

Weapon damage bonus is treated separately from the rolled weapon-damage portion of an attack.

STR, ATK, Offense, weapon skill, and target mitigation affect the variable weapon-damage roll. They do not directly determine the displayed weapon damage-bonus value.

Under the ordinary EverQuest hand model used by the calculator:

  • An eligible primary-hand attack receives the weapon's damage bonus.
  • The ordinary secondary-hand attack receives no damage bonus.
  • A two-handed primary weapon receives its own damage bonus.
  • Damage bonus is applied per eligible primary-hand hit.

This means the damage bonus must be calculated for the specific weapon placed in primary. It is not a single universal one-handed value.

Primary and Secondary Hand Assignment

At less than 100% Dual Wield chance, hand assignment matters because:

  1. The primary weapon attacks whenever its own timer is ready.
  2. The secondary weapon attacks only when its own timer is ready and the Dual Wield check succeeds.

The calculator therefore tests both hand assignments automatically.

In general, the stronger base weapon score becomes more valuable in primary as Dual Wield chance falls, because primary attacks are not reduced by the Dual Wield success check.

Hand Assignment at 100% Dual Wield Chance

At exactly 100% Dual Wield chance, the ordinary weapon-damage contribution of the same two one-handed weapons is identical regardless of which hand holds them.

Under the working modern damage-bonus formula below, damage bonus is also normalized substantially by weapon delay.

When both one-handed weapons:

  • have damage less than or equal to character level, and
  • have delays of 50 or less,

the unrounded damage-bonus contribution per unit of delay is effectively the same for both weapons. In that common case, hand assignment at 100% Dual Wield chance is effectively neutral apart from integer rounding and any other hand-specific mechanics.

Hand assignment can still matter when:

  • one weapon's damage exceeds character level,
  • a weapon's delay exceeds the 50-delay damage-bonus cap,
  • integer damage-bonus rounding changes the result,
  • one hand receives a special proc, AA, discipline, or attack rule not shared by the other.

The calculator always tests both arrangements rather than assuming one universal hand rule.

Shared Modifiers

A modifier that affects both compared setups by the same proportion does not change which setup wins a normalized comparison.

Ordinary haste is therefore omitted from the calculator when the same haste applies to all compared weapons.

STR and ATK are also omitted from the simple comparison because the calculator is intended as a target-neutral weapon comparison rather than a complete melee simulator. A full expected-DPS model would require the attacker's combat statistics, the target's mitigation and avoidance, weapon skills, and the damage-roll distribution.

Working Legends Damage Bonus Model

EverQuest damage-bonus formulas have changed over time.

The older classic-era one-handed formula and historical two-handed lookup tables do not match observed EverQuest Legends damage bonuses well.

The calculator therefore uses a later/live EverQuest damage-bonus formula published by a Daybreak developer. This model closely matches the currently observed Legends values across a range of one-handed and two-handed weapon delays.

The working formula is:

Damage Bonus =
    Hand Modifier
    × max(Character Level, Weapon Damage)
    × (min(Weapon Delay, 50) ÷ 40)
    × (Character Level ÷ 100)

Where:

  • 1H Hand Modifier = 0.8
  • 2H Hand Modifier = 1.1
  • Weapon delay contributes only up to 50 delay.
  • If weapon damage exceeds character level, weapon damage is used instead of character level for that portion of the formula.
  • Damage bonus begins at level 28 in the reference implementation.

The calculator currently truncates the modeled result to an integer:

floor(
    Modifier
    × max(Level, Damage)
    × (min(Delay, 50) ÷ 40)
    × (Level ÷ 100)
)

Exact Legends rounding has not yet been proven, so the integer treatment should still be considered part of the working model.

Why Delay Matters

Unlike the older classic one-handed damage-bonus formula, the newer formula scales the damage bonus with weapon delay.

This explains why two one-handed weapons at the same character level can display different damage bonuses and why slower two-handed weapons can receive much larger bonuses.

Because delay contribution caps at 50:

  • Increasing delay from 20 to 40 increases modeled damage bonus.
  • Increasing delay from 50 to 70 does not increase the delay portion further.
  • A weapon with damage greater than character level can still receive a larger bonus because the formula uses max(Level, Damage).

Classes and Skill Caps on Legends

The calculator recognizes the following classes as Dual Wield-granting classes:

On a three-class character, the calculator uses the highest applicable Dual Wield cap supplied by any selected class. Class caps are not added together.

The current working level-50 cap model is:

Class Working per-level formula Modeled cap through level 50 Status
Bard (Level × 5) + 5 210 Working model
Beastlord (Level × 5) + 5 210 Working model
Monk (Level × 7) + 5 252 Supported by observed caps of 89 at level 12 and 96 at level 13
Ranger (Level × 5) + 5 210 Working model
Rogue (Level × 6) + 5 210 Working model
Warrior (Level × 5) + 5 210 Working model

The class-specific cap is applied after the per-level calculation.

For example, the observed Monk progression is:

Level 12: (12 × 7) + 5 = 89
Level 13: (13 × 7) + 5 = 96

The calculator assumes the character's Dual Wield skill is trained to the applicable cap unless an actual skill value is entered.

Era-Dependent and Unconfirmed Mechanics

The following mechanics have changed between EverQuest eras or differ among community servers and emulator implementations. Their exact behavior on EverQuest Legends should be confirmed directly rather than inherited from another era.

Exact Dual Wield Chance Formula

The exact Legends formula that converts level and Dual Wield skill into offhand success chance is not yet confirmed.

Several reference models exist:

Reference Chance model Status for Legends
Historical Project 1999 community model (Level + Dual Wield Skill) ÷ 400 Conjectural; not confirmed on Legends
Historical Project 1999 Warrior estimate (Level + Dual Wield Skill) ÷ 475 Outside Warrior testing; not confirmed on Legends
Current EQEmu reference implementation Uses a different divisor / Ambidexterity treatment Useful reference, but not proof of Legends behavior
EverQuest Legends Unknown Requires a controlled in-game parse

The calculator currently retains the historical 400 working divisor for Bard, Beastlord, Monk, Ranger, and Rogue and the historical 475 Warrior estimate so that it can produce a comparison result.

These values are explicitly provisional.

Ambidexterity

Confirmed on EverQuest Legends: Ambidexterity is listed as increasing successful Dual Wield chance by 32%.

The exact mathematical application of that 32% is not yet confirmed.

Possible implementations include:

  • multiplying the base success chance by 1.32,
  • adding a raw value of 32 to an internal Dual Wield calculation,
  • another Legends-specific implementation.

The calculator currently models Ambidexterity as a × 1.32 multiplier and caps the resulting Dual Wield chance at 100%.

This is a working assumption and should be replaced when a controlled Legends parse establishes the actual implementation.

Exact Damage-Bonus Formula and Rounding

The later/live formula used by the calculator is currently the best match to observed Legends damage bonuses.

However, Legends-specific confirmation is still needed for:

  • exact integer rounding or truncation,
  • whether level 28 is the exact activation level,
  • whether the 0.8 and 1.1 handedness modifiers are identical on Legends,
  • whether the 50-delay cap is identical,
  • whether all multiclass combinations receive damage bonus identically,
  • whether any Legends AA, stance, invocation, or item effect grants secondary-hand damage bonus.

The older classic formula:

floor((Level − 25) ÷ 3)

and historical two-handed lookup tables should be treated as historical mechanics, not as the current Legends calculator model.

Double Attack, Triple Attack, and Flurry

Additional attacks are excluded from the basic calculator because their relative effect depends on hand-specific eligibility.

The following should be confirmed on Legends:

  • Whether secondary attacks can Double Attack at every Double Attack skill value.
  • Whether the secondary hand has a minimum Double Attack skill requirement.
  • Whether two-handed attacks receive different Double Attack treatment.
  • Whether Triple Attack is primary-only.
  • Whether flurry can trigger from primary, secondary, or both.
  • Whether multiclass selection changes these rules.

When the same additional-attack multiplier applies equally to both compared setups, it cancels from the relative comparison. When eligibility differs by hand, it does not.

Proc Rates

Proc damage is not included because proc behavior may differ by:

  • primary versus secondary hand,
  • weapon delay,
  • Dexterity,
  • proc-per-minute normalization,
  • Legends-specific item or AA effects.

A weaker normalized weapon score can still produce better actual DPS when its proc contribution is sufficiently strong.

Skill Acquisition Levels

Historical class tables disagree about the level at which several classes acquire Dual Wield.

EverQuest Legends multiclassing also differs from historical EverQuest.

The calculator therefore assumes the character already possesses Dual Wield and focuses on the applicable skill cap.

Post-Level-50 Skill Caps

Historical EverQuest sources commonly list later caps such as:

  • Bard: 210
  • Beastlord: 210
  • Monk: 252
  • Ranger: 240
  • Rogue: 245
  • Warrior: 240

These should not be treated as confirmed future Legends caps. They should be retested if the Legends level cap increases.

Empty-Hand and Primary-Slot Requirements

Historical implementations have differed in their treatment of an empty primary slot, Hand to Hand, and secondary-only weapons.

The following should be tested directly on Legends:

  • Whether a non-Monk can attack with a secondary weapon while primary is empty.
  • Whether a Monk can use an empty primary hand with a secondary weapon.
  • Whether an empty secondary slot can still trigger Dual Wield checks.
  • Whether Hand to Hand uses the same independent-timer behavior as equipped weapons.

Legends Verification Priorities

The highest-priority remaining tests are:

  1. Dual Wield chance: compare secondary attack opportunities against successful secondary attacks over a long parse.
  2. Ambidexterity: repeat the same parse before and after Ambidexterity with no other changes.
  3. Damage bonus rounding: record level, weapon damage, delay, handedness, and displayed damage bonus for many weapons.
  4. Damage bonus activation: test levels immediately below and above level 28.
  5. Additional attacks: separately test Double Attack and other extra attacks from primary and secondary.
  6. Class skill caps: record displayed caps by level for every Dual Wield-granting class.

For Dual Wield testing, attempted swings should be distinguished from successful hits whenever possible because hit rate is separate from the Dual Wield check.

References

Spell: AbjurationAlterationChannelingConjurationDivinationEvocationMeditateSpecialization
Specialize: AbjurationSpecialize: AlterationSpecialize: ConjurationSpecialize: DivinationSpecialize: Evocation
Weapon: 1H Blunt1H Slash2H Blunt2H Slash2H PiercingArcheryPiercingThrowing
Combat: BashBlockCleaveDefenseDisarmDodgeDouble AttackDual WieldHand to HandHarm Touch
IntimidationKickLay on HandsOffenseParryReaveRiposteSlamSmiteTaunt
Rogue: BackstabDisarm TrapsPick LockPick PocketSense Traps
Monk: Dragon PunchEagle StrikeFeign DeathFlying KickMendRound KickSafe FallTail Rake (Iksar)Tiger Claw
Bard: Brass InstrumentsPercussionSingingStringed InstrumentsWind Instruments
Non-Combat: Alcohol ToleranceAthleticsBeggingBind WoundGather PartyFishingForagingHide (Evade)OriginSense HeadingSneakSwimmingTracking