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.