Interesting bug: Annihilus in SP

Brother Laz

New member
Jun 23, 2003
560
0
0
Interesting bug: Annihilus in SP

While working on my mod, I came across something very interesting.

Background
In 1.10, things used to be simple when it came to uberquests. There was one, and he had a treasure class assigned to him that dropped Annihilus 100% of the time.

Enter 1.11 and six more level 110 bosses. As you may or may not know, 1.11 was a rush job and has some very messy code. For instance, everything about the Torch quest is hardcoded, bypassing the neat expanded 1.10 table files. Things like the Torch and associated organ drops do not actually appear in treasureclassex.txt.

Instead, it appears that what the drop picker does when you kill either Ubermephisto, Uberdiablo or Uberbaal is to check if the other two have already been killed in the current game, and if so, drop the Torch. Likewise, the organ drops of the lesser uberevils has been hardcoded to their monstats.txt ID#. If the monster is level 110 and is neither an uberevil nor a lesser uberevil, and the area is not level 110, the game assumes it is the Diablo Clone and drops the treasure class referred to in the Diablo Clone's monstats.txt line - the 100% Annihilus one. This (hardcoded) check appears to be processed before everything else when a monster is killed, overriding its drop settings.

This also means any level 110 monster that is not part of the Torch quest will drop Annihilus when killed. Good thing there aren't any regular level 110 monsters, right?

Town
Towns have an area level of -1, and the vendors and animals have a monster level of 0. In Nightmare and Hell difficulty, the area level takes precedence, setting the level of the townsfolk to -1.

Any monsters in town are not saved, because this flag is set to 0 in levels.txt. In other words, the game could care less about their stats and level. However, should you manage to drag an NPC out of town, it will end up in a regular combat area, where the monster stats are saved. When the monster crosses the town>wilderness border, the game will roll the dice and assign stats to this monster. (Should you manage to knock a monster into town, its stats will be forgotten and rerolled when the monster leaves town again. This is however prevented by an invisible wall)

This is where the bug comes in. Although monster level is a signed 8 bit number (from 0 to 255), monlevel.txt (the table that contains the base monster stats for each level, multiplied by the percentages in monstats.txt to produce their actual stats in the game) goes from 0 to 110. A level 0 monster will properly end up with 0 life, 0 damage and 0 attack rating. A level -1 monster will ...roll over to 255, then it will be capped at 110.

Level 110. Interesting.

The exploit
The only problem is that townsfolk don't leave town. There is only a single 'monster' that spawns in town and can be coerced to leave town: the Act 1 chickens. Their AI will attempt to evade the player, often leaving town in the process.

In other words, any chicken you chase out of town will become an invulnerable level 110 monster that will drop Annihilus if killed on Hell difficulty. Too bad it's invulnerable, eh?

Enter Blood Raven. Her death animation that kills everything nearby is more indiscriminate than previously thought; it will destroy any monster that has been summoned by BR (this part is hardcoded), and any monster that does not meet any of the following criteria:
- an animal spawned by the 'critter' column of the Graveyard;
- a monster spawned by the 'monxx' columns of any level;
- the Diablo Clone.
This means that, other than the hardcoded BR summons, it will only target monsters preplaced on the map itself - the zombies and skeletons that were created in or near the graveyard.

Well, that and invulnerable level 110 chickens.

How to exploit
It is quite simple really; go to Act 1 and approach a chicken from the opposite direction of the town gate, so it will run away from you. (Don't stand on top of it, or it won't know in which direction to run and just stand there shedding feathers) Keep this up until the chicken has crossed the town border. The chicken will now become level 110.

Then chase it all the way to Blood Raven's graveyard. You may want to scout out the shortest path first, or you could be at it for a long time. Park the chicken near Blood Raven; the death lightning only has unlimited range when it strikes down summoned monsters, but for all other targets, its range is actually quite small, something like 10-20 yards and it depends on the direction. You may want to slow Blood Raven so she doesn't run out of range.

Get the chicken within range, then kill Blood Raven. Wait for the lightning to hit the chicken, 'kill' it (the chicken has no death animation, so it will simply vanish), and scoop up your new Annihilus.

