kolbot and D2Bot #

Discussion in 'D2 Tools' started by D3STROY3R, May 10, 2012.

  1. D3STROY3R

    D3STROY3R New Member

    Requested removal of D3STOY3R
    1 person likes this.
  2. D3STROY3R

    D3STROY3R New Member

    Character Config Walkthrough:

    Scripts section/Sequence config:
    This is pretty straightforward, set the scripts you want to run to true, and those you don't to false
    Most common mistake here is typing True or TRUE or False or FALSE, these are all wrong. The way to type it is true and false
    Special scripts - worth noting is that Wakka is very experimental, so don't expect human-like reflexes. Enchant and battle orders (moved to the top of char config for convenience) use Catacombs waypoint

    heal percent is the upper limit - if your hp/mana is under it, you will go heal
    Config.RejuvBuffer is an uncommon feature that allows you to store rejuvs and drink them from inventory
    town hp/mp happens only when attacking, the character will go heal and get back to the fight (this feature might be better known as tp chicken)

    Inventory settings:
    1 = drop/stash
    0 = don't touch
    If your whole inventory remains locked with 0's, the bot won't stash anything.
    If your whole inventory is unlocked with 1's, the items will be dropped or stashed.
    You have been warned, so pay attention here.

    Potion config:
    You set each column type and minimum number of potions for each column before buying them. Buying potions is only triggered in town. If you want to restock potions mid-run, keep reading.

    Pickit config:
    Put exact file name like found in kolbot\pickit. You will get an error if you put a bad file name.
    Pickit is in the same format as d2nt, its item parser and alias files have been directly ported.
    I will not give support for your own pickit errors.

    Pretty straightforward, the only thing to note is that GambleItems are classids of items that can be found in NTItemAlias file.
    So, if you want to gamble a JMoD, put kite shield in the array. Getting kite shield's classid is as easy as opening the alias file and searching for the word 'kite'. Once found, put this is character config:
    Config.GambleItems.push(331); // Kite Shield
    Cubing allows you to use most of the useful Horadric Cube recipes. For a list of all of the available ones, go to kolbot\libs\config\Templates\Cubing.txt

    Simple ingredients are automatically picked. The only items that need to be in the pickit are base items for socketing and upgrading recipes (for example, upgrading vipermagi or socketing ethereal archon plate).
    Crafting bases have already been set to a high enough level. It most likely won't keep any bases when your character's level is low (gambling) and/or when killing low level monsters (only baal/diablo/nihlathak can drop good enough amulets for example)
    Again like with gambling, for classids use NTItemAlias file.

    Runeword rerolling:
    I tried to make this as simple as possible by indexing recipes, so all the input that's required is recipe name and item classid, along with keep runeword line. For the list of all runewords, see libs\config\Templates\Runewords.txt
    Runes are picked automatically, main item needs to be in your pickit. KeepRunewords lines are checked against ALL Runewords so you don't need one for each runeword. For example
    Config.Runewords.push([Runeword.Insight, 255]); // Thresher
    Config.Runewords.push([Runeword.Insight, 256]); // Cryptic Axe
    Config.Runewords.push([Runeword.Insight, 257]); // Great Poleaxe
    Config.Runewords.push([Runeword.Insight, 254]); // Colossus Voulge
    Config.KeepRunewords.push("[type] == polearm # [meditationaura] == 17");
    All of these polearms will be checked with just this one KeepRunewords line.
    NOTE: Enhanced damage, Enhanced defense and +defense are currently broken for runewords.

    General config:
    This part contains various options that have been explained in the file itself. Worth noting is that QuitList is used for quitting with leader(s) when team botting. You don't need to explicitly define the leader to follow anywhere, which gives team botting more flexibility, but it's still wise to have a quit list if you don't want to keep running if leader leaves the game.

    TownCheck is the option you use for restocking potions mid-run. It will go to town if you run out of mana or healing potions when teleporting or when attacking.

    Anti-hostile config:
    This allows you to handle hostile threats in your public games. You can quit as soon as hostility is declared, quit when you see the hostile player nearby or try to kill the player.

    DClone config:
    You are able to wait if there's soj sales or dclone walk in your game. Dclone stop will immediately stop the run, go to town and wait infinitely. Soj wait happens after all the current scripts are finished.

    Monster skip config:
    You can skip monsters based on their immunity/enchantment/auras, and multiple immunites or enchantments.

    Attack config:
    Here you input your attack skills. They must be valid or the bot won't attack. They also must be positive numbers. The only negative value is -1, which means 'don't attack' (you will also get a nice message warning you that you don't have any skills set).

    Each character class has their own specific config. Just read the description on each option and set accordingly.

    Ingame Commands

    Specific to libs:
    F12 - reveal area
    Pause/Break - pause/unpause the bot. If you go to town you should return to the same area when you unpause

    Specific to d2bs:
    Home - Toggle console
    Alt+Home - Toggle console for input (you can type native code in the console, like getUnit(), me.x, me.y etc.)

    Messages (d2bs specific):
    .reload - reload the bot
    .stop - stops the bot
    .start - start the bot
    .exec <command> - same as typing a command in the console

    Team Botting

    Team botting includes the following:
    Diablo / Diablo Helper / Diablo Leecher (walks, doesn't fight)
    Baal / Baal Helper / AutoBaal (doesn't fight)

    Joining from the same computer (same d2bot# manager):
    Let's say we have 2 profiles, Leader and Leecher:

    Leader uses the standard D2BotLead.dbj starter file, no additional config is needed.
    Leecher uses D2BotFollow.dbj with the following config:

    var joinSettings = {
    "Leader": ["Leecher"]
    Now, let's say we want to add more leechers, and we want ALL of them to follow one profile - Leader
    The D2BotFollow config would be:

    var joinSettings = {
    "Leader": ["all"]
    You can make multiple botting teams without the need to make multiple copies of the starter, simply add leaders with their leechers:

    var joinSettings = {
    "LeaderA": ["LeecherA1", "LeecherA2", "LeecherA3"],
    "LeaderB": ["LeecherB1", "LeecherB2", "LeecherB3"],

    Joining from friend list or channel announcements:

    D2BotChannel treats all channel text equally - if there's a mention of your desired game name, it will try to join, regardless of it being a f-list message or channelbot announcement.

    In order to set it up, you just need to know the game name you're joining (and password if there's one).

    var joinChannel = "";
    var games = [""];
    var passwords = [""];
    var joinDelay = 5000;
    var friendListQuery = 0; // time in seconds between each "/f l" query. 0 = don't use "/f l"
    joinChannel can be empty, so the bot just joins the lobby
    games and passwords need to have the same number of elements, so if a game has no password, use "" in its place
    games = ["game one-", "game two-"];
    passwords = ["somepw", ""];

    Game names aren't case-sensitive, you can type 'fun baal-' and it will join 'Fun Baal-##' games.

    Ingame team botting:

    First you need to choose the scripts you want to run.
    Leader runs Scripts.Baal and/or Scripts.Diablo

    Followers can run Scripts.BaalHelper to fight along in a Baal run or Scripts.AutoBaal to just sit in a corner
    Same goes for Diablo - Scripts.DiabloHelper for killing along or Scripts.Wakka for following without attacking
    DiabloHelper and Wakka do not open seals.

    Next important option is public mode:
    Config.PublicMode = 0; // 1 = invite, 2 = accept, 0 = disable

    Leader uses 1 - invite mode, followers use 2 - accept mode.

    Another useful but not crucial setting is Config.QuitList.
    It is used to quit along with leader.

    Team botting scripts don't require a name to follow, so you can follow multiple runs with the same character without having to supply a leader's name. Everything is either auto-assign or completely ignores the concept of needing a leader (join the first throne portal for example, keep running if leader chickens if you don't have him in quitlist)

    Important note: Wakka is a personal experiment, don't expect a miracle.

    Gambling System:

    It is possible to run dedicated gamblers that will get gold supply from other characters.
    This is especially useful when trying to gamble LLD/VLLD items - mainly circlets - on lower level gamblers (24-45).
    Gambling rings and amulets is NOT recommended because of their constant and high price. The price of every other item is based on character level and gets lower on low level characters.

    Setting up:

    Open kolbot\libs\Gambling.js
    You will find settings for gamblers, gold finders, game names and min gold

    goldFinders - Here you can put any profile that does mf or gf runs. These characters will join games to drop gold for gamblers when needed.
    gamblers - Profiles of characters that gamble. They will gamble until their gold is out, after which they'll request gold from goldFinders
    gambleGames - these are needed so goldFinders can know what to do in a game. The format is game name without the number. So if you're making 'gamble#', put "gamble", and if making 'gamble-#', put "gamble-"
    minGold - least amount of gold goldFinders should keep. Anything over will be given to gamblers, and if they don't have enough, they won't join gamblers' games

    Here's an example:
    Let's say we have 3 mfer profiles called MF1, MF2, MF3 and one gamble char profile called GAMBLE that makes games "gamble-#" (this is what you put in d2bot manager!).
    We want all 3 mfers to supply the one gambler, here's how we set that up

    goldFinders: ["MF1", "MF2", "MF3"], // don't remove the comma
    gamblers: ["GAMBLE"], // don't remove the comma
    gambleGames: ["Gamble-"], // don't remove the comma
    minGold: 200000, // don't remove the comma
    (game names are case sensitive here, and d2 always makes the first letter uppercase, I may change case-sensitivity at some point)

    All 3 characters run D2BotLead.dbj as their starter.
    goldFinders don't need any additional character config changes
    gamblers run Scripts.Gamble in their character config (special scripts), and use Gambling config settings.

    One gf barb was enough to supply 3 level 25 circlet gamblers (looking for level 18 compatible circlets) in my tests.

    Special Thanks:

    d2bs team
    synirc #d2bs crew
    etal team
    McGod and his mBot - lots of ideas came from here, and I snagged mBot's Storage.js

    Misc Notes

    Stashing can be done from anywhere in town, and kolbot uses that, so don't freak out if you see item on cursor after visiting a NPC.
    The official kolbot slogan is "use kolbot or die."
    Kolbot supports all character classes and most character builds. It doesn't support shapeshift druids, but it does have experimental wolfbarb code. If that proves to be a success, it will be used for druids too. Melee characters (frenzy, conc, zeal, charged strike etc) will walk short distances to reposition when attacking (mostly due to garbage fcr where walking takes less time).
    Barbarians and ww assassins will use tri-whirl on solo targets (yay)
    xkp likes this.
  3. D3STROY3R

    D3STROY3R New Member

  4. riots

    riots Contributor

    Is this the same as Etal or better? Just curious if it's worth it to set up another bot considering I already have Etal all configured to my liking and only run one account.
  5. D3STROY3R

    D3STROY3R New Member

    No, it is not the same as Etal, Etal uses D2NT core, D2bot# with kolbot uses D2BS core.
    Is it better?

    Well it has many features that Etal does not have and simply cannot have because D2NT core cannot be modified whereas the D2BS core can.
    ultimately, you will have to be the judge of which one is "better", in my opinion, D2bot# with kolbot is significantly better because I don't have to worry about RD's and I can actively remove bad cdkeys from my lists so that I can have short runs without downtime.

    Here are some example videos made by kolbot users:

    Fast shopbot

    Necro Diablo run
    Team MF
    If you are interested, visit http://www.blizzhackers.cc/viewtopic.php?f=204&t=489126 for support
  6. skyethelimit

    skyethelimit Contributor

    yo ive used this bot very nice also needs a necro starter for summons but other than that it quite nice and the guide good

    try porting myself but failed think im going to have to read how to write these scripts
  7. roydk

    roydk Well-Known Member

    Looks sexy! I'll give it a try
  8. D3STROY3R

    D3STROY3R New Member

    There was a major update that fixed some bugs yesterday so make sure to update.
  9. Malikgowon

    Malikgowon Contributor

    Trying it now. CDkey swapping made me interested... ETAL needs that

    Edit: So I've setup my sorc, but when I start the profile, nothing happens. Doesn't even login. Using the lead script.
  10. D3STROY3R

    D3STROY3R New Member

    hmm going to need more info to help you get it working can you get on teamviewer?
    also come to irc://irc.synirc.net/d2bs for realtime support
  11. gamemaste789

    gamemaste789 Well-Known Member

  12. gamemaste789

    gamemaste789 Well-Known Member

  13. gregfoster33

    gregfoster33 Well-Known Member

    i get error in parsing editor message

  14. MrSithSquirrel

    MrSithSquirrel Retired

    You have to have a number in Runs/keys box

    if only one key, put to 0
  15. gregfoster33

    gregfoster33 Well-Known Member

    nope that wasnt it, with the diablo path you go through and click on executable right?
  16. MrSithSquirrel

    MrSithSquirrel Retired

    Try restarting everything and running as Admin, also make sure you have all the pre-requesists
  17. D3STROY3R

    D3STROY3R New Member


    check your path for game.exe and starter file thats usually where it will give you an error
  18. booisback

    booisback Contributor


    [name] == ataghan && [quality] == rare && [flag] == ethereal # [ias] == 40 && [enhaceddamage] >= 290 && [sockets] == 2 && [itemreplenishdurability] >= 1


    [name] == bloodlordskull && [quality] == unique && [flag] != ethereal # [enhanceddefense] == 150 && [poisonandboneskilltab]+[cursskilltab]+[necromancersummoningskilltab] == 9 //darkforce spawn

    other than these nice job
  19. Malikgowon

    Malikgowon Contributor

    Finally have this semi set up. Looking pretty good right now.
  20. kolton

    kolton Staff Member D2Etal Developer

    If anyone experienced and responsible wants to join in with TestVer branch testing, here's the details: