The AH will be shut down 18th of March 2014 so you have around 5 months of making profits botting AH which is plenty of time.
It's 100% certain that using this guide will get your account banned within weeks. By that time you should have made the cost of the account back many times. Forget about trying to disguise yourself and make a human-like bot. We will try to make your D3 clients search as many times as possible per second.
The guide will aim at using simple snipe buyout-scripts with good profiles. Combined with many searches a second I’m sure you’ll succeed. At least I did. You wouldn't believe the amount of noobs posting imba items on AH for no gold. Add a stat like Critical Hit Chance, Critical Hit Damage, All resistance, vitality, Attack speed % and you have almost found yourself a niche (look at my profiles for instance).
Note: Everything here might not be relevant to you. If you are new in AH botting then skip directly to step 2 and go from there. Spend time in the area around step 4. Once everything is up and running you can improve your setup.
OVERVIEW
1. Optimization
- 1.1 Making multiple Diablo III folders to save space and time.
- 1.2. Edit D3Prefs.txt (reduce CPU/GPU's graphical usage and resize your D3 windows)
- 1.3 Yet Another Relogger (start/restart your clients easily and with one click)
- 1.4 Disable rendering (reduce CPU/GPU's graphical usage)
- 1.5 Speedfan (boost CPU performance)
2. Where to buy accounts (used RU accounts for $22)
3. A language patcher (be able to use RU clients)
4. Easy guide to setup HappyAuction and working scripts
- 4.1. Setup
- 4.2. The Snipebuyout-method
- 4.3. The high end bidding-bidding
- 4.4. The bidding-method
- 4.5. Selling script
- 4.6. Scripts for buying items on GAH and resell on RMAH
5. Profiles
- 5.1. Searchable profiles
- 5.2. How to find a good profile
6. Going a little further
7. Credits
8. Virustotal
1. Optimization
1.1 Making multiple Diablo III folders to save space and time
Making multiple folders this way will save you harddrive-space and time.
- Download the MultipleD3.bat from below and move it to your desktop.
- Move your current ‘Diablo III’ folder to C:\ and rename it to ‘Diablo1’
- Right-Click on MultipleD3.bat and choose ‘run as administrator’.
- A new folder has been created named Diablo IIIA
- Go to ‘C:\Diablo1\Data_D3\PC\MPQs’ and copy the following folders to ‘Diablo IIIA’: base, Cache, enGB (or enUS), Win. Paste those folders into ‘C:\Diablo IIIA\Data_D3\PC\MPQs’
To add more Diablo III-folders simply right-click on MultipleD3.bat -> choose ‘edit’ -> in the top of the window go to ‘edit’ and choose ‘replace’. Find what: Diablo IIIA. Replace with: Diablo IIIB. Close and save the file and repeat.
1.2. Edit D3Prefs.txt (reduce CPU/GPU usage and resize your D3 windows)
To save CPU and GPU usage we want to edit certain settings in D3Prefs.txt found in your ‘Documents\Diablo III’- folder. Open the D3Prefs.txt file and set the following settings to:
Code:
MipOffset "5" ShadowQuality "0" PhysicsQuality "0" ClutterQuality "0" LowFX to "1" LimitForegroundFPS "1" MaxForegroundFPS "200" DisableTrilinearFiltering "1" MipBias "9.999999" HardwareClass "1"
Note: This will make your Diablo 3 clients look like crap but they will be faster.
1.3.Yet Another Relogger (start/restart your clients easily and with one click)
Download YAR from the

Yet Another Relogger (YAR) will help you open several D3-clients at once.
YAR is intended for Demonbuddy users but we’ll use it for AH botting, it doesn’t matter. We simply need it for our clients to open all at once.
If you have already made D3 folders named ‘Diablo IIIA’, ‘Diablo IIIB’ etc. onto your ‘C:\’ drive then simply download my settings to YAR from the attached below.
Replace Bots.xml in \Settings in your YAR folder.
To use YAR for resizing D3 windows below 800x600 simply download my settings attached at the bottom of the thread and edit D3prefs.txt to the right screen resolution by editing the following settings:
Code:
DisplayModeWinWidth "" DisplayModeWinHeight "" DisplayModeUIOptWidth "" DisplayModeUIOptHeight "" DisplayModeWidth "" DisplayModeHeight ""
Download the attached YAR settings and choose the setting for 600x400 d3 windows and replace the following settings in D3prefs.txt:
Code:
DisplayModeWinWidth "600" DisplayModeWinHeight "480" DisplayModeUIOptWidth "600" DisplayModeUIOptHeight "480" DisplayModeWidth "600" DisplayModeHeight "480"

Note: It's important that you also set your windows screen resolution correctly. In the YAR settings.zip you'll see a folder named 'YAR 3 clients 1920x1080(d3 640x480)' meaning your windows resolution size must be 1920x1080 and your d3 resolution size 640x480. It might crash using different resolutions sizes. Experiment on your own :-)
1.4.
(reduce CPU/GPU usage)Disabling rendering will save you a lot of GPU/CPU usage and will make your bots a lot faster.
Visually, by disabling rendering your D3-windows will turn black.
First you’ll need to download

Once you’ve installed it simply attach the open Diablo III.exe process then go to ‘Memory View’ and press ‘CTRL+I’ -> select sentinel.dll -> A message pops up -> press "no" -> To activate/deactivate push F5.
Note: If it doesn’t work you might need to download Visual Studio 2013, get it here:
.Choose "Visual Studio Ultimate 2013" -> login with hotmail -> "Ultimate 2013" (it's like 7GB)
Preview:

1.5.

This is my favorite program and has really optimized my searches per second (around 20-30 searches per second). By using Speedfan you'll make your CPU fan run faster which makes your CPU a lot faster! Download it for yourself and see the improvements with and without it.
To set it up right do this, open speedfan.exe -> "configure" ->:
- Choose "Fans" (make sure all fans are checked)
- Choose "Speeds" (make sure all fans are checked)
- Choose "Advanced" -> choose your mainboard -> find PWM 1 Type, PWM 2 Type etc. and set it to 'Manual PWN Control' or 'Software Controlled'
- Hit OK
You will now have full control over your CPU fans. But not only that, in my experience on 4 PC's, my Diablo III clients gets more CPU power. Look it after by checking the percentage of CPU usage of the D3 clients (this is a good thing as you want your clients to be as fast as possible).
2. Where to buy accounts (used RU accounts for $22)
It doesn’t matter whether you have a D3 account with a low or high level class. It doesn’t matter whether you are using an English/American or a Russian account.
In order to get a working D3 license you’d want to prefer Russian CD keys above EU/US CD keys. They’re simply cheaper. You’d also want to prefer Russian accounts above EU/US accounts. They are as well – cheaper.
You can get cheap Russian accounts from my old supplier (skype: ‘takemygold’). He sells used russian accounts for $22 per account. You will not get it cheaper anywhere else. He is fast, serviceminded, and has become a dear friend of mine. So be nice to him.
If my supplier is out of stock or if you're paranoid then
is a good supplier. You can buy both Russian and EU/US CD keys at that site. Note: Buying CD keys for gold is never a good idea since the gold price on the black market is very low and you’re far better off flipping/selling gold at RMAH.
3. Language Patcher
Download it from here:

In order to use russian accounts you’ll need a language patcher.
Before opening your D3 clients you’ll need to open and run the language patcher first.
You will get banned for using this for sure but who cares, we are getting banned in some weeks anyway.
4. Easy guide to setup HappyAuction and working scripts
4.1. SETUP
Download HappyAuction here the attached files below.
Open \HappyAuction\bin\Lua\Main.lua and edit xSetLogin('
','ikilledblizzard ') to your account detailsNow, you can this bot for different purposes. I really prefer the Snipebuyout-method because it's simple, fast and effective. If you want to use another method please just tell me and I will look into it. It's just basic lua.
Start the bot by double-clicking the HappyAuction.exe icon, a green flower should appear in the bottom right side of your screen. Green flower = deactivated. Red flower = activated.
In order to toggle the bot on and off simply hit CTRL+F12. You can edit the keybind in Settings.lua in 'HappyAuction\bin'.
To use multiple instances of HappyAuction simply make a new folder of HappyAuction and edit the keybind to your liking.
Note: You should really spend 20 minutes and read the Api in HappyAuction\doc to get to know the exact commands and what they do. It’s really simple.
4.2. THE SNIPEBUYOUT-METHOD:
Copy and Replace the following lines to the SnipeBuyout.lua within your HappyAuction\bin\Lua\Bots folder.
Code:
function SnipeBuyout()
xSetGlobalDelay(100)
xLocate('Auction')
xSetBuyout(20000000)
-- get user buyout
local buyout = xGetBuyout()
local varLoginTime = os.time()
local varTimeDiff = 0
local varRelogInterval = 55
local found = 0
xSetUnique('Temperance', 1 )
xSetStat(1,'Strength', 80 )
xSetStat(2,'Vitality', 1 )
xSetGlobalDelay(0)
xSetInputDelay(0)
while true do
-- update buyout with randomize
xSetBuyout(buyout, true)
-- search and select first item in list
if xSearch() then
-- get item object
local item = xGetSearchItem(1)
xBuyout(1)
xSetInputDelay(100)
xSendToStash()
xSetInputDelay(0)
end
varTimeDiff = os.difftime(os.time(), varLoginTime)
if varTimeDiff > varRelogInterval then
varLoginTime = os.time()
xSetInputDelay(100)
haLogout()
end
end
end
The following explains what you need to edit SnipeBuyout.lua in order to change the profiles:
Code:
- xSetBuyout(20000000) is the maximum buyout (it’s set to 20 million).
- xSetUnique('Temperance', [B][U]1[/U][/B] ) is the legendary item name.
The [B][U]"1"[/U][/B]-value after the item name means the bot will choose the first name in the roll-down menu in AH.
- xSetStat(1,'Strength', 80 ) is the stat.
If you want more stats added to the specific item then add xSetStat([B][U]2[/U][/B] ,'Vitality', 0 )
If you want to change the value of the stat you’re searching for simply edit the highlighted xSetStat(1,'Strength', [B][U]80[/U][/B] ) to your liking.
4.3 THE HIGH END BIDDING-METHOD
Many people finds this method profitable but requires a bit of start up money.
What you do basically is to search for items worth more than 2 billion. For instance, on the black market you can buy 2B on US servers from
for around $50 as of today (price changes everyday). So what you need to find is simply items worth more than $66 ($50 +15% to paypal + 15% to blizz = $66). Make the bot search for these high end items on Gold AH and resell the items on Real Money AH.
This is an example of a high end bidding script. Bidding for an Echoing Fury with Average Damage: 840 Critical Hit Damage: 70 Has Sockets: 1 Strength 150
Simply replace the following script with the entire script in Snipebuyout.lua in HappyAuction\bin\Lua\Bots:
Code:
function SnipeBuyout()
xSetGlobalDelay(100)
xLocate('Auction')
-- get user buyout
local buyout = xGetBuyout()
local varLoginTime = os.time()
local varTimeDiff = 0
local varRelogInterval = 55
local found = 0
xSetUnique('Echoing', 1 )
xSetStat(1,'Average Damage', 840 )
xSetStat(2,'Has Sockets', 1 )
xSetStat(3,'Critical Hit Damage', 70 )
xSetStat(4,'Strength', 150 )
xSetGlobalDelay(0)
xSetInputDelay(0)
while true do
-- update buyout with randomize
xSortSearch('time left')
-- search and select first item in list
if xSearch() then
-- get item object
local item = xGetSearchItem(1)
xBid(1904761906)
--xSetInputDelay(100)
--xSendToStash()
--xSetInputDelay(0)
end
varTimeDiff = os.difftime(os.time(), varLoginTime)
if varTimeDiff > varRelogInterval then
varLoginTime = os.time()
xSetInputDelay(100)
haLogout()
end
end
end
xSetInputDelay(100)
To look for other high end items simply go to RMAH -> put $/€250 as the max buyout price -> sort by price high end first and take a look at what kind of items that's worth a lot of what kind of that makes them worth a lot.
4.4. THE BIDDING-METHOD
Will be released upon requests.
4.5. SELLING SCRIPT
Will be released upon requests.
4.6. SCRIPT FOR BUYING ITEMS ON GAH AND RESELL ON RMAH
Will be released upon requests.
5. Profiles
5.1. Searchable profiles
These profiles has made me quite a lot of money. I will continue adding more profiles so there should be plenty to all of you. Basically what you want to search for is items that newbies wouldn’t know was worth a lot.
Code:
[B][U]NAME: STAT1: STAT2: STAT3[/U][/B] Mempo of Twilight Critical Hit Chance Nataliyah’s reflection Critical Hit Chance Zunimassa’s Pox Critical Hit Chance Chantodo’s Force Average Damage 250 Arcane Power On Crit Inna’s Temperance Strength 70 Vitality Inna’s Temperance Intelligence 70 Vitality Echoing Fury Has Sockets Echoing Fury Has Sockets Critical Hit Damage Echoing Fury Has Sockets Life steal Lacuni Prowlers Critical Hit Chance Witching Hour Dexterity Vitality Witching Hour All resistance Vitality Witching Hour Strength 200 Vitality Ice Climbers Strength 150 Vitality Tal Rashas's Allegience Critical Hit Chance Zunimassa's Trail All resistance Vitality You should set the specific values of the stats yourself. In case you're in doubts just ask. More profiles will come.
5.2. How to find a good profile
Coming soon
6. Going a little further
If you really want to outsnipe people out there then you should consider to snipebuyout by sniffing packets.
ChuiChu found a way to sniff unencrypted packets:
Quote:
By ChuiChu:
"D3 Bnet Unencrypted Packet Sniffer v2
TUTORIAL
1. Have D3 running at the main lobby
2. Open CheatEngine ( Cheat Engine )
- 2.1. <File/Open Process/Diablo III.exe>
- 2.2. Hit [Memory View] button
- 2.3. <Tools/Lua Engine>
- 2.4. Pasted the code below into the lower section and hit [Execute]
- 2.5. uncheck: <view/show on print>
3. In D3 open chat window and say something.
- 3.1. You will see that packet in the CheatEngine LUA window.
- 3.2. Now explore the AH!
NOTES
- Bnet packets are split into multiple messages. These are seperated out by this sniffer
- Each message is displayed in character then byte format. Paste into a fixed width editor like notepad to see it aligned.
- Each message is in the format
id: 1 bytes
length: 1 or 2 bytes
content: <length> bytes
- If you guys find this useful I'll find the recv version next
- WARNING: Warden may detect this!"
Code:
local _in_address = getAddress('battle.net.dll') + 0x158c02
local _out_address = getAddress('battle.net.dll') + 0x158c72
function _PrintPacket(packet)
print('SIZE:' .. #packet .. '\n')
local offset = 0
while offset < (#packet - 2) do
local length
local p1, p2 = packet[offset + 2], packet[offset + 3]
if p1 >= 0x80 then
length = (p1 % 0x80) + (p2 * 0x80) + 3
else
length = p1 + 2
end
local bytes = ''
local chars = ''
for i=1, length do
local value = packet[offset+i] or 0 -- if this is nil the message length was read wrong
bytes = bytes .. string.format('%0.2X ', value)
if value >= 0x20 and value <= 0x7e then
chars = chars .. string.format('%c ', value)
else
chars = chars .. '. '
end
end
print(chars)
print(bytes)
offset = offset + length
end
print('')
end
function debugger_onBreakpoint()
if EIP == _in_address then
print('__ IN __')
_PrintPacket(readBytes(EAX, readInteger(ESP-4), true))
debug_continueFromBreakpoint(co_run)
return 1
end
if EIP == _out_address then
print('__ OUT __')
_PrintPacket(readBytes(EBX, EDI, true))
debug_continueFromBreakpoint(co_run)
return 1
end
end
debug_setBreakpoint(_in_address)
debug_setBreakpoint(_out_address)
Quote:
DISCOVERY NOTES
- these are the steps I took to discover IN.
- sorry I didnt write it down for OUT but its fairly similar
- i have attached at the end the assembly + bytes surrounding both the IN and OUT address. the actually assembly should not change between patches, however the actual location will. you can use this to memsearch the new location between patches in a few seconds without having to rediscover everything frpm scratch
Code:
wireshark (to assist) 1. start capture 2. send some chat in d3/lobby/chat 3. note the "bnetgame" in captured info. use the source ip to add a source filter. example: ip.src == 1.2.3.4 cheat engine 1. memory view -> assembly view (top panel) -> right click -> goto address:WS2_32.WSARecv 2. f5 to set breakpoint 3. send some chat in d3/lobby/chat to trigger 4. step out (shift+f8). set another breakpoint 1 line above. this should be the actual call to ws2_32.WSARecv by battle.net.dll. 5. remove old breakpoint (view/breakpoint list/right click/remove). 6. repeat #3 to trigger new breakpoint 7. in data view (bottom panel) rclick/goto address/[ecx+4]. this is param2 of WSARecv at WSABUF.buf. (see http://msdn.microsoft.com/en-us/library/windows/desktop/ms741688(v=vs.85).aspx ). NOTE: [ecx+4] is buggy for me with latest cheat engine. instead i goto:ecx+4 then goto the value (display type/4byte hex) you see 8. step over your break point (allow wsarecv to complete/return) and you should see the data change to match that of the same packet recieved in wireshark. this is encrypted data. 9. in data view right click first byte/data breakpoint/break on access 10. run (f9) until data breakpoint hit. 11. step repeatedly (hold f8) and you will see the encrypted data being decrypted. step out (shift+f8) and it will be all decrypted. 12. this is the address you want. EAX points to the data. [ESP-4] contains the length.
Quote:
OUT: battle.net.dll+158c72
Code:
battle.net.dll+158C62 - 74 44 - je battle.net.dll+158CA8 battle.net.dll+158C64 - 8B 7D 08 - mov edi,[ebp+08] battle.net.dll+158C67 - 8B 5D 0C - mov ebx,[ebp+0C] battle.net.dll+158C6A - 8B 8E CC010000 - mov ecx,[esi+000001CC] battle.net.dll+158C70 - 57 - push edi battle.net.dll+158C71 - 53 - push ebx >>>> battle.net.dll+158C72 - E8 29D82200 - call battle.net.dll+3864A0 battle.net.dll+158C77 - 83 7E 60 00 - cmp dword ptr [esi+60],00 battle.net.dll+158C7B - 75 18 - jne battle.net.dll+158C95 battle.net.dll+158C7D - 68 A6000000 - push 000000A6 battle.net.dll+158C82 - 68 80B83659 - push battle.net.dll+55B880 battle.net.dll+158C87 - 68 F0AA3659 - push battle.net.dll+55AAF0 battle.net.dll+158C8C - FF 15 48463659 - call dword ptr [battle.net.dll+554648] battle.net.dll+158C92 - 83 C4 0C - add esp,0C
Quote:
IN: battle.net.dll+158c02
Code:
battle.net.dll+158BF6 - 74 0A - je battle.net.dll+158C02 battle.net.dll+158BF8 - 8B 57 08 - mov edx,[edi+08] battle.net.dll+158BFB - 52 - push edx battle.net.dll+158BFC - 53 - push ebx battle.net.dll+158BFD - E8 9ED82200 - call battle.net.dll+3864A0 >>>> battle.net.dll+158C02 - 8B C7 - mov eax,edi battle.net.dll+158C04 - 5F - pop edi battle.net.dll+158C05 - 5E - pop esi battle.net.dll+158C06 - 5B - pop ebx battle.net.dll+158C07 - 5D - pop ebp battle.net.dll+158C08 - C2 1000 - ret 0010
By being able to sniff packets you can search for certain items (packets) and send a "buypacket" to buy the item out. The sniping sequence would be faster than normal memory reading bots which will give you an advantage.
I'd suggest you to register on sites like
or
and search for a skilled cracker at these sites if you cannot do it yourself. Be aware there are a lot of noob programmers at that site so request to see some vouches first. 7. Credits
ChuiChu - (thank you so much! You made me better at my studies since I could stay home and study instead of working part time 8))
sinterlkaas
Juma
YellowSparks
8. Virustotal





If you are afraid of downloading the attached files then google is your friend. Tried to make it simpler for you.
Best of luck.







