Thursday, April 19, 2012

A Mini-Guide to Ebugging in the Single Player Forum (Final Version)

0. The purpose of this guide

There are 4 bugs connected with the 'ethereal' property of items in D2 LoD. Three of them come from Blizzard themselves and are integral part of Diablo. The fourth one is a software bug in the muling software ATMA, but for a long time (over 2 years) it had been thought to be the integral part of Diablo, just like the other 3 bugs are. The whole issue is somewhat complicated by the fact that these bugs, when exploited, create really powerful items. This especially applies to items created by exploiting more than one of the bugs at the same time.

The purpose of this mini-guide is explaining all of these bugs. I will also reference the official POV of this forum about legal use of the bugs (i.e. I will link to what Thyiad said). The official POV is set in stone and will not change. Do not discuss it here unless you feel that you must. PM Thyiad or myself with further questions, I’ll do my best to answer or refer you to her.

Note on the vocabulary: Whether some of these are in fact “bugs” is unclear, in relation to 1.07 bugs. As Pyrohemia says, they are “generally misunderstood application of item mechanics”. The way I see it: Did the creators of the game intend for those items to work that way? I doubt that. That’s why it was changed later. Do people on this forum commonly refer to them as “bugs”? Yes. So in this guide they will be referenced as bugs.

1. Socketing Armor with Cube recipe bug (DIABLO bug), aka Cube-(e)bugging

This bug relates to how socketing an item in the Horadric Cube changes Defense in ethereal items. Socketing an armor using the cube recipe applies the ethereal bonus to Defense twice. So the total Defense will be 2.25 times the original non-ethereal item Defense. That is equivalent to 125% Extra Defense. (Note: not 125% Enhanced Defense – that would imply maximal base defense, not the case here.)

Note 1: This bug also applies to socketing Shields and Helms.

Note 2: The origin of the bug: In versions earlier than 1.11, when upgrading unique version of ethereal armor by a cube recipe, one would lose the bonus from ethereal mod. The fix to this problem created the cube-ebug as it exists right now.

Useful for:

Getting a lot of extra base defense on Armors/Shields/Helms. Particularly useful for making ‘Exile’ runeword (since it has “Repairs Durability” mod on it), and perhaps ‘Prudence’, but I don’t think anyone has ever bothered with that one. Aside from that, for Armors/Helms/Shields intended to be used on a Mercenary.

2. The Armors in 1.07 bug (DIABLO bug)

The base defense of ethereal armors found in 1.07 is always maximal for that type of armor, which makes them seem better than 1.10+ equivalents. The issue is complicated by the fact that the “ethereal” property in 1.07 is implemented in a different manner. Rather than increase the base defense by 50%, the ethereal item has a ‘hidden’ mod of “50% Enhanced Defense”. You can use cube-ebugging recipe (see section 1) to further increase the defense of a 1.07 ethereal Armor, however once you make a runeword in it, the 1.13c versions of Armors will turn out to be better.

Example (by Pyrohemia)

Scenario 1: Making ‘Fortitude’ in an Ethereal 1.07 Sacred Armor

(1) Find an Ethereal Sacred Armor in 1.07, bring it forward to 1.13c. Displayed Defense: 901

(Base Defense of 601 (maximal roll), plus hidden 50% Enhanced Defense from 1.07 ethereal property)

(2) Cube-ebug the Armor. Displayed Defense: 1351

(Base Defense of 901 (1.5* maximal roll), plus hidden 50% Enhanced Defense from 1.07 ethereal property)

(3) Make ‘Fortitude’ in the Armor. Displayed Defense: 3153

(Base Defense of 901 (1.5* maximal roll), plus 250% Enhanced Defense; of this 250%, 200% comes from the Enhanced Defense on ‘Fortitude’ and 50% comes from the hidden 1.07 ethereal property)

Scenario 2: Making ‘Fortitude’ in an Ethereal 1.13c Sacred Armor

(1) Find an Ethereal Sacred Armor in 1.13c. Displayed Defense: 730 - 900

(Depends on the roll, Base Defense of 1.5*(487-600) )

(2) Cube-ebug the Armor. Displayed Defense: 1095 – 1350

(Depends on the roll, Base Defense of 2.25*(487-600) )

(3) Make Make ‘Fortitude’ in the Armor. Displayed Defense: 3285 - 4050

(Base Defense of 2.25*(487-600) plus 200% Enhanced Defense from the properties of Fortitude)

The point of the example: If you compare the displayed defense in both scenarios at step (2), the 1.07 Armor seems better. But once you actually make the runeword, it turns out you’re better off using the lowest roll of the armor from 1.13c than the supposedly better 1.07 version. That’s because of the way the ethereal property is applied in 1.07.

