ItemLevelCalculator 🔗
Item in the screenshot - Vest of Jotunheim
This web application is currently in development. The Item Level Calculator is designed to assist in the creation, modification, and validation of item-level balanced armor and weapons for World of Warcraft emulators, with support for Vanilla, The Burning Crusade, and Wrath of the Lich King. It is most effective for validating or creating items within the intended item level range of blizzlike items. Items with levels extending beyond the existing in-game ranges may yield undesirable or unpredictable results.
In researching this concept, I discovered numerous values and coefficients scattered throughout the community, each employing different mathematical approaches. While many in the community describe these calculations as "good enough," I found them often constrained by linear functions, lacking the dynamic scaling needed to accommodate variations introduced by Blizzard throughout the expansions. Many stats vary based on Inventory Type, Quality, and Item Level.
Improving the accuracy of these calculations hinges on enhancing the quality of the equations. As a first step to the conceptualization of this calculator, I immediately found the need for a method to more easily plot and graph data. So I developed a graphing tool called Polynomial Visualizer. I used it to draft many of the formulas the calculator uses, the formulas and the links to their data are scattered around down below.
Stat and item level calculation accuracy significantly improved by introducing polynomial regression and categorizing formulas and coefficients by item quality and slot according to their appropriate item level ranges. The enhanced equations integrated into this calculator provide significantly more reliable outputs, closely reflecting in-game values. Though it is far from perfect, testing reveals that the calculator typically deviates by one or two item levels from actual values.
However, there are significant outliers Blizzard created either accidentally in the form of a typo, mixing up a stat value, or using the wrong calculations for a stat altogether; or intentionally as cleverly disguised treats, hidden gem rewards, raid or dungeon boss loot, or just flattening the curve to be more easily digestable to players. Blizzard did create and use a formula to calculate item levels and aid their process of creating items in a very general way, this is most notably evidenced in their items that include randomized stats. These items were very helpful in validating the stat coefficients used in the functions, and sanity checking certain outliers. Many times I would be researching the more significant outliers on wowhead and the comments would often validate the finding. It is pretty much impossible to account for these outliers; instead, the calculator indicates the more likely item level of these anomalies.
For instance, consider item level 277 gear dropped in Icecrown Citadel (ICC). These items are among the best in the game and vary with heroic and non-heroic items, they display a huge variance in stat combinations. Balancing stat coefficients across all items within this range is not possible; very few items labeled as level 277 truly fit the designation. This is ubiquitous among all of the common blanket item level tiers (213, 226, 245, etc.).
A prime example of these outliers is the Shining Buckle Gauntlets and the Discoverer's Mitts. Both are item level 154 leather items with identical stats despite differing qualities, an impossibility under standard calculations.
- StatMod: The weight coefficient or "cost" of a given Stat. Stamina is often less expensive than strength.
-
Exponent:
$log(2)/log(1.5) ≈ 1.7095$ is applied to inflate the expense of a stat into a StatValue. This makes a lone stat of higher quantity more expensive than multiple lower quantity stats while maintaining a relatively similar overall expense. (e.g. at item level 172, 100 strength ≈ 53 strength + 53 agility + 53 crit) - StatValue: The inflated expense of the Stat on an item.
- StatBudget: The sum of all of the StatValues on an item.
- SlotMod: The weight coefficient of an item based on its slot. A chest will have a lower item level than gloves with the same stats.
- ItemBudget: The StatBudget of an item multiplied by the SlotMod coefficient of the item's slot type.
- QualityMod: The weight coefficient of an item based on its quality. An epic shield will have a lower item level than an uncommon shield with the same stats.
- ItemLevel: The effective level of an item.
The QualityMod is calculated by multiplying a given item level by a predetermined coefficient, the product of which is added to a base integer.
The QualityMod is multiplied by the SlotMod and the product is raised to the exponent power. This is performed in a loop with
These coefficients control the ceiling for stats on an item based on its quality.
quality | ilvl | mult | base |
---|---|---|---|
4 | 200+ | 1.320 | -120 |
4 | 100+ | 0.700 | -2 |
4 | 1+ | 0.689 | +1 |
3 | 136+ | 0.880 | -39.25 |
3 | 80+ | 0.674 | -8.0 |
3 | 1+ | 0.641 | -4.0 |
2 | 130+ | 0.801 | -38.3 |
2 | 80+ | 0.505 | -4.5 |
2 | 1+ | 0.495 | -2.85 |
This coefficient (SlotMod) controls the ceiling for stats on an item based on the slot.
The values in this table are found to be static and do not change within any item level range. You'll notice that tabards, shirts, and relics are included in the table. Assuming these item slots were ever even considered to have stats in any capacity, I'd assume they'd have a very low stat budget. All of the tabards that have any spell abilities at all were toys for the GMs to have fun with while testing the game, they have no baseline from which to assume any amount of power, and are there just for grins.
InventoryType | Item Name | defaults |
---|---|---|
5 | Chest | 16/16 |
20 | Chest (Robe) | 16/16 |
23 | Held Off-hand | 3/16 |
28 | Relic | 1/32 |
4 | Shirt | 1/32 |
19 | Tabard | 1/32 |
The values in this table are found to be dynamic and potentially very between item level ranges. As better methods for determining the accuracy of these coefficients is developed, these figures may change or be found to be static, and will be moved into the table above.
InventoryType | Item Name | [2] 1+ | [2] 80+ | [2] 130+ | [3] 1+ | [3] 80+ | [3] 136+ | [4] 1+ | [4] 90+ | [4] 200+ |
---|---|---|---|---|---|---|---|---|---|---|
1 | Head | 16/16 | ... | ... | ... | ... | ... | ... | 11/16 | 16/16 |
2 | Neck | 4/16 | ... | ... | ... | ... | ... | ... | 3/16 | 4/16 |
3 | Shoulder | 8/16 | ... | ... | ... | ... | ... | ... | 6/16 | 8/16 |
6 | Waist | 8/16 | ... | ... | ... | ... | ... | ... | 6/16 | 8/16 |
7 | Legs | 16/16 | ... | ... | ... | ... | ... | ... | 12/16 | 16/16 |
8 | Feet | 8/16 | ... | ... | ... | ... | ... | ... | 6/16 | 8/16 |
9 | Wrists | 4/16 | ... | ... | ... | ... | ... | ... | 3/16 | 4/16 |
10 | Hands | 8/16 | ... | ... | ... | ... | ... | ... | 6/16 | 8/16 |
11 | Finger | 4/16 | ... | ... | ... | ... | ... | ... | 3/16 | 4/16 |
12 | Trinket | 8/16 | ... | ... | ... | 11/16 | 11/16 | 8/16 | 6/16 | 6/16 |
14 | Shield | 4/16 | ... | ... | ... | ... | ... | ... | 3/16 | 3/16 |
16 | Back | 3/16 | 4/16 | 4/16 | 4/16 | 4/16 | 4/16 | 4/16 | 3/16 | 3/16 |
This coefficient (SlotMod) controls the ceiling for stats on an item based on the slot.
Item Name | InventoryType | uncommon |
---|---|---|
One Hand Weapon | 13 | 7/16 |
Bow | 15 | 16/16 |
Two Hand Weapon | 17 | 16/16 |
Main-Hand | 21 | 7/16 |
Off-Hand | 22 | 7/16 |
Thrown | 25 | 5/16 |
Ranged | 26 | 5/16 |
This coefficient (StatMod) controls the ceiling for stats on an item based on the stat type.
The values in this table are found to be static and do not change within any item level range.
stat_type | Stat Name | InventoryType | defaults |
---|---|---|---|
0 | Mana | all | ? |
1 | Health | all | ? |
3 | Agility | all | 16/16 |
4 | Strength | all | 16/16 |
5 | Intellect | all | 16/16 |
6 | Spirit | all | 16/16 |
12 | Defense Rating | all | 16/16 |
13 | Dodge Rating | all | 16/16 |
14 | Parry Rating | all | 16/16 |
15 | Block Rating | all | 16/16 |
21 | Spell Crit Rating | all | 16/16 |
21 | Hit Rating | all | 16/16 |
32 | Crit Rating | all | 16/16 |
35 | Resiliance Rating | all | 16/16 |
36 | Haste Rating | all | 16/16 |
37 | Expertise | all | 16/16 |
38 | Attack Power | all | 8/16 |
44 | Armor Penetration | all | 16/16 |
47 | Spell Penetration | all | 16/16 |
X_res | Resistances | all | 16/16 |
The values in this table are found to be dynamic and frequently very between item level ranges. As better methods for determining the accuracy of these coefficients is developed, these figures may change or be found to be static, and will be moved into the table above.
stat_type | Stat Name | InventoryType | [2] 1+ | [2] 80+ | [2] 130+ | [3] 1+ | [3] 80+ | [3] 136+ | [4] 1+ | [4] 90+ | [4] 200+ |
---|---|---|---|---|---|---|---|---|---|---|---|
X_socket | Sockets | 2, 11, 14, 23 | 5/1 | 5/1 | 5/1 | 10/1 | 10/1 | 10/1 | 10/1 | 10/1 | 24/1 |
X_socket | Sockets | else | 10/1 | 10/1 | 10/1 | 20/1 | 20/1 | 20/1 | 20/1 | 10/1 | 24/1 |
armor | Bonus Armor | all | 3/32 | ... | ... | ... | 2/32 | 2/32 | 2/32 | 2/32 | 2/32 |
7 | Stamina | all | 16/16 | 2/3 | 2/3 | 16/16 | 2/3 | 2/3 | 16/16 | 2/3 | 2/3 |
43 | Mana Regen Per 5 | 2, 11, 12, 23 | 48/32 | ... | ... | ... | 32/16 | 32/16 | 32/16 | 32/16 | 24/16 |
43 | Mana Regen Per 5 | else | 92/32 | ... | ... | ... | 32/16 | 32/16 | 32/16 | 32/16 | 32/16 |
45 | Spell Power | all | 45/64 | 55/64 | 55/64 | 55/64 | 55/64 | 55/64 | 55/64 | 45/64 | 45/64 |
46 | Health Regen Per 5 | 2, 11, 12, 23 | 32/16 | ... | ... | ... | ... | ... | 16/16 | 8/16 | 4/16 |
46 | Health Regen Per 5 | else | 64/16 | ... | ... | ... | ... | ... | 32/16 | 16/16 | 8/16 |
48 | Block Value | 2, 11, 12, 14 | 16/16 | 21/64 | 21/64 | 21/64 | 21/64 | 21/64 | 21/64 | 21/64 | 4/64 |
48 | Block Value | else | 16/16 | 21/64 | 21/64 | 21/64 | 21/64 | 21/64 | 21/64 | 21/64 | 21/64 |
Base Armor is calculated by item level and Bonus Armor is applied to an item as an additional stat. I hypothesize that the base armor of an item actually consumes an amount of the item's overall stat budget in whatever formula blizzard invented. I believe this is true due to how bonus armor affects an items level. This can be a thought experiment for another time (or person).
These values are derived by dividing the armor value each type of armor of equivalent item level by that of the chest piece. The chest piece is assumed to have 100% of the armor assigned by its item level. The cloak armor value is derived by dividing against a cloth chestpiece of equivalent item level.
Item Name | InventoryType | armorMod |
---|---|---|
Chest | 5 | 16/16 |
Chest (Robe) | 20 | 16/16 |
Legs | 7 | 14/16 |
Head | 1 | 13/16 |
Shoulder | 3 | 12/16 |
Feet | 8 | 11/16 |
Hands | 10 | 10/16 |
Waist | 6 | 9/16 |
Shield | 14 | 9/16 |
Back | 16 | 8/16 |
Wrists | 9 | 7/16 |
Quality | Formula | Link |
---|---|---|
2 | y = 8.5 + 1.135x + 0.00018x^2 |
graph |
3 | y = 0 + 2.2x - 0.02345x^2 + 0.0002057x^3 - 5.34e-7x^4 |
graph |
4 | y = 2.5 + 1.33x + 0.00944x^2 - 0.0000684x^3 + 1.235e-7x^4 |
graph |
Quality | Formula | Link |
---|---|---|
2 | y = 39 + 1.8x + 0.00148x^2 |
graph |
3 | y = 0 + 5.22x - 0.06638x^2 + 0.0005313x^3 - 0.000001305x^4 |
graph |
4 | y = 0 + 3.05x + 0.01044x^2 - 0.00009593x^3 + 1.8476e-7x^4 |
graph |
Quality | Formula | Link |
---|---|---|
2 | y = 74 + 3.9x + 0.004366x^2 |
graph |
3 | y = 31 + 8.05x - 0.08529x^2 + 0.0007948x^3 - 0.000002107x^4 |
graph |
4 | y = 7.5 + 5.76x + 0.036x^2 - 0.0002668x^3 + 4.828e-7x^4 |
graph |
Quality | Formula | Link |
---|---|---|
2 | y = 0 + 9.74x - 0.003686x^2 |
graph |
3 | y = 0 + 16.2x - 0.16567x^2 + 0.001442x^3 - 0.00000373x^4 |
graph |
4 | y = 0 + 9.5x + 0.07993x^2 - 0.0005654x^3 + 0.000001018x^4 |
graph |
Quality | Formula | Link |
---|---|---|
2 | y = 82 + 29.9x - 0.01284x^2 + 0.00007097x^3 |
graph |
3 | y = -44 + 60.15x - 4.546x^2 + 0.192134x^3 - 0.00357196x^4 + 0.000034529x^5 - 1.8099e-7x^6 + 4.8879e-10x^7 - 5.3407e-13x^8 |
graph |
4 | y = 0 + 52x - 0.2633x^2 + 0.003241x^3 - 0.0000173x^4 + 2.948e-8x^5 |
graph |
5 | y = 331 + 52x - 0.2633x^2 + 0.003241x^3 - 0.0000173x^4 + 2.948e-8x^5 |
graph |
The legendary curve is a copy of the Epic curve with a greater y intercept, set to match the legendary Phaseshift Bulwark shield from the Kael'thas fight in Tempest Keep.
Each segment of calculation between vanilla, tbc, and wotlk is drastically different. Getting blizzlike results required the use of multiple expressions split by item level ranges.
Quality | Item Level Range | Formula | Link |
---|---|---|---|
2 | 1 to 78 | y = 0 + 0.505x - 0.01644x^2 + 0.0004899x^3 - 0.000003353x^4 |
graph |
2 | 79 to 137 | y = 0 + 0.3581x + 0.003094x^2 - 0.000001515x^3 |
graph |
2 | 138 to 200 | y = 1.38 - 0.3985x^1 + 0.01505x^2 - 0.0000403x^3 |
graph |
3 | 1 to 89 | y = 1.39 + 0.1027x + 0.01232x^2 - 0.00006735x^3 |
graph |
3 | 90 to 153 | y = -172 + 6.062x - 0.05626x^2 + 0.0001997x^3 |
graph |
3 | 154 to 200 | y = -700 + 10.22x - 0.03629x^2 + 0.0000389x^3 |
graph |
4 | 1 to 199 | y = 0 + 0.7851x - 0.001735x^2 + 0.00006482x^3 - 2.466e-7x^4 |
graph |
4 | 200 to 300 | y = -327 + 6.8942x - 0.031x^2 + 0.00004965x^3 |
graph |
Weapon DPS is inherent to the item level of the weapon and varies based on item type, quality, and other factors.
The calculator determines the dps value corelated to the item level for the weapon type and an attack speed derived from the mode average for that weapon type. Based on the attack speed, it will determine the minimum and maximum attack values for that weapon. Each weapon type has a coefficient value of the difference between min and max damage.
Where:
- Item Level: The level of the item being evaluated.
- Weapon Coefficient: A constant value specific to the weapon type that determines the relationship between minimum and maximum damage.
- Mode Average Attack Speed: The most frequently occurring attack speed value for the weapon type.
Based on the calculated DPS
and the Mode Average Attack Speed
, the minimum and maximum attack values (Min Damage
, Max Damage
) for the weapon can be derived:
epic weapons | quality | InventoryType | item level range | subclass | purpose | formula | link |
---|---|---|---|---|---|---|---|
one-hand | 4 | 13 | 1 to 99 | any | general | y = -0.46373319610341757 + 1.948435650742608x - 0.05134655549435444x^2 + 0.0006882333623959314x^3 - 0.000002864536021471839x^4 |
graph |
one-hand | 4 | 13 | 100 to 199 | any | general | y = -0.2769968450289057 + 1.5484937105463996x - 0.011645982924600652x^2 + 0.00004802296965314522x^3 - 5.273652941191476e-8x^4 |
graph |
one-hand | 4 | 13 | 200 to 300 | any | general | y = -0.08289582596875844 + 1.1576083521398557x - 0.005540388894214148x^2 + 0.000016701140069482415x^3 |
graph |
bows | 4 | 15 | any | 2 | general | y = -1.8160185143165526 + 0.8176011515936384x + 0.00004631966853788777x^2 - 0.00002190693147532568x^3 + 9.05587408850838e-8x^4 |
graph |
two-hand: non-staff | 4 | 17 | 1 to 100 | !10 | general | y = -0.7405045351583416 + 2.5291730790997162x - 0.06696995004352309x^2 + 0.0009043795705405915x^3 - 0.000003796542201089664x^4 |
graph |
two-hand: non-staff | 4 | 17 | 91 to 300 | !10 | general | y = 0.904817539290022 + 1.5822436006525589x - 0.007940579189201744x^2 + 0.000023354465861457816x^3 |
graph |
two-hand: caster staff | 4 | 17 | any | 10 | caster | y = - 2.7137455672 + 1.2034848552x - 0.0078149234x^2 + 0.0000237964x^3 |
graph |
two-hand: druid staff | 4 | 17 | any | 10 | druid | y = - 39.8477534594 + 2.2205407279x - 0.0111235858x^2 + 0.0000284616x^3 |
graph |
main-hand: caster | 4 | 21 | 1 to 199 | 4, 7, 15 | caster | y = 0.33220409164479436 + 0.9289727447958701x - 0.0029446443452658348x^2 - 0.00004346568763260079x^3 + 2.2512744703653982e-7x^4 |
graph |
main-hand: caster | 4 | 21 | 199 to 300 | 4, 7, 15 | caster | y = -1428.9508500081054 + 19.69433925384912x - 0.08717187138547562x^2 + 0.0001325134232926368x^3 |
graph |
main-hand: melee | 4 | 21 | any | any | general | y = -0.5178790028826743 + 0.4607974744638549x + 0.0061377306628395585x^2 - 0.00006505628736448377x^3 + 2.70678156265153e-7x^4 - 3.427754270710267e-10x^5 |
graph |
off-hand | 4 | 22 | any | any | general | y = -0.8154206101027381 + 0.8306900043436485x - 0.00029042355648253686x^2 - 0.000009668965907691205x^3 + 4.243652454960742e-8x^4 |
graph |
thrown | 4 | 25 | any | any | general | y = -0.12483151990909214 + 1.605551235747681x - 0.008135377299559524x^2 + 0.000023833062012799013x^3 |
graph |
ranged: guns & crossbows | 4 | 26 | any | 3, 18 | general | y = -2.9838107517317654 + 1.044765562039762x - 0.003913212784379925x^2 + 6.090860438060731e-7x^3 + 5.016590029076527e-8x^4 |
graph |
ranged: wands | 4 | 26 | 1 to 94 | 19 | general | y = -0.19588388531408696 + 1.413551669030605x - 0.014741678597083266x^2 + 0.00017194361662129607x^3 |
graph |
ranged: wands | 4 | 26 | 95 to 300 | 19 | general | y = 38.01542852693626 + 1.5934000590768418x - 0.007732119057129331x^2 + 0.000027000350802930127x^3 |
graph |
rare weapons | quality | InventoryType | item level range | subclass | purpose | formula | link |
---|---|---|---|---|---|---|---|
one-hand | 3 | 13 | 1 to 115 | any | general | y = -0.20849222965398617 + 0.5638012041071734x + 0.006185098993217638x^2 - 0.00010529221983632224x^3 + 4.856933421922349e-7x^4 |
graph |
one-hand | 3 | 13 | 116 to 300 | any | general | y = -1129.4203195277557 + 28.231290187427803x - 0.24779778144598605x^2 + 0.0009711032569160498x^3 - 0.0000014022912601703806x^4 |
graph |
bows | 3 | 15 | any | 2 | general | y = -0.743084783011632 + 0.7736504766853647x - 0.002608641911723087x^2 + 0.000008555961584640232x^3 |
graph |
two-hand: non-staff | 3 | 17 | any | !10 | general | y = -1.4407940637747765 + 0.9868570871805012x - 0.0023989071048527186x^2 + 0.00000872913868341514x^3 |
graph |
two-hand: druid staff | 3 | 17 | any | 10 | general | y = -1.5589456685719236 + 0.9962799588626463x - 0.002586859275705108x^2 + 0.000009472522985824832x^3 |
graph |
main-hand: caster | 3 | 21 | any | 4, 7, 15 | general | y = 0.9195580731155433 + 0.7492658962645824x - 0.005319339993856751x^2 + 0.000017593004422642952x^3 |
graph |
main-hand: non-caster | 3 | 21 | any | any | general | y = 0.7081542428231806 + 0.6667863115619928x - 0.0007860876748404416x^2 + 0.000003503709149771536x^3 |
graph |
off-hand | 3 | 22 | any | any | general | y = 0.31862967197133674 + 0.6822091250858717x - 0.0007913172544140505x^2 + 0.000003122564997039902x^3 |
graph |
thrown | 3 | 25 | any | any | general | y = 0.625697055774282 + 0.8215995459019617x - 0.0005425910100895496x^2 + 0.0000032710921570688796x^3 |
graph |
ranged: guns & crossbows | 3 | 26 | any | 3, 18 | general | y = -0.2913340491058385 + 0.7574162727175957x - 0.0024457905894126005x^2 + 0.000008067767939268019x^3 |
graph |
ranged: wands | 3 | 26 | any | 19 | general | y = 1.8294537711042669 + 0.7318471260336387x + 0.004969814407876487x^2 - 0.000017145838654172353x^3 + 1.7205349213855612e-8x^4 |
graph |
uncommon weapons | quality | InventoryType | item level range | subclass | purpose | formula | link |
---|---|---|---|---|---|---|---|
one-hand | 2 | 13 | any | any | general | y = 0.4042050606136029 + 0.49734508151683776x + 0.0007876333296000732x^2 - 0.0000013811950352316454x^3 |
graph |
bow | 2 | 15 | any | 2 | general | y = 0.22444917005698017 + 0.5822163577210446x - 0.0006990769934425673x^2 + 0.0000024109481894875313x^3 |
graph |
two-handed: melee | 2 | 17 | any | any | general | y = -1.2469017714620838 + 0.7595359183093786x - 0.00052x^2 + 0.0000031790771502211193x^3 |
graph |
two-handed: caster staff | 2 | 17 | any | 10 | caster | y = 0.5878275909223474 + 0.6486638702862207x - 0.0008183156661210863x^2 |
graph |
main-hand: melee | 2 | 21 | any | any | general | y = 0.1888986564358558 + 0.514467630955437x + 0.0001449871791498711x^2 + 0.0000022300382306673762x^3 |
graph |
main-hand: caster | 2 | 21 | any | 4, 7, 15 | caster | y = 0.4835370552909741 + 0.8668090226204177x - 0.006599272125728605x^2 + 0.000020415414066691894x^3 |
graph |
off-hand | 2 | 22 | any | any | general | y = 0.9718419506869891 + 0.41682208197155196x + 0.001587412068902008x^2 - 0.0000030964817997803457x^3 |
graph |
thrown | 2 | 25 | any | any | general | y = 2.766343576702119 + 0.46057309703714083x + 0.0031338924726831943x^2 - 0.000008297133052168907x^3 |
graph |
ranged: guns & crossbows | 2 | 26 | any | 3, 18 | general | y = 1.4129016032445012 + 0.4961550555995297x + 0.00032039463941715415x^2 - 8.224505599804983e-7x^3 |
graph |
ranged: wands | 2 | 26 | any | 19 | general | y = 3.4857134522863866 + 0.48418168318576166x + 0.005842172301613738x^2 - 0.000014078423351119631x^3 |
graph |
InventoryType | subclass | quality | coefficient | item level range | detail |
---|---|---|---|---|---|
13, 15, 22, 25, 26 | any | 2, 3, 4 | 0.54 | all | default |
17 | 1, 5, 6, 8, 10 | 2, 3, 4 | 0.65 | all | default two-hand |
17 | 10 | 2, 3, 4 | 0.54 | 101 to 300 | default caster staff |
21 | any | 2, 3, 4 | 0.54 | 1 to 100 | default main-hand |
21 | any | 2, 3, 4 | 0.3125 | 101 to 300 | default main-hand |
13 | 15 | 3 | 0.65 | 101 to 300 | rare one-hand daggers |
13 | 15 | 4 | 0.54 | 1 to 100 | epic one-hand daggers |
13 | 15 | 4 | 0.65 | 101 to 300 | epic one-hand daggers |
15 | 2 | 4 | 0.54 | 1 to 100 | epic bows |
15 | 2 | 4 | 0.65 | 101 to 300 | epic bows |
21 | 13 | 2, 3 | 0.54 | all | default main-hand fist |
21 | 13 | 4 | 0.65 | 200 to 300 | epic main-hand fist |
21 | 4 | 4 | 0.155 | 115 to 164 | epic main-hand mace |
21 | 15 | 4 | 0.155 | 101 to 200 | epic main-hand daggers |
21 | 15 | 4 | 0.3125 | all | epic main-hand daggers |
21 | 0 | 4 | 0.54 | all | epic main-hand axes |
25 | 16 | 3, 4 | 0.65 | all | rare and epic thrown |
26 | 18 | 3, 4 | 0.65 | all | rare and epic crossbows |
inventorytype | subclass | avg delay | detail |
---|---|---|---|
21 | 0 | 2400 | main hand axe |
13 | 0 | 2300 | one hand axe |
22 | 0 | 2000 | off hand axe |
17 | 1 | 3400 | two hand axe |
21 | 4 | 2000 | main hand mace |
13 | 4 | 2300 | one hand mace |
17 | 5 | 3300 | two hand mace |
22 | 4 | 1500 | off hand mace |
21 | 7 | 1900 | main hand sword |
13 | 7 | 2200 | one hand sword |
22 | 7 | 1500 | off hand sword |
17 | 8 | 3300 | two hand sword |
21 | 15 | 1700 | main hand dagger |
13 | 15 | 1700 | one hand dagger |
22 | 15 | 1600 | off hand dagger |
21 | 13 | 2600 | main hand fist |
13 | 13 | 2000 | one hand fist |
22 | 13 | 2000 | off hand fist |
17 | 6 | 3200 | two hand polearm |
17 | 10 | 2700 | two hand staff |
15 | 2 | 2700 | bow |
25 | 16 | 1900 | thrown |
26 | 3 | 2700 | ranged - gun |
26 | 18 | 2900 | ranged - crossbow |
26 | 19 | 1700 | ranged - wand |
Because weapon damage is not an effective mechanic of damage for druids and casters, caster and druid weapons sacrifice a portion of their DPS to either gain a base amount of spell power or feral attack power, or increase the stat budget ceiling to accomodate more spellpower or feral attack power. The amount of Spell Power or Feral Attack Power gained is proportional to the amount of DPS reduction on the item.
One-hand caster weapons from tbc and below have the full allotment of spellpower attributed as a stat. Feral Druids do not use one-handed weapons.
One-Hand and Two-Hand caster weapons may or may not have spellpower attributed as a stat, and will come with a base quantity by default.
items with a base spellpower figure built-in contain a spellid_1 of 46749
The typical damage coefficient on a two handed weapon is 0.65, for caster weapons this is reduced to 0.54.
The estimated calculation for adjusted spell power or feral attack power applicable for item level 0 to 165:
Quality | Formula | Graph |
---|---|---|
2 | y = 439x |
graph |
3 | y = 500 + 525x |
graph |
4 | y = 10000 + 600x + 0.16x^2 |
graph |
The chest InventoryType has the highest sell value of all slots, similar to the weight of slotMod. Sell value is determined by taking the highest value item (chest) and dividing its cost by the cost of the other items of an equivalent item level and subclass. Weight coefficients for plate, mail, leather, and cloth are derived by dividing the plate chest piece against the chest of each other subclass to determine the difference between.
Item Name | InventoryType | sellMod |
---|---|---|
Neck | 2 | 8/16 |
Waist | 6 | 8/16 |
Feet | 8 | 12/16 |
Hands | 10 | 8/16 |
Finger | 11 | 8/16 |
Trinket | 12 | 28/16 |
Shield | 14 | 15/16 |
Back | 9 | 12/16 |
Head | 1 | 12/16 |
Shoulder | 3 | 12/16 |
Shirt | 4 | 4/16 |
Chest | 5 | 16/16 |
Legs | 7 | 16/16 |
Wrists | 9 | 8/16 |
Tabard | 19 | 4/16 |
Chest (Robe) | 20 | 16/16 |
Off-hand | 23 | 8/16 |
Relic | 28 | 4/16 |
Rings, Amulets, and Off-hand items sell for 25% of the buy price. All othe armor types sell for 20% of the buy price.
name | subclass | sellMod |
---|---|---|
Misc | 0 | 28/16 |
Cloth | 1 | 9/16 |
Leather | 2 | 11/16 |
3 | 14/16 | |
Plate | 4 | 16/16 |
Shield | 6 | 16/16 |
Relic | 7,8,9,10 | 16/16 |
The inspiration for the calculations and formulas above probably wouldn't have happened if it weren't for the hard work of the individuals who took the time to write wiki articles and forum threads outlined below. Their work was heavily influenced by the mathematics introduced by a Zul'jin player known as Hyzenthlei.
- TurtleWoW Forums
- Allakhazam Forums
- Wowwiki Archive
- Wowpedia
- Classic WoW Archive
- Wowwiki (HU)
- Elitist Jerks (archive)
- Elitist Jerks Summary
The images for item display were compiled by reynoldscahoon.
A not insignificant amount of inspiration for this application was derived from a spreadsheet created by RS_Degen.
The polynomial expressions used in these calculations were created with Polynomial Visualizer, a web application I wrote specifically to help me calculate, fine-tune, and graph polynomial regression based on plottable item data.