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.

Experience is a chain of multipliers on one table number, and the two that matter past level 70 are the ones most players never see: the level-gap rule and the per-level ratio in experience.txt that shrinks every kill from 71 up.
experience = monster base × kill type × (players + 1) ÷ 2 × level-gap factor × ExpRatio(level) ÷ 1024, then +Experience Gained %
| Level | Experience to reach it | ExpRatio at that level |
|---|---|---|
| 2 | 500 | 1024 |
| 30 | 4,663,553 | 1024 |
| 50 | 47,116,709 | 1024 |
| 69 | 261,129,853 | 1024 |
| 70 | 285,041,630 | 976 |
| 80 | 681,027,665 | 496 |
| 85 | 1,050,299,747 | 256 |
| 90 | 1,618,470,619 | 61 |
| 95 | 2,492,671,933 | 15 |
| 98 | 3,229,426,756 | 6 |
| 99 | 3,520,485,254 | 5 |
The exact figures for every level and class are in the Experience table and the Experience Generator, which also turns a monster, a difficulty and a players setting into kills-to-level.
A death costs a share of the experience of your current level (difficultylevels.txt DeathExpPenalty): 0% in Normal, 5% in Nightmare, 10% in Hell, never taking you below the level's start.
Terror Zones change step 1: the zone's monsters are raised toward your level, so the level gap and the base both move. The Terror Zone tracker and the Experience Generator show the zone's effect on a run.
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