Straight from global.cpp, here are the stat cycles. The first stat is what you get from level from 1 -> 2 and so on. The cycle then repeats until you get to level 40.
| Level | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|
| Class | ||||||||||
| Assassin | CON | PTY | STR | INT | DEX | INT | DEX | PTY | STR | DEX |
| Bard | CON | PTY | STR | INT | PTY | INT | DEX | PTY | STR | INT |
| Berserker | CON | DEX | PTY | CON | STR | CON | PTY | STR | DEX | STR |
| Cleric | STR | DEX | CON | PTY | INT | PTY | INT | DEX | CON | INT |
| Cleric/Assassin | STR | DEX | CON | PTY | INT | PTY | INT | STR | CON | PTY |
| Deathknight | DEX | INT | CON | STR | PTY | STR | DEX | PTY | CON | STR |
| Druid | STR | DEX | PTY | CON | INT | CON | INT | DEX | PTY | INT |
| Fighter | PTY | INT | DEX | CON | STR | CON | INT | STR | DEX | STR |
| Fighter/Mage | PTY | INT | DEX | INT | STR | CON | INT | STR | DEX | STR |
| Fighter/Thief | PTY | INT | DEX | CON | STR | CON | DEX | STR | DEX | STR |
| Mage | STR | DEX | PTY | CON | INT | CON | INT | DEX | PTY | INT |
| Mage/Assassin | STR | DEX | PTY | CON | STR | CON | INT | DEX | PTY | INT |
| Mage/Thief | STR | DEX | PTY | CON | INT | DEX | INT | DEX | PTY | INT |
| Monk | PTY | CON | STR | DEX | INT | CON | DEX | PTY | CON | STR |
| Paladin | DEX | INT | CON | STR | PTY | STR | INT | PTY | CON | PTY |
| Pureblood | CON | PTY | STR | INT | DEX | STR | INT | PTY | STR | DEX |
| Ranger | PTY | STR | INT | CON | DEX | CON | DEX | STR | INT | DEX |
| Rogue | PTY | INT | CON | STR | DEX | CON | STR | DEX | INT | DEX |
| Thief | INT | CON | PTY | STR | DEX | STR | CON | DEX | PTY | DEX |
| Thief/Mage | INT | CON | PTY | INT | DEX | STR | CON | DEX | PTY | DEX |