annihilus.jpg

Here it is, the first legit Annihilus in single player.

It should work on realms as well, unless their drop code is somehow different.

Summary
If you don't feel like reading the wall of theory above, here's an abbreviated version;
- Nightmare and Hell town animals are level -1, including Act 1 chickens.
- When a chicken leaves town, its level is set to 110 due to a rollover bug.
- You cannot target it, but Blood Raven's death anim will affect it.
- Any level 110 monster that is not located in a level 110 area and is not any of the uberbosses will drop Annihilus when killed.

Known side-effects
- You can only do this once per game; subsequent drops will be failed unique (magic) small charms.
- Never let the Diablo Clone replace a Torch quest superunique on realms; it will drop nothing.

Will Blizzard patch this?
I don't know. It can be exploited to hell on realms, which would warrant an immediate fix. Unfortunately, I don't have a battle.net account at the moment, and my email to Blizzard bounced.

If any of you has a Blizzard forum account, please post this link in the bug report forum so Blizzard can look into this as soon as possible...

Note: this only works in 1.11.
 
Nice,i tried it out now and it really works,got a nice 20/12/8 anni on my first try:O
 
laz clear you PM box

Congrats Laz. .
 
Last edited:
Must be some new meaning of the word "legit" that I was previously unaware of.

Edit: (yes... I know what day it is.)
 
Must be some new meaning of the word "legit" that I was previously unaware of.

it would indeed be legit, at least by the standards around here, it wouldn't involve any modification to the game whatsoever. All you would be doing was taking advantage of the game, as coded.



 
Laugh my *** off? This is indeed a bug, but arguably legit. What happens if you chase multiple chickens to Bloodraven?
 
Grr :x Had a chicken from town till the cold plains, tried to check out where the graveyard was, but then it disappeared... :(

*off chasing another chicken
 
Confirmed.

This bug certainly makes 1.11 a more interesting option. I may upgrade my 1.10 characters eventually.

Sint Nikolaas: Those turn into plain Ilvl 110 magic Small Charms, as only one Annihilus can spawn per game.
 
That's sick! I'm definitely gonna try that when I get home. And I would assume chasing multiple would drop failed unique charms, because Laz said it could only be done once per game.

EDIT: Beat me to it about the multiple chickens.
 
This isn't aproved by the SPF community right? It's clearly exploiting the games code. It would be stupid to chase a chicken and get an uber small charm.
edit: Imo it would be ok if you had to do everything that has to be done on ladder. But just chasing a chicken to blood raven doesn't make any sense.
 
I agree, ban the trading of the anni immediately!

But... on another note... For LE, DC and the company of people who are the most respected in single player, do you all plan on using anni's on all your characters now?

Hmmm, this will make the quest to 99 a little easier!

Sadly I don't have any HC characters in Hell right now, but I should soon so I can try it out! :thumbsup:
 
Honestly, I don't see what the problem is here. There's no modification to the game required for this to work. Maybe blizz put it in so SP could have the chance to get an anni, if they were clever enough? Why ban it?
 
As I said in my earlier post, I do admire Brother Laz. His own Mod is a great piece of work and you have to acknowledge his dedication. He must be very busy on that and still finds time to play with good ol 1.11b.

However, I hate to put a dampner on this but I am concerned about the effect on the trade pool. While it would appear to be an exploit (similar to eth bugging armour) rather than a hack like a drop mod, there are some questions that need to be answered by the Mods before we all deck ourselves out with sp torches/annis.
 
it is debatable.
for example, is eth bug (when socketing eth armors in cube) intented by blizzard?
do majority here exploit it?
edit: sorry thyiad, I didn't see you already mentioned eth bug
 
Last edited:
I agree that this is not any kind of mod and just a bug in the game, like bug eth armors, but I think noone should use their anni's until a mod has confirmed what to do about this, mfing with an anni will also make all items found tainted, please await the mods

edit: meaning dont play with anny on any characters if you intend to mp or trade, if you do, all activity on that character from when it started using anni will be tainted, if it will be decided as non-legit.
 
PurePremium
Estimated market value
Low
High