Note 1: This applies to Shields and Helms also.

Note 2: When bringing Armors, Shield and Helms forward to 1.13c, they keep the Defense, Strength and Character Level requirements from 1.07 (that is in contrast to weapons, which do not, see section 3). The stats for Armors are the same in all versions, but stats for Shields and Helms are not. In particular, the defense is lower in 1.07.

Useful for: Virtually nothing.

The only possible use for it is when making a Runeword with no %XX Enhanced Defense mod for your mercenary in 1.13c. Otherwise, the ethereal versions of 1.13c armors/shields/helms are better.

3. Ethereal 1.07 weapons bug (DIABLO bug), aka (e)bugged-weapon, 1.07-(e)bugged weapon

This bug relates to how the bonus from item being ethereal is applied differently to 1.07 weapons. In later versions of the game, the minimum and maximum damage of ethereal weapon are multiplied by 1.5. However in 1.07, there is an additional “50% Enhanced Maximum Damage” mod. This is displayed in-game as “Enhanced Maximum Damage”.

Now, when brought forward from 1.07, all the stats of weapons change to the new stats in later versions. This applies to Level, Strength and Dexterity requirements, but also to Minimum and Maximum damages. Both base minimum and maximum damages are still multiplied by 1.5, but the weapon keeps the “50% Enhanced Maximum Damage” mod, which makes it better than the 1.13c counterparts.

The side effect of how this bug works is that the wider the damage spread on a weapon (i.e. the larger the difference between Maximum and Minimum damage), the more the weapon gains by being 1.07-ebugged.

Similarly to how this works with 1.07 Armors, the “50% Enhanced Maximum Damage” will be added on top of any Enhanced Damage coming from a Runeword inserted into the 1.07-ebugged base.

Note: Go Mule (one of the forum accepted programs for muling) has a display bug for runewords made in 1.07 bases (as of July 25th 2011). Basically the displayed % Enhanced Damage is 50 higher than it should be (i.e. that it is in game). This comes from the 1.07 property of "50% Enhanced Maximum Damage" being counted towards the whole damage. The displayed Minimum Damage is incorrect in Go Mule (the displayed Maximum Damage is correct).

Useful for: Creating runewords.

Any runeword that is to be used on a Mercenary can be improved that way. The most notable example is ‘Insight’, the reason being that yet another bug of 1.07 causes the maximal number of sockets in Polearms to be 4 (i.e. the number of sockets ‘Insight’ needs). That also applies to Larzuk-socketing. So if you find an ethereal plain Elite Polearm in 1.07 and socket it there, it will have 4 sockets for your 1.13c ‘Insight’.

Another very important use is for ethereal bases for runewords which grants the ‘Indestructible’ mod. There are 4 such runewords:


Code:
Runeword              | Can be made in          | Cost
--------------------------------------------------------------
‘Breath of the Dying’ | 6 Socket Weapon | Zod+Vex
‘Eternity’ | 5 Socket Melee Weapon | Ber+Sur+Ist
‘Death’ | 5 Socket Axe/Sword | Vex+Gul
‘Oath’ | 4 Socket Axe/Sword/Mace | Mal+Pul

All of them can spawn with %Enhanced Damage well into 300’s. Making these in a 1.07 Ethereal base (which was brought forward) provides for some extra bang (and does not use any bugs other than the inherent Diablo bugs).

Examples:

I will provide 3 examples in a neat form of a table here. In each of them I show the Minimum Damage, Maximum Damage and Average Damage of a certain Runeword made in 3 different bases: (a) a plain non-ethereal 1.13c base; (b) an ethereal 1.13c base; (c) an ethereal 1.07 base (which was brought forward to 1.13c).

In all of these examples, the Min and Max damages on the Runewords are calculated in the following manner for the 1.07 versions:

Minimum Damage = [Enhanced_Damage_from_RW * [1.5 * Base_Minimum_Damage]]

Maximum Damage = [(Enhanced_Damage_from_RW +50) * [1.5 * Base_Maximum_Damage]]

[x] = x round down to an integer

Example 1: ‘Obedience’ in a Cryptic Axe


Code:
Base           | Min |  Max | Avg   |
-------------------------------------
plain 1.13c | 155 | 705 | 430 |
ethereal 1.13c | 230 | 1057 | 643.5 |
ethereal 1.07 | 230 | 1170 | 700 |

Example 2: ‘Insight’ in a Thresher (assuming perfect 260% Enhanced Damage roll)


Code:
Base           | Min | Max | Avg   |
------------------------------------
plain 1.13c | 43 | 507 | 275 |
ethereal 1.13c | 64 | 759 | 411.5 |
ethereal 1.07 | 64 | 865 | 464.5 |

