Item Prefix/Suffixes | Unique Items | Character Stats | Base Items | Spells and Skills | Monsters | Unique Monsters | Shrines | Quests | Miscellanious

Monster Data

Monster data begins at offset 96C70 (95C08) in Diablo. In Hellfire, it's AA8F0.

Each monster is 128 bytes in length each, which is 8 full lines in a hex editor. Place your cursor at the beginning of a monster and drag it along until you see this at the very bottom "Sel 0x80". This is one monster.

Bytes Effect
0-3 Animation size
This tells the game how to handle the animation file (CL2) size. Certain animations will not look right if given the wrong value, so use the value given for the animation you want to use.
60 = Small animations (bats)
80 = Average animations (most monsters)
A0 = Large animations (vipers, knights, balrogs)
4-7 Seeding size
This is the monster's "size" value. Each level can hold only so many points. This is why only certain monsters appear in a level.
8-11 Pointer to animation file (CL2)
12-15 Trigger flag for second attack
Some monsters have a second attack. If they do, a '01" will be listed here. Giving a monster an attack type that uses a second attack when the animation does not, guess what can happen.
16-19 Pointer to sounds
20-23 Trigger flag for special sounds
If the animation supports a second animation, a '01' will be here. Again, giving a monster an attack type that uses a second animation that doesn't have one will cause the game to crash.
24-27 Trigger flag for color translation file
Defaulted, each monster class consists of 4 monsters using the exact same CL2 file. Three of those will have different colors while one will use the color that comes with the CL2 file. A '01' value here means the monster uses a .TRN file to change it's color.
28-31 Pointer to color translation file (.TRN)
32-35 Idle frameset
As well as for all the other framesets, do not exceed the values listed or the game will crash (sometimes it is ok). Decreasing the value will speed the animation up by removing a frame or two (whatever you specify. The game will play choppy though). Lowering the Hit Recovery frameset too low can also crash the game, so be careful.
36-39 Walk frameset
40-43 Attack swing frameset
44-47 Hit recovery frameset
48-51 Death frameset
52-55 Second attack frameset
56-59 Idle playback speed
This tells the game how fast or slow to play the animations for the framesets. 0 is the fastest playback.
60-63 Walk playback speed
64-67 Attack playback speed
68-71 Hit recovery speed
72-75 Death playback speed
I love this one...increasing the value will slow the playback (same for all of them, BTW). Try a '01' or '02' on a Hidden monster type..hehe.
76-79 Second attack swing playback speed
80-83 Pointer to monster's name
84-85 Min/max dungeon level's the monster will appear on.
The game will sometimes use values in between..don't know why.
L1 = 00
L2 = 02
L3 = 04
L4 = 06
L5 = 08
L6 = 0A
L7 = 0C
L8 = 0E
L9 = 10
10 = 12
11 = 14
12 = 16
13 = 18
14 = 1A
15 = 1C
16 = 1E (Monsters for L16 are chosen in the games' code and can not be changed here)
Hive 1 = 20
Hive 2 = 22
Hive 3 = 24
Hive 4 = 26
Crypt 1 = 28
Crypt 2 = 2A
Crypt 3 = 2C
Crypt 4 = 2E
86-87 Monster's level
The monster's level will determine what kind of items it will be able to drop. Nightmare and Hell difficulty monsters get the base item level bonus, but the prefix, suffix, and unique item levels will not change.
88-91 Minimum HP
92-95 Maximum HP
96-103 Attack Type
Here's the fun part! You can give any attack type to any monster class you wish (with some exceptions). Some will not work right, not at all, or look plain silly.
First value....
00 melee, stupid monster (zombies)
01 melee, random second attack swing (overlords)
02 common melee attack type
03 archer, rarely retreats (skeletons)
04 melee, retreat to eat (scavenger) when hurt
Works for the Scavenger slots only...other slots will show them retreating to eat, but will not get the regeneration bonus.
05 charge attack
06 melee, random second attack when hit (goats)
07 archer, retreats often (goats)
08 melee, random second animation movement, flee when nearby enemy is killed (Fallen Ones)
09 magma demon attack type
Chunks lava balls. Works on monsters with second animations..even they look look funny sometimes.
0A Skeleton King attack type (summons skeletons in SP)
0B bat attack type (default special is the hit and run attack)
the specials the bats have are given to them by the games' code (Blink teleport, Gloom's charge, and the Familiar's charged bolt)
0C gargoyle attack type, second attck (stoning to regain HP)
Again, probably slot specific for the regeneration bonus
0D The Butcher attack type (woohoo!)
0E witches' attack type (blood stars, retreat a lot)
0F Hidden attack type, second attack
10 Thunder demon attack type
Same as 09
11 Incinerator attack type
Same as 9
12 Gharbad the Weak, second attack
13 spitter attack type
Same as 9
14 Deathspit (always spitting)
Same as above, but always spits
15 Golem
Never tried to use this one...might crash the game or do weird things...
16 Zhar the Mad, second attack type
17 Snotspill, second attack type
18 Viper's charge attack
19 counselor's magic attack type, second attack
The subtype value determine's the actual magic attack
1A balrog's inferno attack type
Same as 9
1B Diablo
Same as 9
1C Lazarus, second attack
1D Red Vex and Black Jade
1E Lachdanan
1F Warlord of Blood
Hellfire
20 Firebat
21 Torchant, Hellbat
22 Hork Demon (spawning attack)
Buggy with 2 or more players, spawns on H2 and H3 monster 75
(= Hork spawn) on H4 monster 7C (= Hell Bug, Defiler)
23 Lich
24 Arch Lich
25 Psychorb
26 Necromorb
27 Bone Demon

Byte 101 is the intelligence factor
..the actual brains for the monster.  I can not describe the effect ranges, but 03 will allow the monsters to open doors, among other things.   Beware.. :P
104 Subtype
The range is between 0-3, with 3 being the highest. For instance, a goat archer with a value of 00 will stand still and let you get a hit or two in before retreating. A 03 will usually require you to corner it. Same for the witches. For the counselor type, it determines what spell it will use. 00 being firebolt, 01 being charged bolt, 02 being lightning, and 03 being fireball.
105 To Hit percentage of the main attack
106 To Hit frame
Do not exceed the total to hit frameset, and whatever you do, do NOT use a value with a knight still holding the sword over his head..hehehe.
107-108 Min/max damage per attack
109 To hit percentage for the second attack
110 Second attack's to hit frame
Again, do not exceed the total to hit frameset for the second attack.
111-112 Min/Max damage for the second attack
113 Monster's Armor Class
114-115 Monster type
00 = Undead
01 = Demon
02 = Animal
116-117 Resistance/Immunities in Normal/Nightmare difficulty
This is bit encoded. V&K did not furnish the formula for determining a monster's resistances by looking at the value, but I will =)  This is in decimal form..which *I* find easier to use....
Magic Resist = 1        Magic Immune = 8
Fire Resist = 2          Fire Immune = 16
Lightning Resist = 4     Lightning Immune = 32

Take the numbers you want to use and add them up, then convert it to hexadecimal. This is the value you will use in the data.  Example....
Magic Immune, fire and lightning resistant....
8 (magic immune) + 2 (fire resist) + 4 (lightning resist) = 14
14 in hex is 0E. So '0E' is the value you will use.
Note, some monsters have +40 or +80 hex added to the value. '0E' and '4E' are the same.
118-119 Resistance/Immunities in Hell difficulty
120-121 Item drop specials.
0040 = No item drops possible...just gold
**80 = Unique item drops in SP only. The first byte determines the unique that gets dropped. In MP, this drops random magic items or books. Any other vlues here are unknown.
**A0 = Same as above...don't know the difference
122-123 Monster selection outline
Determines when the monster is highlighted when you move the mouse over it. Values are related to the monster's size, but larger than average values mean the monster is a bit tougher to target. (ie, gargoyles)
124-127 Experience points

Activation Table
A lot of monster slots were turned of for various reasons. To turn them back on, go to 9A4F0 (99488). Here, you'll see a bunch of 00's, 01's, and 02's. 00 means that slot is turned off, while 01 and 02 means the slot is on. The difference between 01 and 02 are unknown. To find out what the slot number is, just start from the first byte and count it as 0, and go up till you get to the slot you want.

Hellfire is a bit different.

Go to offset AF058 for the table. Here, each slot is 4 bytes in length each, instead of just one in Diablo. The same thing goes here as it did in Diablo, just count up each one in 4 byte blocks.

 
Click here to go back.