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.

Summons a Goatman to fight by your side.
Summon Goatman is the Warlock's first summon (Demon Skills, level 1, no prerequisite) and the root of the Demon tree: it unlocks Demonic Mastery, Death Mark and Summon Tainted. It calls a melee demon (summon wargoatman, pettype demon) whose numbers come partly from this row and partly from Demonic Mastery, Blood Oath and Death Mark. The number that decides it is the demon's +10% damage a level, on top of the same again from Demonic Mastery; the one that limits it is the demon cap, which this row reads from Demonic Mastery's hard points.
| Level | Mana | Defense |
|---|---|---|
| 1 | 15 | 100 |
| 2 | 15.50 | 135 |
| 3 | 16 | 170 |
| 4 | 16.50 | 205 |
| 5 | 17 | 240 |
| 6 | 17.50 | 275 |
| 7 | 18 | 310 |
| 8 | 18.50 | 345 |
| 9 | 19 | 380 |
| 10 | 19.50 | 415 |
| 11 | 20 | 450 |
| 12 | 20.50 | 485 |
| 13 | 21 | 520 |
| 14 | 21.50 | 555 |
| 15 | 22 | 590 |
| 16 | 22.50 | 625 |
| 17 | 23 | 660 |
| 18 | 23.50 | 695 |
| 19 | 24 | 730 |
| 20 | 24.50 | 765 |
| 21 | 25 | 800 |
| 22 | 25.50 | 835 |
| 23 | 26 | 870 |
| 24 | 26.50 | 905 |
| 25 | 27 | 940 |
| 26 | 27.50 | 975 |
| 27 | 28 | 1010 |
| 28 | 28.50 | 1045 |
| 29 | 29 | 1080 |
| 30 | 29.50 | 1115 |
ln91: Param9 (100) plus 35 a level, 765 at level 20. The calc reads Param1 for its per-level step, not the Param10 (20) the table's comment calls "Defense per level".skill('Blood Oath'.ln56)). At level 20 that is +665% from this row alone.passivestat3 damagepercent) is ln56 plus Demonic Mastery's Damage line: Param5 (10) plus Param6 (10) a level, so +200% at level 20 before the mastery. Flat damage (item_normaldamage) is ln34: Param3 (1) plus Param4 (2) a level.tohit) is ln78 plus Demonic Mastery's Attack Rating line: Param7 (140) plus Param8 (40) a level, +900 at level 20 before the mastery.item_crushingblow) is 5% plus Param2 (1) per hard point in Death Mark.attackrate) is its own line capped at 25% plus Demonic Mastery's attack speed line, also capped at 25%. Run/Walk copies Demonic Mastery's dm91.All the lines above read lvl, so +skills raise the demon; the Death Mark and Demonic Mastery cap references read blvl.
The Goatman is a melee attacker that rolls Chance to Hit with the attack rating above; the domeleedamage aura event on the row (func 16) fires on each of its melee hits. It carries your own sunder stat: passivestat5 copies item_pierce_damage_immunity from you, so a Monster Physical Immunity is Sundered charm on the Warlock lets the demon hit physical immunes. Its physical damage resistance comes from Blood Oath's dm91 line.
Levels unlock skills on the demon, each cast at the summon's own level (lvl, so +skills count): Goatman Stun from level 2, Goatman Berserk from 3, Goatman Frenzy from 4, Goatman Cleave from 5 (sumsk1–4 calcs). The row allows casting in town (InTown 1) and has a 15-frame local delay between casts (0.6 seconds).
How many Goatmen you may have is not on this row: petmax reads Demonic Mastery's hard points, 1 demon below 5, 2 from 5, 3 from 10.
One synergy line in the tooltip: Death Mark, +1% Chance of Crushing Blow per level (Param2), on top of the 5% base, read from hard points. Not synergies in the tooltip's sense but read by the row: Demonic Mastery's damage, attack speed, attack rating and run/walk lines, and Blood Oath's life and physical damage reduction lines, see Blood Oath. Summon Goatman gives a synergy to no other skill.
The Goatman's hits on a player are cut to 17% of their value by the player-versus-player rule (difficultylevels.txt PlayerDamagePercentVSPlayer), see Player versus Player. The table gives no other player-specific value.
lvl.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