Skip to main content
Glama

Path of Exile 2 Build Optimizer MCP

POE2_SPELL_DAMAGE_RESEARCH.md31.9 kB
# Path of Exile 2 Spell Damage Calculation Research **Date:** 2025-10-23 **Purpose:** Comprehensive research on PoE2 spell damage formulas for DPS calculator implementation **Status:** Research Complete - Ready for Implementation --- ## Table of Contents 1. [General Spell Damage Formula](#general-spell-damage-formula) 2. [Order of Operations](#order-of-operations) 3. [Specific Spell Mechanics](#specific-spell-mechanics) 4. [Damage Modifiers](#damage-modifiers) 5. [Support Gem Interactions](#support-gem-interactions) 6. [Critical Strike System](#critical-strike-system) 7. [Resistance and Penetration](#resistance-and-penetration) 8. [Damage Conversion](#damage-conversion) 9. [Special Mechanics](#special-mechanics) 10. [Official Sources](#official-sources) --- ## 1. General Spell Damage Formula ### Core Formula ``` Final Damage = (Base Damage + Added Damage) × (1 + Sum of Increased/Decreased) × (Product of More/Less Multipliers) × Critical Multiplier × Resistance Multiplier ``` ### Simplified Step-by-Step 1. **Base Damage**: Determined by spell gem level (not weapon damage) 2. **Added Damage**: Flat damage from gear/supports, multiplied by Damage Effectiveness 3. **Increased/Decreased**: All additive modifiers summed together 4. **More/Less**: Each multiplier applied multiplicatively 5. **Critical Strike**: Applied if crit roll succeeds 6. **Resistance**: Enemy resistance/penetration applied last ### Example Calculation ``` Base: 100 Cold Damage (from gem level 15) Added: +50 Cold Damage (after damage effectiveness) Increased: 300% increased spell damage More: 40% more (Hourglass) + 20% more (support) = 1.4 × 1.2 = 1.68 Casts/sec: 2.0 Step 1: 100 + 50 = 150 base Step 2: 150 × (1 + 3.0) = 150 × 4.0 = 600 Step 3: 600 × 1.68 = 1,008 Step 4: 1,008 × 2.0 casts/sec = 2,016 DPS ``` **Source:** Maxroll.gg PoE2 Damage Scaling Guide --- ## 2. Order of Operations ### Complete Damage Calculation Order 1. **Damage Conversion** (if applicable) - Skill-inherent conversion first - Gear/passive conversion second - Normalized to 100% if exceeded 2. **Base Damage Calculation** - For spells: Gem level determines base damage - For attacks: Weapon damage 3. **Added Damage Application** - Spells: `Added Damage × Damage Effectiveness + Base Damage` - Attacks: `(Base + Added Damage) × Damage Effectiveness` - **Key Difference**: Spells multiply ONLY added damage by effectiveness 4. **Damage Gain** (e.g., "Gain X% of Physical as Fire") - Calculated before scaling modifiers - Additive with other gain sources - Multiplicative with damage scaling 5. **Increased/Decreased Modifiers** - Formula: `(1 + Sum of All Increases - Sum of All Decreases)` - All sources stack additively (diminishing returns) - Applied as single multiplier 6. **More/Less Modifiers** - Each source multiplies separately - Formula: `Product of (1 + More1) × (1 + More2) × ...` - Example: 25% more × 25% more = 1.25 × 1.25 = 1.5625 (56.25% total increase) 7. **Critical Strike Calculation** (if hit crits) - Base: +100% critical damage bonus (200% total damage) - Formula: `(1 + Base Crit Bonus + Added Crit Bonus) × (1 + Increased Crit Damage) × Product of More Crit Multipliers` - PoE2 uses "Critical Damage Bonus" instead of PoE1's "Critical Strike Multiplier" 8. **Resistance/Penetration Application** - Exposure/Curses applied first (can go negative) - Penetration applied second (cannot go below 0% except with Leopold's Applause) - Formula: `Effective Resistance = min(Resistance, Max Resistance) - Penetration` 9. **Final Damage Mitigation** - Armour (for physical damage) - Evasion/Dodge (hit avoidance - separate from damage calc) **Sources:** - Maxroll.gg Damage Scaling - Mobalytics.gg Order of Operations Guide - PoE Wiki (poewiki.net) --- ## 3. Specific Spell Mechanics ### Lightning Spells #### Arc (Chain Lightning) - **Base Mechanic**: Chains between enemies - **Chains**: 6-9 times at gem levels 5-20 - **Chain Range**: 3.5 metres - **Damage Scaling**: **15% MORE damage per REMAINING chain** - Single target: Full chains remaining = maximum damage - This is a "more" multiplier, not "increased" - **Special**: Secondary Arc created at each chain (cannot chain further) - **Recent Changes**: - 50% more shock magnitude (Patch 0.3.0) - Quality bonus: +0-2 additional chains (changed from damage bonus) - Can consume Lightning Infusion to chain additional times - **Tags**: Spell, Lightning, Chaining - **Critical Strike Chance**: Varies by gem level - **Source:** poe2db.tw, maxroll.gg, pathofexile2.wiki.fextralife.com #### Spark (Projectile) - **Base Damage**: (1-11) to (10-216) Lightning Damage - **Projectiles**: Fires 4-9 projectiles (scales with gem level) - **Duration**: 2 seconds base - **Behavior**: Projectiles travel erratically along the ground - **Hit Limitation**: Same projectile wave cannot hit same target more than once every 0.66 seconds - **Cast Time**: 0.70 seconds - **Critical Strike Chance**: 9.00% - **Cold-Infused Version**: - Damage: (7-182) to (11-273) Cold + (1-11) to (10-216) Lightning - Projectiles: 12-16 in a circle - Cast Time: +0.5 seconds (1.2 total) - Critical Strike Chance: 11.00% - **Tags**: Spell, Projectile, Lightning - **Scaling**: Affected by Spell, Projectile, Lightning, and Elemental damage modifiers - **Source:** poewiki.net, poe2db.tw #### Lightning Conduit - **Base Mechanic**: Cone AoE that deals significantly more damage to shocked enemies - **Tier**: 13 - **Cooldown**: 8.00 seconds (6 seconds previously mentioned) - **Charges**: 1 charge storage - **Cast Time**: 1.00 second - **Critical Strike Chance**: 10% - **Mana Cost**: 19-195 (scales with level) - **Damage**: - Gem level 13: 69-208 damage (previously 41-123) - Gem level 20: 189-568 damage (previously 99-297) - **Key Change**: No longer consumes Shock from targets - **Synergies**: Works with "Cast on Shock" support for automatic triggering - **Tags**: Spell, Lightning, Area - **Source:** pathofexile2.wiki.fextralife.com, poe2db.tw #### Orb of Storms - **Base Damage**: (1-14) to (8-260) Lightning Damage (gem level 1-20) - **Trigger Mechanic**: Fires bolt every 4 seconds AND when you cast ANY spell near the orb - **Radius**: 3.6 metres - **Duration**: 12 seconds - **Bolts**: Expires after firing 6 bolts - **Chaining**: Chains 3-5 times (scales with quality) - **Recent Changes**: - Now triggers from ANY spell in radius (previously only lightning spells) - Creates Lightning Infusion Remnant when expired or all bolts used - **Tags**: Spell, Lightning, Area, Duration, Chaining - **Source:** poewiki.net, poe2db.tw ### Cold Spells #### Frostbolt - **Base Mechanic**: Slow-moving piercing projectile - **Special Interaction**: Ice Nova and Snap can be cast on Frostbolt projectiles - **Wake Effect**: Leaves chilled ground behind it - **Explosion Radius**: 3.2 metres (when detonated by Ice Nova/Snap) - **Special Bonus**: 50% more damage with hits for blasts from unique enemies - **Tags**: Spell, Projectile, Cold - **Source:** poewiki.net, poe2wiki.net #### Ice Nova - **Base Mechanic**: Wave of ice in all directions - **Radius**: 3.2 metres - **Cast Time**: 1.00 second - **Critical Strike Chance**: 12.00% - **Special Effects**: - 100% more magnitude of chill - 100-157% more freeze buildup - Knocks back enemies - **Frostbolt Synergy**: Can be cast targeting Frostbolt to originate from projectile - **Endgame Transition**: Snakepit ring makes Frostbolts detonate on impact (superior to Ice Nova) - **Tags**: Spell, Cold, Area - **Source:** pathofexile2.wiki.fextralife.com, poewiki.net #### Freezing Pulse - **Base Mechanic**: Icy projectile that fades quickly - **Damage Scaling**: Damage and freeze chance REDUCE as projectile travels - **Behavior**: Projectile dissipates over distance - **Freeze Chance**: Chance to freeze diminishes with distance - **Tags**: Spell, Projectile, Cold - **Source:** pathofexile.fandom.com, poedb.tw #### Frost Bomb - **Primary Use**: Applies Cold Exposure (resistance reduction) - **Base Exposure**: 20% Elemental Exposure - **Scaling**: Up to 50% Elemental Exposure based on number of pulses hitting target - **Interaction**: Scouring Winds ascendancy node doubles Exposure effectiveness - **Boss Rotation**: Cast first to apply exposure, then use main damage skills - **Tags**: Spell, Cold, Area, Duration - **Source:** mobalytics.gg build guides ### Fire Spells #### Fireball - **Base Mechanic**: Large ball of fire that explodes on impact - **Explosion**: AoE damage on impact - **Frost Wall Synergy**: Splits into multiple projectiles when hitting walls/obstacles - **Flame Wall Synergy**: Projectiles passing through Flame Wall gain added fire damage - **Tags**: Spell, Projectile, Fire - **Source:** maxroll.gg, mobalytics.gg #### Flame Wall - **Tier**: 3 - **Base Mechanic**: Creates wall of fire in front of character - **Direct Effect**: Ignites everything within area - **Projectile Bonus**: Projectiles (yours and allies) passing through gain: - Added fire damage - Inflict Ignite on hit - **Tags**: Spell, Fire, Area, Duration - **Source:** sportskeeda.com spell list #### Ember Fusillade - **Tier**: 3 - **Base Mechanic**: Conjures blazing Ember hovering above you - **Lightning Infusion Interaction**: Consumes Lightning to create chaining beam from each Ember - **Tags**: Spell, Fire - **Source:** sportskeeda.com spell list #### Incinerate - **Tier**: 5 - **Base Mechanic**: Channeling spell - torrent of fire from your hand - **Scaling**: Flames grow stronger the longer you channel - **Maximum Strength Effects**: - Applies stacking Fire Exposure - Creates Burning Ground - **Ignite**: Ignites enemies in front of you - **Tags**: Spell, Fire, Channeling, Area - **Source:** sportskeeda.com spell list --- ## 4. Damage Modifiers ### Increased/Decreased Spell Damage **Formula**: `(1 + Sum of All Increases - Sum of All Decreases)` **Characteristics**: - All sources stack additively (diminishing returns) - Common sources: - Passive tree nodes - Equipment (% increased spell damage) - Skill tree clusters - Temporary buffs **Example**: ``` 20% increased + 30% increased + 50% increased = 100% increased = (1 + 1.0) = 2.0x multiplier NOT: 1.2 × 1.3 × 1.5 = 2.34x ``` **Source:** All PoE2 damage guides --- ### More/Less Spell Damage **Formula**: `Product of (1 + More1) × (1 + More2) × ...` **Characteristics**: - Each source multiplies separately (exponential scaling) - Much rarer than "increased" modifiers - Primary sources: - Support gems (most common) - Ascendancy notables - Unique item modifiers - Skill gem modifiers **Example**: ``` 25% more × 25% more = 1.25 × 1.25 = 1.5625 (56.25% total) 40% more × 20% more = 1.40 × 1.20 = 1.68 (68% total) ``` **Importance**: More multipliers are the key to significant damage boosts. Support gems are valuable specifically because they provide "more" multipliers. **Source:** Maxroll.gg, Mobalytics.gg --- ### Added Damage (Flat Fire/Cold/Lightning) **Spell Application Formula**: ``` Total Base Damage = Skill Base Damage + (Added Damage × Damage Effectiveness) ``` **Key Points**: - Damage Effectiveness varies by skill (100% default for most spells) - Added damage from: - Support gems (e.g., "Added Lightning Damage Support") - Equipment (if applicable in PoE2) - Skill gem modifiers - Spells multiply ONLY added damage by effectiveness (not base damage) **Important Change from PoE1**: PoE2 appears to lack weapon mods like "Adds 1-87 Lightning Damage to Spells", making gem levels more critical. **Example**: ``` Base Damage: 100 (from gem level) Added Damage: 50 Damage Effectiveness: 120% Total = 100 + (50 × 1.2) = 100 + 60 = 160 base damage ``` **Source:** PoE Wiki, Maxroll.gg --- ### Archmage Support (Mana Scaling) **Tier**: Spirit Gem **Base Mechanic**: - Non-Channelling spells cost additional mana - Spells deal extra Lightning damage based on maximum Mana **Damage Formula**: ``` Extra Lightning Damage = (Maximum Mana / 100) × 4% ``` **Recent Buff (Patch 0.3.0)**: - Increased from 3% to 4% per 100 mana **Characteristics**: - Scales with Intelligence (increases max mana) - Defense and offense from same stat - Synergizes with: - Stormweaver ascendancy (Force of Will) - Mind Over Matter keystone - Mana stacking items **Build Strategy**: - Stack maximum mana as primary scaling stat - Intelligence provides both mana and ES (defense) - Mana becomes damage AND survivability **Example**: ``` Maximum Mana: 2,500 Extra Damage = (2,500 / 100) × 4% = 25 × 4% = 100% of damage as extra Lightning If base damage is 1,000: Total = 1,000 + 1,000 = 2,000 damage ``` **Source:** poewiki.net, maxroll.gg Archmage build guides --- ## 5. Support Gem Interactions ### How Support Gems Work **Primary Function**: Provide multiplicative "more" damage bonuses **Tier System**: - Higher-tiered support gems have higher values - Secondary effects on some high-tier supports **Stacking Formula**: ``` Total Multiplier = (1 + More1) × (1 + More2) × (1 + More3) × ... ``` **Example Support Gem Combinations**: ``` Support 1: 25% more spell damage Support 2: 25% more spell damage Support 3: 30% more spell damage Total = 1.25 × 1.25 × 1.30 = 2.03125 (103% more damage) ``` **Key Principle**: Gaining additional sockets for support gems is extremely valuable because each provides multiplicative scaling. **Damage Calculation Integration**: Support gems are applied in the "More/Less" step of damage calculation, after increased/decreased modifiers. **Source:** All PoE2 guides, support gem wikis --- ## 6. Critical Strike System ### PoE2 Changes from PoE1 **New System**: "Critical Damage Bonus" replaces "Critical Strike Multiplier" **Base Values**: - Default Critical Damage Bonus: +100% - Total damage on crit: 200% (100% base + 100% bonus) - PoE1 comparison: PoE1 had +50% default, PoE2 has +100% ### Critical Strike Chance **Base Chance**: Listed on spell gem (varies by spell) - Arc: Varies by level - Spark: 9.00% - Lightning Conduit: 10% - Orb of Storms: Varies by level - Ice Nova: 12.00% **Crit Roll Mechanic**: 1. When skill is cast, random number rolled between 0-99.99 2. If Critical Strike Chance % exceeds this number, hit is critical 3. Same roll used for all hits from that cast **Scaling**: - "Increased Critical Hit Chance for Spells" (additive) - Base crit chance modifiers (rare) ### Critical Damage Calculation **Formula**: ``` Critical Multiplier = 1 + (Base Critical Damage Bonus + Added Critical Damage Bonus) × (1 + Increased Critical Damage) × (Product of More Critical Damage) ``` **Two Types of Scaling**: 1. **Increased Critical Damage Bonus** (more common) - Percentage-based increases/reductions - Stack additively with each other - Applied as multiplier to base bonus 2. **Added Critical Damage Bonus** (less common, more powerful) - Flat additions to critical damage bonus - Similar to PoE1's Critical Strike Multiplier - Added directly to base bonus **Example Calculation**: ``` Base Critical Damage Bonus: +100% Added Critical Damage Bonus: +41% (from flail) Increased Critical Damage: 50% Step 1: 100% + 41% = 141% base bonus Step 2: 141% × (1 + 0.50) = 141% × 1.5 = 211.5% Step 3: Total damage = 100% + 211.5% = 311.5% (3.115x) ``` ### Expected DPS with Crits **Formula**: ``` Expected DPS = (Base DPS × (1 - Crit Chance)) + (Base DPS × Critical Multiplier × Crit Chance) ``` **Example**: ``` Base DPS: 1,000 Crit Chance: 50% Crit Multiplier: 3.0x Non-crit contribution: 1,000 × 0.5 = 500 Crit contribution: 1,000 × 3.0 × 0.5 = 1,500 Expected DPS: 500 + 1,500 = 2,000 ``` **Source:** Maxroll.gg, Mobalytics.gg Critical Hits Guide, PoE Wiki --- ## 7. Resistance and Penetration ### Resistance Mechanics **Base Concept**: Resistance reduces damage by percentage - Fire, Cold, Lightning, Chaos resistances - Players and monsters both have resistances - Cap varies (75% default for players in most cases) **Formula**: ``` Damage Taken = Base Damage × (1 - Resistance%) ``` **Example**: ``` 1,000 damage vs 75% resistance = 1,000 × 0.25 = 250 damage taken 1,000 damage vs 0% resistance = 1,000 × 1.0 = 1,000 damage taken 1,000 damage vs -50% resistance = 1,000 × 1.5 = 1,500 damage taken ``` ### Penetration Mechanics **Core Concept**: Penetration lowers effective resistance for YOUR damage calculation only **Formula**: ``` Effective Resistance = min(Target Resistance, Max Resistance) - Penetration ``` **Key Limitations**: 1. **Cannot penetrate below 0%** (standard rule) - Wasted penetration if target has <0% resistance - Example: -25% resistance + 50% penetration = still -25% (25% penetration wasted) 2. **Exception**: Leopold's Applause Gloves - Only item allowing penetration below 0% - "Your Hits can Penetrate Elemental Resistances down to a minimum of -50%" **Example Calculations**: ``` Target: 75% Fire Resistance Penetration: 30% Effective Resistance = 75% - 30% = 45% Target: 20% Fire Resistance Penetration: 30% Effective Resistance = 20% - 30% = 0% (cannot go negative, 10% wasted) Target: -10% Fire Resistance (from Exposure) Penetration: 30% Effective Resistance = -10% (penetration does nothing, all wasted) ``` ### Exposure Mechanics **Base Effect**: Debuff that reduces elemental resistance - Default: -20% resistance for 4 seconds - Can result in NEGATIVE resistances - Applies to player or enemy **Interaction with Penetration**: Exposure is applied FIRST, then Penetration **Order of Operations**: 1. Apply Exposure/Curses (can go negative) 2. Apply Penetration (cannot go below 0% normally) **Example**: ``` Target: 75% Cold Resistance Apply Frost Bomb Exposure: -50% → 75% - 50% = 25% resistance Apply Penetration: 30% → 25% - 30% = 0% (limited to 0%) Target: 75% Cold Resistance Apply Exposure: -20% → 75% - 20% = 55% resistance Apply Penetration: 40% → 55% - 40% = 15% resistance Final damage: Base × (1 - 0.15) = Base × 0.85 ``` ### Negative Resistances **When Exposure/Curses Alone Bring Below 0%**: - Target takes INCREASED damage - Penetration becomes useless (already below 0%) - Better to use penetration OR exposure, not both when already negative **Example**: ``` Target: 75% Fire Resistance Exposure + Curses: -95% total reduction → 75% - 95% = -20% resistance Damage = Base × (1 - (-0.20)) = Base × 1.20 (20% MORE damage) Adding 30% penetration: Does nothing, resistance already negative ``` **Strategic Implication**: Penetration and negative resistances are mutually exclusive for maximum benefit. **Source:** PoE Wiki Resistance Penetration, Mobalytics.gg Penetration Guide --- ## 8. Damage Conversion ### Core Mechanic **Definition**: Changes damage type from one to another OR gains extra damage from existing type **Two Categories**: 1. **Damage Conversion**: Changes type completely 2. **Damage Gain**: Adds extra damage without removing source ### Key Changes from PoE1 **MAJOR CHANGE**: Converted damage NO LONGER remembers source type **Implication**: - Old: Physical → Fire could scale with both Physical and Fire mods - New: Physical → Fire scales ONLY with Fire mods **Example**: ``` PoE1: 100 Physical converted to Fire - Could scale with "increased Physical damage" - Could scale with "increased Fire damage" - Double dipping PoE2: 100 Physical converted to Fire - Scales ONLY with "increased Fire damage" - Physical modifiers no longer apply - No double dipping ``` ### Conversion vs Gain **Damage Conversion**: ``` "100% of Physical Damage Converted to Fire Damage" - Physical damage becomes Fire damage - Loses Physical scaling - Gains Fire scaling ``` **Damage Gain**: ``` "Gain 50% of Physical Damage as Extra Fire Damage" - Physical damage remains Physical - Adds 50% of that value as Fire - Physical still scales with Physical mods - Fire portion scales with Fire mods ``` **Example**: ``` Base: 100 Physical Damage Conversion (100% Phys → Fire): 100 Fire Damage Gain (50% Phys as Fire): 100 Physical + 50 Fire Conversion can scale with Fire mods only Gain's Physical can scale with Phys mods, Fire can scale with Fire mods ``` ### Two-Step Conversion Process **Step 1**: Skill-inherent conversion **Step 2**: All other conversion sources (gear, passives, etc.) **Normalization**: If total conversion exceeds 100%, normalized to 100% **Example**: ``` Conversion sources: - 100% Physical → Fire (from passive) - 50% Physical → Cold (from gear) Total: 150% conversion Normalized: 100% / 150% = 0.6667 multiplier Final: 67% Fire, 33% Cold ``` ### Limitations **Only affects Hits**: Damage conversion and gain do NOT work for Damage over Time **Calculated Before Scaling**: Conversion/Gain happens before damage modifiers apply **Source:** PoE Wiki Damage Conversion, Mobalytics.gg Damage Conversion Guide --- ## 9. Special Mechanics ### Elemental Ailments #### Shock - **Effect**: 20% increased damage taken (debuff on enemy) - **Duration**: 4 seconds (players), 8 seconds (non-players) - **Stacking**: Does NOT stack, highest effect applies - **Application Chance**: Based on damage dealt relative to enemy's ailment threshold - 25% chance per 100% of ailment threshold - **Damage Bonus Calculation**: Applied multiplicatively in final damage **Formula Integration**: ``` Final Damage = [...previous steps...] × (1 + 0.20 if shocked) ``` #### Chill - **Effect**: Slows enemy action speed - **Magnitude**: 30% minimum, 50% default maximum - **Duration**: 2 seconds (players), 8 seconds (non-players) - **Application**: Cold damage chills by default (no "chance to chill" needed) - **Threshold**: Chills <30% magnitude are ignored - **Scaling**: Based on cold damage relative to target's ailment threshold #### Freeze - **Effect**: Completely stops enemy movement and actions - **Duration**: 4 seconds default - **Application**: Cold hits that meet threshold - **Scaling**: Damage modifiers (Shock, Exposure) improve freeze chance by improving hit damage ### Infusions **Concept**: Elemental charges/buffs consumed by skills for enhanced effects **Examples**: - **Lightning Infusion**: Ember Fusillade consumes for chaining beams - **Cold Infusion**: Spark fires in circle pattern with mixed damage - **Fire Infusion**: Various skill modifications **Generation**: - Specific skills create Infusion Remnants - Frost Bomb, Snap, Siphon Elements (Cold) - Orb of Storms (Lightning when expired) ### Damage Effectiveness **Spell Behavior**: Spells multiply ADDED damage by effectiveness **Default**: 100% for most spells (not displayed) **Formula**: ``` Total Base = Spell Base Damage + (Added Damage × Damage Effectiveness) ``` **Skills with Modified Effectiveness**: Usually displayed on gem if ≠ 100% ### Gem Level Scaling **Importance**: Spell base damage scales with gem level **Scaling Pattern**: Generally linear flat damage increases per level **Priority**: +X to Spell Gem Levels is extremely valuable - Directly increases base damage - No diminishing returns like "increased damage" **Example**: ``` +5 to Level of all Lightning Spell Gems Arc level 15 → 20 Base damage: 100 → 150 (50% more base damage) ``` --- ## 10. Official Sources ### Primary Resources #### Official Wikis - **PoE Wiki**: https://www.poewiki.net/wiki/poe2wiki:Damage - Community-maintained, GGG-supported - Most authoritative source - Damage conversion: https://www.poewiki.net/wiki/poe2wiki:Damage_conversion - Resistance penetration: https://www.poewiki.net/wiki/Resistance_penetration - Critical hits: https://www.poewiki.net/wiki/poe2wiki:Critical_hit - **Fextralife Wiki**: https://pathofexile2.wiki.fextralife.com/ - Individual spell pages - Good for quick reference #### Database Sites - **poe2db.tw**: https://poe2db.tw/us/ - Datamined information - Spell stats, support gems - Most accurate for raw numbers - Spells list: https://poe2db.tw/us/ (navigate to Spells section) ### Community Guides #### Maxroll.gg (Highly Recommended) - **Damage Scaling Guide**: https://maxroll.gg/poe2/getting-started/damage-scaling - Comprehensive formulas - Clear examples - Order of operations - **Build Guides**: https://maxroll.gg/poe2/build-guides/ - Archmage Spark Stormweaver - Fireball builds - Ice Nova builds #### Mobalytics.gg - **Damage & Defence Order**: https://mobalytics.gg/poe-2/guides/damage-defence-calc-order - **Penetration Guide**: https://mobalytics.gg/poe-2/guides/penetration - **Resistances Guide**: https://mobalytics.gg/poe-2/guides/resistances - **Critical Hits Guide**: https://mobalytics.gg/poe-2/guides/critical-hits - **Freeze Guide**: https://mobalytics.gg/poe-2/guides/freeze #### Other Resources - **Game8**: https://game8.co/games/Path-of-Exile-2/archives/488221 - Skill gem lists - Beginner guides - **Sportskeeda**: https://www.sportskeeda.com/mmo/path-exile-2-poe2-sorceress-elemental-skills-gems - Sorceress spell lists ### Reddit Community - **r/PathOfExile2** (subreddit likely exists but not directly searched) - Community discussions - Build sharing - Mechanic testing ### GGG Official - **Grinding Gear Games**: Official developer - Patch notes on official forums - Would have official mechanic explanations (not directly accessed in research) --- ## Implementation Notes for DPS Calculator ### Required Inputs 1. **Skill Information**: - Spell name - Gem level - Base damage range - Damage effectiveness - Critical strike chance - Cast time - Tags (Spell, Projectile, Area, etc.) 2. **Character Stats**: - % Increased Spell Damage (sum of all sources) - % More Spell Damage multipliers (list of each) - Flat added damage (by type) - Critical damage bonus (base + added + increased) - Cast speed increases - Maximum mana (for Archmage) 3. **Support Gems**: - List of support gems - Each gem's "more" multiplier - Each gem's added damage (if applicable) 4. **Enemy Stats**: - Resistances (Fire/Cold/Lightning/Chaos) - Ailment threshold - Applied debuffs (Shock, Exposure, Curses) 5. **Penetration/Reduction**: - % Resistance Penetration - Exposure amount - Curse effectiveness ### Calculation Steps (Code Implementation) ```typescript // Step 1: Calculate base damage const baseDamage = getSpellBaseDamage(gemLevel); // Step 2: Add flat damage (with damage effectiveness) const addedDamage = calculateAddedDamage(flatAddedDamage, damageEffectiveness); const totalBaseDamage = baseDamage + addedDamage; // Step 3: Apply increased/decreased (single additive sum) const increasedMultiplier = 1 + (sumOfIncreased - sumOfDecreased); const damageAfterIncreased = totalBaseDamage * increasedMultiplier; // Step 4: Apply more/less (multiplicative stack) const moreMultiplier = moreMultipliers.reduce((acc, more) => acc * (1 + more), 1); const damageAfterMore = damageAfterIncreased * moreMultiplier; // Step 5: Calculate expected damage with crits const critMultiplier = 1 + calculateCritBonus(baseCritBonus, addedCritBonus, increasedCrit, moreCrit); const nonCritDamage = damageAfterMore * (1 - critChance); const critDamage = damageAfterMore * critMultiplier * critChance; const expectedHitDamage = nonCritDamage + critDamage; // Step 6: Apply resistance/penetration const effectiveResistance = calculateEffectiveResistance( enemyResistance, exposure, penetration, curses ); const damageAfterResistance = expectedHitDamage * (1 - effectiveResistance); // Step 7: Calculate DPS const castsPerSecond = calculateCastSpeed(baseCastTime, increasedCastSpeed); const dps = damageAfterResistance * castsPerSecond; // Special: Archmage scaling if (hasArchmage) { const archmageBonus = (maxMana / 100) * 0.04; // 4% per 100 mana const extraLightningDamage = totalBaseDamage * archmageBonus; // Add to base damage and recalculate } ``` ### Special Considerations 1. **Arc Scaling**: Track remaining chains, apply 15% more per remaining chain 2. **Lightning Conduit**: Check if target is shocked, apply massive multiplier 3. **Spark**: Account for projectile count and hit frequency limitations 4. **Damage Conversion**: Apply before any scaling, track final damage type 5. **Infusion Mechanics**: May need toggle for "infusion consumed" state 6. **Quality Bonuses**: Additional chains, damage, etc. ### Validation **Test Cases**: - Basic spell with no modifiers - Spell with increased damage only - Spell with more multipliers - Critical strike scenarios - Resistance/penetration edge cases (negative resistance, penetration beyond 0%) - Archmage with various mana pools - Arc with different remaining chains - Damage conversion scenarios --- ## Formulas Summary (Quick Reference) ### Core Damage Formula ``` Final Damage = (Base + Added × Effectiveness) × (1 + ΣIncreased) × Π(1 + More) × CritMultiplier × (1 - EffectiveRes) ``` ### Critical Damage ``` CritMultiplier = 1 + (BaseCritBonus + AddedCritBonus) × (1 + IncreasedCrit) × Π(1 + MoreCrit) ``` ### Effective Resistance ``` Step 1: Apply Exposure/Curses → TempRes = BaseRes - Exposure - Curses Step 2: Apply Penetration → EffectiveRes = max(TempRes - Penetration, 0) Exception: Leopold's Applause → min = -50% instead of 0% ``` ### Expected DPS ``` ExpectedDPS = [(HitDmg × (1 - CritChance)) + (HitDmg × CritMult × CritChance)] × CastSpeed ``` ### Archmage ``` ExtraLightningDmg = (MaxMana / 100) × 4% ``` ### Damage Conversion Normalization ``` If ΣConversion > 100%: NormalizedConversion = (ConversionAmount / ΣConversion) × 100% ``` --- ## Caveats and Special Cases 1. **Penetration Cannot Go Below 0%**: Except with Leopold's Applause unique gloves 2. **Negative Resistances**: Penetration is wasted if enemy already has negative resistance 3. **Conversion Lost Memory**: Converted damage doesn't scale with source type in PoE2 4. **Spell vs Attack Damage Effectiveness**: Spells multiply ONLY added damage; attacks multiply total 5. **Gem Levels Critical**: Spells scale base damage from gem level, not weapons 6. **Support Gem Sockets**: Each additional socket is exponential damage increase 7. **Increased vs More**: More multipliers are exponentially more valuable 8. **Ailment Threshold**: Boss enemies have much higher thresholds (harder to shock/freeze) 9. **Hit Rate Limitations**: Some skills (Spark) have same-target hit cooldowns 10. **Infusion Consumption**: One-time bonuses that require resource management --- ## Next Steps for Implementation 1. **Create Spell Database**: - JSON with all spell base stats by gem level - Include: base damage, crit chance, cast time, tags, special mechanics 2. **Build Modifier System**: - Categorize: increased, more, added damage, crit, cast speed - Proper stacking rules for each category 3. **Implement Calculation Pipeline**: - Follow exact order of operations - Modular functions for each step 4. **Add Resistance System**: - Exposure, penetration, curse calculations - Proper ordering and limitations 5. **Special Mechanics**: - Arc remaining chains - Lightning Conduit shock multiplier - Archmage mana scaling - Damage conversion 6. **Support Gem Library**: - Database of all support gems - Their more multipliers and effects 7. **Testing Framework**: - Unit tests for each formula - Integration tests for full builds - Validation against known builds 8. **User Interface**: - Input fields for all modifiers - Spell selection - Support gem selection - Real-time calculation updates --- **End of Research Document** *This document synthesizes information from multiple authoritative sources as of 2025-10-23. Path of Exile 2 is in Early Access and mechanics may change with patches. Always verify against latest patch notes and official sources.*

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HivemindOverlord/poe2-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server