Example 3: ‘Oath’ in a Berserker’s Axe (assuming perfect 340% Enhanced Damage roll)


Code:
Base           | Min | Max | Avg   |
------------------------------------
plain 1.13c | 105 | 312 | 208.5 |
ethereal 1.13c | 158 | 466 | 312 |
ethereal 1.07 | 158 | 519 | 338.5 |

4. Indestructible mod bug (ATMA bug), aka ATMA-(e)bugging, ATMA-Zod-bugging

Note: This bug does not exist in the other forum accepted muling software, Go Mule.

This bug relates to how muling software ATMA handles the Indestructible mod of weapons when it saves the stashes and/or characters. It used to be that we thought it works for armors, shields and helms also, but that turned out not to be the case when tested. Works for weapons only.

Historic perspective: for a long time (over 2 years) this has been thought to have been Diablo bug. And if you read the above wall of text, I think you can agree dear reader, that it wasn’t such a hard assumption to make.

The way the bug works: When ATMA saves a character / stash which contains a weapon with the Indestructible mod, the durability of the weapon gets overwritten with "Indestructible", if the weapon was moved during the session. That seems like nothing, and for most weapons makes no difference. Nobody cares how Indestructible property is saved on their Shadow Killer. However there are 5 ways of granting the Indestructible mod which are only “temporary”, and here’s where problems begin. These methods are:

a) Putting a Zod rune in a socket (this can mean making ‘BotD’, but does not need to). This applies to any weapon. Rare, unique, plain, all work. Weapons only (for the bug of ATMA to work).

b) Making ‘Eternity’, ‘Death’ or ‘Oath’ in a weapon.

Now, whatever is in a socket can be removed from it by a cube recipe with a Hel rune and a scroll of Town Portal. Now consider two different scenarios:

- You find an ethereal Rixot's Keen and a Zod. You punch a hole in the sword and stick the Zod in it. You clean sockets with Hel-recipe. The Rixot's Keen remains ethereal and is not Indestructible anymore.

- You find an ethereal Rixot's Keen and a Zod. You punch a hole in the sword and stick the Zod in it. You open your character with ATMA and move the sword. Changing a position of the weapon you are trying to ATMA-ebug is necessary. Save the character. Open the character with Diablo, clean sockets with Hel-recipe. The Rixot's Keen is now ethereal and Indestructible (with one empty socket, where you can stick a Jewel of Envy).

Useful for:

Of course having an Indestructible Rixot’s Keen is not exactly everyone’s dream, but the same principle can be applied to get the indestructible mod on any weapon with sockets. This also applies to future runeword bases. In particular:

- Any socketable weapon can be granted Indestructible mod by the price of a Zod rune. This also applies to any runeword base to be used in the future. (But can also be used to make an ethereal Tomby indestructible.)

- 5 Socket Axes/Swords for the price of Vex+Gul (using ‘Death’)

- 4 Socket Axes/Swors/Maces for the price of Mal+Pul (using ‘Oath’, dirt cheap in 1.13c)

The point of all this is of course to have the extra 50% bigger base damage of the weapon. This bug can be used together with bug described in Section 3 to create the uber 1.07-ATMA-(e)bugged runeword bases.

5. Making an informed decision: “Do I use the ATMA bug?”

Single Player Forum allows the use of ATMA-ebugging. This has been discussed and will not change. I would like to offer the following links:

- Original quick reply by sirpoopsalot.

- A follow up by Thyiad soon after the discovery.

- Elaborate response by Thyiad some months later.

Both sirpoopsalot and Thyiad were moderators of the SPF when these posts were written.

One of the aims of this guide is to provide as much objective information as possible, so that anyone can make an informed decision on whether or not to use any of the bugs described here.

Whether you choose to ATMA-ebug or not should probably take into account the following:
  1. The rationale of allowing it in Single Player Forum. See the three links I provided above.

  2. The items that are ATMA-ebugged have significant advantage over the plain versions: 1.5 times higher damage output, no repair costs and strength and dexterity requirements lower by 10 points.

  3. The above behavior is not caused by Diablo, but rather by external software.

  4. Some people find it cheesy and will not do it. Some members of the forum feel very strongly about the subject. This is similar to the decisions people have made regarding bringing 1.07 items forward or HF rushing. If you trade/MP/giveaway items follow the instructions in the Trade Rules regarding declarations. If you enter a MP game using ATMA-ebugged weapons, it is recommended to check that the host is happy with that.

You should carefully evaluate your options and choose something that suits you best.

-------------------------------

This thread is probably not the best place to have a heated discussion on your feelings about this topic. Such discussion has in the past sometimes led to thread closures and infractions, and I'd like to avoid that if possible.

Acknowledgments

Special Thanks go to everyone who helped improve this guide, correct my mistakes, improve wording, etc. In no particular oder thanks go to:

