“Teach a man to fish and you feed him for a lifetime. Unless he doesn't like sushi—then you also have to teach him to cook.â€â€”Auren Hoffman, Herald Philosopher
Latest Update: 10 Jan 2010
#==================#
Introduction
#==================#
Some of the older botters may remember my old guide, and has been gone since the forum move. I decided to make a new guide for this forum with many of the concepts from the old guide as well as new. Thanks to all for the credit, and I'm glad it was of good help to some new to botting on Ragnarok.
Openkore is a free open source botting client supported by a handful of developers for your use. The purpose of this guide is to hopefully teach a new generation of botters to become better users and make your game play more enjoyable. I normally do not play MMORPGS because I hate grinding, but this program overcomes that dislike for me.
Openkore does not support Kill Stealing, likewise I do not support reporting other bots. I made this guide in order to encourage players to help each other and I hope you do the same, after all the developers wanted to share openkore with you. Therefore, put your retarded nature aside and contribute. Last thing I want to hear on the news is some kid in another country killing his friend over a GTB card. This game is not worth your life or anyone else - If anything be competitive in school or at work, and remember to help others.
In Addition, for you private server owners out there who think your fighting the good guys fight. Give me a fucking break, you think using stolen copyrighted material (doesn't matter how you argue it), and hosting it on your servers for your monetary gain makes you any better than people who bot on your servers? Your a thief, and that makes you worse than a cheater . I go to eAthena forums and I see many idiots who feel self-righteous and seriously you should know your place . Similar idiots who lurk here, but never contributing or helping others then change their post with "Never mind", "Problem Solved", "Please delete this post". For the rest of us that have accepted who we are (private server owners and/or botters), have a happy new year
#==================#
Preparations
#==================#
Openkore SVN
You should always use the latest openkore as this is the only version supported by developers now. It will also solve a lot of the problems you may have with the program and also because my guide is based on this. You can download the latest openkore on the link I posted below, in addition you can download the Turtoise SVN to stayed constantly updated. If you install turtoiseSVN you'll know because you'll see green check marks on your Openkore folders. You can then right click the folders to see a "Update SVN" option to update the folders.
Figure 1. The main folder is called Openkore. Within this folder contains control, table, fields, src, logs, plugins, and the executable files WXstart or Start. These are the exact names, and must be put in this fashion in order for the program to operate properly.
You may have notice there are two executable files WXstart.exe and Start.exe. These are the executable files you need to start your program. The WX has a better interface, but uses more memory and requires NetRedirect.dll. Start.exe is the original executable file and in my opinion more better since it uses less memory, but requires you to know the console commands. If your new I suppose WX would be the better choice since its prettier and all it requires of you is clicking.
Server Configurations
Most servers will require you to use packet extractors such as JCV's RO Tool or Openkore Packet Extractor. The latter which can be found in the same link as the latest Openkore Folders. Make sure you direct the program to the private server's RO executable. It will extract a file such as recvpackets.txt. This file should be in the tables folder.
Make sure the name of the file is correct such as below like EssenceRO.
Code: Select all
[EssenceRO]
ip 174.36.9.50
port 6900
master_version 16
private 1
serverEncoding Western
serverType kRO_RagexeRE_2009_01_21a
charBlockSize 108
version 25
recvpackets recvpackets-essenceRO.txt
Code: Select all
For Renewal serverTypes, try these:
- kRO_RagexeRE_2008_08_27a
- kRO_RagexeRE_2008_09_10a
- kRO_RagexeRE_2008_11_12a
- kRO_RagexeRE_2008_12_17a
- kRO_RagexeRE_2008_12_17b
- kRO_RagexeRE_2009_01_21a
- kRO_RagexeRE_2009_10_27a
- kRO_RagexeRE_2009_11_03a
- kRO_RagexeRE_2009_12_29a
Code: Select all
Issues With In-Game Text? Omit or add 1 of 3 below:
- charBlockSize 106
- charBlockSize 108
- charBlockSize 112
+ Where do I get the latest Openkore folders?
+ Where do I get tortoiseSVN?
+ How do I find out my server's connection info?
+ Where do I get the latest WXstart.exe and start.exe to start Openkore?
#==================#
To Bookmark
#==================#
These are a handful of websites you should bookmark if you want this guide to help you at all...
+ The IRO Wiki Page for All General Information regarding Ragnarok
+ The Datazone for basic understanding of stats and status ailments
+ RateMyServer.net has the latest RO database for Everything. In addition to Private Server Information.
- ROempires database is outdated, but their forums are useful for guides. Please No Private Server Related Stuff Here.
+ The Official Openkore Manual
+ The Official Openkore Macro Manual
+ The Tutorial on Reg expressions used in Macros for you to learn
- My favorite copy of the old Official Openkore Manual hosted by Hakore
+ Doddler's stat attribute calculator
+ RO Character Sprite Simulator
+ RO Character Skill Planner
+ Ragray: Latest RO Renewal Client
#========================#
Knowing the Game
#========================#
As you will learn its hard to start a new character since you lack the resources (such as no zeny or no friends), so its best to start with an easy character such as a mage or an agility type character. These characters require the least amount of resources. Although they may not be your favorite character, they will make it easier for you to obtain the zeny and equipments you require to support your other characters.
My favorite character has been and always will be the Rogue. It is also the most suspected of being a bot so requires extra diligence such as using Macros. They have the ability to steal extra loot from monsters which also means extra zeny. Another character you might want to look into is a Mage, as they are one of the fastest levelers early in the game (with no equips) and can be used to leech other characters. However, they are the hardest to configure for new botters as more settings have to be looked at. The fastest transcending character would have to be the Hunter, but requires some resources early in the game.
These are some basic information you need to know so you can plan out how you are going to bot. If I want a Soul Linker Slave, most of the time I would use a Mage to bot and have the Soul Linker leech off the exp. However, given enough resources its preferable to use a Hunter because they have access to more monsters, easy to bot and are fast levelers.
Ex. A few ideas on leveling
Firebolt Mage: Mandragoras > Andre > Metaling > Porcellios > Geographer > Job Change
Archer: Mandragoras > Rocker> Poporing > Greatest Generals > Geographer > Job Change
Figure 2. There may be times where you may not bot, and play manually. As a swordsman, playing manually to reach job 40 may be preferable since its faster and you'll be able to bot as a much stronger class (Crusader or Knight).
#========================#
Setting Up Your Bot
#========================#
A bot basically repeats certain tasks you tell it to do and it loops. So if you can't do it yourself in-game, your bot won't be able to do it either.
You need to have creativity! Off the top of my head when I start a character the first thing I do is figure out what kind of character I want, and what items I'm looking for. This is where the guides help to create a good character, and the easier it is to play the more efficient it becomes as a bot. Also scope out kafras in each town and see what players hang there because if your going to setup your bot its going to see those people a lot.
Figure 3. An example of how to get the required NPC locations in-game. The other method would be to start your bot up and type in nl to have openkore tell you instead. Here the NPC location is 102, 149.
Don't read the entire Manual! Read what you need first (usually Config.txt), the rest you will want to look it up later. This way you are not overwhelmed with information you do not need to know right away. The most important is config, items_control, mon_control, and pickupitems. Read everything you can about them and you should be fine. Asking any config questions in this forum will get you NO answers.
items_control.txt You know how you need lots of ingredients to create hats, or finish quests? This file will help you organize what to keep and what to throw away.
mon_control.txt This will tell your bot whether to teleport away from a monster, ignore it, or kill it
priority.txt This is also useful as it will tell your bot which monster to attack first
pickupitems.txt This is quite obvious what it does, but if you play on a server that has @autoloot you will want to pay more attention to this file. Last thing you want to get caught for is picking up loots when an @autoloot command is available.
#========================#
Common Mistakes
#========================#
Chat_resp.txt/Responses.txt I would suggest not to use this, as there are better alternatives such as the Kadiliman plugin or custom responses made from macros. I prefer macros because it allows the bot to perform more complex responses.
Avoid.txt Do not use avoid.txt. I noticed a lot of players use this on officials, but if your on a private server this is a bad solution to avoid getting caught. Teleporting at the sight of Game Masters or other players is a Red Flag that you are a bot and in most cases you will be caught. I strongly suggest using macros instead, at least then you can do a reply before logging off or teleporting away.
Timeouts.txt Make sure your timing looks natural and normal. You do not want people to see you doing actions at lightning speed.
Bot Party The most obvious and hated. Try avoid forming bot parties as this draws attention to yourself as a bot. This is also a reason why most servers ban multi-clienting. Even if you were to hex the client, they log the ip address so it is not worth the trouble hexing. If your new to botting, I suggest stay away from doing this until you are more experienced with Openkore. The last thing you want is the Game Masters to test you to see whether you are two people on the same IP or one really stupid player. You cannot argue how you are able to cast skills on separate characters the same time consistently by yourself without a thorough knowledge of botting. (Ex. If there were two players, the priest would not be auto-following the main player all the time and repeating skills. It could be one player duel clienting, but he cannot cast skills on both characters at the same time!)
Bot Health When your bot dies it will respawn in town or sit until its health reaches 100%. This is the default setting and I know many people don't pay attention to this at all. Once a priest player heals you, the bot will instantly stand up saying nothing and continue botting. This is a dead giveaway that you are a bot. This is why it is also important to look at the autoMoveOnDeath option in the config.txt file.
Code: Select all
autoMoveOnDeath 0 <---- set it to "1" to enable
autoMoveOnDeath_x <---- X coordinate
autoMoveOnDeath_y <---- Y coordinate
autoMoveOnDeath_map <---- Map location
Do you have Bot tles? More advance methods are needed when they expect a reply from you, especially when they suspect you!
24 hours in one map If your trying to escape detection never spend too much time in one map. It is uncommon for people to play Ragnarok on the same map for 12 hours straight. These people can be checked, and if your not prepared you can get caught. Change your maps often and make use of the breaktime feature in the config.txt. Additionally, you may want to enable logging for the console so you know everything that is happening to your bot.
#========================#
Testing Your Bot
#========================#
Many botters miss this step, and that is testing your bot. How do you know whether or not if your bot is acting the way you want it? There are two ways to do this, one is using Xkore mode and observing your bot's actions. The other method is duel clienting and test your bot. The duel client method is the one I prefer the most because it gives me better information on how to improve the bot. You can either go to a secluded map or make your own server. The map I use is pay_fild03, it has NPCs close by and I can do live tests on my bot since there are no aggressive monsters there.
Once you get a hang of configuring your bot you'll become more familiar with it, and in time you'll have copies of your own custom settings that you can take on any server in a text file.
Under common mistakes I addressed typical issues people can tell your a bot, this is where macros come in. They do not come included in your Openkore folder, you have to install them yourself.
The macro is a plugin that goes in the plugin folder and it is far the most powerful plugin in Openkore. The following link http://openkore.svn.sf.net/viewvc/openkore/plugins/ has the macro under /macro as well as other plugins that will be discussed in this guide. The macro manual explains how to install them.
#==================================#
Countermeasures: Macros
#==================================#
The Openkore macro is a powerful tool, but it requires what most players lack; Creativity. I noticed there are a lot of helpful guides on using macros and making them so I won't go into in detail here. The best way to learn them is testing and using them yourself. Below is an example of what I would type on the right, and the results you would see in console on the left.
Figure 4.The only way to learn is to write your own macros and test them.
It is important you learn how to make your own, that way you don't have to ask people to make one for you. All of them had to read the manual to make one. I know people copy and paste macros, but that's foolish because you might not get the same results. Also, how long will that last? I'm writing this guide in a forum that is less active than it was years ago. I see more beggars than there are contributors. Why? Because none of the new people are learning and all the old botters are gone.
To use macros, its recommended you learn how to use Reg expressions. A lot of macros posted on this forum revolves around this. Your macros will become more effective, the better you are in understanding Reg expressions.
Macros
Code: Select all
automacro ReactOnChatR {
console /(.*?) has joined the Chat Room/i
run-once 1
call {
$cht = $.lastMatch1
pause 1
log $cht has entered chat!
release ReactOnChatR
}
timeout 300
}
$cht represents $.lastMatch1, I can instead say $anything = $.lastMatch1. The $.lastMatch1 basically refers to the reg expression (.*?) which is where the player name goes. Log is basically a comment that only you can see in the console. So in my console it should say "PlayerName" has entered chat! The timeout is measured in seconds and currently it is set on 300 seconds. So it will not trigger the macro again until that 300 seconds has passed. It good to put pauses in the macro so it is executed correctly. Sometimes lag can prevent macros from being properly executed.
Reg Expressions
Reg Expressions is important to learn, why? Because if you don't make them properly, anything can trigger them.
A good idea is to enable "ShowDomains 1" in the config.txt so you can differentiate a console comment, public chat, private chat, and guild chat.
Here is a good example... in console you will see...
Code: Select all
[console] PlayerName is casting Finger Offensive (lvl 10) on you (time 1300ms)
Code: Select all
automacro test {
console /is casting Finger Offensive on you (time 1300ms)/
call {
do this blah
}
}
Code: Select all
automacro test {
console /is casting Finger Offensive on you \(time (\d+)ms\)/
call {
do this blah
}
}
Since there is only 1 reference...
Code: Select all
automacro test {
console /is casting Finger Offensive on you \(time (\d+)ms\)/
call {
$.lastMatch1 = $anything
log $anything is working great!
}
}
Code: Select all
1300 is working great!
Code: Select all
automacro test {
console /is casting Finger Offensive \(lvl \d\) on you \(time (\d+)ms\)/
call {
$.lastMatch1 = $anything
log $anything is working great!
$.lastMatch2 = $something
log $something looks great!
}
}
Code: Select all
10 is working great!
1300 is looks great!
Now to something a bit more fun using that same chat macro we looked at above...
Code: Select all
automacro ReactOnChatR {
console /(.*?) has joined the Chat Room/i
run-once 1
call {
$cht = $.lastMatch1
pause 3
do c $cht is stupid!
pause 3
do c @random ("Haha", "Wow...", "wtf!","Nah Im kidding!")
release ReactOnChatR
}
}
Lets do a more complicated macro, this time using If statements using the same macro above.
Code: Select all
automacro ReactOnChatR {
console /(.*?) has joined the Chat Room/i
run-once 1
call {
$cht = $.lastMatch1
if ($cht = Joey) goto dum
if ($cht = Allie) goto smart
goto nobody
:dum
pause 3
do c $cht is stupid!
goto end
:smart
pause 3
do c $cht is smart and pretty!
goto end
:nobody
pause 3
do c $cht, who are you?!
goto end
:end
release ReactOnChatR
}
timeout 300
}
ShowDomains
By enabling ShowDomains in your config.txt you can be more precise in trigger macros. For example...
Code: Select all
console /^\[console\] is casting Finger Offensive on you \(time (\d+)ms\)/
Countermeasures: Plugins
#==================================#
There are many other plugins besides macros that you can use for your bots. I don't have time to explain everything so I will just post plugins I recommend with a brief explanation on their use.
playerRecord.pl Attached Below
This plugin records the players that your bot sees, and this one will tell you the time, field name, player name, job, level, sex, and their affiliated guild. It is very helpful if you want to find out who saw your bot, and prepare you to modify the avoidlist.txt or create your own macros.
alertsound.pl Attached Below
Please thank Mushroom our forum moderator for reviving this macro. I added a few things I liked to have in the plugin like guild chat, player, system chat, and server disconnections. Also I added in alert 1 to enable and alert 0 to disable to make it easier to disable it and not add pound signs.
A helpful feature I also included was for party bots. Change the PLAYERNAME in the plugin to the name you want your bot to ignore so it doesn't alert you.
I'll also upload a few of my own favorite wav files, if you guys want to share your own please post it below. Maybe there are some funny ones you would want to share.
http://stashbox.org/762729/wav_pack.zip - My Wav Files
#===============================#
IP Address Tutorial
#===============================#
Alright class, work, gf, and family (I have a life too) are keeping me busy so I'm going straight for the good stuff - IP Address guide.
This is from what I know and have used, but I know there are better alternatives out there so use this at your own risk as the results won't be the same for you. I'm going to start with resetting your IP address, which I know only for Linksys router users because I have tried this and it works (worked for my co-worker also). I'm currently using a NetGear router at my gf's house, but haven't had the time to figure NetGear out yet.
Resetting IP Address (Linksys)
First Step. You will want to login into your router settings which can be accessed from a web browser. Doesn't matter which browser you use. The default page should be http://192.168.1.1/ for linksys, so type that in your address box. This should popup a login box. By default it should be at Factory Settings unless it has been changed, therefore the user name should be blank (or admin) and the password should be admin.
Figure 1. Linksys Router Main Page http://192.168.1.1/
Second Step. This should gain you access to your router settings with various tabs. Now look for the LAN MAC address and it should have an address like, 00-90-4B-60-78-6A. Copy that address. If your on wireless, you will want the LAN Mac address. Now go to the tab that says Mac Clone which should be blank and paste the address you copied there.
Figure 2. Linksys Router MAC Address Clone Tab
Final Step. Now change the last two box to any digit of the hexadecimal system (1-F). Apply and save the settings and shut down your computer. Now unplug your modem and router for a minimum of 10 seconds, but to be sure make it 30 seconds (I hope you wash your hands longer than this). After the time has passed, plug everything back in and start your computer. Check this website http://whoer.net/ to verify whether or not your IP address has changed. This method has never failed me, but there is always a first for other people.
Figure 3. Linksys Router MAC Address Clone Tab
This may or may not be useful for many of you, but those who been IP banned might find this of some use and does not necessarily have to be Ragnarok. I did not learn this from a guide, but through trials and personal experience. However, to my surprise I see many similar tutorials like this on the web (that's how I got the pictures).
Proxy Botting
Proxy Bot. I know a lot of people ask about having bots having their own individual IP addresses. There are other ways of doing it, but this is how I do it for my bots. Its like having multiple personalities, chat on forums or play the game with someone's IP address. It works like this: You connect to an anonymous proxy address and through that you connect to your bots or any application like your browser. What they should see is the proxy address, but not your IP address.
Issues. Too good to be true? Maybe. There is a huge downside to it especially if you want to do it for free. For example, the program I use is ProxyCap and its not free. Although you can try their program for 30 days and see if it benefits you. That isn't even the downside, the real problem is finding IP Addresses you can use called Socks V4/V5 and they have to be anonymous for our purposes. If you have money, you can sign up with websites that offer different proxy addresses.
Lets do this! If you finally decide to use this method, bookmark this address http://whoer.net/ to verify address.
The problem with free proxy addresses is since you are connecting to another place they can be practically anywhere in the world. You'll be lucky to find one that is nearby you and has a fast connection. So its a good idea to test them with your browser.
Figure 1. Plug in the IP Address and Port information
Its good to have multiple addresses and plug them in the program. You should be able to obtain information such as the IP, the port number and whether or not it is Socks v4 or v5 as shown in Figure 1. In Figure 2 below, I am playing in the game while another bot is running on a different IP.
Figure 2. Setting up Proxy Tunneling Rules
The next step is setting the tunneling rules. Set it to tunnel through proxy, and you can have multiple rules so you can specify which programs to run with it. What I do is change the name of the OpenKore's start.exe to CharacterName_start.exe so it is easier for me to set proxy addresses to each bot. It is also important to remember that your IP address is logged when you register an account, post on forums, and play in the game. Therefore, it is best to take note where your proxy address is being used.
A helpful feature of this program is being able to disable tunnel rules by a click of a mouse in the box I pointed out in figure 2 above. That way I can use my real IP address to browse the internet, then quickly uncheck the box to enable the tunneling rule and use the proxy address to browse the internet.
I will post more later...
Happy New Years!
If this guide is helpful or you have suggestions (relating to the guide), feel free to post below.
Make Me Proud Botters