# About This page is a complete guide for [phBot](https://phbot.org/). It will be continously updated as new features are added. I hope to have it translated into several different languages. --- # General ### [Purchasing Bot Time](#purchasing) * #### [Free Trial](#trial) * #### [Resellers](#resllers) Where and how to purchase time for the bot. ### [Reporting Bugs / Questions](#bugs) Where to go to report bugs. ### [Account Sharing](#sharing) Safely share your ProjectHax forum account with other people. ### [Manager](#manager) The bot Manager is a free application that allows you to manage and monitor multiple instances of phBot. ### [Frequently Asked Questions](http://faq.phbot.org/) ### Social Media * ##### [Twitter](https://twitter.com/projecthax) * ##### [Facebook](https://facebook.com/projecthax) * ##### [Google+](https://plus.google.com/+projecthax) * ##### [GitHub](https://github.com/projecthax) --- # phBot ProjectHax Bot ### [Features](#features) ### [Download / Updating](#updating) * #### [What is the difference between stable and testing?](#updating) ### [Initial Setup](#setup) * #### [Supported Operating Systems](#os) * #### <strike>[Native Linux](#native-linux)</strike> * #### [Wine](#wine) * ##### [Linux](#wine-linux) * [Ubuntu](#wine-ubuntu) * [Debian](#wine-debian) * [Arch](#wine-arch) * [Fedora](#wine-fedora) * ##### [Mac OS X](#wine-mac) * #### [phBot.ini Configurable Options](#inisettings) * #### [Command Line Arguments](#commandline) * #### [Logging In](#loggingin) * #### [Reset Hardware ID](#resethwid) * #### [Choose Locale](#chooselocale) * #### [Launch Game](#launchgame) * #### [Clientless Login](#clientlesslogin) * #### [Go Client / Go Clientless](#goclient) ### [Auto Configure](#autoconfigure) * #### [Profiles](#profiles) ### [Protection](#protection) * #### [Potions](#potions) * #### [Return](#return) * #### [Monster](#monster) * #### [Monster Preferences](#monsterpreferences) * #### [Notifications](#notifications) * #### [Scrolls](#scrolls) * #### [Misc.](#misc) ### [Town](#town) ### [Training Area](#trainingarea) * #### [Script](#script) * ##### [Add Training Area](#trainingarea_add) * ##### [Create Walk Script](#trainingarea_script) * #### [Conditions](#conditions) * #### [Settings](#settings) * #### [Script Commands](#scriptcommands) ### [Attack](#attack) * #### [Attack](#attack) * #### [Buffs](#buffs) * #### [Secondary Weapon Buffs](#second_buffs) * #### [Party Buffs](#partybuffs) * #### [Resurrect](#resurrect) * #### [Lure](#lure) * #### [Attack Log](#attacklog) ### [Pet](#pet) ### [Party](#party) * #### [Accept / Invite](#party_accept_invite) * #### [Matching](#partymatching) * #### [Taxi](#taxi) ### [Union Party](#unionparty) ### [Pick Filter](#pickfilter) * #### [Store Gold](#storegold) ### [Quest](#quest) * #### [Quest Script](#questscript) * #### [Quest Return Script](#questreturnscript) ### [Players](#players) ### [Guild](#guild) ### [Academy](#academy) * #### [Options](#academyoptions) * #### [Matching](#academymatching) ### [Inventory](#inventory) * #### [Gori Item Exchange](#goriitemexchange) ### [Stall](#stall) ### [Alchemy](#alchemy) * #### [Plus](#alchemyplus) * #### [Attribute](#alchemyattribute) * #### [Alchemic](#alchemyalchemic) * #### [Dismantle](#alchemydismantle) ### [Mastery](#mastery) ### [Map](#map) * #### [Record Polygon](#recordpolygon) ### [Sound / Alarm](#sound) ### [Key Bindings](#keybindings) ### [Plugins](#plugins) --- # <a name="purchasing"></a>Purchasing phBot time is currently **$1.00 USD** per week and can be purchased at [ProjectHax](https://phbot.org/buy/). * Payment Methods * PayPal * Bitcoin (and alt-coins) * TECKCARD * Paymentwall Paymentwall has decided to remove CashU completely because they are not a regulated company. > We are no longer work with CashU due to the face that CashU is not a regulated company. They are registered at British Virgin Island so merchant's money is potentially at risk. Paymentwall has also removed PaySafeCard due to their Terms of Service disallowing the purchase of bots. Payza has legal issues in the US so they are no longer accepted. * Logging In * Upon a successful payment you will receive a random username and password to login to the bot with. A few days before your subscription expires you will receive an email detailing that it is expiring soon. ### <a name="trial"></a>Free Trial 1. Download [phBot](#updating). 2. Login to phBot between 12:00 AM -> 12:00 PM EST Tuesday morning (after the Silkroad inspection) with the username "trial" and any password. You have 12 hours to test the bot. ### <a name="resllers"></a>Resellers There are a few resellers out there but I prefer that you purchase directly whenever possible. * Some resellers will give you a card ID and password to redeem on any ProjectHax forum account that you wish. This method is preferred. * Others will require you to give them your account info so they can buy time on your account. You should change your password afterwards and make sure they haven't changed the email address on your account. #### Resellers Using the Card System * [gameyardim.com](https://www.gameyardim.com/magaza/phbot-2-hafta/) * [sropedia.com](http://sropedia.com/) * [sromasry.com](http://sromasry.com/) * [MaxiGame](http://maxigame.org/) Please use one of these sites if you must use a reseller. Cards allow you to get your account back if you get "hacked" and are much safer in general. Cards can be redeemed [here](https://phbot.org/buy/). --- # <a name="bugs"></a>Reporting Bugs / Questions * Before posting a bug report please read the forum and make sure the bug has not already been reported by another user. Posting duplicate threads about the same problem will cause your thread to be deleted at some point. * Be as descriptive as possible! Include what you were doing and what you observed when the bug occurred. The more information you give the more likely the problem will be solved. * If you have a question, there is a dedicated forum section specifically for that. * [All questions and bug reports can be found on the forum](https://forum.projecthax.com/) --- # <a name="sharing"></a>Account Sharing You may share your username and password with anyone as it is only use to login to the bot. The only way to change anything with your bot account is through email. --- # <a name="manager"></a>Manager The Manager is a free utility to manage multiple instances of phBot. It allows you to hide/show bots, start botting, and it will restart them if they disconnect. It automates the command line arguments for you and much more. <img src="https://phbot.org/screenshots/manager/edit.png"> * [Download](https://forum.projecthax.com/t/manager-release/45/) --- # <a name="features"></a>Features This is a list of the most important features - not all features. * #### Multi-locale support * iSRO, SilkroadR, vSRO 1.188/1.193/1.274, thSRO, Black Rogue, ECSRO, cSRO SilkroadR (official), and cSRO SilkroadR private servers. * #### Native Linux Release * Wine is no longer needed for the bot to function. Starting Silkroad will require Wine since it's a Windows only application. * #### Mac OS X support via Wine * Starting the client through the bot also works through Wine. * #### Use on up to 3 computers at once * You are allowed to run as many Silkroad characters as you like on up to 3 computers. For use on more than 3 computers you will need to use multiple ProjectHax accounts. * #### Fully functional clientless * Silkroad does not even need to be installed to bot. * New characters can be created through clientless login. * It is also capable of going back to the client with two different methods: reconnect and use a return scroll/teleport. * #### [Account Sharing](#sharing) * Your ProjectHax account can be shared securely without fear of losing it. * #### [Command Line Arguments](#commandline) * Command Line Arguments allow you to automate certain startup tasks in the bot. For instance, you can have it login to the game and start botting by specify a few startup parameters. * #### Attacking, buffing, party buffing, resurrecting, weapon switching * The bot is able to detect your weapons automatically and switch to the correct one based on the skills you add. This includes resurrecting players with a different weapon. * #### Monster Luring * Luring monsters allows you to walk outside the training area to bring monsters into the attack area. A skill such as "Howling Shout" can be cast to bring monsters to you. This is perfect for botting an entire party. * #### Attack Log * The bot has a log of players that have recently attacked you. This can be useful when you are botting in the "Job Cave" area where there are Hunters and Thieves. * #### Player Gear Spy * On the "Players" tab is a complete list of a players items. It allows you to see their gear, avatar items, and if they have a "Devil's Spirit". * #### Comprehensive Pick Filter * A pick filter is a list of items that you can pick up, sell, store, or store guild. * It allows you to pick up the items while training, sell them while in town, store them while in town, or store them in guild storage while in town. * In the bot you can easily sort or search for the items relevent to you. * #### Alchemy * In Silkroad, alchemy can be a very time consuming process but important to do since it gives you an edge over other players. * phBot has the ability to plus, use alchemic stones (blue stats), use attribute stones (white stats), and also dismantle items into elements. * #### Inventory * The bot allows you to look at your complete inventory (with icons!) as well as show stats of gear. * #### Stall * On town loop the bot is able to create a stall to sell items or put the items into consignment. This also allows you to re-open a stall if you disconnect. * #### Mastery / Stat Points * Skills and character masteries can be automatically leveled up while botting. Stat points can also be added without intervention. * #### Path Finding (auto walk) / Training Area * Path finding allows the bot to go to your training area without the use of a walk script (except caves). Scripts can still be used but are not required. * Paths are created on town loop and can be edited after if you wish. * Conditions can be set up to change the training area when you level up. * #### Chat * phBot supports chat completely; including sending global messages and sending/receiving notes. * Players can be added to a block list if you do not wish to receive messages from them. In game chat gold spammers are mostly all blocked without you needing to do anything. * #### Monsters * Monster types can be ignored, preferred, or avoided. This can also be done by specific monster names. * #### Auto Buy * Town items such as HP, MP, and Vigor potions can all be purchased automatically when you start the bot in town. * The bot supports buying all items from NPCs --- # <a name="updating"></a>Download / Updating After a Silkroad inspection a new release may be posted. Usually this is not necessary since the bot is capable of updating the database when the game updates. Otherwise, updates are released to fix bugs or add new features. Updates are generally downloaded by the bot on startup. * [Stable](https://forum.projecthax.com/t/latest-stable-release/25) * [Testing](https://forum.projecthax.com/t/latest-testing-release/24) #### What is the difference between stable and testing? Testing (beta) releases are put out whenever new features are added. Once the new features have been tested, they are merged back into stable once per week (after the iSRO/SilkroadR inspections). --- # <a name="setup"></a>Initial Setup ### <a name="os"></a>Supported Operating Systems * Windows XP SP3 (x86 only) * Windows Vista (x86/x86-64) to Windows 10 (x86/x86-64) * Arch, Ubuntu 16.04, Debian 9, and Fedora 22 * Any OS that supports Wine 1.9 or higher If you are still using Windows XP you really should upgrade as soon as possible. ### <a name="native-linux">[Native Linux](#) **Unforunately I've had to stop releasing the Linux version due to many library headaches and other issues. It may return one day. For now, Wine works just as well.** With release 15.3.7, a native Linux port was made available for download. This means you can use phBot without needing Wine. Wine will still be required for starting the game. The Manager has also been ported to Linux and works exactly the same as on Windows. Only a few distros will be supported because a more recent C++ lib is required as well as python 3.4. A 64-bit distro is also required because I will not be making 32-bit binaries available. * Arch * Ubuntu 16.04 * Debian 9 * Fedora 22 [Latest Native Linux Release](#) [Screenshot](https://i.imgur.com/j8dE7PF.png) ### <a name="wine"></a>Wine #### <a name="wine-linux"></a>Linux > I'd just like to interject for moment. What you're refering to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. > > Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called Linux, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project. > > There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called Linux distributions are really distributions of GNU/Linux! It **might** be possible to install the VC++ 2013 redistributable binary but if not I've included the required DLLs below. #### You now need to override the MSVCR libraries inside Wine. 1. `winecfg` 1. Libraries -> New override for library 1. Add `msvcr120.dll`, `msvcp120.dll`, and `vcomp120.dll` 1. OK You should now not see any errors related to `moneypunct` when opening the bot or manager. #### <a name="wine-ubuntu"></a>Ubuntu 1. Add the Wine PPA. [https://www.winehq.org/download/ubuntu](https://www.winehq.org/download/ubuntu) 2. Install Wine. [Click here (launches apt)](apt://winehq-devel) 3. Download the VC++ runtime libraries to your `phBot.exe` folder. * [msvcr120.dll](http://cdn.phbot.org/msvcr120.dll) * [msvcp120.dll](http://cdn.phbot.org/msvcp120.dll) * [vcomp120.dll](http://cdn.phbot.org/vcomp120.dll) 4. Start the bot. `wine phBot.exe` #### <a name="wine-debian"></a>Debian 1. Install Wine. `apt-get install wine-development` 2. Download the VC++ runtime libraries to your `phBot.exe` folder. * [msvcr120.dll](http://cdn.phbot.org/msvcr120.dll) * [msvcp120.dll](http://cdn.phbot.org/msvcp120.dll) * [vcomp120.dll](http://cdn.phbot.org/vcomp120.dll) 3. Start the bot. `wine phBot.exe` #### <a name="wine-arch"></a>Arch 1. Install Wine. `sudo pacman -S wine` 2. Download the VC++ runtime libraries to your `phBot.exe` folder. * [msvcr120.dll](http://cdn.phbot.org/msvcr120.dll) * [msvcp120.dll](http://cdn.phbot.org/msvcp120.dll) * [vcomp120.dll](http://cdn.phbot.org/vcomp120.dll) 3. Start the bot. `wine phBot.exe` #### <a name="wine-fedora"></a>Fedora 1. Install Wine. `sudo yum install wine` 2. Download the VC++ runtime libraries to your `phBot.exe` folder. * [msvcr120.dll](http://cdn.phbot.org/msvcr120.dll) * [msvcp120.dll](http://cdn.phbot.org/msvcp120.dll) * [vcomp120.dll](http://cdn.phbot.org/vcomp120.dll) 3. Start the bot. `wine phBot.exe` #### <a name="wine-mac"></a>Mac OS X 1. Download Wine Bottler * The stable release of Wine Bottler should work fine but if not use the development release. * [Wine Bottler](http://winebottler.kronenberg.org/) 2. Download the VC++ runtime libraries to your `phBot.exe` folder. * [msvcr120.dll](http://cdn.phbot.org/msvcr120.dll) * [msvcp120.dll](http://cdn.phbot.org/msvcp120.dll) * [vcomp120.dll](http://cdn.phbot.org/vcomp120.dll) 3. Double clicking `phBot.exe` should start the bot. ### <a name="inisettings"></a> phBot.ini Configurable Options #### Username ProjectHax login username. #### Password ProjectHax login password. #### UpdateSkip Skips a specific bot version. Once a new version is released you will be asked to update again. #### BindIP Binds outgoing Joymax connections to a specific IP address. #### white Disables the dark theme when set to `1`. #### iSRO_Gateway Sets the iSRO gateway server to use. It can also be set to `Random` to use a random server. #### SilkroadR_Gateway Sets the SilkroadR gateway server to use. It can also be set to `Random` to use a random server. #### X-Trap Sets the X-Trap server to use. Can be set to `server` to use ProjectHax or an IP address if you wish to run your own server on your own machine or in a virtual machine. #### SilkroadServer Sets the last clientless logged into Silkroad server name. #### Language Sets the bot language. The default is `en`. #### SwitchGatewayAttempts Sets the value for switching the gateway server after a certain number of failed login attempts. #### iSROPath iSRO game path. #### SilkroadRPath SilkroadR game path. #### cSRORPath Official cSRO SilkroadR game path. #### SocksIP SOCKS IP or hostname. #### SocksPort SOCKS port. #### SocksUser SOCKS username. Only used with SOCKS v5. #### SocksPass SOCKS password. Only used with SOCKS v5. #### SocksVersion SOCKS version. `4` or `5`. #### ReduceSilkroad Reduce Silkroad memory usage by periodically emptying the processes working set. #### Title Changes the phBot window title. The default is `phBot v%0 - %1 - %2`. #### Passcode Sets the default passcode for iSRO/SilkroadR for easier login. ### <a name="commandline"></a>Command Line Arguments Here is a list of arguments that phBot supports. The [Manager](#manager) can automate all of this for free if you do not wish to use batch files/shortcuts. ``` --username arg Silkroad username --password arg Silkroad password --server arg Silkroad server --character arg Silkroad character --passcode arg Silkroad secondary passcode --startbot Start bot on login --relogdc Relog if you disconnect --returntotown Use return scroll once you login --locale arg Silkroad locale (isro, silkroadr, csro-silkroadr, or private-server) --minimize Minimize the bot --disablemap Disable the Silkroad map --bindip arg Bind address --loginserver arg iSRO/SilkroadR login server (requires full IP) --proxyip arg SOCKS proxy IP --proxyport arg SOCKS proxy port --proxyuser arg SOCKS username --proxypass arg SOCKS password --disabletray Disables minimizing to the system tray --logsize arg Sets the maximum log file size for deleting (in bytes) --skipupdates Skip all automatic updates --update Update the bot with no user interaction --wine Specify if using Wine on *nix and automatic detection fails --client Starts the client --clientless Go clientless after getting in game (useful for certain vSRO servers) --hide Hide the bot on startup --hideclient Hide the client after it loads --privateserver arg Private server name --white Disables the dark theme --starttrace Starts tracing a player on login --tracename arg Trace player name --fontsize arg Font size --force-inject Force using phBot.dll --minidump Enables minidump crash files --silkroadr-channel arg iSRO/SilkroadR login channel (joymax or jcplanet) --profile arg Config profile name ``` --- ### <a name="loggingin"></a>Logging In At first launch you will be asked to login to the bot using your ProjectHax username and password. <img src="screenshots/projecthax.png"> Enter your login details and click "Login". You will now logged into the bot if you have time on your account. This information is saved in `phBot.ini` so you will not need to enter it again. ### <a name="resethwid"></a>Reset Hardware ID Each ProjectHax account has three hardware IDs. They automatically reset at 00:00 UTC every single day. If you change your hardware you may get a message in the bot saying that three hardware IDs have been used. To mitigate this issue, you may reset them once per day, manually. [Click here to reset hardware IDs](https://phbot.org/reset/hwid/) ### <a name="chooselocale"></a>Choose Locale Directly after logging in, a dialog will appear asking you to select your locale. Three options can be chosen. <img src="screenshots/chooselocale.png"> 1. International Silkroad 2. SilkroadR 3. cSRO SilkroadR (official) 4. Private Server * vSRO 1.188/1.193/1.274, thSRO, Black Rogue, and cSRO SilkroadR are all supported. Selecting "Private Server" will bring up another dialog asking for more information. You only need to do this if you plan on playing on a Silkroad private server. iSRO and SilkroadR are completely separate from this. <img src="screenshots/editprivateserver.png"> 1. List of private servers you have added 2. Name * This field allows you to give the private server a name that will show up in the bot. It does not affect anything else. 3. Division * Silkroad game division. Certain locales have multiple divisions but use the same Silkroad.exe launcher. 4. Hosts * A list of gateway servers. It will be automatically populated after selecting the game path. 5. Version * Game version 6. Servers * A list of Silkroad servers that show up after you launch the game. You will need to manually add them to the list. 7. Captcha * Some private servers have a static captcha character (or no character). This allows you to specify the captcha character to be sent automatically. 8. Path * Silkroad game path. Instead of selecting the path when you click "Launch Client", you must select it here so the server data can be saved for later use. 9. Type * This is the vSRO server type. vSRO is separated into several variants such as Black Rogue, thSRO, v1.193, and v1.274. Unfortunately, there isn't a good way to detect the server type automatically, so you must do this on your own. If you do not select the correct type you will have packet parsing errors when you get in game. * You do not need to select any options here for cSRO SilkroadR private servers. ### <a name="launchgame"></a>Launch Game Launching the client will start the Silkroad game and allow you to login as normal. 1. Start by clicking "Launch Client". <img src="screenshots/launchgame/launchgame_1.png"> 2. You will be asked to set the path for the game. This is so it knows how to start Silkroad. You will only need to do this once per game (iSRO/SilkroadR/private server). <img src="screenshots/launchgame/launchgame_2.png"> 3. Navigate to your Silkroad folder and click "Select Folder". <img src="screenshots/launchgame/launchgame_3.png"> 4. The game will now start and you can login as normal. ### <a name="clientlesslogin"></a>Clientless Login First, I should start by explaining what "clientless" actually is. Client-less means that the Silkroad game doesn't need to be running while you are using the bot. It uses less resources than the game so you can run more characters. phBot gives you the option to login either with the game or without it. For client login see [Launch Game](#launchgame). You will need to have the game installed so the bot can generate a database containing data from the games `Media.pk2` and `Data.pk2` files. After that, you may copy the `iSRO.db3` and `SilkroadR.db3` files to a VPS and launch the bot. If the game updates, you'll need to copy the newly generated databases to the VPS. <img src="screenshots/silkroadlogin.png"> 1. Username * This is the username you use to login to the game. 2. Password * This is the password you use to login to the game. 3. Server * Silkroad server name. 4. Gateway Server * The Silkroad server you are playing on may have multiple IP addresses. This box can be used to select a gateway server that has less traffic or if one goes down to choose another working one. 5. MOTP * iSRO has an optional Mobile One Time Pin (MOTP). Unfortunately, they do not use a standard OTP app like Google Authenticator or Authy so it's useless and should not be used. Joymax has sinced removed the MOTP option so this field no longer exists. 6. SOCKS IP/Port * SOCKS is a proxy protocol. If you have a SOCKS proxy server you can have the bot use it to login to the game. This can be used to bypass IP limits on private servers. * Only SOCKS v5 is supported. 7. SOCKS Username 8. SOCKS Password 9. Reduce Memory * This feature allows you to lower the memory usage of Silkroad. Do NOT enable it unless you know what you are doing! It can cause performance issues and possibly crash the game. 10. Return to town on login * Use a return scroll after loading into the game 11. Start bot on login * Start botting on login. This should be used with the "Relog on disconnect" feature 12. Relog on disconnect * If you disconnect from the game server, reconnect. 13. Login * After you enter your Silkroad login details, click this button to start logging into Silkroad without using the client. 14. Server Capacity * Once you connect to the gateway server this will be populated with a list of servers and their capacities. * For iSRO/SilkroadR the server capacity is a percentage which means the max value of "3500" is just a guess. "3500" is what the max capacity was before they switched to a percentage value. ### <a name="goclient"></a>Go Client / Go Clientless <img src="screenshots/goclientless.png"> <img src="screenshots/goclient.png"> Depending on what state the game is in, you will either see "Go Client" or "Go Clientless". If the game is not running or has crashed you will see "Go Client" otherwise the button will show "Go Clientless". If it is greyed out then you have not logged into Silkroad yet. #### Go Clientless * After clicking this, the game client will be terminated. * You will still be in game until you close the bot. #### Go Client <img src="screenshots/goclient_options.png"> * Clicking this button will allow you to start the client without needing to exit or restart the bot. * `Return/Teleport` will use a return scroll or a nearby teleporter after starting the game. This is required because the client has to sync up at a teleport. * `Reconnect` will disconnect, start the game, and log you back in at the position you left off at in the game. --- # <a name="autoconfigure"></a>Auto Configure The "Auto Configure" tab allows you to easily get your character up and running by configuring most bot settings with sane defaults. It may add conflicting attack skills so please verify that it added the correct ones. You will still need to configure the "Training Area", "Town", and "Pick Filter" settings. <img src="screenshots/autoconfigure.png"> How it works should be self explanatory. For Chinese characters: select your build from the list and your weapon. For European characters: select your primary and secondary weapon types. Skills will be added based on what options you select. ### <a name="profiles"></a>Profiles Profiles allow you to create multiple configurations for a character. 1. Profile * Allows you to select a profile. 2. New * Creates a new profile for the current character. 3. Rename * Renames the currently selected profile. 4. Delete * Deletes the current profile. --- # <a name="protection"></a>Protection The "Protection" tab contains your auto potion settings, return options, and monster attack preferences. ### <a name="potions"></a>Potions To enable the potion type, check the box. Potions are used when your HP/MP stats drop below a percentage that you have set. <img src="screenshots/protection_potions.png"> ### <a name="return"></a>Return The "Return" tab sets the options for returning to town. <img src="screenshots/protection_return.png"> 1. Potions / Inventory * Return options for potions / inventory items. 2. Time * Time based return. This is used for returning for events. 3. Training * Training area return. 4. HP potions <= X * Return to town when you have less than a certain amount of HP potions. 5. <= 5 MP potions left * Return when you have <= 5 MP potions in your inventory. 6. Out of universal pills * Return when you have no more Universal Pills in your inventory. 7. Out of vigors * Return when you are out of Vigor potions. 8. Out of arrows/bolts * Return when you have no more arrows or bolts in your inventory. * The bot will count arrows for Chinese characters and Bolts for European characters if you have a Bow / Crossbow. 9. Out of speed scrolls * Return when you are out of movement speed scrolls. 10. Inventory is full * This option will return when you have 2 free slots empty. * It should be enabled so you always have room to pick up item drops and can also still switch weapons. 11. Durability < 4 * Returns when an equipped items' durability is less than 4. 12. Return X minutes before the next hour * This option can be used to return for certain in game events. 13. Return every X minutes * This option can be used for Bards or Clerics that rarely return to town. 14. Return at ... every day * This option can be used to get the Genie Lamp quest every day. 15. Styria * Return for Styria. * You must have the `styria` command in your script for it to register. The `styria` command is specifically tuned for iSRO/SilkroadR and will not work on private servers that have it at a different time. You can still register for Styria through the map tab though. 16. Dead * Return to town when dead. 17. Not resurrected within X minute(s) * Waits for someone to resurrect you and then returns to town. 18. Return immediately if dead outside of the training area * Instead of waiting, it will return immediately if you aren't inside the training area. 19. Use resurrection scroll * Uses a resurrection scroll, if you have one, instead of returning to town. 20. Not attacked within X minute(s) * Return to town if you are not attacked by a monster within a specified amount of time. 21. Unique spawns near you * Return when a unique spawns near you. 22. Job transport dies * Use a return scroll when the job transport dies. * This is useful when doing job quests that require a transport. ### <a name="monster"></a>Monster The "Monster" tab allows you to set preferences for monster types and berserk options. <img src="screenshots/protection_monster.png"> #### meh * "meh" is the same as "no preference". #### Ignore * Ignores the monster type completely. If the monster attacks you, the bot will not attack it. It will be completely ignored. #### Avoid * Avoids the monster type. It will only not select the monster. It will also not avoid monsters near the type you are avoiding. If the monster type attacks you, the bot will attack back. #### Prefer * Selects this monster type first unless there is another monster attacking you. #### Berserk These options control berserk for when the bot attacks a specific monster type, more than a certain number of monsters are attacking you, or while executing the script. ### <a name="monsterpreferences"></a>Monster Preferences "Monster Preferences" allow you to set the same preferences as above but for a specific monster name. <img src="screenshots/protection_monster_preferences.png"> 1. Search box * Enter in a monster name and the bot will look for it. 2. Search button * After entering the monster name you can either hit enter or click this button to search for the monster. 3. Clear button * Clears the window to free up some memory. 4. Reset button * Resets all monster preference settings. 5. Monsters * Displays a list of monsters based on the name you searched for. After searching, right click on the monster to bring up a menu for selecting the preference. ### <a name="notifications"></a>Notifications "Notifcations" appear down by the tray icon when phBot is minimized. <img src="screenshots/protection_notifications.png"> 1. Drop * Display a notification when you pick up an item drop. 2. Select character * Display a notification when your character has been selected and you logged into the game. * This is only useful when there is a lot of server traffic. 3. Character died * Display a notification when your character dies 4. Level up * Display a notification when your character levels up 5. Disconnect * Display a notification if you disconnect from the server ### <a name="scrolls"></a>Scrolls The scrolls tab will allow you to select which scrolls should be automatically used by the bot. Scrolls are used while not botting, botting, and tracing. <img src="screenshots/scrolls.png"> ### <a name="misc"></a>Misc. Additional miscellaneous options. <img src="screenshots/protection_misc.png"> 1. Auto accept res from other players * In order for the bot to accept a revive you must enable this option. 2. Only accept res from party members * Do not accept revive requests from non-party members. 3. Stop bot when you die > X * Completely stop botting if you die more than a specified amount of times. 4. Stop if you die by a Statue of Justice * Joymax placed Statue's of Justice outside towns to kill botters but they removed them shortly after. This option is not necessary anymore. 5. Use speed drugs * Use movement speed drugs 6. Only use speed drugs in the script * This option can be used if you have a Bard in your party casting a speed buff. It can save some gold. 7. Stop bot on grey bar (SilkroadR) * SilkroadR has a bar in the game that only allows you to gain EXP for a certain amount of time. After which, the bar turns grey and you do not gain anymore EXP. 8. Remove berserk from the game * Sometimes iSRO/SilkroadR will crash when someone uses berserk. This will disable the berserk animation and prevent the game from crashing. * This bug may have been fixed but there isn't really a way to know. 9. Remove invisible from the game * Allows you to see invisible players in the game. * iSRO/SilkroadR no longer send movement packets for invisible players so this option is useless there. However, on vSRO private servers it should still work fine. 10. Re-spawn the job transport if it dies * If the job transport dies, respawn it. * There is also an option to return when the job transport dies (on the Return tab). 11. Sell excess potions * If you pick up more than the amount of potions set on the Town tab, the excess can be sold to an NPC. 12. Disconnect if a GM spawns * If the bot detects a GM in game, it has the ability to disconnect. 13. Disconnect if a player attacks you while botting. 14. Automatically add stat points * The bot has the ability to add stat points on level up when you are botting. This can be used in conjunction with training area conditions and auto mastery to automate certain tasks. --- ## <a name="town"></a>Town The "Town" tab allows you to setup item buying on loop. <img src="screenshots/town.png"> 1. This is the area where town items will appear. 2. Search box * Type the item name you are looking to buy and press enter. 3. Search button * After typing the item name you can either press enter or click this button to search for items. 4. Clear button * Clears the window and frees up some memory. 5. Refresh button * Shows you all NPC items that can be purchased. 6. Reset button * Resets all of your town buy settings. 7. Enables buying the item. * After you have found the item you would like to edit, double click on the "Quantity" area to change the quantity and then mark the box next to the icon to enable it. This way is much better than having a bunch of combo boxes because you can set it to buy any item in any supported NPC. * The free low level potions will be sold automatically so they can be re-bought to get a full stack. --- ## <a name="trainingarea"></a>Training Area ### <a name="trainingarea"></a>Script #### <a name="trainingarea_add"></a>Add Training Area Adding a new training area is relatively simple. This method does not require a script because it uses path finding. 1. Right click on the Training Area list. 2. Click "Add". 3. Give it a name. <img src="screenshots/add_training_area.png"> 4. You will now see it appear in the list. <img src="screenshots/new_training_area.png"> 5. Click "Get Position" to get your characters current coordinates. <img src="screenshots/training_area_menu.png"> * To edit the "Radius" or "Pick Radius", simply double click on the values. * For more options right click on your training area. #### <a name="trainingarea_script"></a>Create Walk Script A script is essentially a path that the bot will follow after completing the town loop. Scripts are very simple to create and are required for caves and quest turn in. Make sure your first click is in the town spawn area otherwise bad things will happen! 1. Click "Create". This will bring up a new dialog that will allow you to record a script as well as add custom commands to it. <img src="screenshots/training_area_create.png"> 2. Click "Record". This will begin logging your characters movements as well as add "wait" commands after a teleport. <img src="screenshots/script_recorder.png"> 3. When you have finished recording your script, click "Stop" and "Save As". 4. Save your script and close the "Script Creator". 5. Right click on your training area and click "Change Script". 6. Choose the script you just created and you are done. ### <a name="conditions"></a>Conditions Training Area Conditions allow you to change the current Training Area to another when your character reaches a specific level that you set. This tab is easy to understand by following the dialogs that show up when you right click in the list and go to "Add". ### <a name="settings"></a>Settings <img src="screenshots/training_area_settings.png"> 1. Don't walk around * By default the bot will randomly walk around in your training area. This option will disable that. 2. Ride fellow pet to training area * Ride the fellow pet to the training area 3. Continue town scripts * If you disconnect halfway through your town script the bot can continue it by enabling this option. 4. Return when can't continue script. * Use a return scroll when it cannot continue the script. This is also related to disconnecting halfway through the script. 5. Avoid Statue of Justice in script * As I said earlier in the guide, Joymax used to have Statue's of Justice monsters right outside town that would instantly kill anyone (botters) that ran into them. This option uses A* to go around them. 6. Summon flowers in the training area * Flowers are buff monsters that can be summoned. 7. Script walk delay * If there is a lot of lag in game this option can be useful to prevent the bot from continuing from one coordinate to the next too quickly. 8. Go back a coordinate if stuck after X * Sometimes there is lag in game that causes your character to go back a few steps which can cause it to get stuck on objects. This option will go back a coordinate if the character has not moved within a certain amount of time. 9. Return if stuck in script after X * Again, there is sometimes lag so this option will use a return scroll if the character has not moved within a certain amount of time. 10. Use a repair hammer * Instead of returning on durability, the bot can use a repair hammer if you have one. 11. Use monster summon scrolls &amp; Pandora's Box in the training area * Uses monster summon scrolls in the training area 12. Wait for all strong monsters to be killed before summoning another * To prevent your character or party from dying, the bot can wait for the strong monsters that spawn from summon scrolls to die before using another scroll. 13. Use berserker regeneration potions * If your berserk is not full, the bot can use a berserker regen potion to regenerate your berserk. 14. Use Energy of Life potions * Energy of Life potions extend berserk or can completely regenerate your berserk just like a berserker regeneration potion except they can be purchased in an NPC. ### <a name="scriptcommands"></a>Script Commands All commands are case sensitive and the parameters must be separated by commas. --- ### walk This command causes the bot to make the character walk to a set of coordinates. ** Parameters ** * `region` (optional) * Caves use a different coordinate system which is what this first parameter is for. It is not required anywhere but caves. * `x` * In game X coordinate. * `y` * In game Y coordinate. * `z` * In game Z coordinate. This value can be set to 0 and it will not affect anything. ** Example ** * `walk,6400,800,0` (outside cave) * `walk,32775,-23232,-302,-76` (in cave) ### teleport This command uses an in game teleporter. ** Parameters ** * `source name` * Source NPC name or region name. * `destination name` * Destination NPC name or region name. ** Example ** * `teleport,Jangan,Donwhang` * `teleport,Ferry Ticket Seller Doji,Ferry Ticket Seller Tayun` ### wait Waits a specified amount of time in milliseconds. 1 second = 1000 milliseconds. ** Parameters ** * `time` * Amount of time to wait in milliseconds ** Example ** `wait,5000` ### cast Casts a skill. ** Parameters ** * `skill name` * Name of the skill to cast. It will first look for the exact name of the skill and then do a search looking for any skill that has the text in its name if it was not found. ** Example ** `cast,Invisible` ### DoBlacksmith, DoHerbalist, DoStable, DoStorage, DoGuildStorage, DoGroceryTrader, DoJupiter Enters the specified NPC to buy/sell items or store them depending on the NPC. `DoJupiter` is for only inside the Jupiter Temple. The Jupiter NPC is a combination of a Blacksmith and Herbalist. ### DoStorageTake, DoGuildStorageTake Takes an item from storage/guild storage. This command will not do anything more than take items from the NPC. ### DoStorageStore, DoGuildStorageStore Stores an item in storage/guild storage. This command will not do anything more than store items in the NPC. ### DoConsignment Enters the Consignment NPC to add items that are configured to be sold on the [Stall](#stall) tab. ### DoStall Creates a stall if you have items to stall. ### DoScript Executes the walk script. This command can only be used in town scripts. ### mount Mounts the fellow/transport if you have one. If no arguments are supplied, it will mount the fellow pet. ** Arguments ** * `type` * `fellow` or `transport` ** Example ** * `mount,fellow` * `mount,transport` ### killhorse Terminates the transport/horse. This will completely destroy the horse and drop items if it is a trade transport. See below for `dismount`. ** Example ** `killhorse` ### terminate Terminates a pet. If no arguments are supplied, it will terminate all. ** Arguments ** * `type` * `horse` or `transport` ** Example ** * `terminate,horse` * `terminate,transport` ### dismount Dismounts the fellow/transport/horse. This is different from `killhorse` and `terminate` because it will get off the transport instead of killing it. For horses it will still terminate them. ### quest Accepts/gets the reward for a quest. Event quests from So-Ok are supported as well. Only repeatable quests are currently supported. ** Parameters ** * `npc` * The name of the NPC that has the quest. * `quest name` * The name of the quest in the NPC. * `trade type` (optional) * This last parameter is used for the new iSRO/SilkroadR job quests that require you to collect job items using a transport. The parameters for this are `safe` or `danger`. ** Example ** * `quest,Lost Soldier Chrom,Twisted (Unlimited Repeats)` (normal repeatable quest) * `quest,Smuggler Chao,Collecting Trade Goods - Wild Ginseng! (Lvl 1-9),safe` (job quest) ** Job Cave Guide ** 1. Make a normal walk script that goes from the town spawn to the cave quest NPC. 1. Add all of the quests for that NPC to your walk script. 1. Continue to your training area. 1. Save the script like you normally would. 1. Create another script that goes from your training area back to the quest NPC. 1. Add the same quests again to this script. 1. Save it and do **not** walk back to your training area! The bot will execute the script in reverse after the script finishes. 1. Go to the quest tab in the bot and enable those quests and set the script. ### use Uses an item. Return scrolls are currently the only supported item. ** Parameters ** * `name` * Item name. ** Example ** `use,returnscroll` ### begintargettrading Begins target trading with the new Hunter/Thief trade NPCs that exist on iSRO and SilkroadR. This should be accompanied by the `settletargettrading` command after the target trade has completed. ** Example ** `begintargettrading` ### settletargettrading Settles the target trade. ** Example ** `settletargettrading` ### styria Registers for Styria when it is time. You must also have it set to return for Styria under the [Protection](#return) tab. The time is configured for iSRO and SilkroadR. If you wish to register for Styria on a private server, you may do so by using the [Map](#map) tab. ** Example ** `styria` ### oldtrade Buys, sells, and spawns a transport for the old job trade system on vSRO locales. For this to work, you must: 1. Create a script that goes from town spawn 2. To the Specialty Trader 3. Add `oldtrade,spawn` 4. Add `oldtrade,buy,1` 5. To another towns Specialty Trader 6. Add `oldtrade,sell` 7. Add `killhorse` to terminate the transport 8. Finally, `use,returnscroll` or teleport back to the original starting town You may need to add a walk delay depending on the transport. ** Paramters ** * `buy` * Buys items at the Specialty Trader * `star` or `quantity` * Trade star count, 0 -> 5. A value of `0` will fill up the entire transport with items. A value greater than `5` will buy exactly that number of trade items. * `Item name` (optional) * Optional trade goods item name to buy * `sell` * Sells items at the Specialty trader * `spawn` * Spawns a trade transport * `Item name` (optional) * Optional item scroll name to summon ** Example ** * `oldtrade,spawn` * `oldtrade,buy,1` * `oldtrade,sell` * `oldtrade,spawn,Ironclad trade Horse` * `oldtrade,buy,1,Horseshoe` * `oldtrade,buy,250,Horsehoe` * `oldtrade,buy,0` ### stop Stops the bot. This can be useful when you want to trade between towns and have the bot stop when it finishes. ** Example ** `stop` ### disconnect Disconnects from the server. This can be useful on certain private servers that have a trade ranking system that updates on reconnect. ** Example ** `disconnect` ### recall Recalls the pick pet. Can be useful in lure scripts. ** Example ** `recall` ### profile Loads a profile by name if it is not currently loaded. ** Parameters ** * `name` * Name of the profile (can be `Default` or empty to load the default profile) ** Example ** `profile,test` --- ## <a name="attack"></a>Attack The "Attack" tab is your attack and buffs configuration. This is where you configure what skills to kill monsters with. ### Attack <img src="screenshots/attack.png"> 1. Skill list * Here you'll find a list of all your characters skills. Imbue and passive skills will not be listed. 2. Add/Remove buttons * These two buttons allow you to add or remove skills from the attack list. 3. Type * This dropdown combo box contains a list of monster types. It allows you to add specific skills to specific monster types. 4. Attack list * List of attack skills you have added. 5. Imbue * Imbue skill. Only Chinese and European Rogue characters will be able to use this. 6. Up/Down buttons * These two buttons allow you to move skills up and down in the attack list. 7. Cast skills in order * Resets the skill use index when selecting a new monster. This allows for skills to be cast in order instead of what skill it left off at on the previous monster. 8. Kill steal monsters * Attack monsters that other players are attacking. 9. Don't attack monsters * Certain characters such as Clerics/Bards that only buff should not attack monsters and that is what this option is for. 10. Protect party members * When another party member is attacked by a monster, switch to that monster and attack it instead of selecting the closest one. 11. Attack lower monsters first * When a lower monster "type" attacks you, kill it before attacking the higher monster. eg. attacking party monster, normal monster attacks you, switch monsters to the normal one and kill it, then switch back to the party monster. 12. Switch monster after two DOT * For Warlock characters. Cast two DOT on a monster and then switch. 13. Use lower skills if skills for a specific monster type do not exist * The default for when you have no skill configured for a monster is to go back down to "General". This option will go down from: "Giant" -> "Champion" instead of "Giant" -> "General" if you have no skills configured for Giant monsters but do for "Champion". 14. Auto select nearby uniques (must not be botting) * When not botting the bot can keep uniques selected so you only attack the unique and not the monsters that it spawns. ### <a name="buffs"></a>Buffs <img src="screenshots/buffs.png"> 1. Buff while attacking monsters * When a buff ends, recast it even if it is attacking a monster. 2. Use Devil's Spirit / Angel's Spirit * Devil's Spirit is a mall item that increases movement speed and increases attack power. It can be used by the bot while botting. 3. Cast Mirror Reflect * Mirror Reflect is a weapon skill on D12 and up weapons. It has a chance to reflect damange done to you back at a monster/player. It is mostly useless on monsters. 4. Cast socket buffs * Sockets can be added to weapons that give you temporary buffs that last for a few seconds at a time. 5. Only cast socket buffs when it's an emergency * Socket buffs can be configured to only be used when it's an emergency. 6. Emergency buff HP < X * Emergency buffs will be cast when HP is less than the set amount. 7. Emergency buff MP < X * Emergency buffs will be cast when MP is less than the set amount. ### <a name="second_buffs"></a>Secondary Weapon Buffs This buff list is for buffs that require a second weapon or shield not related to your attack weapon. Do not put attack weapon buffs here! For Chinese characters that need to switch to a shield for "Fire Shield" should place that skill here. <img src="screenshots/second_buffs.png"> 1. Recast all secondary buffs when one buff ends * Some buffs end very close together and may require multiple weapon switches. This allows you to recast all secondary weapon buffs when one buff ends. ### <a name="partybuffs"></a>Party Buffs Party buffs are buffs that go on another player in your party (or possibly outside the party). Please be sure to not have multiple characters of the same class buff the same player with the same buff. <img src="screenshots/party_buffs.png"> 1. Party Buffs list * A list of all available party buffs. * To add a player: select the buff name, select the player name from the right side, click on the arrow button pointing to the left. 2. Add/Remove buttons * Adds or removes a player from a particular party buff. 3. Player list * Party members will appear in this list. 4. Party buffing radius * How far to let the bot walk to buff another party member. 5. Walk back to the center after buffing * After casting a party buff, walk back to the center of the training area. ### <a name="resurrect"></a>Resurrect The "Resurrect" tab allows you to configure which players should be revived. * For reviving to work correctly you must add the resurrect skill to one of your buff lists depending on which list is for Force or Cleric. * Group resurrect skills are used first if there is more than one person dead in the party. <img src="screenshots/resurrect.png"> 1. Resurrect list * The current players in the list to be revived. 2. Add/Remove buttons * Adds or removes a player from the revive list. 3. Players near you * A list of players that are nearby. 4. Resurrect radius * The max distance the bot should travel to revive someone. If the player is not visible, the bot will not be able to walk to them to revive them. 5. Resurrect delay * How often to cast a resurrect skill when someone is dead. 6. Resurrect all party members * Instead of adding each party member to the revive list you can simply enable this and it will automatically revive dead party members while botting. ### <a name="lure"></a>Lure This tab allows you to configure a character to walk out to attract more monsters to the training area. This is only useful for characters in a party and only one character needs to lure. There are two methods for luring: 1. Have the character randomly walk out X number of spaces and cast "Howling Shout". 2. Follow a walk script and add the "Howling Shout" skill to the script so it casts it at the perfect position in game. <img src="screenshots/lure.png"> 1. Walk X spaces then back to the center * This is the first option for luring monsters. It will walk out however many spaces you set, wait, and walk back. 2. Cast skill * Casts a skill you specify (preferably `Howling Shout`) 3. Stop luring if more than X party members are dead * See below for more. 4. Stop luring if more than X party giants are in the training area * See below for more. 5. Stop luring if there are more than X monsters in the training area * See below for more. 6. X ms delay at the edges * Waits a certain amount of milliseconds outside of the training area (not the center). 7. X ms delay at the center * Waits a certain amount of milliseconds in the training area center. 8. Script * Instead of walking randomly, you can record a walk path and set it up to cast "Howling Shout" at the perfect position. 9. Stop luring if party members are not near the training area * This option will stop luring when party members are in town so the remaining characters do not die. When the character is not luring, it is possible to have it attack monsters in the training area. If you do not wish for this to happen, you should enable the "Don't attack monsters" option on the "Attack" tab. ### <a name="attacklog"></a>Attack Log The "Attack Log" is a list of every player that has attacked you or killed you. This can be useful when in the "Job Cave" area or if someone PK's you. --- ## <a name="pet"></a>Pet For this tab, I will only go over the "Attack Pet" settings because the other two tabs ("Transport" and "Pick") only show you information and have no configurable options. <img src="screenshots/pet.png"> 1. Use attack pet * Enables the attack pet. This must be selected for the bot to summon the attack pet and also use HGP (feed) potions. 2. Auto summon attack pet * Summons the attack pet after it is revived. 3. Auto revive attack pet * Revives the attack pet up to a specific number of times. Setting the value to "0" means infinite. 4. Return to town when the attack pet dies. * Returns when the attack pet dies. This can be used to buy more revive items for the attack pet. 5. Don't attack monsters * Enables passive mode for the pet. 6. Only if there aren't any revive items * Only returns to town when there aren't any revive items for the attack pet. ## <a name="party"></a>Party The main party tab gives you a list of all the members currently in your party. There are more options when you right click on a party member. <img src="screenshots/party.png"> ### <a name="party_accept_invite"></a>Accept / Invite <img src="screenshots/party_options.png"> The radio buttons near the top for accepting / inviting do not enable it. You must tick the check boxes below it for accepting / inviting. 1. Accept all party invites * Does not use the list and accepts all join invitations. 2. Accept party invites from list * Uses the Accept / Invite list and only accepts from players in the list. 3. Invite all players * Does not use the list and invites all nearby players to the party. 4. Invite only from the list * Uses the Accept / Invite list and only invites players from the list. 5. Leave if leader is not in the list * Leaves the party when the party master is not in the "Party Leader List". 6. Leave if leader is in the training area * Leaves the party when the party master is not in the "Party Leader List" but is also in the training area. * This can be used to keep the party together if the party master has gone offline. They will leave when the master returns. 7. Only accept invites at the training area * Do not accept party invitations from anyone unless you are in the training area. 8. Accept party invites from other players * Enables accepting party join invitations. 9. Invite other players to the party * Enables inviting other players. 10. Allow other party members to invite players * This is an in game feature that can disallow other players in the party from inviting. * It is recommended to keep this feature enabled. 11. Party type * The type is exactly the same as in the game. 12. Party Leader List * Controls if the bot should leave the party when the party master is not found in this list. Leave the list empty if you do not want the bot to leave a party. 13. Accept / Invite List * List of player names to invite to a party or accept party invitations from. ### <a name="partymatching"></a>Matching <img src="screenshots/party_matching.png"> 1. Title * Party matching title for auto form party. 2. Level * Party matching level range for auto form party. 3. View Party Matching * Shows a list of the current parties in the matching system. <img src="screenshots/party_matching_list.png"> 4. Join party # * Allows you to join a party via its party matching number. 5. Auto form party matching * Automatically add the party to the party matching system. The party will be auto reformed every 10. ### <a name="taxi"></a>Taxi Party taxi timer allows you to collect gold from players in your party. It will automatically send private messages to them asking for payment when their time is up and can also kick them if they do not pay. <img src="screenshots/party_taxi.png"> 1. Cost per hour * The amount of gold you wish to charge for the taxi. * Players can pay in multiples of this and time will be added accordingly. 2. Kick players from party when time is up * Kick the player when they fail to pay after their time has expired. 3. Add party matching joins to taxi * Automatically add new players to the taxi when they join through party matching 4. Blacklist after X kicks * If a player has been kicked X number of times, do not accept them to the party anymore. 5. Blacklist * List of players that are not allowed to join the taxi. 6. Taxi list * List of players currently in the taxi and their remaining time. * You can right click on their name and add more time. ## <a name="unionparty"></a>Union Party Union Party is something that was added a few years ago to Silkroad. It allows you to combine up to 3 additional parties to your current party. This can be useful for Fortress War and gaining more EXP if there are tons of monsters in a particular area. Otherwise you should use the normal party system with 8 players total. It requires a Union Party scroll that can be obtained from the Guild Storage NPCs. <img src="screenshots/union_party.png"> 1. Union Party #1 * Lists all players in the first union party 2. Union Party #2 * Lists all players in the second union party 3. Union Party #3 * Lists all players in the third union party 4. Accept union party invites * Automatically accepts union party invites based on the accept list. 5. Invite players to the union party * Automatically invites other players to a union party based on the invite list. 6. Union Party Type * The types are exactly the same as in the game. 7. Invite list 8. Accept list ## <a name="pickfilter"></a>Pick Filter The "Pick Filter" tab or "item filter" allows you to pick, sell, store, store guild all items in the game. It can be configured to use the character to pick items or the pick pet if you have one. <img src="screenshots/pickfilter.png"> 1. Item list * After searching or choosing a category you will see a list of items appear here. Right click on a group of items to set what you would like to do with the item. * For "Gold" you will need to set it to pick up all three that you see in the list. 2. Categories * The two combo boxes are used to locate specific item types so they can be more easily set instead of searching for item names. 3. Search box * Enter an item name to search for and press enter. 4. Search button * Enter an item name in the search box and press enter or click this button. 5. Clear button * Clears the window to free up some memory. 6. Update button * Pressing this button will update the items in your pick filter. Your settings will be saved. 7. Reset button * Resets your entire pick filter configuration. Do not click this unless you really need to. 8. Pick items first * If multiple monsters are attacking you and an item drops, pick it up before killing the other monsters. 9. Use pick pet * Use a pick pet to pick up items intead of the character. 10. Pick other player's items * If another players item drops and it becomes available for everyone to pick up, allow the bot to pick it up. 11. Pick party items * If an item drops for a party member, pick up the item. * This can be useful for parties with auto share items or having one player in the party pick up items. 12. Don' pick items * Don't pick up any items regardless of what is configured in the pick filter. 13. Pick Arrows/Bolts * Pick up a specified amount of arrows/bolts * The bot will determine which kind to pick up based on your character race. ### <a name="storegold"></a>Store Gold <img src="screenshots/storegold.png"> 1. Gold keep amount * The amount of gold to keep in your inventory 2. Take gold from storage * If you ever go below the "Gold keep amount", take gold from storage 3. Take gold from guild storage * If you ever go below the "Gold keep amount", take gold from guild storage 4. Store gold in storage (maximum amount, 0 = no limit) * The maximum amount of gold to have in storage. "0" for no limit. 5. Store gold in guild storage (maximum amount, 0 = no limit) * The maximum amount of gold to have in guild storage. "0" for no limit. ## <a name="quest"></a>Quest ### Active Here you will find a list of every quest that is currently active on your character. You can abandon the quest or configure the auto quest turn in options. <img src="screenshots/quest_1.png"> ### All On the `All` tab you will find a list of every quest in the game. This allows you to configure quests that are not active on your character. <img src="screenshots/quest_2.png"> 1. List of quests * Right click on a quest to enable it, use a return scroll when completed, or execute a script when completed. * You should execute a script for job quests and use a return scroll for non job quest related NPCs that are in town. 2. Search box * Enter a quest name and press enter to search for it. 3. Search button * Enter a quest name into the search box and press enter or click the search button to search for it. 4. Clear button * Clears the window to free up some memory 5. Update button * Updates the quests. Your configuration will not be changed. 6. Reset button * Resets your quest configuration. Do not press this button unless you absolutely need to. ### <a name="questscript"></a>Quest Script This guide is for how you initially accept the quest. 1. Create a script that goes from town spawn to the quest NPC. 2. Add the `quest` command to the script. 3. If needed, add the `cast` command for "Merchant Pipe" (depends on the quest). 4. Walk to your training area. 5. If needed, add the `dismount` command. 6. Save the script and load it on the "Training Area" tab. ### <a name="questreturnscript"></a>Quest Return Script This guide is for how you turn in the quest after it is completed. 1. Create a walk path that goes from your training area to the quest NPC. 2. Add the `quest` command to your script. 3. Set the script on the "Quest" tab and enable it. The bot will execute this script in reverse after it finishes it, so there is no need to make it return to the training area. ## <a name="players"></a>Players The "Players" tab shows you a list of all players near you. It also has options for tracing other players in game. <img src="screenshots/players.png"> 1. Player list with all their items * This window shows you every player nearby and the gear they are wearing. 2. Refresh button * Refreshes the player window. 3. Clear button * Clears the player window to free some memory. 4. Party Invite * Invites a selected player to a party. 5. Academy Invite * Invites a selected player to the academy. 6. Guild Invite * Invites a selected player to your guild. 7. Union Party Invite * Invites a selected player to a union party. 8. Player to trace * The name of the player to trace. 9. Refresh button * Refreshes the list of players around you. 10. Start tracing * Starts tracing the chosen player. 11. Stop tracing * Stops tracing the chosen player. 12. Attack monsters * Attacks monsters while you are tracing the player * This can be very useful for clearing out instances. 13. Buffs * Cast buffs while tracing. 14. Secondary buffs * Casts secondary weapon buffs while tracing. 15. Party buffs * Cast party buffs while tracing. 16. Pick items * Pick up items while tracing. ## <a name="guild"></a>Guild <img src="screenshots/guild.png"> 1. Shows a list of all guild members 2. Show guild invites * Shows incoming guild invites in the bot. 3. Auto invite other players to the guild with level > X * Invites other players near you to your guild if their estimated level is above what is specified. * Player levels are not exact and are estimated based on the items they wear. 4. Accept all guild invites * Accepts all incoming guild invites. 5. Notice View button * Shows the current guild notice. ## <a name="academy"></a>Academy The "Academy" tab allows you to completely manage your academy. <img src="screenshots/academy.png"> 1. Shows a list of all players in the academy 2. Notice View button * Displays the current academy notice. ### <a name="academyoptions"></a>Options <img src="screenshots/academy_options.png"> 1. Accept all academy invites * Accept all incoming academy join invitations 2. Accept academy invites from the list * Only accept academy invites if they come from a player that is in the "Accept / Invite" list. 3. Invite all players * Invite all players near you to the academy. 4. Invite only from the list * Invite only the players in the "Accept / Invite" list. 5. Show academy invites * Show a dialog with the academy invite details in the bot. 6. Accept join invitations * Enables accepting join invitations. 7. Invite players to the academy * Enables inviting other players to the academy. 8. Auto graduate from the academy * Auto graduates your character from the academy when you are level 40 and above as an apprentice, or level 60 and above as an assistant. 9. Accept / Invite List * The list the bot will use for accepting academy invites and sending out academy invites. ### <a name="academymatching"></a>Matching <img src="screenshots/academy_matching.png"> 1. Title * The title to use when forming the academy matching. 2. View Matching * View the academies in the matching system. <img src="screenshots/academy_matching_list.png"> 3. Join academy # * Join an academy by its academy matching number. 4. Auto form academy matching * Automatically forms the academy. It will reform every 10 minutes. ## <a name="inventory"></a>Inventory The "Inventory" tab allows you to see every single item in your inventory in great detail. It shows the item icons if your Silkroad path is set correctly and the white/blue stats. There are more options for exchanging job tickets and inflating event balloons. <img src="screenshots/inventory.png"> ### <a name="goriitemexchange"></a>Gori Item Exchange On iSRO and SilkroadR, the Magic POP Guide Gori NPC can exchange equippable items such as weapons or armor for one with random white/blue stats. This tab automates that process by stopping when a white stat you want is acheived. <img src="screenshots/goriexchange.png"> ## <a name="stall"></a>Stall Stalling allows you to sell items to other players in the game. phBot makes it super easy to do this automatically. * The stall tab will show you the current items in your stall and the prices they are set at. * To change the item you can right click on the slot and select what you would like to do. * When an item is sold it will appear in the log. <img src="screenshots/stall.png"> * The "Inventory" tab shows you every item in your inventory. Items are de-duplicated and the prices are saved in your config file, so if you reconnect the prices will still be the same. * To enable automatic stalling on relog you must enable "start bot on login" on the "Silkroad Login" tab. Automatic stalling is done before town loop. <img src="screenshots/stall_inventory.png"> * The "Filter" tab shows you a list of all items in the game. This can be useful for automatically stalling items when you return to town to repair/rebuy items. <img src="screenshots/stall_filter.png"> * The "Consignment" tab shows all of the items that are currently in consignment and their current status. * To enable automatically adding items to consignment you must add the `DoConsignment` command to your town script or walk script. * The `DoConsignment` command has the ability to settle, retrieve expired items, and add items. <img src="screenshots/stall_consignment.png"> * The "Options" tab gives you control over when the bot should stall based on how many items can be stalled. This can be set to "0" to always stall if there are items available. <img src="screenshots/stall_options.png"> ## <a name="alchemy"></a>Alchemy * The "Alchemy" tab allows you to easily improve your gear. It supports plussing items, using attribute/alchemic stones, and dismantling items to turn them into elements. * To remove one item from the queue, right click it and click "Delete" ### <a name="alchemyplus"></a>Plus <img src="screenshots/alchemy_plus.png"> 1. Stop at * Stop plussing when the item reaches a set plus. 2. Success delay * Time to wait after a successful plus. 3. Failure delay * Time to wait after a plus failure. 4. Lucky powder * Use lucky powder at a set plus and above. 5. Astral * Use Astral at a set plus and above. 6. Steady * Use steady at a set plus and above. 7. Immortal * Use an immortal stone at a set plus and above. 8. Lucky stone * Use a lucky stone at a set plus and above. 9. Stop after attemp * Stop plussing after a set attempt count. 10. Add * Adds the current item to the queue with the settings you have specified. 11. Cancel * Cancels plussing the item. 12. Start * Starts the alchemy queue 13. Alchemy queue list * This windows will show you all of the items you have added to the queue. * You can add multiple items and multiple types (plus, attribute, alchemic). 14. Item * The current item you wish to add to the queue. 15. Plus * The current items plus value. 16. Success rate * The current plus success rate. 17. Move on after plus failure * Move on to the next item in the queue if the plus fails. * This is only useful on certain private servers. 18. Stop all alchemy if destroyed * Stop alchemy if the item is destroyed. ### <a name="alchemyattribute"></a>Attribute <img src="screenshots/alchemy_attribute.png"> 1. Attribute stone type * The type of attribute stone to use on the item. 2. Stop at X % * Stop when the white value reaches this percentage or exceeds it. 3. Use alchemy catalyst * The bot is capable of using an alchemy catalyst with the stone. * Alchemy catalyst's prevent stones from failing. 4. Add All Stones * Adds all attribute stones for this particular item with the value you set. 5. Add * Adds the stone to the alchemy queue. 6. Cancel * Cancels using attribute stones on the item. 7. Start * Starts the alchemy queue. ### <a name="alchemyalchemic"></a>Alchemic <img src="screenshots/alchemy_alchemic.png"> 1. Alchemic stone type * The type of alchemic stone to use on the item. 2. Stop at X value * Stop when the blue value reaches this or exceeds it. * The stop at value is NOT a percentage! 3. Use alchemy catalyst * The bot is capable of using an alchemy catalyst with the stone. * Alchemy catalyst's prevent stones from failing. 4. Add All Items * Adds all items in your inventory capable of using the stone you have selected. 5. Add * Adds the stone to the alchemy queue. 6. Cancel * Cancels using alchemic stones on the item. 7. Start * Starts the alchemy queue. ### <a name="alchemydismantle"></a>Dismantle <img src="screenshots/alchemy_dismantle.png"> 1. Add All Items * Adds all of your inventory items into the queue to be dismantled into elements. 2. Add * Adds one item that you have selected into the queue to be dismantled. 3. Cancel * Cancels the alchemy queue. 4. Start * Starts the alchemy queue. ## <a name="mastery"></a>Mastery The "Mastery" tab allows you to automatically level up masteries/skills when they become available and also keep a skill gap. <img src="screenshots/mastery.png"> 1. Skill tree * This is a list of all masteries and skills for your character. 2. Gap * A skill level gap allows you to gain more SP experience but less EXP. This is called farming. 3. Clear Auto Mastery * Resets the auto mastery settings 4. Clear Auto Skill * Resets the auto skill settings ## <a name="map"></a>Map Assuming you have the minimap images inside the `minimap` folder you will be able to see the game from a top down perspective. Players, party members, and monsters are all shown on the map. There is a link to download these images inside the phBot release forum thread. When you right click on the map a menu will appear with quite a few options. It allows you to: 1. Register for Styria 2. Exchange Runes in Magic POP 2. Access storage / guild storage 3. Use a teleporter * Teleport * Designate Recall Point * Teleport to a Jupiter Room 4. Get all event quest rewards at So-Ok <img src="screenshots/map.png"> 1. Record Polygon * phBot supports two training area types: radius and polygon. * A polygon could technically be better but can be difficult to use since the map is not 100% accurate. 2. Stop Recording * Stops recording the polygon 3. Clear * Clears the polygon data ### <a name="recordpolygon"></a>Record Polygon 1. Click "Record Polygon". 2. Draw a polygon on the map in a clockwise manner. 3. Click "Stop Recording" once you have closed the polygon. 4. Go to the "Training Area" tab and right click on your active training area and select "Use Polygon". You will still need to set the position on the "Training Area" tab for other features in the bot to work. ## <a name="sound"></a>Sound / Alarm The "Sound" tab allows you to have the bot play sounds when something happens in game. <img src="screenshots/sound.png"> 1. GM spawned * Play a sound when a GM spawns near you. 2. Unique spawned / in range * Play a sound when any unique notice appears or a unique spawns near you. 3. Player died * Play a sound when your character dies. 4. Attacking another player * Play a sound when your character is attacking another player. 5. Returning to town * Play a sound when your character returns to town. 6. Private message * Play a sound when you receive a private message. 7. Attacked * Play a sound when your character is attacked by another player. 8. Thief nearby * Play a sound when a thief player spawns near you. 9. Hunter nearby * Play a sound when a hunter player spawns near you. ## <a name="keybindings"></a>Key Bindings Key bindings allow you to start, stop, etc. multiple bots at the same time with a single key press. <img src="screenshots/keybindings.png"> 1. Enable key bindings * Enables the bot to watch for key inputs. 2. Start Bot * Key binding for starting the bot. 3. Stop Bot * Key binding for stopping the bot. 4. Start Trace * Key binding for starting trace. 5. Stop Trace * Key binding for stopping trace. 6. Get Position * Key binding for getting the current position for the active training area. * This can be useful for when you want to move an entire party to a new area. ## <a name="plugins"></a>Plugins Plugins are "addons" for the bot - written in Python 3.4. Plugins allow you to extend the bot by parsing packets sent to your plugin or handling events. You can even create a UI on the Plugins tab inside the bot and do things when a user interacts with your interface. [Learn more](https://forum.projecthax.com/t/download/35/)