Diablo 2 d2hackit bots guides:
IDBot for JHJPBot
D2HackIt Modules |
Guide to IDBot for JHJ PBot by Vahn Titrio
What is it?
A d2hackit module very similar to mover. It identifies items and decides based
on the item's mods whether to keep it or not.
Where do I get it?
What else will I need?
If you have a working JHJ pbot you shouldn't need anything else.
If you do not have a working JHJ pbot download it in bots section
Is this bot safe?
There is a risk of banning with all bots and programs. Use them at your own risk.
The default settings for this module are set very high (IE it only keeps 14-15%
nightwings, it tosses any that are lower). Configuring the settings is somewhat
difficult. If you are inexperienced at configuring such programs it is
recommended that you stick to the mover and use your own discrepancy on items.
1 Extract the files in IDBOT1.zip to the plugin folder where your JHJ bot is
located. (Make sure the files are in that folder and not a sub-folder.)
2 Open D2HackIt.ini and change the following line:
If you had mover installed, you must take it out of your Autoload list. This
is because it would interfere with IDBot’s own/better mover.
IDBOT is now installed.
Open IDBot.ini and edit it as follow:
click here to view image
A Second Warning
If you do not configure the id column settings correctly, you may lose any
charms that are in your inventory.
This is an English interpretation of the identify.ini file.
Read that to learn how the arithmetic logic works.
In your textpatch.ini there is a list of unique, sets, and other things, and
their corresponding number. In the Identify.ini, only the numbers are used for
the unique and set items.
If an item does not appear in the identify.ini, it will keep all of that type of
If an item appears in the identify.ini, then the item needs to =1 after the
arithmetic and non-arithmetic operators to be kept. If the item =0, it will be
There are 5 sections headings [Unique,[Set],[Rare],[Magic], and [Normal]
Item's must be listed under the correct heading.
NOTE :::::::: ALERT!!!!
If you haven't read the commented intro identify.ini DO SO NOW
I STRONGLY RECOMMEND YOU READ THIS IT WILL GIVE YOU A CRASH COURSE IN
CONDITIONAL STATEMENTS WHICH YOU NEED TO UNDERSTAND IN ORDER TO WRITE YOUR OWN
I can not stress this enough, if you don't know what a conditional statement is,
or you are not sure about them, please read the Identify.ini file which will
briefly describe them and how they are used in the IDBot, he offers some simple
examples on how to use them, but i felt they were inadequate in describing how
the Bot really works.
This guide will benefit those that have read the intro to Identify.ini , or
those who understand conditional statements. If you don't fall into those two
groups you will only confuse yourself, so go read the ini file.
ID Bot's Conditional Symbols
You must first understand what the symbols mean
, means and
| means or
() parentheses , if you remember math it means that is evaluated first
: greater than, the stat on the left of the colon must be greater than or equal
to the amount on the right
Most codes are organized with sets of attributes in parentheses and if you want
to make your own codes you should write it like that so that the wrong
attributes are not being tested and you either get crap items or miss out on
With that out of the way, hopefully you are ready to learn!
Understanding The Code
Note: The Code is extremely long so for readability it is either made smaller or
separated into two pieces, try not to let this confuse you, it is always one
code and even when it is small it is no less important!
Take for example this typical item code in Identify.ini
Oh no, looks pretty long and scary, you'll never be able to decipher that!!
Just break it down piece by piece to understand what it is saying.
This is the item code, 7gd means colossus blade so the item in question here is
the colossus blade
Note: That part is small only because it is so long, it is not unimportant in
The rest of the code here is what determines if it should be kept or dropped, so
we will take a closer look at it.
The code for this item is broken up into 3 major parts:
This first says that it must either have 40 ias or 2 sockets
This second part says that it has to have either 400 enhanced damage, or it must
have 250% Ed and +max damage (based on level)
This last part says that it must be non-ethereal, but if it is ethereal then it
follows a different set of rules.
If it is ethereal it needs to have 20 ias and 2 sockets, or 40 ias.. then it
also must have 350 enhanced damage, or 280+ enhanced damage with added max
damaged (based on character level)
These attributes are only applied if the test "eth==0" fails, since that test
occurs first if it fails, the test eth goes into place (since if it is NOT eth,
it must be eth.. duh). That is why those second attributes are used instead of
the first ones.
Based on this formula a non-ethereal weapon must have higher enhanced damage,
since it has lower base damage higher stats must be found on it. It must either
have 40 ias, or 2 sockets. If the item found has 40 ias and one socket it will
be kept, but if it has 30 ias and 1 socket, it will be dropped.
It sounds confusing but the code must be long for items like this since there
are many different combinations of stats that would be acceptable, by making the
code consider many combinations of stats you ensure that you get an item you
want, and don't get stuck with items that suck an take up your valuable stash
As you can see the item is broken up into two major parts, the first is an
evaluation for ethereal and the second is one for non-ethereal
The bolded part is for a non-ethereal CB
This part I will be focusing on
The bolded part here checks two basic properties, if it has 40 ias, or if it has
2 sockets (the | symbol means or)
If either one of these is true then the whole function is evaluated as ONE (this
is described in better detail in the Identify.ini)
So if it has 40 ias or 2 sockets the first part passes
This is the second test
If it has 400 or more Enhanced Damage it passes or if it has 250 enhanced damage
and adds to maximium damage based on level then it also passes this second test.
The Third and final test is to see if it is ethereal or not, if it was ethereal
this test would fail (however, since there is another test for ethereal weapons
it would continue to test the weapon with a new set of attributes).
Now lets take for example the following colossus blade
423% Enhanced Damage
50% increased attack speed
+6 life stolen per hit
+5 to strength
now look at the item code :
It is not ethereal so automatically the "eth" test fails and that part of the
code can be ignored since it is not true. Note that the second part evaluates as
a ZERO but since there is this symbol " | " which means OR, one side can be ZERO
and the other side can be ONE and it will still pass.
The first part of the code is tested, since it has 50 increased attack speed it
passes, it failed the 2 socket test, but it only needed one or the other, so the
item is still a keeper.
The next test is either 400 enhanced damage, or 250 enhanced damage with + max
damage based on character level.
This sword has 432 enhanced damage and passes this test.
The item is not ethereal so it passes the eth==0 test as well
This item will be kept.
How it Works
When a test passes it is evaluated as 1 (Described in detail in identify.ini)
So (ias:40|socket:2) = 1
and (edmg:400|edmg:250,maxonlvl!=0) = 1
and eth==0 evaluates as 1
that leaves u with 1,1,1
each comma represents an AND logical test (Again , described better in
since they are all ones the whole statement evaluates as a 1 and this means it
is a keeper.
I realize that was long but hopefully you understand HOW it works now and you
can add your own items in which you want to keep.
If you need more help with this post an example item and i can make a code for
it so you can see how it works
Note : Don't be lazy and do this for all your items, only for educational
purposes only if people are making me write codes for a bunch of items I will
just stop helping.
Diablo 2 Newsletter
Questions, ideas, problems, wishes?
Be informed whenever something new comes up
(or any important problems are fixed.).
You can unsubscribe from this newsletter at any time.