Unless stated otherwise, everything here is Diablo II: Resurrected build 3.3.93847, Reign of the Warlock.
Unless stated otherwise, everything here is Diablo II: Resurrected build 3.3.93847, Reign of the Warlock.

Passive - Enhances your summoned and bound demons.
Demonic Mastery is a Warlock passive (Demon Skills, level 1, requires Summon Goatman). It costs no mana and has no cast: its four bonus lines are read by the rows of Summon Goatman, Summon Tainted, Summon Defiler and Bind Demon, and its hard points set how many demons you can have out. Two numbers decide it: +5% damage a level for every demon, and the 5 and 10 hard point thresholds that raise the demon cap from one to two to three.
| Level | Damage: + | Attack Speed: + | Attack Rating: + | Max Demons |
|---|---|---|---|---|
| 1 | 1% | 5% | 25 | 1 |
| 2 | 6% | 6% | 50 | 1 |
| 3 | 11% | 7% | 75 | 1 |
| 4 | 16% | 8% | 100 | 1 |
| 5 | 21% | 9% | 125 | 2 |
| 6 | 26% | 10% | 150 | 2 |
| 7 | 31% | 11% | 175 | 2 |
| 8 | 36% | 12% | 200 | 2 |
| 9 | 41% | 13% | 225 | 2 |
| 10 | 46% | 14% | 250 | 3 |
| 11 | 51% | 15% | 275 | 3 |
| 12 | 56% | 16% | 300 | 3 |
| 13 | 61% | 17% | 325 | 3 |
| 14 | 66% | 18% | 350 | 3 |
| 15 | 71% | 19% | 375 | 3 |
| 16 | 76% | 20% | 400 | 3 |
| 17 | 81% | 21% | 425 | 3 |
| 18 | 86% | 22% | 450 | 3 |
| 19 | 91% | 23% | 475 | 3 |
| 20 | 96% | 24% | 500 | 3 |
| 21 | 101% | 25% | 525 | 3 |
| 22 | 106% | 25% | 550 | 3 |
| 23 | 111% | 25% | 575 | 3 |
| 24 | 116% | 25% | 600 | 3 |
| 25 | 121% | 25% | 625 | 3 |
| 26 | 126% | 25% | 650 | 3 |
| 27 | 131% | 25% | 675 | 3 |
| 28 | 136% | 25% | 700 | 3 |
| 29 | 141% | 25% | 725 | 3 |
| 30 | 146% | 25% | 750 | 3 |
ln21: Param2 (1) plus Param1 (5) a level, so +1% at level 1 and +96% at level 20. The row's Param11 and Param12 (both 10, the comments call them "Damage % baseline / per level") are not what the calc reads.min(ln12, 25): Param1 (5) plus Param2 (1) a level, capped at 25%, which the line reaches at level 21. The cap is written into the calc, so +skills past that buy nothing here.ln56: Param5 (25) plus Param6 (25) a level, a flat +500 at level 20. The table's comment on Param5 says "Attack Rating %", but the stat the demons add it to is tohit, a flat value.dm91, that the evaluator prints as +5% at every level shown (Param9 is 5); it is left out of the table above because it never changes.blvl, the base level: 1 demon, 2 at 5 hard points, 3 at 10 hard points. Levels from items do not count.Every other line reads lvl, so +skills from items raise damage, attack speed and attack rating but never the cap.
The skill does nothing on its own: each demon row carries the references. Summon Goatman, Summon Tainted and Summon Defiler read skill('Demonic Mastery'.dm91) into the demon's velocitypercent, ln21 into its damage, ln56 into its tohit, and min(skill('Demonic Mastery'.ln12), 25) into its attackrate; their petmax column is exactly the blvl ladder in the table. Bind Demon's row reads the same four lines for the demon it captures. Summon Defiler's damage line also adds Param2 (10) of its own row per Demonic Mastery hard point, see Summon Defiler.
The demon count is the one thing on this page that only hard points buy. A Warlock with +6 to skills and 4 hard points still has one demon; the fifth hard point is the second demon.
No synergies: the tooltip has no dsc3 lines and the row has no SymPerCalc columns. Demonic Mastery is instead the synergy source for the whole tree: the demon rows read its lvl lines (damage, attack speed, attack rating, speed), and Summon Defiler and the three petmax columns read its blvl. Blood Oath lists it as a prerequisite.
A passive that never touches a player. Your demons' hits on a player are cut to 17% of their value by the player-versus-player rule (difficultylevels.txt PlayerDamagePercentVSPlayer), see Player versus Player.
Written from the game's tables (build 3.3.93847) and the cited pages; a per-level table is computed from skills.txt and skilldesc.txt by the same evaluator the skill pages use. A “legacy rule” is a published engine rule no table proves; a “game table” is read from the table named. · Report incorrect data