SnickerSnack, jjscud, nubikoen, maxicek, Sectiplave, sequana, stephan, omg, jdkerr, Pyrohemia, Jaedhann, Vox Dei and Thyiad.

Special Special Thanks go to nulio and scrcrw for extra testing needed with the discovery of ATMA-bugging not working for armors, in July 2011.

If are not comfortable with your name being mentioned on this list, I completely understand that. Please PM me, and I will remove it as soon as I can.

If I did forget someone, I apologize. Thanks for feedback and keep it coming!

--Greebo|||Nice job .|||Excellent guide, Greebo |||Looks good, Greebo. Thanks for your hard work.

Would it be relevant to include something about how GoMule doesn't display the [enhanced?] damage of 1.07 runewords properly? I don't know the specific details, but it comes up in IFTs periodically. Also, it's trivial, but your damage numbers are a little bit off, since you forgot to round the base damage down (although it appears to be correct in your formula).

EDIT @ jdkerr: Thanks.|||GoMule adds 50% to the damage of 1.07 runewords. I don't know why or under what exact conditions, but that is the basic issue.

From the recent IFT:


Quote:








Oath

Balrog Blade

ShaelPulMalLum

One Hand Damage: 103 - 527

Two Hand Damage: 386 - 833

Durability: 26 of 26

Required Level: 53

Required Strength: 175

Required Dexterity: 77

Fingerprint: 0x58d3fe43

Item Level: 87

Version: Expansion

30% Chance to cast level 20 Bone Spirit on striking

Indestructible

+50% Increased Attack Speed

371% Enhanced Damage

+75% Damage to Demons

+100 to Attack Rating against Demons

Prevent Monster Heal

+10 to Energy

+10 Magic Absorb

Level 17 Iron Golem (14/14 Charges)

Level 16 Heart of Wolverine (20/20 Charges) Ethereal

4 Sockets (4 used)





Quote:








@jdkerr

What's with the 371% Oath you've got there?





Quote:








@Ratman:

That is the bugged GoMule readout. In AMTA, it reads as follows:

Oath

Balrog Blade

'ShaelPulMalLum'

One-Hand Damage: 92 to 527

Two-Hand Damage: 345 to 833

Required Dexterity: 77

Required Strength: 175

Required Level: 53

Sword Class - Fastest Attack Speed

Indestructible

Item Version: Expansion

Item Level: 87

Fingerprint: 0x58d3fe43

+10 to Energy

+321% Enhanced Damage

50% Increased Attack Speed

Prevent Monster Heal

75% Damage to Demons

+100 to Attack Rating against Demons

+10 Magic Absorb

Indestructible

30% Chance to cast Level 20 Bone Spirit on striking

Level 16 Heart of Wolverine (20/20 Charges)

Level 17 Iron Golem (14/14 Charges)

Ethereal (Cannot be Repaired), Socketed (4: 4 used)|||@ Nagisa:

You're right. I corrected it and I think I've got it right this time. Thanks for checking my math.

@ Nagisa, jdkerr:

I added the following paragraph:

"Note: Go Mule (one of the forum accepted programs for muling) has a display bug for runewords made in 1.07 bases (as of June 4th 2010). Basically the displayed % Enhanced Damage is 50 higher than it should be (i.e. that it is in game). This comes from the 1.07 property of "50% Enhanced Maximum Damage" being counted towards the whole damage. The displayed Minimum Damage is incorrect in Go Mule (the displayed Maximum Damage is correct)."

Does it explain what you're saying? (i.e. did I understand what you mean?)

--Greebo|||I have no idea, because I do not know what the mechanics of it are. :P Someone will be in here shortly to set us straight, I am sure.|||Thanks, this is a useful guide.|||I remember another way to ebug an item using only Diablo. If you socket an item with a zod rune pre-1.09, it can be brought forward, unsocketed, and the item will still be indestructible.

Note: obviously only helpful for items found pre 1.10.

Edit: Quick research has shown this to be true. But I caught wind of another bug when you put a zod in something with enhanced durability...

Edit2: I meant pre 1.10 as in 'If one sockets the item with a zod rune pre-1.10'. So one can find the zod in 1.09b with /players 64. It is a longshot, but it would then create the only ""legit"" (notice the double quotes) indestructible ethereal item.|||The only way to test this, ever, is if someone finds a Zod in a SP pre-1.09 game and decides to sacrifice it for making a Zod-bugged item. I know there are items on the realms that were made this way, but I don't consider it relevant for this guide.

Also, you can't cube a Zod back then, so not even 2000 HF rushes will do the trick.

It's an interesting fact, neat to know, but I don't think I'm gonna put in this guide.

--Greebo

No comments:

Post a Comment